Skip to main content
qrb_ros_colorspace_convert 示例应用在 NV12 和 RGB888 格式之间进行转换。 Qualcomm 的智能设备(例如 Qualcomm DragonwingTM IQ-9075 Evaluation Kit)使用 NV12 作为默认的图像色彩空间转换格式。然而,大多数 ROS 2 图像处理节点期望 RGB888。使用 qrb_ros_colorspace_convert 来桥接这两者。qrb_ros_colorspace_convert 示例应用实现了以下功能:
  • 通过 ROS 节点 API 将 NV12 转换为 RGB888。
  • 通过 ROS 节点 API 将 RGB888 转换为 NV12。
  • 接受并返回 dmabuf 文件描述符,以便共享缓冲区而不是复制。
  • 通过 QRB ROS 传输发送和接收图像。
  • 通过 OpenGL ES 在 GPU 上运行转换。

qrb_ros_colorspace_convert 的流水线流程

图:qrb_ros_colorspace_convert 的流水线流程

qrb_ros_colorspace_convert 流水线中使用的 ROS 节点

qrb_ros_colorspace_convert 流水线中使用的 ROS topic

前提条件

开箱即用运行 qrb_ros_colorspace_convert

1

设置运行环境

ROS_DOMAIN_ID 的取值范围:[0, 232]
SSH Session
2

运行示例 qrb_ros_colorspace_convert

SSH Session
结果要确认转换效果,请比较输入主题和输出主题的编码:
SSH Session
这两个命令会报告不同的编码 — 根据你选择的方向,一个是 NV12,另一个是 RGB8。