2013-07-03 212 views
1

沒有任何人有一個想法如何規範化規範化scipy.ndimage.filters.correlate

scipy.ndimage.filters.correlate 

函數來獲得:

XCM = 1/N(xc(a-mu_a,b-mu_b)/(sig_a*sig_b)) 

什麼是N的關係嗎?它通常是圖像的數據點/像素的數量。 我應該選擇哪個值爲scipy.ndimage.filters.correlate? 我的圖像大小不同。我猜scipy相關函數將小圖像填充爲零?

最終矩陣的大小 N = XCM.sizeX() * XCM.sizeY()

感謝, 薩爾瓦多

回答

8

它看起來對我像你試圖計算兩幅圖像的歸一化互相關(我懷疑你可能想要做模板匹配?)。這個答案假設規範化的互相關是你想要的。

  • 當你計算你的兩幅圖像之間的標準化的互相關性,你在做減法的平均值,並通過在它們重疊的區域標準差到這兩個模板,參考圖像將是等效的。

  • 這裏,Ñ將等於在模板,像素的數量是相同的模板和參考圖像之間的重疊的局部區域的像素的數量爲你上滑動模板參考資料。

  • 您應該閱讀Wikipedia article on cross-correlation,尤其是this bit以瞭解歸一化互相關的定義以及每個術語的含義。

  • This article by Lewis (1995)有一個更深入的解釋,也描述了一些用於有效計算歸一化互相關的巧妙技巧。

  • 我還寫了我自己的Python函數進行模板匹配,包括基於劉易斯和MATLAB的一些片段的歸一化互相關。你可以找到源here

讓我知道如果你有更多的問題,我會去解釋。

+0

事實上,我正在做TM,你的第二點是我正在尋找的。它只是提醒我。我不確定這個功能會做什麼,但顯然這是我以前也執行過很多次的功能。歡呼聲,EL –

3

歸一化互相關(NCC)也包含在scikit-image中作爲skimage.feature.match_template。見this template matching example

您也可以使用matchTemplate方法對OpenCV執行相同的操作。從Python到OpenCV有許多很好的綁定,但如果你只需要模板匹配,它有點矯枉過正。我會用scikit形象去。