Halcon学习---字符识别之一维码

本文详细介绍了条形码(一维码)的组成,包括两侧静空区、起始码、资料码、校验码和终止码。讲解了二进制、码制、数字含义以及宽度计算。此外,还探讨了解码过程、前置码推断和校验码的作用。文章还阐述了如何读取一维码,并提供了实战示例,如25工业条形码的读取。
摘要由CSDN通过智能技术生成

目录

(一)一维码的组成

(二)基础知识

1、进制---二进制 

2、码制

3、条形码数字代表的含义

4、一维码的宽度

5、 解码得到的数值是唯一的

6、前置码是怎么得到的

7、校验码有什么用?

(三)如何读取一维码

(四)一维码的实战


(一)一维码的组成

  • 组成:两侧静空区、起始码、资料码、校验码、终止码

  • 前置码:是隐藏的,不占用黑条白条来表示,由后面数字的奇偶性来推断出

  • 静空区:位于条码两侧无任何符号的白色区域,用来提示扫码器准备扫码

  • 起始码:第一位字码,表示一个条码的开始

  • 资料码:标识一个条码的具体数值

  • 校验码:检测识别出的字符是否有效,解码时先进行运算,如果运算结果与检查码相同,则此次读取有效

  • 终止码:表示一个条码的结束

(二)基础知识

图2-1

1、进制---二进制 

  • 条码的黑色条表示二进制的1,白色代表0,宽度为0.33mm,有的黑色条很宽,说明连着好几个二进制1

  • 一维条形码只能表示数字,不能表示字母符号和汉字,每个数字由7个二进制位组成

  • 根据EAN 码,起始符、终止符编码为101,分隔符编码为01010

2、码制

  • 一维条码的码制:  EAN码、39码、交叉25码、UPC码、128码、93码,ISBN码及Codabar(库德巴码)等

  • EAN 码:是国际通用的符号体系,是一种长度固定、无含意的条码,所表达的信息全部为数字,主要应用于商品标识 

  • 39码和128码:为目前国内企业内部自定义码制,可以根据需要确定条码的长度和信息,它编码的信息可以是数字、字母,主要应用于工业生产线领域、图书管理等 

  • 93码:是一种类似于39码的条码,它的密度较高,能够替代39码 

  • 25码:主要应用于包装、运输以及国际航空系统的机票顺序编号等 

  • Codabar码:应用于血库、图书馆、包裹等的跟踪管理 

  • ISBN:用于图书管理 

3、条形码数字代表的含义

图2-2
  • 一维条形码都是由13个数字,前三个数:制造码,接着四个数:制造商代码,接着五个数:商品标识代码,最后一个数:校验码

  • 该条形码:692 0152 46102 0,692(制造码),0152(制造商代码),46102商品标识代码,0(校验码)可以用来防伪以及识别校验

  • 扫描得到的结果其实为92 0152 46102 0,根据左侧数据符6个数的奇偶性推测出前置码,最后得到一维码为692 0152 46102 0

  • 因为前置码是隐藏的,所以只有12个数字(左侧数据符6个+右侧数据符6个)

4、一维码的宽度

  • 一个数字由7个二进制位组成,每一个二进制位由一个黑条或者白条来表示,每一个条的宽度为0.33mm

  • 图2-2共有12个数字表示数据信息,总共占12*7=84位

  • 起始符,终止符编码、分隔符总共占11位

  • 除前置码,整个区域宽度为:(84+11)* 0.33 = 31.35mm

5、 解码得到的数值是唯一的

  • 给定二进制串可以找到唯一确定的数字

  • 给一个数字不能唯一确定对应的是哪个二进制串,因为有三种编码方式

6、前置码是怎么得到的

  • 前置码是由左侧数据符6个数的奇偶性推测出来的

  • 对于条形码:692 0152 46102 0,左侧数据符为920152,右侧数据符为461020

  • 因为扫码枪是从左到右扫的,前七位是0001011,对应数值9,那么左侧6个数字都应该是左侧数据符

数值二进制奇偶性
90001011
20011011
00100111 
10110011
50110001
20010011
  • 根据表2-2可以得到前置码为6

o代表奇性,E代表偶性

7、校验码有什么用?

  • EAN-13最后一个字符是校验码,用来保证条形码识别的准确性

  • 校验码的算法

    • 从右至左,将13个字符顺序排列

    • 将偶数位的数据相加,结果乘以3,得到P

    • 将奇数位的数据相加,得到N

    • M= P + N

    • 用M除以10,取余数。求余数以10为模的补数C

    • 若C与校验码数值相等,则译码正确

(三)如何读取一维码

  • 扫码枪利用一维码上面白和黑条的不同反光率,射出的红色光线得到不同的反射强度,然后利用光电传感器转为电信号,滤波放大后转为数字信号0,1。每个数字由7个黑色或者白色单位宽度的条组成。当然你可以用摄像头拍摄然后图像处理方式进行一维码中0,1的提取也是可以的

  • 从左往右扫描得到左侧6个数字,同时根据编码表给出的奇偶性推导出第一个前置码为多少,再扫描右侧数据符6个,得到了总的13个数据符

  • 这13个数字里面包含了产品的重要信息,跟数据库进行对比得到产品的生产商,产品名称等信息

(四)一维码的实战

一维码---25industrial.hdev(读取2/5工业条形码)http://t.csdn.cn/nWOJC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盾山狂热粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值