我有一个yml文件,如下所示:
%YAML:1.0
X: !!opencv-matrix
rows: 13
cols: 40
dt: f
data: [ 166.000000, 162.666667, 159.333333,
156.000000, 152.666667, 149.333333, 146.000000,
142.333333, 138.666667, 135.000000, 131.333333,.... etc
如何将此文件转换为矩阵形式并访问其元素。我必须对这个矩阵做一些数学运算。我编写了以下代码来阅读此文件。如果我想说从第二列减去第一列,我该怎么办?请帮忙。
代码:
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
using namespace cv;
using namespace std;
int main (int argc, char * const argv[])
{
Mat X;
string XFile = "newStorageFile.yml";
FileStorage fsDemoX(XFile , FileStorage::READ);
fsDemoX["X"] >> X;
cout << "Print the contents of X:" << endl;
cout << X << endl << endl;
fsDemoX.release();
return 0;
}
答案 0 :(得分:0)
这是以yml格式存储的OpenCV矩阵。 您拥有在文档的persistency page中加载矩阵所需的所有文档。
然后,您可以将{矩阵}处理为array of coefficients或matrix(代数含义)。
作为旁注,您不需要调用fsDemoX.release()
方法,当到达范围的末尾时,将自动调用析构函数。