Advertisement

数字图像处理实验报告 实验五:形态学图像处理

阅读量:

实验五 形态学图像处理

【一

在这里插入图片描述

2、采用形态学处理方法实现图像去噪。

在这里插入图片描述

3、分析图像分割实验(实验四)所得的结果,并运用形态学方法消除肺部空腔。
4、请使用形态学算法生成仅由边界接触构成的圆形。(选做题)

在这里插入图片描述

3.2相关知识
1、相关知识
图像的形态学描述与处理都基于填放结构元素的概念。结构元素的选择与从图像中抽取何种信息有密切关系。图像的形态学基本操作有腐蚀(Erosion)、膨胀(Dilation)、开(Opening)、闭(Closing)四种。利用这几种形态学操作,可以完成图像分割、特征抽取、边缘检测、图像增强等工作。
腐蚀操作是形态学最基本的操作之一。宏观上看,腐蚀运算可以使被处理的图像缩小,消除图像的边界,消除图像中小于结构元素大小的部分。如果图像中两部分存在细小的连通“桥”,则腐蚀运算可以将这一连通消除。腐蚀运算的算法如下:用结构元素,扫描图像中的每一个像素。用结构元素与其覆盖的二值图像做与运算。若结构元素的与元素都为1,则图像的该像素值置为1,否则值置为0。
膨胀操作与腐蚀操作相反,是腐蚀操作的逆运算。膨胀操作可以使被处理的图像增大,扩充图像边界的凹陷部分,填充图像中比结构元素小的空洞。对于多个不同的连通域,若存在缝隙,则填满该缝隙。膨胀运算的算法如下:用结构元素扫描图像的每一个像素,用结构元素与其覆盖的二值图像做“与”运算。如果都为0,结果图像该像素为0,否则为1。
形态学的开操作是先用结构元素进行腐蚀操作,而后再用腐蚀的结果再次进行膨胀操作。开操作能使得对象的轮廓变得光滑,断开狭窄的间断、消除细的突出物。
形态学的闭操作就是用结构元素对原图像先进行膨胀操作,后进行腐蚀操作,使得轮廓变得光华,但与开操作相反,用于消除狭窄的间断和鸿沟,消除小的空洞,填补轮廓线中的断裂。

在这里插入图片描述

在本次实验中,第四题主要涉及形态学操作的应用. 为了准确提取图像中各个圆形的边界信息,则需执行边界提取操作. 通过使用结构元素对原始图像进行腐蚀操作后与原始图像相减的方法,则可获得图像边界的轮廓. 根据计算得到的各连通分量边界长度信息,则可以推断哪些圆是相互独立且互不连通的. 通过上述方法,从而成功分离并提取出所有连通分量. (1)随机选取了一个线性形状的结构元素,并对目标图像执行腐蚀运算.

复制代码
    I=imread("lab5_1.tif");
    se = strel('line',10,10);
    subplot(1,2,1);imshow(I);
    I=imerode(I,se);
    subplot(1,2,2);imshow(I);

(2)随意选取了一个线性结构元素,对图像进行膨胀操作。

复制代码
    I=imread("lab5_1.tif");
    se = strel('line',5,5);
    subplot(1,2,1);imshow(I);
    I=imdilate(I,se);
    subplot(1,2,2);imshow(I);

(3)随意选取了一个线性结构元素,对图像进行开操作。

复制代码
    I=imread("lab5_1.tif");
    se = strel('line',10,10);
    subplot(1,2,1);imshow(I);
    I=imopen(I,se);
    subplot(1,2,2);imshow(I);

(4)随意选取了一个线性结构元素,对图像进行闭操作。

复制代码
    I=imread("lab5_1.tif");
    se = strel('disk',6,6);
    subplot(1,2,1);imshow(I);
    I=imclose(I,se);
    subplot(1,2,2);imshow(I);

对于题目二中的图片来说,在开始形态学处理之前需要先消除黑噪声。根据上文所述,在进行灰度图象形态学处理时会采用腐蚀与膨胀的操作序列以去除黑噪声;接着为了去除非 wanted noise(白噪声),需对图片进行反转并再次应用相反的操作以除去白噪声;随后采用闭合处理过程(即先进行膨胀再进行腐蚀),从而彻底清除白噪声;最后再次反转图片的灰度等级以恢复正常状态;最终输出的图片已成功消除黑噪声和白噪声的影响

复制代码
    I=imread("lab5_2.bmp");
    %subplot(2,3,1);imshow(I);
    J1=imerode(I,strel('disk',3));
    %subplot(2,3,2);imshow(J1);
    J2=imdilate(J1,strel('disk',1));
    %subplot(2,3,3);imshow(J2);
    J3=imcomplement(J2);
    %subplot(2,3,4);imshow(J3);
    J4=imclose(J3,strel('square',2));
    %subplot(2,3,5);imshow(J4);
    J5=imcomplement(J4);
    %subplot(2,3,6);imshow(J5);
    subplot(1,2,1);imshow(I);
    subplot(1,2,2);imshow(J5);

对于实验4中的肺部图像,在结果显示部分需通过反复测试确定最优的DISK圆盘形态。当半径过小时不适合使用,在测试过程中会发现当半径过大时同样不合适。

