IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Python里使用zbar识别二维码

    Xiaoxia发表于 2015-11-04 20:55:18
    love 0

    今天研究数据库里的微信群二维码图片,很多人上传的图片并不是正确的群二维码,而是个人微信、公众号或者是一个手机充值流量的入口。为了把这些不合格的二维码挑选出来,只能一个个识别了。找了网上一些接口的,测试了一下不但限制频率为一秒2个,还很多识别不出来,看报错用的是zxing这个库,最后只能想其他方法。

    在CentOS7上安装了zbar,没有找到el7的rpm,只好自己编译。研究出编译时使用一些参数可以避免安装一些不必要的包。为了virtualenv里的python能用,编译时候要指定安装到/usr。

    编译文件不多,一下就完了。步骤如下:

    ./configure –disable-video –without-qt –without-gtk –without-x –prefix=/usr
    make
    sudo make install

    应该还需要安装ImageMagick,libjpeg-devel,zlib-devel之类的库,python环境里需要安装zbar和PIL。

    上测试代码:

    import zbar
    from PIL import Image
    
    scanner = zbar.ImageScanner()
    scanner.parse_config('enable')
    img = Image.open('./test.jpg').convert('L')
    w, h = img.size
    zimg = zbar.Image(w, h, 'Y800', img.tobytes())
    
    scanner.scan(zimg)
    
    for s in zimg:
        print s.type, s.data

    胶水语言就是强大,懂python的人应该能长寿。
    识别速度觉得还可以,正确率非常高。基本上我的8w多的二维码都识别正确了。识别速度大概每秒几十张图吧,已经很满意。我的图片大小在10~50kb左右。

    撰文记之,以便其他人有需要。不知不觉又通了个宵。。。



沪ICP备19023445号-2号
友情链接