建设网站投资多少钱,整站优化服务,免费杂志排版软件,保定网站建设与seo无论是USB摄像头还是RGBD摄像头#xff0c;发布的图像数据格式多种多样#xff0c;在处理这些数据之前#xff0c;我们首先需要了解这些数据的格式。 二维图像数据
连接USB摄像头到PC端的USB接口#xff0c;通过以下命令启动摄像头#xff1a;
roslaunch usb_cam usb_ca… 无论是USB摄像头还是RGBD摄像头发布的图像数据格式多种多样在处理这些数据之前我们首先需要了解这些数据的格式。 二维图像数据
连接USB摄像头到PC端的USB接口通过以下命令启动摄像头
roslaunch usb_cam usb_cam-test.launch启动成功后使用以下命令查看当前系统中的图像话题信息
rostopic info /usb_cam/image_raw可以使用以下命令查看该图像消息的详细定义
rosmsg show sensor_msgs/Image运行结果
该类型图像数据的具体内容如下。
1header消息头包含图像的序号、时间戳和绑定坐标系。
2height图像的纵向分辨率即图像包含多少行的像素点这里使用的摄像头为720。
3width图像的横向分辨率即图像包含多少列的像素点这里使用的摄像头为1280。
4encoding图像的编码格式包含RGB、YUV等常用格式不涉及图像压缩编码。
5is_bigendian图像数据的大小端存储模式。
6step一行图像数据的字节数量作为数据的步长参数这里使用的摄像头为 width×31280×33840字节。
7data存储图像数据的数组大小为step×height字节根据该公式可以算出这里使用的摄像头产生一帧图像的数据大小是3840×7202764800字节即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该消息类型对应于rviz中Add可视化插件时所选择的插件类型使用以下命令查看该消息类型的具体结构
rosmsg show sensor_msgs/PointCloud2三维点云的消息定义如下
1height点云图像的纵向分辨率即图像包含多少行像素点。
2width点云图像的横向分辨率即图像包含多少列像素点。
3fields每个点的数据类型。
4is_bigendian数据的大小端存储模式。
5point_step单点的数据字节步长。
6row_step一列数据的字节步长。
7data点云数据的存储数组总字节大小为row_step×height。
8is_dense是否有无效点。
点云数据中每个像素点的三维坐标都是浮点数而且包含图像数据所以单帧数据量也很大。如果使用分布式网络传输在带宽有限的前提下需要考虑能否满足数据的传输要求或者针对数据进行压缩。