0
0

Python里使用zbar识别二维码

Xiaoxia 发表于 2015年11月05日 04:55 | Hits: 4757
Tag: 我的代码 | 我的分享 | python | qrcode

今天研究数据库里的微信群二维码图片,很多人上传的图片并不是正确的群二维码,而是个人微信、公众号或者是一个手机充值流量的入口。为了把这些不合格的二维码挑选出来,只能一个个识别了。找了网上一些接口的,测试了一下不但限制频率为一秒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左右。

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

原文链接: http://xiaoxia.org/2015/11/05/zbar-scanner-python/

0     0

评价列表(0)