2011-10-04 10 views
5

He extraído las características SIFT en (opencv open source) y se extraen como puntos clave. Ahora, me gustaría convertirlos a Matrix (con sus coordenadas x, y) o guardarlos en un archivo de texto ...convertir los puntos clave en mat o guardarlos en el archivo de texto opencv

Aquí puede ver un código de muestra para extraer los puntos clave y ahora me gustaría saber cómo convertirlos en colchoneta o guardarlos en txt, xml o yaml ...

cv::SiftFeatureDetector detector; 
std::vector<cv::KeyPoint> keypoints; 
detector.detect(input, keypoints); 

Respuesta

7

convertir a cv :: Mat es como sigue.

std::vector<cv::KeyPoint> keypoints; 
std::vector<cv::Point2f> points; 
std::vector<cv::KeyPoint>::iterator it; 

for(it= keypoints.begin(); it!= keypoints.end();it++) 
{ 
    points.push_back(it->pt); 
} 

cv::Mat pointmatrix(points); 

Escribir al filestorage es

cv::FileStorage fs("test.yml", cv::FileStorage::WRITE); 
cv::FileStorage fs2("test2.xml", cv::FileStorage::WRITE); 

detector.write(fs); 
detector.write(fs2); 
Cuestiones relacionadas