气泡matlab.docx

气泡matlab.docx

ID:48600737

大小:389.22 KB

页数:5页

时间:2020-02-26

气泡matlab.docx_第1页
气泡matlab.docx_第2页
气泡matlab.docx_第3页
气泡matlab.docx_第4页
气泡matlab.docx_第5页
资源描述:

《气泡matlab.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一:问题描述在一幅包含气泡的图像中,求出气泡面积占图像总面积的比例,并求出可分辨气泡的个数。(11.24P562)二:例子分析针对上面的彩色图片,想到的方式是先转换成二值图像,然后进行边缘检测,在进行圆形填充,这样可以求出面积比例,最大的难度在气泡重叠的部分处理上,我想到的是要进行腐蚀处理,虽然结果并不精确,但也准确度还算可以。三:matlab实现I=imread('c:Users张达Desktop气泡.png')i=rgb2gray(I)%将图片转换成灰度图像figuresubplot(231)imshow(i)title('灰

2、度图像')[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)%设定半径

3、为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)%通过计算二值图像像素值和与图像像素个数总

4、和得到比例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(:))elsereturnendsubplot(236)imshow(label2rgb(l,@jet,[0.50.50.5]))title('

5、腐蚀到阈值时形成的图像')end这样就求出了占面积比为0.3868,个数为10个(实际上是13个)四:存在的问题1:运算不够快,共花费了15秒左右的时间,矩阵运算量比较大,还有针对求气泡个数,没有想到更好的优化算法,如果将counter=3:100更改为counter=3:2:100(即步长拉大)会有一定的时间提升,并且能够保证准确度。2:对于气泡重叠部分的处理,理想化的比较多,若重叠部分比较多,或者重叠部分占气泡比比较大时,会存在较大误差。五:更多例子1:下图所示:占比0.3512,个数是10(正确是11)22:下图所示占比是0.099

6、9个数是43(正确是46)中间底部最大的气泡填充后依旧有缺口,这是膨胀的结构元素不够大导致的。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。