数字图像处理形态学图像处理.ppt

上传人:本田雅阁 文档编号:3484317 上传时间:2019-09-02 格式:PPT 页数:43 大小:7.17MB
返回 下载 相关 举报
数字图像处理形态学图像处理.ppt_第1页
第1页 / 共43页
数字图像处理形态学图像处理.ppt_第2页
第2页 / 共43页
数字图像处理形态学图像处理.ppt_第3页
第3页 / 共43页
数字图像处理形态学图像处理.ppt_第4页
第4页 / 共43页
数字图像处理形态学图像处理.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《数字图像处理形态学图像处理.ppt》由会员分享,可在线阅读,更多相关《数字图像处理形态学图像处理.ppt(43页珍藏版)》请在三一文库上搜索。

1、数字图像处理 第09章 形态学图像处理,高振国 ,内容,预备知识,集合运算 二值图像 膨胀与腐蚀,结构元素的分解 膨胀与腐蚀的组合(例如开运算、闭运算、击中或击不中,使用查找表LUT技术编程) 标注连通分量,函数imlabel() 形态学重构(由重构做开运算,填充孔洞,清除边界对象) 灰度图像形态学 膨胀与腐蚀 开运算与闭运算 重构,引言,形态学 一词通常指生物学的一个分支,用于处理动物和植物的形状和结构。 数学形态学(mathematical morphology, MM) 是根据形态学概念发展而来具有严格数学理论基础的科学,并在图像处理和模式识别领域得到了成功应用。 除了通常作为一种抽取图

2、像中区域形状特征,如边界、骨骼和凸壳等,的工具外,也经常用于图像的预处理和后处理,如形态学滤波、细化和修剪等。,9.1预备知识,集合的运算,9.1预备知识,针对像素坐标集合的基本符号 集合B的映像 集合A的平移,9.2膨胀和腐蚀(二值图像),9.2.1膨胀 膨胀是二值图像中加长或变粗的操作,操作由一个称为结构元素的集合来控制。结构元素中必须明确指定原点 图像A用结构元素B膨胀,记作AB,其定义为:,9.2膨胀和腐蚀(二值图像),9.2.1膨胀,9.2膨胀和腐蚀(二值图像),9.2.1膨胀 例9.1,补全残缺文字,9.2膨胀和腐蚀(二值图像),9.2.2结构元素的分解 膨胀满足结合律,即A(BC

3、)= ABC 若结构元素B可以分解为B= B1B2,则用B对A膨胀 AB=A(B1B2)=AB1B2,后者计算效率更高,9.2膨胀和腐蚀(二值图像),9.2.3 matlab函数 函数Strel函数用于产生预定义结构元素矩阵信息 Se=strel(shape,parameters),9.2膨胀和腐蚀(二值图像),9.2.3 matlab函数 函数getsequence可分解结构元素 例9.2,分解结构元素,9.2膨胀和腐蚀(二值图像),9.2.4腐蚀 膨胀是二值图像中收缩或细化的操作,操作由一个称为结构元素的集合来控制。结构元素中必须明确指定原点 图像A用结构元素B膨胀,记作AB,其定义为:,

