2013-07-05 17 views
2

我試圖使用OpenCV和C++實現功能/對象跟蹤應用程序。目前我正在使用goodFeaturesToTrack函數從我的第一幀創建我的特徵向量。從那裏,我將它傳遞給calcOpticalFlowPyrLk方法來跟蹤後續幀中的點。難以找到FREAK特徵提取器的任何教程/示例

該方法速度相當快,但不穩定,不具有縮放或旋轉不變性。特徵傾向於一起漂移,迷路並鎖定到場景中的另一個角落。我一直在閱讀很多有關FREAK的內容,這看起來很有吸引力。希望它能解決我的穩定性問題,並且能夠保持規模和旋轉不變。

在試圖找到一些關於實現FREAK特徵提取器的幫助時,我碰到了this,這讓我很滿意,但正如您可能已經注意到的那樣,該文件已脫機!我只是好奇,如果有人可能保存了這個例子,或者對我在哪裏可以找到一些我可以學習和學習的替代源代碼有任何建議?

+0

根據您所提供的鏈接,FREAK只是一個描述符。這意味着您可以使用任何opencv示例進行圖像匹配,並用FREAK替換描述符。 – William

回答

2

OpenCV有一個樣本展示FREAK this link。 FREAK像其他任何一個功能提取器一樣,並且提供相同的界面。 FREAK未檢測到功能,因此您必須使用其他方法(如cv::goodFeaturesToTrack())來檢測興趣點。

該樣品的總結如下:

cv::Mat image; //This is the image 
std::vector<cv::KeyPoint> keypoints; // This comes from your feature detector of choice 

cv::Mat descriptors; 
cv::FREAK freak; 
freak.compute(image, keypoints, descriptors); 
// Now "descriptors" contains descriptor data for the input keypoints.