qrcode模塊安裝
運行命令行工具(cmd),使用pip安裝工具分別安裝qrcode。
pip install qrcode
先來個簡單的例子
import qrcode # 二維碼內容 data = "hello world" # 生成二維碼 img = qrcode.make(data=data) # 直接顯示二維碼 img.show() # 保存二維碼為文件 # img.save("hello.jpg")
效果
我們來修改配置等
import qrcode # 二維碼內容 data = "hello world" qr = qrcode.QRCode( version=2, error_correction=qrcode.constants.ERROR_CORRECT_L,#二維碼的糾錯范圍 box_size=10,# 每個點(方塊)中的像素個數 border=4#二維碼距圖像外圍邊框距離,默認為4,而且相關規定最小為4 ) qr.add_data(data) qr.make(fit=True) # 生成二維碼 img = qr.make_image() # 直接顯示二維碼 img.show() # 保存二維碼為文件 # img.save("hello.jpg")
安裝pyzbar
pip install pyzbar
來測試
import pyzbar.pyzbar as pyzbar from PIL import Image,ImageEnhance image = "hello.jpg" img = Image.open(image) #img = ImageEnhance.Brightness(img).enhance(2.0)#增加亮度 #img = ImageEnhance.Sharpness(img).enhance(17.0)#銳利化 #img = ImageEnhance.Contrast(img).enhance(4.0)#增加對比度 #img = img.convert('L')#灰度化 img.show() barcodes = pyzbar.decode(img) for barcode in barcodes: barcodeData = barcode.data.decode("utf-8") print(barcodeData)
測試一下
python3 + opencv +pyzbar 攝像頭檢測二維碼並獲取二維碼內容
https://blog.csdn.net/zx66zx/article/details/82785334
# coding:utf8 import cv2 import pyzbar.pyzbar as pyzbar def decodeDisplay(image): barcodes = pyzbar.decode(image) for barcode in barcodes: # 提取條形碼的邊界框的位置 # 畫出圖像中條形碼的邊界框 (x, y, w, h) = barcode.rect cv2.rectangle(image, (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(image, text, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, .5, (0, 0, 125), 2) # 向終端打印條形碼數據和條形碼類型 print("[INFO] Found {} barcode: {}".format(barcodeType, barcodeData)) return image def detect(): camera = cv2.VideoCapture(0) while True: # 讀取當前幀 ret, frame = camera.read() # 轉為灰度圖像 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) im=decodeDisplay(gray) cv2.waitKey(5) cv2.imshow("camera", im) camera.release() cv2.destroyAllWindows() if __name__ == '__main__': detect()