rosbag2img.py
时间: 2025-01-06 20:49:16 浏览: 9
`rosbag2img.py` 是一个用于从 ROS bag 文件中提取图像并保存为图片文件的 Python 脚本。ROS(Robot Operating System)是一个为机器人开发提供服务的开源框架,而 bag 文件是 ROS 中用于记录和回放传感器数据的消息记录文件。
`rosbag2img.py` 的主要功能包括:
1. **读取 ROS bag 文件**:该脚本能够读取指定路径下的 ROS bag 文件。
2. **提取图像消息**:从 bag 文件中提取出图像类型的消息(如 `/camera/image_raw` 主题)。
3. **保存图像**:将提取出的图像消息保存为常见的图片格式(如 PNG、JPEG)。
以下是一个简单的示例代码,展示了如何使用 `rosbag2img.py`:
```python
import rosbag
from sensor_msgs.msg import Image
import cv2
import numpy as np
def rosbag_to_images(bag_path, output_dir):
bag = rosbag.Bag(bag_path)
for topic, msg, t in bag.read_messages():
if topic == '/camera/image_raw':
cv_image = bridge.imgmsg_to_cv2(msg, desired_encoding='passthrough')
cv2.imwrite(f'{output_dir}/{t.secs}_{t.nsecs}.png', cv_image)
bag.close()
if __name__ == '__main__':
bag_path = 'path_to_your_bag_file.bag'
output_dir = 'output_images'
rosbag_to_images(bag_path, output_dir)
```
在这个示例中,`bridge` 是一个用于转换 ROS 消息到 OpenCV 图像的桥梁对象。你需要先安装 `cv_bridge` 包,并在代码中导入它。
阅读全文