最近重温树莓派的视觉,烧录了树莓派的新系统后发现在 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 Option
中 camera
的选项,取而代之的是用 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
即可