在教學Python解決二維碼圖片的過程當中,大家看到基本上都是“用python形成霸氣二維碼圖片”、“用Python制運作的圖二維碼圖片”什么的文章內容。但是關于應用Python大批量掃一掃二維碼的實例教程,實屬罕見。文中就給大家歸納了Python掃一掃二維碼的兩種方式,有興趣的話可以學習下
序言
近期在尋找材料時,發覺了一則10年前新聞報道:二維碼圖片將成為線上與線下重要通道。從目前的移動互聯來說,付款收款二維碼/防疫健康碼這些和我們密切相關,二維碼圖片的確變成了生活當中必不可少的一部分。
在學習Python處理二維碼的過程中,我們看到的大多是“用python生成酷炫二維碼”、“用Python制作動圖二維碼”之類的文章。而關于使用Python批量識別二維碼的教程,并不多見。所以今天我會給大家分享兩種批量識別二維碼的Python技巧!
pyzbar+PIL
二維碼又稱二維條碼,常見的二維碼為QRCode,QR全稱QuickResponse,是一個移動設備上超流行的一種編碼方式。
我們在之前的文章《輕松識別數百個快遞單號》,Python的第三方模塊pyzbar不僅可以識別一維條形碼,也可以很方便地處理二維碼的識別。
不過pyzbar庫需要搭配PIL或者opencv使用,主要是為了利用Image.open()或者cv2.imread()來讀取圖片文件。
在交互式環境中輸入如下命令:
from pyzbar.pyzbar import decode from PIL import Image decocdeQR = decode(Image.open("D:/test.jpg")) print(decocdeQR[0].data.decode('ascii'))
輸出:
這樣就輕松實現了二維碼的解析與識別。
cv2
另外,opencv模塊其實自帶二維碼識別功能。
注1:對于opencv模塊,安裝時需要輸入pipinstallopencv-python,但在導入的時候采用importcv2。
注2:使用opencv模塊時,文件路徑、圖片名稱都不要包含中文,否則會報錯。
在交互式環境中輸入如下命令:
import cv2 qrcode_filename = "D:/test.jpg" qrcode_image = cv2.imread(qrcode_filename) qrCodeDetector = cv2.QRCodeDetector() data, bbox, straight_qrcode = qrCodeDetector.detectAndDecode(qrcode_image) print(data)
輸出:
如上所示,我們同樣實現了二維碼的解析與識別。在上述代碼中,第四行代碼中qrCodeDetector.detectAndDecode(qrcode_image)有三個返回值。其中data是解碼后的內容,如我們打印輸出結果所示。
bbox是指二維碼輪廓的四個角,從左上角順時針轉的。而straight_qrcode是二維碼的原始排列,也就是每個點是0還是255的一個矩陣,白色是255,黑色是0。
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128802.html
摘要:需求明確開啟常見的條碼二維碼及一維碼的掃描識別功能,可調用設備的攝像頭對條碼圖片掃描進行數據輸入。通過可獲取條碼碼管理對象。知識點明確模塊提供開啟攝像頭掃描功能。載入中取消退出頁面從相冊選擇二維碼 需求明確 開啟常見的條碼(二維碼及一維碼)的掃描識別功能,可調用設備的攝像頭對條碼圖片掃描進行數據輸入。通過plus.barcode可獲取條碼碼管理對象。 知識點明確 Barcode模塊:p...
摘要:需求明確開啟常見的條碼二維碼及一維碼的掃描識別功能,可調用設備的攝像頭對條碼圖片掃描進行數據輸入。通過可獲取條碼碼管理對象。載入中取消退出頁面從相冊選擇二維碼 需求明確 開啟常見的條碼(二維碼及一維碼)的掃描識別功能,可調用設備的攝像頭對條碼圖片掃描進行數據輸入。通過plus.barcode可獲取條碼碼管理對象。 實現步驟 創建條碼掃描識別控件實例對象,涉及到Barcode模塊,具體參...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02