10、Halcon图像条形码和二维码识别 您所在的位置:网站首页 条形码识别不出来 10、Halcon图像条形码和二维码识别

10、Halcon图像条形码和二维码识别

2024-03-17 15:56| 来源: 网络整理| 查看: 265

 

1、条形码

原理:一维条形码由黑白两种颜色组成,具有宽高两个尺寸,其中宽度方向代表着数据信息。条形码上是一般标注着字符、数字、符号等。比如下面的Code128-A、Code128-B、Code128-C。

条形码一般是由前置符、中止符、数据符、中间分隔符、校验等组成。条形码是利用条纹和间隔或宽窄条纹构成二进制的“0”、“1”,反映实际信息。

算子:

create_bar_code_model:创建条码模型。

find_bar_code:条形码识别。

2、二维码

原理:二维码是在一维码的基础上扩展出来的条码,使用黑白矩形图案表示二进制数据。一维条形码的宽度代表着某些数据,而长度没有记载数据。二维码的长度、宽度都载着数据。二维码并且有定位矩形的以及容错机制,即使二维码有部分污染时,也能尽可能的还原信息。同样二维码也具有不同的标准,具有多种格式。但是,halcon仅支持UTF-8和LOCATE两种字符集。UTF-8是一种编码规则。

算子:

create_data_code_2d_model:创建二维码模型。

find_data_code_2d:二维码识别。

程序讲解:

(1)、条形码

读取图片

*读取条形码 read_image (Image, '1.png') rgb1_to_gray (Image, GrayImage)

创建条码模型

*创建条码模型。参数默认 create_bar_code_model ([], [], BarCodeHandle)

条形码识别

*参数4:要识别的条形码类别。不知道识别的条形码类型的话就写'auto' find_bar_code (GrayImage, SymbolRegions, BarCodeHandle, 'auto', DecodedDataStrings)

结束,清除条形码模型(再次识别的话,还需要再次创建模型)

*清除前面创建的条形码模型 clear_bar_code_model (BarCodeHandle)

(2)、二维码

读取图片

*读取二维码图 read_image (Image1, 'myTest.png') rgb1_to_gray (Image1, GrayImage1)

创建二维码模型

*创建二维码模型 create_data_code_2d_model ('QR Code', [], [], DataCodeHandle)

二维码识别

*二维码识别 *参数4、参数5,默认的如果不能识别,设置为'train'、'all',增加训练(程序时间变长) *find_data_code_2d (GrayImage1, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings1) find_data_code_2d (GrayImage1, SymbolXLDs, DataCodeHandle, 'train', 'all', ResultHandles, DecodedDataStrings1)

识别结束,清除前面创建的二维码模型

**清除前面创建的二维码模型 clear_data_code_2d_model (DataCodeHandle)

如果使用GB2312生成的二维码,在halcon中将无法识别。

 

*注意:测试的图片都是没有干扰的图像,识别准确。如果有干扰的话,需要将条形码、二维码裁剪出来。

 

工程代码链接:

https://download.csdn.net/download/panjinliang066333/12238906

 

附加

多张图像二维码识别:

https://download.csdn.net/download/panjinliang066333/12241341



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

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