c++ - 如何将 vector<...> 转换为 cv::Mat?

标签 c++ opencv vector

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/

相关文章:

c++ - 安全且跨越库边界的唯一类类型 ID

c++ - 对 __dso_handle_ 的 undefined reference - 在 cygwin 上编译 C++

python - 适当的轮廓中断

python-3.x - matrix.cpp:310: 错误:函数 cv::setSize 中的 (-215) s >= 0

c++ - 对象的 vector 搜索 future 对象的用途?

c++ - opencv realsense 16位深度图像

java - 模拟器工具,适用于 Iphone、智能手机和任何手机初学者的编程环境

c++ - OpenCV 中的 3D 图像梯度

c++ - 全局函数如何调用类中的特定函数?

c++ - 在 C++ 中给定单词的字符串 vector 创建一个短语