Opencv的KeyPoint和DMatch數據結構


/* 
 * Struct for matching: query descriptor index, train descriptor index, train image index and distance between descriptors. 
 */  
 /* 
  * DMatch主要用來儲存匹配信息的結構體,query是要匹配的描述子,train是被匹配的描述子,在Opencv中進行匹配時 
  * void DescriptorMatcher::match( const Mat& queryDescriptors, const Mat& trainDescriptors, vector<DMatch>& matches, const Mat& mask ) const 
  * match函數的參數中位置在前面的為query descriptor,后面的是 train descriptor 
  * 例如:query descriptor的數目為20,train descriptor數目為30,則DescriptorMatcher::match后的vector<DMatch>的size為20 
  * 若反過來,則vector<DMatch>的size為30 
  *  
 */  
struct CV_EXPORTS_W_SIMPLE DMatch  
{  
    //默認構造函數,FLT_MAX是無窮大  
    //#define FLT_MAX         3.402823466e+38F        /* max value */  
    CV_WRAP DMatch() : queryIdx(-1), trainIdx(-1), imgIdx(-1), distance(FLT_MAX) {}  
    //DMatch構造函數  
    CV_WRAP DMatch( int _queryIdx, int _trainIdx, float _distance ) :  
            queryIdx(_queryIdx), trainIdx(_trainIdx), imgIdx(-1), distance(_distance) {}  
    //DMatch構造函數  
    CV_WRAP DMatch( int _queryIdx, int _trainIdx, int _imgIdx, float _distance ) :  
            queryIdx(_queryIdx), trainIdx(_trainIdx), imgIdx(_imgIdx), distance(_distance) {}  
  
    //queryIdx為query描述子的索引,match函數中前面的那個描述子  
    CV_PROP_RW int queryIdx; // query descriptor index  
    //trainIdx為train描述子的索引,match函數中后面的那個描述子  
    CV_PROP_RW int trainIdx; // train descriptor index  
    //imgIdx為進行匹配圖像的索引  
    //例如已知一幅圖像的sift描述子,與其他十幅圖像的描述子進行匹配,找最相似的圖像,則imgIdx此時就有用了。  
    CV_PROP_RW int imgIdx;   // train image index  
    //distance為兩個描述子之間的距離  
    CV_PROP_RW float distance;  
    //DMatch比較運算符重載,比較的是DMatch中的distance,小於為true,否則為false  
    // less is better  
    bool operator<( const DMatch &m ) const  
    {  
        return distance < m.distance;  
    }  
};  

  


KeyPoint這數據結構中有如下數據結構(http://docs.opencv.org/3.3.0/d2/d29/classcv_1_1KeyPoint.html):

angle:角度,表示關鍵點的方向,通過Lowe大神的論文可以知道,為了保證方向不變形,SIFT算法通過對關鍵點周圍鄰域進行梯度運算,求得該點方向。-1為初值。

class_id:當要對圖片進行分類時,我們可以用class_id對每個特征點進行區分,未設定時為-1,需要靠自己設定

octave:代表是從金字塔哪一層提取的得到的數據。

pt:關鍵點點的坐標

response:響應程度,代表該點強壯大小—response代表着該關鍵點how good,更確切的說,是該點角點的程度。

size:該點直徑的大小


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM