2012-03-28 56 views
0

我已經採用的OpenCV來檢測特徵開始:訓練圖像在openCV中意味着什麼?

序列等:

cv::SurfFeatureDetector detector(40 ); 
std::vector<cv::KeyPoint> keypoints_object; 
detector.detect(img_object, keypoints_object); 
//-- Step 2: Calculate descriptors (feature vectors) 
cv::SurfDescriptorExtractor extractor; 
cv::Mat descriptors_object, descriptors_scene; 
extractor.compute(img_object, keypoints_object, descriptors_object); 
//-- Step 3: Matching descriptor vectors using FLANN matcher 

將提取其可以對來自其他圖像中提取的特徵被匹配的圖像的特徵。在這種情況下,「訓練圖像」是什麼意思。

我一定要像多次旋轉和/或縮放?

如果是這樣的。可以將這些特徵合併爲一個描述符嗎?在特徵提取的背景下

回答

2

培訓形象讓我覺得分類。您可以從不同類別中提取一組訓練圖像,從中提取特徵。然後,您嘗試使用此功能來學習某種分類器。所以你使用這些圖像來訓練分類器。

SURF特點是規模和旋轉不變的。所以不需要縮放或旋轉圖像。

要獲得每幅圖像單一特徵向量,你可以使用一個bag of words model

+0

+1我將實際使用FAST功能,可我存儲他們在一個DB和匹配他們免受凸輪拍攝的圖像,withou任何訓練過程? – stacker 2012-03-28 12:29:37

+0

當然可以。這個過程被稱爲[1最近鄰居分類器](http://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm)。然後,訓練階段僅包括將圖片添加到數據庫。 – sietschie 2012-03-28 12:34:55

+0

謝謝,我還發現了另一個資源(用於記錄)http://opencv.willowgarage.com/documentation/cpp/k_nearest_neighbors.html – stacker 2012-03-28 12:42:26