OpenCV 4.13.0
开源计算机视觉库 (Open Source Computer Vision)
正在加载...
正在搜索...
未找到匹配项
cv::cuda::DescriptorMatcher 类参考抽象

用于匹配关键点描述符的抽象基类。 更多...

#include <opencv2/cudafeatures2d.hpp>

cv::cuda::DescriptorMatcher 的协作图

公开成员函数

virtual void add (const std::vector< GpuMat > &descriptors)=0
 添加描述符以训练描述符集合。
 
virtual void clear ()=0
 清除训练描述符集合。
 
virtual bool empty () const =0
 如果集合中没有训练描述符,则返回 true。
 
virtual const std::vector< GpuMat > & getTrainDescriptors () const =0
 返回训练描述符集合的常量链接。
 
virtual bool isMaskSupported () const =0
 如果描述符匹配器支持遮罩允许匹配,则返回 true。
 
virtual void knnMatch (InputArray queryDescriptors, InputArray trainDescriptors, std::vector< std::vector< DMatch > > &matches, int k, InputArray mask=noArray(), bool compactResult=false)=0
 查找查询集中每个描述符的 k 个最佳匹配(阻塞版本)。
 
virtual void knnMatch (InputArray queryDescriptors, std::vector< std::vector< DMatch > > &matches, int k, const std::vector< GpuMat > &masks=std::vector< GpuMat >(), bool compactResult=false)=0
 
virtual void knnMatchAsync (InputArray queryDescriptors, InputArray trainDescriptors, OutputArray matches, int k, InputArray mask=noArray(), Stream &stream=Stream::Null())=0
 查找查询集中每个描述符的 k 个最佳匹配(异步版本)。
 
virtual void knnMatchAsync (InputArray queryDescriptors, OutputArray matches, int k, const std::vector< GpuMat > &masks=std::vector< GpuMat >(), Stream &stream=Stream::Null())=0
 
virtual void knnMatchConvert (InputArray gpu_matches, std::vector< std::vector< DMatch > > &matches, bool compactResult=false)=0
 将匹配数组从内部表示转换为标准匹配向量。
 
virtual void match (InputArray queryDescriptors, InputArray trainDescriptors, std::vector< DMatch > &matches, InputArray mask=noArray())=0
 查找查询集中每个描述符的最佳匹配(阻塞版本)。
 
virtual void match (InputArray queryDescriptors, std::vector< DMatch > &matches, const std::vector< GpuMat > &masks=std::vector< GpuMat >())=0
 
virtual void matchAsync (InputArray queryDescriptors, InputArray trainDescriptors, OutputArray matches, InputArray mask=noArray(), Stream &stream=Stream::Null())=0
 查找查询集中每个描述符的最佳匹配(异步版本)。
 
virtual void matchAsync (InputArray queryDescriptors, OutputArray matches, const std::vector< GpuMat > &masks=std::vector< GpuMat >(), Stream &stream=Stream::Null())=0
 
virtual void matchConvert (InputArray gpu_matches, std::vector< DMatch > &matches)=0
 将匹配数组从内部表示转换为标准匹配向量。
 
virtual void radiusMatch (InputArray queryDescriptors, InputArray trainDescriptors, std::vector< std::vector< DMatch > > &matches, float maxDistance, InputArray mask=noArray(), bool compactResult=false)=0
 对于每个查询描述符,查找距离不大于指定距离的训练描述符(阻塞版本)。
 
virtual void radiusMatch (InputArray queryDescriptors, std::vector< std::vector< DMatch > > &matches, float maxDistance, const std::vector< GpuMat > &masks=std::vector< GpuMat >(), bool compactResult=false)=0
 
virtual void radiusMatchAsync (InputArray queryDescriptors, InputArray trainDescriptors, OutputArray matches, float maxDistance, InputArray mask=noArray(), Stream &stream=Stream::Null())=0
 对于每个查询描述符,查找距离不大于指定距离的训练描述符(异步版本)。
 
virtual void radiusMatchAsync (InputArray queryDescriptors, OutputArray matches, float maxDistance, const std::vector< GpuMat > &masks=std::vector< GpuMat >(), Stream &stream=Stream::Null())=0
 
virtual void radiusMatchConvert (InputArray gpu_matches, std::vector< std::vector< DMatch > > &matches, bool compactResult=false)=0
 将匹配数组从内部表示转换为标准匹配向量。
 
virtual void 训练 ()=0
 训练描述符匹配器。
 
- 从 cv::Algorithm 继承的公共成员函数
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 从文件存储中读取算法参数。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 将算法参数存储在文件存储中。
 
void write (FileStorage &fs, const String &name) const
 

静态公开成员函数

static Ptr< cuda::DescriptorMatchercreateBFMatcher (int normType=cv::NORM_L2)
 暴力描述符匹配器。
 
