模板: RPi Camera raspicam Guide

来自Waveshare Wiki
跳转至: 导航搜索

前言

如果你使用的是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