日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

cv::parallel_for_ 的一个例子

發(fā)布時(shí)間:2025/3/21 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cv::parallel_for_ 的一个例子 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

重點(diǎn):

??? paralle_for_設(shè)置成n個(gè)線程,則實(shí)際只有n-1線程并行,第n個(gè)線程會(huì)等待其他線程運(yùn)行結(jié)束后再執(zhí)行,所以n=1和n=2實(shí)際上都是串行

cv::parallel_for_是opencv封裝的一個(gè)多線程接口,利用這個(gè)接口可以方便實(shí)現(xiàn)多線程,不用考慮底層細(xì)節(jié),以下是一個(gè)具體的例子

??? 繼承ParallelLoopBody,重載運(yùn)算符()
class LoopBody : public cv::ParallelLoopBody
{
public:
??? LoopBody (const std::vector<std::string>& filenames)
??????? : m_filenames(filenames)
??? {
??? }

??? virtual void operator()(const cv::Range& r) const
??? {
??????? for (int i = r.start; i != r.end; i++)? //遍歷
??????? {
?? ??? ??? ?std::cout << m_filenames[i] << std::endl;
??????????????? ?
??????????? //load image and to to sth
??????? }
??? }

protected:
??? const std::vector<std::string>& m_filenames;?? ?
};

??? 啟動(dòng)循環(huán)

?? ??? ?LoopBody body(filenames);
?? ??? ?cv::parallel_for_(cv::Range(0, static_cast<int>(filenames.size())), body); //啟動(dòng)

??? 控制線成數(shù)目
??? 以前還有一個(gè)cv::parallel_for() 函數(shù)(不是以下劃線結(jié)束)是單線程,就相當(dāng)于for循環(huán),但新版本的opencv里沒(méi)有找個(gè)函數(shù)了,那么如果利用cv::parallel_for_()實(shí)現(xiàn)單線成的for循環(huán)?答案是把線程數(shù)設(shè)置成1

cv::setNumThreads(1);


原文鏈接:https://blog.csdn.net/z0n1l2/article/details/86567139

總結(jié)

以上是生活随笔為你收集整理的cv::parallel_for_ 的一个例子的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。