第9章形态学图像处理.ppt
- 文档编号:18889739
- 上传时间:2024-02-08
- 格式:PPT
- 页数:47
- 大小:1.62MB
第9章形态学图像处理.ppt
《第9章形态学图像处理.ppt》由会员分享,可在线阅读,更多相关《第9章形态学图像处理.ppt(47页珍藏版)》请在冰点文库上搜索。
第九章第九章形态学图像处理形态学图像处理目录目录集合论基本概念集合论基本概念膨胀和腐蚀膨胀和腐蚀膨胀和腐蚀的组合膨胀和腐蚀的组合标注连接分量标注连接分量42311集合论基本概念集合论基本概念5灰度图像形态学灰度图像形态学形态学重构形态学重构6形态学图像处理概述形态学图像处理概述数学形态学表示以形态为基础对图像进行分析的数学工具用具有一定形态的结构元素去度量和提取图像中的对应形状,以达到对图像分析和识别的目的。
定义定义思想思想作用作用基本运算基本运算概述概述简化图像数据,保持它们基本的形状特性,并除去不相干的结构。
膨胀、腐蚀、开操作和闭操作9.1集合论基本概念集合论基本概念u集合论基本概念并集:
交集:
差集:
映像:
平移:
即点对集合A的平移9.2膨胀和腐蚀膨胀和腐蚀u膨胀作用:
加长或变粗二值图像中的对象定义1:
若A和B是两个集合,则A被N膨胀定义为:
其中,A被B膨胀是所有结构元素原点位置的集合,B是结构元素定义2:
即B的反射经过平移与A的交集是A的子集满足交换律:
9.2膨胀和腐蚀膨胀和腐蚀u结构元素分解满足组合律:
利用此性质进行结构元素分解,从而提高运算速度。
函数strel:
se=strel(shape,parameters)其中,shape是指定希望形状的字符串,而paramters是指定形状信息的一系列参数函数getsequence:
用于提取并检查分解中的单个结构元素。
u腐蚀作用:
消除边界点,使边界向内部收缩,用来消除小且无意义的物体。
定义1:
A和B是两个集合,A被B腐蚀定义为AB=定义2:
AB=9.2膨胀和腐蚀膨胀和腐蚀u例:
膨胀的简单应用A=imread(Fig0906(a)(broken-text).tif);B=010;111;010;A2=imdilate(A,B);subplot(1,2,1),imshow(A).subplot(1,2,2),imshow(A2)9.2膨胀和腐蚀膨胀和腐蚀u例:
腐蚀的简单应用A=imread(Fig0908(a)(wirebond-mask).tif);se=strel(disk,10);%构造半径为10的圆盘结构元素A2=imerode(A,se);%进行腐蚀操作subplot(2,2,1),imshow(A)subplot(2,2,2),imshow(A2)se=strel(disk,5);A3=imerode(A,se);subplot(2,2,3),imshow(A3)A4=imerode(A,strel(disk,20);subplot(2,2,4),imshow(A4)9.2膨胀和腐蚀膨胀和腐蚀u例:
实验结果总结:
根据结构元素的大小不同,可以腐蚀掉不同的图像不相关细节9.3膨胀和腐蚀的组合膨胀和腐蚀的组合uu开操作作用:
删除了不能包含结构元素的对象匹配;平滑了对象的轮廓;断开了狭窄的连接;消除了细的突出物。
定义1:
使用结构元素B对集合A进行开操作:
即先用B对A进行腐蚀,再用B对结果进行膨胀定义2:
9.3膨胀和腐蚀的组合膨胀和腐蚀的组合u开操作几何解释:
开操作通过B中的点来完成B在A的边界内转动,B中的点能到达A边界的最大值9.3膨胀和腐蚀的组合膨胀和腐蚀的组合u闭操作作用:
平滑了对象轮廓;将狭窄的缺口连接起来形成细长的弯口;填充比结构元素小的洞;并填补轮廓线中的断裂。
定义:
使用结构元素B对集合A进行闭操作:
即先用B对A进行膨胀,再用B对结果进行腐蚀闭操作通过B中的点来完成B在A的边界外部转动,因为开操作和闭操作是一对对偶操作u闭操作的几何意义9.3膨胀和腐蚀的组合膨胀和腐蚀的组合u开操作函数:
C=imopen(A,B)其中,A是一幅二值图像,B是指定了结构元素的矩阵u闭操作函数:
C=imclose(A,B)9.3膨胀和腐蚀的组合膨胀和腐蚀的组合u函数imopen和imclose的应用实验:
f=imread(Fig0910(a)(shapes).tif);se=strel(square,20);%构造20*20的结构元素fo=imopen(f,se);%使用20*20的结构元素对原图像进行开运算fc=imclose(f,se);foc=imclose(fo,se);实验:
f=imread(Fig0911(a)(noisy-fingerprint).tif);se=strel(square,3);fo=imopen(f,se);foc=imclose(fo,se);9.3膨胀和腐蚀的组合膨胀和腐蚀的组合u实验结果:
开操作:
删除了不能包含结构元素的对象匹配;平滑了对象的轮廓;断开了狭窄的连接;消除了细的突出物。
闭操作:
平滑了对象轮廓;将狭窄的缺口连接起来形成细长的弯口;填充比结构元素小的洞;并填补轮廓线中的断裂。
先开操作再闭操作:
构成了噪声滤波器,可以有效地去除噪声9.3膨胀和腐蚀的组合膨胀和腐蚀的组合u实验结果:
原图像存在噪声:
黑色背景上的亮元素和亮指纹部分暗元素开操作:
消除了背景和指纹中所有的噪声,但指纹纹路间有新间断先开操作再闭操作:
可以有效地去除噪声,但是指纹纹路并没有完全恢复9.3膨胀和腐蚀的组合膨胀和腐蚀的组合u击中或击不中变换作用:
形状检测的基本工具定义1:
若A和B是两个集合,B是结构元素,B=(B1,B2)则击中或击不中变换定义为:
其中,B1是由与一个对象相联系的B元素构成的集合B2是与相关背景有关的B元素的集合定义2:
函数bwhitmiss:
C=bwhitmiss(A,B1,B2)其中,C为结果,A为输入图像,B1和B2为结构元素9.3膨胀和腐蚀的组合膨胀和腐蚀的组合u使用函数bwhitmissf=imread(Fig0913(a)(small-squares).tif);B1=strel(000;011;010);B2=strel(111;100;100);g=bwhitmiss(f,B1,B2);9.3膨胀和腐蚀的组合膨胀和腐蚀的组合u函数bwmorph功能:
对二值图像进行数学形态学运算。
g=bwmorph(f,operation,n)其中,f是衣服输入二值图像,operation是一个字符串,用于指定进行的形态学处理类型,n是一个用于指定将被重复的操作次数的正整数。
operation可以为以下值:
bothat:
进行“bottomhat”形态学运算,即返回源图像减去闭运算的图像;bridge:
进行像素连接操作;clean:
去除图像中孤立的亮点,close:
进行形态学闭运算(即先膨胀后腐蚀);diag:
采用对角线填充,去除八邻域的背景;dilate:
使用结构元素ones(3)对图像进行膨胀运算;erode:
使用结构元素ones(3)对图像进行腐蚀运算;fill:
填充孤立的黑点,9.3膨胀和腐蚀的组合膨胀和腐蚀的组合u函数bwmorph:
g=bwmorph(f,operation,n)hbreak:
断开图像中的H型连接;majority:
如果一个像素的8邻域中有等于或超过5个像素点的像素值为1,则将该点像素值置1;open:
进行形态学开运算(即先腐蚀后膨胀);remove:
如果一个像素点的4邻域都为1,则该像素点将被置0;skel:
骨架提取但保持图像中物体不发生断裂;不改变图像欧拉数;spur:
去除小的分支,或引用电学术语“毛刺”;thicken:
通过在边界上添加像素达到加粗物体轮廓的目的;thin:
进行细化操作;tophat:
进行“tophat”形态学运算,返回源图像减去开运算的图像;9.3膨胀和腐蚀的组合膨胀和腐蚀的组合u例:
细化操作f=imread(Fig0911(a)(noisy-fingerprint).tif);se=strel(square,3);%构造3*3的结构元素fo=imopen(f,se);foc=imclose(fo,se);g1=bwmorph(foc,thin,1);g2=bwmorph(foc,thin,2);ginf=bwmorph(foc,thin,Inf);9.4标注连接分量标注连接分量u例:
计算和显示连接分量的质心f=imread(Fig0917(a)(ten-objects).tif);L,n=bwlabel(f);%计算8连接时图像中的所有连接分量imshow(f)holdonfork=1:
nr,c=find(L=k);rbar=mean(r);cbar=mean(c);plot(cbar,rbar,Marker,o,MarkerEdgeColor,k,MarkerFaceColor,k,MarkerSize,10);plot(cbar,rbar,Marker,*,MarkerEdgeColor,w);end9.5形态学重构形态学重构u形态学重构概述:
重构是一种涉及到两幅图像和一个结构元素的形态学变换。
一幅图像,即标记,是变换的开始点。
另一幅图像是掩膜,用来约束变换过程。
结构元素用于定义连接性。
定义:
若g是掩膜,f为标记,则从f重构g可以记为Rg(f)由下面的迭代过程定义:
函数imreconstructout=imreconstruct(marker,mask)其中,masker是标记,mask是掩膜1:
将h1初始化为标记图像f.2:
创建结构元素:
B=ones(3).3:
重复直到其中,标记f必须是g的一个子集。
9.5形态学重构形态学重构u由重构做开运算、填充孔洞f=imread(Fig0922(a)(book-text).tif);fe=imerode(f,ones(51,1);fo=imopen(f,ones(51,1);fobr=imreconstruct(fe,f);g=imfill(f,holes);9.6灰度图像形态学灰度图像形态学u膨胀和腐蚀膨胀定义:
使用结构元素b对f的灰度膨胀定义为:
其中,和分别是f和b的定义域,f和b是函数而不是二值形态学情况中的集合腐蚀定义:
使用结构元素b对f的灰度腐蚀定义为:
其中,和分别是f和b的定义域,9.6灰度图像形态学灰度图像形态学u膨胀和腐蚀操作f=imread(Fig0923(a)(aerial).tif);se=strel(square,3);%构造了一个平坦的3*3的结构元素gd=imdilate(f,se);%对原图像进行膨胀操作ge=imerode(f,se);%对原图像进行腐蚀操作morph_grad=imsubtract(gd,ge);%从膨胀的图像中减去腐蚀过的图像产生一个形态学梯度,即检测图像中局部灰度级变化的一种度量,具有边缘增长特性。
膨胀:
得到的图像比原图像更明亮,并且减弱或消除小的、暗的细节部分。
即比原图像模糊。
腐蚀:
被腐蚀的图像更暗,并且尺寸小、明亮的部分被削弱。
9.6灰度图像形态学灰度图像形态学u开运算和闭运算图像开运算:
先进行腐蚀操作可以除去小的亮的图像细节,但这样会使图像变暗,接下来进行膨胀操作增强图像的整体亮度。
图像闭运算:
先通过膨胀除去图像中的暗细节,同时增加图像的亮度,接下来对图像进行腐蚀,而不会将膨胀操作除去的部分重新引入图像中。
u例:
使用开运算和闭运算做形态学平滑f=imread(Fig0925(a)(dowels).tif);se=strel(disk,5);%创建一个平坦的半径为5的圆盘型结构元素fo=imopen(f,se);foc=imclose(fo,se);fasf=f;fork=2:
5%交替顺序滤波即用一系列不断增大的结构元素来执行开-闭滤波se=strel(disk,k);fasf=imclose(imopen(fasf,se),se);end9.6灰度图像形态学灰度图像形态学u实验结果:
先开运算后闭运算构成噪声滤波器,用来平滑图像并去除噪声交替顺序滤波与单个开-闭滤波相比,处理图像更平滑一些。
9.6灰度图像形态学灰度图像形态学u颗粒分析:
形态学技术可以用于间接地度量颗粒的大小分布,但不能准确地识别并度量每一个颗粒。
对于形状规则且亮于背景的颗粒,基本方法是应用不断增大尺寸的形态学开运算。
f=imread(Fig0925(a)(dowels).tif);sumpixels=zeros(1,36);fork=0:
35se=strel(disk,k);fo=imopen(f,se);%进行半径0到35的圆盘形开运算sumpixels(k+1)=sum(fo(:
);%图像开运算中所有像素值的和即为表面积endplot(0:
35,sumpixels),xlabel(k),ylabel(表面区域)plot(-diff(sumpixels)%此处diff即为求前后两项的差,xlabel(k)ylabel(表面区域减少);9.6灰度图像形态学灰度图像形态学u实验结果:
(a)连续开运算之间的表面积会减小(b)图峰值表明出现了大量的有着这种半径的对象9.6灰度图像形态学灰度图像形态学u例:
使用重构删除复杂图像的背景f=imread(Fig0930(a)(calculator).tif);f_obr=imreconstruct(imerode(f,ones(1,71),f);%执行开运算重构f_o=imopen(f,ones(1,71);%标注的开运算结果,方便比较f_thr=imsubtract(f,f_obr);%顶帽重构f_th=imsubtract(f,f_o);%标准顶帽计算,方便比较g_obr=imreconstruct(imerode(f_thr,ones(1,11),f_thr);%执行开运算重构g_obrd=imdilate(g_obr,ones(1,21);%使用水平线进行膨胀,f2=imreconstruct(min(g_obrd,f_thr),f_thr);%执行开运算重构u9.6灰度图像形态学灰度图像形态学u实验结果第十章第十章图像分割图像分割目录目录点、线和边缘检测点、线和边缘检测使用使用Hough变换的线检测变换的线检测阈值处理阈值处理基于区域的分割基于区域的分割42311集合论基本概念集合论基本概念5使用分水岭变换的分割使用分水岭变换的分割10.1点、线和边缘检测点、线和边缘检测u点、线和边缘检测点、线和边缘检测定义:
将图像分成各具特性的区域并提出感兴趣目标的技术和过程。
基础:
图像分割算法是基于亮度值的不连续性和相似性。
不连续性:
基于灰度的不连续变化分割图像,例如图像边缘相似性:
根据指定的准则将图像分割成相似的区域。
例如阈值处理、区域生长、区域分离和合成。
u图像分割图像分割通用方法:
使用一个模板对整幅图像进行检测。
响应:
注:
此处为3*3的掩膜点检测:
即检测到一个点,即孤立点与周围不同。
10.1点、线和边缘检测点、线和边缘检测f=imread(Fig1002(a)(test_pattern_with_single_pixel).tif);w=-1-1-1;-18-1;-1-1-1;%点检测模板g=abs(imfilter(double(f),w);%响应的绝对值T=max(g(:
)%选择已滤波图像中的最大值作为阈值g=g=T;u例:
点检测例:
点检测10.1点、线和边缘检测点、线和边缘检测线检测:
R1R2R3R4分别代表水平、+45、垂直、-45、线模板。
若则该点被认为在模板i方向的线更相关。
f=imread(Fig1004(a)(wirebond_mask).tif);w=2-1-1;-12-1;-1-12;-45度线检测模板g=imfilter(double(f),w);gtop=g(1:
120,1:
120);gtop=pixeldup(gtop,4);gbot=g(end-119:
end,end-119:
end);gbot=pixeldup(gbot,4);g=abs(g);T=max(g(:
);g=g=T;u例:
线检测10.1点、线和边缘检测点、线和边缘检测两类边缘检测方法:
一阶梯度算子和二阶拉普拉斯算子f=imread(Fig1006(a)(building).tif);gv,t=edge(f,sobel,vertical);%此处为sobel检测器检测垂直边缘tt=0.0516%函数edge自动确定的阈值gv1=edge(f,sobel,0.15,vertical);gboth=edge(f,sobel,0.15);w45=-2-10;-101;012;指定检测45度边缘的掩膜g45=imfilter(double(f),w45,replicate);T=0.3*max(abs(g45(:
);g45=g45=T;u例:
使用例:
使用sobel检测器来提取边缘检测器来提取边缘10.2使用霍夫变换的线检测使用霍夫变换的线检测f=zeros(101,101);f(1,1)=1;f(101,1)=1;f(1,101)=1;f(101,101)=1;f(51,51)=1;H=hough(f);%霍夫变换H,theta,rho=hough(f);%使用三个参数调用hough函数imshow(theta,rho,H,notruesize)axison,axisnormal%打开轴标记,并在显示结果中带有矩形xlabel(theta),ylabel(rho)%将希腊字母标在轴上u霍夫变换:
霍夫变换:
在找出边界的点集之后,需要连接,形成完整的边界图像描述在找出边界的点集之后,需要连接,形成完整的边界图像描述10.2使用霍夫变换的线检测使用霍夫变换的线检测f=zeros(101,101);f(1,1)=1;f(101,1)=1;f(1,101)=1;f(101,101)=1;f(51,51)=1;H=hough(f);%霍夫变换H,theta,rho=hough(f);%使用三个参数调用hough函数imshow(theta,rho,H,notruesize)axison,axisnormal%打开轴标记,并在显示结果中带有矩形xlabel(theta),ylabel(rho)%将希腊字母标在轴上u使用使用Hough变换做线检测和链接变换做线检测和链接10.3阈值处理阈值处理u自动阈值自动阈值(迭代法迭代法)步骤:
步骤:
当T仅取决于f(x,y),阈值称为全局的。
当T仅取决于f(x,y)和p(x,y),阈值是局部的。
当T取决于空间坐标x和y,阈值就是动态的,或自适应的。
选择图像灰度的中值作为初始阈值利用阈值将图像分割成两部分区域,并分别计算其灰度均值u1和u2。
计算新的阈值:
T=1/2(u1+u2)重复以上两个步骤,直到连续迭代中T的差比预先制定的参数小为止。
u阈值处理操作:
阈值处理操作:
点(x,y)的局部性质点(x,y)的灰度级10.3阈值处理阈值处理f=imread(Fig1013(a)(scanned-text-grayscale).tif);T=0.5*(double(min(f(:
)+double(max(f(:
);%设定初始阈值done=false;whiledoneg=f=T;Tnext=0.5*(mean(f(g)+mean(f(g);%新的阈值done=abs(T-Tnext)TT=101.4717T2=graythresh(f)T2=0.3961T2*255ans=101g=f=T;%因为前景是黑色的字,所以要分离出来的话这里就要用g1=ff=imread(Fig1014(a)(defective_weld).tif);g,NR,SI,TI=regiongrow(f,255,65);%完成区域生长,其中f为被分割的图像,NR为不同区域的数目,SI为一幅包含有种子点的图像,TI为一幅图像,该图像包含了在经过连通性前通过阈值测试的像素。
g是分割后的图像u例:
区域生长对焊接孔隙检测的应用10.4.2区域分离和合并区域分离和合并优点:
避开了种子点的选取具体算法:
设整幅图像为初始区域。
对每一个区域R,如果P(R)=FALSE,则把该区域分裂成四个子区域。
重复上一步,直到没有区域可以分裂。
对于图像中任意两个相邻的R1和R2,如果P(R1R2)=TRUE,则把这两个区域合并为一个区域。
重复上一步,直到没有相邻区域可以合并,算法结束。
u区域分离和合并:
区域分离和合并:
10.5使用分水岭变换的分割使用分水岭变换的分割f=imread(Fig1020(a)(binary-dowel-image).tif);f1=im2double(f);g=im2bw(f1,graythresh(f1);gc=g;%对图像求补D=bwdist(gc);%计算求补后的距离变换L=-watershed(-D);%计算距离变换的负分水岭脊线W=L=0;g2=g&W;u例:
使用距离和分水岭变换分割二值图像例:
使用距离和分水岭变换分割二值图像(f)黑色叠加在原始二值图像上后的分水岭脊线
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 形态学 图像 处理