OpenCV特征匹配相关结构(KeyPoint&DMatch类型简介)

1. 特征点类:

[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. class KeyPoint  
  2. {            Point2f  pt;  //坐标  
  3.              float  size; //特征点邻域直径  
  4.              float  angle; //特征点的方向,值为[零,三百六十),负值表示不使用  
  5.              float  response;  
  6.              int  octave; //特征点所在的图像金字塔的组  
  7.              int  class_id; //用于聚类的id  
  8. }  
[cpp]  view plain  copy
  1. class KeyPoint  
  2. {            Point2f  pt;  //坐标  
  3.              float  size; //特征点邻域直径  
  4.              float  angle; //特征点的方向,值为[零,三百六十),负值表示不使用  
  5.              float  response;  
  6.              int  octave; //特征点所在的图像金字塔的组  
  7.              int  class_id; //用于聚类的id  
  8. }  
2.  存放匹配结果的结构:
[cpp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. struct DMatch  
  2. {         //三个构造函数  
  3.           DMatch():  
  4. queryIdx(-1),trainIdx(-1),imgIdx(-1),distance(std::numeric_limits<float>::max()) {}  
  5.           DMatch(int  _queryIdx, int  _trainIdx, float  _distance ) :  
  6. queryIdx( _queryIdx),trainIdx( _trainIdx), imgIdx(-1),distance( _distance) {}  
  7.           DMatch(int  _queryIdx, int  _trainIdx, int  _imgIdx, float  _distance ) :                   queryIdx(_queryIdx), trainIdx( _trainIdx), imgIdx( _imgIdx),distance( _distance) {}  
  8.           int queryIdx;  //此匹配对应的查询图像的特征描述子索引  
  9.           int trainIdx;   //此匹配对应的训练(模板)图像的特征描述子索引  
  10.           int imgIdx;    //训练图像的索引(若有多个)  
  11.           float distance;  //两个特征向量之间的欧氏距离,越小表明匹配度越高。  
  12.           bool operator < (const DMatch &m) const;  
  13. };  
[cpp]  view plain  copy
  1. struct DMatch  
  2. {         //三个构造函数  
  3.           DMatch():  
  4. queryIdx(-1),trainIdx(-1),imgIdx(-1),distance(std::numeric_limits<float>::max()) {}  
  5.           DMatch(int  _queryIdx, int  _trainIdx, float  _distance ) :  
  6. queryIdx( _queryIdx),trainIdx( _trainIdx), imgIdx(-1),distance( _distance) {}  
  7.           DMatch(int  _queryIdx, int  _trainIdx, int  _imgIdx, float  _distance ) :                   queryIdx(_queryIdx), trainIdx( _trainIdx), imgIdx( _imgIdx),distance( _distance) {}  
  8.           int queryIdx;  //此匹配对应的查询图像的特征描述子索引  
  9.           int trainIdx;   //此匹配对应的训练(模板)图像的特征描述子索引  
  10.           int imgIdx;    //训练图像的索引(若有多个)  
  11.           float distance;  //两个特征向量之间的欧氏距离,越小表明匹配度越高。  
  12.           bool operator < (const DMatch &m) const;  
  13. };  
3.  图片中特征点欧式距离的计算公式:
0ρ = √( (x1-x2)2+(y1-y2)2 ) |x| = √( x2 + y2 )

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值