气泡matlab【范本模板】.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一:问题描绘 在一幅包括气泡的图像中,求出气泡面积占图像总面积的比率,并求出可分辨气泡的个数。(11。24P562) 二:例子剖析 针对上边的彩色图片,想到的方式是先变换成二值图像,而后进行边沿检测,在进行圆形填补,这样能够求出头积比率,最 大的难度在气泡重叠的部分办理上,我想到的是要进行腐化办理,固然结果其实不精准,但也正确度还算能够。 三:matlab实现 I=imread(’c:张达气泡。png’) i=rgb2gray(I)%将图片变换成灰度图像 figure subplot(231) imshow(i) title('灰度图像') m,n]=size(i)%求出图片的长宽 threshold=graythresh(i)%建立二值图像的阈值 bw=im2bw(i,threshold)%变换成二值图像 bw2=bwperim(bw,8)%按八连通求出图片的边沿 bw2=bwareaopen(bw2,10)%去除小于10个像素的单元等于是清除了杂质 subplot(232) imshow(bw2) title('去除杂质后的二值图像') %此处是为了防止出现右图所示的状况,先膨胀再填补可保证气泡填满,最后进行腐化获得最后正确结果。 se=strel('disk’,5)%设定半径为5的构造元素 bw3=imdilate(bw2,se)%先进行膨胀办理 subplot(233) imshow(bw3) title(’膨胀办理后的二值图像’) bw4=imfill(bw3,’hole’)%再进行填补办理 subplot(234) imshow(bw4) title('填补办理后的二值图像’) bw=imerode(bw4,se)%最后进行腐化办理,获得了气泡正确的二值图像 subplot(235) imshow(bw) title(’腐化办理后正确的二值图像') a=sum(bw(:))。/(m*n)%经过计算二值图像像素值和与图像像素个数总和获得比率 c=0%设定初始的气泡个数 forcounter=3:100%设定循环,从半径为3开始的形状元素 se2=strel(’disk’,counter) bw=imerode(bw,se2)%腐化操作,尽量复原出重叠部分的气泡 [b,l]=bwboundaries(bw,'noholes’)%l返回的是标签矩阵, ifmax(l(:))〉=c%对每次求出l中的最大元素值,即气泡的个数. c=max(l(:)) else return end subplot(236) imshow(label2rgb(l,@jet,[0.50。50.5])) title(’腐化到阈值时形成的图像') end 这样就求出了占面积比为0.3868,个数为10个(其实是 个) :存在的问题 运算不够快,共花销了15秒左右的时间,矩阵运算量比较大,还有针对求气泡个数,没有想到更好的优化算法,假如将 counter=3:100改正为counter=3:2:100(即步长拉大)会有 必定的时间提高,而且能够保证正确度。 2:关于气泡重叠部分的办理,理想化的比许多,若重叠部 分比许多,或许重叠部分占气泡比比较大时,会存在较大偏差。 五:更多例子 1:下列图所示:占比0。3512,个数是10(正确是11) 2 下列图所示占比是0.0999个数是43(正确是46) 中间底部最大的气泡填补后仍旧出缺口,这是膨胀的构造元 素不够大致使的。

您可能关注的文档

文档评论(0)

182****8077 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档