利用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系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx