OpenCV特征匹配相关结构(KeyPoint&DMatch)

    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.  图片中特征点欧式距离的计算公式:
    0ρ = √( (x1-x2)2+(y1-y2)2 ) |x| = √( x2 + y2 )



你可能感兴趣的:(类,opencv)