DIP实验报告-形态学图像处理.doc_第1页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程:数字图像处理课程作业实验报告实验名称:Morphological and Other Set Operations实验编号:签 名: 姓 名:学 号:截止提交日期:年月日摘 要:本实验学习一些基本的形态学图像处理知识。掌握数学形态学集合的基本运算;编程实现二值图像的膨胀和腐蚀处理,掌握一些基本的形态学算法,如:边界提取;针对灰度图像编程实现膨胀和腐蚀处理,编写函数实现灰度图像形态学梯度处理和顶帽变换,最后对形态学梯度变换结果和顶帽变换结果进行比较。1、 技术论述1、 图像的逻辑运算及数学形态学很多应用是以形态学概念为基础的,并涉及二值图像。数学形态学的语言是集合论。同样,形态学为大量的图像处理问题提供了一种一致的有力方法。数学形态学中的集合表示图像中的不同对象。例如,在二值图像中,所有黑色像素的集合是图像完整的形态学描述。在二值图像中,正被讨论的集合是二维整数空间 (P)的元素,在这个二维整数空间中,集合的每个元素都是一个多元组(二维向量),这些多元组的坐标是一个黑色(或白色,取决于事先的约定)像素在图像中的坐标(x,y)。灰度级数字图像可以表示为Z空间(Z3)上分量的集合。在这种情况下,集合中每个元素的两个分量是像素的坐标,第3个分量对应于像素的离散灰度级值。更高维度空间中的集合可以包含图像的其他属性,比如颜色和随时间变化的分量。集合运算尽管本质上很简单,但对于实现以形态学为基础的图像处理算法是一种有力的补充手段。本实验中,我们关注的是涉及二值图像和灰度图像的逻辑运算。在图像处理中用到的主要集合运算是:并、交、补、差、位移和镜像。图1中总结了这些运算的性质。图1 主要的集合运算 在两幅或多幅图像的对应像素间逐像素进行逻辑运算。因为只有在两个变量都是1时,两个二进制变量的“与”运算才为1,所以只有两幅输人图像的对应像素均为1时,“与”运算的结果才是1。图2显示了涉及图像逻辑运算的不同例子。这里,黑色表示1,而白色表示0(这里使用两种约定的说法,有时会颠倒黑色和白色二值的意义,取决于在给定情况下哪种表达更清楚。使用图1中的定义构造其他的逻辑运算很容易。例如,异或运算是当两个像素的值不同时结果为1,否则为0。这种运算与“或”运算不同。“或”运算在两个像索有一个为1或两个均为1时结果为1。数学形态学方法对图像进行分析的基本思想是:用具有一定形态的结构元素去度量和提取图像中的对应形状,达到对图像分析和识别的目的。将数学形态学作为工具从图像中提取对于表达和描绘区域形状有用处的图像分量,比如边界、骨架以及凸壳,等等。数学形态学是对于探索和研究二值图像和灰度图像具有很大益处.图2 图像逻辑运算2、二值图像的腐蚀与膨胀及形态学算法之一:边界提取1、二值图像腐蚀:对Z中的集合A和B,使用B对A进行腐蚀定义为: (式9.2-1)这个公式说明,使用B对A进行腐蚀是所有B中包含于A中的点z的集合用z平移。 2、二值图像膨胀:设A和B是(Z2)中的集合,A被B膨胀定义为: (式9.2-3)这个公式是以得到B的相对于它自身原点的映像并且由z对映像进行位移为基础的。A被占膨胀是所有位移z的集合,这样,B和 A至少有一个元素是重叠的。与在其他形态学运算中一样,集合B通常叫做膨胀的结构函数。二值图像的腐蚀与膨胀示例图如图(3)所示:图3 二值图像的腐蚀与膨胀示例图3、集合A的边界表示为,它可以通过先由B对A腐蚀,而后用A减去腐蚀得到。即: (式9.5-1)这里B是一个适当的结构元素。图3说明了边界提取的机理。这幅图像显示了一个简单的二值对象、一个结构元素B和使用式9.5-1的结果。 尽管图3中显示的结构元素是最常用的结构元素之一,但它绝对不是惟一的。例如,使用由1组成的55大小的结构元素将得到2到3个像素宽的边界。图4 边界提取3、 灰度图像的膨胀与腐蚀及形态学的应用1、用结构元B对灰度图像进行膨胀表示为:这里和分别是f和b的定义域。f和b是函数而不是二值形态学情况中的集合。 必须在f的定义域内以及x和y 必须在b的定义域内的条件与膨胀的二值定义中的条件是相似的(这里两个集合的交集至少应有一个元素)。该公式的形式与二维卷积是相似的,并且用最大值运算代替卷积求和,用加法运算代替卷积乘积。2、用结构元B对灰度图像进行腐蚀表示为:这里和分别是f和b的定义域。平移参数必须在f的定义域内,而且x和y必须在b的定义域内,这与腐蚀的二值定义中的条件相似。同样,公式在形式上与二维相关是相似的,并且用最小值运算代替了相关运算,用减法运算代替了相关的乘积。灰度形态学的膨胀与腐蚀的一维示意图如下:图5 膨胀与腐蚀一维示意图3、形态学梯度:膨胀和腐蚀经常用于计算图像的形态学梯度,其公式为: (式9.6-11)膨胀粗化一副图像中的区域,二腐蚀则细化它们。膨胀和腐蚀的差强调了区域间的边界。同质区域不受影响,因此减操作趋于消除同质区域。最终结果是边缘被增强而同质区域的贡献被抑制,从而产生类似于微分的效果。4、形态学Top-hat变换,定义为: (式9.6-12)f是输入图像,b是结构元函数,该应用对于增强灰度图像的阴影细节很有用处。2、 实验结果及讨论实验结果如图(6)图(7)所示:1、 对于处理二值图像Fig9.20(left),本实验使用全1矩阵作为结构元素。实验结果如图6所示:从左做到右,从上到下依次为:Fig9.20(left)原图像、对图像进行腐蚀、膨胀和边缘特征提取处理结果。从实验结果可见,经过腐蚀处理后,白色英文字母变得细化了,而经过膨胀处理后字母显得更宽了。右下角是边界提取结果,从结果可见边界比较明显。2、对于处理灰度图像Fig9.39(a),本次实验使用M矩阵作为结构元素。实现灰度图像的膨胀、腐蚀并进行形态学梯度处理和Top-hat变换。图7从左做到右,从上到下依次为:灰度图像的膨胀、腐蚀、形态学梯度处理和Top-hat变换结果。可以看到,膨胀处理后灰度图像的亮特征变浓了,暗特征降低了。腐蚀处理后灰度图像的暗特征变浓了,亮特征降低了,与膨胀效果相反。从图7的左下图可以看到经过形态学梯度公式处理后的图像边缘被增强而同质区域的贡献被抑制,产生了类似于微分的效果。从图7的右下图可以看到经过Top-hat变换后的图像的阴影细节得到增强。 图6 二值图像的膨胀、腐蚀和边缘特征提取 图5 灰度图像的膨胀、腐蚀、形态学梯度及Top-hat结果3、 程序附录clc;clear all;close all;%第一部分:二值图像的膨胀腐蚀及边界提取% 主函数%A=imread(Fig9.20(left).jpg); %输入图像IA=mat2gray(A); B=1 1 1;1 1 1;1 1 1; %3*3的结构元erode_img = My_DilateErode(A,B,im_erode);subplot(1,2,1);imshow(A); title(Fig9.20(left)原图);subplot(1,2,2);imshow(erode_img);title(腐蚀处理图);figuredilate_img = My_DilateErode(A,B,im_dilate);subplot(1,2,1);imshow(dilate_img); title(膨胀处理图); K = A - erode_img; % 边界提取:原图减去腐蚀结果subplot(1,2,2);imshow(K);title(边界提取结果图); %第二部分:灰度图像的膨胀腐蚀及Top-hat处理%M=0 1 0;1 1 1;0 1 0; %3*3的结构元ima=imread(Fig9.39(a).jpg);dilate_img = My_GrayDilateErode(ima,M,im_dilate); figureimshow(uint8(dilate_img);title(灰度图的膨胀结果);Figureerode_img = My_GrayDilateErode(ima,M,im_erode);imshow(uint8(erode_img);title(灰度图的腐蚀结果);Figuregrad_img = dilate_img - erode_img; % 公式9.6-11grad_img = uint8(grad_img);imshow(grad_img);title(形态学梯度输出结果);% Tophat处理 :先进行开操作,然后原图减去开操作结果m1 = erode_img; m2 = My_GrayDilateErode(m1,M,im_dilate);%开操作Th = double(ima) - m2; %顶帽变换Th = uint8(Th);figureimshow(Th);title(Tophat变换输出结果);%功能:实现二值图像膨胀或腐蚀% 调用形式:imb = My_DilateErode(ima,M,option)% 输入参数:% ima:输入图像,% M: 输入的结构元,% opetion:选择输出% 输出参数:% imb: 膨胀或者腐蚀后的二值图像%function imb = My_DilateErode(ima,M,option)m,n=size(ima);image_dilate = ones(m,n); % 输出膨胀图像image_erode = zeros(m,n); % 输出腐蚀图像Judge = zeros(3,3); % 33逻辑运算结果初始化 % 结构元作用于图像四周时为了不超出范围,需要将图像四周扩展imt=zeros(m+2,n+2);for i=2:m+1 for j=2:n+1 imt(i,j)=ima(i-1,j-1); endendfor i=2:m+1 for j=2:n+1 % 将结构元素与扩展图像中每33个模块进行与运算 Judge = M & imt(i-1,j-1),imt(i-1,j),imt(i-1,j+1);. imt(i,j-1),imt(i,j),imt(i,j+1);. imt(i+1,j-1),imt(i+1,j),imt(i+1,j+1); % 腐蚀:只有当33中所有元素都与结构元的各素均不同时将此中心位置 置0 if (Judge=zeros(3,3) image_dilate(i-1,j-1)=0; end % 膨胀:只有当33中所有元素都与结构元的各素均相同时将此中心位置 置1 if (Judge = ones(3,3) image_erode(i-1,j-1)=1; end endendswitch option %根据输入参数,选择输出结果 case im_dilate imb = image_dilate; % 返回膨胀后的图像 case im_erode imb = image_erode; % 返回腐蚀后的图像endend%功能:实现二值图像膨胀或腐蚀%功能:实现二值图像膨胀或腐蚀% 调用形式:imb = My_GrayDilateErode(ima,B,option)% 输入参数:% ima:输入图像,% B: 输入的结构元,% opetion:选择输出% 输出参数:% imb: 膨胀或者腐蚀后的二值图像%function imb = My_GrayDilateErode(ima,B,option)M,N=size(ima); imd=double(ima);B=double(B); if(strcmp(option ,im_erode) im_erode=imd; for m=4:(M-4) for n=4:(N-4) for x=1:3 for y=1:3 f(x,y)=imd(m-x,n-y)-B(x,y); end end im_e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论