C++ 在OpenCV中将矢量转换为mat

C++ 在OpenCV中将矢量转换为mat,c++,opencv,vector,matrix,type-conversion,C++,Opencv,Vector,Matrix,Type Conversion,我正在使用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:

我正在使用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; 
}

我做错了什么?是否有其他方法将此向量转换为矩阵形式?多谢各位

您正在尝试创建“组件”类型的矩阵。这是行不通的。Mat仅支持特定的数据类型,如Point2d、Point3d等。如果您尝试使用它们,它应该会起作用。

中有一个对Mat构造函数的引用,其中他们指出支持哪些类型的向量:

构造函数可以处理任意类型,其中 正确声明的数据类型,即向量元素必须 基本数字或数字的单类型数值元组混合类型 当然,不支持结构。”


因此您使用的类型不受支持,因此会出现错误。

您能否详细说明这个问题,为什么需要进行此转换,您可以在opencv中创建一个矩阵,并将其作为向量处理(如果这有帮助的话)。但我认为创建矩阵并将其转换为矩阵是有原因的。你能提供一个你为什么需要它的场景吗?事实上,我正在用它来做我的另一个函数,这个函数在我的问题中已经被删除了。我问这个问题是因为也许有一种方法可以解决这个问题,现在除了这里的答案,我看不到其他方法,也就是把一个向量作为一个矩阵来处理,在这种情况下,它将是一个nx1矩阵。你能告诉我们哪个函数输出向量,哪个函数使用矩阵作为输入吗?
OpenCV Error: Unsupported format or combination of formats() in unknown function, file ...\opencv\modules\core\src\out.cpp, line 111