NI Vision Barcode条码识别函数不支持黑底白字的条码类型

发布时间:2025-01-25 13:58  浏览量:16

识别条码,这个在图像处理中非常常见的应用,而且相对来讲比较容易。NI视觉也提供了条码识别、二维码识别等函数。但是在应用中,我们可以发现一个问题,就是NI Vision并不支持黑底白字类型的一维条码,仅支持白底黑字类型的条码,即条码的有效条必须是黑色的,而间隔空必须是白色的才OK。如果是黑底白字的条码,会出现两种情况,一种是无法识别,另一种就是识别错误,因为其会找到错位的黑条认为是条码开始的位置,这样读取出来的条码就会出错(一般是类型错误)。

在视觉助手中无法识别黑底白字的条码经过图像反转后变成白底黑字后可以识别到条码

从上面的效果可以看到,黑底白字的条码是无法识别到的,而白底黑字的条码可以正常识别。这个可能与条码的编码方式有关。因为条码识别函数需要先找到条码的开始边界。但是作为一个理想的算子,应该是会充分考虑白底黑字、黑底白字这两种情况才对的。

正确识别白底黑字条码错误识别黑底白字条码

上图可以看到条码会忽略掉两头的一些条码信息,从而只截取中间的条码信息,这样得到的数据就是错误的。

上面的这种情况,对于二维码就可以正常地处理。二维码是通过模式定位来实现的,原来上不一样。

白底黑字QR二维码可以识别黑底白字QR二维码可以识别

条形码不能识别黑底白字类型的条码问题,在现在新的版本中,仍然没有解决,还是不能正常识别的:

视觉助手2020中白底黑字条形码可以正常识别视觉助手2020中黑底白字条形码不能正常识别

尝试了一下在性能更强的Halcon中,也无法识别黑底白字的条码:

Halcon库白底黑字的条码能正常识别Halcon库黑底白字条码读不到

这里试了一下微信的扫一扫,也只能识别白底黑字的条码。所以这里可能也不是算法的问题。只能说是一维条形码就必须要求白底黑字才行。搜索了一下,好像也有黑底白字的条码,如果真的遇到这种条码,那么只能将图像反转后再来识别。

标签: barcode ni nivision

外部推荐