サイズが 120x100x50 の opencv で 3D マトリックスを作成しました。
int _sz[] = {120,100,50};
Mat src(3,_sz,CV_32FC1,Scalar(2));
この行列の 1 番目と 2 番目の次元を 100x120x50 に転置したいと考えています。3 ループ反復を使用して手動で転置します
for ()
for ()
for ()
dst.at<float>( , , ) = src.at<float>( , , );
しかし、この方法では時間がかかりすぎます。また、3 番目の次元は 50 であるのに対し、OpenCV マットは最大で 4 チャネルしかサポートしないため、3 番目の次元としてチャネルを使用できません。この作業をより迅速に行う他の方法はありますか? 3 番目の次元として 4 チャネルを使用してマトリックス 120x100x4 でテストすると、実行時間が大幅に短縮されるため、OpenCV がマルチチャネル マトリックスで行ったようなことを行うだけです。