2014-03-28 81 views
1

我想优化我的代码, 我的代码包含以下步骤平滑操作在图像处理

//img size 1024 X 720 
cvSmooth(img, inputImg, CV_GAUSSIAN, 5, 0, 0); 
FilterOperations::sobelSchaar(inputImg, sobImg); 
cvResize(sobImg, sob2Img); 
//sob2Img size 512 X 360 
cvSmooth(sob2Img, sob2Img, CV_GAUSSIAN, 3, 3); 
imgProceObj.normalise(sob2Img); 
cvAdaptiveThreshold(sob2Img, sob2Img, 255, 
      CV_ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY, 31, 50); 

我怎样才能optimize上面的代码,在不改变最终的结果?

+1

理论上3x3是正确的滤镜尺寸(每个方向5x5是2像素,每个方向3x3是1像素),但我怀疑你会得到完全相同的值。也许如果你调整高斯项(解决一些方程?)。但请记住检查调整大小的参数,因为可能会有一些插值技术! – Micka

回答

2

pyrDown()可能一次完成所需的两个步骤。

+1

它会平滑原始大图像,但这是避免混叠所必需的。 – Vlad