OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
cv::FlannBasedMatcher 類參考

基於 Flann 的描述符匹配器。 更多...

#include <opencv2/features2d.hpp>

cv::FlannBasedMatcher 協作圖

公共成員函式

 FlannBasedMatcher (const Ptr< flann::IndexParams > &indexParams=makePtr< flann::KDTreeIndexParams >(), const Ptr< flann::SearchParams > &searchParams=makePtr< flann::SearchParams >())
 
virtual void add (InputArrayOfArrays descriptors) CV_OVERRIDE
 新增描述符以訓練 CPU (trainDescCollectionis) 或 GPU (utrainDescCollectionis) 描述符集合。
 
virtual void clear () CV_OVERRIDE
 清除訓練描述符集合。
 
virtual CV_NODISCARD_STD Ptr< DescriptorMatcherclone (bool emptyTrainData=false) const CV_OVERRIDE
 克隆匹配器。
 
virtual bool isMaskSupported () const CV_OVERRIDE
 如果描述符匹配器支援遮罩允許的匹配,則返回 true。
 
virtual void read (const FileNode &) CV_OVERRIDE
 從檔案儲存中讀取演算法引數。
 
virtual void train () CV_OVERRIDE
 訓練描述符匹配器。
 
virtual void write (FileStorage &) const CV_OVERRIDE
 將演算法引數儲存到檔案儲存中。
 
- 繼承自 cv::DescriptorMatcher 的公共成員函式
virtual ~DescriptorMatcher ()
 
virtual bool empty () const CV_OVERRIDE
 如果兩個集合中都沒有訓練描述符,則返回 true。
 
const std::vector< Mat > & getTrainDescriptors () const
 返回訓練描述符集合 trainDescCollection 的常量連結。
 
void knnMatch (InputArray queryDescriptors, InputArray trainDescriptors, std::vector< std::vector< DMatch > > &matches, int k, InputArray mask=noArray(), bool compactResult=false) const
 為查詢集中的每個描述符查詢 k 個最佳匹配。
 
void knnMatch (InputArray queryDescriptors, std::vector< std::vector< DMatch > > &matches, int k, InputArrayOfArrays masks=noArray(), bool compactResult=false)
 
void match (InputArray queryDescriptors, InputArray trainDescriptors, std::vector< DMatch > &matches, InputArray mask=noArray()) const
 為查詢集中的每個描述符查詢最佳匹配。
 
void match (InputArray queryDescriptors, std::vector< DMatch > &matches, InputArrayOfArrays masks=noArray())
 
void radiusMatch (InputArray queryDescriptors, InputArray trainDescriptors, std::vector< std::vector< DMatch > > &matches, float maxDistance, InputArray mask=noArray(), bool compactResult=false) const
 對於每個查詢描述符,查詢距離不超過指定距離的訓練描述符。
 
void radiusMatch (InputArray queryDescriptors, std::vector< std::vector< DMatch > > &matches, float maxDistance, InputArrayOfArrays masks=noArray(), bool compactResult=false)
 
void read (const String &fileName)
 
void write (const Ptr< FileStorage > &fs, const String &name) const
 
void write (const String &fileName) const
 
void write (FileStorage &fs, const String &name) const
 
- 繼承自 cv::Algorithm 的公共成員函式
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual String getDefaultName () const
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
void write (FileStorage &fs, const String &name) const
 

靜態公共成員函式

static Ptr< FlannBasedMatchercreate ()
 
- 繼承自 cv::DescriptorMatcher 的靜態公共成員函式
static Ptr< DescriptorMatchercreate (const DescriptorMatcher::MatcherType &matcherType)
 
static Ptr< DescriptorMatchercreate (const String &descriptorMatcherType)
 使用預設引數(使用預設建構函式)建立給定型別的描述符匹配器。
 
- 繼承自 cv::Algorithm 的靜態公共成員函式
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 從檔案中載入演算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 從字串載入演算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 從檔案節點讀取演算法。
 

保護成員函式

virtual void knnMatchImpl (InputArray queryDescriptors, std::vector< std::vector< DMatch > > &matches, int k, InputArrayOfArrays masks=noArray(), bool compactResult=false) CV_OVERRIDE
 
virtual void radiusMatchImpl (InputArray queryDescriptors, std::vector< std::vector< DMatch > > &matches, float maxDistance, InputArrayOfArrays masks=noArray(), bool compactResult=false) CV_OVERRIDE
 
- 繼承自 cv::DescriptorMatcher 的保護成員函式
void checkMasks (InputArrayOfArrays masks, int queryDescriptorsCount) const
 
- 繼承自 cv::Algorithm 的保護成員函式
void writeFormat (FileStorage &fs) const
 

靜態保護成員函式

static void convertToDMatches (const DescriptorCollection &descriptors, const Mat &indices, const Mat &distances, std::vector< std::vector< DMatch > > &matches)
 
- 繼承自 cv::DescriptorMatcher 的靜態保護成員函式
static CV_NODISCARD_STD Mat clone_op (Mat m)
 
static bool isMaskedOut (InputArrayOfArrays masks, int queryIdx)
 
static bool isPossibleMatch (InputArray mask, int queryIdx, int trainIdx)
 

保護屬性

int addedDescCount
 
Ptr< flann::Index > Pose
 
Ptr< flann::IndexParams > indexParams
 
DescriptorCollection mergedDescriptors
 
Ptr< flann::SearchParams > searchParams
 
- 繼承自 cv::DescriptorMatcher 的保護屬性
std::vector< MattrainDescCollection
 來自訓練影像的描述符集合。
 
