Emgu CV中的Matrix.reformate()函数

Emgu CV中的Matrix.reformate()函数,matrix,emgucv,Matrix,Emgucv,有谁能告诉我关于矩阵重塑(intnewchannels,intnewrows)函数的情况吗。这场争论的意义是什么?下面是我的代码 Matrix<Double> A = new Matrix<Double>(4, 4); Matrix<Double> reshapeMatrix; reshapeMatrix = A.Reshape(1, 16); 此代码成功运行,但ReformeMatrix大小不正确,我无法使用ReformeMatrix数据 有人能解释为什么

有谁能告诉我关于矩阵重塑(intnewchannels,intnewrows)函数的情况吗。这场争论的意义是什么?下面是我的代码

Matrix<Double> A = new Matrix<Double>(4, 4);
Matrix<Double> reshapeMatrix;
reshapeMatrix = A.Reshape(1, 16);
此代码成功运行,但ReformeMatrix大小不正确,我无法使用ReformeMatrix数据


有人能解释为什么会这样吗?如何对任意大小的矩阵使用整形()函数?

正如您所注意到的,矩阵。整形将新通道作为第一个参数。矩阵可以有多个通道,例如颜色通道(1个用于灰度,3个用于RGB)。重塑的作用是重塑矩阵的通道、列和行

你想通过重塑矩阵来实现什么可能是重塑矩阵,使其具有2列8行,但仍有一个颜色通道。还是我错了

如果这是您想要实现的目标,正确的方法是:

reshapeMatrix = A.Reshape(1, 8);
由于有16个元素和8行,列数将自动为2。频道的数量仍然保持在一个

restrapematrix=A.restrape(1,16)的原因有效是因为您指定应该保持一个颜色通道。对于16行,剩下的唯一选项是有一列

reshapeMatrix = A.Reshape(1, 8);