1.一维码识别
二、二维码识别
条形码(Barcode)根据一定的编码规则,将不同宽度的多条黑条和空白排列,以表达一组信息的图形标识符。常见的条形码是由反射率相差较大的黑条(简称条)和白条(简称空)组成的平行线图案。条形码可以标记许多信息,如商品制造商、制造商和商品名称,因此广泛应用于商品流通、图书管理、邮政管理、银行系统等领域。
条形码可分为一维和二维两类。一维码按照一定的编码规则排列不同宽度的多条黑条和空白,以表示一组信息。常见的一维码是由反射率差异较大的黑条和白条组成的平行线图案,如下所示:
视频显示了一维码识别效果:
二维码包括两类:堆叠条形码和矩阵条形码。堆叠条形码由多个一维码组成,矩阵条形码用黑白矩形图案表示数据,如下:
二维码识别效果视频如下:
条形码具有成本低、使用灵活、使用效率高、可靠性强等优点。条码制作只需印刷,识别设备的结构也很简单,与其它自动化识别技术相比,成本相当低。条形码符号可手动输入键盘,条形码识别设备操作简单,或与相关设备组成识别系统实现自动识别,或与其他控制设备连接,实现整个系统的自动管理。读取条码的准确性远远超过人工模式,平均每15个 只有一千个字符才会出错。此外,条码的读取速度相当于每秒40个字符。
1.一维码识别
一维码将有不同宽度的垂直黑色条纹(Bar)和空白(Space)信息按一定规则排列,下图显示一维码结构示意图:
其中,条形码的空白区域在左右两端。一般来说,它必须是窄条宽度的10倍以上。如果边缘宽度不够,条形码读取器无法扫描数据。根据不同的条形码类型,起止符是用来表示数据开始和结束的字符。有些采用A、B和D,有些则采用*。数据部分包括信息字符的条码图案,可以是数字、字母或其他特殊字符。验证位置用于比较读取值中计算的数据,以验证读取值是否错误,通常直接附着在数据信息上。一维码可以由两个或两个以上宽度的条纹和空白组成,条纹和空白区域可以离散或连续使用。
Nl Vision为读取一维码提供特殊函数,它包装了复杂的条码解码过程。该函数位于,如下图所示:
函数说明及使用见帮助手册:
函数可支持下表列出的各种类型的条码。
由于交错式Code25码、Code39码和Code93码没有校验位,所以在读取这些条码时,可以关闭函数的校验参数。此外,Pharmacode比较简单,其他条码很容易误读为这类条码,所以在使用中IMAQ Read Barcode 当函数读取其他类型的条形码时,通常禁用它Pharmacode支持功能。
影响条形码图像的分辨率、亮度漂移、条纹灰度一致性和噪声IMAQ Read Barcode2读取结果的几个主要因素。条码图像的分辨率由条纹和空白区域的最小宽度来决定,一般来说它们的宽度不得少于3个像素才能被正确读取。图像的亮度漂移太大时也会影响读取结果的正确性。
通过一个一维码读取实例,了解一维码的应用方法,程序设计思路如下所示:
- While保存在循环中的代码将逐一读取Barcode然后使用文件夹中的每个图像IMAQ Read Barcode 从图像中搜索各种条码的位置并解码;
- 读取过程结束后,For循环中的代码将分析条码的结果,并以叠加图层或数组的形式显示条码的边界矩形、条码信息和类型。
程序实现如下:
如下:
项目资源下载:项目实战:LabVIEW一维码识别(条码识别)-嵌入式文档资源-CSDN下载
二、二维码识别
二维码是堆叠条码和矩阵条码的总称。堆叠条码由多个一维条码组成,矩阵条码在矩形空间中通过黑白图案的不同分布编码数据,如下图所示:
一维码只使用一个方向上的条纹宽度代表数据,通常最多包含30个字符。二维码包含在水平和垂直方向上据,最多可包含3000个字符。当数据量相同时,二维码的尺寸要比一维码小很多,因此它可印刷在空间有限的电子产品和其他小部件上。此外,矩阵式二维码还引入了位置定位和容错机制,不仅可使用方框、L形框或专门的定位图案可靠地探测条码位置,还能在条码有损的情况下(如有污渍)正确还原信息。
下图显示了QR码的典型结构示意图,可以看出QR码是一种典型的矩阵式二维码主要由以下几个部分构成:
- 空白区域(Quiet Zone);
- 3个定位标识(Finder Pattern) ;
- 对准标志(Alignment Pattern);
- 定时标识(Timing Pattern) ;
- 黑色和白色数据单元(Data Cell)和纠错码(Error Check and Correction Cell);
- 用于解码的格式信息(Formatting Information)等。
QR码是矩阵式二维码的一种,其尺寸可包含21×21到177×177个数据单元。由于其右下角有对准标志,其他3个角上有定位标志,因此可以从QR码的任一方向对其进行快速读取。QR码内置了错误检查和纠正(ECC)机制,它可以通过标准Reed-Solomon方案对污点、脱墨和数据丢失等条码损坏按照4种不同纠错级别(L、M、Q、H)进行恢复如下图所示。数据的恢复率随着所选的纠错级别不同各异(L级为7%、M级为15%、Q级为25%、H级为30%)。
通过一个QR码读取的实例,了解二维码的应用方法,程序设计思路如下所示:
- 程序代码结构比较简单,在将包含QR码的图像读入内存后,就直接调用位于LabVIEW的视觉与运动→Machine Vision→Instrument Readers函数选板中的IMAQ Read QR Code函数,从图像中搜索单个或多个QR码并对其进行解码。
- 程序还通过记录读取前后的时间值来计算QR码搜索和读取过程的耗时。最后在图像中用无损图层标出QR码所在位置,并显示图像。
程序实现如下所示:
程序运行效果如下所示:
项目资源下载: 项目实战:LabVIEW二维码识别-嵌入式文档类资源-CSDN下载