解决树莓派4B x64系统下OpenCV无法运用C++调用CSI摄像头的问题

 一、前言

  在 Raspberry Pi OS 2021-10-30 的版本更新中。之前的摄像头命令 raspistill 被移除,替代方案是 libcamera。在这次更新后,无法正常运用C++进行CSI摄像头的调用,但、如果在OpenCV中调用CSI摄像头会出现无数据的现象(cv2.VideoCapture(0)这时不会报错),需要对系统文件进行配置后方可调用摄像头。

  在新版本中,打开如下界面已经没有Camera选项,新版本变为自动识别摄像头。网上许多教程还是停留在旧版本,对初学者造成许多不便。同时这样的配置也会对我们调用摄像头造成困难。

  二、问题匹配

  执行以下命令,检测是否可以识别摄像头:

vcgencmd get_camera

   结果如下:

  如果返回结果为:  supported=0 detected=0,说明此时摄像头硬件没有被识别出来,而且设备是不支持摄像头配件的,下面是解决方法。

  三、识别摄像头配置

  1.修改config.txt文件

  输入

sudo nano /boot/firmware/config.txt

  在文件最后加上如下命令:加在最后【all】

gpu_mem=128
start_x=1

  注释掉原来的摄像头自动检测语句(第17行)

#camera_auto_detect=1

  Ctrl+o 写入  Ctrl+x 退出

2.修改/etc/modules

输入

sudo nano /etc/modules

在最后面添加如下命令

bcm2835-v4l2

Ctrl+o 写入  Ctrl+x 退出

保存后,重启系统!!!

3.验证

重复 二部分 内容,得到 supported=1 detected=1,则说明摄像头可以工作了

4.带来的问题

  修改后输入:

libcamera-hello

命令出现“no cameras available”报错

经网上查找资料发现,这样配置后系统使用的是旧的驱动,想要解决这个问题又要将更改的文件修改,只能说鱼与熊掌不可兼得。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值