Content

Python调用PC摄像头实现扫描二维码(python调用电脑摄像头)燃爆了

文章摘要

这篇文章介绍了使用Python、OpenCV和pyzbar库实现的QR码扫描功能。代码通过摄像头捕获视频流,使用OpenCV将图像转换为灰度并解码QR码,同时使用pyzbar库检测并提取QR码内容。文章中还包含了一个声音提示功能,通过winsound库发出声音提示扫描到的QR码。代码还设置了窗口大小和名称,并在按ESC键时退出程序。文章重点在于展示如何结合多库实现QR码扫描和声音提示功能。

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) # 创建声音提示函数 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) # 发出声音提示 beep() # 输出扫描到的二维码内容 print(barcode.data.decode(‘utf-8’)) # 显示图像 cv2.imshow(‘Scan QR Code’, frame) # 按下ESC键退出程序 if cv2.waitKey(1)==27: break # 释放摄像头资源 cap.release() # 关闭所有窗口 cv2.destroyAllWindows()