Halcon条码技术详解(含 Halcon 应用示例)

条码技术详解(含 Halcon 应用示例)

一、一维码(线性条码)

1. 定义

一维码是由规则排列的 (低反射率部分)和(高反射率部分)组成的标记,通过条空组合表达信息,可被设备识读并转换为计算机兼容的二进制 / 十进制数据。

2. 常见码制及应用场景

码制 特点及应用 示例场景
EAN 码 国际通用商品条码,分 EAN-13(13 位,标准版)和 EAN-8(8 位,缩短版),我国通用商品条码与其等效。 超市商品包装、零售商品
UPC 码 美国统一代码委员会制定,分 UPC-A(12 位)和 UPC-E(6 位),主要用于美加地区。 美国进口商品、北美零售市场
39 码 可表示数字、字母及特殊字符,应用广泛,适用于工业、图书、票证管理。 物流标签、工业零部件追溯
Code 93 码 字符集与 39 码相同,密度更高,适用于空间有限的场景。 小型包装、电子元件标签
库德巴码(Codabar) 支持数字和字母,主要用于医疗卫生、图书情报、物资管理。 医院病历管理、图书馆借阅标签
Code 128 码 可表示 ASCII 0-127 全字符集,密度高、容错性强,应用灵活。 物流面单、生产流水线追溯
ITF 25 码(交叉 25 码) 仅表示数字,条空均含信息,字符数为偶数(奇数需补 0),适用于包装行业。 瓦楞纸箱、包装物流标签
Industrial 25 码 仅表示数字,条含信息、空为分隔符,结构简单。 仓储托盘标识、工业零件编号
Matrix 25 码 仅表示数字,结合 ITF25 的起止符可生成中国邮政码。 邮政包裹、信件分拣

3. 组成结构

一维码的标准结构(从左到右):

复制代码
静区(前) → 起始符 → 数据符 → [中间分割符(如EAN码)] → [校验符] → 终止符 → 静区(后)
  • 静区:条码两端的空白区域,确保阅读器正确识别起始 / 终止,宽度通常≥6mm(或 10 倍模块宽度)。

  • 起始 / 终止符:标志条码的开始和结束,包含码制识别和阅读方向信息。

  • 数据符:核心信息区域,由条空组合表示具体数据。

  • 模块:条码中最窄的条或空,是构成条码的基本单位(单位:mm 或 mil)。

二、二维码

1. 定义

二维码(2-dimensional bar code)是通过平面(二维方向)上黑白相间的几何图形按规律分布记录信息的符号,基于二进制 "0""1" 逻辑,可被扫描设备自动识读,支持多行信息识别和旋转处理,具备字符集特定、校验功能等特性。

2. 常见码制及应用

码制 特点及应用 示例场景
QR Code 应用最广泛,容错能力强(7%~30%),支持中文、图片等,可快速识读。 支付码、名片、产品溯源
Data Matrix 高密度,最小可打印在 1mm² 内,适用于小尺寸物品(如电子元件)。 芯片标识、医疗器械标签
PDF417 多行堆叠式,信息容量大(可存 1850 个字符),适用于证件类。 身份证、护照、登机牌
Aztec Code 无静区,识别速度快,适用于移动设备扫描。 门票、电子优惠券
MaxiCode 圆形结构,专为物流设计,支持快速分拣。 联邦快递、UPS 包裹追踪

三、条码 / 二维码等级

条码等级是衡量识读性能的标准,由国际标准 ISO/IEC 15416(一维码)和 ISO/IEC 15415(二维码)规定,通常分为A、B、C、D、F五级:

  • A 级:最优,可被所有设备快速识读,适用于高速扫描场景(如生产线)。

  • B 级:良好,大部分设备可识读,适用于普通零售。

  • C 级:一般,需调整扫描设备参数才能识读,适用于低速度场景。

  • D 级:较差,识读困难,可能需要多次尝试。

  • F 级:不合格,无法被标准设备识读。

四、Halcon 条码处理示例

Halcon 提供了完整的条码识别库,支持一维码和二维码的读取、定位及等级检测。

1. 一维码识别(以 EAN-13 为例)

