OpenCV去噪非常慢

时间:2015-10-04 07:49:09

标签: c++ opencv image-processing

要求图像去噪。尝试使用OpenCV,性能非常糟糕〜每张图像30秒!

尝试使用:

cv::fastNlMeansDenoising
cv::fastNlMeansDenoisingColored
cv::xphoto::dctDenoising

图片:maxsize(1024x1024)colred 3 channel

调用样本:

Mat src;
cv::imread("myfileName.jpg", src); //assume it's 1024x768 photo
Mat trg(src.size(),src.type());
cv::xphoto::dctDenoising(src,trg,15); // sygma 15 got from algorithm's site as balanced value

一切运作良好,但非常慢。

我的配置:

联想T510,核心i7

Windows 10

OpenCV 3.0.0(来源 - 最新 - 稳定)

TBB(来自官方网站的最新垃圾箱)

使用VS2015构建的OpenCV,默认的CMAKE设置没有" world"模块和WITH_TBB,所有TBB目录设置为(... / ia32 / vc12)

(首先我认为问题是我的opencv没有TBB,但TBB没有帮助去噪)

资源:

  1. 在执行期间,CPU加载到所有核心的100%(因此工作中的多处理)

  2. 最多使用14个线程(因此可以进行多线程处理)

  3. 解决这个性能问题的方法或OpenCV的真正去噪速度是什么?

    可能是我的控制台应用程序构建的C ++设置的一些问题(我来自.net世界,C ++对我来说不是那么熟悉)?

1 个答案:

答案 0 :(得分:4)

答案很简单 - 我使用的是opencv的调试版本(通常用于.net)但是在调试和发布配置之间C ++性能差别很大。

重新映射到Release版本后,每张图片的持续时间接近5秒。它不是那么快我预期但它可以使用。

相关问题