OpenCV  4.10.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 >())
 
void 虚拟add (InputArrayOfArrays descriptors) CV_OVERRIDE
 添加描述符以训练一个 CPU(trainDescCollectionis) 或 GPU(utrainDescCollectionis)描述符集合。
 
void 虚拟clear () CV_OVERRIDE
 清除训练描述符集合。
 
CV_NODISCARD_STD Ptr< DescriptorMatcher > 虚拟clone (bool emptyTrainData=false) const CV_OVERRIDE
 克隆匹配器。
 
bool 虚拟isMaskSupported () const CV_OVERRIDE
 如果描述符匹配器支持遮盖可容忍的匹配项,则返回 true。
 
void 虚拟read (const FileNode &) CV_OVERRIDE
 从文件存储中读取算法参数。
 
void 虚拟train () CV_OVERRIDE
 训练描述符匹配器。
 
void 虚拟write (FileStorage &) const CV_OVERRIDE
 在文件存储中存储算法参数。
 
- 从 cv::DescriptorMatcher 继承的公共成员函数
virtual ~DescriptorMatcher ()
 
bool 虚拟empty () const CV_OVERRIDE
 当两个集合中均无训练描述符时,返回真。
 
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
 
void 虚拟save (const String &filename) const
 
void  
void write (文件存储 &fs,const 字符串 &name) const
 

静态公共成员函数

静态 Ptr< FlannBasedMatchercreate ()
 
- 静态公共成员函数继承自 cv::DescriptorMatcher
静态 Ptr< 描述符匹配器create (const 描述符匹配器::匹配器类型 &matcherType)
 
静态 Ptr< 描述符匹配器create (const 字符串 &descriptorMatcherType)
 使用默认参数,创建给定类型的一个描述符匹配器(使用默认构造函数)。
 
- 静态公共成员函数继承自 cv::Algorithm
template<typename _Tp >
静态 Ptr< _Tpload (const 字符串 &filename, const 字符串 &objname=字符串())
 从文件加载算法。
 
template<typename _Tp >
静态 Ptr< _TploadFromString (const 字符串 &strModel, const 字符串 &objname=字符串())
 从一个字符串中加载算法。
 
template<typename _Tp >
静态 Ptr< _Tpread (const 文件节点 &fn)
 从文件节点读取算法。
 

受保护成员函数

void 虚拟knnMatchImpl (输入阵列 queryDescriptors, std::vector< std::vector< DMatch > > &matches, int k, 输入阵列掩码 masks=noArray(), bool compactResult=false) CV_OVERRIDE
 
void 虚拟radiusMatchImpl (输入矩阵 queryDescriptors, std::vector< std::vector< DMatch > > &匹配, float maxDistance, 输入数组的输入数组 masks=noArray(), bool compactResult=false) CV_OVERRIDE
 
- 从 cv::DescriptorMatcher 继承的受保护成员函数
void checkMasks (输入数组的输入数组 masks, int queryDescriptorsCount) const
 
- 从 cv::Algorithm 继承的受保护成员函数
void writeFormat (文件存储 &fs) const
 

静态受保护成员函数

静态 void convertToDMatches (常量 DescriptorCollection &描述符, 常量 矩阵 &索引, 常量 矩阵 &距离, std::vector< std::vector< DMatch > > &匹配)
 
- 从 cv::DescriptorMatcher 继承的静态受保护成员函数
静态 CV_NODISCARD_STD 矩阵 clone_op (矩阵 m)
 
静态 布尔值 isMaskedOut (输入数组的输入数组 masks, int queryIdx)
 
静态 布尔值 isPossibleMatch (输入矩阵 mask, int queryIdx, int trainIdx)
 

受保护属性

整型 addedDescCount
 
指针< flann::Index > flannIndex
 
指针< flann::IndexParams > indexParams
 
DescriptorCollection mergedDescriptors
 
指针< 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,并调用它最邻近搜索方法去找到最优匹配。因此,当匹配一个大型训练集合时,这个匹配器可能比蛮力匹配器更快。由于 flann::Index 不支持,FlannBasedMatcher 不支持屏蔽描述符集合的允许匹配。

构造函数和析构函数文档

◆ 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 indices,
const Mat distances,
std::vector< std::vector< DMatch > > &  matches 
)
staticprotected

◆ 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,
整型  k,
InputArrayOfArrays  masks = noArray(),
bool  compactResult = false 
)
protectedvirtual

实际上,匹配只由以下两个方法实现。这些方法假定类对象已经过训练。公共匹配方法在调用 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 
)
protectedvirtual

◆ 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
受保护

此类的文档由以下文件生成