OpenCV 4.11.0
开源计算机视觉
|
暴力匹配描述符匹配器。更多…
#include <opencv2/features2d.hpp>
公共成员函数 | |
BFMatcher (int normType=NORM_L2, bool crossCheck=false) | |
暴力匹配器构造函数(已过时)。请使用 BFMatcher.create() | |
virtual | ~BFMatcher () |
virtual CV_NODISCARD_STD Ptr< DescriptorMatcher > | clone (bool emptyTrainData=false) const CV_OVERRIDE |
克隆匹配器。 | |
virtual bool | isMaskSupported () const CV_OVERRIDE |
如果描述符匹配器支持掩码允许的匹配,则返回 true。 | |
从 cv::DescriptorMatcher 继承的公共成员函数 | |
virtual | ~DescriptorMatcher () |
virtual void | add (InputArrayOfArrays descriptors) |
添加描述符以训练 CPU(trainDescCollectionis) 或 GPU(utrainDescCollectionis) 描述符集合。 | |
virtual void | clear () CV_OVERRIDE |
清除训练描述符集合。 | |
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) |
virtual void | read (const FileNode &) CV_OVERRIDE |
从文件存储中读取算法参数。 | |
void | read (const String &fileName) |
virtual void | train () |
训练描述符匹配器。 | |
void | write (const Ptr< FileStorage > &fs, const String &name) const |
void | write (const String &fileName) const |
virtual void | write (FileStorage &) const CV_OVERRIDE |
将算法参数存储到文件存储中。 | |
void | write (FileStorage &fs, const String &name) const |
从cv::Algorithm继承的公有成员函数 | |
Algorithm () | |
virtual | ~Algorithm () |
虚函数 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 |
静态公有成员函数 | |
静态 Ptr< BFMatcher > | create (int normType=NORM_L2, bool crossCheck=false) |
暴力匹配器创建方法。 | |
从cv::DescriptorMatcher继承的静态公有成员函数 | |
静态 Ptr< DescriptorMatcher > | create (const DescriptorMatcher::MatcherType &matcherType) |
静态 Ptr< DescriptorMatcher > | create (const String &descriptorMatcherType) |
使用默认参数(使用默认构造函数)创建指定类型的描述符匹配器。 | |
从cv::Algorithm继承的静态公有成员函数 | |
模板<typename _Tp > | |
静态 Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
从文件中加载算法。 | |
模板<typename _Tp > | |
静态 Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
从字符串加载算法。 | |
模板<typename _Tp > | |
静态 Ptr< _Tp > | read (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 |
保护属性 | |
bool | crossCheck |
int | normType |
从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 } |
从cv::DescriptorMatcher继承的静态保护成员函数 | |
静态 CV_NODISCARD_STD Mat | clone_op (Mat m) |
静态 bool | isMaskedOut (InputArrayOfArrays masks, int queryIdx) |
静态 bool | isPossibleMatch (InputArray mask, int queryIdx, int trainIdx) |
暴力描述符匹配器。
对于第一组中的每个描述符,此匹配器都会尝试每一个描述符,以在第二组中找到最接近的描述符。此描述符匹配器支持屏蔽描述符集的可允许匹配。
cv::BFMatcher::BFMatcher | ( | int | normType = NORM_L2, |
bool | crossCheck = false ) |
Python | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cv.BFMatcher( | [, normType[, crossCheck]] | ) -> | <BFMatcher 对象> |
暴力匹配器构造函数(已过时)。请使用 BFMatcher.create()
|
inlinevirtual |
|
virtual |
克隆匹配器。
emptyTrainData | 如果 emptyTrainData 为 false,则该方法创建对象的深拷贝,即复制参数和训练数据。如果 emptyTrainData 为 true,则该方法创建具有当前参数但训练数据为空的对象副本。 |
|
static |
Python | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cv.BFMatcher.create( | [, normType[, crossCheck]] | ) -> | 返回值 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cv.BFMatcher_create( | [, normType[, crossCheck]] | ) -> | 返回值 |
暴力匹配器创建方法。
normType | NORM_L1、NORM_L2、NORM_HAMMING、NORM_HAMMING2 之一。对于 SIFT 和 SURF 描述符,L1 和 L2 范数是更好的选择;对于 ORB、BRISK 和 BRIEF,应使用 NORM_HAMMING;当 WTA_K==3 或 4 时(参见 ORB::ORB 构造函数说明),应与 ORB 一起使用 NORM_HAMMING2。 |
crossCheck | 如果为 false,则当它为每个查询描述符找到 k 个最近邻时,这将是默认的 BFMatcher 行为。如果 crossCheck==true,则 k=1 的 knnMatch() 方法将只返回这样的对 (i,j):对于第 i 个查询描述符,匹配器集合中的第 j 个描述符是最接近的,反之亦然,即 BFMatcher 将只返回一致的对。当有足够多的匹配项时,这种技术通常会产生具有最少异常值的最佳结果。这是 D. Lowe 在 SIFT 论文中使用的比率测试的替代方法。 |
|
inlinevirtual |
如果描述符匹配器支持掩码允许的匹配,则返回 true。
|
protectedvirtual |
事实上,匹配仅由以下两种方法实现。这些方法假设类对象已经过训练。公共匹配方法在调用 train() 后调用这些方法。
|
protectedvirtual |
|
protected |
|
protected |