在一个YAML文件中读取不同矩阵的问题......

时间:2012-01-10 13:48:23

标签: opencv

我有一个问题,对你们中的许多人来说可能是微不足道的......

我正在阅读不同的图片,提取SIFT功能并将功能保存在Yaml文件中......我收到了以下文件:

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.....
   ......]

等等......第一部分是第一部分图像信息,第二部分是第二部分图像信息

到目前为止,这种想法完全符合我的工作......

但是当我读它时,我只得到了第一个部分(即只读取第一个图像的信息(而忽略了文件的其余部分):(

这是阅读我的代码的方式

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矩阵)但我想要(735 * 128矩阵)

我该怎么办?

1 个答案:

答案 0 :(得分:0)

在YAML文件中保存两个具有不同名称的描述符

通过示例descritors1descriptors2