LabVIEW开发圆形分子识别的方法与例程
这个是对圆形水分子进行状态监测的功能,分子会出现合并或显示的情况,要记录此时的时间及温度信息。分子是通过高速摄像机进行采集得到的。软件需要对录像的每一帧进行分析。由于当前视野中圆形个数很多,所以对算法有一定的要求,识别速度不能太慢。以及内容是对其中遇到的两个问题如何截距的记录。
一是取消同心圆
识别圆形分子的时候,去除了之前出现的同心圆(一个分子被识别为直径大小不同的两个圆形)现象,这个效果比较明显。修改前后分别如下图所示。
图1 修改前,存在同心圆现象
图2 修改后,没有了同心圆
二、动态监测分子直径
采用了如下的办法进行实时分子直径监测,但是效果不好。
具体措施:先对录像的第一帧图像进行识别,得到若干个圆形分子(如150个),并取消同心圆的分子。之后, 记录下每一个分子的坐标和当前直径,然后以该坐标为中心,以三倍分子直径为长度,得到一个矩形方框(确保该水分子肯定在这里面)。一共得到150个矩形方框。把图像分割为150个小的部分
之后,从第二帧图像开始,对每一帧都做相同的处理:对每一个矩形方框进行圆形识别,得到圆形的直径,这个就是该分子的直径,但是在对这个矩形方框的图片进行识别时,会出现正好是一个圆形,两个或以上的圆形,或者没有圆形。因为图像会逐渐变化的。
这时候,我们对得到的圆形再进行分析,先看其坐标是否位于该矩形的中心,如果不在中心,那就不是我们想得到的那个圆形,放弃。如果是在中心,而且只有一个圆形,那它的直径就是我们所要找的水分子直径。但那如果得到两组在中心的圆形,那就是同心圆,我们需要进行取舍,在这里,我们取直径大的那个,而舍弃直径小的那个。
以上是对每个分子取直径的算法,在理论上是行得通的,在实际中测试中,也确实可以得到圆形的直径。但是,如果对录像进行连续测试,那么会发现对特定的分子,其直径要么不变,如果变化的话,就会有一个突变。初步分析,算法在识别圆形直径时,不是连续的,也是到了某一个阈值,才会使其发生变化。这样的话,在监测分子变化过程中,就不太适合了。分子的直径应该是连续变化的,只是由于识别的原因,才会造成要么不变,要么突变的情况。(具体可结合录像进行查看。)
程序源码如下附件所示。
LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序
文字内容均在附件Word中,同时上文中提到的例子和资料,均在word中的附件里,可点击下载。登录www.bjcyck.com可以查看更多详细信息。这里只是简略的介绍,有任何关于LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序相关问题,请与我们联系。