引言
图像是用各种观测系统以不同形式和手段观测客观世界而获得的,可以直接或间接作用于人眼并进而产生视知觉的实体,是人类感知世界的视觉基础,是人类获取信息、表达信息和传递信息的重要手段。研究表明,人类获取的视觉图像信息在人类接受的信息中的比重达到75%,“百闻不如一见”便是非常形象的例子之一。在高度信息化条件下的今天,数字图像越来越得到普及和应用。
然而,人们在获取和传输数字图像的同时,难免于图像数据被外界噪声所污染,妨碍了人们对图像信息的理解。由此,图像去噪技术应运而生。图像去噪,即在尽可能地不损失原图像细节的前提下,去除图像中无关的噪点。现有的图像去噪方法[11很多,如:
1 均值滤渡器
均值滤波器是一种典型的线性去噪方法,因为其运算简单快速,同时又能够较为有效地去除高斯噪声。因而适用面较广。
许多滤除噪声方法都是在此基础上发展而来的。其缺点是严重破坏了图像的边缘,模糊了图像。
2 低通滤波器
低通滤波器,信号或图像的能量大部分集中在幅度谱的低频和中频段是很常见的;而在较高频段,感兴趣的信息常被噪声所淹没。因此。一个能降低高频成分幅度的滤波器就能减弱噪声的看的见的影响。这是一种频域处理法。在分析图像信号的频率特性时,一幅图像的边缘、跳跃部分以及颗粒噪声代表图像信号的高频分量,而大面积的背景区则代表低频分量。用滤渡的方法滤除其高频部分就能去掉噪声,使图像得到平滑。但同时,有用的高频成分也滤除了。因此这种处理是以牺牲清晰度为代价的。
3 中值滤波器
中值滤波器是一种消除噪声的非线性处理方法,它是由Tueky在1971年提出的。它的基本原理是把数字图像或数字序列中一点的值用该点的一个邻近各点值的中值代替。中值定义如下:对一个数字序列的元素进行排序,如果元素个数为奇数,则取排序后序列的中间值。如果序列元素个数为偶数,则取排序后序列的中间两个值的均值。
把一个点的特定长度或形状的领域称作窗口。在一维情况下,中值滤波器是一个含有奇数个像素的滑动窗口。窗口正中问那个像素的值用窗口内各像素值的中值代替。
该滤波器是一种典型的非线性处理方法。它的优势在对图像中脉冲噪声消除极为有效,且能够较好地保护图像边缘信息。
弱点是因为涉及大量排序运算,运算速度较慢,对图像的实时处理有影响。图像一般要传化成数字图像后才可以使用计算机对其进行各种处理。数字图像,是以数字的形式而存在的。利用MATLAB(矩阵实验室)进行处理时,我们简单地理解它为一定大小的数字矩阵。矩阵中的每个效字代表图像的一个像索点。由此可以知道,对数字图像的处理,实际上就是对一个数字矩阵的运算处理。
为了研究方便,我们的方法是人工的给原图像添加噪声·主要是不同强度的正态分布随机噪声和脉冲噪声。在MATLAB中,正态分布噪声是由randn函数实现的,而脉冲噪声,即平常所说的椒盐噪声,是由imnoise(Io,’saIt 8L pepper,i)实现的。其中Io是原图像矩阵,i取值。至1之间,表示噪声的强度。
通过研究,发现一种新的改进的均值滤波器[2]。在考虑如何对图像的噪声进行处理时,难以避免的,需要面临噪声点的检测问题。因为一张含噪图像中,只有一部分的像素受到了噪声的污染,而其余的像素仍保持原值。无条件地对所有的像素点进行滤波,显然在去除噪点的同时,使原图像发生了失真。所以为了更有针对性地处理图像中的躁点,最好的做法就是先对噪声进行检测。然后利用非噪声点的平均值来代替每个像素的灰度,而不是上面传统方法中的盲目运算。其计算公式为:
式中,S为(x,y)点领域中坐标的*,但不包括其本身,M为*内坐标点的点数。下面通过实例来验证这种方法的优越性:
采用尺寸大小为162×120的图像文件shoes.jpg。使用im-眦d函数将其载人到MATLAB中,为了简便。我们先用瑁b29ray函数将其转换为单维的灰度图像,灰度范围[o,255]
(见图1)。在原图基础上加入噪声密度为o.2的脉冲噪声,可以用imnoise函数加入椒盐噪声,也可以用randn加入正态分布的随机噪声,这样就得到了含噪的图像。芝麻盐状的雪*点随机地分布在图像矩阵巾(见图2)。
一般来说,图像中像素的灰度值是连续渐变的。
而如果存在噪点,那么在原图像素和噪点之间的灰度值会发生突然的变化。基于此,首先取待检测点的上、下、左、右四个邻域大小为3×3,计算各邻域的平均值,如果四个邻域的均值都与待检测点的差的绝对值大于既定的阈值,则判断该点为噪点,反之,有一个邻域的均值与待测点的差小于阈值。则判断该点为正常像素点。其中;阕值是我们根据图像的含噪情况人为设定的一个值,一般在100和200之问。同时。建立与待检测图像大小相同的矩阵,称为噪声标识矩阵。其中的点与原图像矩阵中的点一一对应。并预设该矩阵中的值全为1,如果一像素被判断为噪声,则置标识矩阵中相应元素为o.这样,就可以实现前面判断过程所得出的结果被后续的检测所使用,已经被判定为噪声的像素不再参与领域均值的计算。
这样,我们就可以用一个循环,来对图像矩阵中的每个像素逐个进行判断,方便地检测到了噪声点。
接下来,就可以利用中值滤波的方法,去除图像中的噪点了,将预先判断为噪点的图像矩阵中的点,如(a。b)=(70.S5)的点的值是230,与邻域点的均值的差大于两值150。因此翔断它是一个噪点。这样,我们就用它邻域内的八个点中有效的点来取均值代入。依次执行,挨个计算、代人。这样就得到了一个新的图像数据矩阵,最后我们用i眦Ilow函数显示处理后的图像(见图3)。可以看到。效果非常明显。
4 结语
去噪后的图像不仅噪声强度受到限制,而且图像细节得到了最大限度的保持,解决了妨碍人们获取图像信息的同胚。在航空航天、通信工程、生物医学、军事公安、文化艺术等领域都具有一定意义。