Python 识别二维码(三种方案,识别成功有两种)
Python 识别二维码(三种方案,识别成功有两种)
背景
python扫码
方案
方案一:opencv
识别二维码-失败
先查看一下自己的opencv
版本:pip freeze |grep opencv
如果什么都没有输出,但是你又能使用import cv2
那是你用linux 安装的可能是sudo apt install python-opencv
,通过apt安装的版本应该是3开头的,这个版本太低了,使用pip3 install opencv-python
升级一下
import cv2
def cv2_qr_code(filename):
try:
img = cv2.imread(filename)
# 如果版本太低提示QRCodeDetector没有:https://github.com/spmallick/learnopencv/issues/469
detector = cv2.QRCodeDetector() # 还有一款微信
data, bbox, _ = detector.detectAndDecode(img)
print(data, bbox)
return data
except:
return
结果是没有识别出来,可能是没有找对detector
方案二:zxing
识别二维码-成功
pip install zxing
import zxing
def zxing_read(file):
reader = zxing.BarCodeReader()
barcode = reader.decode(file)
print(barcode.parsed)
方案三:pyzbar
识别二维码-成功
需要先下载
sudo apt-get install libzbar-dev
, 然后pip install pyzbar
from pyzbar.pyzbar import decode
def zxing_read(file):
reader = zxing.BarCodeReader()
barcode = reader.decode(file)
print(barcode.parsed)