Mat::reshape( )
只是在逻辑上改变矩阵的行列数或者通道数,没有任何的数据的复制,也不会增减任何数据,因此这是一个O(1)的操作,它要求矩阵是连续的。
Mat::reshape(int cn, int rows=0 const)
cn:目标通道数,如果是0则保持和原通道数一致;
rows:目标行数,同上是0则保持不变;
改变后的矩阵要满足 rows×cols×channels 跟原数组相等,所以如果原来矩阵是单通道3×3的,调用Reshape(0,2)是会报错的,因为3×3×1不能被2×1整除。
原文链接:
更详细:
关于通道解释: