主要内容

wiener2

二维自适应去噪滤波

的语法wiener2 (n [m], [mblock nblock],噪音)被移除。使用wiener2(我,(mn)、噪音)语法。

描述

J= wiener2 ((mn)噪音过滤灰度图像使用像素级自适应低通维纳滤波器。(mn)指定大小(——- - - - - -n),用于估计局部图像的均值和标准差。假定加性噪声(高斯白噪声)功率为噪音

输入图像被恒功率加性噪声降级。wiener2使用基于每个像素的局部邻域估计的统计数据的像素自适应维纳方法。

例子

Jnoise_out) = wiener2 ((mn)返回加性噪声功率的估计值wiener2在进行过滤之前计算。

例子

全部折叠

的用法wiener2函数自适应地对图像应用维纳滤波器(一种线性滤波器)。维纳滤波器根据局部图像方差进行自我调整。当方差较大时,wiener2执行平滑。当方差很小时,wiener2执行更平滑。

这种方法通常比线性滤波产生更好的结果。自适应滤波器比类似的线性滤波器更具选择性,保留图像的边缘和其他高频部分。此外,没有设计任务;的wiener2函数处理所有的初步计算并为输入图像实现过滤器。wiener2,但需要比线性滤波更多的计算时间。

wiener2当噪声是恒功率(“白”)加性噪声时,如高斯噪声,效果最好。下面的例子适用于wiener2添加高斯噪声的土星图像。

将图像读入工作区。

RGB = imread (“saturn.png”);

将图像从真彩色转换为灰度。

I = im2gray (RGB);

给图像添加高斯噪声

J = imnoise(我“高斯”, 0, 0.025);

显示噪声图像。因为图像相当大,所以只显示图像的一部分。

imshow (J (600:1000 1:6));标题(“添加高斯噪声的图像部分”);

图中包含一个axes对象。带有标题部分的带有添加高斯噪声的图像的axis对象包含一个类型为Image的对象。

删除噪音使用wiener2函数。

K = wiener2(J,[5 5]);

显示处理后的图像。因为图像相当大,所以只显示图像的一部分。

图imshow (K (600:1000 1:6));标题(“用维纳滤波器去除噪声的图像部分”);

图中包含一个axes对象。带有标题的被维纳滤波器去除噪声的图像部分的axis对象包含一个类型为Image的对象。

输入参数

全部折叠

输入图像,指定为二维数值数组。

数据类型:||int16|uint8|uint16

邻域大小,指定为该形式的2元素向量(mn)在哪里行数和n是列数。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

附加噪声,指定为数值数组。如果不指定噪声,则wiener2使用局部方差的均值,非常刻薄(localVar)

数据类型:|

输出参数

全部折叠

过滤后的图像,作为与输入图像相同大小和数据类型的数字数组返回

加性噪声功率的估计,作为数字数组返回。

算法

wiener2估计每个像素周围的局部均值和方差。

μ 1 N n 1 n 2 η 一个 n 1 n 2

而且

σ 2 1 N n 1 n 2 η 一个 2 n 1 n 2 μ 2

在哪里 η N——- - - - - -图像中每个像素的局部邻域一个wiener2然后用这些估计值创建一个像素级维纳滤波器,

b n 1 n 2 μ + σ 2 ν 2 σ 2 一个 n 1 n 2 μ

ν的地方2是噪声方差。如果不给出噪声方差,wiener2使用所有局部估计方差的平均值。

参考文献

[1]林宰S。二维信号与图像处理,恩格尔伍德悬崖,新泽西州,普伦蒂斯霍尔,1990年,第548页,方程9.44,9.45和9.46。

扩展功能

版本历史

之前介绍过的R2006a

全部展开

Baidu
map