如果图像含有比较多的噪声,就必须对其进行滤波处理。常用的滤波方法有均 值滤波和中值滤波。由于椒盐噪声特别明显,对整张图片影响较大,故本设计只对含 有椒盐噪声的图片进行滤波,中值滤波对椒盐噪声的抑制效果非常好。中值滤波采用 的是奇数模板,对模板中的灰度值进行排序,然后取中值。如图 2.3 所示:
图 2.4 中值滤波算法演示
2.2 最大熵分割算法
2.2.1 熵的定义
熵是信息论中对不确定性的度量,是对数据中所包含信息量大小的度量[3],熵取 最大值时,表明了此时信息量的获得是最大的。熵的数学定义如下:
如果一些事件的发生概率分别为 , , ,…, ,则熵的定义为: = - .
(i=1,2,…,s)
因为 + +…+ =1,根据数学证明可以知道当 = =…= 时,熵取得最大值。 最大熵分割的思想是,选择适当的阈值将图像分成两类,两类的平均熵之和为
最大时,可以从图像中获得最大的信息量,以此来确定最佳的阈值[3]。
2.2.2 一维最大熵分割
根据最大熵分割的思想,一维最大熵分割算法步骤如下:
①求出图像中所有像素的概率分布 , , ,…, ,其中
= (i=0,1,…,255) (2—1)
其中 为某一灰度值的像素个数, 为图像的像素总数。文献综述
②用一阈值 Th=T 将图像分成两类,然后计算这两类的平均相对熵。
= - (2—2)
= - (2—3)
其中 =
③当阈值 Th= T ,满足 + =max{ + },此时的 Th 便是最佳阈值。
④用最佳阈值对图像进行二值化处理,设原图像为 a(x,y),经过处理后的图像为 b(x,y),则有
b(x,y)= (2—4)
一维熵分割只考虑了图像整体的灰度分布,采用一个单一的阈值对整个图像进行 分割,实现方法比较简单。但是图像之所以能够被人们识别,是因为像素与像素之间 是有联系的,一维熵分割没有考虑空间信息,即没有考虑像素与邻域像素之间的关系, 因此这种方法只对简单图片有效。另外,由于一维熵分割没有考虑空间信息,故这种 算法的抗噪能力弱。 C#图像预处理算法的研究与实现(3):http://www.youerw.com/zidonghua/lunwen_77091.html