opencv中keypoint数据结构分析

分析opencv中keypoint数据结构的相关信息,找到opencv的document(http://docs.opencv.org/java/org/opencv/features2d/KeyPoint.html)。能够看到KeyPoint这数据结构中有以下数据结构:html

angle:角度,表示关键点的方向,经过Lowe大神的论文能够知道,为了保证方向不变形,SIFT算法经过对关键点周围邻域进行梯度运算,求得该点方向。-1为初值。java

class_id:当要对图片进行分类时,咱们能够用class_id对每一个特征点进行区分,未设定时为-1,须要靠本身设定算法

octave:表明是从金字塔哪一层提取的获得的数据。数据结构

pt:关键点点的坐标less

response:响应程度,表明该点强壮大小,一开始我也理解不了,看到两位stackoverflow大大的原话(http://stackoverflow.com/questions/10328298/what-does-size-and-response-exactly-represent-in-a-surf-keypointhttp://stackoverflow.com/questions/24699495/opencv-keypoints-response-greater-or-less?lq=1)——response表明着该关键点how good,更确切的说,是该点角点的程度。瞬间明白。spa

size:该点直径的大小htm

注意一个问题:keypoint只是保存了opencv的sift库检测到的特征点的一些基本信息,也就上面所说的这些,但sift所提取出来的特征向量其实不是在这个里面,特征向量经过SiftDescriptorExtractor 提取,结果放在一个Mat的数据结构中。这个数据结构才真正保存了该特征点所对应的特征向量。具体见后文对SiftDescriptorExtractor 所生成的对象的详解。对象