OpenCV 4.11.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 继承的公共成员函数 | |
虚函数 | ~DescriptorMatcher () |
虚函数 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 () | |
虚函数 | ~Algorithm () |
虚函数 String | getDefaultName () const |
虚函数 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< FlannBasedMatcher > | create () |
继承自 cv::DescriptorMatcher 的静态公共成员函数 | |
static Ptr< DescriptorMatcher > | create (const DescriptorMatcher::MatcherType &matcherType) |
static Ptr< DescriptorMatcher > | create (const String &descriptorMatcherType) |
创建具有默认参数(使用默认构造函数)的给定类型的描述符匹配器。 | |
继承自 cv::Algorithm 的静态公共成员函数 | |
template<typename _Tp > | |
static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
从文件中加载算法。 | |
template<typename _Tp > | |
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
从字符串加载算法。 | |
template<typename _Tp > | |
static Ptr< _Tp > | read (const FileNode &fn) |
从文件节点读取算法。 | |
保护成员函数 | |
虚函数 void | knnMatchImpl (InputArray queryDescriptors, std::vector< std::vector< DMatch > > &matches, int k, InputArrayOfArrays masks=noArray(), bool compactResult=false) CV_OVERRIDE |
虚函数 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 > | flannIndex |
Ptr< flann::IndexParams > | indexParams |
DescriptorCollection | mergedDescriptors |
Ptr< 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,并调用其最近邻搜索方法来查找最佳匹配。因此,与蛮力匹配器相比,在匹配大型训练集合时,此匹配器可能更快。FlannBasedMatcher 不支持屏蔽描述符集的允许匹配,因为 flann::Index 不支持此功能。
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 对象> |
|
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。
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |