树莓派4B使用opencv获取Camera Module 3摄像头图像(解决无法直接获取图像的问题)

这篇具有很好参考价值的文章主要介绍了树莓派4B使用opencv获取Camera Module 3摄像头图像(解决无法直接获取图像的问题)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、遇到的问题

莓派4B在使用官方的Camera Module 3摄像头时,无法通过opencv直接获取到图像,具体问题表现在opencv可以打开摄像头但是无法获取到图像信息,导致imshow等方法因无法获取图像数据进而报错,只能使用picamera2库进行图像的获取和和处理,对不熟悉picamera2库的同学不够友好;
[INFO]注意: 本教程的环境是树莓派4B+2023-05-03-raspios-bullseye-arm64镜像,不保证其他镜像是否可行。


二、为什么是picamera2?

树莓派官方提供的picamera2库是针对libcamera驱动提供的python库。
注意:Picamera2仅支持Raspberry Pi OS Bullseye 镜像
更多信息请访问
–官方PDF文档
https://datasheets.raspberrypi.com/camera/picamera2-manual.pdf
–微雪电子文档
https://www.waveshare.net/wiki/RPi_Camera_picamera2_Guide

三、准备工作

1.目录结构

树莓派4b读取摄像头,树莓派4B,opencv,人工智能,计算机视觉,python

2.树莓派摄像头状态

在安装好摄像头之后,不用通过sudo raspi-config打开摄像头,如果打开了会报错,最终状态应该如下图所示
树莓派4b读取摄像头,树莓派4B,opencv,人工智能,计算机视觉,python

四、使用步骤

1.安装picamera2

如果安装的过程较慢,应该进行树莓派换源使用国内进行进行安装和更新,具体过程请自行查找

sudo apt update
sudo apt upgrade
sudo apt install -y python3-picamera2

2.初始化picamera2

Picamera2_Img_et.py

from picamera2 import Picamera2
from libcamera import controls


class Imget:
    def __init__(self):
        # 创建一个Picamera2对象的实例
        self.cam = Picamera2()

        # 设置相机预览的分辨率
        self.cam.preview_configuration.main.size = (640, 360)
        self.cam.preview_configuration.main.format = "RGB888"
        # 设置预览帧率
        self.cam.preview_configuration.controls.FrameRate = 50
        # 对预览帧进行校准
        self.cam.preview_configuration.align()
        # 配置相机为预览模式
        self.cam.configure("preview")
        # 设置相机控制参数为连续对焦模式(自动对焦)
        self.cam.set_controls({"AfMode": controls.AfModeEnum.Continuous})
        # 启动相机
        self.cam.start()

    def getImg(self):
        # 获取相机捕获的图像数组(numpy数组)
        frame = self.cam.capture_array()
        # 返回捕获的图像数组
        return frame

    def __del__(self):
        self.cam.stop()
        self.cam.close()

3.树莓派4B安装python-opencv

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn opencv-python

4.使用opencv获取图像

opencv.py

import cv2 as cv  # 导入OpenCV库
from Picamera2_Img_et import Imget  # 自定义模块Imget中的类Imget

getImg = Imget()  # 创建Imget对象实例
while True:  # 进入循环,持续运行
    frame = getImg.getImg()  # 调用Imget对象的getImg方法获取帧图像

    cv.imshow('frame', frame)  # 在窗口中显示帧图像,窗口名称为'frame'

    if cv.waitKey(1) & 0xFF == ord('q'):  # 若按下的字符为'q'时退出循环
        break

cv.destroyAllWindows()  # 销毁所有窗口

5.运行结果

树莓派4b读取摄像头,树莓派4B,opencv,人工智能,计算机视觉,python

总结

通过对picamera2获取图像的封装,就可以使用opencv对摄像进行操作,使用opencv的各种处理函数会更加的方便。有问题可以留言,一起解决。文章来源地址https://www.toymoban.com/news/detail-859626.html

