找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3172|回复: 0

树莓派系列摄像头使用介绍

[复制链接]

41

主题

0

回帖

453

积分

管理员

积分
453
发表于 2024-1-18 12:04:16 | 显示全部楼层 |阅读模式
树莓派镜像在Bullseye版本之后,底层的树莓派驱动由Raspicam切换成libcamera。libcamera是一个开源的软件栈(后面会称呼为驱动,方便理解),方便于第三方移植和开发自己的摄像头驱动。截止到20231211,官方已经针对libcamera提供了pycamera2库,方便用户使用Python程序调用
https://www.raspberrypi.com 树莓派官方libcamera程序使用详细说明

树莓派buster系统版本(也就是老版本)使用Raspicam摄像头库,目前只支持三个型号的摄像头,OV5647,IMX219(带加密芯片),IMX477(带加密芯片) 市场上不带加密芯片的IMX219和IMX477摄像头不支持
可以先更新一下系统:sudo apt update && sudo apt full-upgrade -y   
树莓派bookworm系统版本(新版系统)使用libcamera摄像头库,可以扩展各种型号的摄像头,目前支持的型号如下:
sudo  nano /boot/config.txt 或者 sudo  nano /boot/firmware/config.txt  打开后,找到   camera_auto_detect=1   这条,把后面的数字1改为0  ,    camera_auto_detect=0
在最后面添加下面内容
#dtoverlay=ov5647
#dtoverlay=imx219
#dtoverlay=imx219,cam0
#dtoverlay=imx477
#dtoverlay=imx290,clock-frequency=37125000
#dtoverlay=imx378
#dtoverlay=ov9281
#dtoverlay=imx296
#dtoverlay=imx519
#dtoverlay=imx708
#dtoverlay=imx708,vcm=0    这里是设置关闭自动对焦功能
使用哪个型号的摄像头,就去掉前面的#号,保存,重启
针对树莓派5,或者树莓派CM3和CM4,这些型号,都支持2个摄像头,设置方式如下:
sudo  nano /boot/config.txt  或者 sudo  nano /boot/firmware/config.txt ,在最后面添加下面内容
dtoverlay=imx219         
dtoverlay=imx219,cam0
以上dtoverlay=imx219     这条默认对应的接口是CSI/DSI1
dtoverlay=imx219,cam0   这条设置对应的接口是CSI/DSI0

树莓派5上使用IMX290,还需要添加json文件到指令目录才能使用。操作如下:
sudo wget https://www.waveshare.net/w/upload/7/7a/Imx290.zip
sudo unzip Imx290.zip
sudo cp imx290.json /usr/share/libcamera/ipa/rpi/pisp

sudo  nano /boot/firmware/config.txt
dtoverlay=imx290,clock-frequency=37125000,cam0

保存重启后可以通过    libcamera-hello --list-cameras     这个命令查看是否识别到对应的摄像头
以下是操作摄像头的一下指令:
libcamera-jpeg -h   #可以查看详细用法

sudo libcamera-hello -t 0 --camera 0
sudo libcamera-hello -t 0 --camera 1
libcamera-jpeg --camera 1 -t 2000 -o test.jpg
libcamera-jpeg --camera 0 -t 2000 -o test.jpg
libcamera-hello
libcamera-hello -t 0
libcamera-jpeg -o test.jpg
libcamera-jpeg -o test.jpg -t 2000 --width 640 --height 480
libcamera-still -o test.jpg
libcamera-vid -t 10000 -o test.h264
rpicam-vid -t 20000 --width 2028 --height 1080 --codec libav -o 1.MP4
rpicam-vid -t 20000 --width 2028 --height 1080 --framerate 50 --codec libav -o 1.MP4
通过SSH操作上面的命令,可能无法查看摄像头的实时图像,最好是在树莓派上接显示器和鼠标键盘,再使用上面的指令,就可以看到实时图像
可以通过libcamera -h  查看libcamera的详细介绍
在测试IMX296全彩摄像头如果出现颜色不能正常显示,可以尝试使用 sudo apt-get full-upgrade  更新系统,重启后再测试,一般都能解决问题。


