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

このファイルを行列形式に変換し、その要素にアクセスするにはどうすればよいですか? この行列に対していくつかの数学演算を行う必要があります。このファイルを読み取るために、次のコードを作成しました。2 番目の列から 1 番目の列を引くと言いたい場合はどうすればよいですか? 助けてください。

コード:

#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 に答える