csvファイル( , カンマ区切り、改行あり)からデータを読み込む。
ついでにopencvのMatにデータをぶち込む。
"filename1.csv", "filename2.csv", .... , みたいな感じの連続番号を振ったCSVファイルをループ文で読み込む
while(1){
read_csv(i);
++i;
}
みたいな感じ。
int read_csv(int counter) //ループのカウンター値を受け取る→連続したファイルを読み込む { //ファイル名の指定 char name[256]; sprintf_s(name, 256, "ファイル名%d.csv", counter); //連続番号付けしたファイルを読み込む std::ifstream read_data(name); //エラー処理 if (!read_data) { std::cout << "Error:Input data file not found" << std::endl; return -1; } double *data = new double[height*width](); //0で初期化 //heightとwidthは定数、ここでは定義は省略している int i = 0; std::string str; while (getline(read_data, str)){ string token; stringstream ss; istringstream stream(str); while (getline(stream, token, ',')) { // 区切り文字は ,カンマ // 文字列から数値に変換 ss << token; ss >> data[i]; ++i; ss.clear(); // 状態をクリア. ss.str(""); // 文字列をクリア. } } cv::Mat mat_data(height, width, CV_64FC1, data); //csvから読み込んだデータをcv::Matにぶち込む return 0; }
インクルードするのはたしかこれら
#include <fstream>
#include <iostream>
#include <string>
#include <opencv2/opencv.hpp>
参考:
http://fa11enprince.hatenablog.com/entry/2014/04/03/233500
http://99blues.dyndns.org/blog/2010/02/std_stringstream/
http://ppp-lab.sakura.ne.jp/cpp/library/032.html
http://handasse.blogspot.com/2007/06/c_22.html
![]() |

![]() |
0 件のコメント:
コメントを投稿