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

本文关键字:错误 Matrix cpp 类型 数组 未知 未知数 OpenCV | 更新日期: 2023-09-27 18:02:34

我使用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

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

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

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

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