【SLAM】将realsense-viewer录制的rosbag视频导出成图片序列(RealSense D435)

本文介绍了如何将realsense-viewer录制的rosbag格式的视频导出成图片序列,方便合并成mp4视频或插入到论文中。

本文首发于❄慕雪的寒舍

说明

Intel提供的realsense-viewer软件录制的视频都是rosbag格式的,为了编写论文,需要从录制的视频中截取一两帧作为论文插图,所以需要使用工具把rosbag中的视频导出为图片。

最简单的方式肯定是直接rosplay播放bag里面的视频流然后使用image_view读取视频流然后截图,但是这个方式不太好,因为手动截图非常容易出现分辨率差异(框选的区域不一样),而且rosplay播放视频的时候不能暂停,也不好精确的截到自己想要的那张图片。

更好的方式是使用ros自带的工具把rosbag里面的视频流直接导出成图片序列,避免自己手动截图。在最终导出的图片序列里面选一两个插入到论文里面就ok了。

操作

首先,realsense-viewer录制的视频默认存放在用户的~/Documents文件夹里面,命名格式一般是今天的日期加上一串数字,比如20250331_172324.bag。首先要做的是确定我们需要的视频数据topic名称,使用如下命令查看

bash 复制代码
rostopic list -b example.bag

以我使用的RealSense D435为例,图像topic是下面这俩个,分别对应深度数据和RGB数据。我要的是RGB数据。

复制代码
/device_0/sensor_1/Color_0/image/data
/device_0/sensor_0/Depth_0/image/data

先使用另外一个终端A,开启roscore,然后在终端B里面执行如下命令,工具会在这个命令执行的目录中输出图片序列 。这个命令中使用了extract_images工具,并通过_sec_per_frame指定每0.01秒截取一张图片,通过image:=订阅的topic正是我需要的RGB图像topic。

bash 复制代码
rosrun image_view extract_images \
    _sec_per_frame:=0.01 \
    image:=/device_0/sensor_1/Color_0/image/data

再开启一个终端C,执行rosbag play命令来播放bag文件里面的视频,其中--topics选项用于列出我们想要广播的topic是谁。

bash 复制代码
rosbag play exmaple.bag \
    --topics /device_0/sensor_1/Color_0/image/data

执行之后,extract_images工具就会自动从这个订阅的topic中截取视频流,输出到执行这个命令的PWD里面了,如下所示。图片文件的默认命名格式是frame%04.jpg,工具会自动命名序号。

复制代码
king@ubuntu:~/Documents$ ls images/
frame0000.jpg  frame0164.jpg  frame0328.jpg  frame0492.jpg  frame0656.jpg
frame0001.jpg  frame0165.jpg  frame0329.jpg  frame0493.jpg  frame0657.jpg
...

图片输出结果如下图所示:

注:如果你想把这些图片重新组成一个mp4格式的视频,可以用ffmpeg工具实现。

The end

至此,问题解决。

相关推荐
charlie11451419111 小时前
编译日志:关于编译opencv带有ffmpeg视频解码支持的若干办法
opencv·ffmpeg·音视频·imx6ull·移植教程
批量小王子14 小时前
2025-05-10-FFmepg库裁切有水印的视频
音视频
Java搬砖组长16 小时前
小红书视频无水印下载方法
音视频
eguid_117 小时前
WebRTC流媒体传输协议RTP点到点传输协议介绍,WebRTC为什么使用RTP协议传输音视频流?
java·网络协议·音视频·webrtc·实时音视频
雾江流18 小时前
虚拟现实视频播放器 2.6.1 | 支持多种VR格式,提供沉浸式观看体验的媒体播放器
音视频·软件工程·vr
小虎卫远程打卡app19 小时前
视频编解码学习8之视频历史
学习·音视频·视频编解码
天夏已微凉19 小时前
1.3.2 linux音频PulseAudio详细介绍
linux·音视频
eguid_120 小时前
WebRTC工作原理详细介绍、WebRTC信令交互过程和WebRTC流媒体传输协议介绍
java·音视频·webrtc·实时音视频
追随远方1 天前
Android平台FFmpeg视频解码全流程指南
android·ffmpeg·音视频
程序猿阿伟1 天前
《探索React Native社交应用中WebRTC实现低延迟音视频通话的奥秘》
react native·音视频·webrtc