我正在尝试使用c#中的OpenCV3(Emgu)来操作各个列。我的代码类似于:
UMat Image = loaded image
UMat Column = new UMat();
CvInvoke.cvGetCol(Image, Column, 1);
{“OpenCV:无法识别或不支持的数组类型”}
这就是在标题中抛出错误。我尝试过Mat
和Mat.Ptr
而不是UMat
,但没有任何帮助。虽然我找到了1-2个c ++示例,但我找不到一个c#示例来帮助。
答案 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调用要慢,但它在寻找上述问题的完整解决方案时有效。