OpenCV:未知数组类型错误在Matrix.cpp



我使用EmguCV矩阵。添加一个方法将一个矩阵附加到另一个矩阵。

Emgu.CV.Matrix<float> descriptors = new Emgu.CV.Matrix<float>(0, dictionarySize);
Emgu.CV.Matrix<float> BOWDescriptor = imageDescriptorExtractor.Compute(trainingImage, keyPoints);
descriptors.Add(BOWDescriptor);

对应的OpenCV代码如下:

Mat bowDescriptor(0, dictionarySize, CV_32FC1);
Mat bowDescriptor;
bowDE.compute(img, keypoints, bowDescriptor);
descriptors.push_back(bowDescriptor);

在编译过程中,我不会得到任何异常。但是,当运行应用程序时,我得到以下错误:

类型为'Emgu.CV.Util '的未处理异常。附加信息:OpenCV: Unknown array type

这是否与CV_32FC1数据类型有关?我的OpenCV到EmguCV转换正确吗?

谢谢你的帮助。

谢谢Jay

CV_32FC1仅仅意味着一个单通道,32位浮点数组,因为你不能有零通道,默认的矩阵构造函数应该是好的。

你有没有试过在你的"添加"调用上设置一个断点并检查两个矩阵?我不确定EmguCV何时抛出该异常,但可能是矩阵大小不匹配。

另外,我刚刚注意到你的"描述符"对象的构造函数有0行;这是打错了吗?

相关内容

  • 没有找到相关文章

最新更新