重塑emgu cv

时间:2014-02-19 17:32:36

标签: c#

我正在尝试将矩阵重塑为C#中Emgu CV中的向量。当Emgu第一次在代码中调用时,它的Reshape函数完全正确...但在那之后,似乎什么也没做!你知道为什么会这样吗? 这是代码:

首次使用

myImg = new Image<Bgr, Byte>(a);
myImg2 = myImg.Convert<Gray, Byte>();

Matrix<float> tmp = new Matrix<float>(myImg2.Height, myImg2.Width);
CvInvoke.cvConvert(myImg2, tmp);
tmp = tmp.Transpose();
Matrix<float> reshaped_vect = new Matrix<float>(myImg2.Height * myImg2.Width, 1);
reshaped_vect = tmp.Reshape(1, myImg2.Height * myImg2.Width);

第二次使用

mySketch = new Image<Bgr, Byte>(a);
mySketch2 = mySketch.Convert<Gray, Byte>();

Matrix<float> tmp_sketch = new Matrix<float>(mySketch2.Height, mySketch2.Width);
CvInvoke.cvConvert(mySketch2, tmp_sketch);
tmp_sketch = tmp_sketch.Transpose();
Matrix<float> sketch_reshaped_vect = new Matrix<float>(mySketch2.Height * mySketch2.Width, 1);
sketch_reshaped_vect = tmp_sketch.Reshape(1, mySketch2.Height * mySketch2.Width);

感谢Ur提前帮助。

1 个答案:

答案 0 :(得分:0)

好吧,似乎我错了......显然,Emgu结构的“数组”元素(系统提供)没有给出正确的信息,应该检查MCvMat数据...在我的情况下,“数组“我的矩阵的元素,在重新整形后,大小为144 * 151(完全不正确),但MCvMat数据显示其行为21744,其Cols为1(这是正确的)。