1

OpenCV でのベクトルの格納に関する非常に基本的なクエリがありますが、常に MATLAB で作業しているため、C++ で同じベクトル操作を実行するのは非常に難しいと感じています。

ここに私の問題があります。基本的な cvGoodFeaturesToTrack() および cvCalcOpticalFlowPyrLK() 関数を使用してオプティカル フローを計算し、フロー ラインの終点を見つけて、それらをオプティカル フローのラインとして画像に表示します。

ただし、これらの動線の終点をベクトルに保存し、それをテキスト ファイルとして保存して、MATLAB に送信して読み取ることができるようにしたいと考えています。

これらのポイントを保存してテキスト ファイルに保存するこれらのベクトルを作成する方法が本当にわかりません。

誰でも助けることができますか?

ありがとう、

ヤシュ

4

1 に答える 1

1

質問に対するOPのコメントに基づいて、これは良い方法だと思います:

std::ofstream matlabFile;
matlabFile.open("pointsOutput.m");
matlabFile << "Corners = [ ...\n";
for (int i = 0; i < MAX_CORNERS; ++i) {
    matlabFile << corners2[i].x << " " << corners2[i].y << "; ...\n";
}
matlabFile << "];";
matlabFile.close();

このコードにより、ローカル ディレクトリに次のファイルが作成されます。

pointsOutput.m:

Corners = [ ...
1 2; ...
3 4; ...
];

matlab では、次の行列が得られます。

Corners = 
    1 2
    3 4

そのリストに x と y = 1 と 2、3 と 4 の 2 つの点があると仮定します。

お役に立てれば。

于 2012-12-05T06:45:10.623 に答える