在OpenCV中访问3D矩阵的2D平面

时间:2012-07-25 17:36:22

标签: opencv

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

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

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

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

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

是否可以使用NAryMatIterator?或者,如果有其他方法来执行此过程?

1 个答案:

答案 0 :(得分:3)

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