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:該點直徑的大小

 

转载自:

https://hk.saowen.com/a/8447b1a35c4f073bc22a0aa315ea01363d3d249e4982782006f26c8f689554b0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值