基于matlab的图像腐蚀原理与去噪应用

写本文的目的是记录自己做过的一些东西,深化理解,理清思路,便于回忆。本人处于学习阶段,欢迎指出不对的地方。

数学形态学是数字图像处理中一种很独特的方法,它基于像素与其周遭像素的位置灰度关系来完成某些功能。膨胀和腐蚀是最常见的处理方法,由此衍生出来的还有开运算、闭运算、梯度运算、顶帽(Top Hat)、黑帽(Black Hat)等,此次利用膨胀和腐蚀来处理加入泊松噪声的图像,使图像在尽可能减小损失的情况下完成噪声的滤除。

简单来说,图像腐蚀就是滑动算子取区域最小值,在算子为1的区域内选取最小值作为该像素的输出值,然后用相同的操作遍历整个图像。腐蚀和膨胀是对高像素值(高亮)部分而言的,不是低像素值的黑色部分。

开始试验

1.预处理和加入噪声

首先引入要处理的图像
在这里插入图片描述
将图像转换为灰度图像(彩色图像问题要将图像分为三层去处理,三层图像后期合并时也许还会出现一些颜色上的误差,需要进一步讨论,此处暂且不顾)
在这里插入图片描述
加入泊松噪声。泊松噪声从视觉效果来看类似于高斯噪声,但服从泊松分布。
在这里插入图片描述

2.创建形态学算子

使用腐蚀来去除图像噪声。腐蚀属于图像形态学方法的一种,进行腐蚀前首先要确定腐蚀所用的算子,此处创建两个算子方便对比,一个是三阶单位矩阵,另一个是三阶的副对角线为1,其余元素为0的矩阵,二者形态上对称。将单位矩阵称作-45度模板,另一个称为45度模板。

3.运算

使用imeroad()函数直接进行腐蚀以下展示四种不同的腐蚀结果

使用-45度模板进行一次腐蚀
在这里插入图片描述
使用-45度模板进行五次腐蚀
在这里插入图片描述
使用45度模板进行一次腐蚀
在这里插入图片描述
使用45度模板进行五次腐蚀
在这里插入图片描述
从噪声滤除的角度讲,这4个效果都不好,腐蚀只是形态学中最基本的运算,效果好的都更加复杂。但是这4个结果对于理解腐蚀很有帮助。

主要关注5次腐蚀的两张图,因为效果更突出。观察后发现其中船帆上的线变粗了,也有纹理。-45度模板腐蚀出来的图像,纹理沿-45度方向,45度模板腐蚀出来的图像,纹理沿45度方向。而且原图其中有一些线本身就是沿着45或者-45度方向的,这些线在其相应的模板腐蚀之下并没有变粗。根据这些实验现象再加上课本理论支持,对于图像腐蚀就更好理解了。

下面讨论噪声滤除。

只进行一两次腐蚀去噪效果有限,而且同一种模板下迭代次数增多也伴随着图像的失真。我们可以使用不同的模板,也就是不同的角度,对图像进行腐蚀去噪,然后以一定的权重将不同模板下得到的结果叠加起来。权重可以通过腐蚀去噪后的图像,与未处理的含噪图像之差来决定,相差越多,表明滤波效果越好,权重则越大【1】。

首先建立4个滤波算子,效仿之前的命名方法,分别是0度模板、45度模板、90度模板、-45度模板。分别使用这4个模板对含噪图像进行2次迭代腐蚀,将腐蚀后的图像的全部像素值相加,得到4个值,再计算未处理的含噪图像的所有像素之和。将这4个像素和分别作为分子,未处理的含噪图像所有像素之和作为分母,便得到了一个比值,介于0和1之间,这个比值便是4个不同模板腐蚀后的图像的权重。比值越大说明分子越大(因为分母固定不变),分子越大说明腐蚀后的图像与含噪原始图像相差越大,间接说明了滤波效果也越好。

将这四个比值作为权重,将4个不同模板腐蚀后的图像按照权重相加,便得到了去噪后的图像。
在这里插入图片描述
可以看出权重自适应腐蚀去噪的最终效果更好,在平缓区域的泊松噪声,虽然还是可以看出残留,但不再显得过于锐利。船帆处的细节也一定程度上得到了保留,此算法是在细节保留与噪声滤除上一个不错的折中方案。

——————————————————————————————

【1】陈虎,周朝辉,王守尊.基于数学形态学的图像去噪方法研究[J].工 程学学报,2004.

发布了5 篇原创文章 · 获赞 1 · 访问量 1337

猜你喜欢

转载自blog.csdn.net/qq_43287277/article/details/104250157