文档

wiener2

二维自适应噪声去除滤波

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

语法

J = wiener2(I,[m n],噪声)
[J,noise_out] = wiener2(I,[m n])

描述

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

对输入图像进行了恒功率加性噪声降噪处理。wiener2使用像素自适应维纳方法,该方法基于每个像素的局部邻域估计的统计数据。

例子

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

例子

全部折叠

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

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

wiener2当噪声是常功率(“白”)加性噪声时,如高斯噪声,效果最好。应用下面的示例wiener2加了高斯噪声的土星图像。

将图像读入工作区。

RGB = imread(“saturn.png”);

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

I = rgb2gray(RGB);

为图像添加高斯噪声

J = imnoise(I,“高斯”, 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是列数。如果省略(mn)参数,而且n默认为3。

数据类型:||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.26,9.27和9.29。

R2006a之前介绍

这个话题有用吗?