![b30dd64ec8334eb9137b695dd27b36e8.png](https://i-blog.csdnimg.cn/blog_migrate/acf644a0911dca012558160450eec32b.png)
引言
滤波是将图像模糊化的一个有力工具,进行视觉处理前进行滤波可以过滤掉一些不想要的细节部分,能够增强一些噪点影响剧烈的特征。该文主要讲述了均值滤波中值滤波高斯滤波的原理及具体实现方法及应用场景。
1![2e9b106260b210ceec30d5b7d4c2806f.png](https://i-blog.csdnimg.cn/blog_migrate/5e6b53eaf39620a618fb698fa8977fd2.png)
滤波是一个邻域操作算子,利用给定像素周围的像素的值决定此像素的最终的输出值。
图像滤波既可以在实域进行,也可以在频域进行。图像滤波可以更改或者增强图像。
通过滤波,可以强调一些特征或者去除图像中一些不需要的部分。
在对图像应用滤波器进行过滤时,边界问题是一个需要处理的问题。一般来说,有3种处理的方法。
1. 不做边界处理
不对图像的边界作任何处理,在对图像进行滤波时,滤波器没有作用到图像的四周,因此图像的四周没有发生改变。
![cdb6d8a6b582fd3ef99f7f3157f03195.png](https://i-blog.csdnimg.cn/blog_migrate/d95b87c7449811780f25d23f22b7083c.png)
2. 填充0
对图像的边界做扩展,在扩展边界中填充0,对于边长为2k+1的方形滤波器,扩展的边界大小为k,若原来的图像为[m, n],则扩展后图像变为[m+2k, n+2k]。进行滤波之后,图像会出现一条黑色的边框。
![86d13a396b7341d6d3b21691d4fab89d.png](https://i-blog.csdnimg.cn/blog_migrate/c605236be3b36d93fd1fbec8ba2cd9b5.png)
3. 填充最近像素值
扩展与 填充0 的扩展类似,只不过填充0的扩展是在扩展部分填充0,而这个方法是填充距离最近的像素的值。
![4e9a1a992e5e1717b4bcbf2db0da5bfe.png](https://i-blog.csdnimg.cn/blog_migrate/e19621c88c3489241ab7dce4c0224697.png)
2
![2e9b106260b210ceec30d5b7d4c2806f.png](https://i-blog.csdnimg.cn/blog_migrate/5e6b53eaf39620a618fb698fa8977fd2.png)
1.均值滤波
用其像素点周围像素的平均值代替原像素值,在滤除噪声的同时也会滤掉图像的边缘信息。在OpenCV中,可以使用boxFilter和blur函数进行均值滤波。
2.中值滤波
中值滤波用测试像素周围邻域像素集中的中值代替原像素。中值滤波去除椒盐噪声和斑块噪声时,效果非常明显。在OpenCV中,可以使用函数medianBlur进行操作。
3.高斯滤波
高斯滤波使用测试像素周围邻域像素进行加权后再平局得到新像素值。其权重符合正态分布。
![eeb54f0141285bed832c7f977962a46d.png](https://i-blog.csdnimg.cn/blog_migrate/c190c2a14572ff86069d49d65ad0fa17.png)
二维高斯权重示意图
3
![2e9b106260b210ceec30d5b7d4c2806f.png](https://i-blog.csdnimg.cn/blog_migrate/5e6b53eaf39620a618fb698fa8977fd2.png)
均值滤波实现
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp&