python识别二维码内容的三种方法,分别是pyzbar、zbarlight和zxing。不清楚前两者之间是否底层是同一套算法。zxing的效果要强于前两个算法。
下方img是numpy格式。

  1. pyzbar
import pyzbar
barcode = pyzbar.decode(img)
(x, y, w, h) = barcode.rect  # 
barcodeData = barcode.data.decode("utf-8")
barcodeType = barcode.type
  1. zbarlight
    需要将numpy转换为PIL格式。
import zbarlight
from PIL import Image
img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
codes = zbarlight.scan_codes(['qrcode'], img)
  1. zxing
    识别效果最好。
    貌似需要将图像存储到本地,且不可以使用绝对路径。未详细测试,仅简单使用。
import zxing
reader = zxing.BarCodeReader()
barcode = reader.decode('decode.jpg')
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