2011-02-07 63 views
1

我有兩個真實世界的圖像。 (重要)我大約知道一個現實世界到另一個世界的轉變。由於紋理問題,我沒有在兩幅圖像之間獲得足夠的匹配。如何使用SIFt將轉換信息納入考慮範圍以獲得更多正確的匹配。 任何想法都會有所幫助。與SIFT匹配(概念)

回答

1

您是否嘗試了其他方法?你確定SIFT是答案嗎?首先,OpenCV提供了SIFT等工具。 (目前,我不能說OpenCV足夠高)。

如果我解決這個問題,我先試試:

  1. 下采樣的兩個圖像,以減少「質感」的影響,即cvPyrDown。
  2. 執行一些特徵檢測:邊緣檢測等。OpenCV提供了一個Harris角點檢測器等。谷歌「cvGoodFeaturesToTrack」的一些細節。
  3. 如果您對轉換有很好的信心,請利用您的信息,並查找與轉換後的位置相對應的鄰域中的特徵。

如果你仍然想看看SIFT或SURF,OpenCV也提供這些功能。

+0

thanx爲你的答案,但你可以請提一下關於衝浪/ SIFt,我可以如何在算法中介紹我的轉換信息。 – Shahgee 2011-02-08 09:29:42

1

如果您知道變換,則應用變換,然後將SURF/SIFT應用於變換後的圖像。這是擴展特徵描述符/匹配器跨越大視角變化的魯棒性的一種標準方式。

0

還有另一種替代方案:

在SIFT參數,對比閾值被設定爲0.04。如果減少,並將其設置爲(0.02,0.01) SIFT會發現更多足夠的匹配:

SIFT(INT n功能= 0時,INT nOctaveLayers = 3,雙contrastThreshold = 0.04,雙邊緣閾值= 10,雙西格瑪= 1.6)

0

我認爲的第一步是嘗試使用SIFT算法的設置,以找到與您的問題相關的最佳效率。

另一種更有效使用SIFT的方法是將色彩信息添加到SIFT。因此,您可以將描述符中正在使用的點的顏色信息(RGB)添加到其中。例如,如果您的描述符大小爲10x128,則表明您在每個描述符中使用了10個點。現在您可以提取並添加三列,並將尺寸設置爲10x(128 + 3)[每個點的R-G-B]。這樣SIFT算法將會更有效率。但請記住,您需要對您的描述符應用權重,並使最後三列比其他128列更強。其實我不知道你的情況如何圖像。但這種方法幫了我很多。你可以看到這個修改使得SIFT比以前更強大。 類似的實現可以找到here