OpenCV 4.10.0
开放源代码计算机视觉
|
基于 Flann 的描述符匹配器。更多...
#include <opencv2/features2d.hpp>
公共成员函数 | |||
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< FlannBasedMatcher > | create () |
静态公共成员函数继承自 cv::DescriptorMatcher | |
静态 Ptr< 描述符匹配器 > | create (const 描述符匹配器::匹配器类型 &matcherType) |
静态 Ptr< 描述符匹配器 > | create (const 字符串 &descriptorMatcherType) |
使用默认参数,创建给定类型的一个描述符匹配器(使用默认构造函数)。 | |
静态公共成员函数继承自 cv::Algorithm | |
template<typename _Tp > | |
静态 Ptr< _Tp > | load (const 字符串 &filename, const 字符串 &objname=字符串()) |
从文件加载算法。 | |
template<typename _Tp > | |
静态 Ptr< _Tp > | loadFromString (const 字符串 &strModel, const 字符串 &objname=字符串()) |
从一个字符串中加载算法。 | |
template<typename _Tp > | |
静态 Ptr< _Tp > | read (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< Mat > | trainDescCollection |
训练图像的描述符集合。 | |
std::vector< UMat > | utrainDescCollection |
其他继承的成员 | |
从 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 不支持屏蔽描述符集合的允许匹配。
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> |
|
virtual |
添加描述符以训练一个 CPU(trainDescCollectionis) 或 GPU(utrainDescCollectionis)描述符集合。
如果集合不为空,则将新描述符添加到训练现有描述符中。
descriptors | 要添加的描述符。每个 descriptors[i] 是一组来自同个训练图像的描述符。 |
重新实现自 cv::DescriptorMatcher。
|
virtual |
清除训练描述符集合。
重新实现自 cv::DescriptorMatcher。
|
virtual |
克隆匹配器。
emptyTrainData | 如果 emptyTrainData 为 false,该方法将创建一个对象的深度副本,即复制参数和训练数据。如果 emptyTrainData 为 true,该方法将创建一个对象副本,其中包含当前参数但训练数据为空。 |
|
staticprotected |
|
static |
Python | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cv.FlannBasedMatcher.create( | ) -> | retval | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cv.FlannBasedMatcher_create( | ) -> | retval |
|
virtual |
如果描述符匹配器支持遮盖可容忍的匹配项,则返回 true。
|
protectedvirtual |
实际上,匹配只由以下两个方法实现。这些方法假定类对象已经过训练。公共匹配方法在调用 train() 后调用这些方法。
|
protectedvirtual |
|
virtual |
从文件存储中读取算法参数。
从 cv::DescriptorMatcher 重新实现。
|
virtual |
训练描述符匹配器。
训练描述符匹配器(例如,flann 索引)。在所有匹配方法中,方法 train() 每次匹配之前运行。一些描述符匹配器(例如,BruteForceMatcher)对该方法有空实现。其他匹配器确实会训练其内部结构(例如,FlannBasedMatcher 训练 flann::Index)。
从 cv::DescriptorMatcher 重新实现。
|
virtual |
在文件存储中存储算法参数。
从 cv::DescriptorMatcher 重新实现。
|
受保护 |
|
受保护 |
|
受保护 |
|
受保护 |
|
受保护 |