当前位置:主页 > 其它软件 > 其它 > Python里使用zbar识别二维码的方法

Python里使用zbar识别二维码的方法

作者:断线的风筝  来源:未知  发布时间:2016-04-24 16:53   浏览次数:

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


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


友荐云推荐