Python調(diào)用PC攝像頭實(shí)現(xiàn)掃描二維碼
簡(jiǎn)介
使用PC攝像機(jī)掃描二維碼可以有很多應(yīng)用場(chǎng)景,例如:
支付寶、微信支付等移動(dòng)支付方式需要使用二維碼進(jìn)行支付,PC攝像機(jī)可以掃描這些支付二維碼,從而實(shí)現(xiàn)PC端支付功能;
在生產(chǎn)制造過程中,可以使用二維碼來管理產(chǎn)品和生產(chǎn)過程,PC攝像機(jī)可以掃描這些二維碼來獲取產(chǎn)品信息和生產(chǎn)信息;
二維碼可以作為門禁系統(tǒng)的一種驗(yàn)證方式,PC攝像機(jī)可以掃描這些二維碼,從而實(shí)現(xiàn)門禁驗(yàn)證功能;
在圖書館、超市等場(chǎng)所,可以使用二維碼作為條形碼進(jìn)行掃描和識(shí)別,PC攝像機(jī)可以掃描這些二維碼,從而實(shí)現(xiàn)快速識(shí)別和管理功能。
總之,PC攝像機(jī)掃描二維碼的應(yīng)用場(chǎng)景很廣泛,可以應(yīng)用于各種需要快速掃描、識(shí)別和管理的場(chǎng)景。
源代碼
import cv2
from pyzbar import pyzbar
import winsound
# 打開攝像頭
cap = cv2.VideoCapture(0)
# 設(shè)置窗口名和窗口大小
cv2.namedWindow('Scan QR Code', cv2.WINDOW_NORMAL)
cv2.resizeWindow('Scan QR Code', 800, 600)
# 創(chuàng)建聲音提示函數(shù)
def beep():
frequency = 2500
duration = 1000
winsound.Beep(frequency, duration)
while True:
# 讀取攝像頭畫面
_, frame = cap.read()
# 轉(zhuǎn)換為灰度圖像
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 檢測(cè)二維碼
barcodes = pyzbar.decode(gray)
# 遍歷所有檢測(cè)到的二維碼
for barcode in barcodes:
# 提取二維碼的邊界框坐標(biāo)
(x, y, w, h) = barcode.rect
# 在圖像中繪制二維碼的邊界框和文本
cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 0, 255), 2)
cv2.putText(frame, barcode.data.decode('utf-8'), (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
# 發(fā)出聲音提示
beep()
# 輸出掃描到的二維碼內(nèi)容
print(barcode.data.decode('utf-8'))
# 顯示圖像
cv2.imshow('Scan QR Code', frame)
# 按下ESC鍵退出程序
if cv2.waitKey(1) == 27:
break
# 釋放攝像頭資源
cap.release()
# 關(guān)閉所有窗口
cv2.destroyAllWindows()源代碼說明
這段代碼使用OpenCV和pyzbar庫(kù)實(shí)現(xiàn)了從攝像頭讀取視頻流并掃描其中的二維碼。具體步驟如下:
導(dǎo)入所需庫(kù):cv2用于讀取攝像頭視頻流,pyzbar用于識(shí)別二維碼,winsound用于發(fā)出聲音提示。
打開攝像頭:使用cv2.VideoCapture(0)打開攝像頭。
設(shè)置窗口:使用cv2.namedWindow()和cv2.resizeWindow()函數(shù)設(shè)置窗口名稱和大小。
創(chuàng)建聲音提示函數(shù):使用winsound.Beep()函數(shù)創(chuàng)建聲音提示函數(shù)beep()。
循環(huán)讀取視頻流:使用while循環(huán)不斷讀取攝像頭視頻流,將每一幀轉(zhuǎn)換為灰度圖像。
檢測(cè)二維碼:使用pyzbar.decode()函數(shù)檢測(cè)灰度圖像中的所有二維碼。
遍歷二維碼:使用for循環(huán)遍歷所有檢測(cè)到的二維碼,提取二維碼的邊界框坐標(biāo)并在圖像中繪制邊界框和文本。
發(fā)出聲音提示:調(diào)用beep()函數(shù)發(fā)出聲音提示。
輸出二維碼內(nèi)容:使用print()函數(shù)輸出掃描到的二維碼內(nèi)容。
顯示圖像:使用cv2.imshow()函數(shù)顯示掃描到的圖像。
退出程序:如果按下ESC鍵,退出循環(huán)。
釋放資源:釋放攝像頭資源,關(guān)閉所有窗口。
使用該代碼,可以通過電腦攝像頭掃描二維碼,適用于需要在電腦上進(jìn)行二維碼掃描的場(chǎng)景。
效果如下所示


到此這篇關(guān)于Python調(diào)用PC攝像頭實(shí)現(xiàn)掃描二維碼的文章就介紹到這了,更多相關(guān)Python調(diào)用攝像頭掃描二維碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python+selenium對(duì)table表和分頁(yè)處理
這篇文章主要介紹了python+selenium對(duì)table表和分頁(yè)處理,文章內(nèi)容只要包括bulabula2022、table表分頁(yè)處理、網(wǎng)頁(yè)table所有內(nèi)容循環(huán)處理等相關(guān)內(nèi)容,需要的小伙伴可以參考一下2022-01-01
基于Python實(shí)現(xiàn)web網(wǎng)頁(yè)內(nèi)容爬取的方法
在日常學(xué)習(xí)和工作中,我們經(jīng)常會(huì)遇到需要爬取網(wǎng)頁(yè)內(nèi)容的需求,今天就如何基于Python實(shí)現(xiàn)web網(wǎng)頁(yè)內(nèi)容爬取進(jìn)行講解,感興趣的朋友一起看看吧2024-12-12
Python 保存矩陣為Excel的實(shí)現(xiàn)方法
今天小編就為大家分享一篇Python 保存矩陣為Excel的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Django對(duì)接elasticsearch實(shí)現(xiàn)全文檢索的示例代碼
搜索是很常用的功能,如果是千萬級(jí)的數(shù)據(jù)應(yīng)該怎么檢索,本文主要介紹了Django對(duì)接elasticsearch實(shí)現(xiàn)全文檢索的示例代碼,感興趣的可以了解一下2021-08-08
Python中UserWarning:The NumPy module was
在 Python 項(xiàng)目中,我們經(jīng)常需要導(dǎo)入許多庫(kù)來完成各種任務(wù),NumPy 作為一個(gè)核心的科學(xué)計(jì)算庫(kù),被廣泛應(yīng)用于數(shù)據(jù)處理和分析,然而,有時(shí)我們會(huì)遇到 NumPy 重載的警告,本文將詳細(xì)講解這一警告的原因,并提供解決方案,需要的朋友可以參考下2024-07-07
Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示
這篇文章主要介紹了Python數(shù)據(jù)分析之PMI數(shù)據(jù)圖形展示,文章介紹了簡(jiǎn)單的python爬蟲,并使用numpy進(jìn)行了簡(jiǎn)單的數(shù)據(jù)處理,最終使用?matplotlib?進(jìn)行圖形繪制,實(shí)現(xiàn)了直觀的方式展示制造業(yè)和非制造業(yè)指數(shù)圖形,需要的朋友可以參考一下2022-05-05
我們?yōu)槭裁匆獪p少Python中循環(huán)的使用
這篇文章主要介紹了我們?yōu)槭裁匆獪p少Python中循環(huán)的使用,我將闡述 Python 提供的一些簡(jiǎn)單但是非常有用的結(jié)構(gòu),一些小技巧以及一些我在數(shù)據(jù)科學(xué)工作中遇到的案例。我將討論 Python 中的 for 循環(huán),以及如何盡量避免使用它們,需要的朋友可以參考下2019-07-07
Python將多個(gè)excel表格合并為一個(gè)表格
這篇文章主要為大家詳細(xì)介紹了Python將多個(gè)excel表格合并為一個(gè)表格的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
python實(shí)現(xiàn)根據(jù)指定字符截取對(duì)應(yīng)的行的內(nèi)容方法
今天小編就為大家分享一篇python實(shí)現(xiàn)根據(jù)指定字符截取對(duì)應(yīng)的行的內(nèi)容方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10
Python高效定時(shí)任務(wù)處理APScheduler庫(kù)深入學(xué)習(xí)
這篇文章主要為大家介紹了Python高效定時(shí)任務(wù)處理APScheduler庫(kù)深入學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08

