数字图像处理课后作业答案 计算气泡

数字图像处理课后作业答案 计算气泡

ID:43740674

大小:244.77 KB

页数:6页

时间:2019-10-13

数字图像处理课后作业答案 计算气泡_第1页
数字图像处理课后作业答案 计算气泡_第2页
数字图像处理课后作业答案 计算气泡_第3页
数字图像处理课后作业答案 计算气泡_第4页
数字图像处理课后作业答案 计算气泡_第5页
资源描述:

《数字图像处理课后作业答案 计算气泡》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Problem11.24所提的解决方案的核心关键是能够检测出不同大小的气泡。我们在这里假定所有气泡都是圆的。提出的解决方案有以下五个部分构成:1)图像分割;2)后处理;3)气泡检索,确定与边缘融合的气泡;4)形状检测;5)计算气泡的面积占图像总面积的比例;1)分割图像:我们假定书上所给的图片能够代表实际系统当中出现的大部分图像。所给出的图像能够通过全局阈值进行分割。从图像的直方图(图1)我们可以清楚得到我们感兴趣的区域的主要集中在直方图灰度级高的一侧。我们使用自动阈值分割算法,m代表均值,σ代表方差,则阈值定为m+2σ。在所给定的图像中我们计算出来

2、的阈值为195.分割的结果如图2所示,当然这只是一个比较通用的分割方法。图1图22)后处理:从分割后的图像可以见到,气泡当中还有很多的黑色区域,这很有可能是由于反光或者气泡本身中空引起的。我们可以尝试对气泡进行修复或者填满气泡,但是使用形态学的操作必然会导致很多计算上的耗费,由于对精度没有一个具体的要求标准,这里我们就只对气泡做了简单的闭运算,效果如图3所示,后续可以根据实际系统所需要的精度来确定所需的形态学操作,在后面的面积比例计算当中我们也忽略不完整气泡所带来的面积误差。图33)气泡的查找由图中我们可以清楚的知道气泡可以分为三类,一类是与边界有

3、交集的气泡,一类是单独存在的气泡,最后是彼此交叠在一起的气泡。首先对于与边界有交集的气泡,我们通过检测边界找到白色的像素点(白色代表气泡区域),然后通过联通区域查找获得与边界融合的气泡。其次去掉与边界融合的气泡的影响,对于彼此重叠的气泡和单个气泡可以通过气泡的面积来区分(或者形状),在有大量图像的基础下我们可以获得每个气泡的合理面积范围,以此来判断是否重叠。4)形状检测使用霍夫变化进行椭圆检测(气泡在上升的过程当中其实更多是呈椭圆形状)设定霍夫变换的阈值可以将单独的气泡检测出来。具体的阈值与实际要求的精度和大多数图片的检测效果来实际尝试后确定5)可

4、分辨气泡数目的计算除去与边界融合的气泡,计算单独的气泡和交叠在一起的气泡的总数目就可得到可分辨气泡的数目。6)气泡占总面积的比率这个比率就等于后处理后图中所有白色像素点的个数除以总的像素点的个数。所给的样本例子中气泡面积占总面积的比例大约为7.7172%最后对于最小可检测的物理尺寸,如果我们在4当中将只有一个像素点的联通区域也算是一个气泡的话,那么对于7cm的700X700图像而言,最小的物理尺寸为10mm。附原图和简易方案的matlab代码clcclearI=imread('534286416955055193.jpg');%读取原始图像warn

5、ingoffimshow(I,[]);title('原始图像');%显示原始图像figureimhist(I);title('直方图图像');I1=zeros(size(I,1),size(I,2));%初始化一个与原图一样大小的矩阵fori=1:size(I,1)%这两个for循环是进行全局的阈值分割forj=1:size(I,2)ifI(i,j)>230I1(i,j)=1;endendendfigureimshow(I1);title('二值图像');B=ones(25,25);%初始化形态学操作的‘单元’figureI2=I1;th=7;%做

6、七次的闭操作fori=1:th%for循环,闭操作,先腐蚀后膨胀I2=imdilate(I2,B);I2=imerode(I2,B);endimshow(I2);title('闭运算图像');[W1,W2]=find(I2==1);%找到所有像素值为1的点PER=length(W1)/size(I,1)/size(I,2);%计算气泡占图像总面积的比例disp(['占',num2str(PER*100),'%']);L=bwlabel(I2,8);%二值图像中元素标记S=regionprops(L,'Area');%统计被标记的区域面积分布bw2=

7、ismember(L,find([S.Area]>=30));%找出面积大于30个像素点的bw2=imclearborder(bw2,8);%去掉和边缘连接的点figureimshow(bw2);title('最终图像');L1=bwlabel(bw2,8);%计算最终图像连通区域S1=regionprops(L1,'Area');NUM=size(S1,1);%计算出泡泡的个数disp(['有',num2str(NUM),'个泡泡']);

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

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

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