树莓派 Interface Option 中缺失 Camera 选项的解决方案

最近重温树莓派的视觉,烧录了树莓派的新系统后发现在 raspi-config 中的 Interface Option 没有 camera 选项,同时在终端用 vcgencmd get_camera 查看摄像头时没有检测到树莓派的 CSI 摄像头,在 Thonny 中调用树莓派摄像头出现报错: cv2.error: OpenCV(4.6.0) ./modules/highgui/src/window.cpp:967: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow'

出现以上情况,是因为2024版的树莓派最新系统已经取消了 Interface Optioncamera 的选项,取而代之的是用 libcamera 作为官方摄像头的命令。

一、检查摄像头是否正常

由于最新的树莓派系统用的是libcamera命令,所以我们可以安装libcamera库和工具,来检验摄像头是否可以正常工作

  • 安装 libcamera 库和工具包

    sudo apt install libcamera-apps
    sudo apt install libcamera-tools
    
  • 安装完 libcamera 后,运行以下的代码查看摄像头是否正常(出现几秒钟的摄像头画面为正常,若没有,断开电源检查硬件连接是否正确,任不行则有可能是摄像头烧了)

    libcamera-hello
    
  • 用 libcamera 命令拍一张照片,可在home中查看,若有也可以说明摄像头能正常使用

    libcamera-jpeg -o test.jpg
    
  • 二、OpenCV中调用摄像头

    由于最新的系统中没有了camera选项,因此我们要通过终端进入到config中去设置树莓派CSI摄像头使能

  • 在终端运行以下的代码,打开config.txt文件

    sudo nano /boot/firmware/config.txt
    
  • 打开文件后,找到以下的内容(要在OpenCV中调用摄像头,camera_auto_detect要注释掉同时打开旧的摄像头驱动)

    # Automatically load overlays for detected cameras
    camera_auto_detect=1
    
  • 修改成下图所示,打开旧的摄像头驱动

    # Automatically load overlays for detected cameras
    #camera_auto_detect=1
    start_x=1
    
  • 保存后退出文档重启树莓派,重启后运行 vcgencmd get_camera ,如图所示即为成功打开摄像头

  • 后续如果需要用到 libcamera 命令,回到文档中将 start_x=1 注释掉,再改回 camera_auto_detect=1 即可

    参考文章
    记录一次树莓派在较新版本官方系统使用CSI摄像头时出现的问题及解决办法

    作者:算法组—梁家华

    物联沃分享整理
    物联沃-IOTWORD物联网 » 树莓派 Interface Option 中缺失 Camera 选项的解决方案

    发表回复