多重循环体的并行加速
原始循环体
cpp
cv::Mat image;
for (int y=0; y<image.rows; y++) {
for (int x=0; x<image.cols; x++) {
/* user code */
}
}
使用opencv并行加速后循环体
cpp
cv::Mat image;
parallel_for_(cv::Range(0, image.rows), [&](const cv::Range& r)
{
for (int oc = r.start; oc < r.end; oc++) {
for (int x=0; x<image.cols; x++) {
/* user code */
}
}
}
注意事项
parallel_for_ 对应的循环函数会被重复执行,因此对变量的赋值声明操作也会被重复执行,需注意。