[第三章]条形码扫描算法:定位和解码 您所在的位置:网站首页 一维条形码的识别原理 [第三章]条形码扫描算法:定位和解码

[第三章]条形码扫描算法:定位和解码

2024-01-25 04:05| 来源: 网络整理| 查看: 265

条形码扫描是如何工作的

了解条形码识别的技术可能很复杂。下面,让我们简化一下。

条形码识别软件扫描条形码图像的整个宽度来识别条形码。 一旦扫描到了条形码,便对其进行解码并显示编码信息。 此外,考虑到如今移动设备的广泛使用,人们还使用相机来捕获条形码图像,并对其进行处理和解码。

步骤1:识别条形码所在的区域

步骤2:从条形码中提取编码信息

定位和解码

如何解一维(1D)条形码

启动扫描后,扫描器会搜索所有的条形码以检测其类型。条形码阅读器扫描图像的整个宽度,试图识别是否有条形码候选对象——黑/白图。

一旦识别出条形码,条形码API就有需要检测的区域,然后开始解码。在此步骤中,条形码扫描器尝试理解编码信息。它对图像像素进行计数和比较,以匹配开始和结束标识符。然后,它根据该代码类型的规范来解析开始标识符和结束标识符之间的模式,以解开编码的数据。

如何解二维(2D)条形码

与一维条形码相似,在启动扫描时,扫描器会尝试查找条形码。 如上所述,不同的条码类型具有不同的识别模式。

在解码步骤中,条形码识别API会尝试根据该代码类型的规范来解析黑白模块的模式。这些规范都是标准化的。除了条形码信息(通常是数字和字符的组合)之外,二维条形码通常还包含冗余数据。这就要求软件能够读取和解码数据值。编码值的构建类似于代码字的堆栈。

高级的定位方法

有三种定位方式:

Connected Blocks(连通块定位)Statistics (统计定位)Line Segment(直线定位)

每种方法都有其独特的优点和缺点。一个设计良好的条形码识别软件需要在速度和精度之间取得平衡。

Connected Blocks(连通块定位)

连通块定位是通过识别图像中的连通块。它寻找的是一组连在一起的像素。例如,任何连续的像素块。

识别完图像中的所有块后,便会寻找已知的条形码模式来过滤条形码位置。 例如,QR码的特征是在四个角中有三个角上有明显的正方形目标。角落中的每个正方形目标均由两个放块组成:一个实心方块位于空心外方块的中间。同时,外正方形的横截面厚度,间隙和实心中心正方形的宽度之比为1:1:3。

一旦这三个正方形被定位出来了,就需要确定条形码的边缘,并将三个角上的正方形目标分组到同一个条形码上,考虑到特殊情况,如正方形丢失或部分损坏等。条形码区域识别出来后,其余的空间就会被过滤掉。

这种方法的优点主要是速度快,所需的处理能力低。但它的缺点是很容易损坏条形码。 例如,在一维条形码上水平的放了一支笔做标记,那么分隔的条就变成了一个连通块,从而破坏了一维码的识别。

Statistics (统计定位)

这种定位方法的主要优点是识别模糊图像中的条形码。如果选择二值化图像中的任意区域来计算黑白像素的比例,我们可以得出这样的结论:特定区域可能包含条形码,也可能不包含。一旦确定一个区域包含条形码,它就会通过搜索已知的条形码模式进一步细化条形码区域以查找条形码位置。

Line Segment(直线定位)

顾名思义,该方法在图像中查找直线,然后通过将直线与已知的条形码图案进行匹配来过滤出条形码区域。此方法适用于损坏的条形码,但比起连通块定位,直线定位需要更多的运算。

附:Dynamsoft Barcode Reader 免费在线演示

这篇文章是“条形码阅读技术的最佳实践”系列的第三章。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有