当前位置: 首页 > news >正文

相机--相机标定实操

教程

camera_calibration移动画面示例

usb_cam使用介绍和下载

我使用的是USB相机,所以直接使用ros的usb_cam功能包驱动相机闭关获取实时图像,然后用ros的camera_calibration标定相机。

查询摄像机的信息

v4l2-ctl -d 0 --all的作用

命令详解:

  • v4l2-ctl:这是 V4L2 的命令行控制工具,属于 v4l-utils 软件包。
  • -d 0:指定设备节点 /dev/video0-d 表示 device,后面的数字是设备索引号,例如:
    • /dev/video0 对应索引 0,
    • /dev/video1 对应索引 1,依此类推。
  • --all:显示该设备的所有可用信息,包括:
    • 设备驱动信息
    • 支持的视频格式
    • 当前设置的视频格式
    • 支持的帧率
    • 控制项(如亮度、对比度、饱和度等)
    • 流媒体状态等

我的设备:

v4l2-ctl -d 0 --all
Driver Info:Driver name      : uvcvideoCard type        : SDYH-8P0P: SDYH-8P0PBus info         : usb-xhci-hcd.2.auto-1.1Driver version   : 6.1.83Capabilities     : 0x84a00001Video CaptureMetadata CaptureStreamingExtended Pix FormatDevice CapabilitiesDevice Caps      : 0x04200001Video CaptureStreamingExtended Pix Format
Media Driver Info:Driver name      : uvcvideoModel            : SDYH-8P0P: SDYH-8P0PSerial           : Bus info         : usb-xhci-hcd.2.auto-1.1Media version    : 6.1.83Hardware revision: 0x00000823 (2083)Driver version   : 6.1.83
Interface Info:ID               : 0x03000002Type             : V4L Video
Entity Info:ID               : 0x00000001 (1)Name             : SDYH-8P0P: SDYH-8P0PFunction         : V4L2 I/OFlags            : defaultPad 0x01000007   : 0: SinkLink 0x02000010: from remote pad 0x100000a of entity 'Extension 3' (Video Pixel Formatter): Data, Enabled, Immutable
Priority: 2
Video input : 0 (Input 1: ok)
Format Video Capture:Width/Height      : 1920/1080Pixel Format      : 'MJPG' (Motion-JPEG)Field             : NoneBytes per Line    : 0Size Image        : 4147200Colorspace        : sRGBTransfer Function : Rec. 709YCbCr/HSV Encoding: ITU-R 601Quantization      : Default (maps to Full Range)Flags

 Driver Info(驱动信息)

Driver Info:Driver name      : uvcvideoCard type        : SDYH-8P0P: SDYH-8P0PBus info         : usb-xhci-hcd.2.auto-1.1Driver version   : 6.1.83Capabilities     : 0x84a00001Video CaptureMetadata CaptureStreamingExtended Pix FormatDevice CapabilitiesDevice Caps      : 0x04200001Video CaptureStreamingExtended Pix Format
  • Driver name:使用的内核驱动名称,这里是 uvcvideo,表示这是一个支持 USB Video Class (UVC) 的设备。
  • Card type:设备型号,这里是摄像头的名字:SDYH-8P0P
  • Bus info:设备连接的总线位置,这里是通过 USB 接口连接的。
  • Driver version:驱动程序版本号,这里是 Linux 内核版本 6.1.83。
  • Capabilities:设备能力位掩码,表示该设备支持的功能:
    • Video Capture:可以捕获视频流。
    • Metadata Capture:支持元数据(如时间戳等)。
    • Streaming:支持流式传输。
    • Extended Pix Format:支持扩展像素格式。
    • Device Capabilities:支持查询设备能力。
  • Device Caps:设备接口的能力,比 Capabilities 更细粒度,这里与上面类似。

 Media Driver Info(媒体驱动信息)

Media Driver Info:Driver name      : uvcvideoModel            : SDYH-8P0P: SDYH-8P0PSerial           : Bus info         : usb-xhci-hcd.2.auto-1.1Media version    : 6.1.83Hardware revision: 0x00000823 (2083)Driver version   : 6.1.83
  • Model:设备型号,同上。
  • Serial:序列号,这里为空,表示未提供。
  • Media version:媒体框架的版本号。
  • Hardware revision:硬件版本号(十六进制),可用于识别不同批次硬件。
  • Driver version:驱动版本号

 Interface Info(接口信息)

Interface Info:ID               : 0x03000002Type             : V4L Video
  • ID:接口唯一标识符。
  • Type:接口类型,这里是标准的 V4L2 视频接口

 Entity Info(实体信息)

