效果如下:
代码链接:图像加噪与滤波处理(opencv+python)
主要要求:
编写Python程序实现以下功能:
1、 读入一幅图像。
2、 使用两种不同的方法分别向图像中添加噪声。
3、 输出一幅标注噪声区域的二值图像,背景为黑色,噪声区域为白色。
4、 使用三种滤波方法对上述添加了噪声的图像进行滤波处理。
5、 分别保存滤波处理后的图像。
- 相关原理
均值滤波:均值滤波用其像素点的平均值代替原像素值,在滤除噪声的同时也会滤掉图像的边缘信息。
中值滤波:中值滤波用该像素周围邻域像素的中值代替原像素。中值滤波去除椒盐噪声和斑块噪声时,效果比较明显。
高斯滤波:高斯滤波是一种线性平滑滤波器,对于服从正态分布的噪声有很好的抑制作用。
- 处理流程
首先使用cv2.imread读取图片,写sp_noise和gaussian_noise函数分别实现对图片加入椒盐噪声和高斯噪声。并在加入噪声时保存加入的噪声点的位置,以便输出噪声区域的二值图像。之后使用cv2中的blur函数,GaussianBlur函数以及medianBlur函数分别对图片进行均值滤波,中值滤波和高斯滤波,并保存滤波处理后的图片。
- 结果分析
从滤波结果可以看出,高斯滤波的效果最好,几乎过滤了所有的噪声点还原出了原图,均值滤波效果次之,中值滤波的效果最次。
代码链接:图像加噪与滤波处理(opencv+python)