cvGetCol抛出“OpenCV:无法识别或不支持的数组类型”

时间:2017-04-27 20:40:18

标签: c# emgucv opencv3.1

我正在尝试使用c#中的OpenCV3(Emgu)来操作各个列。我的代码类似于:

UMat Image = loaded image
UMat Column = new UMat();

CvInvoke.cvGetCol(Image, Column, 1);

{“OpenCV:无法识别或不支持的数组类型”}

这就是在标题中抛出错误。我尝试过MatMat.Ptr而不是UMat,但没有任何帮助。虽然我找到了1-2个c ++示例,但我找不到一个c#示例来帮助。

1 个答案:

答案 0 :(得分:0)

虽然不是这个问题的解决方案,但我能够使用Matrix<>获得类似的功能。键入而不是UMats。

UMat Image = ...
Matrix<byte> ImageMatrix = new Matrix<byte>(Image.Rows, Image.Cols, 3);
Image.CopyTo(ImageMatrix);

ImageMatrix.GetCol(1);

我认为这比使用UMat类型的CvInvoke调用要慢,但它在寻找上述问题的完整解决方案时有效。