Halcon Ean13 一维码读取

news2024/9/21 14:35:50

一 EAN码介绍

1 EAN码定义:

EAN码是国际物品编码协会制定的一种商品用条码,通用于全世界。EAN码符号有标准版(EAN-13)和缩短版(EAN-8)两种。标准版表示13位数字,又称为EAN13码,缩短版表示8位数字,又称EAN8。两种条码的最后一位为校验位,由前面的12位或7位数字计算得出
在这里插入图片描述

2 EAN码结构:

EAN13商品条码由左侧空白区、起始符、左侧数据符、中间分隔符、右侧数据符、校验符、终止符、右侧空白区及供识别字符组成。 其各个组成部分如下:
·左侧空白区
位于条码符号最左侧的与空的反射率相同的区域,其最小宽度为11个模块宽。
·起始符
位于条码符号左侧空白区的右侧,表示信息开始的特殊符号,由3个模块组成。
·左侧数据符
位于起始符号右侧,中间分隔符左侧的一组条码字符。表示6位数字信息,由42个模块组成。
·中间分隔符
位于左侧数据符的右侧,是平分条码字符的特殊符号,由5个模块组成。
右侧数据符
位于中间分隔符右侧,校验符左侧的一组条码字符。表示5位数字信息的一组条码字符,由35个模块组成。
·校验符
位于右侧数据符的右侧,表示校验码的条码字符,由7个模块组成。
·终止符
位于条码符号校验符的右侧,表示信息结束的特殊符号,由3个模块组成。
·右侧空白区
位于条码符号最右侧的与空的反射率相同的区域,其最小宽度为7个模块宽。为保护右侧空白区的宽度,可在条码符号右下角加“>”符号。
·供人识别字符
位于条码符号的下方,与条码相对应的13位数字。供人识别字符优先选用GB/T 12508中规定的OCR-B字符集;字符顶部和条码字符底部的最小距离为0.5个模块宽。EAN-13商品条码供人识别字符中的前置码印制在条码符号起始符的左侧。
EAN码的编码规则是什么?
起始符和终止符3个模块的编码均为101,中间分隔符5个模块的编码是01010。左侧数据符和右侧数据符的编码方式不同。在左侧数据符中,有A和B两种编码方式,右侧数据符中有C编码方式。其中A和C之间是反码关系,B和C之间是倒序关系。在左侧数据符中的编码方式选A还是B,由前置码字符决定

3 EAN码特性:

EAN码具有以下特性:
1、只能储存数字。
2、可双向扫描处理,即条码可由左至右或由右至左扫描。
3、必须有一检查码,以防读取资料的错误情形发生,位於EAN码中的最右边处。
4、具有左护线、中线及右护线,以分隔条码上的不同部分与撷取适当的安全空间来处理。
5、条码长度一定,较欠缺弹性,但经由适当的管道,可使其通用於世界各国。
6、依结构的不同,可区分为:
  EAN-13码:由13个数字组成,为EAN的标准编码型式。
  EAN- 8码:由8个数字组成,属EAN的简易编码型式。

*创建一个条码读取模版
create_bar_code_model ([], [], BarCodeHandle)

*关闭已经打开的窗口
dev_close_window ()

*打开一个新窗口
dev_open_window (0, 0, 120, 300, 'black', WindowHandle)

*设置字体的信息:字体大小:16,字体类型:mono,粗体,非斜体
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')

*设置输出对象的显示颜色
dev_set_color ('green')

*设置区域填充方式
dev_set_draw ('margin')

*设置输出对象的线宽度
dev_set_line_width (3)

