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


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

