树莓派超全系列教程文档--(60)树莓派摄像头操作命令及使用其一

树莓派摄像头操作命令及使用

文章来源: http://raspberry.dns8844.cn/documentation

原文网址

rpicam-hello

rpicam-hello 会显示一个来自相机的视频的预览窗口。要使用 rpicam-hello 显示预览窗口五秒钟,请在终端中运行以下命令:

复制代码
$ rpicam-hello

您可以使用 timeout 选项设置预览时间(以毫秒为单位)。值 0 无限期运行预览:

复制代码
$ rpicam-hello --timeout 0

使用终端中的 Ctrl+C 或预览窗口上的关闭按钮停止 rpicam-hello

显示图像预览

大多数 rpicam-apps 会在窗口中显示预览图像。如果没有活动的桌面环境,则使用Linux直接渲染管理器(DRM)将预览直接绘制到显示器上。否则,rpicam-apps 会尝试使用桌面环境。两条路径都使用零拷贝GPU缓冲区共享:因此, 支持X转发。

如果您运行X窗口服务器并希望使用X转发,请使用 qt-preview 参数以在 Qt 窗口中呈现预览窗口。Qt预览窗口将会比替代窗口使用更多资源。

NOTE: 使用Gtk2的旧系统在与OpenCV链接时可能会产生 Glib-GObject 错误并且无法显示Qt预览窗口。在这种情况下,以root身份编辑文件 /etc/xdg/qt5ct/qt5ct.conf 并将 style=gtk2 替换为 style=gtk3

要完全禁止预览窗口,请使用 nopreview 选项:

复制代码
$ rpicam-hello -n

info-text 选项使用 % 指令在窗口标题栏上显示图像信息。例如,以下命令显示当前的红色和蓝色增益值:

复制代码
$ rpicam-hello --info-text "red gain %rg, blue gain %bg"

有关指令的完整列表,请参阅 info-text信息

rpicam-jpeg

rpicam-jpeg 可帮助您在Raspberry Pi设备上捕获图像。

要捕获全分辨率JPEG图像并将其保存到名为 test.jpg 的文件中,请运行以下命令:

复制代码
$ rpicam-jpeg --output test.jpg

您应该会看到五秒钟的预览窗口。然后,rpicam-jpeg 捕获全分辨率JPEG图像并保存它。

使用 timeout 选项更改预览窗口的显示时间。width和height 选项更改保存图像的分辨率。例如,以下命令将预览窗口显示2秒,然后捕获并保存分辨率为640×480像素的图像:

复制代码
$ rpicam-jpeg --output test.jpg --timeout 2000 --width 640 --height 480

rpicam-still

rpicam-stillrpicam-jpeg 一样,可以帮助你在 Raspberry Pi 设备上捕捉图像。

rpicam-jpeg 不同, rpicam-still 支持传统 raspistill 应用程序中提供的许多选项。

要捕获全分辨率JPEG图像并将其保存到名为 test.jpg 的文件中,请运行以下命令:

复制代码
$ rpicam-still --output test.jpg
编码器

rpicam-still 可以以多种格式保存图像,包括 pngbmp 以及RGB和YUV二进制像素转储。要读取这些二进制转储,任何读取文件的应用程序都必须了解像素排列。

使用 encoding 选项指定输出格式。传递给 output 的文件名对输出文件类型没有影响。

要捕获全分辨率PNG图像并将其保存到名为 test.png 的文件中,请运行以下命令:

复制代码
$ rpicam-still --encoding png --output test.png

有关指定图像格式的更多信息,请参阅 encoding 选项参考

捕获原始图像

原始图像是由图像传感器直接生成的图像,然后再由图像信号处理器(ISP)或中央处理器进行处理。彩色图像传感器通常使用 Bayer 格式。使用 raw 选项可捕捉原始图像。

要捕获图像,请将其保存到名为 test.jpg 的文件中,并将图像的原始版本保存到名为 test.dng 的文件中,请运行以下命令:

复制代码
$ rpicam-still --raw --output test.jpg