4、9.2膨胀和腐蚀(二值图像),9.2.4腐蚀,9.2膨胀和腐蚀(二值图像),9.2.4腐蚀 例9.3,去除细线,A = imread(ic.tif); se = strel(disk, 10); figure; subplot(2,2,1);imshow(A) title(原始图像) A2 = imerode(A, se); subplot(2,2,2);imshow(A2) title(使用结构元素disk(10)腐蚀后的图像) se = strel(disk, 5); A3 = imerode(A, se); subplot(2,2,3);imshow(A3) title(使用结构元素di

5、sk(5)腐蚀后的图像) A4 = imerode(A, strel(disk, 20); subplot(2,2,4);imshow(A4) title(使用结构元素disk(20)腐蚀后的图像),9.3膨胀和腐蚀的组合运算,开运算 图像A用结构元素B的开运算记作 开运算效果:平滑对象轮廓,断开狭窄的连接,取消细小的突出部分。 闭运算 图像A用结构元素B的闭运算记作 闭运算效果:将狭窄的缺口连接起来形成细长的弯口,并填充比结构小的孔洞。,9.3膨胀和腐蚀的组合运算,开运算和闭运算 开运算matlab函数,C=imopen(A,B) 闭运算matlab函数,C=imclose(A,B),9.3

6、膨胀和腐蚀的组合运算,开运算和闭运算 例9.4,函数imopen和imclose的使用,9.3膨胀和腐蚀的组合运算,开运算和闭运算 例9.4,指纹图像噪声去除,9.3膨胀和腐蚀的组合运算,9.3.2击中和(或)击不中变换 图像A用结构元素组B=(B1,B2)的击中击不中变换记作AB 该变换用于识别特定形状,9.3膨胀和腐蚀的组合运算,9.3.2击中和(或)击不中变换 图像A用结构元素组B=(B1,B2)的击中击不中变换记作AB 该变换用于识别特定形状,9.3膨胀和腐蚀的组合运算,9.3.2击中和(或)击不中变换 该变换的Matlab函数 C=bwhitmiss(A, B1,B2) 例9.5,定

7、位图像中对象的左上角像素,% 例9.5 bwhitmiss 击中或击不中变换 B1 = strel(0 0 0;0 1 1; 0 1 0); B2 = strel(1 1 1; 1 0 0;1 0 0); f = imread(corner.tif); figure; subplot(1,2,1);imshow(f) title(原始图像) g = bwhitmiss(f, B1, B2); subplot(1,2,2);imshow(g) title(使用结构元素组1击中击不中变换后的图像),9.3膨胀和腐蚀的组合运算,9.3.3击中和(或)击不中变换的编程 当结构元素较小时,使用查找表方式

8、运行较快。事先构造查找表LUT,其中记录各种可能邻域模式是否匹配。 为此需要为每种邻域模式定义一个编号,可另邻域各位权重如下。 工具箱两个相关函数,makelut(), applylut(),9.3膨胀和腐蚀的组合运算,9.3.3击中和(或)击不中变换的编程,9.3膨胀和腐蚀的组合运算,9.3.3击中和(或)击不中变换的编程 提取图像的端点,9.3膨胀和腐蚀的组合运算,9.3.3击中和(或)击不中变换的编程 例9.6,使用二值图像和查找表编写conway的生命游戏程序, test09_06.m,9.3膨胀和腐蚀的组合运算,9.3.4工具箱函数bwmorph,9.3膨胀和腐蚀的组合运算,9.3.

9、4工具箱函数bwmorph,test09_0601.m Bwmorph的使用,细化指纹 骨骼化,去除端点,9.4连通分量,基本概念 N4(p), ND(p), N8(p); 4邻接,8邻接; 4连接,8连接,9.4连通分量,标记连通分量的函数bwlabel L,num=bwlabel(f,conn);其中f是二进制图像,conn为4或8,表示考虑的连接类型,L标记矩阵,num连通分量数量,9.4连通分量,标记连通分量的函数bwlabel L,num=bwlabel(f,conn);其中f是二进制图像,conn为4或8,表示考虑的连接类型,L标记矩阵,num连通分量数量,f = imread(o

10、bjects.tif); L,n=bwlabel(f); r,c=find(L=3); rbar=mean(r); cbar=mean(c); imshow(f); hold on; for k=1:1:n, r,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,*,MarkerFaceColor,w); end,9.5形态学重构,重构变换 重构变换涉及两幅图像和一

11、个结构元素; 一幅图像称为标记marker,为变换的初始状态;另一幅图像称为掩膜mask,为变换的限制区域。该结构元素决定连接性,通常为ones(3,1) 若g是掩膜,f为标记,则从f开始重构g的变换记作Rg(f),其由如下迭代过程定义。 重构matlab函数,out=imreconstruct(marker,mask),9.5形态学重构,重构可以有很多应用,不同的应用体现在marker和mask的不同选择。 重构变换的应用1-由重构做开运算 由重构做开运算 传统开运算中,腐蚀去除掉小对象,随后的膨胀恢复原始对象形状,但受元素结构等影响,恢复的往往不是很精确; 而重构则能精确恢复原始对象。 使

