本章介绍了条形码以及在 HALCON 中查找和读取条形码时使用的重要术语。
条形码由若干暗色条纹与亮色间隔构成。每种条形码均存在最小单元——即最窄条纹或最窄间隔,称为模数。通常条纹与间隔的宽度各异,但始终为模数的倍数。多个条纹与间隔共同形成特定图案,该图案通过解码表编码为特定符号。二进制图案编码符号的约定规则及其对应的解码表共同决定了条形码类型。除编码符号的图案外,还存在承担特殊功能的图案。根据条形码类型不同,还可能包含以下可选或必需的附加图案:
静区:该区域内不得出现任何边缘。为识别代码,起始字符前及停止字符后均需设置此区域。
起始与停止图案:定义起始、停止及方向。这些图案使得能够从左至右以及从右至左(因此也包括倒置状态)读取并解码代码。
校验和:一个用于安全检查的数字,用于确保代码已被正确读取。
防护图案:特定图案,可出现在左侧、右侧或中央作为附加符号。
查找器图案:用于定位符号的模式。
附加符号:用于编码补充信息的额外符号。这些符号以长度受限的条形码形式编码。
复合条形码由以下元素组成:
线性条形码:如上所述。
二维码:有关二维码的更多信息,请参阅“解决方案指南 II-C:二维数据码”。
连接图案:将前面提到的两种代码结合起来。
下图展示了复合条形码的示意图。
要读取图像中的条形码,首先必须定位其位置。HALCON 中被判定为条形码的区域称为候选区域。
要读取候选区域,需在该区域内铺设多条直线,称为扫描线。虽然理论上单条扫描线就足够,但实际操作中会尝试沿所有扫描线解码条形码。这能提高正确解码的概率。此外,多条成功解码的扫描线可进行额外的合理性检查——即同时读取多条扫描线能降低误判概率。
有关 HALCON 中读取条形码的工作流程及各类示例,请参阅“解决方案指南I - 基础篇”。
clear_bar_code_model清除条形码模型create_bar_code_model创建条形码模型decode_bar_code_rectangle2解码条形码矩形2deserialize_bar_code_model反序列化条形码模型find_bar_code查找条形码get_bar_code_object获取条形码对象get_bar_code_param获取条形码参数get_bar_code_param_specific获取条形码参数特定get_bar_code_result获取条形码结果query_bar_code_params查询条形码参数read_bar_code_model读取条形码模型serialize_bar_code_model序列化条形码模型set_bar_code_param设置条形码参数set_bar_code_param_specific设置条形码参数特定write_bar_code_model写入条形码模型