10

私はopencv2.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 に答える