您的位置:首页 > 编程语言 > ASP

Raspberry Pi 摄像头模块应用程序文档翻译

2013-10-16 17:25 525 查看
http://dreamcolor.net/2013/05/raspicam-documentation/

更新日志:

2013 年 8 月 4 日更新:根据 Raspberry Pi 官方论坛发布的 RaspiCam 正式文档进行扩展翻译。硬件安装和软件安装部分稍后翻译完成。

2013 年 5 月 31 日更新:根据 eLinux 中的 Wiki 内容添加使用 MP4Box 对视频进行封装的介绍。

2013 年 5 月 24 日更新:根据 2013 年 5 月 10 日更新的官方文档完成了初步翻译。

本文会在适当的时间里进行增删改等操作,如果您对该文感兴趣,可以仅收藏本页。

RaspiCam 文档

本文档将对 2013 年 7 月为止可用的三个 Raspberry Pi 摄像头应用程序进行介绍。

目前提供了三个应用程序,分别为:raspistillraspividraspistillyuv。其中 raspistill 和 raspistillyuv 非常相似,并且都是用于捕捉图像,而 raspivid 用于捕捉视频。

所有应用程序均基于命令行方式运行,通过 OpenMAX 的 mmal API 进行编写。OpenMAX 的 mmal API 提供了更易使用的系统组件。注意,mmal 是一个由 Broadcom 为 Videocore 4 系统定制的 API。

应用程序使用了三个 OpenMAX(mmal)组件:camera(摄像)、preview(预览)、encoder(编码)。所有应用程序均使用了摄像组件,raspistill 使用了图像编码组件,raspivid 使用了视频编码组件,raspistillyuv 没有使用编码组件,而是直接将 YUV 从摄像组件输出到文件。

预览显示为可选参数,但是可以用于全屏或输出到指定的显示器显示区域进行显示。如果预览被禁用,那么 null_silk 组件将会对预览帧进行“吸收”。这是由于尽管不需要摄像头生成供显示所用的的预览帧,但是仍需要使用它们进行曝光计算和白平衡设置的缘故。

此外,还可以省略文件名参数,这样既可以直接预览显示而不写入文件,或者直接输出到标准输出设备上。命令行帮助可以通过直接输入应用程序名称获得。

安装摄像头硬件

安装摄像头软件

故障排除

通用命令行参数

预览窗口

--preview, -p 预览窗口设置 <'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, -ISO 设置捕捉 ISO

暂时不可用。

--vstab, -vs 打开视频稳定

仅用于视频模式,用于开启视频稳定。

--ev, -ev 设置曝光补偿

设置图像的曝光补偿。范围为 -10 到 10,默认为 0。

--exposure, -ex 设置曝光模式

可能用到的参数为:

off - 关闭曝光模式
auto - 使用自动曝光模式
night - 夜间拍摄模式
nightpreview -夜间预览拍摄模式(暂且这么称呼)
backlight - 逆光拍摄模式
spotlight - 聚光灯拍摄模式
sports - 运动拍摄模式(高速快门等)
snow - 雪景优化拍摄模式
beach - 海滩优化拍摄模式
verylong - 长时间曝光拍摄模式
fixedfps - 帧约束拍摄模式
antishake - 防抖模式
fireworks - 烟火优化拍摄模式

注意,不是所有的设置都会在对摄像头进行微调时得到相应作用。

--awb, -awb 设置自动白平衡

可能用到的参数为:

off - 关闭白平衡测算
auto - 自动模式(默认)
sun - 日光模式
cloud - 多云模式
shade - 阴影模式
tungsten - 钨灯模式
fluorescent - 荧光灯模式
incandescent - 白炽灯模式
flash - 闪光模式
horizon - 地平线模式

--imxfx, -ifx 设置图像特效

设置应用于图像上的特效

可能用到的参数为:

none - 无特效(默认)
negative - 反色图像
solarise - 曝光过度图像
posterize - 色调图像
whiteboard - 白板特效
blackboard - 黑板特效
sketch - 素描风格特效
denoise - 降噪图像
emboss - 浮雕图像
oilpaint - 油画风格特效
hatch - 草图特效
gpen - 马克笔特效
pastel - 柔化风格特效
watercolour - 水彩风格特效
film - 胶片颗粒风格特效
blur - 模糊图像
saturation - 色彩饱和图像
colourswap - 暂未可用
washedout - 暂未可用
posterise - 暂未可用
colourpoint - 暂未可用
colourbalance - 暂未可用
cartoon - 暂未可用

--colfx, -cfx 设置色彩特效

指定图像 U 和 V 通道的参数(范围 0 到 255)。例如:--colfx 128:128 将得到一张单色图像。

--metering, -mm 设置测光模式

为预览和捕捉指定测光模式

可能用到的参数为:

average - 全画面平衡测光
spot - 点测光
backlit - 模拟背光图像
matrix - 阵列测光

