树莓派4B外接摄像头OpenCV,Python3识别二维码

树莓派4B外接摄像头OpenCV,Python3识别二维码

  • 一、软件安装
  • 二、硬件准备
    • 1.测试一下可不可以实时显示视频
    • 2.二维码识别

以下均基于Python3,3对应的软件是pyzbar,python2对应的软件的zbar,不要安装错了,因为3已经不支持zbar,很多教程还在讲zbar,但是已经不支持了,无法使用。

一、软件安装

~$ sudo apt-get install libzbar-dev
~$ pip install pyzbar
//安装完成后----
~$ python3
Python 3.8.10 (default, Jun  2 2021, 10:49:15) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>import pyzbar
//如果没有报错,说明安装成功

安装OpenCV教程:
https://blog.csdn.net/wgshun616/article/details/83383538
上面的教程我记得是可以用的。

二、硬件准备

相信大家已经安装完硬件了。

1.测试一下可不可以实时显示视频

python代码存在缩进问题,如果报错 大概率是缩进存在问题
代码如下(示例):

import numpy as np
import cv2
cap = cv2.VideoCapture(0)
cap.set(3, 640)
cap.set(4, 480)

while(True):
    ret, frame = cap.read()
    frame = cv2.flip(frame, -1)
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    cv2.imshow('frame', frame)
    cv2.imshow('gray', gray)

    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break
    #cap.realse()
    #cv2.destroyALLWindows()

以上文件命名为:cameraRT.py

~$ python cameraRT.py

不出意外,你已经可以看见实时视频了。
此时证明该摄像头无误。

2.二维码识别

代码如下:
代码来源:https://blog.csdn.net/qq_42109746/article/details/88233758

import cv2
import pyzbar.pyzbar as pyzbar
 
 
def detect():
    camera = cv2.VideoCapture(0)
    while True:
        ret, frame = camera.read()
 
        barcodes = pyzbar.decode(frame)  # 解析摄像头捕获到的所有二维码
 
        data = ''
        # 遍历所有的二维码
        for barcode in barcodes:
            data = barcode.data.decode('utf-8')  # 对数据进行转码
        if data != '':
            with open('data.txt', 'w') as file:
                file.write(data)
            break
        if cv2.waitKey(1) == ord('q'):
            break
        cv2.imshow('', frame)
    camera.release()
    cv2.destroyAllWindows()
 
 
if __name__ == '__main__':
    detect()

以上文件命名为:find.py
同时在find.py的目录创建一个data.txt文件用于存储识别数据。

~$ touch data.txt
~$ python find.py

不出意外,已经在开始识别了。
此刻可以拿出你的wx二维码出来,对向摄像头,识别成功后,视频窗口会自动关闭,然后打开data.txt会看到识别内容。


你可能感兴趣的:(python)