-
特征点类:
class KeyPoint
{ Point2f pt; //坐标
float size; //特征点邻域直径
float angle; //特征点的方向,值为[零,三百六十),负值表示不使用
float response;
int octave; //特征点所在的图像金字塔的组
int class_id; //用于聚类的id
}
-
存放匹配结果的结构:
struct DMatch
{ //三个构造函数
DMatch():
queryIdx(-1),trainIdx(-1),imgIdx(-1),distance(std::numeric_limits<float>::max()) {}
DMatch(int _queryIdx, int _trainIdx, float _distance ) :
queryIdx( _queryIdx),trainIdx( _trainIdx), imgIdx(-1),distance( _distance) {}
DMatch(int _queryIdx, int _trainIdx, int _imgIdx, float _distance ) : queryIdx(_queryIdx), trainIdx( _trainIdx), imgIdx( _imgIdx),distance( _distance) {}
int queryIdx; //此匹配对应的查询图像的特征描述子索引
int trainIdx; //此匹配对应的训练(模板)图像的特征描述子索引
int imgIdx; //训练图像的索引(若有多个)
float distance; //两个特征向量之间的欧氏距离,越小表明匹配度越高。
bool operator < (const DMatch &m) const;
};
-
trainIdx 是匹配之后所对应关键点的序号,第一个载入图片的匹配关键点序号
queryIdx 是匹配之后所对应关键点的序号,第二个载入图片的匹配关键点序号 -
根据序列号即可获得相应图片关键点的坐标、所属金字塔组等信息。
-
在得到匹配点对的坐标之后,即可进行相应的拼接、目标检测等操作。SURF、SIFT特征提取和FLANN、BF特征匹配以及根据欧式距离剔除误匹配代码下载地址: http://download.csdn.net/detail/u011028345/9770964
Opencv中特征点提取和匹配介绍
最新推荐文章于 2024-06-22 21:05:45 发布