利用rosbag命令将compressed图像数据格式转为raw

2024-01-08 22:18

本文主要是介绍利用rosbag命令将compressed图像数据格式转为raw,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

利用rosbag命令将compressed图像数据格式转为raw

  • 1 kalibr使用compressed图像格式
  • 2 compressed转为raw
  • 3 使用image_view查看compressed图像

最近用了一个新的相机,拿到的数据集图像是经过压缩的compress格式,在使用kalibr标定以及运行SLAM代码的时候发现压缩格式经常遇到问题,在此进行记录.

1 kalibr使用compressed图像格式

参考博客:支持compressed image消息的kalibr,错误TypeError: Conversion is only valid for arrays with 1 or 2 dimensions

修改文件ImageDatasetReader.py中的函数getImage():

    def getImage(self,idx):topic, data, stamp = self.bag._read_message(self.index[idx].position)ts = acv.Time( data.header.stamp.secs, data.header.stamp.nsecs )if data._type == 'mv_cameras/ImageSnappyMsg':if self.uncompress is None:from snappy import uncompressself.uncompress = uncompressimg_data = np.reshape(self.uncompress(np.fromstring(data.data, dtype='uint8')),(data.height,data.width), order="C")elif data._type == 'sensor_msgs/CompressedImage':np_arr = np.fromstring(data.data, np.uint8)img_data_rgb = cv2.imdecode(np_arr, cv2.IMREAD_COLOR)img_data = cv2.cvtColor(img_data_rgb,cv2.COLOR_BGR2GRAY)else:img_data = np.array(self.CVB.imgmsg_to_cv2(data, "mono8"))return (ts, img_data)

2 compressed转为raw

参考博客
https://blog.csdn.net/qq_25458977/article/details/109358577
https://answers.ros.org/question/333064/unable-to-show-depth-cloud-with-compressed-rgb/

我使用的海康相机本身的压缩图像topic名称是含有compressed的,如果直接使用/hikrobot_camera/rgb/compressed话题,会出现警告:
在这里插入图片描述
然后我在第二个网页里找到有人问了这个问题,提到说因为这个指令会自动对在原始topic名称的基础上添加compressed,在republish的时候所以要去掉,如下:

rosrun image_transport republish compressed in:=/hikrobot_camera/rgb raw out:=/hikrobot_camera/rgb

这样得到的/hikrobot_camera/rgb话题就是就是raw类型了:
在这里插入图片描述

3 使用image_view查看compressed图像

rosrun image_view image_view image:=/hikrobot_camera/rgb _image_transport:='compressed'

这篇关于利用rosbag命令将compressed图像数据格式转为raw的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/585013

相关文章

Linux find 命令完全指南及核心用法

《Linuxfind命令完全指南及核心用法》find是Linux系统最强大的文件搜索工具,支持嵌套遍历、条件筛选、执行动作,下面给大家介绍Linuxfind命令完全指南,感兴趣的朋友一起看看吧... 目录一、基础搜索模式1. 按文件名搜索(精确/模糊匹配)2. 排除指定目录/文件二、根据文件类型筛选三、时间

使用mvn deploy命令上传jar包的实现

《使用mvndeploy命令上传jar包的实现》本文介绍了使用mvndeploy:deploy-file命令将本地仓库中的JAR包重新发布到Maven私服,文中通过示例代码介绍的非常详细,对大家的学... 目录一、背景二、环境三、配置nexus上传账号四、执行deploy命令上传包1. 首先需要把本地仓中要

Windows命令之tasklist命令用法详解(Windows查看进程)

《Windows命令之tasklist命令用法详解(Windows查看进程)》tasklist命令显示本地计算机或远程计算机上当前正在运行的进程列表,命令结合筛选器一起使用,可以按照我们的需求进行过滤... 目录命令帮助1、基本使用2、执行原理2.1、tasklist命令无法使用3、筛选器3.1、根据PID

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像

linux打包解压命令方式

《linux打包解压命令方式》文章介绍了Linux系统中常用的打包和解压命令,包括tar和zip,使用tar命令可以创建和解压tar格式的归档文件,使用zip命令可以创建和解压zip格式的压缩文件,每... 目录Lijavascriptnux 打包和解压命令打包命令解压命令总结linux 打包和解压命令打

Java中将异步调用转为同步的五种实现方法

《Java中将异步调用转为同步的五种实现方法》本文介绍了将异步调用转为同步阻塞模式的五种方法:wait/notify、ReentrantLock+Condition、Future、CountDownL... 目录异步与同步的核心区别方法一:使用wait/notify + synchronized代码示例关键

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li