数学形态学及其应用共41页
- 格式:ppt
- 大小:3.19 MB
- 文档页数:41
摘要论文研究了数学形态学理论,对基本形态学算子的几何意义与性质进行了归纳与总结,阐述了数学形态学用结构元素“探测”信号的本质。
论文对数学形态学的应用进行了研究,主要成果是:(1)将数学形念学应用于纺织工业纱线疵点检测中,提出了数学形态学广义结构元素的概念,并构造了形态学“梯形塔式”广义结构元素,丰富了数学形态学理论。
广义结构元素的概念和构造广义结构元素的方法是本文的创新点;(2)研究了数学形态学在红外序列图象弱小目标自动检测中的应用,提出了基于狄值形态重构丌的红外序列图象弱小目标自动检测算法,并利用形态学运算进行红外图象增强,进~步提高了算法的硷测性能,丰富了数学形态学在红外目标检测中的应用知识;(3)提出了应用数学形态学对闭环控制系统反馈信号进行滤波的方法,并成功地应用于实际系统巾.填补了数学形态学在这一应用领域中的空白。
以上应用算法无论在理论研究还址实际应用方面都具有重要价值。
论文研究了形念金字塔理论,主要成果是:(1)构造出了可以精确重构的多Jt度平形态闭会字塔,并成功地将其应用于图象的多分辨率分割。
该分割算法可以区别暗背景中的亮成分与亮背景中的暗成分,这对遥感等图象领域处理具有重要意义。
(2)构造了多尺度平形态混合金字塔,并成功地应用于扫描图象的滤波I—p。
以上研究对形态金字塔理论和应用研究都具有很高的参考价值。
论文研究了形态小波理论,主要成果是:(1)首次详细论述了非线性形念Haar小波构造方法,并将形态Haar小波成功地应用于图象分解中。
形态Haar小波具有非线性、尺度信号的取值范围同原始信号相同、信号局部最大(小)很好地保留在多个分辨率空怕J和可保证精确重构等优点,更适合应用于压缩编码、模式识别等领域;(2)提出了一种新的基于更新提升构造非冗余的、可完备重构的形态小波的方法,首次提出了广义更新算子的概念,阐述了构造了广义更新算子的方法,进一步发展了数学形态学理论。
广义更新算子的概念和广义更新算予的孛f=J造办法是本文的创新点;(3)提出了一种更新提升小波闽值去噪算法,对比实验表明该,J法比传统小波闽值去噪算法具有明显的优势,峰值信噪比提高2~5dB,信噪比约提高4~7dB,尤其在低信噪比情况下性能更加优越。
实验二、数学形态学及其应用一、实验目的理解和掌握数学形态学的基本理论和算法,练习使用形态学、区域、边界和阀值的方法结合图像增强复原的相关知识点对图像进行边缘提取和分割;二、实验原理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提交实验的原始图像、结果图像和统计信息。
数学形态学方法及其应用
1、[GeneralInformation]书名=数学形态学方法及其应用=页数=178SS号
=10068263出版日期=封面页书名页版权页前言页名目页前言第一章绪论第一节
数字图象处理第二节数学形态学的基本特点第二章数学形态学的基本运算第一
节膨胀和腐蚀第二节开和闭第三节击中和薄化、厚化运算第四节基本变换的主要
性质第三章图象数字化与测地距离第一节图象的数字化第二节距离第三节道路
与连通性第四节测地距离第四章图象的几何与拓扑特征第一节图象的面积与周
长第二节图象的拟圆度第三节颗粒分布特征第四节连能性质与欧拉数第五节图
象的骨架和细化
2、算法第五章灰值图象代数第一节膨胀和腐蚀第二节开运算和闭运算第三
节灰值图象的基本几何特征第四节灰值图象代数运算的另一种定义方法第六章
数学形态学应用于图象处理第一节概述第二节测地距离第三节结构矩阵在各种
运算中的效用第七章数学形态学应用于聚类第一节推广定义第二节基本运算第
三节高维聚类第八章对连续图象的基本形态变换第一节关于定量化四原则第二
节连续图象的腐蚀与膨胀第三节对连续图象的其他形态变换第九章连续图象的
几何与拓扑性质第一节预备学问第二节凸集第三节明可夫斯基函数第十章数学
形态学中的随机性方法第一节基本概念与工具第二节图象的颗粒
3、分布第三节图象的线条分布第四节图象的图变性第五节数字化的纹理特
征附录页
第1页。