cvl-robot's diary

研究ノート メモメモ https://github.com/dotchang/

OpenFrameworksでWEB上のファイルを受け取る

WEB上のテキストや多種多様なファイルを受け取ることが出来ると、便利ですね。openFrameworksの標準機能で実現できます。

ofHttpResponse intrinsics = ofLoadURL("http://10.254.20.46:7890/intrinsics.yml");
cout << intrinsics.data << endl;

 画像配信サーバーで、カメラパラメータも配布するようにすると、いちいちファイルを探さなくてもいいので楽ちんです。

ファイルから読む代わりにメモリ上のテキストをcv::FileStorageとして渡す方法は、次のようにします。

//FileStorage fs("intrinsics.yml", FileStorage::READ);
FileStorage fs(intrinsics.data.getText(), FileStorage::MEMORY);
if( fs.isOpened() )
{
  fs["M1"] >> cameraMatrix[0];
  fs["D1"] >> distCoeffs[0];
  fs["M2"] >> cameraMatrix[1];
  fs["D2"] >> distCoeffs[1];
  fs.release();
}
else
  cout << "Error: can not save the intrinsic parameters\n";

 よく設計できてますね。