python 二维码识别包 pyzbar zxing使用简介

 

1、Python下二维码识别包的使用详情php

在python下二维码识别,目前主要有三个模块:zbar 、zbarlight、zxing。html

未使用zbarlight,缘由是zbarlight和zbar的dll相同,二维码识别准去率没提高。另外,该包的pip安装存在一些问题未解决。java

 

一、安装包:python

pip install opencv-pythonredis

pip install pillow image zxing算法

pip install pyzbar微信

 

二、 安装使用包过程当中遇到的问题:ui

A、使用zxing是,出现“FileNotFoundError: [WinError 2”spa

解决办法:安装java(jdk、jre均可以)。缘由是zxing要调用一些java文件,要求java文件可被执行。.net

B、安装zbarlight出现“Microsoft Visual C++ 14.0 is required.”

解决办法:放弃。 缘由:安装完vc_redist.x86后,仍是会报相关的错误。

四、 使用详情

Pyzbar和zxing识别4张包含二维码的图片(图片以下),目前都只识别出来了前两张。微信(支付宝)扫一扫,4张均可以识别出来

 

pyzbar相关代码:

 

import pyzbar.pyzbar as pyzbar from PIL import Image, ImageEnhance def zabr_parser(image): img = Image.open(image) # img = ImageEnhance.Brightness(img).enhance(2.0)#增长亮度
    # img = ImageEnhance.Sharpness(img).enhance(17.0)#锐利化
    # img = ImageEnhance.Contrast(img).enhance(4.0)#增长对比度
    img = img.convert('L')#灰度化
    img = img.convert("1") img.show() barcodes = pyzbar.decode(img) for barcode in barcodes: barcodeData = barcode.data.decode("utf-8") print(barcodeData)

zxing相关代码:

 1 from PIL import Image  2 import zxing  # 导入解析包
 3 
 4 
 5 def ocr_qrcode_zxing(filename):  6     img = Image.open(filename)  7     zx = zxing.BarCodeReader()  # 调用zxing二维码读取包
 8     data = ''
 9     zxdata = zx.decode(filename)  # 图片解码
10     return zxdata.parsed  # 返回记录的内容

 

四、使用的图片

 

 

 

 

 

2、对比:

一、zbar和zbarlight内核一致,都是基于zbar的dll编译加载的。zbarlight使用比zbar更简单,不过是在zbar的基础又作了封装,增长易用性,二维码识别准确率没有提升。

二、zxing是基于java的zxing核心的python分支,其原理是调用javaw 加载zxing的core.jar包,再获取输出结果。

三、微信和支付宝的扫一扫功能较python的这三个包强大不少,是有本身的算法(微信扫一扫使用了zxing,应该作了必定的修改。参考https://my.oschina.net/yushulx/blog/495471)

 

 

参考文档:https://www.php.cn/python-tutorials-373780.html

相关文章
相关标签/搜索