树莓派buster系统版本的摄像头拍照指令:
可以参考:树莓派摄像头模块应用程序文档翻译
raspistill -o 1.jpg -t 2000
raspistill -cs 0 -o 1.jpg -t 2000
raspistill -cs 1 -o 2.jpg -t 2000
sudo raspivid -t 0 -cs 0
sudo raspivid -t 0 -cs 1
raspistill -3d sbs -w 1280 -h 480 -o 1.jpg

raspivid -t 0 -f -w 640 -h 480    强制全屏显示
raspivid -t 0 -w 1920 -h 1080 -fps 30 -sa 100

raspivid -o 1.h264    默认5秒

raspivid -o 1.h264 -t 10000     时间单位毫秒

raspivid -o 1.h264 -t 10000 -w 1280 -h 720  分辨率设置

raspivid -o 1.h264 -t 10000 -w 1280 -h 720  -fps 24   视频帧率设置

# 两秒钟(时间单位为毫秒)延迟后拍摄一张照片,并保存为 image.jpg
raspistill -t 2000 -o image.jpg

# 拍摄一张自定义大小的照片。
raspistill -t 2000 -o image.jpg -w 640 -h 480

# 降低图像质量,减小文件尺寸
raspistill -t 2000 -o image.jpg -q 5

# 强制使预览窗口出现在坐标为 100,100 的位置,并且尺寸为宽 300 和高 200 像素。
raspistill -t 2000 -o image.jpg -p 100,100,300,200

# 禁用预览窗口
raspistill -t 2000 -o image.jpg -n

# 将图像保存为 PNG 文件(无损压缩格式,但是要比 JPEG 速度慢)。注意,当选择图像编码时,文件扩展名将被忽略。
raspistill -t 2000 -o image.png –e png

# 向 JPEG 文件中添加一些 EXIF 信息。该命令将会把作者名称标签设置为 Dreamcolor,GPS 海拔高度为 123.5米。
raspistill -t 2000 -o image.jpg -x IFD0.Artist=Dreamcolor -x GPS.GPSAltitude=1235/10

# 设置浮雕风格图像特效
raspistill -t 2000 -o image.jpg -ifx emboss

# 设置 YUV 图像的 U 和 V 通道为指定的值(128:128 为黑白图像)
raspistill -t 2000 -o image.jpg -cfx 128:128

# 仅显示两秒钟预览图像,而不对图像进行保存。
raspistill -t 2000

# 间隔获取图片,在 10 分钟(10 分钟 = 600000 毫秒)的时间里,每 10 秒获取一张,并且命名为 image_number_001_today.jpg,image_number_002_today.jpg... 的形式,并且最后一张照片将命名为 latest.jpg。
raspistill -t 600000 -tl 10000 -o image_num_%03d_today.jpg -l latest.jpg

# 获取一张照片并发送至标准输出设备
raspistill -t 2000 -o -

# 获取一张照片并保存为一个文件
raspistill -t 2000 -o - > my_file.jpg

#摄像头一直工作,当按下回车键时获取一张照片。
raspistill -t 0 -k -o my_pics%02d.jpg

视频捕捉
图像尺寸和预览设置与图像捕捉相同。录制的视频默认尺寸为 1080p(1920×1080)

# 使用默认设置录制一段 5 秒钟的视频片段(1080p30)
raspivid -t 5000 -o video.h264

# 使用指定码率(3.5Mbits/s)录制一段 5 秒钟的视频片段
raspivid -t 5000 -o video.h264 -b 3500000

# 使用指定帧率(5fps)录制一段 5 秒钟的视频片段
raspivid -t 5000 -o video.h264 -f 5

# 发送到标准输出设备一段 5 秒钟经过编码的摄像头流图像
raspivid -t 5000 -o -

# 保存到文件一段 5 秒钟经过编码的摄像头流图像
raspivid -t 5000 -o - > my_file.h264


























您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系我们|东莞市微象电子 ( 粤ICP备2023103692号-1 )

GMT+8, 2025-4-3 22:06 , Processed in 0.063992 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表