我有一个维度为25 (行)x 320 (列)x 235 (通道)的3D矩阵
对于25行中的每一行,我希望提取2D切片(320 X 235),以便我有25个2D矩阵。
我不确定如何在OpenCV中做到这一点。
我想过将3D矩阵转置为320 (行)x 235 (cols) x 25 (通道),然后使用split获得25个矩阵,但转置似乎不起作用(MATLAB甚至不允许在多维数组上转置)。
然后我尝试了重塑,但无济于事。
可以使用NAryMatIterator吗?或者是否有任何其他方法来执行此过程?
发布于 2012-07-26 01:46:57
您可以使用row()函数来获取给定行的新标题,只需对每一行调用if并存储它们。这是一个O(1)操作,因为没有复制任何数据,请注意,您所做的任何更改都将反映在原始矩阵中。也许有一个更优雅的解决方案,但我不知道。剩下的取决于你想如何存储你的25个矩阵(在一个数组中,向量,任何你想要的)。Mat文档可以在here中找到,尽管它的结构不是很好。
https://stackoverflow.com/questions/11655404
复制相似问题