NO4 树莓派5 OpenCV的下载与CSI、USB摄像头的使用

目录

前言

二、打开CSI摄像头

三、USB摄像头的使用

四、对比一下CSI摄像头与USB摄像头


前言

为了跑机器视觉,我们需要一个算力强大的电脑,树莓派在一众单板计算机里面还算比较便宜🥲。博主购入树莓派5,主要也是为了跑视觉,本文将实现树莓派5 OpenCV的下载,以及开启CSI和USB摄像头。(注:两种摄像头以及其它各种外设都需要在树莓派开机之前就插上去,否则大概率是用不了的。)


一、OpenCV下载

终端输入:

sudo apt install libopencv-dev python3-opencv

下载opencv库

完成之后终端进入python,测试一下OpenCV有没有安装好,输入以下代码,查看以下cv版本,若没有报错,就安装成功了!!!

import cv2
cv2.__version__

二、打开CSI摄像头

注意一下CSI摄像头的安装方向:金黄色导电触片对着接口白色的那一面插进去(此处缺图)。

首先安装一下CSI摄像头的驱动库(树莓派5CSI摄像头的使用似乎和树莓派4有点点不一样):

终端输入

sudo apt install libcamera-apps libcamera-dev python3-picamera2

下载libcamera和picamera2的两个库:

进入Thonny(Geany也欧克的),开始编程(有的时候在树莓派上打大写字母可能会打不出来,可以试试按着Caps键不要松,然后输入字母(什么原因博主也不知道,如果没有这个问题就自动忽略一下吧)):

以下是打开CSI摄像头的代码:

import cv2
import libcamera
from time import sleep
from picamera2 import Picamera2

picam2 = Picamera2()
config = picam2.create_preview_configuration(main={"format":'RGB888',"size":(640,480)},
                                        raw={"format":'SRGGB12',"size":(1920,1080)})
config["transform"] = libcamera.Transform(hflip = 0, vflip = 1)
picam2.configure(config)
picam2.start()

while True:
    frame = picam2.capture_array()
    cv2.imshow("frame", frame)

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

cv2.destroyAllWindows()

运行一下,嘻嘻,CSI摄像头启动成功!!!😘

三、USB摄像头的使用

相比于CSI摄像头,USB摄像头的使用就简单了很多,不用额外安装库,直接使用cv中的cv2.VideoCapture(0)函数即可(没有安装拼音输入法的可以将print当中中文改成英文的):

import cv2

cap = cv2.VideoCapture(0)

if not cap.isOpened():
    print(“无法打开摄像头”)
    exit()
    
while True:
    ret, frame = cap.read()
    
    if not ret:
        print("无法获取图像")
        break
    
    cv2.imshow("Camera Feed", frame)
    
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
    
cap.release()
cv2.destroyAllWindows()

运行代码就可以打开USB摄像头了:

四、对比一下CSI摄像头与USB摄像头

个人感觉USB摄像头的使用更方便一点,编程时,可以直接在电脑上写代码、测试,然后复制粘贴到树莓派中就可以直接使用,但是如果在树莓派上使用的是CSI摄像头就需要修改不少函数(可以喂给豆包,豆包改这种代码还是很靠谱的)。但是一般来说,USB摄像头的分辨率都比较高,放在树莓派上跑帧数可能较低(很逆天,在电脑上跑出来25帧的USB摄像头,在树莓派上只跑出了10帧😡),CSI摄像头因为分辨率稍差,跑出的帧数就好很多(博主使用的可以跑出30帧😃)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值