10

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

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

4

2 回答 2

16

文档中有对 Mat 构造函数的引用,其中他们说支持哪些类型的向量:

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

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

于 2012-12-04T15:24:00.623 回答
3

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

于 2012-12-04T13:51:09.083 回答