2011-11-10 14 views
5

estoy desarrollando una aplicación en OpenCV, y en de Windows el siguiente código es válido, y compila/works:OpenCV std :: vector <cv :: Point2f> a cv :: Mat

/* Calculate the transformation points */ 
std::vector<cv::Point2f> img1; 
std::vector<cv::Point2f> img2; 
for(int i = 0; i < good_matches.size(); i++) { 
    img1.push_back(keypoints_imageOne[ good_matches[i].queryIdx ].pt); 
    img2.push_back(keypoints_imageTwo[ good_matches[i].trainIdx ].pt); 
} 

/* Generate the homogonous matrix from the transformation points */ 
cv::Mat H = cv::findHomography(img1, img2, CV_RANSAC); 

sin embargo, cuando cambio a cualquiera de mi Mac o Linux cuadro, me sale un error que dice que no hay prototipo de función para los argumentos (como el prototipo de la función requiere cv::Mat en lugar de la std::vector<cv::Point2f>)

Así que mi la pregunta es, ¿cómo puedo/debo lanzar desde std::vector <cv::Point2f> a cv::Mat o cómo debo hacer esto?

Respuesta

5

Parece que tiene una versión anterior de OpenCV en Linux. La posibilidad de usar vectores como entrada para las funciones openCV se agrega a la versión 2.3, creo.

¡Así que, actualización feliz!

+1

Gracias, recién actualizado y también a Mat (img1) eliminado el error antes de la actualización. :RE – krslynx

Cuestiones relacionadas