solution_guide_ii_c_2d_data_codes[Chapter 2]

欢迎关注

Chapter 2

A First Example

在这里插入图片描述
本部分展示了读取二维码的基本步骤。我们可以打开案例hdevelop\Applications\Data-Codes\ecc200_simple.hdev,跟着案例读取图片中的二维码[Data Matrix ECC 200]。当前步骤是初始化程序后的下一步[程序的第一个Stop]

Step 1: Specify the 2D data code model

create_data_code_2d_model ('Data Matrix ECC 200', [], [], DataCodeHandle)

在这里插入图片描述
首先,方法[create_data_code_2d_model]指定了需要读取的二维码类型[ SymbolType]。函数返回了模型的句柄。Halcon支持的二维码类型有: ’PDF417’, ’Data Matrix ECC 200’, ’QR Code’, ’Micro QR Code’, and ’Aztec Code’。

Step 2: Find, read, and decode the symbol

find_data_code_2d (Image, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)

在这里插入图片描述
然后读取图片,每张图片使用算子 find_data_code_2d 查找指定类型的二维码,如果找到,读取并解码。find_data_code_2d算子的输入参数是图片和模型句柄。如果图片中包含多于一个二维码,我们必须另外添加一个通用参数‘stop_after_result_num’来指定图片中包含的二维码数量。在本例中,二维码的数量是1,这是默认的参数数值。因为没有额外的参数需要设置,本例中调用算子时候,传递了两个空元组[]。算子[ find_data_code_2d]有三个返回值:二维码边界的 XLD轮廓,结果句柄以用来评估查找流程,解码的字符串。本例中,字符来用函数disp_message显示,xld轮廓用算子dev_display显示。

dev_display (Image)
dev_display (SymbolXLDs)
disp_message (WindowHandle, DecodedDataStrings, 'window', 40, 12, \
'black', 'true')
*
* If no data code could be found
if (|DecodedDataStrings| == 0)
disp_message (WindowHandle, \
'No data code found.\nPlease adjust the parameters.', 'window', 40, 12, 'red', 'true')
endif

在这里插入图片描述

Step 3: Clear the 2D data code model

clear_data_code_2d_model (DataCodeHandle)

在这里插入图片描述
算子 [create_data_code_2d_model] 和[find_data_code_2d ]分配的内存,用算子[clear_data_code_2d_model]释放和清空内存。
当运行程序时,我们给算子应用了默认参数,这些参数的选择依据与一定的标准,并不能保证能够查找所有的二维码。下一章将讲解如何选择参数以更好的适应我们的应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值