2016年1月3日日曜日

OpenCVを使ったCSVファイルの入出力。

メモ。

OpenCVのMatの値をCSVで保存する。


  char name[256]; //ファイル名

   sprintf_s(name, 256, "ディレクトリ名\\ファイル名%d.csv", counter);
   //処理全体をループ内に入れてcounterを回せば、ファイル名に連番が付く

   //フォルダがない場合は作成(direct.hをインクルードしておく )
   if (_mkdir("ディレクトリ名") == 0);

   //#include <direct.h>を忘れない
   ofstream save(name);

   double output;
   for (int y = 0; y < height; ++y){ //row:列
    for (int x = 0; x < width; ++x){
     output = data.at<double>(y, x); //画像というか単純に行列のデータ
     save << dec << output << ",";

    }
    //改行
    save << endl;
   }

   //解放
   save.close();



cv::Mat data はCV_64FC1とかを想定したもの。


で、for文で1ピクセルずつ回しているけど、書くのが面倒だったら↓みたいにOpenCVの関数使えば1行で書ける。



 //csv変換して出力
 save << cv::format(data, "csv");



以上。


0 件のコメント:

コメントを投稿