2011-10-04 83 views
5

我已經提取了(opencv開放源代碼)中的SIFT功能,並將它們提取爲關鍵點。現在,我想將它們轉換爲Matrix(使用它們的x,y座標)或將它們保存在文本文件中...轉換關鍵點或將其保存到文本文件opencv

在這裏,您可以看到用於提取關鍵點的示例代碼,現在我想知道如何將它們轉換爲MAT或將它們保存爲txt,xml或yaml ...

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

回答

7

轉換爲cv :: Mat如下。

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

寫入filestorage是

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

detector.write(fs); 
detector.write(fs2); 
相關問題