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等函数实现高效识别,结合等级检测可确保条码在实际场景中的可靠性。

相关推荐
跨境猫小妹6 小时前
告别 0 曝光!TikTok 冷启动在算法丛林建信任营地
大数据·人工智能·算法·产品运营·亚马逊
攻城狮7号6 小时前
OpenAI发布GPT-5.2:是王者归来还是强弩之末?
人工智能·openai·多模态模型·gpt-5.2
是Dream呀6 小时前
从算力浪费到效能倍增:openFuyao应用货架的实践与突破
人工智能·架构·openfuyao
shayudiandian6 小时前
AI工具实战测评
人工智能
副露のmagic6 小时前
更弱智的算法学习 day12
数据结构·学习·算法
GEO AI搜索优化助手6 小时前
生态重构:GEO视野下的未来信息传播链变革
人工智能·搜索引擎·生成式引擎优化·ai优化·geo搜索优化
黑客思维者6 小时前
GWM1真预测技术与GEN4.5视频模型技术研究
人工智能·机器学习·gwm
LiYingL6 小时前
ImmerseGen:由代理引导的、轻量级的、高度逼真的下一代虚拟现实场景生成
人工智能·vr
CES_Asia6 小时前
八大核心展区全景布局!CES Asia 2026北京展勾勒未来科技生态图谱
大数据·人工智能·科技·机器人