*成功解码到一个条形码后将解码停止
set_bar_code_param (BarCodeHandle, 'stop_after_result_num', 1)
for I := 1 to 15 by 1
    
    *读取一张图像
    read_image (Image, 'barcode/ean13/ean13' + (I$'.2'))
    
    *重绘窗口大小,让图像自适应到窗口
    dev_resize_window_fit_image (Image, 0, 0, -1, -1)
    if (I == 14)
        *14张图像包含可能导致错误解码的缺陷对象,因此,“mean_thresh”参数被调整。
        *用这个阈值找到边缘位置的扫描线来确定条形码的条形空间序列.
        set_bar_code_param (BarCodeHandle, 'meas_thresh', 0.2)
    endif
    
    *在图像上读取出条码数据和条码区域
    find_bar_code (Image, SymbolRegions, BarCodeHandle, 'EAN-13', DecodedDataStrings)
    if (I == 14)
        *执行完第14张图像,恢复meas_thresh值为0.05
        set_bar_code_param (BarCodeHandle, 'meas_thresh', 0.05)
    endif
    
    *获取条码区域的面积和中心坐标
    area_center (SymbolRegions, Area, Row, Column)
    
    *显示图像
    dev_display (Image)
    
    *显示条码区域
    dev_display (SymbolRegions)
    
    *在窗口上显示条码数据信息
    disp_message (WindowHandle, DecodedDataStrings, 'image', Row - 30, Column - 90, 'black', 'true')

    *stop ()
endfor

*删除条码模版并清除分配的内存
clear_bar_code_model (BarCodeHandle)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1908231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SSM慢性病患者健康管理系统-计算机毕业设计源码04877

目 录 摘要 1 绪论 1.1 研究意义 1.2研究目的 1.3论文结构与章节安排 2 慢性病患者健康管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分…

day02_员工管理

文章目录 新增员工需求分析和设计代码开发功能测试代码完善录入的用户名已存在,抛出异常后没有处理新增员工的时候,创建人id和修改人id设置为了固定值ThreadLocal(面试题) 分页查询问题解决 启用禁用员工账号需求和分析代码设计 编…

分享外贸工作中常用英文标准表达和英文语句

常用英文表达 报拉格斯最低到岸价 quote the lowest price CIF Lagos经营纺织品多年 be in the line of textiles for many years货物受欢迎 the goods are very popular with customers / have met with a warm reception /be well received/accepted/ enjoy a wide populari…

2024年7月2日~2024年7月8日周报

目录 一、前言 二、完成情况 2.1 吴恩达机器学习系列课程 2.1.1 分类问题 2.1.2 假说表示 2.1.3 判定边界 2.2 学习数学表达式 2.3 论文写作情况 2.3.1 题目选取 2.3.2 摘要 2.3.3 关键词 2.3.4 引言部分 2.3.4 文献综述部分 三、下周计划 3.1 存在的问题 3.2 …

Nacos注册中心相关错误记录

文章目录 1,com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:jar:unknown was not found1.1 定位及解决方案1.2,简要说明dependencyManagement的作用 2,nacos启动失败2.1 解决方案 1,com.alibaba.cloud:spring-c…

七大AI绘画软件大比拼!高效且免费!

在当今数字时代,人工智能技术广泛应用于各个行业,包括艺术创作。人工智能绘画软件可以帮助艺术家更快、更有效地创作。然而,市场上人工智能绘画软件的选择也令人眼花缭乱。那么,哪种人工智能绘画软件更好呢?需要明确的…

《UDS协议从入门到精通》系列——图解0x84:安全数据传输

《UDS协议从入门到精通》系列——图解0x84:安全数据传输 一、简介二、数据包格式2.1 服务请求格式2.2 服务响应格式2.2.1 肯定响应2.2.2 否定响应 Tip📌:本文描述中但凡涉及到其他UDS服务的,均提供专栏内文章链接跳转方式以便快速…

平安消保在行动 | 守护每一个舒心笑容 不负每一场双向奔赴

“要时刻记得以消费者为中心,把他们当做自己的朋友,站在他们的角度去思考才能更好地解决问题。” 谈及如何成为一名合格的消费者权益维护工作人员,平安养老险深圳分公司负责咨诉工作的庞宏霄认为,除了要具备扎实的专业技能和沟通…

大舍传媒:如何在海外新闻媒体发稿报道摩洛哥?

