您的位置:首页 > 运维架构

opencv中SiftDescriptorExtractor所做的SIFT特征向量提取工作简单分析

2017-10-17 17:19 676 查看


opencv中SiftDescriptorExtractor所做的SIFT特征向量提取工作简单分析

SiftDescriptorExtractor对应于SIFT算法中特征向量提取的工作,通过他对关键点周围邻域内的像素分块进行梯度运算,得到128维的特征向量。具体有如下几个操作:
0、首先,我们假设在之前关键点提取的步骤中,我们对一个三角形提取关键点,检测到其中一个关键点的坐标为三角形的一个角(如下面用红圈圈出的),如下图



放大看,假设检测到该关键点的方向如下图:



1、将关键点周围的像素旋转到一个统一的方向,以保证方向不变性。如下图



2、将这些像素分成4X4的小块



对每个格子进行分析,将格子中的像素计算梯度,映射到8个方向上,对于每一个格子,可以得到一个8维的向量,对于一个关键点周围16个格子,则得到了16X8=128维的向量,这就是一个关键点特征向量。



使用举一个实际的例子分析:
用opencv对一个三角形进行特征点检测,得到如下结果:



提取特征向量,得到如下结果:



这幅图的每一行就是一个128维的特征向量,维度用0-255表示。黑一些就是小,白就是大。
粗略可以看出,这些特征点排布较为相似,因为都是角
再来一个:







本博客(http://www.cnblogs.com/cj695/)未标明转载的内容均为本站原创,非商业用途转载时请署名(77695)并注明来源(http://www.cnblogs.com/cj695/)。商业用途请联系作者(77695) QQ:646710030。作者(77695)保留本博客所有内容的一切权利。

独立博客:http://nfeng.cc/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: