1

我有一个看起来像这样的 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;
}
4

1 回答 1

0

这是一个以 yml 格式存储的 OpenCV 矩阵。您拥有在文档的持久性页面中加载矩阵所需的所有文档。

然后,您可以将矩阵处理为系数数组矩阵(在代数意义上)。

作为旁注,您不需要调用该fsDemoX.release()方法,当到达作用域的末尾时会自动调用析构函数。

于 2013-03-28T12:00:42.627 回答