4

我有一个尺寸为 25(行)x 320(列)x 235(通道)的 3D 矩阵

对于 25 行中的每一行,我想提取 2D 切片 (320 x 235),以便我有 25 个 2D 矩阵。

我不确定如何在 OpenCV 中执行此操作。

我想转置 3D 矩阵,使我有 320(行)x 235(列)x 25(通道),然后使用 split 来获得 25 个矩阵,但转置似乎不起作用(MATLAB 甚至不允许在多维数组上转置)

然后我尝试重塑无济于事。

是否可以使用 NAryMatIterator?或者是否有任何其他方式来执行此过程?

4

1 回答 1

3

您可以使用 row() 函数来获取给定行的新标题,只需在每一行上调用 if 并存储它们。这是一个 O(1) 操作,因为没有数据被复制,请注意您所做的任何更改都将反映在原始矩阵中。可能有更优雅的解决方案,但我不知道。其余的取决于你想如何存储你的 25 个矩阵(在数组、向量、任何你想要的东西中)。可以在此处找到 Mat 文档,尽管它的结构不是非常好。

于 2012-07-25T17:46:57.120 回答