>

2013年4月19日金曜日

三次元点群データをgnuplotで表示

たまに三次元点群データ(point cloud)を可視化したいときがある。いろんな選択肢があるがgnuplotでもできるみたいなのでその方法をメモ。
 FILE* gp;
 gp = _popen("pgnuplot -persist","w");
 fprintf(gp, "splot '-' with points pointtype 1\n");
 for (int i = 0; i < objectPoints.rows; i++) 
 {
  fprintf(gp, "%lf %lf %lf\n", objectPoints.at<float>(i,0), objectPoints.at<float>(i,1), objectPoints.at<float>(i,2));
 }
 fprintf(gp, "e\n");
 fflush(gp);
 _pclose(gp);
ちなみにC++, Windows環境での例です。前提としてgnuplot windows版をインストールしていて、インストール時に環境変数PATHにgnuplotのフォルダパスを追加しておく(インストーラのチェックボックスで設定)必要があります。 http://www.gnuplot.info/

0 件のコメント: