pip3 install pyzbar
准備工作: 二維碼圖片,我這里直接打印在了一張A4紙上,或者直接在草料網站上生成 草料二維碼生成器,存放在手機上進行顯示。在安裝條碼掃描庫的時候大家注意:zbar庫只針對 python2 版本有支持,python3已經不再支持。課程中使用的是python3,所以我們只能安裝 pyzbar,安裝命令如下: pip3 install pyzbar 實現目標 利用攝像頭識別二維碼中的內容並打印出來,同時兼容識別條形碼內容 打開pycharm開發工具,在項目中新建 code.py 文件,文件代碼如下: # -*- coding:utf-8 –*- import cv2 import pyzbar.pyzbar as pyzbar def decodeDisplay(video): # 轉為灰度圖像 gray = cv2.cvtColor(video, cv2.COLOR_BGR2GRAY) barcodes = pyzbar.decode(gray) for barcode in barcodes: # 提取二維碼的位置,然后用邊框標識出來在視頻中 (x, y, w, h) = barcode.rect cv2.rectangle(video, (x, y), (x + w, y + h), (0, 255, 0), 2) # 字符串轉換 barcodeData = barcode.data.decode("utf-8") barcodeType = barcode.type # 在圖像上面顯示識別出來的內容 text = "{}".format(barcodeData) cv2.putText(video, text, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX,1, (0, 255, 0), 2) # 打印識別后的內容 print("[掃描結果] 二維碼類別: {0} 內容: {1}".format(barcodeType, barcodeData)) cv2.imshow("cam", video) def detect(): cv2.namedWindow("cam",cv2.WINDOW_NORMAL) cam = cv2.VideoCapture(0) while True: # 讀取當前幀 ret, frame = cam.read() decodeDisplay(frame) # 按ESC鍵退出 if(cv2.waitKey(5)==27): break cam.release() cv2.destroyAllWindows() if __name__ == '__main__': detect()