条形码识别(3)——译码

本文介绍了条形码识别中的两种方法:平均值译码法和相似边距离译码法,重点阐述了相似边距离译码法的原理,包括计算相似边距离与归一化值的过程,并提供了算法实现与识别结果,表明相似边距离译码法对图像质量要求较低,适合用于条形码识别。
摘要由CSDN通过智能技术生成

条形码识别(3)——译码

标签: 机器视觉 条形码识别 Python


1.目标

本节的主要目标是根据bar和space的宽度译出其所表示的字符。

2.算法

条形码译码常见的方法有2个:平均值译码法相似边距离译码法

2.1平均值译码法

平均值译码法先测量出从起始符到终止符的像素数M,这一段的像素数是(95=3+7*6+5+7*6+3)个单位长度,则可以计算出单位长度的像素数(unit=M/95),根据单位长度的像素数,就可以计算出每个bar或者space的标准宽度,根据其标准宽度就可以查表译出相应的数字字符。

平均值译码法易于理解,编写简单,但是有一个致命的缺点,那就是对条形码图片的质量要求太高。博主按照这种方法编写了译码程序,效果差强人意。

2.2相似边距离译码法

相似边距离译码法相对于平均值译码法而言最大的好处就是对于图片的质量要求没有那么高。

2.2.1计算相似边距离与归一化值

一个数字字符由2个bar和2个space相间组合而成,如下所示:

相似边距离其实就是相邻边长度和,如下所示:

T 1 , T 2 , T 3 , T 4 T_1,T_2,T_3,T_4 T1,T2,T3,T4就是相似边距离,一般只取 T 1 , T 2 T_1,T_2 T1,T2,可以用bar和space的宽度计算。用 A T 1 , A T 2 AT_1,AT_2 AT1,AT2定义 T 1 , T 2 T_1,T_2 T1,T2的归一化值, A T 1 , A T 2 AT_1,AT_2 AT1,AT2表示相似边距离的标准长度,例如A子集的数字字符0表示为[0001101] A T 1 = 3 + 2 = 5 , A T 2 = 2 + 1 = 3 AT_1=3+2=5,AT_2=2+1=3 AT1=3+2=5,AT2=2+1=3,其归一化值为(5,3),计算相似边距离和 A T 1 , A T 2 AT_1,AT_2 AT1,AT2的方法如下:

  • 计算一个bar或者space的总像素长度( L = C 1 + C 2 + C 3
  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值