LabVIEW条形码识别(实战篇—5)

条形码(Barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。条形码可以标出物品的生产国、制造厂家、商品名称等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。

条形码可分一维和二维两大类。一维码将宽度不等的多个黑条和空白按照一定的编码规则排列,用来表示一组信息。常见的一维码是由反射率相差很大的黑条和白条排成的平行线图案,如下所示:

二维码包括堆叠式条码和矩阵式条码两大类,堆叠式条码通过对多个一维码堆叠构成,矩阵式条码则使用黑白矩形图案表示数据。

条码具有成本低、灵活易用、使用效率高和可靠性强等优点。条码制作仅仅需要印刷,识别设备的构造也很简单,与其他自动化识别技术相比,成本相当低廉。条码符号可以手工键盘输入,条码识别设备操作简易,也可以和有关设备组成识别系统实现自动化识别,或者和其他控制设备联系起来实现整个系统的自动化管理。条码的读取准确率远远超过人工方式,平均每15 000个字符才会出现一个错误。此外,条码的读取速度很快相当于每秒40个字符。

1、一维码识别

一维码将多个宽度不同的竖直黑色条纹(Bar)和空白(Space)按一定的规则排列来表示信息,下图显示了一维码的结构示意图:

其中,条码的空白区在左、右两端,一般来说它必须是窄条宽度的10倍以上,如果边缘宽度不够,条码读取器就无法对其数据进行扫描。起止符是用于表示数据开始和结束的字符,它根据条码类型不同而不同。有些采用A、B和D,有些则采用*。数据部分包括信息字符的条码图案,信息字符可以是数字、字母或其他特殊字符。校验位用于和读取值中计算得到的数据进行比较,以校验读取值是否有错,一般直接附在数据信息后。一维码可由两种或多种宽度的条纹和空白构成,编码时条纹和空白区域可以被离散或连续使用。

Nl Vision为一维码的读取提供了专门的函数IMAQ Read Barcode 2,它封装了对条码的复杂解码过程。该函数位于LabVIEW的视觉与运动→Machine Vision→Instrument Readers函数选板中,如下图所示:

函数说明及使用可参见帮助手册:

函数IMAQ Read Barcode 2可支持下表列出的各种类型的条码。

由于交错式Code25码、Code39码和Code93码并无校验位,因此在读取这几类条码时,可以关闭该函数的校验参数。此外,Pharmacode较为简单,其他条码极容易被误读为此类条码,因此在使用IMAQ Read Barcode 2函数读取其他类型的条码时,一般要禁用它对Pharmacode的支持功能。

条码图像的分辨率、亮度漂移、条纹的灰度一致性和噪声是影响IMAQ Read Barcode2读取结果的几个主要因素。条码图像的分辨率由条纹和空白区域的最小宽度来决定,一般来说它们的宽度不得少于3个像素才能被正确读取。图像的亮度漂移太大时也会影响读取结果的正确性。

通过一个一维码读取实例,了解一维码的应用方法,程序设计思路如下所示:

While循环中的代码会逐一读取保存在Barcode文件夹中的各个图像,然后使用IMAQ Read Barcode 2从图像中搜索各类条码的位置,并对它们进行解码;

读取过程结束后,For循环中的代码会对条码的结果进行解析,并将条码的边界矩形、条码信息和类型以叠加图层或数组的方式显示到界面上。

程序实现如下所示:

程序运行效果如下所示:

2、二维码识别

二维码是对堆叠式条码和矩阵式条码的统称。堆叠式条码通过堆叠多个一维条码构成,矩阵式条码则在一个矩形空间内通过黑白图案的不同分布对数据进行编码,如下图所示:

一维码仅使用一个方向上的条纹宽度代表数据,通常最多包含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码所在位置,并显示图像。

程序实现如下所示:

程序运行效果如下所示:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,482评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,377评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,762评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,273评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,289评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,046评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,351评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,988评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,476评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,948评论 2 324
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,064评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,712评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,261评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,264评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,486评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,511评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,802评论 2 345

推荐阅读更多精彩内容