rpicam-still 以DNG(Adobe Digital Negative)格式保存原始图像。要确定原始图像的文件名,rpicam-still 使用与输出文件相同的名称,扩展名更改为 .dng 。要处理DNG图像,请使用 DcrawRawTherapee 等应用程序。

DNG元数据包括电平、白平衡信息以及ISP用于生成JPEG的色彩矩阵。使用 ExifTool 查看 DNG 元数据。以下输出显示了存储在 Raspberry Pi 使用 HQ 摄像机拍摄的原始图像中的典型元数据:

复制代码
File Name                       : test.dng
Directory                       : .
File Size                       : 24 MB
File Modification Date/Time     : 2021:08:17 16:36:18+01:00
File Access Date/Time           : 2021:08:17 16:36:18+01:00
File Inode Change Date/Time     : 2021:08:17 16:36:18+01:00
File Permissions                : rw-r--r--
File Type                       : DNG
File Type Extension             : dng
MIME Type                       : image/x-adobe-dng
Exif Byte Order                 : Little-endian (Intel, II)
Make                            : Raspberry Pi
Camera Model Name               : /base/soc/i2c0mux/i2c@1/imx477@1a
Orientation                     : Horizontal (normal)
Software                        : rpicam-still
Subfile Type                    : Full-resolution Image
Image Width                     : 4056
Image Height                    : 3040
Bits Per Sample                 : 16
Compression                     : Uncompressed
Photometric Interpretation      : Color Filter Array
Samples Per Pixel               : 1
Planar Configuration            : Chunky
CFA Repeat Pattern Dim          : 2 2
CFA Pattern 2                   : 2 1 1 0
Black Level Repeat Dim          : 2 2
Black Level                     : 256 256 256 256
White Level                     : 4095
DNG Version                     : 1.1.0.0
DNG Backward Version            : 1.0.0.0
Unique Camera Model             : /base/soc/i2c0mux/i2c@1/imx477@1a
Color Matrix 1                  : 0.8545269369 -0.2382823821 -0.09044229197 -0.1890484985 1.063961506 0.1062747385 -0.01334283455 0.1440163847 0.2593136724
As Shot Neutral                 : 0.4754476844 1 0.413686484
Calibration Illuminant 1        : D65
Strip Offsets                   : 0
Strip Byte Counts               : 0
Exposure Time                   : 1/20
ISO                             : 400
CFA Pattern                     : [Blue,Green][Green,Red]
Image Size                      : 4056x3040
Megapixels                      : 12.3
Shutter Speed                   : 1/20

要找到模拟增益,请将ISO数除以100。

自动白平衡(AWB)算法确定一个单一的校准光源,该光源始终标为 "D65"。

捕捉长时间曝光

要拍摄长时间曝光的图像,请禁用自动曝光/增益控制 (AEC/AGC) 和自动白平衡 (AWB)。否则,这些算法将迫使用户在收敛时等待若干帧。

要禁用这些算法,请为增益和 AWB 提供明确的值。由于长时间曝光已经耗费了大量时间,可以使用 immediate 选项完全跳过预览阶段。

要执行100秒曝光捕获,请运行以下命令:

复制代码
$ rpicam-still -o long_exposure.jpg --shutter 100000000 --gain 1 --awbgains 1,1 --immediate

要查找 Raspberry Pi 官方摄像头的最大曝光时间,请参阅 摄像头硬件规格

创建延时视频

要创建延时视频,请定期捕获静止图像,例如一分钟一次,然后使用应用程序将图片拼接成视频。

使用 rpicam-still 延时模式

要使用内置的延时模式 rpicam-still ,请使用 timelapse 选项。此选项接受一个值,该值表示您希望Raspberry Pi在两次捕获之间等待的时间,以毫秒为单位。

首先,创建一个目录,您可以在其中存储延时照片:

复制代码
$ mkdir timelapse

运行以下命令创建 30 秒钟的延时,每两秒记录一张照片,将输出保存到 image0001.jpgimage0013.jpg 中:

复制代码
$ rpicam-still --timeout 30000 --timelapse 2000 -o timelapse/image%04d.jpg
通过 cron

