【杂谈opencv】OpenCV中的KeyPoint与DMatch

来源:互联网 发布:学士后java什么意思 编辑:程序博客网 时间:2024/06/05 07:49

1-特征点KeyPoint

class KeyPoint  {            Point2f  pt;  //坐标               float  size; //特征点邻域直径               float  angle; //特征点的方向,值为[零,三百六十),负值表示不使用               float  response;               int  octave; //特征点所在的图像金字塔的组               int  class_id; //用于聚类的id  }; 


=====================分割线=======================


2-存放匹配结果的结构DMatch

/*Class for matching keypoint descriptors - 用于匹配关键点描述符的类query descriptor index, train descriptor index, train image index, and distance between descriptors.*/class CV_EXPORTS_W_SIMPLE DMatch{public:    //三个构造函数    CV_WRAP DMatch();    CV_WRAP DMatch(int _queryIdx, int _trainIdx, float _distance);    CV_WRAP DMatch(int _queryIdx, int _trainIdx, int _imgIdx, float _distance);    CV_PROP_RW int queryIdx; // query descriptor index - 此匹配对应的查询图像的特征描述子索引     CV_PROP_RW int trainIdx; // train descriptor index - 此匹配对应的训练(模板)图像的特征描述子索引     CV_PROP_RW int imgIdx;   // train image index - 训练图像索引(若有多个) //例如已知一幅图像的sift描述子,与其他十幅图像的描述子进行匹配,找最相似的图像,则imgIdx此时就有用了。    CV_PROP_RW float distance; // //两个特征向量之间的欧氏距离,越小表明匹配度越高。//DMatch比较运算符重载,比较的是DMatch中的distance,小于为true,否则为false    // less is better    bool operator<(const DMatch &m) const;};