--rotation, -rot 设置图像旋转(0 - 359)

对取景器和最终得到的图像进行旋转。可以接受 0 以上任何值,但由于硬件限制,只支持 0、90、180、270 度。

--hflip, -hf 设置水平翻转

水平翻转预览和保存的图像。

--vflip, -vf 设置垂直翻转

垂直翻转预览和保存的图像。

--roi, -roi 设置传感器感光区域

允许指定用于预览和捕捉的源所使用的传感器区域。该功能中 x 和 y 参数指定了坐上角的坐标,以及定义了宽度和高度值,并且所有值都为标准化坐标(0.0 到 1.0)。那么,感光区域设置为横向和纵向都为一半,并且宽度和高度都为传感器的四分之一时,可以写为:

-roi 0.5,0.5,0.25,0.25

应用程序专有设置

raspistill

--width, -w 设置图像宽度

--height, -h 设置图像高度

--quality, -q 设置 JPEG 品质

品质为 100 时几乎等同于未压缩。75 相对是比较好的选择。

--raw, -r 向 JPEG 元数据中添加 RAW 信息

该参数将从摄像头获取到的 RAW 信息插入到 JPEG 元数据中。

--output, -o 输出文件名

指定输出的文件名。如果不指定,将不保存到文件。如果文件名为“-”,将输出发送至标准输出设备。

--verbose, -v 在运行过程中输出详细信息

在程序运行过程中,输出调试/详细信息。

--timeout, -t 获取图片前的时间

程序将执行指定的时长,然后进行获取操作(前提是 output 已指定)。如果未指定,将设置为 5 秒。

--timelapse, -tl 间隔拍摄模式

指定多次拍摄之间所间隔的毫秒值。注意,您需要在文件名中加入 %d 做为画面计数。

-t 30000 -tl 2000 -o image%d.jpg

将会在 30 秒的时间内,每两秒拍摄一次,并且将文件命名为:image1.jpg、image2.jpg...image15.jpg。

--thumb, -th 设置缩略图参数(x:y:quality)

允许指定插入到 JPEG 文件中缩略图信息。如果不指定,将为默认的 64x48 质量为 35 的缩略图。

--demo, -d 运行演示模式

该参数将循环使用所有摄像头参数,并且不会捕捉。而且无论是否完成所有的循环,在超时周期到达时都会停止演示操作。循环之前的时间需要设置毫秒值。

--encoding, -e 指定输出文件的编码

可用的参数为 jpg、bmp、gif、png。注意,未被硬件加速支持的图像格式(gif、png、bmp)在保存的时候要比 jpg 格式耗时更长。还需要注意,文件扩展名在编码时将被完全忽略。

--exif, -x 在捕捉的内容中加入 EXIF 标签(格式为 'key=value')

允许在 JPEG 图像中插入特定的 EXIF 标签。您可以插入 32 条记录。这是非常实用的功能,比如插入 GPS 元数据。例如设置经度

--exif GPS.GPSLongitude=5/1,10/1,15/100

该命令将会设置经度为 5 度 10 分 15 秒。查看 EXIF 文档获得所有可用标签的详细信息。支持的标签如下:

IFD0. 或 IFD1.

<ImageWidth, ImageLength, BitsPerSample, Compression, PhotometricInterpretation, ImageDescription, Make, Model, StripOffsets, Orientation, SamplesPerPixel, RowsPerString, StripByteCounts, Xresolution, Yresolution, PlanarConfiguration, ResolutionUnit, TransferFunction,
Software, DateTime, Artist, WhitePoint, PrimaryChromaticities, JPEGInterchangeFormat, JPEGInterchangeFormatLength, YcbCrCoefficients, YcbCrSubSampling, YcbCrPositioning, ReferenceBlackWhite, Copyright>


EXIF.

<ExposureTime, FNumber, ExposureProgram, SpectralSensitivity, a ISOSpeedRatings, OECF, ExifVersion, DateTimeOriginal, DateTimeDigitized, ComponentsConfiguration, CompressedBitsPerPixel, ShutterSpeedValue, ApertureValue, BrightnessValue, ExposureBiasValue, MaxApertureValue,
SubjectDistance, MeteringMode, LightSource, Flash, FocalLength, SubjectArea, MakerNote, UserComment, SubSecTime, SubSecTimeOriginal, SubSecTimeDigitized, FlashpixVersion, ColorSpace, PixelXDimension, PixelYDimension, RelatedSoundFile, FlashEnergy, SpacialFrequencyResponse,
FocalPlaneXResolution, FocalPlaneYResolution, FocalPlaneResolutionUnit, SubjectLocation, ExposureIndex, SensingMethod, FileSource, SceneType, CFAPattern, CustomRendered, ExposureMode, WhiteBalance, DigitalZoomRatio, FocalLengthIn35mmFilm, SceneCaptureType,
GainControl, Contrast, Saturation, Sharpness, DeviceSettingDescription, SubjectDistanceRange, ImageUniqueID>


