有vector<Descriptor> m_keyDescs
描述符指定如下:
Descriptor(float x, float y, vector<double> const& f)
{
xi = x;
yi = y;
fv = f;
}
推得像:
m_keyDescs.push_back(Descriptor(descxi, descyi, fv));
如何将此 vector 转换为 cv::Mat?
我已经尝试过
descriptors_scene = cv::Mat(m_keyDescs).reshape(1);
项目调试没有错误,但是当它运行时,我的 Mac 上的 Qt Creator 中出现错误:
测试意外退出 单击重新打开以再次打开应用程序。
最佳答案
您无法将手动定义的类的 vector 直接转换为 Mat。例如,OpenCV 不知道将每个元素放在哪里,并且元素甚至不都是相同的变量类型(第三个元素甚至不是单个元素,因此它不可能是 Mat 中的元素)。但是,例如,您可以将整数或浮点 vector 直接转换为 Mat。更多信息请参阅答案here .
关于c++ - 如何将 vector<...> 转换为 cv::Mat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14807309/