转换向量在OpenCV的垫层(convert vector to mat in OpenCV)

2019-07-04 11:38发布

我使用的OpenCV 2.4.3来执行向量使用以下代码来矩阵变换:

struct Component
{
    cv::Rect box;
    double area;
    double circularity; 
}

int main ( ... )
{
     cv::vector < Component > components;         
     cv::Mat componentMat ( components, true );
     std::cout << componentMat;
     return 0; 
}

但是它给出了一个错误,他说:

OpenCV Error: Unsupported format or combination of formats() in unknown function, file ...\opencv\modules\core\src\out.cpp, line 111

我在做什么错在这里? 是否有任何其他的方法来这个向量转换成矩阵形式? 谢谢。

Answer 1:

在该文件存在于垫子构造中,他们说,这类型的载体支持的参考:

“构造可以处理任意类型,其中有被适当地声明的数据类型,即, 矢量元素必须是原始的数字或数字的单类型数值的元组不支持 ,当然混合型结构 ”。

所以, 你所使用的类型不支持 ,因此你会得到一个错误。



Answer 2:

您正在尝试创建类型为“组件”的矩阵。 这是行不通的。 垫仅支持特定的数据类型,如的Point2D,三维点等,如果你与他们尝试,它应该工作。



文章来源: convert vector to mat in OpenCV