精帖  树莓派CSI摄像头的使用方法 拍照/视频 图片传输CSI摄像头,树莓派4B,树莓派3B/3B+,树莓派zero系列

By 管理员7

2023-05-11 18:00:04

浏览量85034

已赞12

一:本次实验目标

1、使用命令让树莓派的CSI摄像头拍摄照片,拍摄视频
2、使用socket进行网络拍照控制和图片传输功能。

 ➥ 摄像头点此购买链接

 ➥ 使用摄像头打造监控例程

注意如果你的系统是最新Bullseye版本请查看这个教程【2023摄像头教程】

二:接线方式

1.将树莓派先断电,并将CSI摄像头接入到靠近耳机孔旁的排孔中,CSI摄像头蓝色面朝USB的方向(参考下图)

Image

三、使用步骤

1.需要先开启启摄像头功能,在LX终端执行下面命令:

sudo raspi-config

选择第三项:Interface Options 按回车进入

Image

在选择:Camera 按回车进入

Image

在选择:"是" 按回车就能启用摄像头功能

Image

开启摄像头后建议重启一下树莓派

四:用摄像头拍摄演示

先检测下摄像头是否被树莓派识别,可输入下面命令检测,如果树莓派正常识别到摄像头,显示状态应该是(supported=1 detected=1),当然下图这种情况则是摄像头没有被识别,这时候请检测摄像头排线是否接错了方向。

vcgencmd get_camera

Image

如果一切正常,我们可以尝试输入下面命令进行操作:

1.输入命令进行拍照

raspistill -o raspi.jpg -t 30 (该命令中:-o是设置文件名  -t是设置延时30ms)
我们还可以用 -e png 指定生成jpg、png、gif、bmp格式的图片,后三种无损,生成速度会慢些(如下)

raspistill -e png -o raspi2.png -t 30

2.查看照片:

如果要查看拍到的照片文件可以用命令查看,也可以在桌面的文件管理里面查看为:raspi.jpg格式的图片

查看照片命令:xdg-open raspi.jpg 

3.拍摄视频

raspiyuv 生成yuv格式图像。

命令行用 raspivid 录制3s的视频:

raspivid -o testvideo.h264 -t 3000
该命令生成的是未压缩的H.264视频流,可以转换为MP4更通用的视频格式。可以使用gpac 包的 MP4Box 来进行转换。

安装gpac

sudo apt-get install -y gpac 

进行转换:30帧,原视频名testvideo.h264  新视频名 testvideo.mp4

MP4Box -fps 30 -add testvideo.h264 testvideo.mp4

一般树莓派无法查看图片和视频,可以用自带Chromium 浏览器来查看图片和MP4视频,可以安装eog来查看图片。

sudo apt-get install eog
可以安装vlc来播放视频(OMXPlayer 已在最新版本弃用,VLC现在是推荐的替代方案。

sudo apt install -y vlc

五. 使用VLC将树莓派摄像头获取的视频转为网络视频流

使用raspivid捕获视频,输入到VLC转为网络视频流。帧率25fps 局域网设备中能解码网络串流的应用可通过树莓派的IP地址及端口8090访问到视频。

sudo raspivid -o - -t 0 -w 640 -h 360 -fps 25|cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8090}' :demux=h264
ImageImage

六. 使用MOTION进行移动监控

Motion是Linux下一款开源的移动图像检测程序,拍摄一个画面进行监控,如画面中出现运动物体会进行抓拍。输入命令安装Motion

sudo apt-get install motion

修改配置文件

sudo nano /etc/motion/motion.conf
 
更改几个参数
target_dir /home/pi/motion  # 设置拍摄图片视频的存储目录
locate_motion_mode on  # 探测到图像中有运动时,把运动区域用矩形框起来
output_pictures best # 将off改为best,还可以选first和center
stream_localhost off  # on 只能由本地主机能访问网络摄像头
stream_maxrate 30  # 以每秒帧数限制网络摄像头的帧速率。
stream_montion on # on时,则在未检测到运动时,会将网络摄像头流的速度减慢到每秒 1 张图片。检测到运动时,流将按照stream_maxrate值发送。off 时,网络摄像头流始终按照 stream_maxrate的规定发送
framerate 15 # 帧率
stream_port 8081 # 端口号

运行motion,需要给予写入的权限

sudo motion
Image




更多参考资料:

树莓派官方摄像头文档:https://www.raspberrypi.com/documentation/accessories/camera.html

树莓派官方摄像头文档:https://www.raspberrypi.com/documentation/computers/os.html

树莓派摄像头打造实时监控教程:http://www.raspi.cc/read-50-1.html?cache=refresh


本文章最后由 超级版主2023-11-14 19:56 编辑
发表评论
请先 注册/登录 后参与评论

已有1 发布

默认   热门   正序   倒序
查看更多评论
(12) 分享
分享

扫二维码或复制链接分享该篇文章

取消
已有0次打赏
本站免责声明
1、本站资源,均来自网络或个人用户发布,版权归原作者,所有资源和文章仅限用于学习和研究目的 。
2、不得用于商业或非法用途,否则,一切责任由该用户承担 !

侵权删除请致信 E-Mail:cxg88@qq.com