您还可以使用 cron 自动延时。首先,创建名为 timelapse.sh 的脚本,其中包含以下命令。将Raspberry Pi上的 <username> 占位符替换为您的用户帐户名称:

复制代码
#!/bin/bash
DATE=$(date +"%Y-%m-%d_%H%M")
rpicam-still -o /home/<username>/timelapse/$DATE.jpg

然后,使脚本可执行:

复制代码
$ chmod +x timelapse.sh

创建 timelapse 目录,您将在其中保存延时照片:

复制代码
$ mkdir timelapse

打开您的crontab进行编辑:

复制代码
$ crontab -e

在编辑器中打开文件后,添加以下行以安排每分钟捕获一次图像,将 <username> 占位符替换为您的主要用户帐户的用户名:

复制代码
* * * * * /home/<username>/timelapse.sh 2>&1

保存并退出,您应该会看到以下消息:

复制代码
crontab: installing new crontab

TIP: 要停止为延时拍摄图像,请再次运行 crontab -e 并从crontab中删除上面的行。

将图像拼接在一起

一旦你有了一系列延时照片,你可能想把它们组合成一个视频。使用 ffmpeg 在树莓派上执行此操作。

首先,安装 ffmpeg

复制代码
$ sudo apt install ffmpeg

从包含 timelapse 目录的目录运行以下命令,将JPEG文件转换为mp4视频:

复制代码
$ ffmpeg -r 10 -f image2 -pattern_type glob -i 'timelapse/*.jpg' -s 1280x720 -vcodec libx264 timelapse.mp4

上面的命令使用以下参数:

  • -r 10 :将输出视频的帧率(Hz值)设置为每秒10帧
  • -f image2 :设置 ffmpeg 以从模式指定的图像文件列表中读取
  • -pattern_type glob :使用通配符模式来解释文件名输入
  • -i 'timelapse/*.jpg' :指定输入文件以匹配 timelapse 目录中的JPG文件
  • -s 1280x720 :缩放到720p
  • -vcodec libx264 使用软件x264编码器。
  • timelapse.mp4 输出视频文件的名称。

有关 ffmpeg 选项的更多信息,请在终端中运行 ffmpeg --help

复制代码
$ rpicam-vid --codec libav --libav-format avi --libav-audio --output example.avi

上一篇 -- 树莓派超全系列教程文档--(59)树莓派摄像头rpicam-apps

下一篇 -- 树莓派超全系列教程文档--(60)树莓派摄像头操作命令及使用其二

相关推荐
小锋学长生活大爆炸7 天前
【教程】树莓派驱动 0.96 寸 SSD1315 OLED 屏幕完整指南
单片机·嵌入式硬件·嵌入式·教程·树莓派·oled·屏幕
【ql君】qlexcel20 天前
MIPI简介,DSI、CSI
摄像头·csi·mipi·屏幕·dsi
曦月合一22 天前
树莓派安装jdk、tomcat、vnc、谷歌浏览器开机自启等环境配置
java·tomcat·树莓派
小贺儿开发1 个月前
【MediaPipe】Unity3D 虚拟面具互动演示
unity·人机交互·shader·摄像头·面具·互动·脸部捕捉
小贺儿开发1 个月前
【MediaPipe】Unity3D 指间游鱼互动演示
游戏·unity·人机交互·摄像头·手势识别·互动·康复训练
无垠的广袤1 个月前
【“星睿O6”AI PC开发套件评测】基于 OpenClaw 的物体识别
linux·人工智能·opencv·摄像头·openclaw
天月风沙1 个月前
Betaflight飞控、树莓派RP2350B主控编译教程
linux·单片机·嵌入式硬件·mcu·无人机·树莓派
bu_shuo1 个月前
在线电脑摄像头测试
电脑·浏览器·摄像头
MIXLLRED1 个月前
解决:RealSense D435 在树莓派4B(Ubuntu 22.04 + ROS2 Humble)上的权限与驱动问题完整复盘
linux·ubuntu·树莓派·realsense d400
weixin_426689201 个月前
RP2040和RP2350的laungch文件
树莓派