实验六数学形态学及其应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六: 数学形态学及其应用
实验原理
腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。
膨胀就是把连接成分的边界扩大一层的处理。而收缩则是把连接成分的边界点去掉从而缩小一层的处理。
二值形态学
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)⊕BB
4.闭运算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);%开运算(先腐蚀再膨胀)可以消除小物体、在纤细点处分离物体、平滑较大物体的边界。
%BW=imerode(BW,SE); %腐蚀
%BW=medfilt2(BW,[3 3]); %中值滤波(腐蚀后中值滤波可能导致本来连接的指纹断开)
%BW=imdilate(BW,SE); %膨胀
%BW=imclose(BW,SE); %闭运算(先膨胀再腐蚀)能够排除小型黑洞(黑色区域)。
BW=imdilate(BW,SE);%膨胀
BW=medfilt2(BW,[33]);%中值滤波(膨胀后中值滤波可能导致指纹图像噪声去除不干净)
BW=imerode(BW,SE);%腐蚀
subplot(1,2,2),imshow(BW);
title('处理后');
%BW=bwmorph(BW,'thin',Inf); %骨架化
%figure,imshow(BW);
%title('骨架化');
代码2:
function[]= op()
I=imread('rectangel.tif');
subplot(1,2,1),imshow(I);
title('原图');
BW=I;
BW=rgb2gray(BW);
SE=strel('square',10);%结构元素为边长10像素的正方形
BW=imopen(BW,SE);%开运算
BW=imclose(BW,SE);%闭运算
subplot(1,2,2),imshow(BW);
title('处理后');
实验结果
结果1
结果2
两组实验都是采用先开运算后闭运算的方法,不同的是第一组的结构元素是22×22的正方形,而且在闭运算的膨胀步骤后加了33×33的中值滤波;第二组采用的结构元素是1100×1100的正方形。