opencvcontrib,Opencv的KeyPoint和DMatch數據結構

 2023-12-25 阅读 53 评论 0

摘要:/* * Struct for matching: query descriptor index, train descriptor index, train image index and distance between descriptors. */ /* * DMatch主要用來儲存匹配信息的結構體,query是要匹配的描述子,train是被匹配的描述子,在Opencv中進行匹配時
/* * 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:代表是從金字塔哪一層提取的得到的數據。

opencvcontrib。pt:關鍵點點的坐標

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

size:該點直徑的大小

轉載于:https://www.cnblogs.com/TransTown/p/7396996.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/195006.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息