4

次元が 25 (行) x 320 (列) x 235 (チャネル) の 3D マトリックスがあります。

25 行のそれぞれについて、2D スライス (320 x 235) を抽出して、25 個の 2D 行列を作成したいと考えています。

OpenCVでこれを行う方法がわかりません。

320 (行) x 235 (列) x 25 (チャネル) になるように 3D 行列を転置し、分割を使用して 25 の行列を取得することを考えましたが、転置は機能していないようです (MATLAB では許可されていません)多次元配列での転置)

その後、形を変えてみましたが無駄でした。

NAryMatIterator を使用することは可能ですか? または、このプロセスを実行する他の方法がある場合は?

4

1 に答える 1

3

row()関数を使用して、特定の行の新しいヘッダーを取得できます。すべての行でifを呼び出して、それらを格納するだけです。データがコピーされないため、これはO(1)操作です。行った変更は、元のマトリックスに反映されることに注意してください。もっとエレガントな解決策があるかもしれませんが、私はそれを知りません。残りは、25個の行列をどのように格納するかによって異なります(配列、ベクトル、その他必要なもの)。マットのドキュメントはここにありますが、あまりよく構成されていません。

于 2012-07-25T17:46:57.120 に答える