Opencv开发与应用—维纳滤波的算法实现及对比

本文介绍了在图像处理中添加高斯噪声和椒盐噪声的方法,并详细阐述了维纳滤波的原理。通过实验对比,展示了高斯滤波、均值滤波和中值滤波在不同噪声类型下的表现,强调了维纳滤波在处理复杂噪声时的优势,特别是在处理既有噪声又有运动模糊的图像时的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现方法

为图片添加噪声

高斯噪声

在许多实际情况下,由于配准传感器的物理限制,由信息处理系统记录的图像数据含有不精确性。在加性高斯噪声的情况下,这种图像退化通常可以用线性模糊来描述。为了能够分辨不同滤波器以及各个滤波器参数对图像噪声处理的强度,首先要人为的为图像添加噪声。高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。高斯白噪声的二阶矩不相关,一阶矩为常数,是指先后信号在时间上的相关性。高斯白噪声包括热噪声和散粒噪声。在通信信道测试和建模中,高斯噪声被用作加性白噪声以产生加性白高斯噪声。

主要函数:noise=np.random.normal(0,1,image.shape)

 

这里我使用不同的sigma值添加噪声可以明显看出如果有一个非常小的sigma,你几乎看不到这只是一个不变的灰色。随着让Sigma变得越来越大,开始看到越来越多的斑点。这就是效果,它只是一个加到图像上的噪声函数。

椒盐噪声

为了遵守控制变量法这里我选取上述四幅图为其添加指定的椒盐噪声(即为四幅图统一添加椒=5000盐=5000)。椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)

主要函数:noise = [[np.random.randint(0, x),  np.random.randint(0, y),50]

 

综上选择椒盐+sigma41图像先来完成维纳滤波

维纳滤波

原理

1)有限长滤波器
对于一列输入信号x,一般的无限长线性滤波器输出为:

  • y(n)= Σh(m)x(n-m) m=0…∞

实际中,滤波器的长度,即阶数是有限长的,设为M,则有:

  • y(n)= Σh(m)x(n-m) m=0…M

即滤波器的当前时刻输出为前M个时刻的值经过加权之后得到的。
为便于书写与理解,上式可以写为矩阵形式:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值