MATLAB数字图像的腐蚀,填充,细化与粗化.doc

MATLAB数字图像的腐蚀,填充,细化与粗化.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
/ 《数字图像处理》 实验报告 姓名 学号 专业 电子科学与工程学院 实验 5 实验目的 本次实验的处理对象是二值图像,关于二值图像的处理运算主要包括腐蚀和膨胀。它们是其他处理过程的主要运算环节。开闭操作通过腐蚀和膨胀的不同顺序组合,能够使图像平滑,开闭操作再组合能够成噪声滤波器。形态学中的击中击不中变换也应用了腐蚀的运算,用于判断图像中能否找到目标结构,这在图像细化中也得到了应用。 本次实验主要实现: 图像的边缘提取; 在边缘提取的基础上实现区域填充; 在区域填充的基础上实现图像细化; 在图像细化的基础上实现图像粗化。 在Matlab软件的自带函数库中其实本身就包含有以上处理过程的函数,为了深入理解每种处理过程的原理,本次实验所有运算都自行编写实现。 核心代码及运行后截图 主函数: %% 读取图像 clear;clc; I = imread(onepiece.jpg); I = im2bw(I); % 转换为二值图像 [m,n] = size(I); %% 边界提取 f = im2bw([0,1,0;1,1,1;0,1,0]); % 腐蚀用的结构元素 F = fs(I,f); BW = im2bw(I-F); % 用原图减去腐蚀获得边缘 figure;imshow(I);title(原图); figure;imshow(F);title(腐蚀图像); figure;imshow(BW);title(边界); 在上面的运行效果图上看来,由于原图选择的原因,周围一圈白线有一定宽度但不足够粗,大概只有2~3个像素宽度而腐蚀用元素大小为3×3,这导致腐蚀后图像留下的白线看起来残缺不全,用原图减去腐蚀后得到的边缘图像也在白线处有“粘在一块”的现象。只要使用更高一些分辨率的图片即可避免这样的情况。但出于后续试验的运行速度考虑,本实验就使用此图(300×300)。观察图像其他地方,有足够的像素宽度被腐蚀,由此提取的边缘也很清晰。 %% 区域填充 I1 = fillbw(BW,40,40); % fillbw函数实现指定坐标填充边缘内部,详见主函数后的各子函数 I1 = I1 | fillbw(BW,40,260); % 为避免不必要的计算量,每次填充迭代次数为70 I1 = I1 | fillbw(BW,100,150); % 逐次在图像中选择需填充区域中的起始点以完成填充 I1 = I1 | fillbw(BW,100,160); I1 = I1 | fillbw(BW,136,86); I1 = I1 | fillbw(BW,132,212); I1 = I1 | fillbw(BW,147,120); I1 = I1 | fillbw(BW,157,214); I1 = I1 | fillbw(BW,210,171); I1 = I1 | fillbw(BW,206,109); I1 = I1 | fillbw(BW,233,129); I1 = I1 | fillbw(BW,234,140); I1 = I1 | fillbw(BW,237,153); I1 = I1 | fillbw(BW,234,167); I1 = I1 | fillbw(BW,231,178); I1 = I1 | fillbw(BW,248,125); I1 = I1 | fillbw(BW,252,142); I1 = I1 | fillbw(BW,252,162); I1 = I1 | fillbw(BW,247,182); I1 = I1 | fillbw(BW,272,149); I1 = I1 | fillbw(BW,256,50); I1 = I1 | fillbw(BW,253,248); I2 = I1 | F; % 因外围白线边缘之间没有足够空间,很难逐个填充空洞 figure; % 故此处直接叠加腐蚀图像,把外围白线加上 subplot(1,3,1);imshow(I);title(原图); subplot(1,3,2);imshow(I1);title(区域填充); subplot(1,3,3);imshow(I2);title(区域填充+腐蚀); 实际上边缘图像是由原图像减去腐蚀图像得到的,而区域填充是在边缘图像的区域内填满的结果,故理论上来说最后区域填充的结果其实就是原来的腐蚀图像。从上图比较就可以看出,除了区域填充中未填的外围白线外,叠加了腐蚀图像的结果与区域填充是一样的,也与腐蚀图像一样(具体可以查看附件中的”区域填充.jpg”、”腐蚀.jpg”和”区域填充+腐蚀.jpg”)。 %% 细化 A1 = fs(I2,20); figure;imshow(A1);

文档评论(0)

一叶轻舟 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档