9

使用Python、OpenCV和Pyzbar实时摄像头识别二维码!

 8 months ago
source link: https://www.51cto.com/article/779173.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

使用Python、OpenCV和Pyzbar实时摄像头识别二维码!

作者:恒通网络科技 2024-01-11 12:01:13
在本文中,我们将使用Python编程语言和两个强大的库OpenCV和Pyzbar来实现实时摄像头识别二维码的功能。

本文介绍了如何使用Python编程语言结合OpenCV和Pyzbar库来实时摄像头识别二维码。

通过这种方法,您可以快速、高效地从摄像头捕获的图像中识别二维码,并进行相应的处理。

二维码已经成为现代生活中不可或缺的一部分,它们可以在各种场景中使用,例如支付、广告、产品追踪等。

在本文中,我们将使用Python编程语言和两个强大的库OpenCV和Pyzbar来实现实时摄像头识别二维码的功能。

c53122660390465399b246ce5b9c88472c20a0.jpg

步骤1:安装所需库

首先,我们需要安装OpenCV和Pyzbar库。您可以使用以下命令在命令行中安装这些库:

pip install opencv-python
pip install pyzbar

步骤2:导入所需库

在Python脚本中,我们需要导入OpenCV和Pyzbar库。使用以下代码导入这些库:

import cv2
from pyzbar import pyzbar

步骤3:打开摄像头

使用OpenCV库中的cv2.VideoCapture()函数打开摄像头。

您可以通过传递摄像头索引号(通常为0)来指定要使用的摄像头。

例如,以下代码将打开默认摄像头:

cap = cv2.VideoCapture(0)

步骤4:实时识别二维码

在一个循环中,我们将不断从摄像头中读取图像,并使用Pyzbar库中的pyzbar.decode()函数来识别二维码。

以下是实现这一步骤的代码:

while True:
    ret, frame = cap.read()
    barcodes = pyzbar.decode(frame)

    for barcode in barcodes:
        (x, y, w, h) = barcode.rect
        cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)

        barcode_data = barcode.data.decode("utf-8")
        barcode_type = barcode.type

        cv2.putText(frame, barcode_data, (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)

        print("Barcode Type: {}, Barcode Data: {}".format(barcode_type, barcode_data))

    cv2.imshow("Barcode Scanner", frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

在上述代码中,我们首先使用cap.read()函数从摄像头中读取图像。

然后,我们使用pyzbar.decode()函数来识别图像中的二维码。

如果找到了二维码,我们将在图像上绘制一个矩形框,并在其上方显示二维码的数据。

最后,我们使用cv2.imshow()函数显示图像。

步骤5:释放资源

在程序结束时,我们需要释放摄像头资源。使用以下代码释放资源:

cap.release()
cv2.destroyAllWindows()

通过结合Python编程语言、OpenCV和Pyzbar库,我们可以轻松实现实时摄像头识别二维码的功能。

这种方法可以应用于各种场景,例如自动化流程、物流追踪和支付系统等。希望本文对您有所帮助,祝您成功实现二维码识别功能!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK