【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

至此,问题解决。

相关推荐
wwwzhouhui3 小时前
85-dify案例分享-不用等 OpenAI 邀请,Dify+Sora2工作流实测:写实动漫视频随手做,插件+教程全送
人工智能·音视频·sora2
SongYuLong的博客1 天前
ubuntu24.04 实现DLNA音频推送
音视频
浮生如梦_1 天前
图片转视频
图像处理·人工智能·计算机视觉·音视频
胡耀超1 天前
音频降噪技术:从原理到工具的完整指南(scipy librosa noisereduce soundfile pedalboard)
音视频·音频·scipy·降噪·soundfile·noisereduce·pedalboard
零一iTEM1 天前
NS4168输出音频通过ESP32C3测试
c++·单片机·嵌入式硬件·mcu·音视频·智能家居
非凡ghost2 天前
MPC-BE视频播放器(强大视频播放器) 中文绿色版
前端·windows·音视频·软件需求
私人珍藏库2 天前
[Windows] 随手剪-视频合并工具 v0.12多种格式多段视频50多种转场效果
windows·音视频
小钱c72 天前
Python利用ffmpeg实现rtmp视频拉流和推流
python·ffmpeg·音视频
9527华安2 天前
FPGA实现SRIO图像视频传输,基于Serial Rapidlo Gen2,提供6套工程源码和技术支持
图像处理·fpga开发·音视频·srio·xilinx
春末的南方城市2 天前
港大和字节携手打造WorldWeaver:以统一建模方案整合感知条件,为长视频生成领域带来质量与一致性双重飞跃。
人工智能·深度学习·机器学习·计算机视觉·aigc·音视频