2017-05-06 215 views
0

使用OpenCV SIFT算法,我可以獲得2張圖像之間的匹配和非匹配特徵點。我的解決方案是here
匹配(綠色)和非匹配(紅色)特徵點的分佈如下所示(我無法顯示實際圖像,但圖像主要包含文本) enter image description here 我想計算密度函數用於圖像上的匹配點和非匹配點(即,給定圖像上的nXn區域,密度函數應該給出在該nXn區域內存在多少匹配點)。我怎樣才能做到這一點?
其次,我想計算一個函數,該函數給出圖像上nXn區域內的匹配和非匹配特徵點的密度比率。
我在Windows 7上使用Python代碼並從最新的OpenCV源代碼構建。OpenCV特徵點密度

+0

你可以發佈匹配和不匹配的特徵點的圖像,以便更好地瞭解它們的分佈嗎? –

+0

@ElouarnLaine檢查圖像 –

+0

我的回答對你有幫助嗎?如果不是,你能解釋一下爲什麼我可以改進我的答案。謝謝。 –

回答

0

要計算密度匹配不匹配的關鍵點您可以將您的圖像在一個給定大小的子廣場和計算每平方兩個密度。看下面的例子:

local densities on a given square 這將允許離散化在同一區域的表面密度。計算給定方的密度,則可以執行以下操作:

  • 創建對應於所述一個正方形Rect(X,Y,寬度,高度)對象。
  • 遍歷所有不匹配的關鍵點,並檢查其中有多少是在矩形包含(你可以使用矩形。contains(點))。
  • 匹配關鍵點重複上述步驟。
  • 計算密度(每平方像素的關鍵點),如我的示例圖片所示。

N.B.其實,矩形只存在於OpenCV的C++,這樣你就可以重新創建一個矩形(及其包含法)在Python類,如果你想(儘管這樣不是必需的)。