OpenCV  4.10.0
开源计算机视觉
加载中...
搜索中...
无匹配
公开成员函数 | 静态公开成员函数 | 所有成员列表
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
 
virtual void radiusMatchConvert (InputArray gpu_matches, std::vector< std::vector< DMatch > > &matches, bool compactResult=false)=0
 将匹配数组从内部表示转换为标准匹配向量。
 
virtual void 训练 ()=0
 训练描述符匹配器。
 
- 从 cv::Algorithm 继承的公开成员函数
 算法 ()
 
虚函数~Algorithm ()
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 从文件存储中读取算法参数。
 
virtual void save (const String &filename) const
 
void write (const 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< _Tp从字符串加载 (const String &strModel, const String &objname=String())
 从字符串中加载算法。
 
template<typename _Tp >
static Ptr< _Tp读取 (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

暴力描述符匹配器。

对于第一组中的每个描述符,这个匹配器通过尝试每个描述符来在第二组中找到最近的描述符。此描述符匹配器支持掩码允许的描述符集的匹配。

参数
normType之一 NORM_L1, NORM_L2, NORM_HAMMING。L1 和 L2 范数是 SIFT 和 SURF 描述符的优选选择,应该用 NORM_HAMMING 与 ORB、BRISK 和 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)的最佳匹配项的计数。
掩码指定输入查询和描述符的类别之间的可匹配范围的掩码。
compactResult当掩码(或多个掩码)不为空时使用的参数。如果compactResult为false,则匹配向量与queryDescriptors行具有相同的大小。如果compactResult为true,则匹配向量不包含完全掩码查询描述符的匹配项。

这些扩展变体的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]

虚函数 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)的最佳匹配项的计数。
掩码指定输入查询和描述符的类别之间的可匹配范围的掩码。
streamCUDA流。

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

以下是此函数的调用图

◆ knnMatchAsync() [2/2]

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

这是一个方便的重载成员函数,它只与上述函数在接受的参数方面不同。

◆ knnMatchConvert()

虚函数 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,则匹配向量与queryDescriptors行具有相同的大小。如果compactResult为true,则匹配向量不包含完全掩码查询描述符的匹配项。

◆ match() [1/2]

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

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

参数
queryDescriptors查询描述符集。
trainDescriptors训练描述符集。此集不会添加到类对象中存储的训练描述符集合中。
matches匹配项。如果在掩码中屏蔽了查询描述符,则不会为此描述符添加匹配项。因此,匹配项的大小可能小于查询描述符的数量。
掩码指定输入查询和描述符的类别之间的可匹配范围的掩码。

该方法的第一种变体中,训练描述符被作为输入参数传递。在方法第二种变体中,使用通过DescriptorMatcher::add设置的训练描述符集合。可以通过可选的掩码(或掩码集合)指定哪些查询和训练描述符可以进行匹配。具体来说,只有当mask.at(i,j)非零时,queryDescriptors[i]才能与trainDescriptors[j]匹配。

以下是此函数的调用图

◆ match() [2/2]

虚函数 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方法检索结果的标准表示。
掩码指定输入查询和描述符的类别之间的可匹配范围的掩码。
streamCUDA流。

该方法的第一种变体中,训练描述符被作为输入参数传递。在方法第二种变体中,使用通过DescriptorMatcher::add设置的训练描述符集合。可以通过可选的掩码(或掩码集合)指定哪些查询和训练描述符可以进行匹配。具体来说,只有当mask.at(i,j)非零时,queryDescriptors[i]才能与trainDescriptors[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_matchesDescriptorMatcher::matchAsync返回的匹配项。
matchesDMatch对象向量。

◆ radiusMatch() [1/2]

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

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

参数
queryDescriptors查询描述符集。
trainDescriptors训练描述符集。此集不会添加到类对象中存储的训练描述符集合中。
matches找到的匹配项。
maxDistance匹配描述符之间距离的阈值。这里的距离指的是度量距离(例如Hamming距离),而不是坐标之间的距离(以像素为单位)!
掩码指定输入查询和描述符的类别之间的可匹配范围的掩码。
compactResult当掩码(或多个掩码)不为空时使用的参数。如果compactResult为false,则匹配向量与queryDescriptors行具有相同的大小。如果compactResult为true,则匹配向量不包含完全掩码查询描述符的匹配项。

对于每个查询描述符,该方法会找出与其距离等于或小于maxDistance的训练描述符。找到的匹配项以距离递增的顺序返回。

以下是此函数的调用图

◆ radiusMatch() [2/2]

virtual void cv::cuda::DescriptorMatcher::radiusMatch ( InputArray  queryDescriptors,
std::vector< std::vector< DMatch > > &  matches,
float& nbsp; 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& nbsp; maxDistance,
InputArray  mask = noArray(),
Stream stream = Stream::Null() 
)
纯虚的

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

参数
queryDescriptors查询描述符集。
trainDescriptors训练描述符集。此集不会添加到类对象中存储的训练描述符集合中。
matches存储在GPU内存中的匹配数组。内部表示不分定义。使用DescriptorMatcher::radiusMatchConvert方法检索结果的标准表示。
maxDistance匹配描述符之间距离的阈值。这里的距离指的是度量距离(例如Hamming距离),而不是坐标之间的距离(以像素为单位)!
掩码指定输入查询和描述符的类别之间的可匹配范围的掩码。
streamCUDA流。

对于每个查询描述符,该方法会找出与其距离等于或小于maxDistance的训练描述符。找到的匹配项以距离递增的顺序返回。

以下是此函数的调用图

◆ radiusMatchAsync() [2/2]

virtual void cv::cuda::DescriptorMatcher::radiusMatchAsync ( InputArray  queryDescriptors,
OutputArray  matches,
float& nbsp; 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,则匹配向量与queryDescriptors行具有相同的大小。如果compactResult为true,则匹配向量不包含完全掩码查询描述符的匹配项。

◆ train()

virtual void cv::cuda::DescriptorMatcher::train ( )
纯虚的

训练描述符匹配器。

训练描述符匹配器(例如,Flann索引)。在所有匹配方法中,都会在匹配前运行train()方法。


此类的文档是从以下文件生成的