2011-10-04 13 views
5

Ho estratto le caratteristiche SIFT in (opencv open source) e sono estratte come punti chiave. Ora, vorrei convertirli in Matrix (con le loro coordinate xey) o salvarli in un file di testo ...convertire i punti chiave in opachi o salvarli nel file di testo opencv

Qui, puoi vedere un codice di esempio per estrarre i punti chiave e ora mi piacerebbe sapere come convertire loro di stuoia o salvarli in txt, xml o YAML ...

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

risposta

7

Converti cv :: Mat è la seguente.

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

Scrivi filestorage è

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

detector.write(fs); 
detector.write(fs2); 
Problemi correlati