- 从 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)
 从文件节点中读取算法。
 

更多继承的成员

- 从 cv::Algorithm 继承的受保护成员函数
void writeFormat (FileStorage &fs) const
 

详细说明

匹配关键点描述符的抽象基类。

它有两组匹配方法:用于将一张图像的描述符与另一张图像或图像集进行匹配。

成员函数说明

◆ add()

virtual void cv::cuda::DescriptorMatcher::add ( const std::vector< GpuMat > & descriptors)
纯虚函数

添加描述符以训练描述符集合。

如果集合不为空,则新描述符将添加到现有训练描述符中。

参数
descriptors要添加的描述符。每个 descriptors[i] 都是来自同一训练图像的一组描述符。

◆ clear()

virtual void cv::cuda::DescriptorMatcher::clear ( )
纯虚函数

清除训练描述符集合。

cv::Algorithm 重新实现。

◆ createBFMatcher()

static Ptr< cuda::DescriptorMatcher > cv::cuda::DescriptorMatcher::createBFMatcher ( int normType = cv::NORM_L2)
static (静态)

暴力描述符匹配器。

对于第一组中的每个描述符,此匹配器通过尝试每个描述符来查找第二组中最接近的描述符。此描述符匹配器支持遮罩描述符集的允许匹配。

参数
normTypeNORM_L1、NORM_L2、NORM_HAMMING 之一。L1L2 范数是 SIFT 和 SURF 描述符的首选,NORM_HAMMING 应该与 ORBBRISK 和 BRIEF 一起使用)。

◆ empty()

virtual bool cv::cuda::DescriptorMatcher::empty ( ) const
纯虚函数

如果集合中没有训练描述符,则返回 true。

cv::Algorithm 重新实现。

◆ getTrainDescriptors()

virtual const std::vector< GpuMat > & cv::cuda::DescriptorMatcher::getTrainDescriptors ( ) const
纯虚函数

返回训练描述符集合的常量链接。

◆ isMaskSupported()

virtual bool cv::cuda::DescriptorMatcher::isMaskSupported ( ) const
纯虚函数

如果描述符匹配器支持遮罩允许匹配,则返回 true。

◆ knnMatch() [1/2]

virtual void cv::cuda::DescriptorMatcher::knnMatch ( InputArray queryDescriptors,
InputArray trainDescriptors,
std::vector< std::vector< DMatch > > & matches,
int k,
InputArray mask = noArray(),
bool compactResult = false )
纯虚函数

查找查询集中每个描述符的 k 个最佳匹配(阻塞版本)。

参数
queryDescriptors查询描述符集。
trainDescriptors训练描述符集。此集不添加到类对象中存储的训练描述符集合中。
matches匹配项。每个 matches[i] 是相同查询描述符的 k 个或更少匹配项。
k为每个查询描述符找到的最佳匹配项数,如果查询描述符的总可能匹配项少于 k 个,则可能更少。
mask指定输入查询和训练描述符矩阵之间允许匹配的遮罩。
compactResult当遮罩(或多个遮罩)不为空时使用的参数。如果 compactResult 为 false,则 matches 向量的大小与 queryDescriptors 行数相同。如果 compactResult 为 true,则 matches 向量不包含完全被遮罩掉的查询描述符的匹配项。

这些 DescriptorMatcher::match 方法的扩展变体为每个查询描述符查找几个最佳匹配项。匹配项按距离递增的顺序返回。有关查询和训练描述符的详细信息,请参见 DescriptorMatcher::match

此函数的调用图

◆ knnMatch() [2/2]

virtual void cv::cuda::DescriptorMatcher::knnMatch ( InputArray queryDescriptors,
std::vector< std::vector< DMatch > > & matches,
int k,
const std::vector< GpuMat > & masks = std::vector< GpuMat >(),
bool compactResult = false )
纯虚函数

这是一个重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于所接受的参数不同。

◆ knnMatchAsync() [1/2]

virtual void cv::cuda::DescriptorMatcher::knnMatchAsync ( InputArray queryDescriptors,
InputArray trainDescriptors,
OutputArray matches,
int k,
InputArray mask = noArray(),
流 (Stream) & stream = Stream::Null() )
纯虚函数

查找查询集中每个描述符的 k 个最佳匹配(异步版本)。

参数
queryDescriptors查询描述符集。
trainDescriptors训练描述符集。此集不添加到类对象中存储的训练描述符集合中。
matches存储在 GPU 内存中的匹配数组。内部表示未定义。使用 DescriptorMatcher::knnMatchConvert 方法以标准表示检索结果。
k为每个查询描述符找到的最佳匹配项数,如果查询描述符的总可能匹配项少于 k 个,则可能更少。
mask指定输入查询和训练描述符矩阵之间允许匹配的遮罩。
CUDA 流。