复制代码
    I=imread("result.jpg");
    se = strel('disk',3);
    J=imclose(I,se);
    subplot(2,2,1);imshow(I);title('原图');
    subplot(2,2,2);imshow(J);title('disk半径3');
    J=imclose(I,strel('disk',10));
    subplot(2,2,3);imshow(J);title('disk半径10');
    J=imclose(I,strel('disk',7));
    subplot(2,2,4);imshow(J);title('disk半径7');

(7)对于题目4 首先需要像进行图像边界提取的过程一样 在完成边界提取后 在处理过程中还应用了腐蚀运算 腐蚀运算能够将看似有联系但实际无直接连接的不同圆形分离出来 接着 根据图像边缘区域周长计算来确定哪些圆形彼此相邻以及哪些则不相邻 实验中我们设定当连通域周长大于等于200时 视其为存在相互连接关系 而当周长小于等于200时 则认为不存在这种连接 当确认各个圆形是否存在相邻关系后 就会对这些圆形内部的小孔区域进行填充 其实这相当于对之前的边缘提取步骤的一种逆运算 最后利用形态学运算得到了只包含相互间有直接连接关系的所有圆形

复制代码
    I=imread("lab5_3.tif");
    %subplot(2,2,1);imshow(I);
    [h,w]=size(I);
    A=I;
    B=imerode(I,strel('disk',1));
    C=A-B;
    %subplot(2,2,2);imshow(C);
    L=bwlabel(C,8);
    s=regionprops(L,'Perimeter');
    J2=ismember(L,find([s.Perimeter]>=200));
    %subplot(2,2,3);imshow(J2);
    Jc=imcomplement(J2);
    marker=zeros(h,w);
    marker(1,:)=1;
    marker(h,:)=1;
    marker(:,1)=1;
    marker(:,w)=1;
    while 1
    marker_pre=marker;
    dilation=imdilate(marker,strel('disk',1));
    marker=dilation.*Jc;
    if marker_pre==marker
        J3=marker;
        break;
    end
    end
    J3=imcomplement(J3);
    %subplot(2,2,4);imshow(J3)
    subplot(1,2,1);imshow(I);
    subplot(1,2,2);imshow(J3)

(1)如图1所示,在运用线性结构元素对图像执行腐蚀操作后可观察到连接线已被明显消除。值得注意的是,在图像中心位置的圆角矩形边界有所缩减,并且周围区域的连通域相应缩减一圈。

在这里插入图片描述

(2)如图2所示,在图像上应用线性结构元素执行膨胀处理后可观察到明显的线条加粗效果。中心区域原有的圆角矩形边界外围又增加了一圈边界,并且周围各个连通域也相应增加了1圈边界。

在这里插入图片描述

(3)如图3所示,在运用线性结构元素执行图像开运算后可观察到那些细微而脆弱的连接线条能够得到有效的去除。值得注意的是,在图像中心位置的那个圆角矩形边界并未发生任何变化。此外,在图中外围区域的所有连通域均未发生尺寸变化

在这里插入图片描述

(4)如图4所示为通过线性结构元素执行闭运算后的图像结果对比图,在视觉上两者差异并不显著。然而,在中心位置的圆角矩形区域与直线边界之间存在一些极小的空间区域未被完全覆盖,在这些细节部位也实现了填补效果。此外,在直线周围的某些区域也存在细微的间隙问题同样被系统性地处理掉了

在这里插入图片描述

(5)最初阶段,在图像中进行腐蚀与膨胀操作以去除黑色背景区域内的灰黑色噪声像素。随后对图像进行反向处理,并通过闭操作进一步去除白色噪声。经过上述处理后得到的结果是:背景变为纯黑且已去除所有残留噪声。如图5所示对比可知,在保留主要细节信息的同时去除了大部分不希望存在的噪声

在这里插入图片描述

在进行肺部图像填充时,我们需要尝试不同大小的结构元素作为参数。在选择较小的结构元素(如半径3)时,在某些情况下无法完全填充肺部区域。使用较大的结构元素(如半径10)可能导致两个原本分离的肺部区域被错误地连接在一起。适当选择较大的结构元素(如半径7)则能够有效地达到目标:不仅能够正确地填充肺部内部区域,并且不同的肺部区域不会被连通。

在这里插入图片描述

通过形态学算法处理后得到仅由边界接触构成的圆形对象;随后提取了这些圆形对象各自的边界信息,并根据各圆形对象边界长度的数据分析结果来确定哪些区域被认为是连接在一起的不同圆形区域;将所有具有周长不小于200的数据区域归类为独立分离的不同圆形区域;最终筛选并保留了所有满足周长≥200的数据区域(如图7所示)。

在这里插入图片描述

四、实验心得

  1. 深入熟悉掌握了形态学的基本理论与方法。经过编写腐蚀、膨胀以及开闭运算相关代码,并加深了对图像处理过程中这些运算功能的理解。
  2. 掌握运用形态学原理进行图像去噪的技术,并进一步学习并掌握了如何对图像中的孔洞区域进行填充

全部评论 (0)

还没有任何评论哟~