Python調用PC攝像頭實現(xiàn)掃描二維碼
簡介
使用PC攝像機掃描二維碼可以有很多應用場景,例如:
支付寶、微信支付等移動支付方式需要使用二維碼進行支付,PC攝像機可以掃描這些支付二維碼,從而實現(xiàn)PC端支付功能;
在生產制造過程中,可以使用二維碼來管理產品和生產過程,PC攝像機可以掃描這些二維碼來獲取產品信息和生產信息;
二維碼可以作為門禁系統(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)建聲音提示函數
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()
# 輸出掃描到的二維碼內容
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()函數設置窗口名稱和大小。
創(chuàng)建聲音提示函數:使用winsound.Beep()函數創(chuàng)建聲音提示函數beep()。
循環(huán)讀取視頻流:使用while循環(huán)不斷讀取攝像頭視頻流,將每一幀轉換為灰度圖像。
檢測二維碼:使用pyzbar.decode()函數檢測灰度圖像中的所有二維碼。
遍歷二維碼:使用for循環(huán)遍歷所有檢測到的二維碼,提取二維碼的邊界框坐標并在圖像中繪制邊界框和文本。
發(fā)出聲音提示:調用beep()函數發(fā)出聲音提示。
輸出二維碼內容:使用print()函數輸出掃描到的二維碼內容。
顯示圖像:使用cv2.imshow()函數顯示掃描到的圖像。
退出程序:如果按下ESC鍵,退出循環(huán)。
釋放資源:釋放攝像頭資源,關閉所有窗口。
使用該代碼,可以通過電腦攝像頭掃描二維碼,適用于需要在電腦上進行二維碼掃描的場景。
效果如下所示


到此這篇關于Python調用PC攝像頭實現(xiàn)掃描二維碼的文章就介紹到這了,更多相關Python調用攝像頭掃描二維碼內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用python實現(xiàn)CGI環(huán)境搭建過程解析
這篇文章主要介紹了使用python實現(xiàn)CGI環(huán)境搭建過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04
Matplotlib使用Cursor實現(xiàn)UI定位的示例代碼
這篇文章主要介紹了Matplotlib使用Cursor實現(xiàn)UI定位的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03
Python 網絡編程之TCP客戶端/服務端功能示例【基于socket套接字】
這篇文章主要介紹了Python 網絡編程之TCP客戶端/服務端功能,結合實例形式分析了Python使用socket套接字實現(xiàn)TCP協(xié)議下的客戶端與服務器端數據傳輸操作技巧,需要的朋友可以參考下2019-10-10