复制代码
read_image (Image, 'ean13_label.png')  // 读取含EAN-13码的图像
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (Image)
​
// 预处理:转为灰度图(若为彩色)
rgb1_to_gray (Image, GrayImage)
​
// 识别一维码(自动识别码制)
read_bar_code (GrayImage, BarCodeStrings, 'auto', DecodedDataHandles)
​
// 输出结果
if (|BarCodeStrings| > 0)
    disp_message (WindowHandle, '识别结果: ' + BarCodeStrings, 'window', 10, 10, 'green', 'true')
else
    disp_message (WindowHandle, '未识别到条码', 'window', 10, 10, 'red', 'true')
endif
​
// 释放资源
clear_bar_code_data (DecodedDataHandles)

2. 二维码识别(以 QR Code 为例)

复制代码
read_image (Image, 'qr_code.png')  // 读取含QR码的图像
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (Image)
​
// 预处理:增强对比度(可选)
emphasize (Image, ImageEmphasize, 1, 1, 1)
​
// 识别二维码(指定QR Code码制)
find_qr_code (ImageEmphasize, QRCodeModelID, QRCodeResultID, 'all', 0, 0, ResultHandles, DecodedData)
​
// 输出结果及定位
if (|DecodedData| > 0)
    disp_message (WindowHandle, 'QR码内容: ' + DecodedData, 'window', 10, 10, 'green', 'true')
    // 绘制二维码边框
    get_qr_code_result (ResultHandles, 'contour', Contours)
    dev_set_color ('red')
    dev_display (Contours)
else
    disp_message (WindowHandle, '未识别到QR码', 'window', 10, 10, 'red', 'true')
endif
​
// 释放资源
clear_qr_code_result (ResultHandles)
clear_qr_code_model (QRCodeModelID)

3. 条码等级检测(以 Code 128 为例)

复制代码
read_image (Image, 'code128_quality.png')
gray_image (Image, GrayImage)
​
// 创建条码等级检测模型
create_bar_code_quality_model (BarCodeQualityModelID)
​
// 检测条码等级
inspect_bar_code_quality (GrayImage, BarCodeQualityModelID, 'code128', 0, 0, QualityResults, DecodedData)
​
// 输出等级结果
get_bar_code_quality_result (QualityResults, 'grade', Grade)
disp_message (WindowHandle, '条码等级: ' + Grade, 'window', 10, 10, 'blue', 'true')
​
// 释放模型
clear_bar_code_quality_model (BarCodeQualityModelID)

总结

一维码适用于简单信息(如商品编号),二维码支持大容量、多类型信息(如图文、网址)。Halcon 通过read_bar_codefind_qr_code等函数实现高效识别,结合等级检测可确保条码在实际场景中的可靠性。

相关推荐
SailingCoder1 分钟前
AI 流式对话该怎么做?SSE、fetch、axios 一次讲清楚
前端·javascript·人工智能·ai·node.js
腾视科技3 分钟前
超低功耗 性能卓越|腾视科技重磅推出TS-SG-SM9系列AI算力模组,引领边缘智能计算新篇章
人工智能·科技
视界先声3 分钟前
洁诚新能源:践行双碳战略的绿色行动派
大数据·人工智能·物联网
gorgeous(๑>؂<๑)3 分钟前
【南京大学-李文斌-arXiv25】超高分辨率遥感多模态大语言模型基准测试
人工智能·语言模型·自然语言处理
低调小一3 分钟前
Google A2UI 协议深度解析:AI 生成 UI 的机遇与实践(客户端视角,Android/iOS 都能落地)
android·人工智能·ui
AI白艿4 分钟前
男装市场稳健增长?AI助力精准把握消费新趋势
人工智能·aigc
5G全域通4 分钟前
工信部2026年短信业务合规申请全流程官方指南(1月1日强制生效)
大数据·网络·人工智能·信息与通信·时序数据库
木卫四科技5 分钟前
【CES 2026】木卫四科技携“合规全生命周期”汽车网络安全方案亮相 CES 2026
人工智能·木卫四科技·ces2026·智能汽车安全
爱思德学术6 分钟前
中国计算机学会(CCF)推荐学术会议-B(交叉/综合/新兴):CogSci 2026
人工智能·神经网络·认知科学
好奇龙猫8 分钟前
【人工智能学习-AI-MIT公开课第 16 讲:支持向量机(SVM)】
人工智能·学习·支持向量机