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

目录

1、一维码识别

2、二维码识别

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

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

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

一维码识别效果视频如下所示:

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

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

二维码识别效果视频如下所示:

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

1、一维码识别

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

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

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

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

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

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

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

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

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

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

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

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

  • While循环中的代码会逐一读取保存在Barcode文件夹中的各个图像,然后使用IMAQ Read Barcode 2从图像中搜索各类条码的位置,并对它们进行解码;
  • 读取过程结束后,For循环中的代码会对条码的结果进行解析,并将条码的边界矩形、条码信息和类型以叠加图层或数组的方式显示到界面上。

程序实现如下所示:

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

程序运行效果如下所示:

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

项目资源下载:项目实战:LabVIEW一维码识别(条码识别)-嵌入式文档类资源-CSDN下载

2、二维码识别

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

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

一维码仅使用一个方向上的条纹宽度代表数据,通常最多包含30个字符。二维码在水平和垂直方向上都包含数据,最多可包含3000个字符。当数据量相同时,二维码的尺寸要比一维码小很多,因此它可印刷在空间有限的电子产品和其他小部件上。此外,矩阵式二维码还引入了位置定位和容错机制,不仅可使用方框、L形框或专门的定位图案可靠地探测条码位置,还能在条码有损的情况下(如有污渍)正确还原信息。

下图显示了QR码的典型结构示意图,可以看出QR码是一种典型的矩阵式二维码主要由以下几个部分构成:

  • 空白区域(Quiet Zone);
  • 3个定位标识(Finder Pattern) ;
  • 对准标志(Alignment Pattern);
  • 定时标识(Timing Pattern) ;
  • 黑色和白色数据单元(Data Cell)和纠错码(Error Check and Correction Cell);
  • 用于解码的格式信息(Formatting Information)等。

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

QR码是矩阵式二维码的一种,其尺寸可包含21×21到177×177个数据单元。由于其右下角有对准标志,其他3个角上有定位标志,因此可以从QR码的任一方向对其进行快速读取。QR码内置了错误检查和纠正(ECC)机制,它可以通过标准Reed-Solomon方案对污点、脱墨和数据丢失等条码损坏按照4种不同纠错级别(L、M、Q、H)进行恢复如下图所示。数据的恢复率随着所选的纠错级别不同各异(L级为7%、M级为15%、Q级为25%、H级为30%)。

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

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

  • 程序代码结构比较简单,在将包含QR码的图像读入内存后,就直接调用位于LabVIEW的视觉与运动→Machine Vision→Instrument Readers函数选板中的IMAQ Read QR Code函数,从图像中搜索单个或多个QR码并对其进行解码。
  • 程序还通过记录读取前后的时间值来计算QR码搜索和读取过程的耗时。最后在图像中用无损图层标出QR码所在位置,并显示图像。

程序实现如下所示:

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

程序运行效果如下所示:

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

项目资源下载: 项目实战:LabVIEW二维码识别-嵌入式文档类资源-CSDN下载

