Sift算法-----part6

Sift算法-----part6

      前言:這是本系列的最後一部分了,我們剩下的唯一工作就是採取每個關鍵點的指紋,這樣才能把他從其他部分區別出來。

 


 

 

 

做法

 

      我們的目標是給每個關鍵點創建一個獨一無二的指紋,前提必須他很容易計算,另一方面我們希望他在作比較時能保持相對寬鬆,比較在不同的兩張圖片中,物體總是有或多或少的區別的。

爲了完成這個目標,我們爲每個關鍵點建立一個16*16的區域,這個區域被細分爲4*4的區域。如下圖:

 


 

 

 

            

      然後在這個4*4的區域類,方向梯度和梯度大小被計算出來,這些方向被放入一個8位的直方圖中。

                  

      梯度方向在0-44°的被放在第一個格子內,45-89°的被放在下一個格子類,依次類推,格子的高度大小與梯度的大小成正比。

 

      同時,格子的高度與改點與關鍵點的距離也有關係,越遠影響越小。這可以通過高斯權重公式完成。

                           

 


 

 

 

 

      對這16個像素,將其放入8格的直方圖中,對所有的16個區域進行計算,可以得到16*8=128個數字,我們用VECTOR來存儲着128個數字,這樣關鍵點就被這128個數字所標示。


 

 

總結:

 

 

希望大家能夠好好地利用SIFT算法。

任何疑問或者建議,請留下評論。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章