python图像去噪算法,数字图像处理空域滤波
4.1 Python图像的图像恢复-空间噪声滤波器文章目录4.1 Python图像的图像恢复-空间噪声滤波器1算法原理2代码3效果
1算法原理
空间噪声滤波器(均值滤波器、排序统计滤波器)
均值滤波-cv2.blur(原图,内核大小),指任意一点的像素值,是周围N*M个像素值的平均值。均值滤波器的特点是:随着核大小逐渐变大,图像会变得更加模糊;如果内核大小设置为(1,1),则结果是原始图像。平均滤波器的模板分为标准像素平均和加权平均。如下图所示:
两个3x3平滑(平均)滤波器模板。每个模板前面的乘数等于1除以所有系数之和,这是计算平均值所需的。
排序滤波器是非线性空间滤波器。这种滤波器的响应是基于滤波器所包围的图像区域中的像素的排序,然后使用由统计排序结果确定的值来代替中心像素的值。该类中最著名的滤波器是中值滤波器,本实验报告以中值滤波器为例,采用统计排序滤波算法实现。
中值滤波- cv2 . medianblur(src,ksize)。这里,内核大小ksize必须是奇数。点周围的像素包含在顺序中,取中值作为该点的像素值。中值滤波的特点是:随着核大小逐渐变大,图像会变得更加模糊;内核必须是大于1的奇数,如3、5、7等。在代码dst=cv2.medianBlur(src,ksize)中填写内核大小时,只需填写一个数字即可,如3、5、7、9等。比较均值滤波函数的用法。
中值滤波应用广泛,因为它能有效地减少一些随机噪声,而且其模糊度比同样大小的线性平滑滤波小得多。对于单极和双极脉冲噪声,中值滤波比较好,但是多次使用中值滤波会造成图像模糊。
其他排序过滤器
最大值滤镜可以用来寻找图像中最亮的点,或者弱化亮区所相信的暗区。此外,由于胡椒噪声的值非常低,因此可以使用该滤波器来降低胡椒噪声。
最小值滤镜用于查找图像中最暗的点,或者用暗区削弱亮区。此外,盐粒噪声可以通过最小操作来减少。
中点滤波器是统计排序滤波器和平均滤波器的组合。它最适合处理随机噪声,如高斯噪声或均匀噪声。
2代码运行代码说明
1.要改变代码中的图片地址(地址不能有中文)
更改路径put(r ./image/image1.jpg )。
2.注意最后的plt.savefig(1.new.jpg )是保存plt图像的,不用的话可以注释掉。
import OS import numpy as NP import cv2 import matplotlib . py plot as pltplt . rcparams[ font . sans-serif ]=[ sim hei ]PLT . rcparams[ axes . unicode _ MINUS ]=false def put(path):img=cv2 . im read(path,1) img=cv2.cvtColor(img,cv2。COLOR_BGR2GRAY) rows,Col=img . shape[:2]# noise img _ noise=img . copy()for I in range(5000):x=NP . random . randint(0,rows) y=np.random.randint (0,cols) img _ noise [x,Y]=img [x,y] np.random.randint (50,100) #均值滤波器res1=cv2.blur (img _ noise,(9,9)) #统计排序滤波器子情节(2,2,1),情节。轴(“关”),PLT。即时消息显示(IMG,PLT。厘米。灰色),PLT。标题(“原始图像”)PLT。子情节(2,2,2),情节。Plt.imshow (img _ noise,Plt.cm.gray),PLT.title(带噪声的图像)PLT.subplot (2,2,3),PLT.axis (off ),PLT.imshow (res1,PLT.cm.gray) Plt.title(均值滤波器)PLT。子情节(2,2,4),情节。轴(“关”),PLT。即时消息显示(Res2,PLT。厘米。灰色),PLT。标题(中值滤波器)# PLT。SAVEFIG()
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。