嘿!我正在处理一个关于使用OpenCV进行多线程处理的任务。我的问题是:如何让所有线程在同一张图像上工作(存储在Mat中)?我知道制作副本会使其变慢,因此多线程处理就没有意义了。而且,我想控制我使用的线程数量,尽管我已经看到了lambda c++ 11的介绍,但我不知道如何控制线程数量。
我目前有一个函数,用于计算要放入图像中的每个像素,因此我的串行代码看起来像这样:
我目前有一个函数,用于计算要放入图像中的每个像素,因此我的串行代码看起来像这样:
for(int i=0;r<MyMat.cols;i++){
for (int j=0;j<MyMat.rows;j++){
uchar value = (uchar) MyFunction(i,j);
MyMat.ptr<uchar>(i)[j] = value;
}
}
英语不是我的母语,如果我没有表达清楚,请询问澄清。任何帮助都是好的帮助!
Mat
,那么你可能需要原始Mat
的硬拷贝。对于不修改Mat
的线程,你可以只使用全局变量来分配Mat
。 - ghchoi