2012-01-10 6 views
0

私は問題を抱えている、それはあなたの多くの些細なことかもしれません...私は別の画像を読んでいる1つのYAMLファイルに異なるマトリックスを読み取る問題...

、抽出物は、機能をSIFTと機能を保存

descriptors1: !!opencv-matrix 
    rows: 342 
    cols: 128 
    dt: f 
    data: [ 0.,......... 
    ....................] 

descriptors1: !!opencv-matrix 
    rows: 393 
    cols: 128 
    dt: f 
    data: [ 0., 0., 3., 62..... 
    ......] 

のように...最初の部分はそうは思わ第1の画像情報と、第2の画像情報

で2番目の部分です:私は、ファイルを持っYAMLファイル...で遠くは私の仕事をかなり満足させています...

私はそれを読んでいるとき、私は最初の1つの部分だけを持っています(つまり、最初の画像の情報だけを読みます(それはファイルの残りの部分を無視しています):

これは私のコードの読み取り

FileStorage fs; 
fs.open("cola.yaml", FileStorage::READ); 
if (!fs.isOpened()) 
     { 
      cout << "failed to open " << "test.yaml" << endl; 
      return 1; 

} 

Mat descriptors1; 

fs["descriptors1"] >> descriptors1; 
fs.release(); 

私がしたいことは、このファイルに含まれるすべての情報を読み取ることがある...だから私は342×128行列を取得しています(私は最後に入った1人の行列が異なる画像の全ての情報を持っています)が必要です(735 * 128マトリックス)

どうすればよいですか?

答えて

0

descritors1descriptors2によってYAMLファイルに、異なる名前で

を2つの記述子を保存します。

+0

私はこの方法でそれらを保存することができませんでしたが、私のポイントは、これらのすべてのマトリックスを1つのマトリックスに組み立てることです。 – Mario

+0

それらを別々に(mat1、mat2、matn ...)ロードします。 YAMLで名前が異なる場合にのみ可能です。次に、それらのすべてをあなたが望むように連結する関数を記述します。それを行う方法は、ビッグマットを割り当てて、ロードされたマットを大きな1つの – Sam

+0

の異なるROIにコピーするか、手動でyamlファイルを変更することができます – Sam

関連する問題