RealSense .bag文件彩色图,深度图提取

代码

import roslib
import rosbag
import rospy
import cv2
import os
from sensor_msgs.msg import Image
from cv_bridge import CvBridge
from cv_bridge import CvBridgeError rgb_path = './rgb/'# absolute path of extracted rgb images
depth_path = './depth/'# absolute path of extracted depth images
bridge = CvBridge()
with rosbag.Bag('20230308_194638.bag', 'r') as bag: # path for the bag
for topic,msg,t in bag.read_messages():
if topic == "/device_0/sensor_0/Depth_0/image/data": #topic different from devices
cv_image = bridge.imgmsg_to_cv2(msg, "mono16") #Z16对应 mono16
timestr = "%.8f" % msg.header.stamp.to_sec()
image_name = timestr + '.png'
cv2.imwrite(depth_path + image_name, cv_image)
# print(depth_path + image_name)
if topic == "/device_0/sensor_1/Color_0/image/data": #topic different from devices
cv_image = bridge.imgmsg_to_cv2(msg, "bgr8") # 尤其注意这个编码
timestr = "%.8f" % msg.header.stamp.to_sec()
image_name = timestr + '.png'
cv2.imwrite(rgb_path + image_name, cv_image)

需要注意的是topic,这个不同的设备可能有所区别;还有rgb的编码应该是 bgr8,深度图的编码 mono16

相关库的安装

rosbag

pip install --extra-index-url https://rospypi.github.io/simple/ rosbag
pip install roslz4 --extra-index-url https://rospypi.github.io/simple/

cv_bridge

  1. 下载源码https://codeload.github.com/ros-perception/vision_opencv/zip/refs/heads/noetic

  2. cd至cv_bridge文件夹

  3. 然后命令行安装

    python setup.py install

sensor_image and geometry_msgs

pip install sensor_msgs --extra-index-url https://rospypi.github.io/simple/
pip install geometry_msgs --extra-index-url https://rospypi.github.io/simple/

rospy

pip install -i https://pypi.douban.com/simple rospy

cv_bridge.boost

在这里下载 https://github.com/rospypi/simple/raw/any/cv-bridge/cv_bridge-1.13.0.post0-py2.py3-none-any.whl

pip install cv_bridge-1.13.0.post0-py2.py3-none-any.whl

参考

https://www.cnblogs.com/yunhgu/p/15785460.html

【Windows配置三】Python3.6安装rosbag