引言 作为媒体行业的专家,我将分享一些关于在海外新闻媒体发稿报道摩洛哥的干货教程。本教程将带您深入了解三个重要的新闻媒体平台:Mediterranean News、Morocco News和North African News。 地中海Mediterranean News Mediterranean News是一个知名…

景芯SoC训练营DFT debug

景芯训练营VIP学员在实践课上遇到个DFT C1 violation,导致check_design_rule无法通过,具体报错如下: 遇到这个问题第一反映一定是确认时钟,于是小编让学员去排查add_clock是否指定了时钟,指定的时钟位置是否正确。 景芯…

Spring AOP源码篇四之 数据库事务

了解了Spring AOP执行过程&#xff0c;再看Spring事务源码其实非常简单。 首先从简单使用开始, 演示Spring事务使用过程 Xml配置&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema…

SpringBoot的热部署和日志体系

SpringBoot的热部署 每次修改完代码&#xff0c;想看效果的话&#xff0c;不用每次都重新启动代码&#xff0c;等待项目重启 这样就可以了 JDK官方提出的日志框架&#xff1a;Jul log4j的使用方式&#xff1a; &#xff08;1&#xff09;引入maven依赖 &#xff08;2&#x…

Qt QWizard新建向导实例

使用QWizard做新建向导&#xff0c;最简单的实例 class MyWizard : public QWizard { public: MyWizard(QWidget* parent nullptr); QWizardPage* createFirstPage(); QWizardPage* createSecondPage(); QWizardPage* createThirdPage(); }; MyWizard::MyWizard(QWidget* par…

19_谷歌GoogLeNet(InceptionV1)深度学习图像分类算法

1.1 简介 GoogLeNet&#xff08;有时也称为GoogleNet或Inception Net&#xff09;是一种深度学习架构&#xff0c;由Google的研究团队在2014年提出&#xff0c;主要设计者为Christian Szegedy等人。这个模型是在当年的ImageNet大规模视觉识别挑战赛&#xff08;ILSVRC&#xf…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

昇思25天学习打卡营第5天|MindSpore网络模型构建

打卡 目录 打卡 模型类 模型网络&#xff1a;定义与使用 模型层级分解 nn.Flatten 张量转换-演示查看 nn.Dense 全连接层-演示查看 nn.ReLU 非线性激活层-演示查看 nn.SequentialCell 有序网络容器 nn.Softmax 多分类概率预测 模型参数 前置感受&#xff1a;总的来说…

跟《经济学人》学英文:2024年07月06日这期:How Starbucks caffeinates local economies

How Starbucks caffeinates local economies Call it the frappuccino effect frappuccino&#xff1a;星冰乐 星巴克如何刺激当地经济&#xff1a;称之为星冰乐效应 原文&#xff1a; Starbucks offers endless opportunities for innovation. Parts of social media del…

Scrapy框架的基本使用教程

1、创建scrapy项目 首先在自己的跟目录文件下执行命令&#xff1a; PS D:\BCprogram\python_pro\bigdata> scrapy startproject theridion_grallatorscrapy startproject 项目名 具体执行操作如下&#xff1a;1、创建项目目录&#xff1a;Scrapy会在当前工作目录下创建一…

OceanBase 配置项系统变量实现及应用详解(1):配置项的定义及使用方法

《OceanBase 配置项&系统变量实现及应用详解》专题导读 在使用OceanBase的过程中&#xff0c;看到大家经常会遇到“参数”、“配置项”、“系统变量”等概念&#xff0c;却不太清楚它们是不是同一个东西&#xff0c;以及应该如何使用。一些对数据库开发感兴趣的朋友&#…

JavaScript总结2

概述 JavaScript是世界上最流行的脚本语言。JavaScript是一种轻量级的编程语言&#xff0c;可以插入HTML页面的编程代码。 JavaScript插入HTML页面后&#xff0c;可由浏览器执行。 特点 语法简单&#xff0c;易学易用&#xff1b; 解释性语言&#xff1b; 跨平台&#xff…