我使用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
我在这里做错了什么?有没有其他方法将此向量转换为矩阵形式?谢谢。
答案 0 :(得分:16)
在the documentation中有一个对Mat构造函数的引用,在该构造函数中,它们表示支持哪种类型的向量:
“构造函数可以处理任意类型 正确声明的DataType,即向量元素必须是 原始数字或单数字数字元组。 <强>混合型 当然不支持结构。“
所以不支持您使用的类型,因此您会收到错误。
答案 1 :(得分:3)
您正在尝试创建“组件”类型的Matrix。它不会起作用。 Mat仅支持特定的数据类型,如Point2d,Point3d等。如果您尝试使用它们,它应该可以工作。