数学形态学及其应用共43页文档
- 格式:ppt
- 大小:3.26 MB
- 文档页数:43
数学形态学及其应用数学形态学及其应用数学形态学是一种数学方法和理论,最早由法国数学家乌戈尔·乔尔丹(Ugo Cerletti)在20世纪60年代提出。
它基于拓扑学、代数学和概率论等学科的基本原理,研究对象是图像和信号等离散数据的形状和结构,并利用数学统计的方法对它们进行分析和处理。
随着计算机技术的发展和应用需求的增加,数学形态学已经成为图像处理、模式识别和计算机视觉等领域中的重要工具。
数学形态学的基本概念包括结构元素、腐蚀、膨胀、开运算和闭运算等。
结构元素是一个小的图像或信号,用来描述和刻画对象的特征。
腐蚀和膨胀是两种基本的形态学操作,它们可以对图像或信号进行形状的变化和结构的调整。
开运算和闭运算是由腐蚀和膨胀组合而成的操作,用来改善图像的质量和特征。
在数学形态学的基础上,还发展了很多衍生的操作和算法,如基本重建、灰度形态学和形态学滤波等。
数学形态学在图像处理中的应用非常广泛。
例如,在图像分割中,可以利用数学形态学的方法提取目标的边界和内部结构;在图像增强中,可以利用形态学处理方法去除图像中的噪声和不规则部分;在模式识别中,可以利用形态学算法提取和描述对象的特征;在计算机视觉中,可以利用形态学方法实现图像的匹配和配准等等。
数学形态学的应用不仅仅局限在图像领域,它还可以应用于信号处理、文本分析、医学影像等其他领域。
以图像分割为例,数学形态学可以通过结构元素的逐步腐蚀或膨胀操作来准确地提取目标的轮廓。
首先,选择合适的结构元素,使其大小和形状适应目标的尺寸和形态特征。
然后,通过不断的腐蚀操作,可以逐渐消除目标周围的无关细节,最终得到目标的边界。
类似地,通过不断的膨胀操作,可以填补和连接目标内部的空洞,并得到目标的内部结构。
通过这种方式,数学形态学可以实现对复杂图像的准确分割,为图像识别和分析提供了可靠的基础。
总之,数学形态学是一种重要的数学方法和理论,它在图像处理、模式识别和计算机视觉等领域中具有广泛的应用和深远的意义。
摘要论文研究了数学形态学理论,对基本形态学算子的几何意义与性质进行了归纳与总结,阐述了数学形态学用结构元素“探测”信号的本质。
论文对数学形态学的应用进行了研究,主要成果是:(1)将数学形念学应用于纺织工业纱线疵点检测中,提出了数学形态学广义结构元素的概念,并构造了形态学“梯形塔式”广义结构元素,丰富了数学形态学理论。
广义结构元素的概念和构造广义结构元素的方法是本文的创新点;(2)研究了数学形态学在红外序列图象弱小目标自动检测中的应用,提出了基于狄值形态重构丌的红外序列图象弱小目标自动检测算法,并利用形态学运算进行红外图象增强,进~步提高了算法的硷测性能,丰富了数学形态学在红外目标检测中的应用知识;(3)提出了应用数学形态学对闭环控制系统反馈信号进行滤波的方法,并成功地应用于实际系统巾.填补了数学形态学在这一应用领域中的空白。
以上应用算法无论在理论研究还址实际应用方面都具有重要价值。
论文研究了形念金字塔理论,主要成果是:(1)构造出了可以精确重构的多Jt度平形态闭会字塔,并成功地将其应用于图象的多分辨率分割。
该分割算法可以区别暗背景中的亮成分与亮背景中的暗成分,这对遥感等图象领域处理具有重要意义。
(2)构造了多尺度平形态混合金字塔,并成功地应用于扫描图象的滤波I—p。
以上研究对形态金字塔理论和应用研究都具有很高的参考价值。
论文研究了形态小波理论,主要成果是:(1)首次详细论述了非线性形念Haar小波构造方法,并将形态Haar小波成功地应用于图象分解中。
形态Haar小波具有非线性、尺度信号的取值范围同原始信号相同、信号局部最大(小)很好地保留在多个分辨率空怕J和可保证精确重构等优点,更适合应用于压缩编码、模式识别等领域;(2)提出了一种新的基于更新提升构造非冗余的、可完备重构的形态小波的方法,首次提出了广义更新算子的概念,阐述了构造了广义更新算子的方法,进一步发展了数学形态学理论。
广义更新算子的概念和广义更新算予的孛f=J造办法是本文的创新点;(3)提出了一种更新提升小波闽值去噪算法,对比实验表明该,J法比传统小波闽值去噪算法具有明显的优势,峰值信噪比提高2~5dB,信噪比约提高4~7dB,尤其在低信噪比情况下性能更加优越。
实验六: 数学形态学及其应用实验原理腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。
膨胀就是把连接成分的边界扩大一层的处理。
而收缩则是把连接成分的边界点去掉从而缩小一层的处理。
二值形态学II (xx ,yy ), TT (ii ,jj )为0011⁄图像 腐蚀:EE (xx ,yy )=(II ⊙TT )(xx ,yy )=�[II (xx +ii ,yy +jj )&TT (ii ,jj )]mm ii ,jj=00膨胀:DD (xx ,yy )=(II ⊕TT )(xx ,yy )=�[II (xx +ii ,yy +jj )&TT (ii ,jj )]mm ii ,jj=00灰度形态学TT (ii ,jj )可取0011⁄以外的值 腐蚀: EE (xx ,yy )=(II ⊙TT )(xx ,yy )=mmii mm 00≤ii ,jj≤mm−11[II (xx +ii ,yy +jj )−TT (ii ,jj )] 膨胀: DD (xx ,yy )=(II ⊕TT )(xx ,yy )=mmmmxx 00≤ii ,jj≤mm−11[II (xx +ii ,yy +jj )+TT (ii ,jj )]1.腐蚀Erosion : XX ⊙BB ={xx :BB xx ⊂xx }B 1删两边B 2删右上2.膨胀Dilation : XX ⊕BB ={xx :BB xx ↑xx }B1补两边B2补左下3.开运算open:XX BB=(XX⊙BB)⊕BB4.闭运算close:XX BB=(XX⊕BB)⊙BB代码1:function[]= fs()I=imread('finger.tif');subplot(1,2,1),imshow(I);title('原图');BW=I;BW=rgb2gray(BW);SE=strel('square',2);%结构元素为边长2像素的正方形BW=imopen(BW,SE);%开运算(先腐蚀再膨胀)可以消除小物体、在纤细点处分离物体、平滑较大物体的边界。
实验二、数学形态学及其应用一、实验目的理解和掌握数学形态学的基本理论和算法,练习使用形态学、区域、边界和阀值的方法结合图像增强复原的相关知识点对图像进行边缘提取和分割;二、实验原理1 膨胀和腐蚀是二值形态学的基本操作,其中膨胀是是将与目标区域的背景点合并到该目标物中,使目标物边界向外部扩张的处理;而腐蚀则是一种消除连通域的边界点,使边界向内收缩的处理。
贴标签是对不同连通域区分和标记的基本算法。
两者数学表达如下:膨胀:B A C ⊕=腐蚀:B A C Θ=2图象分割是按照某些特性(如灰度级,频谱,颜色,纹理等)将图象划分成一些区域,在这些区域内其特性是相同的或者说是均匀的,两个相邻区域彼此特性则是不同的,其间存在着边缘或边界。
按照使用图像的特点可以分为两类:利用区域间灰度不连续性――基于边界检测利用区域内灰度的相似性――基于区域分割3 骨架提取Blum 1967年给出了骨架的最初定义:骨架(中轴)是模型内部各个最大内切球中心的集合。
它还有一个grassfire 的模拟定义,从模型表面开始点火,各个方向上的火的相遇点所构成的集合。
因为模型的骨架很好的保留了模型的拓扑连接性及其形态,所以经常被用于碰撞检测、三维动画、模型渲染、模型表面重建、模型检索等应用中,也有研究人员采用骨架为模型的分解做矫正。
4 细化处理细化算法依据是否使用迭代运算可以分为两类:第一类是非迭代算法,一次即产生骨架,如基于距离变换的方法,如游程长度编码细化等。
第二类是迭代算法,即重复删除图像边缘满足一定条件的像素,最终得到单像素宽带骨架。
迭代方法依据其检查像素的方法又可以再分成串行算法和并行算法,在串行算法中,是否删除像素在每次迭代的执行中是固定顺序的,它不仅取决于前次迭代的结果,也取决于本次迭代中已处理过像素点分布情况,而在并行算法中,像素点删除与否与像素值图像中的顺序无关,仅取决于前次迭代的结果。
部分源代码:(1)clc;clear all;;BW1 = imread('circles.png');SE = eye(5);BW2 = imerode(BW1,SE);BW3 = dilate(BW1,SE);subplot(2,2,1),imshow(BW1),title('原始图像');subplot(2,2,2),imshow(BW2),title('腐蚀后图像');subplot(2,2,3),imshow(BW3),title('膨胀后图像');(2)clc;clear all;SE=ones(10,5); %构建结构要素矩阵BW1=imread('circles.png');subplot(2,2,1),imshow(BW1),title('原始图像');BW2=erode(BW1,SE);subplot(2,2,2),imshow(BW2),title('开启操作中腐蚀操作图像');BW3=dilate(BW2,SE);subplot(2,2,3),imshow(BW3),title('开启操作中膨胀操作图像'); (3)clc;clear all;;BW1 = imread('circles.png');BW2=bwmorph(BW1,'skel',inf); %提取图像骨架subplot(2,2,1),imshow(BW1),title('原始图像');subplot(2,2,2),imshow(BW2),title('骨骼后图像');(4)clc;clear all;;BW1 = imread('circles.png');BW2=bwperim(BW1); %提取图像边界subplot(2,2,1),imshow(BW1),title('原始图像');subplot(2,2,2),imshow(BW2),title('边界图像');(5)骨架提取clc;clear all;;BW1 = imread('guge1.bmp');[row,col]=size(BW1);BW3=zeros(row,col);for i=1:rowfor j=1:colif BW1(i,j)==1BW3(i,j)=0;elseBW3(i,j)=255;endendendSE0= [0,1,0;1,1,1;0,1,0];SE1=[0,0,1,0,0;0,1,1,1,0;1,1,1,1,1;0,1,1,1,0;0,0,1,0,0];SE2=[0,0,0,1,0,0,0;0,0,1,1,1,0,0;0,1,1,1,1,1,0;1,1,1,1,1,1,1;0,1,1,1,1,1,0;0,0,1,1,1,0,0;0,0,0,1,0,0,0];t1=BW3;BW2=zeros(row,col);for t=1:60t1=imerode(t1,SE0);t2=imdilate(imerode(t1,SE0),SE0);BW2=BW2+(t1-t2);figure(t);subplot(2,2,1),imshow(BW3),title('原始图像');subplot(2,2,2),imshow(t1),title('腐蚀后图像1');subplot(2,2,3),imshow(t2),title('开运算后图像2');subplot(2,2,4),imshow(BW2),title('骨架后图像2');end(6)细化处理clear allclose allclc%清除所有的工作变量和命令窗口%显示原始图象y=~imread('guge2.bmp');%根据需要更改路径Y=y;figure(1);imshow(~y);title('二值图像');[X_size,Y_size]=size(y);for j=1:X_sizefor k=1:Y_sizef(j,k)=0;endendi=2;bModified=1;while(bModified==1)bModified=0;for j=2:X_size-1for k=2:Y_size-1if y(j,k)==1bCondition1=0;bCondition2=0;bCondition3=0;bCondition4=0;for m=-1:1for n=-1:1neighbour(m+2,n+2)=y(j+m,k+n);endendnCount=neighbour(1,1)+neighbour(1,2)+neighbour(1,3)+neighbour(2,1)+neighbour(2,3)+neighbour(3,1)+neig hbour(3,2)+neighbour(3,3);if(nCount>=2&&nCount<=6)bCondition1=1;endnCount=0;if(neighbour(1,2)==0&&neighbour(1,1)==1)nCount=nCount+1;endif(neighbour(1,1)==0&&neighbour(2,1)==1)nCount=nCount+1;endif(neighbour(2,1)==0&&neighbour(3,1)==1)nCount=nCount+1;endif(neighbour(3,1)==0&&neighbour(3,2)==1)nCount=nCount+1;endif(neighbour(3,2)==0&&neighbour(3,3)==1)nCount=nCount+1;endif(neighbour(3,3)==0&&neighbour(2,3)==1)nCount=nCount+1;endif(neighbour(2,3)==0&&neighbour(1,3)==1)nCount=nCount+1;endif(neighbour(1,3)==0&&neighbour(1,2)==1)nCount=nCount+1;endif(nCount==1)bCondition2=1;endif((neighbour(1,2)*neighbour(2,1)*neighbour(3,2)==0)||nCount~=1)bCondition3=1;endif((neighbour(2,1)*neighbour(3,2)*neighbour(2,3)==0)||nCount~=1)bCondition4=1;endif(bCondition1==1&&bCondition2==1&&bCondition3==1&&bCondition4==1) f(j,k)=y(j,k);endendendendfor j=1:X_sizefor k=1:Y_sizeif(f(j,k)==1)y(j,k)=0;endendendfor j=2:X_size-1for k=2:Y_size-1if y(j,k)==1bCondition1=0;bCondition2=0;bCondition3=0;bCondition4=0;for m=-1:1for n=-1:1neighbour(m+2,n+2)=y(j+m,k+n);endendnCount=neighbour(1,1)+neighbour(1,2)+neighbour(1,3)+neighbour(2,1)+neighbour(2,3)+neighbour(3,1)+neig hbour(3,2)+neighbour(3,3);if(nCount>=2&&nCount<=6)bCondition1=1;endnCount=0;if(neighbour(1,2)==0&&neighbour(1,1)==1)nCount=nCount+1;endif(neighbour(1,1)==0&&neighbour(2,1)==1)nCount=nCount+1;endif(neighbour(2,1)==0&&neighbour(3,1)==1)nCount=nCount+1;endif(neighbour(3,1)==0&&neighbour(3,2)==1)nCount=nCount+1;endif(neighbour(3,2)==0&&neighbour(3,3)==1)nCount=nCount+1;endif(neighbour(3,3)==0&&neighbour(2,3)==1)nCount=nCount+1;endif(neighbour(2,3)==0&&neighbour(1,3)==1)nCount=nCount+1;endif(neighbour(1,3)==0&&neighbour(1,2)==1)nCount=nCount+1;endif(nCount==1)bCondition2=1;if((neighbour(1,2)*neighbour(2,1)*neighbour(2,3)==0)||nCount~=1)bCondition3=1;endif((neighbour(1,2)*neighbour(3,2)*neighbour(2,3)==0)||nCount~=1)bCondition4=1;endif(bCondition1==1&&bCondition2==1&&bCondition3==1&&bCondition4==1) f(j,k)=y(j,k);bModified=1;endendendendfor j=1:X_sizefor k=1:Y_sizeif(f(j,k)==1)y(j,k)=0;endendendfigure(i);imshow(~y);title('二值图像');i=i+1;end[X_size,Y_size]=size(y);for j=1:X_sizefor k=1:Y_sizef(j,k)=0;endendbModified=1;while(bModified==1)bModified=0;for j=2:X_size-1for k=2:Y_size-1if y(j,k)==1bCondition1=0;bCondition2=0;bCondition3=0;bCondition4=0;for m=-1:1for n=-1:1neighbour(m+2,n+2)=y(j+m,k+n);endif((neighbour(1,2)==0&&neighbour(1,3)==1)||(neighbour(3,2)==0&&neighbour(3,3)==1))bCondition1=1;endif((neighbour(2,1)==0&&neighbour(1,1)==1)||(neighbour(2,3)==0&&neighbour(1,3)==1))bCondition2=1end;if((neighbour(1,2)==0&&neighbour(1,1)==1)||(neighbour(3,2)==0&&neighbour(3,1)==1))bCondition3=1;endif((neighbour(2,1)==0&&neighbour(3,1)==1)||(neighbour(2,3)==0&&neighbour(3,3)==1))bCondition4=1;endif(bCondition1==0&&bCondition2==0&&bCondition3==0&&bCondition4==0)if((neighbour(1,1)+neighbour(1,2)+neighbour(1,3)+neighbour(2,1)+neighbour(2,3)+neighbour(3,1)+neighbour (3,2)+neighbour(3,3))<=2)f(j,k)=0;elsef(j,k)=1;bModified=1;endendendendendfor j=1:X_sizefor k=1:Y_sizeif(f(j,k)==1)y(j,k)=0;endendendendfigure(i+1);imshow(~y);title('二次细化图像');figure(i+2);imshow(Y-y);title('最终图像');三、实验仪器1计算机;2 MA TLAB程序;四、实验报告内容1叙述实验过程;2提交实验的原始图像、结果图像和统计信息。