Entity Info:ID               : 0x00000001 (1)Name             : SDYH-8P0P: SDYH-8P0PFunction         : V4L2 I/OFlags            : defaultPad 0x01000007   : 0: SinkLink 0x02000010: from remote pad 0x100000a of entity 'Extension 3' (Video Pixel Formatter): Data, Enabled, Immutable
  • Entity:是 Media Framework 中的一个概念,代表一个功能模块(比如传感器、编码器等)。
  • Function:这个实体的功能是作为 V4L2 输入/输出设备。
  • Pad:表示实体的输入/输出端口。Sink 表示这是输入端口。
  • Link:表示与其他实体之间的连接关系,这里是来自另一个实体“Extension 3”的输出端口的数据链路,且为启用状态。

Format Video Capture(当前视频采集格式)

这是重点

Format Video Capture:Width/Height      : 1920/1080Pixel Format      : 'MJPG' (Motion-JPEG)Field             : NoneBytes per Line    : 0Size Image        : 4147200Colorspace        : sRGBTransfer Function : Rec. 709YCbCr/HSV Encoding: ITU-R 601Quantization      : Default (maps to Full Range)Flags
  • Width/Height:当前设置的图像分辨率,这里是 1920×1080。
  • Pixel Format:当前像素格式为 'MJPG',即 Motion JPEG,这是一种压缩格式,常用于摄像头以减少带宽需求。
  • Field:场模式,None 表示非隔行扫描(逐行扫描)。
  • Bytes per Line:每行字节数,对于 MJPG 格式通常为 0,因为它是压缩格式。
  • Size Image:一帧图像的大小(字节),这里是 1920×1080×(压缩后平均约 2B) ≈ 4MB。
  • Colorspace:色彩空间,这里是 sRGB
  • Transfer Function:传输函数,这里是 Rec. 709(标准伽马曲线)。
  • YCbCr Encoding:色度编码方式,这里是 ITU-R BT.601(适用于标清视频)。
  • Quantization:量化方式,Default (Full Range) 表示亮度值范围为 0~255(而不是 16~235 的 TV 范围)。
  • Flags:格式标志,目前为空。

查看相机支持的像素格式

v4l2-ctl -d 0 --list-formats

问题

swscaler @ 0xaaaaf438c7e0] No accelerated colorspace conversion found from yuv422p to rgb24.

硬件加速不可用:你的系统可能缺少必要的硬件加速支持或驱动程序,无法提供从 YUV 到 RGB 的快速转换。

意味着 FFmpeg 在尝试将 YUV422P 格式的图像转换为 RGB24 格式时,没有找到任何硬件加速的方法来进行这个颜色空间转换。因此,它只能使用软件方式来完成这一任务,这通常会导致更高的 CPU 使用率,而且音频话题发送频率慢。

YUV 到 RGB 转换的需求:当你使用 usb_cam 节点以原始像素格式(如 YUYV 或 YUV422P)读取摄像头数据时,ROS 需要将其转换为更常用的 RGB 格式以便进一步处理。如果没有硬件加速选项可用,这个转换过程将由 CPU 执行。

FFmpeg:

这是一个命令行工具,用于格式转换、裁剪、合并、缩放等操作。它可以将音频和视频数据从一种格式转换为另一种,并且支持大量的编解码器和文件格式。

本质上就是具有音频存储和发送格式转换一套代码。

相关文章:

  • Java 中创建线程主要有三种方式
  • 洛谷 单源最短路径 Dijkstra算法+优先队列
  • 华为云Flexus+DeepSeek征文|Flexus云服务器单机部署+CCE容器高可用部署快速搭建生产级的生成式AI应用
  • 如何通过RL真正提升大模型的推理能力?NVIDIA提出长期强化学习训练框架ProRL
  • 通过模型文件估算模型参数量大小
  • 数据湖是什么?数据湖和数据仓库的区别是什么?
  • vscode中无法使用npm node
  • STM32的ADC简介
  • 51单片机基础部分——数码管显示
  • 解决idea编译运行项目时间长的问题
  • 【学习笔记】TCP 与 UDP
  • 【映射】2024-睿抗-AcWing 5834. 谁进线下了?
  • go语言的锁
  • echarts使用graph、lines实现拓扑,可以拖动增加effect效果
  • Kafka入门- 基础命令操作指南
  • P1064 [NOIP 2006 提高组] 金明的预算方案——依赖背包
  • k8s热更新-subPath 不支持热更新
  • 界面组件DevExpress WPF中文教程:Grid - 如何识别行和卡片?
  • 数据结构(7)—— 二叉树(1)
  • 微信小程序动态组件加载的应用场景与实现方式
  • 网站关键词的优化在哪做/电商营销的策略与方法
  • 成都市那里有网站建设制作公司/设计本网站
  • 网站开发小结/廊坊关键词排名优化
  • 汉语国际网站建设/外贸海外推广
  • 长沙设计网站排名/电子网址怎么创建
  • 自己建网站做那个模块好/海外aso优化