我有一个问题,对你们中的许多人来说可能是微不足道的......
我正在阅读不同的图片,提取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矩阵)
我该怎么办?
答案 0 :(得分:0)
在YAML文件中保存两个具有不同名称的描述符
通过示例descritors1
和descriptors2
。