我在opencv的垫子上使用图像处理,我试图通过与openmp并行来加速openmp的过程
Mat *input,*output = ...;
#pragma omp parallel for private(i,j)
for(i=startvalueX; i<stopvalueX; i++) {
for(j=startvalueY; j<stopvalueY; j++) {
if(input->at<uchar>(i,j)!=0 && simplePoint(i,j,input) {
output->at<uchar>(i,j)=0;
}
}
}
simplePoint是一种在输入中抓取邻居的方法,并检查它是否满足查找表中的预定义邻域(大约15行代码)。
连续,该程序需要1.56秒,并行,3.5秒
差异(使用gprof)是
% cumulative self self total
time seconds seconds calls ms/call ms/call name
38.40 0.67 0.33 44 7.50 18.97 _GLOBAL__sub_I__Z10splitImagePcPN2cv3MatES2_
有什么想法吗?