Sift算法-----part3
前言:知道現在,我們已經創建了尺度空間,並利用它計算出高斯差,這些是用來計算尺度不變的LOG,這些工作將會產生關鍵點。
找到關鍵點,有兩個步驟:
1、在DOG圖像中找到最大值和最小值的分佈情況。
2、找到最大值和最小值的亞像素點。
DOG圖像中的最大值和最小值分佈
第一步就是粗略地找出最大值和最小值的分佈情況。這很簡單,你遍歷每一個像素點和它的所有相鄰點。這種檢查不只在當前圖像中,同時包括它在一個容器中的上一層和下一層圖片。就像這樣:
x表示當前像素點,綠色點表示x的周圍像素點,如果x比周圍26個點都大或者小,那麼x點就是關鍵點。
通常一個非關鍵點的像素點,不需檢查多個,檢查幾個像素點就會丟棄它。
注意那些像素點不用在一個容器中的最底層和最高層檢查 ,他們一般不具有足夠的相鄰像素點去比較,所以不用去搭理他們。
一旦,這些完成任務,這些受到標記的點是近似的最大值和最小值,這些點使趨近最大值或者最小值是因爲他們幾乎都在一個像素點內。但是,我們不能排除那些在像素點之間數據,所以我們必須算出那些亞像素點。
紅色的點表示像素點,而綠色點表示其中的極大值
找到亞最大(最小)像素點(http://www.china-vision.net/technology/soft/200708/6403.html):
使用這些已知的像素點數據,亞像素點的值能夠被計算出。這能夠對近似關鍵點使用taylor表達式求解出來。
數學上,他是這樣定義的:
我們能夠很容易地計算出這個方程式的極點,求解我們能得到亞像素的點。這些亞像素點增加了匹配的成功率和算法的穩定性。
實例:
SIFT的作者推薦2個這樣的極值圖,因此我們需要4張DOG圖片,因而在一個容器中我們需要5張圖片。
總結:
我們已經能夠計算出DOG圖片中的最大值和最小值,即關鍵點,下一步我們將對這些關鍵點進行檢查,排除某些關鍵點,且聽下回分解!
任何疑問或者建議,請留下評論!謝謝!O(∩_∩)O~