在教學(xué)Python解決二維碼圖片的過程當(dāng)中,大家看到基本上都是“用python形成霸氣二維碼圖片”、“用Python制運(yùn)作的圖二維碼圖片”什么的文章內(nèi)容。但是關(guān)于應(yīng)用Python大批量掃一掃二維碼的實(shí)例教程,實(shí)屬罕見。文中就給大家歸納了Python掃一掃二維碼的兩種方式,有興趣的話可以學(xué)習(xí)下
序言
近期在尋找材料時(shí),發(fā)覺了一則10年前新聞報(bào)道:二維碼圖片將成為線上與線下重要通道。從目前的移動(dòng)互聯(lián)來說,付款收款二維碼/防疫健康碼這些和我們密切相關(guān),二維碼圖片的確變成了生活當(dāng)中必不可少的一部分。
在學(xué)習(xí)Python處理二維碼的過程中,我們看到的大多是“用python生成酷炫二維碼”、“用Python制作動(dòng)圖二維碼”之類的文章。而關(guān)于使用Python批量識(shí)別二維碼的教程,并不多見。所以今天我會(huì)給大家分享兩種批量識(shí)別二維碼的Python技巧!
pyzbar+PIL
二維碼又稱二維條碼,常見的二維碼為QRCode,QR全稱QuickResponse,是一個(gè)移動(dòng)設(shè)備上超流行的一種編碼方式。
我們?cè)谥暗奈恼隆遁p松識(shí)別數(shù)百個(gè)快遞單號(hào)》,Python的第三方模塊pyzbar不僅可以識(shí)別一維條形碼,也可以很方便地處理二維碼的識(shí)別。
不過pyzbar庫需要搭配PIL或者opencv使用,主要是為了利用Image.open()或者cv2.imread()來讀取圖片文件。
在交互式環(huán)境中輸入如下命令:
from pyzbar.pyzbar import decode from PIL import Image decocdeQR = decode(Image.open("D:/test.jpg")) print(decocdeQR[0].data.decode('ascii'))
輸出:
這樣就輕松實(shí)現(xiàn)了二維碼的解析與識(shí)別。
cv2
另外,opencv模塊其實(shí)自帶二維碼識(shí)別功能。
注1:對(duì)于opencv模塊,安裝時(shí)需要輸入pipinstallopencv-python,但在導(dǎo)入的時(shí)候采用importcv2。
注2:使用opencv模塊時(shí),文件路徑、圖片名稱都不要包含中文,否則會(huì)報(bào)錯(cuò)。
在交互式環(huán)境中輸入如下命令:
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)
輸出:
如上所示,我們同樣實(shí)現(xiàn)了二維碼的解析與識(shí)別。在上述代碼中,第四行代碼中qrCodeDetector.detectAndDecode(qrcode_image)有三個(gè)返回值。其中data是解碼后的內(nèi)容,如我們打印輸出結(jié)果所示。
bbox是指二維碼輪廓的四個(gè)角,從左上角順時(shí)針轉(zhuǎn)的。而straight_qrcode是二維碼的原始排列,也就是每個(gè)點(diǎn)是0還是255的一個(gè)矩陣,白色是255,黑色是0。
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)韼椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/128802.html
使用 weixin-java-tools 完成公眾端喚起微信掃一掃 如果沒有引入相關(guān)的jar 可以查看之前的文章 點(diǎn)我 Java代碼 使用 wxMpService 很方便獲取一些微信需要的參數(shù) @Autowired private WxMpService wxMpService; @GetMapping(path = scannerQrcode) public...
摘要:需求明確開啟常見的條碼二維碼及一維碼的掃描識(shí)別功能,可調(diào)用設(shè)備的攝像頭對(duì)條碼圖片掃描進(jìn)行數(shù)據(jù)輸入。通過可獲取條碼碼管理對(duì)象。知識(shí)點(diǎn)明確模塊提供開啟攝像頭掃描功能。載入中取消退出頁面從相冊(cè)選擇二維碼 需求明確 開啟常見的條碼(二維碼及一維碼)的掃描識(shí)別功能,可調(diào)用設(shè)備的攝像頭對(duì)條碼圖片掃描進(jìn)行數(shù)據(jù)輸入。通過plus.barcode可獲取條碼碼管理對(duì)象。 知識(shí)點(diǎn)明確 Barcode模塊:p...
摘要:需求明確開啟常見的條碼二維碼及一維碼的掃描識(shí)別功能,可調(diào)用設(shè)備的攝像頭對(duì)條碼圖片掃描進(jìn)行數(shù)據(jù)輸入。通過可獲取條碼碼管理對(duì)象。載入中取消退出頁面從相冊(cè)選擇二維碼 需求明確 開啟常見的條碼(二維碼及一維碼)的掃描識(shí)別功能,可調(diào)用設(shè)備的攝像頭對(duì)條碼圖片掃描進(jìn)行數(shù)據(jù)輸入。通過plus.barcode可獲取條碼碼管理對(duì)象。 實(shí)現(xiàn)步驟 創(chuàng)建條碼掃描識(shí)別控件實(shí)例對(duì)象,涉及到Barcode模塊,具體參...
閱讀 1068·2023-01-14 11:38
閱讀 1064·2023-01-14 11:04
閱讀 905·2023-01-14 10:48
閱讀 2380·2023-01-14 10:34
閱讀 1148·2023-01-14 10:24
閱讀 1028·2023-01-14 10:18
閱讀 657·2023-01-14 10:09
閱讀 735·2023-01-14 10:02