2013-02-21 44 views
0

我有2張圖片sourceImg,refImg。OpenCV - 尋找剛體點的變換clould

我已經提取的特徵,像這樣:

cv::GoodFeaturesToTrackDetector detector; 
std::vector<cv::KeyPoint> sourceKeyPoints, refKeyPoints; 
detector.detect(sourceImg, sourceKeyPoints); 
detector.detect(refImg, refKeyPoints); 

我想找到一個對象從refImg到sourceImg的翻譯。沒有旋轉或透視變化,只有簡單的2D翻譯。可能會有一些噪音。

findHomography()在兩組數據提取的特徵數量相同的情況下工作正常,甚至可以很好地處理噪音。

我的問題是,當功能數量不同時該怎麼辦?

有人可以指引我關於DescriptorExtractor和Matching的正確方向嗎?

注意:由於專利原因,我無法使用SURF/SIFT。

回答

0

您可以嘗試FlannBasedMatcherOpenCV。用它來匹配任何類型的描述符,然後用最好的匹配找到你的單應性。

+0

這很有用,謝謝。有哪些特徵提取器對哪些描述符最適用? – 2013-02-21 21:59:57

+0

@BillWilliamson通常,特徵檢測/提取方法與描述符計算方法有關,因此我建議您對任何給定的提取器使用相應的描述符(即使用SIFT檢測器選擇的特徵計算SIFT描述符)。或者,如果您打算詢問每種描述符使用哪種**匹配技術,我將無法幫助您。 – 2013-02-21 22:30:48