Sift算法-----part3

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~

发布了41 篇原创文章 · 获赞 9 · 访问量 23万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章