ROS-从rosbag中提取图像(带时间戳)

本文详细解析了如何从优快云博客中获取文章详情,包括标题、标签和内容的抓取方法,为开发者提供了实用的代码示例和技巧。
在机器人应用里,ROS(Robot Operating System)是常见框架,而ROS Bag(rosbag)可记录和回放数据流。要使用Python从rosbag提取图片,以下是具体方法及代码示例: 代码示例如下: ```python #coding:utf-8 import roslib; import rosbag import rospy import cv2 from sensor_msgs.msg import Image from cv_bridge import CvBridge from cv_bridge import CvBridgeError path='/home/sczone/raw_data/0214_new/robosense/2022-02-14-10-50-50/back_right_camera/' # 存放图片的位置 class ImageCreator(): def __init__(self): self.bridge = CvBridge() top_lst = [] with rosbag.Bag('/home/sczone/raw_data/0214_new/robosense/2022-02-14-10-50-50/2022-02-14-10-50-50.bag', 'r') as bag: # 要读取的bag文件 for topic, msg, t in bag.read_messages(): if topic == "/rs/back_right_camera/compressed": # 图片topic的名字 cv_image = self.bridge.compressed_imgmsg_to_cv2(msg) # 因为topic是compressed格式的,所以用compressed_imgmsg_to_cv2 timestr = "%.6f" % msg.header.stamp.to_sec() # 时间戳格式转换 image_name = timestr + ".png" cv2.imwrite(path + image_name, cv_image) # 保存 if __name__ == '__main__': try: image_creator = ImageCreator() except rospy.ROSInterruptException: pass ``` 上述代码实现了从rosbag文件中提取图片并保存的功能。代码首先导入必要的库,然后定义了一个`ImageCreator`类,在类的初始化函数中,打开指定的rosbag文件,遍历其中的消息,若消息的话题是指定的图片话题,则将压缩图像消息转换为OpenCV图像格式,并以时间戳命名保存到指定路径。最后,在主程序中创建`ImageCreator`类的实例,执行图片提取操作[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值