从.bag文件中提取图片
1.创建文件export.launch,如下:
<launch>
<node pkg="rosbag" type="play" name="rosbag" args="-d 2 /media/zp/pop_up_tum_far_preproc_tf.bag"/>
<node name="extract" pkg="image_view" type="extract_images" respawn="false" output="screen" cwd="ROS_HOME">
<remap from="image" to="/rect_color_raw"/>
</node>
</launch>
其中标红两处根据自己实际情况修改,1.为.bag文件路径,2.为待提取的topic,具体写什么,使用
rosbag info **.bag
来查看其中的topic,对应选择。
写好后,执行命令
roslaunch export.launch
如下图所示,正在提取:
结束标志:
所提取的图片在~/.ros
路径下,先查看如下图所示:
将其移到你的目标文件中,标红的为新建的目录:
mv ~/.ros/*.jpg /media/zp/zengpan/dataset/bag_picture_tum_fr3
执行结果:
这样就将图片提取出来了。
===================================================================================
另一个问题是,提取cnn_label图片,用上述方法,会报错。
[ERROR] [1557131237.198396237]: Unable to convert 8UC1 image to bgr8
[ WARN] [1557131237.198481326]: Couldn't save image, no data!
此时,
CV_8UC1, 是256 greyscale图,
CV_8UC1,CV_8UC2,CV_8UC3,中,1,2,3表示通道数。
目前还没找到解决方法。
应该是ROS与OPENCV之间图片数据格式的问题。