RealSense .bag文件彩色图,深度图提取的更多相关文章

  1. 利用ROS工具从bag文件中提取图片

    bag文件是ROS常用的数据存储格式,因此要从bag文件中提取数据就需要了解一点ROS的背景知识. 1. 什么是ROS及其优势 ROS全称Robot Operating System,是BSD-lic ...

  2. 从ROS bag文件中提取图像

    从ROS bag文件中提取图像 创建launch文件,如下: export.launch <launch> <node pkg="rosbag" type=&qu ...

  3. Matlab 读取 ROS bag 文件指定消息数据

    近期在接触Ros的时候遇到了一些问题,如何将rosbag中的信息提取出来进行进一步处理呢? 如三维点位置信息,视频信息(如果有的话)等等. 我采用的是MATLAB 读取bag信息 filepath=f ...

  4. 【ros】.bag文件

    Bags are typically created by a tool like rosbag They store the serialized message data in a file as ...

  5. 脚本:截取euroc数据集bag文件的其中一段

    脚本:截取euroc数据集bag文件的其中一段 功能:截取euroc数据集bag中的一段供算法测试 python脚本 #!/usr/bin/env python # ----------------- ...

  6. 【转帖】Linux文件夹对比并提取的差分文件技巧-rsync的妙用

    Linux文件夹对比并提取的差分文件技巧-rsync的妙用 [日期:2016-02-13] 来源:oschina.net  作者:mengshuai [字体:大 中 小] https://www.li ...

  7. 如何使用Keka for Mac提取受密码保护的文件?用Keka提取文件的格式

    如何使用Keka for Mac提取受密码保护的文件?keka Mac是很多人喜欢的压缩解压工具,以小巧,使用简单,界面简洁受到很多Mac用户的喜欢,你还可以使用它提取文件,下面我们就来介绍一下关于用 ...

  8. perl 多fasta文件匹配,并提取匹配文件第一条序列

    目标如题,有多个fasta文件和一个文件名列表,将文件名列表中包含的文件匹配出来并提取第一条序列合并成一个fa文件. 这个采用perl实现,用法和代码如下: 1 #!/usr/bin/perl -w ...

  9. <realsense D400>同步采集深度图和彩色图

    利用深度相机采集深度图和彩色图会面临一个问题,如何实现同步采集数据? 以下是我搜集到的两点方法: 1)高翔博士提到他的orbslam2教程有这么一步工作,具体目录为 example/RGBD/. (等 ...

  10. Word,Excel,pdf,txt等文件上传并提取内容

    近期项目需求:1.要用到各种文件上传,下载. 2.并对文件进行搜索. 3.仅仅要文件里包括有搜索的内容,所有显示出来. 今天正好有时间整理一下,方便以后阅读,及对须要用到的朋友提供微薄之力.首先在实现 ...

随机推荐

  1. Python并发总结:多线程、多进程与异步编程

    随着多核的发展,Python中并发编程也变得越来越广泛且发展很快. 一方面,Python提供了多种并发编程工具. 比如,传统的多线程,通过threading模块方便地创建和管理线程,可用于I/O密集型 ...

  2. 『AutoHotkey』 效率提升「脚本集」

    AutoHotkey 效率提升脚本集 一些实用的 AutoHotkey 脚本示例,这些可以显著提升工作效率. #Requires AutoHotkey v2.0 ; 1. 快速启动常用程序 ^!n:: ...

  3. 使用C#构建一个论文总结AI Agent

    前言 我觉得将日常生活中一些简单重复的任务交给AI Agent,是学习构建AI Agent应用一个很不错的开始.本次分享我以日常生活中一个总结论文的简单任务出发进行说明,希望对大家了解AI Agent ...

  4. ORACLE存储过程,函数,包,游标

    1.  PL/SQL语句块PL/SQL语句块只适用于Oracle数据库,使用时临时保存在客户端,而不是保存在数据库.基本语法: declare 变量声明.初始化 begin 业务处理.逻辑代码 exc ...

  5. SSL 和 TLS

    转载:链接1   链接2 TLS和SSL SSL(Secure Sockets Layer)安全套接层协议 TLS(Transport Layer Security)传输层安全性协议 最新版本的TLS ...

  6. ABC237

    ABC237 F 题目大意 求长度为 \(n\) 且最长上升子序列长度恰好为 \(3\) 的序列 \(a\) 的个数(\(1 \leq a_i \leq m\)). 解题思路 不难判断这道题是一道线性 ...

  7. Rust多线程中安全的使用变量

    在Rust语言中,一个既引人入胜又可能带来挑战的特性是闭包如何从其所在环境中捕获变量,尤其是在涉及多线程编程的情境下. 如果尝试在不使用move关键字的情况下创建新线程并传递数据至闭包内,编译器将很可 ...

  8. h5使用vue-photo-preview 做全屏预览

    h5页面使用全屏预览 最近需要在微信小程序中跳转到h5页面 在h5页面中需要进行图片预览展示 由于没有使用第三方的组件库. 只能手写,但是时间很紧张. 所以只能够寻找第三方的插件 vue-photo- ...

  9. 小程序uni-app中uview中select选择器第二次无法选中设置的默认值

    <u-select v-model="subjectFlag" title="选择科目" @confirm="okSubjecthander&q ...

  10. 天翼云GPU云主机:共享信息技术与虚拟机的完美融合

    本文分享自天翼云开发者社区<天翼云GPU云主机:共享信息技术与虚拟机的完美融合>,作者:不知不觉 在云计算领域,GPU云主机已经成为了一个备受瞩目的焦点.它的出现改变了传统IT架构的方式, ...