• 可以处理模糊条码的一维barcode解码算法(blur barcode decoding)part 1


    新人报道。。。

    开个玩笑。瓜农叔叔带你们收割,请大家准备好装备,大炮一定要记得带着。。。

      之前看过很多关于一维条码的算法,但效果都不行,也下过很多开源库,比如ZXing和Zbar,但这两个对于模糊条码的处理基本没作用。因为大部分的时候一维条码的算法用于移动终端较多,基于图像的这种处理方式,会有个比较明显的缺点,就是一般的算法只能在摄像机聚焦后才能解码,也即只有在获取清晰地图像之后才能解码。但摄像机的聚焦需要时间,快则1-2秒,慢则3-4秒,再加上解码以及镜头调整的时间,会导致这款应用的用户体验很差。

      之所以在这里说这么多废话,是给那些新同学看的,老同学就算了。你们可以忽略上述废话。

    这里提到的模糊条码是指摄像机没有聚焦的情况下,导致摄像机拍出的图片或者视频流中的条码部分不清晰。如下图所示:

                                            

                                                                                                       图 1

      ZXing和ZBar是无法解码上述图像的,因为仔细看了他们的代码就可以知晓一二了,他们的处理就是从图像中找出一条穿越整个条码的线(或者几条取平均值)。这样的处理就等于默认图像是清晰的。但图像如上图一所示时,这两个算法就显得无能为力了。在做这个算法之前,我也对此很是苦恼。(这就等于说你需要半年或许更久去研究新的算法并自己实现)。目前市场上比较流行的有我查查、redlaser(已经被ebay收购),这两个应用是可以扫描模糊的条码的。有兴趣的同学可以去下载玩玩看。但这两个应用对他们的算法细节只字未提,redlaser对开发者而言是可以购买的,具体的金额不太记得了,貌似挺贵的,是按照你的应用被多少终端使用来计算的,貌似需要0.06美元一个,也就是用户每次下载一个你的应用,你就需要向redlaser支付0.36RMB,其实这还是挺贵的。如果你的应用下载次数为一百万,那么就需要向他支付36万RMB,当然,作为一款这样的应用,如果只被下载一百万次,那么你的盈利肯定是不多的。据说我查查已经有一千两百万用户了,而redlaser在全球有2亿设备在使用。

      扯远了,回归主题。看了很多论文,但是真正有用的却屈指可数,于是找了一篇实现了下,感觉效果还不错,大体上已经脱离opencv了,但是条码定位部分还没将opencv的源码抠出来,现在也懒得做,因为手机端只要一个窗口对准条码部分就行了,这部分做只是浪费时间而已。文章名为"Reading 1-D Barcodes with Mobile Phones Using Deformable Templates",大致意思就是使用可变模型在手机上面进行以为条形码的解码,翻译的不太好,望见谅。

      文章的大体就是介绍一维条码的解码算法。重点就是算法使用的是full gray-level information,也就是说并不进行二值化(binarize)。将穿越条码的一条或者几条线拿出来做分析,并进行模板匹配,当然还有一些如何使得接触的码是正确的条码数字的算法。

      可恨的是文章给出的算法还是有很多缺陷的,比如对于光照比较强烈的时候导致的大光斑,如图2所示:

                               

                                                                                                      图 2

      图2所示的这些图片使用正常的算法是很难解码的, 使用上述文章的算法也比较困难。因此本人在实现算法的基础上加了一些其他的东西,比如如何将这些光斑去除,以及球面图像的校正算法。当然对于整个的框架作用并不是那么巨大。只是锦上添花的作用而已(这部分的功能暂不完整,还在处于调试的阶段)。

      很晚了,叔叔要睡觉了。明天继续part2。将会讲解一下关于算法的知识。

      转载请注明出处,否则追究版权责任!

  • 相关阅读:
    POJ2723 Get Luffy Out解题报告tarjan+2-SAT+二分
    poj2186Popular Cows+tarjan缩点+建图
    KMP模板
    洛谷P1939【模板】矩阵加速(数列)+矩阵快速幂
    矩阵快速幂模板
    codeforce#483div2D-XOR-pyramid+DP
    codeforce#483div2C-Finite or not?数论,GCD
    codeforce978C-Almost Arithmetic Progression+暴力,枚举前两个数字的情况
    codeforce440C-Maximum splitting-规律题
    LuoGu-P2863牛的舞会The Cow Prom[tarjan 缩点模板]
  • 原文地址:https://www.cnblogs.com/GNSS/p/barcode_decoder.html
Copyright © 2020-2023  润新知