尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

Halcon条码技术详解(含 Halcon 应用示例)
📅 发布时间:2026/6/19 10:03:51

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

相关新闻

  • C#+VisionMaster联合开发控件篇(八)_参数配置带渲染窗体
  • 2026毕设ssm+vue基于高校新生报到论文+程序
  • groovy基础了解

最新新闻

  • Awesome-AI 开源仓库架构设计与技术学习路线工程化沉淀方案
  • (2026新)珠海正规防水补漏公司口碑榜TOP5权威推荐!卫生间/厨房/阳台/屋顶/天花板/地下室渗漏水检测维修攻略-靠谱漏水检测维修师傅推荐 - 安佳防水
  • 深入解析CAN总线标识符过滤:原理、配置与MSCAN实战指南
  • 终极指南:跨平台获取macOS系统镜像的完整解决方案
  • 深入解析MC68HC908AS32A SPI模块:从寄存器配置到中断与错误处理实战
  • CANN/ops-math Mod取模算子

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号