加快cvSmooth?

时间:2009-12-24 20:20:38

标签: image-processing opencv

我正在构建一个实时闭环图像处理应用程序。我使用cvSmooth()

浪费了至少3毫秒
cvSmooth(Obj->ImgOrig,Obj->ImgSmooth,CV_GAUSSIAN,Params->GaussSize*2+1);

这最终成为我整个代码中最慢的操作。我希望能够在进行阈值处理和进一步处理图像之前,根据用户输入将图像模糊到不同的数量。有更快的方法吗?

除了高斯之外,CvSmoothother options个。有理由相信他们会表现得更好吗?

我正在运行安装了Intel Primitives的OpenCV 1.1。

1 个答案:

答案 0 :(得分:1)

我不认为你能做的太多了。

首先,是的,CV_BLUR而不是CV_GAUSSIAN肯定会跑得更快。当使用高斯平滑时,使用高斯权重计算加权平均值,但是当使用CV_BLUR时,半径内的所有像素被赋予相同的权重。这是一个更简单的操作,因此可以比高斯模糊更快地完成。进行高斯模糊的最快方法是使用卷积,这在计算上更加密集。

如果不是太麻烦,也可以试试OpenCV 2.0。它使用SSE和OpenMP,它们都支持并行处理。虽然它会更快但不确定。