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マトリックス)
どうすればよいですか?
私はこの方法でそれらを保存することができませんでしたが、私のポイントは、これらのすべてのマトリックスを1つのマトリックスに組み立てることです。 – Mario
それらを別々に(mat1、mat2、matn ...)ロードします。 YAMLで名前が異なる場合にのみ可能です。次に、それらのすべてをあなたが望むように連結する関数を記述します。それを行う方法は、ビッグマットを割り当てて、ロードされたマットを大きな1つの – Sam
の異なるROIにコピーするか、手動でyamlファイルを変更することができます – Sam