条形码

算子列表 ↓

本章介绍了条形码以及在 HALCON 中查找和读取条形码时使用的重要术语。

线性(一维)条形码的结构

条形码由若干暗色条纹与亮色间隔构成。每种条形码均存在最小单元——即最窄条纹或最窄间隔,称为模数。通常条纹与间隔的宽度各异,但始终为模数的倍数。多个条纹与间隔共同形成特定图案,该图案通过解码表编码为特定符号。二进制图案编码符号的约定规则及其对应的解码表共同决定了条形码类型。除编码符号的图案外,还存在承担特殊功能的图案。根据条形码类型不同,还可能包含以下可选或必需的附加图案:

复合条形码的结构

复合条形码由以下元素组成:

下图展示了复合条形码的示意图。

image/svg+xml 1 6 8 7 5 4 2 3 9 0 1 2
通过 UPC-A 复合类型示例条形码表示的复合条形码示意图:线性条形码(黑色)、二维码(浅蓝色)及连接图案(橙色)。

条形码的读取

要读取图像中的条形码,首先必须定位其位置。HALCON 中被判定为条形码的区域称为候选区域。

要读取候选区域,需在该区域内铺设多条直线,称为扫描线。虽然理论上单条扫描线就足够,但实际操作中会尝试沿所有扫描线解码条形码。这能提高正确解码的概率。此外,多条成功解码的扫描线可进行额外的合理性检查——即同时读取多条扫描线能降低误判概率。

image/svg+xml H A L C O N
候选区域不同扫描线的示意图。某些扫描线读取成功(绿色),其他扫描线读取失败(红色)。

有关 HALCON 中读取条形码的工作流程及各类示例,请参阅“解决方案指南I - 基础篇”


算子列表

clear_bar_code_modelClearBarCodeModelclear_bar_code_modelClearBarCodeModelclear_bar_code_model清除条形码模型
删除条形码模型并释放分配的内存。
create_bar_code_modelCreateBarCodeModelcreate_bar_code_modelCreateBarCodeModelcreate_bar_code_model创建条形码模型
创建条形码阅读器的模型。
decode_bar_code_rectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2解码条形码矩形2
解码矩形内的条形码符号。
deserialize_bar_code_modelDeserializeBarCodeModeldeserialize_bar_code_modelDeserializeBarCodeModeldeserialize_bar_code_model反序列化条形码模型
反序列化条形码模型。
find_bar_codeFindBarCodefind_bar_codeFindBarCodefind_bar_code查找条形码
检测并读取图像中的条形码符号。
get_bar_code_objectGetBarCodeObjectget_bar_code_objectGetBarCodeObjectget_bar_code_object获取条形码对象
访问在搜索或解码条形码符号期间创建的图标对象。
get_bar_code_paramGetBarCodeParamget_bar_code_paramGetBarCodeParamget_bar_code_param获取条形码参数
获取一个或多个描述条形码模型的参数。
get_bar_code_param_specificGetBarCodeParamSpecificget_bar_code_param_specificGetBarCodeParamSpecificget_bar_code_param_specific获取条形码参数特定
获取条形码阅读器在处理特定条形码类型时使用的参数。
get_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultget_bar_code_result获取条形码结果
获取条形码符号解码过程中累积的字母数字结果。
query_bar_code_paramsQueryBarCodeParamsquery_bar_code_paramsQueryBarCodeParamsquery_bar_code_params查询条形码参数
获取给定条形码模型的 set_bar_code* 和 Get_bar_code* 算子中可以使用的参数名称。
read_bar_code_modelReadBarCodeModelread_bar_code_modelReadBarCodeModelread_bar_code_model读取条形码模型
从文件中读取条形码模型并创建新模型。
serialize_bar_code_modelSerializeBarCodeModelserialize_bar_code_modelSerializeBarCodeModelserialize_bar_code_model序列化条形码模型
序列化条形码模型。
set_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamset_bar_code_param设置条形码参数
设置条形码模型的选定参数。
set_bar_code_param_specificSetBarCodeParamSpecificset_bar_code_param_specificSetBarCodeParamSpecificset_bar_code_param_specific设置条形码参数特定
为选定的条形码类型设置条形码模型的选定参数。
write_bar_code_modelWriteBarCodeModelwrite_bar_code_modelWriteBarCodeModelwrite_bar_code_model写入条形码模型
将条形码模型写入文件。