我使用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行;这是打错了吗?