【杂谈opencv】OpenCV中的KeyPoint与DMatch

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;
};









猜你喜欢

转载自blog.csdn.net/sinat_36264666/article/details/78800494
今日推荐