std::vector< UMatutrainDescCollection
 

額外繼承成員

- 繼承自 cv::DescriptorMatcher 的公共型別
列舉  MatcherType {
  FLANNBASED = 1 ,
  BRUTEFORCE = 2 ,
  BRUTEFORCE_L1 = 3 ,
  BRUTEFORCE_HAMMING = 4 ,
  BRUTEFORCE_HAMMINGLUT = 5 ,
  BRUTEFORCE_SL2 = 6
}
 

詳細描述

基於 Flann 的描述符匹配器。

此匹配器在訓練描述符集合上訓練 cv::flann::Index 並呼叫其最近鄰搜尋方法以找到最佳匹配。因此,當匹配大型訓練集合時,此匹配器可能比暴力匹配器更快。FlannBasedMatcher 不支援遮罩描述符集的允許匹配,因為 flann::Index 不支援此功能。

建構函式 & 解構函式文件

◆ FlannBasedMatcher()

cv::FlannBasedMatcher::FlannBasedMatcher ( const Ptr< flann::IndexParams > & indexParams = makePtr< flann::KDTreeIndexParams >(),
const Ptr< flann::SearchParams > & searchParams = makePtr< flann::SearchParams >() )
Python
cv.FlannBasedMatcher([, indexParams[, searchParams]]) -> <FlannBasedMatcher object>

成員函式文件

◆ add()

virtual void cv::FlannBasedMatcher::add ( InputArrayOfArrays descriptors)
virtual

新增描述符以訓練 CPU (trainDescCollectionis) 或 GPU (utrainDescCollectionis) 描述符集合。

如果集合不為空,則將新描述符新增到現有訓練描述符中。

引數
descriptors要新增的描述符。每個 descriptors[i] 都是來自同一訓練影像的一組描述符。

重新實現自 cv::DescriptorMatcher

◆ clear()

virtual void cv::FlannBasedMatcher::clear ( )
virtual

清除訓練描述符集合。

重新實現自 cv::DescriptorMatcher

◆ clone()

virtual CV_NODISCARD_STD Ptr< DescriptorMatcher > cv::FlannBasedMatcher::clone ( bool emptyTrainData = false) const
virtual

克隆匹配器。

引數
emptyTrainData如果 emptyTrainData 為 false,則該方法建立物件的深複製,即複製引數和訓練資料。如果 emptyTrainData 為 true,則該方法建立具有當前引數但訓練資料為空的物件複製。

實現自 cv::DescriptorMatcher

◆ convertToDMatches()

static void cv::FlannBasedMatcher::convertToDMatches ( const DescriptorCollection & descriptors,
const Mat & 索引,
const Mat & Mat cv::ppf_match_3d::samplePCByQuantization,
std::vector< std::vector< DMatch > > & matches )
靜態保護

◆ create()

static Ptr< FlannBasedMatcher > cv::FlannBasedMatcher::create ( )
static
Python
cv.FlannBasedMatcher.create() -> retval
cv.FlannBasedMatcher_create() -> retval

◆ isMaskSupported()

virtual bool cv::FlannBasedMatcher::isMaskSupported ( ) const
virtual

如果描述符匹配器支援遮罩允許的匹配,則返回 true。

實現自 cv::DescriptorMatcher

◆ knnMatchImpl()

virtual void cv::FlannBasedMatcher::knnMatchImpl ( InputArray queryDescriptors,
std::vector< std::vector< DMatch > > & matches,
int k,
InputArrayOfArrays masks = noArray(),
bool compactResult = false )
保護虛擬函式

實際上,匹配僅透過以下兩種方法實現。這些方法假定類物件已經過訓練。公共匹配方法在呼叫 train() 後呼叫這些方法。

實現自 cv::DescriptorMatcher

◆ radiusMatchImpl()

virtual void cv::FlannBasedMatcher::radiusMatchImpl ( InputArray queryDescriptors,
std::vector< std::vector< DMatch > > & matches,
float maxDistance,
InputArrayOfArrays masks = noArray(),
bool compactResult = false )
保護虛擬函式

實現自 cv::DescriptorMatcher

◆ read()

virtual void cv::FlannBasedMatcher::read ( const FileNode & fn)
virtual

從檔案儲存中讀取演算法引數。

重新實現自 cv::DescriptorMatcher

◆ train()

virtual void cv::FlannBasedMatcher::train ( )
virtual

訓練描述符匹配器。

訓練描述符匹配器(例如,Flann 索引)。在所有匹配方法中,每次匹配前都會執行 train() 方法。某些描述符匹配器(例如,BruteForceMatcher)對此方法為空實現。其他匹配器則真正訓練其內部結構(例如,FlannBasedMatcher 訓練 flann::Index)。

重新實現自 cv::DescriptorMatcher

◆ write()

virtual void cv::FlannBasedMatcher::write ( FileStorage & fs) const
virtual

將演算法引數儲存到檔案儲存中。

重新實現自 cv::DescriptorMatcher

成員資料文件

◆ addedDescCount

int cv::FlannBasedMatcher::addedDescCount
保護

◆ flannIndex

Ptr<flann::Index> cv::FlannBasedMatcher::flannIndex
保護

◆ indexParams

Ptr<flann::IndexParams> cv::FlannBasedMatcher::indexParams
保護

◆ mergedDescriptors

DescriptorCollection cv::FlannBasedMatcher::mergedDescriptors
保護

◆ searchParams

Ptr<flann::SearchParams> cv::FlannBasedMatcher::searchParams
保護

此類的文件生成自以下檔案