Halcon Ean13 一维码读取

一 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.05set_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.mzph.cn/web/42208.shtml

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

相关文章

VScode免密链接ubuntu

Ubuntu 下载: sudo apt-get install openssh-serverps -e | grep sshd参考IP : ifconfig VScode配置 重新尝试连接,输入的密码是虚拟机用户密码 免密链接 Windows生成公钥 1、打开CMD 2、输入命令ssh-keygen 3、连续回车确认即可生成 …

正态、威布尔、指数分布、伽马分布、对数正态分布介绍

目录 正态、威布尔、指数分布、3.1 概念介绍概率密度函数(PDF)累积分布函数(CDF)性质应用 3.2 参数及绘图参数概率密度函数(PDF)累积分布函数(CDF)绘图图像解读 3.3 指数分布拟合代码…

第11章 规划过程组(二)(11.10制订进度计划)

第11章 规划过程组(二)11.10制订进度计划,在第三版教材第395~397页;文字图片音频方式 第一个知识点:定义及作用 分析活动顺序、持续时间、资源需求和进度制约因素,创建项目进度模型,从而落实项目…

Docker定时清理

一、循环调度执行 1、检查cron状态 systemctl status crond 2、创建要执行的shell脚本 vim /home/cleanup_docker.sh #! /bin/bash # 清理临时文件 echo $(date "%H:%M:%S") "执行docker清理命令..." docker system prune -af-a 清理包括未使用的镜像 …

Android EditText+ListPopupWindow实现可编辑的下拉列表

Android EditTextListPopupWindow实现可编辑的下拉列表 📖1. 可编辑的下拉列表✅步骤一:准备视图✅步骤二:封装显示方法✅步骤三:获取视图并监听 📖2. 扩展上下箭头✅步骤一:准备上下箭头icon图标✅步骤二&…

Redisson分布式锁、可重入锁

介绍Redisson 什么是 Redisson?来自于官网上的描述内容如下! Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格客户端(In-Memory Data Grid)。它不仅提供了一系列的 redis 常用数据结构命令服务,还提供了…

北森锐途人才竞聘盘点管理测评:高管领导力六大评判标准深度解析万达商管中国绿发等

北森锐途人才管理测评:高管领导力评判标准深度解析 在企业高管的盘点与竞聘测评领域,众多管理人才面临评估自身领导力的挑战。面对能力卓越、职级显赫的同僚,许多管理者感到缺乏一套权威且专业的评价体系。然而,无论是天赋异禀的领…

vue+cesium之加载天地图影像底图与注记

目录 1.创建地图容器2.叠加天地图影像底图与矢量注记 关键代码3.示例效果图 Cesium是默认加载了微软公司的Bing地图,并提供了BingMapslmageryProvider类来加载Bing地图。也就是说,在创建Viewer时,如果不指定lmageryProvider类就默认加载Bing地…

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 …

C语言之数据在内存中的存储(1),整形与大小端字节序

目录 前言 一、整形数据在内存中的存储 二、大小端字节序 三、大小端字节序的判断 四、字符型数据在内存中的存储 总结 前言 本文主要讲述整型包括字符型是如何在内存中存储的,涉及到大小端字节序这一概念,还有如何判断大小端,希望对大…

2、需求工具 - 编程实战工具系列文章

需求分析工具 笔者对于需求分析工具的应用,主要是思维导图软件和Word。思维导图用来理清需要的需求功能,而Word用来记录每个需求功能的实际内容。 对于思维导图软件,笔者用过几个,但是有些需要注册码,有些需要费用&…

谷粒商城学习-09-配置Docker阿里云镜像加速及各种docker问题记录

文章目录 一,配置Docker阿里云镜像加速二,Docker安装过程中的几个问题1,安装报错:Could not resolve host: mirrorlist.centos.org; Unknown error1.1 检测虚拟机网络1.2 重设yum源 2,报错:Could not fetch…

Redis基础教程(十五):Redis GEO地理信息查询与管理

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

绝区伍--2024年AI发展路线图

2024 年将是人工智能具有里程碑意义的一年。随着新模式、融资轮次和进步以惊人的速度出现,很难跟上人工智能世界发生的一切。让我们深入了解 2024 年可能定义人工智能的关键事件、产品发布、研究突破和趋势。 2024 年第一季度 2024 年第一季度将推出一些主要车型并…

从零开始读RocketMq源码(二)Message的发送详解

目录 前言 准备 消息发送方式 深入源码 消息发送模式 选择发送方式 同步发送消息 校验消息体 获取Topic订阅信息 高级特性-消息重投 选择消息队列-负载均衡 装载消息体发送消息 压缩消息内容 构造发送message的请求的Header 更新broker故障信息 异步发送消息 …

Open3D KDtree的建立与使用

目录 一、概述 1.1kd树原理 1.2kd树搜索原理 1.3kd树构建示例 二、常见的领域搜索方式 2.1K近邻搜索(K-Nearest Neighbors, KNN Search) 2.2半径搜索(Radius Search) 2.3混合搜索(Hybrid Search) …

后端之路——登录校验前言(Cookie\ Session\ JWT令牌)

前言:Servlet 【登录校验】这个功能技术的基础是【会话技术】,那么在讲【会话技术】的时候必然要谈到【Cookie】和【Session】这两个东西,那么在这之前必须要先讲一下一个很重要但是很多人都会忽略的一个知识点:【Servlet】 什么是…

Oracle 19c 统一审计表清理

zabbix 收到SYSAUX表空间告警超过90%告警,最后面给出的清理方法只适合ORACLE 统一审计表的清理,传统审计表的清理SYS.AUD$不适合,请注意。 SQL> Col tablespace_name for a30 Col used_pct for a10 Set line 120 pages 120 select total.…

STM32实战篇:闪灯 × 流水灯 × 蜂鸣器

IO引脚初始化 即开展某项活动之前所做的准备工作,对于一个IO引脚来说,在使用它之前必须要做一些参数配置(例如:选择工作模式、速率)的工作(即IO引脚的初始化)。 IO引脚初始化流程 1、使能IO引…

LED灯的呼吸功能

"呼吸功能"通常是指 LED 灯的一种工作模式,它模拟人类的呼吸节奏,即 LED 灯的亮度会周期性地逐渐增强然后逐渐减弱,给人一种 LED 在"呼吸"的感觉。这种效果通常用于指示设备的状态或者简单地作为装饰效果。(就…