c ++中的open cv中是否有wiener函数?

时间:2014-01-16 12:33:02

标签: c++ opencv image-processing

OpenCV(C ++ API)中是否有执行Wiener过滤的功能?在这种情况下,哪个是头文件?

我正在寻找像matlab的Wiener滤镜这样的功能。如果没有,有没有人试图用OpenCV实现它?我的目标是减少视差图中的噪音。

4 个答案:

答案 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年。

完整推导了维纳滤波器的公式,并提供了许多实施算法的建议和实际解释(例如,它解释了如何估计噪声的功率谱和原始未降级图像的功率谱/信号从降级和噪声图像/信号开始,并解释一些合理的假设)。