图像处理获得气泡直径

 前 言  

气泡直径是研究气液以及气液固体系的重要参数,影响着液相流动、返混以及传质等性能。

测量气泡直径的方法主要有两种,一种是侵入式测量,例如毛细管吸力探针测量技术、电导探针测量技术、光纤探头测量技术,金属网感应器测量技术;另一种是非侵入式测量,例如相位多普勒测速技术、干涉粒子成像测量技术、数字图像分析测量技术。

侵入式测量技术会干扰液相的流动,因此通常会选用非侵入式测量技术测量气泡直径,而在所有非侵入式测量技术中,数字图像处理技术能处理非规则的气泡直径。

Bubble Diameter

那么,采集到气泡图像后,如何推算气泡尺寸呢?今天,小编介绍一种方便实用的气泡尺寸测量方法,即运用matlab获得气泡当量直径。

Matlab获得气泡当量直径的方法主要是将气泡图像转化成相应的矩阵,计算出气泡所覆盖的像素面积。

采集气泡运动图像

采集图像的设备有很多种,手机也是一种方便的采集图像设备,如图1,是采用手机拍摄的气泡运动照片,相比于高速摄像,手机像素较低,但也足够辨别气泡的形态。

图像处理获得气泡直径的图1

图1 气泡运动照片

图像灰度化

首先,通过matlab中imread函数读取气泡运动照片;

然后,通过rgb2gray函数将其转化成灰度图,如图2。

转化成灰度图之后,测量管道壁面没擦干净的地方特别明显(小编内心OS:幸好自己不是处女座,不然要自带抹布先做会儿保洁工作,当然了,还是要保证测量管道壁面尽量清洁)。

图像处理获得气泡直径的图2

图2 灰度化后的气泡照片

气泡二值图

选择合适的阈值,将气泡灰度图转化成二值图。鉴于气泡照片的拍摄质量还可以,所以采用全局阈值进行转化。

另外,什么是二值图呢?二值图就是只有0和1矩阵表示的图,像素1是白点,0是黑点。气泡灰度图处理后所得的二值图如图3所示。

图像处理获得气泡直径的图3

图3 气泡二值图

二值图转置

气泡二值图中更容易看出壁面的脏东西了,暂且不处理它,先将气泡二值图做转置,也就是将图片矩阵的0变成1,原来的1变成0,转置后如图4所示。

图像处理获得气泡直径的图4

图4 转置后的气泡二值图 

图像过滤

此时的气泡二值图中仍存在干扰测量的尘埃微粒,因此要对其进行处理,处理原理是根据像素的连续区域的大小,由于尘埃微粒比气泡小很多,因此可根据尺寸将其过滤,在此通过bwareaopen函数,过滤掉像素小于100的区域。处理后气泡二值图如图5所示(此刻的气泡画面,处女座应该表示满意)。

图像处理获得气泡直径的图5

图5 图像过滤后的气泡二值图

气泡填洞处理

目前的气泡二值图中,气泡中心存在空洞,需将其进行填补。

气泡填补前需确定气泡的具体轮廓。为什么要增加这个步骤呢?因为有时拍摄出的照片,由于光线的原因,气泡外轮廓是破损的,破损气泡很难修复。

图像处理获得气泡直径的图6

图6 确定气泡轮廓

从边缘轮廓可以看出气泡是完全封闭,如若出现破损气泡,则必须进行破损气泡删除,或者选用合适的阈值对原灰度图进行处理。接下来对气泡进行填洞处理,结果如图7所示。

图像处理获得气泡直径的图7

图7 填洞后的气泡图像

计算气泡当量直径

计算气泡当量直径前,需对气泡图像进行标定。计算出每个气泡所覆盖像素后,根据像素间距离与实际距离对应关系可以计算气泡面积,然后根据圆面积计算公式计算气泡当量直径。

相关MATLAB代码

I=imread('image.JPG');

F=rgb2gray(I);

LEVEL=graythresh(F);

T=im2bw(F,LEVEL);

[M,N]=size(F);

T_zhuanzhi=ones(M,N)-T;

T_bubble=bwareaopen(T_zhuanzhi,100);

T_edge=edge(T_bubble,'canny');

T_filled=imfill(T_edge,'holes');

(1条)
默认 最新
学习了
评论 点赞
点赞 评论 1 收藏 3
关注