机器视觉(一)——ROS中的图像数据

2023-05-16

机器视觉(一)——ROS中的图像数据

目录

    • 总述
    • 一、二维图像数据
    • 二、三维点云数据

总述

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

一、二维图像数据

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

roslaunch usb_cam usb_cam-test.launch

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

rostopic info /usb_cam/image_raw

从打印的信息中可以看到,图像话题的消息类型是sensor_msgs/Image,这是ROS定义的一种摄像头原始图像的消息类型,可以使用以下命令查看该图像消息的详细定义:

rosmsg show sensor_msgs/Image

该类型图像数据的具体内容如下:
1)hyizheneader:消息头,包含图像的序号、时间戳和绑定坐标系。
2)height:图像的纵向分辨率,即图像包含多少行的像素点,这里使用的摄像头为720.
3)width:图像的横向分辨率,即图像包含多少列的像素点,这里使用的摄像头为1280.
4)encoding:图像的编码格式,包含RGB、YUV等常用格式,不涉及图像压缩编码。
5)is_bigendian:图像数据的大小端存储模式。
6)step:一行图像数据的字节数量,作为数据的步长参数,这里使用的摄像头为width X 3 = 1280 X 3 = 3840字节。
7)data:存储图像数据的数组,大小为step X height字节,根据该公式可以算出这里使用的摄像头产生一帧图像的数据大小是3840 X 720 = 2764800字节,即2.7648MB。
一帧720X1280分辨率的图像数据量就是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