Original: https://blog.csdn.net/m0_38106923/article/details/119304796
Author: 不脱发的程序猿
Title: LabVIEW条形码识别(实战篇—5)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/198661/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • CMOS图像传感器的参数和评价标准

    作者:Aili-Light | 公众号:艾利光科技 图1 图像传感器CMOS 摄像头的种类和应用场景非常之多,例如手机摄像头、安防摄像头、车载摄像头、工业相机等等。针对每种应用,摄…

    人工智能 2022年11月18日
    069
  • 【人工智能】4.知识图谱初步

    (来源:北航王岩老师ppt) 一、什么是知识? 1.知识 1) 知识定义:Feigenbaum: 知识是经过消减、塑造、解释和转换的信息Bernstein:知识是由特定领域的描述、…

    人工智能 2022年10月2日
    0100
  • yolact训练自定义数据集并转onnx

    一、yolact 介绍 yolact: 特点:实时实例分割,全卷积,在 Titan Xp 上以 33.5 fps在 MS COCO 上实现了 29.8 mAP,提出了 Fast N…

    人工智能 2022年11月22日
    074
  • 使用python操作文件和文件夹

    文件操作的作用: 把一些内容(数据)存储起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力。 文件操作步骤: 1.打开文件 2.读写操作 3.关闭文件 (释放内…

    人工智能 2022年11月26日
    053
  • tensorflow详细安装过程

    我电脑安装的python是3.7.4的,所以python如果版本不一样的话(不是3.7的),下边的内容不建议完全参考,可以适当参考。 主要是注意很多numpy和models与你安装…

    人工智能 2022年11月13日
    073
  • Pytorch Bug解决:RuntimeError: running_mean should contain 1 elements not 10

    Python 3.9Pytorch 1.11.0 Traceback (most recent call last): File "D:\crl\Projects\sta…

    人工智能 2022年12月15日
    048
  • 什么是生成对抗网络

    你好,这篇文章咱们讨论一下关于「什么是生成对抗网络」的事情… 生成对抗网络(GAN)-技术解析 生成对抗网络(GAN)是一个极其有趣而又具有挑战性的机器学习模型,它可被…

    人工智能 5天前
    03
  • 公司对外投资和担保

    一、公司对外投资和担保规范 公司对外投资和外他人提供担保,需承担相应的责任 公司可以对外投资和提供担保 二、公司提供担保的方式 保证 抵押 质押 三、公司提供担保的规定 公司对外承…

    人工智能 2022年12月20日
    051
  • 苹果手机适配Xcode14及iOS 16操作系统

    苹果手机适配Xcode14及iOS 16操作系统 IOS16beta4 变更内容 2022年9月苹果发布xcode14及iOS16,苹果每年都有要求限制开发者提交市场App的xco…

    人工智能 2022年9月23日
    0170
  • 弱监督学习有哪些应用

    你好,这篇文章咱们讨论一下关于「弱监督学习有哪些应用」的事情… 弱监督学习在实际应用中的探索 随着计算机算力和数据存储能力的逐渐提高,人工智能技术已经取得了长足的进步。…

    人工智能 5天前
    05
  • 如何通过抖音来进行广告宣传

    在短视频平台迅速发展的今天,抖音、快手等短视频平台迅速崛起。其中,截止到2021年11月9日,抖音的总下载量达到了555亿次。在这个几乎人手一部手机上都安装了抖音的时代,抖音就是一…

    人工智能 2022年9月7日
    0104
  • 遥感图像超分辨重建综述

    基于深度学习的遥感图像超分辨率重建技术综述 摘要部分 基于深度学习的遥感图像超分重建方法分成三大类 单幅遥感图像超分重建 最好的是基于GAN的方法 方法: 基于多尺度特征提取的方法…

    2022年8月27日
    0274
  • 第七届工程训练比赛之智能垃圾分类

    2021第七届工程训练综合能力竞赛之智能垃圾分类 前言 写在前面:第一次写博客,想把这半年的备赛经历记录下来分享分享给大家,如有错误欢迎大家指正。 比赛成绩:1分23秒(播放宣传片…

    2022年9月2日
    072
  • 软件测试简历项目经验怎么写,没有项目经验?

    怎么办?只能接受低薪工作吗?No No No。本文就教大家如何解决这个问题。 为了帮助大家彻底解决”没有项目”这个拦路虎,接下来文章将从以下几个方面进行展开…

    人工智能 2022年12月1日
    054
  • 深度学习推荐系统–协同过滤推荐算法+实现代码

    本文仅为本人的学习笔记 文章目录 * – 什么是协同过滤? – 用户相似度计算(Similarity Calculation) – + 1.余弦…

    人工智能 2022年11月16日
    0104
  • Python3.8安装tensorflow

    以下内容是针对安装tensorflow-CPU版本的。 tensorflow已经支持Python3.8版本的安装。 可以查看自己的Python版本信息,以及可以支持的tensorf…

    2022年8月10日
    0103
最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总