gpt4 book ai didi

c++ - 使用 Mats 的 OpenCV 多线程

转载 作者:太空狗 更新时间:2023-10-29 21:12:52 24 4
gpt4 key购买 nike

嘿!所以我正在做一个关于 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;
}
}

英语不是我的母语,如果我没有正确解释自己,请要求澄清。任何帮助都是好的帮助!

最佳答案

如果将图像拆分为水平 strip ,则每个线程都可以独立处理自己的 strip 。如果每个线程不更改其范围之外的任何图像数据,它应该可以工作。

事实上,OpenCV 已经支持这一点。看看parallel_for_以及如何使用。

关于c++ - 使用 Mats 的 OpenCV 多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46019966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com