int write_data(char *filename, Mat a_mat)
{
// ファイルを開く
CvFileStorage *fs;
fs = cvOpenFileStorage (filename, 0, CV_STORAGE_WRITE);
if(! fs ){
cout<<"can not open "<<filename<<endl;
return 0;
}
// Mat -> CvMat
CvMat a = a_mat;
// 書き込む
cvWrite (fs, "a", &a);
// ファイルを閉じる
cvReleaseFileStorage (&fs);
}
int read_data(char *filename)
{
        CvFileStorage *fs;
 CvFileNode *param;
 // (2)パラメータファイルの読み込み
 fs = cvOpenFileStorage (filename, 0, CV_STORAGE_READ);
 if(!fs){
  cout <<"can not open "<< filename << endl;
  return 0;
 }
 CvMat *a;
 param = cvGetFileNodeByName (fs, NULL, "a"); 
        a = (CvMat *) cvRead (fs, param);
 cvReleaseFileStorage (&fs);
        // CvMat → Mat
 Mat a_mat;
 a_mat = Mat(a);
        // あとでdoubleでメモリにアクセスする場合のために,要素の型変換を行う
        a.convertTo(a, CV_64F);
        return 1;
}
0 件のコメント:
コメントを投稿