Python实现PC摄像头扫描二维码,让你的电脑变身QR码识读器!

该代码示例展示了如何利用OpenCV和pyzbar库通过PC摄像头实时扫描和识别二维码。应用包括支付、生产管理、门禁验证和条形码管理。当检测到二维码时,程序会显示边界框、输出二维码数据并播放声音提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

简介:

源代码:

源代码说明:

效果如下所示:


简介:

使用PC摄像机扫描二维码可以有很多应用场景,例如:

  1. 支付宝、微信支付等移动支付方式需要使用二维码进行支付,PC摄像机可以扫描这些支付二维码,从而实现PC端支付功能;

  2. 在生产制造过程中,可以使用二维码来管理产品和生产过程,PC摄像机可以扫描这些二维码来获取产品信息和生产信息;

  3. 二维码可以作为门禁系统的一种验证方式,PC摄像机可以扫描这些二维码,从而实现门禁验证功能;

  4. 在图书馆、超市等场所,可以使用二维码作为条形码进行扫描和识别,PC摄像机可以扫描这些二维码,从而实现快速识别和管理功能。

总之,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)



# 创建声音提示函数
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()

源代码说明:

这段代码使用OpenCV和pyzbar库实现了从摄像头读取视频流并扫描其中的二维码。具体步骤如下:

  1. 导入所需库:cv2用于读取摄像头视频流,pyzbar用于识别二维码,winsound用于发出声音提示。
  2. 打开摄像头:使用cv2.VideoCapture(0)打开摄像头。
  3. 设置窗口:使用cv2.namedWindow()和cv2.resizeWindow()函数设置窗口名称和大小。
  4. 创建声音提示函数:使用winsound.Beep()函数创建声音提示函数beep()。
  5. 循环读取视频流:使用while循环不断读取摄像头视频流,将每一帧转换为灰度图像。
  6. 检测二维码:使用pyzbar.decode()函数检测灰度图像中的所有二维码。
  7. 遍历二维码:使用for循环遍历所有检测到的二维码,提取二维码的边界框坐标并在图像中绘制边界框和文本。
  8. 发出声音提示:调用beep()函数发出声音提示。
  9. 输出二维码内容:使用print()函数输出扫描到的二维码内容。
  10. 显示图像:使用cv2.imshow()函数显示扫描到的图像。
  11. 退出程序:如果按下ESC键,退出循环。
  12. 释放资源:释放摄像头资源,关闭所有窗口。

使用该代码,可以通过电脑摄像头扫描二维码,适用于需要在电脑上进行二维码扫描的场景。

效果如下所示:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值