一种基于改进SIFT算法的图像关键点检测方法与流程

文档序号:12804900阅读:221来源:国知局

本发明涉及一种基于改进sift算法的图像关键点检测方法。



背景技术:

目前在基于改进sift算法的图像拼接相关技术中,主要缺点表现为:步骤较多,计算复杂且计算量较大,计算速率低,导致图像配准效率低;其他相关技术中,在计算量上降低了,相对提高了配准速率,但是在配准精确度上也降低了,现实要求中得不到满足。



技术实现要素:

本发明的目的在于克服现有技术中图像配准速率跟图像配准精确度不能并存的不足,提供一种基于改进sift算法的图像关键点检测方法。

本发明采用的技术方案是:

一种基于改进sift算法的图像关键点检测方法,其包括以下步骤:

步骤1:首先从图像上任取一个采样点(x1,y1,s),(x1,y1)表示采样点的坐标,s表示采样点位于dog金字塔的第s层;

步骤2:将此采样点跟该s层的8个相邻比较点进行逐一比较;分别获得s层的8个比较结果;

步骤3:基于s层的8个比较结果判断得到该s层的极值点;

步骤4:将s层的极值点跟该s+1层的9个相邻比较点进行逐一比较;分别获得s+1层的9个比较结果;

步骤5:基于s+1层的9个比较结果判断得到该s+1层的极值点;

步骤6:将s+1层的极值点跟该s-1层的9个相邻比较点进行逐一比较;分别获得s-1层的9个比较结果;

步骤7:基于s-1层的9个比较结果判断得到该s-1层的极值点;

步骤8:所述s-1层、s层和s+1层的极值点进一步比较得到最终极值点作为图像的局部关键点。

进一步地,所述步骤2中8个比较结果依次记为δd1—δd8,其中δd带正负号,正值表示采样点大于比较点,负值表示采样点小于比较点。

进一步地,所述步骤3判断极值点的方法为:当δd1—δd8的值都为正数时,则采样点是该s层的极大值,并将该s层的极大值的作为s层的极值点;当δd1—δd8的值都为负数时,则采样点是该s层的极小值,并将该s层的极小值的作为s层的极值点;当δd1—δd8的值既有正数又有负数时,则选择δd1—δd8绝对值最大的比较点作为s层的极值点。

进一步地,所述步骤4中9个比较结果依次记为δd9—δd17,其中δd带正负号,正值表示s层的极值点大于比较点,负值表示s层的极值点小于比较点。

进一步地,所述步骤5判断极值点的方法为:当δd9—δd17的值都为正数时,则s层的极值点是该s+1层的极大值,并将该s+1层的极大值的作为s+1层的极值点;当δd9—δd17的值都为负数时,则s层的极值点是该s+1层的极小值,并将该s+1层的极小值的作为s+1层的极值点;当δd9—δd17的值既有正数又有负数时,则选择δd9—δd17绝对值最大的比较点作为s+1层的极值点极值点。

进一步地,所述步骤6中9个比较结果依次记为δd18—δd26,其中δd带正负号,正值表示s+1层的极值点大于比较点,负值表示s+1层的极值点小于比较点。

进一步地,所述步骤7判断极值点的方法为:当δd18—δd26的值都为正数时,则s+1层的极值点是该s-1层的极大值,并将该s-1层的极大值的作为s-1层的极值点;当δd18—δd26的值都为负数时,则s+1层的极值点是该s-1层的极小值,并将该s-1层的极小值的作为s-1层的极值点;当δd18—δd26的值既有正数又有负数时,则选择δd18—δd26绝对值最大的比较点作为极值点。

本发明采用以上技术方案,在极值点检测过程中采用局部检测的方法可以有效的弥补这些缺陷。采用单层搜索极值点,减少了全局搜索极值点的计算开销;单层间的采样点与相邻比较点进行逐一比较并实时将当前得到的极值点替换为当前的采样点,提高了极值点的检测精确度且不会丢失极值点。

附图说明

以下结合附图和具体实施方式对本发明做进一步详细说明;

图1为本发明一种基于改进sift算法的图像关键点检测方法的流程示意图。

具体实施方式

如图1所示,本发明公开一种基于改进sift算法的图像关键点检测方法,其包括以下步骤:

步骤1:首先从图像上任取一个采样点(x1,y1,s),(x1,y1)表示采样点的坐标,s表示采样点位于dog金字塔的第s层;

步骤2:将此采样点跟该s层的8个相邻比较点进行逐一比较;分别获得s层的8个比较结果;

步骤3:基于s层的8个比较结果判断得到该s层的极值点;

步骤4:将s层的极值点跟该s+1层的9个相邻比较点进行逐一比较;分别获得s+1层的9个比较结果;

步骤5:基于s+1层的9个比较结果判断得到该s+1层的极值点;

步骤6:将s+1层的极值点跟该s-1层的9个相邻比较点进行逐一比较;分别获得s-1层的9个比较结果;

步骤7:基于s-1层的9个比较结果判断得到该s-1层的极值点;

步骤8:所述s-1层、s层和s+1层的极值点进一步比较得到最终极值点作为图像的局部关键点。

进一步地,所述步骤2中8个比较结果依次记为δd1—δd8,其中δd带正负号,正值表示采样点大于比较点,负值表示采样点小于比较点。

进一步地,所述步骤3判断极值点的方法为:当δd1—δd8的值都为正数时,则采样点是该s层的极大值,并将该s层的极大值的作为s层的极值点;当δd1—δd8的值都为负数时,则采样点是该s层的极小值,并将该s层的极小值的作为s层的极值点;当δd1—δd8的值既有正数又有负数时,则选择δd1—δd8绝对值最大的比较点作为s层的极值点。

进一步地,所述步骤4中9个比较结果依次记为δd9—δd17,其中δd带正负号,正值表示s层的极值点大于比较点,负值表示s层的极值点小于比较点。

进一步地,所述步骤5判断极值点的方法为:当δd9—δd17的值都为正数时,则s层的极值点是该s+1层的极大值,并将该s+1层的极大值的作为s+1层的极值点;当δd9—δd17的值都为负数时,则s层的极值点是该s+1层的极小值,并将该s+1层的极小值的作为s+1层的极值点;当δd9—δd17的值既有正数又有负数时,则选择δd9—δd17绝对值最大的比较点作为s+1层的极值点极值点。

进一步地,所述步骤6中9个比较结果依次记为δd18—δd26,其中δd带正负号,正值表示s+1层的极值点大于比较点,负值表示s+1层的极值点小于比较点。

进一步地,所述步骤7判断极值点的方法为:当δd18—δd26的值都为正数时,则s+1层的极值点是该s-1层的极大值,并将该s-1层的极大值的作为s-1层的极值点;当δd18—δd26的值都为负数时,则s+1层的极值点是该s-1层的极小值,并将该s-1层的极小值的作为s-1层的极值点;当δd18—δd26的值既有正数又有负数时,则选择δd18—δd26绝对值最大的比较点作为极值点。

本发明采用以上技术方案,相对的,在极值点检测过程中采用局部检测的方法可以有效的弥补这些缺陷。采用单层搜索极值点,减少了全局搜索极值点的计算开销;单层间的采样点与相邻比较点进行逐一比较并实时将当前得到的极值点替换为当前的采样点,提高了极值点的检测精确度且不会丢失极值点。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1