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


    SiftDescriptorExtractor对应于SIFT算法中特征向量提取的工作,通过他对关键点周围邻域内的像素分块进行梯度运算,得到128维的特征向量。具体有如下几个操作:

    0、首先,我们假设在之前关键点提取的步骤中,我们对一个三角形提取关键点,检测到其中一个关键点的坐标为三角形的一个角(如下面用红圈圈出的),如下图

    image_thumb12

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

    image_thumb4

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

    image_thumb11

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

    image_thumb9

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

    image_thumb10

    使用举一个实际的例子分析:

    用opencv对一个三角形进行特征点检测,得到如下结果:

    image_thumb18

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

    image_thumb19

    这幅图的每一行就是一个128维的特征向量,维度用0-255表示。黑一些就是小,白就是大。

    粗略可以看出,这些特征点排布较为相似,因为都是角

    再来一个:

    image_thumb20

    image_thumb23

  • 相关阅读:
    设计模式享元模式实现C++
    并查集
    设计模式代理模式实现C++
    设计模式装饰模式实现C++
    最小生成树Prim算法实现
    图的邻接矩阵存储
    威佐夫博弈(Wythoff Game)初识 HDU 1527 POJ 1067
    设计模式原型模式实现C++
    三种经典博弈问题 BashGame;WythoffGame;NimmGame;
    设计模式外观模式实现C++
  • 原文地址:https://www.cnblogs.com/cj695/p/4045443.html
Copyright © 2020-2023  润新知