Vraag zet vector om naar mat in OpenCV


Ik gebruik opencv 2.4.3 om vector- naar matrixconversie uit te voeren met behulp van de volgende code:

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; 
}

Maar het geeft een foutmelding:

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

Wat doe ik hier verkeerd? Is er een andere methode om deze vector in matrixvorm om te zetten? Dank je.


10
2017-12-04 09:42


oorsprong


antwoorden:


In de documentatie er is een verwijzing naar de Mat-constructor waarin wordt aangegeven welke soorten vector worden ondersteund:

"De constructeur kan willekeurige typen aan, waarvoor er sprake is   correct gedeclareerd DataType, d.w.z. het vectorelementen moeten zijn   primitieve getallen of uni-type numerieke tupels van getallen. Mixed-type   structuren worden niet ondersteund, natuurlijk."

Zo het type dat u gebruikt, wordt niet ondersteund en daarom krijg je een foutmelding.


16
2017-12-04 15:24



U probeert Matrix van type "componenten" te maken. Het zou niet werken. Mat ondersteunt alleen specifieke gegevenstypen, zoals Point2d, Point3d, enz. Als u het met hen probeert, zou het moeten werken.


3
2017-12-04 13:51