




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二、数学形态学及其应用一、 实验目的理解和掌握数学形态学的基本理论和算法,练习使用形态学、区域、边界和阀值的方法结合图像增强复原的相关知识点对图像进行边缘提取和分割;二、 实验原理1 膨胀和腐蚀是二值形态学的基本操作,其中膨胀是是将与目标区域的背景点合并到该目标物中,使目标物边界向外部扩张的处理;而腐蚀则是一种消除连通域的边界点,使边界向内收缩的处理。贴标签是对不同连通域区分和标记的基本算法。两者数学表达如下:膨胀:腐蚀: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:row for j=1:col if BW1(i,j)=1 BW3(i,j)=0; else BW3(i,j)=255; end endendSE0= 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(原始图像);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 all close allclc %清除所有的工作变量和命令窗口%显示原始图象y=imread(guge2.bmp);%根据需要更改路径Y=y;figure(1);imshow(y);title(二值图像);X_size,Y_size=size(y); for j=1:X_size for k=1:Y_size f(j,k)=0; endendi=2;bModified=1;while(bModified=1) bModified=0; for j=2:X_size-1 for k=2:Y_size-1 if y(j,k)=1 bCondition1=0; bCondition2=0; bCondition3=0; bCondition4=0; for m=-1:1 for n=-1:1 neighbour(m+2,n+2)=y(j+m,k+n); end end nCount=neighbour(1,1)+neighbour(1,2)+neighbour(1,3)+neighbour(2,1)+neighbour(2,3)+neighbour(3,1)+neighbour(3,2)+neighbour(3,3); if(nCount=2&nCount=2&nCount=6) bCondition1=1; end nCount=0; if(neighbour(1,2)=0&neighbour(1,1)=1) nCount=nCount+1; end if(neighbour(1,1)=0&neighbour(2,1)=1) nCount=nCount+1; end if(neighbour(2,1)=0&neighbour(3,1)=1) nCount=nCount+1; end if(neighbour(3,1)=0&neighbour(3,2)=1) nCount=nCount+1; end if(neighbour(3,2)=0&neighbour(3,3)=1) nCount=nCount+1; end if(neighbour(3,3)=0&neighbour(2,3)=1) nCount=nCount+1; end if(neighbour(2,3)=0&neighbour(1,3)=1) nCount=nCount+1; end if(neighbour(1,3)=0&neighbour(1,2)=1) nCount=nCount+1; end if(nCount=1) bCondition2=1; end if(neighbour(1,2)*neighbour(2,1)*neighbour(2,3)=0)|nCount=1) bCondition3=1; end if(neighbour(1,2)*neighbour(3,2)*neighbour(2,3)=0)|nCount=1) bCondition4=1; end if(bCondition1=1&bCondition2=1&bCondition3=1&bCondition4=1) f(j,k)=y(j,k); bModified=1; end end end end for j=1:X_size for k=1:Y_size if(f(j,k)=1) y(j,k)=0; end end end figure(i); imshow(y);title(二值图像); i=i+1; end X_size,Y_size=size(y); for j=1:X_size for k=1:Y_size f(j,k)=0; endendbModified=1;while(bModified=1) bModified=0; for j=2:X_size-1 for k=2:Y_size-1 if y(j,k)=1 bCondition1=0; bCondition2=0; bCondition3=0; bCondition4=0; for m=-1:1 for n=-1:1 neighbour(m+2,n+2)=y(j+m,k+n); end end if(neighbour(1,2)=0&neighbour(1,3)=1)|(neighbour(3,2)=0&neighbour(3,3)=1) bCondition1=1; end if(neighbour(2,1)=0&neighbour(1,1)=1)|(neighbour(2,3)=0&neighbour(1,3)=1) bCondition2=1 end; if(neighbour(1,2)=0&neighbour(1,1)=1)|(neighbour(3,2)=0&neighbour(3,1)=1) bCondition3=1; end if(neighbour(2,1)=0&neighbour(3,1)=1)|(neighbour(2,3)=0&neighbour(3,3)=1) bCondition4=1; end if(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; else f(j,k)=1; bModified=1; end end end end end for j=1:X_siz
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 灭菌锅安全培训课件
- 灭菌物品标准装载课件
- 2025-2030工业激光器光学元件寿命预测模型与维护策略报告
- 2025-2030工业气体市场供需变化与投资机会评估研究报告
- 2025-2030工业机器人技术应用前景与市场增长潜力报告
- 2025-2030工业机器人产业链供需分析与投资规划报告
- 2025-2030工业废水处理技术创新与环保产业投资战略规划报告
- 2025-2030工业大数据分析平台行业知识图谱构建与预测模型优化报告
- 应聘申请书模板
- 精神疾病鉴定申请书
- 成人床旁心电监护护理规程
- 食用菌种植项目可行性研究报告立项申请报告范文
- 2025版技术服务合同协议
- 焦炉机械伤害事故及其预防
- GB 5768.1-2025道路交通标志和标线第1部分:总则
- 江西红色文化考试试题及答案
- 苏州市施工图无障碍设计专篇参考样式(试行)2025
- 哮喘的诊疗和规范化治疗
- 2025年中国文创产品行业市场发展现状及投资前景展望报告
- 2025年新高考“八省联考”语文试题及参考答案解析版
- 2024年巴中市市属事业单位考试真题
评论
0/150
提交评论