LabVIEW利用NI Vision进行一维码读取
在实际工业生产中,常常出现需要读取条码的情况,现在利用NI Vision进行条码读取。然而在实际生产中,相比于优化算法,提升硬件解决问题更加治本。

这张照片是用手机拍摄的,且像素太差,造成读码效果比较差,但只是一个抛砖引玉的引子,不必过于计较。
因为是利用NI Vision进行图像处理,所以可以先在NI Vision中将图像处理完成后再生成VI,再做相应更改,比较方便。Labview中的函数控件包含NI Vision中的算子,所以笔者直接利用labview算子编程。

整个程序框图如上,整个程序是将图片中的产品单个截取出来进行读码,减少计算。首先导入图片,对图像进行二值化处理。在二值化处理时,是对图像的阈值进行设定,若不清楚当前图像的灰度值分布,可以借助NI Vision中的灰度处理栏中的Threshold Setup中的函数查看。

因为想要提取出来的图片中的白色部分,白色部分的灰度值比较大,从而判断白色部分的灰度值集中在200~255区间,所以灰度阈值取在这个区间左右即可。 将图像二值化后,就需要将图像中的产品图像提取出来,通过灰度图像处理,将每个产品的区域划分出来。

二值化图像处理最终得到的图像如上, 可以运用这个图像生成ROI或者掩模都是可以的。笔者运用其生成一个矩形区域,然后在原图的灰度图上进行分割,将每个产品一个一个从图片上割下来进行读码。

最终读码信息如上,虽然5个条码都是一样的,但是可以观察到位置都是不一样的。实际工厂生产中,可以利用工业相机将图片拍照更清晰些,然后读取想要的条码,成功率会更高。

本文介绍使用LabVIEW结合NIVision库进行一维码读取的方法。通过对图像进行预处理并设置合适的灰度阈值,实现了从复杂背景中准确提取条码的功能。
1726





