OpenCV(C ++ API)中是否有执行Wiener过滤的功能?在这种情况下,哪个是头文件?
我正在寻找像matlab的Wiener滤镜这样的功能。如果没有,有没有人试图用OpenCV实现它?我的目标是减少视差图中的噪音。
答案 0 :(得分:3)
我发现Wiener过滤器的C ++源代码在那里:
http://gigadom.wordpress.com/2012/05/11/deblurring-with-opencv-weiner-filter-reloaded/
然后
https://github.com/savsun/Filters
您可以简单地编辑它然后调用函数。
答案 1 :(得分:1)
坏消息:没有。
好消息:使用OpenCV的FFT函数,用经典方程实现一个并不困难。它甚至提供了一个API来乘以频谱。
现在,您还可以尝试其他算法,例如median filtering或实施已经显示可用于深度贴图的电视去噪。
答案 2 :(得分:1)
我知道这是一个老问题,但几天前我遇到了同样的需求。我基于OpenCV库编写了自适应Wiener过滤器(类似于wiener2 Matlab函数)的个人C ++实现,并将其推送到github。希望这有帮助!
答案 3 :(得分:0)
您可以尝试自己实施Wiener过滤器,例如书籍
PETROU,Maria; PETROU,科斯塔斯。 图像处理:基础知识。 John Wiley&儿子,2010年。
完整推导了维纳滤波器的公式,并提供了许多实施算法的建议和实际解释(例如,它解释了如何估计噪声的功率谱和原始未降级图像的功率谱/信号从降级和噪声图像/信号开始,并解释一些合理的假设)。