2011-10-04 8 views
5

Mam wypakowane funkcje SIFT w (opencv open source) i są one wyodrębniane jako punkty kluczowe. Teraz chciałbym przekonwertować je na Matrix (z ich współrzędnymi x, y) lub zapisać je w pliku tekstowym ...Konwertuj punkty końcowe na macie lub zapisz je do pliku tekstowego opencv

Tutaj możesz zobaczyć przykładowy kod do wyodrębniania punktów kluczowych, a teraz chciałbym wiedzieć, jak konwertować je do Mat lub zapisać je w formacie tXT, XML lub YAML ...

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

Odpowiedz

7

Konwersja do cv :: Mat jest następujący.

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

Napisz do filestorage jest

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

detector.write(fs); 
detector.write(fs2); 
Powiązane problemy