万事之开始,拜见吾师~
树莓派进行摄像头实验保姆级教程
这个细节,我确实可能会忘记!
树莓派4使用CSI摄像头
开启摄像头的照相功能
sudo raspi-config
enable就行了。
重启,开启摄像头
reboot
检查摄像头的状态
vcgencmd get_camera
vcgencmd get_camera
是一个用于树莓派的命令,它可以返回摄像头的支持和检测状态。这个命令的输出通常会是supported=1 detected=1
,这表示摄像头被支持并且已经被检测到。如果你看到detected=0
,那就表示摄像头没有被检测到。这个命令在硬件故障排除和摄像头模块状态检查中非常有用。
简单说,如果support=0,detected=0 前面等于零是因为摄像头驱动没开,只需要用raspi-config重新开一下摄像头就行。失败去看老师的博文,反正我这次成功了~
获取画面
raspistill -o hello.jpg -t 1000
raspistill -o hello.jpg -t 1000
这个命令的具体含义如下:
raspistill
:这是树莓派的一个命令行工具,用于捕获静态图像。-o hello.jpg
:这个参数表示输出的文件名为hello.jpg
,即拍摄的照片将保存为hello.jpg
。-t 1000
:这个参数表示相机在拍摄照片前将等待1000毫秒(即1秒)。
然而,需要注意的是,对于新的树莓派系统(例如4代树莓派、Debian10以及以后的版本),raspistill
命令已经被逐渐遗弃,取而代之的是 libcamera
。libcamera
是一个旨在直接从Linux操作系统支持复杂的相机系统的软件库。
出现问题
表示在树莓派上没有安装 raspistill (树莓派拍照的工具)工具或者该命令不在系统的搜索路径中。
也可以使用平替使用fswebcam
工具进行拍照.
安装
sudo apt-get install -y fswebcam
拍照
fswebcam -r 1280x720 --no-banner hello.jpg
这将拍摄一张名为 hello.jpg 的照片,并设置分辨率为 1280x720。
展示画面
ffplay -f v4l2 -framerate 60 -video_size hd720 /dev/video0
ffplay -f v4l2 -framerate 60 -video_size hd720 /dev/video0
是一个用于在Linux系统中播放视频的命令。这个命令使用了ffplay
,它是一个非常简单且便携的媒体播放器,使用了FFmpeg库和SDL库。这个命令的各个部分的含义如下:
ffplay
:这是FFmpeg项目的一部分,用于播放音频/视频文件。-f v4l2
:这个选项指定了输入格式为Video4Linux2(v4l2),这是一个包含了许多驱动程序的Linux内核视频集。-framerate 60
:这个选项设置了视频的帧率为60帧/秒。-video_size hd720
:这个选项设置了视频的大小为高清720p。/dev/video0
:这是视频设备在Linux系统中的位置。
总的来说,这个命令会使用ffplay
从/dev/video0
设备(摄像头)捕获视频,视频的帧率为60帧/秒,视频大小为720p,并且将捕获到的视频进行播放。
启动成功~
500w像素真低,还有我现在光线不好,画面简直是灾难!
我一直以为全是因为我的问题,结果查阅一番发现,CSI摄像头的通病好像就是光线不咋滴!
树莓派(5):CSI摄像头 vs USB摄像头
补充一下CSI摄像头的介绍
CSI摄像头,全称为Camera Serial Interface摄像头,是MIPI定义的规范,用于连接摄像头和CPU,传输摄像头的视频信号。它通常用于移动设备(如智能手机)和一些单板计算机(如树莓派)。
CSI摄像头的主要优点是它可以直接与处理器进行高速数据传输,而无需额外的硬件。此外,CSI摄像头通常比USB摄像头具有更高的帧率和更低的系统资源占用。
但是,CSI摄像头的一个主要缺点是它的成像质量可能不如某些USB摄像头。特别是在光线不足的情况下,CSI摄像头的成像质量可能会较差。(是超级差!!!!!!!)
然后加一个看看就得了的通信协议扩展
硬件接口之MIPI