我在 opencv 中创建了一个大小为 120x100x50 的 3D 矩阵:
int _sz[] = {120,100,50};
Mat src(3,_sz,CV_32FC1,Scalar(2));
我想将此矩阵的第一维和第二维转置为 100x120x50。我使用 3 循环迭代手动转置
for ()
for ()
for ()
dst.at<float>( , , ) = src.at<float>( , , );
但是这种方式耗时太长。而且,我不能将通道用作第三维,因为第三维是 50,而 OpenCV mat 最多仅支持 4 个通道。有没有其他方法可以更快地完成这项工作?就像 OpenCV 对多通道矩阵所做的那样,因为当我使用 4 通道作为第三维来测试矩阵 120x100x4 时,执行时间要好得多。