基于MATLAB的条形码识别技术研究

       识别一维条形码,关键环节是对它进行预处理操作,以去除条形码图像区域的噪声污染,以及进行必要的倾斜校正,首先采用相似边距离法计算出条形码所代表的信息,然后通过解码校验以及纠错,最后进行解码过程。本文详细设计了每个环节,完成了较高识别率的条形码识别系统。

条形码识别系统的一般流程为:

       对于需要识别的条形码图片,往往需要进行一些预处理,例如降噪处理、倾斜校正等,然后把图片二值化,图是对条形码图像进行识读的流程图。

        由相似边距离的方法可以得到算法的具体流程,首先计算的一个字符的总长度以及黑白模块的宽度,则可以得到一个单位模块的长度为L=T/7,而T则为C1-C4的值的相加。然后再把得到的4个模块宽度除单位模块宽度L就可以得到归一化的值ATi 。但是在条形码中还有起始符,中间分隔符于终止符,所以在识别的时候需要去掉无关元素,去掉之后就还剩48条空模块,每四个可分为一组一共12组,代表12个字符。然后根据计算出的归一化值(T1T2 )。再通过表3-1可查出字符值,具体流程如图所示。

实验图:

一张正常的条形码图片可以通过一般条形码识别流程成功识别:

如图所示,对于倾斜的条形码图片,需要经过倾斜图片校正后才能正常识别。

但是有些图片未必是倾斜的,有些条形码图片是不能直接进行识别的,所以需要进行一个感兴趣区域提取,如图所示:

这种类型的条形码是不能直接扫描的,所以就需要把条形码区域提取出来。

如图所示,经过感兴趣区域提取后,可以把条形码区域提取出来。

       在设计中还有一些其他的图片处理工具,如添加噪声,图像增强,中值滤波等,去除噪声等,目的也是为了是提升读入条形码图片的识别成功率。本次设计一共使用100张图片,不仅有清晰的,也有含噪声的,在实验中一共失败6张图片,识别成功率可达到94%。

      本次设计中对于符合EAN-13条形码编码格式的图片能够进行识别,但是对于一些产生畸变的条形码图片、或者光源不充足、条形码图片污染严重,以及像素模糊不高的图片目前还无法识别,所以程序还有提升空间,考虑到程序的简约性,不做深入色痕迹,相信随着计算机技术的发展,或者是更好的技术与算法,能够解决该问题。

设计者:zsm

通信工程专业

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值