GPS.

<GPSVersionID, GPSLatitudeRef, GPSLatitude, GPSLongitudeRef, GPSLongitude, GPSAltitudeRef, GPSAltitude, GPSTimeStamp, GPSSatellites, GPSStatus, GPSMeasureMode, GPSDOP, GPSSpeedRef, GPSSpeed, GPSTrackRef, GPSTrack, GPSImgDirectionRef, GPSImgDirection, GPSMapDatum,
GPSDestLatitudeRef, GPSDestLatitude, GPSDestLongitudeRef, GPSDestLongitude, GPSDestBearingRef, GPSDestBearing, GPSDestDistanceRef, GPSDestDistance, GPSProcessingMethod, GPSAreaInformation, GPSDateStamp, GPSDifferential>


EINT.

<InteroperabilityIndex, InteroperabilityVersion, RelatedImageFileFormat, RelatedImageWidth, RelatedImageLength>


注意,有部分标签将会由摄像头系统自动设置,但是会被命令行执行的 EXIF 操作所覆盖。

--fullpreview, -fp 全预览模式

这将使预览窗口运行于全分辨率捕捉模式。该模式最大帧率为 15fps,并且预览将和捕捉拥有相同的可视区域。在不进行模式转换时,捕捉动作将进行的更迅速。该功能目前还在开发中。

raspistillyuv

raspistillyuv 的许多选项与 raspistill 是相同的。本节将对不同的部分进行讲解。

不支持的选项:

--exif, --encoding, --thumb, --raw, --quality

扩展选项:

--rgb, -rgb 以 RGB888 形式保存未压缩数据

该选项强制图像保存为每个通道为 8 bits 的 RGB 格式,而不是 YUV420 格式。

注意,在 raspistillyuv 中所保存的图像在缓冲区中水平尺寸封装为可被 16 整除(所以可能会在每行的结尾都会出现无用的字节以使宽度可被 16 整除)。缓冲区也会将垂直方向封装为可被 16 整除,在 YUV 模式中,每个 Y、U、V 平面都会使用该方式进行封装。

raspivid

--width, -w 设置图像宽度

视频的宽度。范围为 64 到 1920。

--height, -h 设置图像高度

视频的高度。范围为 64 到 1080。

--bitrate, -b 设置码率。

使用比特/秒为单位,所以 10Mbits/s 需要输入 -b 10000000。对于 H264 编码的 1080p 高清视频,码率需要在 15Mbits/s 或以上。

--output -o 输出文件名

指定输出的文件名。如果不指定,将不保存到文件。如果文件名为“-”,将输出发送至标准输出设备。

--verbose, -v 在运行过程中输出详细信息

在程序运行过程中,输出调试/详细信息。

--timeout, -t 获取图片前的时间

程序将执行指定的时长,然后进行获取操作(前提是 output 已指定)。如果未指定,将设置为 5 秒。

--demo, -d 运行演示模式

该参数将循环使用所有摄像头参数,并且不会捕捉。而且无论是否完成所有的循环,在超时周期到达时都会停止演示操作。循环之前的时间需要设置毫秒值。

--framerate, -fps 指定录制的视频每秒的画面数量

目前,最小的帧率为 2fps,最大为 30fps。似乎将来会有所改变。

--penc, -e 在编码完成后显示预览图像

开启该选项会在压缩完成后显示预览图像。显示在预览窗口中的图像会因为压缩的原因出现失真。正常情况下,预览将会显示摄像头输出的原始图像。该功能在未来的版本中可能不再可用。

--intra, -g 指定帧内刷新周期(关键帧率/画面组)

为录制的视频设置帧内刷新周期(画面组)率。H.264 视频在每个帧内刷新周期中都使用了完整帧(I-frame)。该选项指定了每个 I-frame 之间帧的数量。数字越大,生成的视频尺寸越小,数字越小,视频流将越庞大,直至出错。

示例

图像捕捉

默认情况下,传感器将以其支持的最高分辨率进行捕捉。可以在命令行中通过使用 -w 和 -h 参数进行更改。

视频捕捉

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

扩展内容

MP4Box

raspivid 通常会将录制的视频保存为 .h264 格式的文件。而我们使用的很多播放器可能无法正常播放该格式的视频文件。这就需要我们将生成的 .h264 格式的文件封装到播放器能够识别的视频容器格式中(比如封装为 mp4 格式)。有很多视频处理软件可以达到这个目的,您也可以直接在 Raspberry Pi 上直接进行封装。这里介绍的是“gpac”中的“MP4Box”。安装和使用的方法如下:

相关网站

原文地址:RaspiCam Documentation

项目地址:RaspiCam

本文链接:Raspberry Pi 摄像头模块应用程序文档翻译

Rpi Camera Module from eLinux
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: