2013-02-16 47 views
0

我有一套模板圖像,我需要將其與測試圖像進​​行比較並找到最佳匹配。考慮到我們有一個SIFT描述符,我選擇最佳特徵匹配,並且距離最佳匹配3 *距離內的所有特徵匹配被認爲是良好匹配。然後我加上所有好匹配的距離。我不知道這是否是一個好的方法,因爲我認爲我應該把好匹配的數目,而不僅僅是好匹配之間的距離的平均值。我是新來的模板匹配,所以我會很感激你的投入。使用來自openCV的特徵進行模板匹配

回答

1

在這些測試圖像中,您總是以相同的視角查找模板(未失真)?如果是這樣,我會推薦比使用特徵點匹配更精確的技術。 OpenCV提供了一個名爲matchTemplate()的函數,甚至有一個gpu實現。您的度量可以基於該函數的像素平均結果。

如果它們失真了,那麼使用SIFT或SURF就足夠了。您應該通過findHomography()發送您的積分比賽,這將使用RANSAC刪除異常值。在此測試中存在的匹配數量可以用作判斷是否找到對象的度量。

+0

他們實際上是扭曲的。 findHomography如何識別要移除的異常值?在投入findHomography之前,我應該只選擇好的特徵匹配還是讓RANSAC選擇好的匹配?我通過findHomography獲得好的比賽嗎? – vkaul11 2013-02-18 06:08:35

+0

查看OpenCV提供的示例程序matcher_simple。它有一個基於SURF的實現提供匹配。從這一點開始,您可以調用findHomography,它將輸出OutputArray掩碼中的inlier點。 – 2013-02-18 16:51:02