主要内容

wiener2

二维自适应去噪滤波

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

描述

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

输入图像被恒定功率的加性噪声降级。wiener2采用像素自适应维纳方法,该方法基于从每个像素的局部邻域估计的统计信息。

例子

J,noise_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));标题(“添加高斯噪声的部分图像”);

图包含一个坐标轴对象。添加高斯噪声的图像的标题部分的轴对象包含一个图像类型的对象。

去除噪音使用wiener2函数。

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

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

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

图包含一个坐标轴对象。轴对象的标题部分的图像去掉噪点维纳过滤器包含一个对象类型的图像。

输入参数

全部折叠

输入图像,指定为一个二维数字数组。

数据类型:||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] Lim Jae S。二维信号与图像处理, Englewood Cliffs, NJ, Prentice Hall, 1990, p. 548,方程9.44,9.45和9.46。

扩展功能

之前介绍过的R2006a