Opencv中特征点提取和匹配介绍

  1. 特征点类:

    class KeyPoint

    {            Point2f  pt;  //坐标

                 float  size; //特征点邻域直径

                 float  angle; //特征点的方向,值为[零,三百六十),负值表示不使用

                 float  response;

                 int  octave; //特征点所在的图像金字塔的组

                 int  class_id; //用于聚类的id

    }

  2. 存放匹配结果的结构:

    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;

    };

  3. trainIdx    是匹配之后所对应关键点的序号,第一个载入图片的匹配关键点序号
    queryIdx  是匹配之后所对应关键点的序号,第二个载入图片的匹配关键点序号
  4. 根据序列号即可获得相应图片关键点的坐标、所属金字塔组等信息。
  5. 在得到匹配点对的坐标之后,即可进行相应的拼接、目标检测等操作。SURF、SIFT特征提取和FLANN、BF特征匹配以及根据欧式距离剔除误匹配代码下载地址: http://download.csdn.net/detail/u011028345/9770964
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值