com*_*div 5 c++ opencv image-processing
需要图像去噪。用 OpenCV 试试,性能很差~每张图像 30 秒!
尝试使用:
cv::fastNlMeansDenoising
cv::fastNlMeansDenoisingColored
cv::xphoto::dctDenoising
Run Code Online (Sandbox Code Playgroud)
图像:maxsize(1024x1024) colred 3 通道
调用示例:
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
Run Code Online (Sandbox Code Playgroud)
一切正常,但速度很慢。
我的配置:
联想T510,酷睿i7
视窗 10
OpenCV 3.0.0(来源 - 最新 - 稳定)
TBB(来自官方网站的最新垃圾箱)
OpenCV 使用 VS2015 构建,默认 CMAKE 设置没有“world”模块和 WITH_TBB,所有 TBB 目录都设置为 (.../ia32/vc12)
(乍一看,我认为问题在于我的 opencv 在没有 TBB 的情况下构建,但 TBB 无助于去噪)
资源:
在执行期间 CPU 加载了高达 100% 的所有内核(因此多处理工作)
最多使用 14 个线程(因此多线程正在工作)
在哪里可以解决此性能问题,或者它是使用 OpenCV 去噪的真实速度?
可能是我的控制台应用程序构建的 C++ 设置存在一些问题(我来自 .net 世界,C++ 对我来说不太熟悉)?
答案很简单 - 我使用的是 opencv 的调试版本(对于 .net 来说这是常见的),但对于 C++ 来说,调试和发布配置之间的性能差异很大。
重新映射到发布版本后,每个图像的持续时间接近 5 秒。它没有我预期的那么快,但它可用。
| 归档时间: |
|
| 查看次数: |
2984 次 |
| 最近记录: |