在OpenCV中将矢量转换为mat

E_l*_*ner 10 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::cout << componentMat;
     return 0; 
}
Run Code Online (Sandbox Code Playgroud)

但它发出错误,说:

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

我在这做错了什么?有没有其他方法将此向量转换为矩阵形式?谢谢.

Jav*_*ock 16

文档中有一个对Mat构造函数的引用,在该构造函数中,它们表示支持哪种类型的向量:

"构造函数可以处理任意类型,其中有正确声明的DataType,即向量元素必须是原始数字或单数字数字元组.当然,不支持混合类型结构."

因此,不支持您使用的类型,因此您会收到错误.