• ROS中的图像数据


    无论是USB摄像头还是RGBD摄像头,发布的图像数据格式多种多样,在处理这些数据之前,我们首先需要了解这些数据的格式。

    二维图像数据

    连接USB摄像头到PC端的USB接口,通过以下命令启动摄像头:

    roslaunch usb_cam usb_cam-test.launch
    
    • 1

    启动成功后,使用以下命令查看当前系统中的图像话题信息

    rostopic info /usb_cam/image_raw
    
    • 1

    在这里插入图片描述
    可以使用以下命令查看该图像消息的详细定义

    rosmsg show sensor_msgs/Image
    
    • 1

    运行结果
    在这里插入图片描述

    该类型图像数据的具体内容如下。

    1)header:消息头,包含图像的序号、时间戳和绑定坐标系。

    2)height:图像的纵向分辨率,即图像包含多少行的像素点,这里使用的摄像头为720。

    3)width:图像的横向分辨率,即图像包含多少列的像素点,这里使用的摄像头为1280。

    4)encoding:图像的编码格式,包含RGB、YUV等常用格式,不涉及图像压缩编码。

    5)is_bigendian:图像数据的大小端存储模式。

    6)step:一行图像数据的字节数量,作为数据的步长参数,这里使用的摄像头为 width×3=1280×3=3840字节。

    7)data:存储图像数据的数组,大小为step×height字节,根据该公式可以算出这里使用的摄像头产生一帧图像的数据大小是:3840×720=2764800字节,即2.7648MB。

    一帧720×1280分辨率的图像数据量就是2.76MB,如果按照30帧/秒的帧率计算,那么一秒钟摄像头产生的数据量就高达82.944MB!这个数据量在实际应用中是接受不了的,尤其是在远程传输图像的场景中,图像占用的带宽过大,会对无线网络造成很大压力。实际应用中,图像
    在传输前往往会进行压缩处理,ROS也设计了压缩图像的消息类型——sensor_msgs/CompressedImage,该消息类型的定义如下图所示:

    在这里插入图片描述

    这个消息类型相比原始图像的定义要简洁不少,除了消息头外,只包含图像的压缩编码格式“format”和存储图像数据的“data”数组。图像压缩编码格式包含JPEG、PNG、BMP等,每种编码格式对数据的结构已经进行了详细定义,所以在消息类型的定义中省去了很多不必要的信息。

    三维点云数据

    在 Kinect数据显示中,rviz订阅camera/depth_registered/points话题后,主界面即可显示三维点云数据。

    那么这种三维点云数据的消息类型是什么呢?可以使用如下命令查看

    rostopic info /camera/depth_registered/points
    
    • 1

    在这里插入图片描述
    该消息类型对应于rviz中Add可视化插件时所选择的插件类型,使用以下命令查看该消息类型的具体结构

    rosmsg show sensor_msgs/PointCloud2
    
    • 1

    在这里插入图片描述

    三维点云的消息定义如下:

    1)height:点云图像的纵向分辨率,即图像包含多少行像素点。

    2)width:点云图像的横向分辨率,即图像包含多少列像素点。

    3)fields:每个点的数据类型。

    4)is_bigendian:数据的大小端存储模式。

    5)point_step:单点的数据字节步长。

    6)row_step:一列数据的字节步长。

    7)data:点云数据的存储数组,总字节大小为row_step×height。

    8)is_dense:是否有无效点。

    点云数据中每个像素点的三维坐标都是浮点数,而且包含图像数据,所以单帧数据量也很大。如果使用分布式网络传输,在带宽有限的前提下,需要考虑能否满足数据的传输要求,或者针对数据进行压缩。

  • 相关阅读:
    【无标题】
    Selenium上传文件有多少种方式?不信你有我全!
    Redis从入门到放弃(7):主从复制
    RocketMQ-RocketMQ部署(Linux、docker)
    【Python】 Python 操作PDF文档
    【Linux】【驱动】设备树中设备节点的挂载
    AXURE RP EXTENSION For Chrome 安装
    【Unity】Unity 欧拉角、四元数、万向节死锁
    充值ChatGPTPLUS开卡平台Fomepay和WildCard选哪个虚拟信用卡(纯分享)
    上个厕所的时间了解链路追踪基本概念
  • 原文地址:https://blog.csdn.net/hai411741962/article/details/133808681