Webots 使い方まとめ

14.スナップショットの撮影

wb_upervisor_export_image()はシミュレーションの現在の状態のスナップショットをjpegファイルとして出力することができる。

.1 関数

supervisor.hで定義されているwb_supervisor_export_image()を使用する。

#include<webots/supervisor.h>
void wb_supervisor_export_image( const char *filename , int quality);

一つ目の引数filenameは出力するjpegファイルのファイル名に対応し、絶対パスもしくは相対パスで記述する。 (例:snapshot.jpg もしくは /var/www/html/images/snapshot.jpg)
実際は一時ファイルがまず作成され、作成完了後、指定した名前にファイル名が書き換えられる。 これはカメラアプリケーションが描写未完了の状態で終了するのを防ぐためである。
二つ目の引数qualityは出力するjpeg画像の画質である。1から100までの整数で指定し、その数字が大きいほど高画質となる。

.2 使用例

次のサンプルは起動時に一度シミュレーションのスナップショットを撮影するプログラムだ。

#include <webots/robot.h>
#include <webots/supervisor.h>

#define TIME_STEP 64

int main(int argc, char **argv)
{
  wb_robot_init();
 
  wb_supervisor_export_image("test.jpg",60);
  
  do {
  
  } while (wb_robot_step(TIME_STEP) != -1);
  
  wb_robot_cleanup();
  
  return 0;
}

今回は60%の画質で"test.jpg"という名前で画像を保存する。実際にシミュレーションすると、Controllerフォルダ内に画像が保存されている。



HOME > Webots 使い方まとめ > 14.スナップショットの撮影