提问者:小点点

在Python 3中解码二维码[关闭]


我正在寻找一种简单的方法来解码Python3中png格式的QR码。我之前找到的许多答案似乎只适用于Python2。例如,qrtools包不起作用,因为zbar不适用于python3。

如果有人能建议使用一个软件包,并提供一个如何解码二维码的基本示例,这将非常有帮助。


共2个答案

匿名用户

你可以用皮兹巴

从他们的文档:

from pyzbar.pyzbar import decode
from PIL import Image
decode(Image.open('pyzbar/tests/code128.png'))

匿名用户

您可以在这里参考pyzbar opencv for python 3的更详细教程

简言之:

from pyzbar import pyzbar
import cv2

img_path = 'image.png'

img = cv2.imread(img_path)

barcodes = pyzbar.decode(img)

for barcode in barcodes:
    (x, y, w, h) = barcode.rect
    cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)
    barcodeData = barcode.data.decode("utf-8")
    barcodeType = barcode.type
    text = "{} ({})".format(barcodeData, barcodeType)
    cv2.putText(img, text, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
    print("[INFO] found {} barcode {}".format(barcodeType, barcodeData))

cv2.imwrite("new_img.jpg", img)