在Python 3中解码QR码

时间:2018-04-02 09:18:12

标签: python python-3.x qr-code

我正在寻找一种简单的方法来解码python 3中的png格式的QR码。我发现的许多以前的答案似乎只适用于python 2.例如qrtools包不起作用,因为zbar没有使用python 3.

如果有人可以建议使用包并提供有关如何解码QR码的基本示例,那将非常有用。

2 个答案:

答案 0 :(得分:2)

您可以使用pyzbar

来自他们的文档:

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

答案 1 :(得分:0)

您可以参考here以获得更详细的python 3教程pyzbar + opencv

简而言之:

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)