- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二 数学形态学及其应用
实验二、数学形态学及其应用
实验目的
理解和掌握数学形态学的基本理论和算法,练习使用形态学、区域、边界和阀值的方法结合图像增强复原的相关知识点对图像进行边缘提取和分割;
实验原理
1 膨胀和腐蚀是二值形态学的基本操作,其中膨胀是是将与目标区域的背景点合并到该目标物中,使目标物边界向外部扩张的处理;而腐蚀则是一种消除连通域的边界点,使边界向内收缩的处理。贴标签是对不同连通域区分和标记的基本算法。
两者数学表达如下:
膨胀:
腐蚀:
2图象分割是按照某些特性(如灰度级,频谱,颜色,纹理等)将图象划分成一些区域,在这些区域内其特性是相同的或者说是均匀的,两个相邻区域彼此特性则是不同的,其间存在着边缘或边界。按照使用图像的特点可以分为两类:
利用区域间灰度不连续性――基于边界检测
利用区域内灰度的相似性――基于区域分割
3 骨架提取
Blum 1967年给出了骨架的最初定义:骨架(中轴)是模型内部各个最大内切球中心的集合。它还有一个grassfire的模拟定义,从模型表面开始点火,各个方向上的火的相遇点所构成的集合。因为模型的骨架很好的保留了模型的拓扑连接性及其形态,所以经常被用于碰撞检测、三维动画、模型渲染、模型表面重建、模型检索等应用中,也有研究人员采用骨架为模型的分解做矫正。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:row
for j=1:col
if BW1(i,j)==1
BW3(i,j)=0;
else
BW3(i,j)=255;
end
end
end
SE0= [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:60
t1=imerode(t1,SE0);
t2=imdilate(imerode(t1,SE0),SE0);
BW2=BW2+(t1-t2);
figure(t);
subplot(2,2,1),imshow(BW3),title(原始图像);
sub
文档评论(0)