模板: RPi Camera raspicam Guide
前言
如果你使用的是Buster版本的镜像,系统默认安装的是Raspicam驱动,可以直接开启摄像头,然后使用。
如果使用的是最新的Bullseye系统,需要另外安装配置一下。
适用于OV5647,官方IMX219,官方IMX477.
安装Raspicam(可选)
打开树莓派终端,并输入以下指令安装驱动. 注意:此驱动暂时无法支持64位的树莓派系统。
sudo apt-get update cd sudo apt install cmake git clone https://github.com/raspberrypi/userland cd userland ./buildme cp build/bin/* ~/bin/
按照后之后需要重启系统
sudo reboot
调用摄像头
raspistill
raspistill指令用于拍摄静态图片。 示例:raspistill -o cam.jpg
raspivid
raspivid指令用于录制视频。 示例: raspivid -o vid.h264
raspiyuv
raspiyuv指令具有跟raspisitll相同的功能,不同的是raspiyuv不是输出jpgs等标准图像文件,而是从相机的ISP输出中生成YUV420或者RGB888图像文件。
大部分情况下,拍摄图像,用raspistill比较好,但是如果你想用未压缩的黑白图像的时候,可以选择使用raspiyuv指令。
示例:raspiyuv -o cam.jpg
指令设置选项
raspicam 指令在使用的时候,可以通过设置选项来调整图像最终成像效果。以下列出可用的设置选项以供参考.
--preview, -p #设置预览窗口<x, y, w, h>
用户可以通过设置x, y的值来设置预览窗口的位置, 设置w, h的值来调整预览图像的分辨率。
--fullscreen, -f #全屏预览窗口
将预览窗口全屏显示
--nopreview, -n #不显示预览窗口
关掉预览窗口,指令会直接输出图像或者视频到文件。
--opacity, -op #设置预览窗口透明度
设置预览窗口的透明度, 0 是不可见, 255 是全透明
--sharpness, -sh #设置图像锐度 (-100 - 100)
默认锐化值为0
--contrast. -co #设置图像对比度 (-100 - 100)
默认的对比度为0
--brightness, -br #设置图像对比度 (0 - 100)
默认亮度为50, 0是全黑,100是全白。
--saturation, -sa #设置图像饱和度 (-100 - 100)
默认饱和度是0
--ISO #设置快门感光度 (100 - 800)
设置拍照时的感光度
--vstab, -vs #开启视频稳定
只有视频录制模式有效,开启视频防抖。
--ev #设置EV补偿
设置图像的EV补偿值, 默认0
--exposure, -ex #设置曝光模式
可设置的曝光选项:
- auto: 自动曝光模式
- night: 夜间拍摄模式
- nightpreview
- backlight: 背光模式
- spotlight
- sports: 运动模式(运动模式下会缩短快门时间
- snow: 雪景模式
- beach: 海滩模式
- verylong: 长曝光模式
- fixedfps: 固定fps
- antishake: 防抖模式
- fireworks: 烟花模式
注:根据摄像头型号,有部分模式不可用
--flicker, -fli #闪烁避免
可设置的模式:
- off: 关闭防闪烁模式
- auto: 自动检测注频率
- 50Hz: 设置防闪烁频率是50Hz
- 60Hz: 设置防闪烁频率是60Hz
--awb, #设置自动白平衡模式
- off: 关闭自动白平衡
- auto: 自动白平衡模式(默认)
- sun: 晴天模式 (5000K ~ 6500K)
- cloud: 多云模式 (6500K ~ 12000K)
- shade:阴影模式
- tungsten: 钨丝灯模式(2500K ~ 3500K)
- incandescent: 白炽灯模式(2500K ~ 4500K)
- flash: 闪光灯模式
- horizon: 地平线模式
- greyworld: 如果使用的是不带红外滤光片的相机(比如NoIR), 可以修复因为缺少IR滤镜而导致的白平衡失调的情况
注:根据摄像头型号,有部分模式不可用
--imfx, -ifx #设置图像滤镜效果
可设置的图像滤镜效果:
- none: 无效果(默认)
- negative:颜色翻转
- solarise: 日照效果
- posterise: 海报效果
- whiteboard: 白板效果
- backboard:黑板效果
- sketch: 素描
- denoise: 去噪
- emboss: 浮雕
- oilpaint: 油画
- hatch: 纹理
- gpen: 铅笔素描
- pastel: 彩色铅笔
- watercolour: 水彩
- film: 胶片
- blur: 模糊
- saturation: 饱和
注:根据摄像头型号,有部分模式不可用
--colfx, -cfx #设置颜色效果<U:V>
U和V参数的设置范围是 0 ~ 255, 用来调整U和Y通道的数值。 比如: --colfx 128:128 会讲图像设置成单色图。
--metering, -mm #设置测光模式
可设置选项:
- average: 平均或者全幅测光
- spot:点测光
- backlit: 预设一个背光图像
- matrix: 矩阵测光
--rotation, -rot #设置图像旋转 (0 - 359)
可以通过角度参数设置图像旋转角度
--hflip, -hf #设置图像水平翻转
设置图像水平翻转
--vflip, -vf #设置图像垂直翻转
垂直翻转图像
--roi, #裁剪图像 <x, y, w, h>
根据参数裁剪图像,注意参数都是规划化在(0,0 ~ 1.0), 比如,如果要裁剪1/4图像,可以用指令 -roi 0.5,0.5,0.25,0.25
--shutter, --ss 设置快门速度/时间
设置快门时间(单位:ms)。 快门时间根据感光芯片的不同,可设置的最大快门时间不同。
型号 | 最大数字(ms) |
---|---|
V1 (OV5647) | 6000000 (6s) |
V2 (IMX219) | 10000000 (10s) |
HQ (IMX477 | 200000000 (200s) |
--drc, -drc #启用/关闭动态范围压缩
- off (默认)
- low
- med
- high
--stats, -st #通过静态图像帧来统计图像
--awbgains, -awbg
设置蓝色和绿色增益, 在设置 --awb off 的情况下生效
--analoggain, -ag
设置模拟增益值
--digitalgain, -dg
设置数字增益值
--mode, -md
设置传感器模式:
- OV5647
模式 | 分辨率 | 纵横比 | 帧率 | FoV | |
---|---|---|---|---|---|
0 | 自动选择 | ||||
1 | 1920 x 1080 | 16:9 | 1-30fps | 局部 | |
2 | 2592 x 1944 | 4:3 | 1-15fps | 全幅 | |
3 | 2592 x 1944 | 4:3 | 0.1666 - 1fps | 全幅 | |
4 | 1296 x 972 | 4:3 | 1 - 42fps | 全幅 | |
5 | 1296 x 730 | 16:9 | 1- 49fps | 全幅 | |
6 | 640 x 480 | 4:3 | 42.1 - 60fps | 全幅 | |
7 | 640 x 480 | 4:3 | 60.1 - 90fps | 全幅 |
- IMX219
模式 | 分辨率 | 纵横比 | 帧率 | FoV | |
---|---|---|---|---|---|
0 | 自动选择 | ||||
1 | 1920 x 1080 | 16:9 | 0.1-30fps | 局部 | |
2 | 3280 x 2464 | 4:3 | 0. 1-15fps | 全幅 | |
3 | 3280 x 2464 | 4:3 | 0.1 - 15fps | 全幅 | |
4 | 1640 x 972 | 4:3 | 1 - 42fps | 全幅 | |
5 | 1296 x 730 | 16:9 | 1- 49fps | 全幅 | |
6 | 640 x 480 | 4:3 | 42.1 - 60fps | 全幅 | |
7 | 640 x 480 | 4:3 | 60.1 - 90fps | 全幅 |
- HQ Camera
模式 | 分辨率 | 纵横比 | 帧率 | FoV | |
---|---|---|---|---|---|
0 | 自动选择 | ||||
1 | 2028 x 1080 | 169:90 | 0.1-50fps | 局部 | |
2 | 2028 x 1080 | 4:3 | 0. 1-50fps | 全幅 | |
3 | 4056x3040 | 4:3 | 0.005 - 10fps | 全幅 | |
4 | 1332x990 | 74:55 | 50.1-120 fps | 局部 |
--camselect, -cs
当系统接入多个摄像头时,选择摄像头, 0 或 1.
--annotate, -a #启用/设置注释
在元数据中使用位掩码的方式来表示参数,可以直接用加法表示。 比如, 12 可以表示显示时间(4)和显示日期 (8), 就是通过加法 4+8 =12表示的。
可设置的选项
值 | 参数说明 |
---|---|
-a 4 | 时间 |
-a 8 | 日期 |
-a 12 | 时间和日期,实际就是 4 + 8 |
-a 16 | 快门设置 |
-a 32 | CAF设置 |
-a 64 | 增益设置 |
-a 128 | 镜头设置 |
-a 256 | 动画设置 |
-a 512 | 帧数 |
-a 1024 | 黑色背景 |
-a "ABC %Y-%m-%d %X" | 显示文本 |
-a 4 -a "ABC %Y-%m-%d %X" | 显示自定义格式的时间/日期 |
-a 8 -a "ABC %Y-%m-%d %X" | 显示自定义格式的时间/日期 |
--annotateex, -ae #设置额外注解参数
--stereo, -3d
设置双目模式。
- sbs - 并排模式
- tb: -竖排模式
- off -关掉双目模式(默认)
--decimate, -dec
将双目图像的宽度和高度减半
--setting, -set
输出当前的摄像头设置
raspistill 设置参数
--width, -w #设置图像宽度 --height, -h #设置图像高度 --quality, 0q #设置JPEG质量 <0 ~ 100> --raw, -r #将原Bayer数据添加到JPEG元数据中 --output, -o #输出文件 <filename> --latest, -l #关联最后一帧图像到文件 <filename> --verbose, -v #打印详情 --timeout, -t #设置程序预览时间 --timelapse, -tl #设置演示摄影 --framestart, -fs #保存第一帧的编号 --datetime, -dt #用日期时间命名文件 --timestamp, -ts #用时间戳命名文件 --thumb, -th #设置缩略图参数 <x:y:qulity>, 默认为(64:48:35) --demo, -d #运行演示模式<ms》 --encoding, -e #按照指定格式编码, jpg, bmp或者png --restart, -rs #设置JPEG重启标志 --exif, -x #设置EXIF标记 --gpsdexif, -gps #设置实时exif 时间 (需要有GPS Dongle接入) --fullpreview, -fg #全屏预览 --keypress, -k #按键拍照模式 --signal, -s # 信号模式 --burst, -bm #抓拍模式
raspivid 设置参数
--width, -w #设置视频宽度 --height, -h #设置视频高度 --bitrate, -b #设置比特率 --output, -o #设置输出文件名 <filename> --listen, -l #使用网络连接的时候,等待网络连接 --versbose, -v #打印详情 --timeout, -t #设置预览时间 --demo, -d #运行演示 <ms> --framerate, -fs #设置帧率 --penc, -e #显示编码后的预览图像 --intra, -g #设置内部刷新周期 --qp, -qp #设置量化参数 --profile, -pf #指定H264配置文件, baseline / main / high --level, -lev #设置H264编码等级 --irefresh, -if #设置 H264内部刷新类型 cyclic / adaptive / both / cyclicrows --inline, -ih #插入PPS,SPS头 --spstimings, -stm #将时序信息插入到SPS块中 --timed, -td #定时切换录制和暂停功能 --keypress, -k #按键暂停录制 --signal, -s #根据SIGUSR1 切换暂停和录制状态 --split, -sp #在signal和keypress 模式下,每次重新录制的时候都会重新创建文件 --vectors, -x #矢量输出 --flush, -fl #写入视频数据后立即强制刷新输出数据缓冲区, 绕过了写入数据的任何操作系统缓存,并且可以减少延迟。 --save-pts, -pts #将时间戳信息保存到指定文件。 --codec, -cd # 指定编码器 H264 / MJPEG --initial, -i #设置启动是的初始状态 --segment, -sg #将视频流分割到多个文件中 --wrap, -wr #设置分割的最大值 --start, -sn #设置初始分割编码 --raw, -r #设置元数据文件名 --raw-format, -rf #指定元数据格式 yuv / rgb / grey