这些 DescriptorMatcher::matchAsync 方法的扩展变体为每个查询描述符查找几个最佳匹配项。匹配项按距离递增的顺序返回。有关查询和训练描述符的详细信息,请参见 DescriptorMatcher::matchAsync

此函数的调用图

◆ knnMatchAsync() [2/2]

virtual void cv::cuda::DescriptorMatcher::knnMatchAsync ( InputArray queryDescriptors,
OutputArray matches,
int k,
const std::vector< GpuMat > & masks = std::vector< GpuMat >(),
流 (Stream) & stream = Stream::Null() )
纯虚函数

这是一个重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于所接受的参数不同。

◆ knnMatchConvert()

virtual void cv::cuda::DescriptorMatcher::knnMatchConvert ( InputArray gpu_matches,
std::vector< std::vector< DMatch > > & matches,
bool compactResult = false )
纯虚函数

将匹配数组从内部表示转换为标准匹配向量。

此方法应与 DescriptorMatcher::knnMatchAsync 一起使用以获得最终结果。仅在 DescriptorMatcher::knnMatchAsync 完成后(即同步后)调用此方法。

参数
gpu_matches匹配项,从 DescriptorMatcher::knnMatchAsync 返回。
matchesDMatch 对象的向量。
compactResult当遮罩(或多个遮罩)不为空时使用的参数。如果 compactResult 为 false,则 matches 向量的大小与 queryDescriptors 行数相同。如果 compactResult 为 true,则 matches 向量不包含完全被遮罩掉的查询描述符的匹配项。

◆ match() [1/2]

virtual void cv::cuda::DescriptorMatcher::match ( InputArray queryDescriptors,
InputArray trainDescriptors,
std::vector< DMatch > & matches,
InputArray mask = noArray() )
纯虚函数

查找查询集中每个描述符的最佳匹配(阻塞版本)。

参数
queryDescriptors查询描述符集。
trainDescriptors训练描述符集。此集不添加到类对象中存储的训练描述符集合中。
matches匹配项。如果查询描述符在 mask 中被遮罩,则不会为该描述符添加任何匹配项。因此,matches 的大小可能小于查询描述符的数量。
mask指定输入查询和训练描述符矩阵之间允许匹配的遮罩。

在此方法的第一种变体中,训练描述符作为输入参数传递。在此方法的第二种变体中,使用通过 DescriptorMatcher::add 设置的训练描述符集合。可以传递可选的 mask(或多个 masks)来指定哪些查询和训练描述符可以匹配。即,queryDescriptors[i] 只能与 trainDescriptors[j] 匹配,如果 mask.at<uchar>(i,j) 非零。

此函数的调用图

◆ match() [2/2]

virtual void cv::cuda::DescriptorMatcher::match ( InputArray queryDescriptors,
std::vector< DMatch > & matches,
const std::vector< GpuMat > & masks = std::vector< GpuMat >() )
纯虚函数

这是一个重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于所接受的参数不同。

◆ matchAsync() [1/2]

virtual void cv::cuda::DescriptorMatcher::matchAsync ( InputArray queryDescriptors,
InputArray trainDescriptors,
OutputArray matches,
InputArray mask = noArray(),
流 (Stream) & stream = Stream::Null() )
纯虚函数

查找查询集中每个描述符的最佳匹配(异步版本)。

参数
queryDescriptors查询描述符集。
trainDescriptors训练描述符集。此集不添加到类对象中存储的训练描述符集合中。
matches存储在 GPU 内存中的匹配数组。内部表示未定义。使用 DescriptorMatcher::matchConvert 方法以标准表示检索结果。
mask指定输入查询和训练描述符矩阵之间允许匹配的遮罩。
CUDA 流。

在此方法的第一种变体中,训练描述符作为输入参数传递。在此方法的第二种变体中,使用通过 DescriptorMatcher::add 设置的训练描述符集合。可以传递可选的 mask(或多个 masks)来指定哪些查询和训练描述符可以匹配。即,queryDescriptors[i] 只能与 trainDescriptors[j] 匹配,如果 mask.at<uchar>(i,j) 非零。

此函数的调用图

◆ matchAsync() [2/2]

virtual void cv::cuda::DescriptorMatcher::matchAsync ( InputArray queryDescriptors,
OutputArray matches,
const std::vector< GpuMat > & masks = std::vector< GpuMat >(),
流 (Stream) & stream = Stream::Null() )
纯虚函数

这是一个重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于所接受的参数不同。

◆ matchConvert()

virtual void cv::cuda::DescriptorMatcher::matchConvert ( InputArray gpu_matches,
std::vector< DMatch > & matches )
纯虚函数

将匹配数组从内部表示转换为标准匹配向量。

