精华内容
下载资源
问答
  • rosbag提取图片和数据

    千次阅读 2020-09-05 09:40:32
    目录从rosbag提取图片和数据1 提取图片1.1 用launch文件提取图片1.1.1 安装工具(一般不需要)1.1.2 直接创建roslaunch文件1.1.3 运行launch文件1.1.4 转移提取的文件1.1.5 批量修改文件名1.2 用Python提取图片2 ...

    从rosbag中提取图片和数据

    本文只针对rosbag中包含了图片和数字(可以有多个topic),并需要分别提取不同的数据的情况。提取图片和数据分别介绍两种方法,一种是比较麻烦的方法,一种是利用Python写脚本直接提取。

    1 提取图片

    1.1 用launch文件提取图片

    这种方法比较麻烦,提取后图片名是序号。这部分内容可以参考以下链接:
    https://blog.csdn.net/tlglove326/article/details/105385208

    1.1.1 安装工具(一般不需要)

       roscd image_view
       rosmake image_view
       sudo apt-get install mjpegtools
    

    1.1.2 直接创建roslaunch文件

    先cd到rosbag所在文件夹,查看topic名称:

       rosbag info xx.bag
    

    创建ros laungh 文件,例如本文命名为:export.launch,文件内容如下:

        <launch>
             <node pkg="rosbag" type="play" name="rosbag" args="-d 2 $(find image_view)/test.bag"/>
             <node name="extract" pkg="image_view" type="extract_images" respawn="false" output="screen" cwd="ROS_HOME">
               <remap from="image" to="/camera/image_raw"/>
             </node>
        </launch>
    

    注意只有两个地方需要修改:
    (1)$(find image_view)/test.bag处修改为rosbag的路径
    (2)camera/image_raw是查看的topic的名字

    1.1.3 运行launch文件

    打开一个终端运行

       roscore
    

    打开另一个终端,cd到export.launch所在路径下,运行:

       roslaunch export.launch
    

    1.1.4 转移提取的文件

    所提取的图片在~/.ros路径下,将其转移到目标文件中,如:

       cd ~
       mkdir image
       mv ~/.ros/*.jpg ~/image
    

    1.1.5 批量修改文件名

    提取之后图片的名字都是按照帧的顺序进行命名的,需要修改一下,这个网上有很多方法,这里不再赘述。

    1.2 用Python提取图片

    这种方法一步到位,操作简单
    直接运行下面链接中的Python代码即可:
    https://blog.csdn.net/qq_22059843/article/details/103018216?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-3-103018216.nonecase
    注意代码中有三个地方需要修改,包的地址/包的名称/目标文件夹。具体代码如下:

    #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='image/' #存放图片的位置
    class ImageCreator():
    
    
       def __init__(self):
           self.bridge = CvBridge()
           with rosbag.Bag('stat.bag', 'r') as bag:   #要读取的bag文件;
               for topic,msg,t in bag.read_messages():
                   if topic == "/usb_cam/image_raw":  #图像的topic;
                           try:
                               cv_image = self.bridge.imgmsg_to_cv2(msg,"bgr8")
                           except CvBridgeError as e:
                               print e
                           timestr = "%.6f" %  msg.header.stamp.to_sec()
                           #%.6f表示小数点后带有6位,可根据精确度需要修改;
                           image_name = timestr+ ".png" #图像命名:时间戳.jpg
                           cv2.imwrite(path+image_name, cv_image)  #保存;
    
    
    if __name__ == '__main__':
    
       #rospy.init_node(PKG)
    
       try:
           image_creator = ImageCreator()
       except rospy.ROSInterruptException:
           pass
    

    2 提取数据为csv或txt格式

    这个比较简单,两种方法都很简单

    2.1 命令行提取

    2.1.1 查看topic信息

    rosbag info xx.bag
    

    2.1.2 转换为csv格式

    rostopic echo -b xxx.bag -p /topic > xxx.csv(或.txt)都可以
    

    【注意】/topic是话题名称,xxx.csv是被转换成的名称,这两个地方需要修改

    2.2 使用Python一次性从rosbag中提取多个csv文件

    具体参考下面的链接:
    https://zhuanlan.zhihu.com/p/97148509

    3 关于同步

    注意,上述方法只能从原rosbag文件中提取出原本的topic,但是实际使用的过程中发现,尤其是当rosbag中包含多个topic的时候(比如多传感器数据),我们实际关心的是如何能够直接提取出同步好的图片和数据。这个需要用到Ros自带的时间同步滤波器,具体参见我的Github和另一篇博客:
    github : https://github.com/KatelynLiu/SynMultiSensors
    博客 : https://blog.csdn.net/weixin_43977894/article/details/108423854

    转载请声明出处

    展开全文
  • 又是一个深夜,这是一个除夕的凌晨,我已经在csdn上找了很多用于从rosbag提取图片的方法,但毫无例外都报错了。 主要是因为我这部分是CompressedImage类型,与无压缩的图片存在一定的差别。于是乎,我打开了wiki...

    这篇文章主要是用launch提取,会出现较多的bug,遗漏很多帧数据,因此建议参考本篇文章:https://blog.csdn.net/loveSIYU/article/details/113830289 利用python脚本文件进行提取。

    又是一个深夜,这是一个除夕的凌晨,我已经在csdn上找了很多用于从rosbag中提取图片的方法,但毫无例外都报错了。

    主要是因为我这部分是CompressedImage类型,与无压缩的图片存在一定的差别。于是乎,我打开了wiki的ros社区(rosbag/Tutorials/Exporting image and video data - ROS Wiki),寻找方法。

    这一部分是进行一下软件的安装设置,主要是为了安装mjpegtools,之前一直没安装成功,主要是缺少1,2两条指令。

    代码附在下面,拿去粘贴:

    roscd image_view
    rosmake image_view --rosdep-install
    sudo aptitude install mjpegtools
    
    For newer versions :
    
    roscd image_view
    rosmake image_view
    sudo apt-get install mjpegtools

    这一部分的代码主要是用于给无压缩,即topic不是CompressedImage的bag进行提取的,但网络上好多为解决的问题都是因为用错了代码。

    <launch>
      <node pkg="rosbag" type="play" name="rosbag" required="true" args="$(find image_view)/test.bag"/>
      <node name="extract" pkg="image_view" type="extract_images" respawn="false" required="true" output="screen" cwd="ROS_HOME">
        <remap from="image" to="/camera/image_raw"/>
      </node>
    </launch>

    $(find image_view)/test.bag和/camera/image_raw两个都应该要修改成个人电脑中相应的路径和topic。

    如果不是CompressedImage,使用 roslaunch export.launch 就可以进行提取。

    然而......

    还是报错,于是我继续向后面看。

    文章出现“If your bag file contains compressed images for example on /camera/image_raw/compressed it will be necessary for you to decompress the images before exporting.”

    我欣喜若狂,于是按照后面的介绍,小心翼翼的修改,先在当前目录下用终端输入

    rosrun image_transport republish compressed in:=camera/image_raw raw out:=camera_out/image
    
    //camera/image_raw raw是要修改的topic

    然后安装文章中的这句话,将launch文件中的相应内容进行了修改。

    <remap from="image" to="/camera_out/image"/>

    保存后运行launch文件,发现文件开始提取,最终提取成功。 

    总结,这一次还是官方文档帮了我不少忙,所以以后我遇到问题如果实在没有找到解决方案,我一定会再去看官方文档,即使是英文的我也不会怕!

     

    展开全文
  • rosbag提取图片

    2021-07-03 11:22:33
    创建python文件,代码见链接:https://github.com/calmelo/Extract_rosbag 注意代码中有三个地方需要修改,包的地址/包的名称/目标文件夹。

    创建python文件,代码见链接:https://github.com/calmelo/Extract_rosbag
    注意代码中有三个地方需要修改,包的地址/包的名称/目标文件夹。

    展开全文
  • Ros Bag文件中提取图片

    2020-04-08 13:16:29
    先安装工具 1 roscd image_view 2 rosmake image_view 3 sudo apt-get install mjpegtools #find image path in bag >rosrun info xx.bag ...#write ros launch >vim export.launch <launch> ...
    先安装工具
    
       1 roscd image_view
       2 rosmake image_view
       3 sudo apt-get install mjpegtools
    #find image topics
    >rosbag info xx.bag
    
    #write ros launch
    >vim export.launch
    
    <launch>
        <node pkg="rosbag" type="play" name="rosbag" required="true" args="PATH/xx.bag"/>
            <node name="extract" pkg="image_view" type="extract_images" respawn="false" required="true" output="screen" cwd="ROS_HOME">
    <!-- to image topic -->
            <remap from="image" to="/cam0/image_raw"/>
        </node>
    </launch>
    
    #mv export images from ros_home
    >mv ~/.ros/frame*  xxx   
    

    可参考http://wiki.ros.org/rosbag/Tutorials/Exporting%20image%20and%20video%20data

    其他topics写出 比如imu

    >rosbag info xx.bag   #查看imu topic

    >rostopic echo -b xxx.bag -p /TOPIC  > xxx.csv(或者.txt)

     

    展开全文
  • import rosbag import roslib; #roslib.load_manifest(PKG) import rospy import cv2 from cv_bridge import CvBridge from sensor_msgs.msg import Image bag_file = 'irat_aus_28112011.bag' bag...
  • ROS bag文件中提取图像

    万次阅读 2016-03-18 09:02:20
    ROS bag文件中提取图像
  • 提取rosbag图片合成视频,可以参考 https://github.com/mlaiacker/rosbag2video rosbag2video.py -r 50 -o test.mp4 peng_2015-12-14-13-*.bag
  • rosbag info xxx.bag 查看.bag文件的信息 <launch> <node pkg="rosbag" type="play" name="rosbag" args=" /home/stone/Desktop/data/2021-06-09-15-16-30.bag"/> <node name="extract" pkg=...
  • 要从ros bagfile中提取depth图片,网络上找了个很久提取depth图片的教程,都没找到,自己胡乱折腾出来了,做个记录。 以下是matlab的程序: matlab读取bag文件 clear all clc bag = rosbag('rgbd.bag'); 从bag中...
  • bag文件是ROS常用的数据存储格式,因此要从bag文件中提取数据就需要了解一点ROS的背景知识。 1. 什么是ROS及其优势 ROS全称Robot Operating System,是BSD-licensed系统用于从PC上控制机器人组件。ROS系统由一系列的...
  • 原理是使用rosbag api,从bag文件中过滤出sensor_msgs/CompressedImage类型的数据,对每一帧压缩图片使用ffmpeg进行编码,所以需要使用ffmpeg,如果未安装ffmpeg,可使用如下命令进行安装: sudo apt-get install ...
  • python merge_bag.py -v 1028msf.bag msf.bag vinReNoOutlier.bag 就把msf.bag和vinReNoOutlier.bag完全合并在一起了,时间戳打的都是原来两个bag里原始的时间戳,而不是像一边rosbag play一边rosbag record一样录...
  • ROSbag解压图片

    2020-12-08 09:34:48
    ros工具从bag文件中提取图片 参考1. 参考2. 1.用ros工具从bag文件中提取图片 1). 首先需要安装一些图片处理依赖的包: MJPEG, ffmpeg sudo apt-get install mjepgtools sudo apt-get install ffmpeg 2). 新建...
  • rosbag文件中提取图像

    2019-11-25 15:27:56
    1.创建export.launch文件: 将/home/windistance/dynamic.bag改为你自己的bag文件路径 <...的/cam0/image_raw改成想要读取的topic名称(可以通过rosbag info *.bag查看) <launch> <node...
  • rosbag提取照片或视频

    千次阅读 2018-12-12 16:58:39
    网上已经有很多相关帖,但试过之后不好使,研究了一下相关资料。 首先给出官网资料,可以翻墙的话直接看原...rosbag&quot; type=&quot;play&quot; name=&quot;rosbag&quot; args=&quot;-d 2 $

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 812
精华内容 324
关键字:

bagros图片提取