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)
posted @ 2023-02-14 17:38  Tarzen  阅读(2248)  评论(0编辑  收藏  举报