此方法应与 DescriptorMatcher::matchAsync 一起使用以获得最终结果。仅在 DescriptorMatcher::matchAsync 完成后(即同步后)调用此方法。

参数
gpu_matches匹配项,从 DescriptorMatcher::matchAsync 返回。
matchesDMatch 对象的向量。

◆ radiusMatch() [1/2]

virtual void cv::cuda::DescriptorMatcher::radiusMatch ( InputArray queryDescriptors,
InputArray trainDescriptors,
std::vector< std::vector< DMatch > > & matches,
float maxDistance,
InputArray mask = noArray(),
bool compactResult = false )
纯虚函数

对于每个查询描述符,查找距离不大于指定距离的训练描述符(阻塞版本)。

参数
queryDescriptors查询描述符集。
trainDescriptors训练描述符集。此集不添加到类对象中存储的训练描述符集合中。
matches找到的匹配项。
maxDistance匹配描述符之间距离的阈值。这里的距离是指度量距离(例如,汉明距离),而不是坐标之间的距离(以像素为单位测量)!
mask指定输入查询和训练描述符矩阵之间允许匹配的遮罩。
compactResult当遮罩(或多个遮罩)不为空时使用的参数。如果 compactResult 为 false,则 matches 向量的大小与 queryDescriptors 行数相同。如果 compactResult 为 true,则 matches 向量不包含完全被遮罩掉的查询描述符的匹配项。

对于每个查询描述符,这些方法查找查询描述符与训练描述符之间的距离等于或小于 maxDistance 的训练描述符。找到的匹配项按距离递增的顺序返回。

此函数的调用图

◆ radiusMatch() [2/2]

virtual void cv::cuda::DescriptorMatcher::radiusMatch ( InputArray queryDescriptors,
std::vector< std::vector< DMatch > > & matches,
float maxDistance,
const std::vector< GpuMat > & masks = std::vector< GpuMat >(),
bool compactResult = false )
纯虚函数

这是一个重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于所接受的参数不同。

◆ radiusMatchAsync() [1/2]

virtual void cv::cuda::DescriptorMatcher::radiusMatchAsync ( InputArray queryDescriptors,
InputArray trainDescriptors,
OutputArray matches,
float maxDistance,
InputArray mask = noArray(),
流 (Stream) & stream = Stream::Null() )
纯虚函数

对于每个查询描述符,查找距离不大于指定距离的训练描述符(异步版本)。

参数
queryDescriptors查询描述符集。
trainDescriptors训练描述符集。此集不添加到类对象中存储的训练描述符集合中。
matches存储在 GPU 内存中的匹配数组。内部表示未定义。使用 DescriptorMatcher::radiusMatchConvert 方法以标准表示检索结果。
maxDistance匹配描述符之间距离的阈值。这里的距离是指度量距离(例如,汉明距离),而不是坐标之间的距离(以像素为单位测量)!
mask指定输入查询和训练描述符矩阵之间允许匹配的遮罩。
CUDA 流。

对于每个查询描述符,这些方法查找查询描述符与训练描述符之间的距离等于或小于 maxDistance 的训练描述符。找到的匹配项按距离递增的顺序返回。

此函数的调用图

◆ radiusMatchAsync() [2/2]

virtual void cv::cuda::DescriptorMatcher::radiusMatchAsync ( InputArray queryDescriptors,
OutputArray matches,
float maxDistance,
const std::vector< GpuMat > & masks = std::vector< GpuMat >(),
流 (Stream) & stream = Stream::Null() )
纯虚函数

这是一个重载的成员函数,为方便起见而提供。它与上述函数的区别仅在于所接受的参数不同。

◆ radiusMatchConvert()

virtual void cv::cuda::DescriptorMatcher::radiusMatchConvert ( InputArray gpu_matches,
std::vector< std::vector< DMatch > > & matches,
bool compactResult = false )
纯虚函数

将匹配数组从内部表示转换为标准匹配向量。

此方法应与 DescriptorMatcher::radiusMatchAsync 一起使用以获得最终结果。仅在 DescriptorMatcher::radiusMatchAsync 完成后(即同步后)调用此方法。

参数
gpu_matches匹配项,从 DescriptorMatcher::radiusMatchAsync 返回。
matchesDMatch 对象的向量。
compactResult当遮罩(或多个遮罩)不为空时使用的参数。如果 compactResult 为 false,则 matches 向量的大小与 queryDescriptors 行数相同。如果 compactResult 为 true,则 matches 向量不包含完全被遮罩掉的查询描述符的匹配项。

◆ train()

virtual void cv::cuda::DescriptorMatcher::train ( )
纯虚函数

训练描述符匹配器。

训练描述符匹配器(例如,flann 索引)。在所有匹配方法中,train() 方法每次在匹配之前运行。


该类的文档由以下文件生成: