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算法。

任何疑问或者建议,请留下评论。

 

 

 

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