到了这里,关于树莓派4B使用opencv获取Camera Module 3摄像头图像(解决无法直接获取图像的问题)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【树莓派4B或CM4】ubuntu 18.04 CSI摄像头

    按照下面的图片里面的动画将CSI摄像头插入树莓派, 插入的时候要将树莓派的电给断掉 ,然后再上电,安装的时候注意触电的位置面向hdmi接口。 因为树莓派安装的是Ubuntu 18.04 LTS而不是树莓派的系统,所以需要安装raspi-config来对摄像头进行配置。具体步骤如下: 正常会出现

    2023年04月19日
    浏览(42)
  • 树莓派利用python-opencv使用CSI摄像头调用监控视频

    目录 一、安装python-opencv。 二、使用工具Xshell7和MobaXterm 三、连接并打开CSI摄像头 3.1连线如图所示: 3.2打开摄像头 四、编写摄像头代码调用摄像头         一定要选择配置好的安装python-opencv,不要去配置安装,然后还cmake编译,没有必要基本上安装过程都会报2-3个错误,还

    2023年04月17日
    浏览(40)
  • 树莓派CSI摄像头使用python调用opencv库函数进行运动检测识别

    目录 一、完成摄像头的调用 二、利用python调用opencv库函数对图像进行处理 2.1 图像处理大体流程 2.2 opencv调用函数的参数以及含义 2.2.1 ret, img = cap.read() 读取帧图像 2.2.2 cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 灰度图像 2.2.3 gray_diff_img = cv2.absdiff(gray_img, previous_img) 帧差法 2.2.4 cv2.thre

    2024年02月15日
    浏览(36)
  • 树莓派——opencv打开树莓派摄像头调试记录

    目录 一、安装包:(注意换要源,不要用系统默认源) 问题1:磁盘空间不足——把根目录扩展到整个SD卡 解决:把根目录扩展到整个SD卡 二、下载 1、先创建opencv目录: 2、下载 问题:fatal: unable to access \\\'https://github.com/opencv/opencv.git/\\\': gnutls_handshake() failed: The TLS connection was

    2024年02月11日
    浏览(36)
  • 在Orangepi5开发板3588s使用opencv获取摄像头画面

    先感谢香橙派群的管理员耐心指导,经过不断的调试修改最后成功通过opencv调用mipi摄像头获取画面 就记录分享一下大概步骤希望大家少踩点坑!!!!!! 我用的固件系统是 ubuntu2022.0.4 固件是: Orangepi5_1.1.6_ubuntu_jammy_desktop_gnome_linux5 .10.110.img 想通过opencv获取画面得先安装

    2024年02月12日
    浏览(40)
  • Windows下使用QT+OpenCV完成人脸检测(获取摄像头的数据进行检测)

    Windows版本: Win10 X64 OpenCV版本: 2.4.13.6 QT版本: 5.12 OpenCV官网下载地址: ​ ​https://opencv.org​​​     目前官网OpenCV最新的版本是4.2.0 ,Windows版本的OpenCV在3.X版本后就不带X86的库,只有X64的库,如果需要X86的库,需要自己下载源码去重新编译。 由于我的QT软件在安装时没有安装

    2024年01月16日
    浏览(28)
  • VS2017环境下使用C++和OpenCV获取摄像头参数的代码实战

    本文将介绍如何在VS2017环境下使用C++和OpenCV查看摄像头参数。通过使用使用OpenCV库的相关函数,获取摄像头的帧率、宽度、高度、亮度、对比度和饱和度等参数。   首先,我们需要在代码中导入OpenCV库,以便使用OpenCV的相关函数。在C++中,可以使用以下代码导入OpenCV库: 接

    2024年02月07日
    浏览(43)
  • 解决树莓派原装libcamera(csi)摄像头无法通过opencv读取数据的问题

    1.1 硬件 树莓派4B 树莓派原装CSI摄像头IMX219(libcamera Camera Raspberry Pi) 1.2 软件 64位树莓派arrch64,Debian 11(bullseye) Python3.9 OpenCv 此时返回的ret,frame = (False, None) 继续执行下面这条语句 报错如下 若直接执行 则报错如下 出现上述情况,应该是opencv读取不到摄像头数据所致 接下来排

    2024年02月03日
    浏览(27)
  • 解决OpenCV使用USB摄像头获取高分辨率视频低帧率、卡、果冻画面的问题

    最近制作移动设备,需要安置多个usb摄像头到电脑,踩了几个坑,记录一下解决方案。 不能使用分线器插多个usb摄像头,同一时间只能加载一个。 usb摄像头调高分辨率时,非常卡顿,视频画面像果冻一样,及不流畅 第二个情况具体描述: 摄像头支持1920*1080  60fps,opencv在

    2024年02月16日
    浏览(56)
  • 【树莓派笔记】树莓派摄像头的简单使用

    这里使用的是树莓派CSI (Camera Serial Interface)摄像头。引脚面朝micoHDMI接口处。关机后安装,热插拔可能无法检测到。 终端输入   之后重启即可 命令行用 raspistill 使用摄像头进行拍照。 可以用 -e png 指定生成jpg、png、gif、bmp格式的图片,后三种无损,生成速度会慢些。 raspiy

    2024年02月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包