三维点云的消息定义如下:
1)height:点云图像的纵向分辨率,即图像包含多少行像素点。
2)width:点云图像的横向分辨率,即图像包含多少列像素点。
3)fields:每个点的数据类型。
4)is_bigendian:数据的大小端存储模式。
5)point_step:单点的数据字节步长。
6)row_step:一列数据的字节步长。
7)data:点云数据的存储数组,总字节大小为row_step x height
8)is_dense:是否有无效点。
点云数据中每个像素点的三维坐标都是浮点数,而且包含图像数据,所以单帧数据量也很大。如果使用分布式网络传输,在带宽有限的前提下,需要考虑能否满足数据的传输要求,或者针对数据进行压缩。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器视觉(一)——ROS中的图像数据 的相关文章

  • Webots小车与Gampping建图仿真与ORB3算法实践

    此篇博客转自本作者在古月居的博客 https www guyuehome com 34537 前言 在研一的时候 由于XXX项目的需要 其中一项就是需要测试Gmapping建图 自然也要求使用ROS系统 由于之前经常在webots中进行仿真
  • opencv中的merge函数

    文中例子已修改正确 具体原因见评论区 该函数用来合并通道 原型 版本一 void merge const Mat mv size t count OutputArray dst 第一个参数是图像矩阵数组 第二个参数是需要合并矩阵的个数 第三
  • ros 中ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdist

    ros 中ERROR cannot download default sources list from https raw githubusercontent com ros rosdistro master rosdep sources
  • V-REP安装

    小知识 是当前目录 是父级目录 是根目录 1 下载V REP 官网地址 http www v rep eu downloads html 我用ubuntu16 04下载V REP PRO EDU V3 5 0 Linux tar 2 解压安
  • 施努卡:基于深度学习的裂缝检测技术

    不同于传统的裂缝检测方法 基于深度学习的检测方法不需要人工干预 能自主学习有代表性的特征 直接对输入图像的裂缝进行检测 随着深度学习方法在许多应用场景中取得了很好的检测结果 国内众多研究人员也开始把基于深度学习的目标检测模型和语义分割模型用
  • 线速度和角速度

    转自 https baike baidu com item E7 BA BF E9 80 9F E5 BA A6 1532652 fr aladdin https baike baidu com item E8 A7 92 E9 80 9F
  • GG-CNN代码学习

    文章目录 1 源码网址 https github com dougsm ggcnn 2 数据集格式转化 下载后的康奈尔数据集 解压完之后里面的格式 里面的 tiff图像通过 txt文件转化得到 python m utils dataset
  • Ubuntu16.04安装ROS Kinetic详细步骤

    文章目录 ROS安装 配置Ubuntu软件仓库 设置sources list 设置密钥 更新Debian软件包索引 安装ROS 初始化 rosdep 环境配置 构建工厂依赖 测试安装 开发环境 ROS安装 ROS Kinetic只支持Wil
  • Hypervisor介绍及在智能驾驶的应用

    转自Hypervisor 智能座舱和智能驾驶融合的关键技术 腾讯新闻
  • 清华大学开源软件镜像站网址

    清华大学 TUNA 协会原名清华大学学生网管会 注册名清华大学学生网络与开源软件协会 是由清华大学网络技术和开源软件爱好者 技术宅组成的团体 现阶段向校内外提供开源软件镜像等服务 清华大学 TUNA 协会清华大学 TUNA 协会原名清华大学
  • 机器视觉基础

    机器视觉基础 什么是机器视觉 机器视觉常见的应用 机器视觉常用的概念 硬件选型 控制器 相机 镜头 附件选型 什么是机器视觉 机器视觉常见的应用 机器视觉常用的概念 快门时间越短 图片越暗淡 光圈小了 照片会暗淡 硬件选型的时候考虑物距 W
  • opencv的安装、配置及所遇问题(Ubuntu16.04 + OpenCV3.4.2 + Python3.6)

    安装opencv对好多首次安装的开发者来说都是一场勇气和运气的较量 同样也是我在安装Ubuntu下安装过的众多软件包中最为波折的一款 在此记录安装过程中出现的各种error 幸运女神眷顾的安装顺序 1 安装ubuntu下的依赖项 sudo
  • ROS 第四天 ROS中的关键组件

    1 Launch文件 通过XML文件实现多节点的配置和启动 可自动启动ROS Master
  • (ros/qt报错) FATAL: ROS_MASTER_URI is not defined in the environment

    安装qt之后 明明打开roscore但是qt运行跟ros有关的节点时报错 FATAL 1450943695 306401842 ROS MASTER URI is not defined in the environment Either
  • ROS1 ROS2学习

    ROS1 ROS2学习 安装 ROS ROS1 ROS2 命令行界面 ROS2 功能包相关指令 ROS 命令行工具 ROS1 CLI工具 ROS2 CLI工具 ROS 通信核心概念 节点 Node 节点相关的CLI 话题 Topic 编写发
  • roslaunch error: ERROR: cannot launch node of type

    今天在因为github上有个之前的包更新了 重新git clone后出现了一个问题 ERROR cannot launch node of type crazyflie demo controller py can t locate nod
  • catkin_make后找不到ROS包

    我根据 ROS 的 Wiki 页面创建了一个 ROS 工作区 我还使用创建了一个包catkin create pkg在我刚刚创建的工作区下 然后 按照 ROS Wiki 中的步骤使用以下命令构建包catkin make 构建包后 我插入命令
  • 可以在catkin工作区之外创建ROS节点吗?

    我想在catkin工作区之外创建一个ROS发布者节点 可以创建吗 当然可以 像对待任何其他 cpp 库或 python 包一样对待 ROS 在Python中你必须保留PYTHONPATH环境变量指向ros包 opt ros kinetic
  • ROS 问题:libQt5Core.so.5:无法打开共享对象文件:没有这样的文件或目录

    当我跑步时 rosrun turtlesim turtlesim node 在 Ubuntu 上 我收到以下消息 opt ros noetic lib turtlesim turtlesim node 加载共享库时出错 libQt5Core
  • 如何从里程计/tf数据获取投影矩阵?

    我想将视觉里程计的结果与 KITTI 数据集提供的事实进行比较 对于地面中的每一帧 我都有一个投影矩阵 例如 1 000000e 00 9 043683e 12 2 326809e 11 1 110223e 16 9 043683e 12

随机推荐