Yura YuLife

ITエンジニアの覚え書き。

rosbag から連番の画像ファイルを生成する

カメラ画像を録画した rosbag データから、連番の画像ファイルを生成する方法です。

画像ファイルを生成する

基本的には ja/rosbag/Tutorials/Exporting image and video data - ROS Wiki に載っている手順の通りに行うだけです。

launch ファイルの作成

以下のような launch ファイル(例: bag-to-image.launch)を作成します。

<launch>
  <!-- rosbag を再生するノード -->
  <node pkg="rosbag" type="play" name="rosbag" args="-d 2 rosbagまでのフルパス(例: /opt/ros/bag/your.bag)"/>
  <!-- カメラ映像から画像ファイルを生成するノード -->
  <node name="extract" pkg="image_view" type="extract_images" respawn="false" output="screen">
    <remap from="image" to="カメラ画像のトピック名(例: /camera/image_raw)"/>
    <param name="filename_format" value="画像ファイルを保存するフォルダとファイル名のフォーマット (例: /home/ros/Pictures/frame%04d.jpg)" />
  </node>
</launch>

launch ファイルの実行

上記の launch ファイルを実行します。

$ roslaunch ./bag-to-image.launch

実行が完了すると、指定したフォルダ(例: /home/ros/Pictures/)に frame0001.jpg のような連番の画像ファイルが生成されます。簡単ですね!

参考URL