12、用结构元素B对图像f由重构做开运算的操作记作Rf(fB)。 例9.8,test09_08.m,f = imread(text1.tif); fe = imerode(f,ones(51,1); fobr = imreconstruct(fe,f);,9.5形态学重构,重构变换的应用2-填充孔洞; 定义标记图像fm如下,则 的作用是填充图像中的孔洞, Matlab函数,g=imfill(f,holes); 重构变换的应用3-清除边界对象; 定义标记图像fm如下,用原图像做掩膜,则 的作用是清除边界的对象, Matlab函数,g=imclearborder(f,conn);,9.6灰度图像形态学,

13、9.6.1 ,膨胀 使用结构元素b对灰度图像f的膨胀记作fb,定义为: 当结构元素b是平坦的,即b(x,y)在其定义域内都为0时, 9.6.1 ,腐蚀 使用结构元素b对灰度图像f的腐蚀记作fb,定义为: 当结构元素b是平坦的,即b(x,y)在其定义域内都为0时,,9.6灰度图像形态学,9.6.1 膨胀与腐蚀 灰度图像的形态学梯度定义为膨胀运算与腐蚀运算的结果之间的差值。,f=imread(city.tif); se=strel(square,3); gd=imdilate(f,se); ge=imerode(f,se); morph_grad=imsubtract(gd,ge); figure

14、; subplot(2,2,1);imshow(f,); title(原图); subplot(2,2,2);imshow(gd,); title(原图的膨胀结果); subplot(2,2,3);imshow(ge,); title(原图的腐蚀结果); subplot(2,2,4);imshow(morph_grad,);title(原图的形态学梯度);,9.6灰度图像形态学,9.6.2 开运算与闭运算 开运算 把一幅图像看做是一个三维表明,其亮度值代表xy平面上的高度值,则当结构元素b在f下面活动时,结构元素的任何部分的最高值构成了开运算的结果。 可以除去比结构元素更小的明亮细节,同时保持

15、图像整体的灰度级和较大的明亮区域不变。 闭运算 当结构元素b在f的上面活动时,结构元素的任何部分的最低值构成了闭运算的结果。 除去比结构元素更小的暗部细节,同时保持图像整体的灰度级和较大的暗部区域不变。,9.6灰度图像形态学,9.6.2 开运算与闭运算 例9.9,使用开运算和闭运算做形态学平滑,test09_09.m,% 例9.9 使用开运算和闭运算进行形态学平滑 f = imread(dowel.tif); figure; subplot(2,2,1);imshow(f) title(木按钉的原始图像) se = strel(disk,5); fo = imopen(f,se); subpl

16、ot(2,2,2);imshow(fo) title(使用半径为5的圆盘执行开运算后的图像) foc = imclose(fo,se); subplot(2,2,3);imshow(foc) title(经过开运算后再经闭运算后的图像) fasf = f; for k = 2:5 se = strel(disk,k); fasf = imclose(imopen(fasf,se),se); end subplot(2,2,4);imshow(fasf) title(交替顺序滤波后的图像),9.6灰度图像形态学,9.6.2 开运算与闭运算 例9.10,使用顶帽运算消除背景差异,test09_10

17、.m,f=imread(rice.tif); g = f=(255*graythresh(f); se=strel(disk,100); fo=imopen(f,se); f2=imsubtract(f,fo); g1 = f2=(255*graythresh(f2); figure; subplot(2,3,1);imshow(f); title(原图); subplot(2,3,2);imshow(g); title(经过阈值处理后的图像) subplot(2,3,3);imshow(fo); title(原图开运算后的图像); subplot(2,3,4);imshow(f2); tit

18、le(原图减去开运算); subplot(2,3,5);imshow(g1); title(最终结果);,9.6灰度图像形态学,9.6.2 开运算与闭运算 例9.11,颗粒分析,test09_11.m,f=imread(dowel.tif); sumpixels=zeros(1,36); for k=0:35, se=strel(disk,k); fo=imopen(f,se); sumpixels(k+1)=sum(fo(:); end figure; subplot(1,3,1); plot(0:35,subpixels); xlabel(k); ylabel(surface area);

19、 subplot(1,3,2); plot(-diff(sumpixels); xlabel(k); ylabel(surface area reduction);,9.6灰度图像形态学,9.6.3重构 直接重构 开运算重构 先腐蚀,再以腐蚀结果为marker,以原图为mask,进行重构 闭运算重构 原图求补,再腐蚀,再以腐蚀结果为marker,以原补图为mask,进行重构,重构结果再求补。,9.6灰度图像形态学,9.6.3重构 开运算重构 先腐蚀,再以腐蚀结果为marker,以原图为mask,进行重构 闭运算重构 原图求补,再腐蚀,再以腐蚀结果为marker,以原补图为mask,进行重构,重

20、构结果再求补。,f=imread(dowel.tif); se=strel(disk,5); fe=imerode(f,se); fobr=imreconstruct(fe,f); fobrc=imcomplement(fobr); fobrce=imerode(fobrc,se); fobrcbr=imcomplement(imreconstruct(fobrce,fobrc); figure; subplot(2,2,1);imshow(f);title(原图); subplot(2,2,2);imshow(fe);title(原图腐蚀结果); subplot(2,2,3);imshow(fobr);title(腐蚀重构); subplot(2,2,4);imshow(fobrcbr);title(进一步闭运算重构);,9.6灰度图像形态学,9.6.3重构 例9.12,使用重构删除复杂图像的背景,test09_12.m,步骤: (1)获取面板背景,按钮,高光线条; (2)从原图中减去上一部分内容; (3)完善,本章小结,二值图像 膨胀与腐蚀,结构元素的分解 膨胀与腐蚀的组合(例如开运算、闭运算、击中或击不中,使用查找表LUT技术编程) 标注连通分量,函数imlabel() 形态学重构(由重构做开运算,填充孔洞,清除边界对象) 灰度图像形态学 膨胀与腐蚀 开运算与闭运算 重构,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1