2011-11-22 12 views
7

Intento utilizar la función fitLine() desde OpenCV 2.1, pero es necesario convertir mi vector<Point> en Mat. ¿Cómo puedo hacer esto?Convertir vector <Point> en Mat

vector<Point> line_points; 
Vec4f line; 
fitLine(line_points, line, CV_DIST_L2, 0.0, 0.01, 0.01); 

Respuesta

10

En realidad es muy simple - Mat proporciona un constructor para la conversión entre el vector de puntos y una Mat. Todo lo que necesita es la siguiente:

fitLine(Mat(line_points), line, CV_DIST_L2, 0.0, 0.01, 0.01); 

Esto se menciona in the documentation.

+0

Mat mat = Mat (line_points); Problema semántico: Lanzamiento de estilo funcional de 'Vector ' a 'cv :: Mat' no está permitido – Ben

+0

Extraño, funciona en mi código ... Asegúrese de que está usando 'std :: vector ', no algún tipo de su propia implementación de 'Vector'. –

+0

ese era el problema ... ¡gracias! – Ben

Cuestiones relacionadas