OpenCV  4.10.0
开源计算机视觉
加载中...
搜索中...
无匹配
公共成员函数 | 保护类型 | 保护成员函数 | 保护属性 | 所有成员列表
cv::linemod::Detector 类参考

使用任何模态集的 LINE 模板匹配算法进行对象检测。更多...

#include <opencv2/rgbd/linemod.hpp>

cv::linemod::Detector 的协作图

公共成员函数

 Detector ()
 空构造函数,使用 read() 初始化。
 
 Detector (const std::vector< Ptr< Modality > > &modalities, const std::vector< int > &T_pyramid)
 构造函数。
 
int addSyntheticTemplate (const std::vector< Template > &templates, const String &class_id)
 通过外部手段计算的新对象模板。
 
int addTemplate (const std::vector< Mat > &sources, const String &class_id, const Mat &object_mask, Rect *bounding_box=NULL)
 添加新的对象模板。
 
std::vector< StringclassIds () const
 
const std::vector< Ptr< Modality > > & getModalities () const
 获取此检测器使用的模态。
 
int getT (int pyramid_level) const
 获取在 pyramid_level 上的采样步长 T。
 
const std::vector< Template > & getTemplates (const String &class_id, int template_id) const
 获取由 template_id 标识的模板金字塔。
 
void match (const std::vector< Mat > &sources, float threshold, std::vector< Match > &matches, const std::vector< String > &class_ids=std::vector< String >(), OutputArrayOfArrays quantized_images=noArray(), const std::vector< Mat > &masks=std::vector< Mat >()) const
 通过模板匹配检测对象。
 
int numClasses () const
 
int numTemplates () const
 
int numTemplates (const String &class_id) const
 
int pyramidLevels () const
 获取此检测器使用的金字塔层数量。
 
void read (const FileNode &fn)
 
String readClass (const FileNode &fn, const String &class_id_override="")
 
void readClasses (const std::vector< String > &class_ids, const String &format="templates_%s.yml.gz")
 
void write (FileStorage &fs) const
 
void writeClass (const String &class_id, FileStorage &fs) const
 
void writeClasses (const String &format="templates_%s.yml.gz") const
 

保护类型

typedef std::vector< MatLinearMemories
 
typedef std::vector< std::vector< LinearMemories > > LinearMemoryPyramid
 
typedef std::vector< TemplateTemplatePyramid
 
typedef std::map< String, std::vector< TemplatePyramid > > TemplatesMap
 

保护成员函数

void matchClass (const LinearMemoryPyramid &lm_pyramid, const std::vector< Size > &sizes, float threshold, std::vector< Match > &matches, const String &class_id, const std::vector< TemplatePyramid > &template_pyramids) const
 

保护属性

TemplatesMap class_templates
 
std::vector< Ptr< Modality > > modalities
 
int pyramid_levels
 
std::vector< int > T_at_level
 

详细说明

使用任何一组模态的LINE模板匹配算法的对象检测器。

成员类型定义文档

◆ LinearMemories

typedef std::vector<Mat> cv::linemod::Detector::LinearMemories
protected

◆ LinearMemoryPyramid

typedef std::vector< std::vector< LinearMemories > > cv::linemod::Detector::LinearMemoryPyramid
protected

◆ TemplatePyramid

typedef std::vector< Template > cv::linemod::Detector::TemplatePyramid
protected

◆ TemplatesMap

typedef std::map< String, std::vector< TemplatePyramid > > cv::linemod::Detector::TemplatesMap
protected

构造函数与析构函数文档

◆ Detector() [1/2]

cv::linemod::Detector::Detector ( )
Python
cv.linemod.Detector() -> <linemod_Detector对象>
cv.linemod.Detector(modalities, T_pyramid) -> <linemod_Detector对象>

空构造函数,使用 read() 初始化。

◆ Detector() [2/2]

cv::linemod::Detector::Detector ( const std::vector< Ptr< Modality > > &  modalities,
const std::vector< int > &  T_pyramid 
)
Python
cv.linemod.Detector() -> <linemod_Detector对象>
cv.linemod.Detector(modalities, T_pyramid) -> <linemod_Detector对象>

构造函数。

参数
modalities要使用的模式(颜色梯度、深度法线、...)。
T_pyramid每个金字塔级别的采样步长T的值。金字塔级别的数量是T_pyramid.size()。

成员函数文档

◆ addSyntheticTemplate()

int cv::linemod::Detector::addSyntheticTemplate ( const std::vector< Template > &  templates,
const String class_id 
)
Python
cv.linemod.Detector.addSyntheticTemplate(templates, class_id) -> retval

通过外部手段计算的新对象模板。

◆ addTemplate()

int cv::linemod::Detector::addTemplate ( const std::vector< Mat > &  sources,
const String class_id,
const Mat  object_mask,
Rect bounding_box = NULL 
)
Python
cv.linemod.Detector.addTemplate(sources, class_id, object_mask) -> retval, bounding_box

添加新的对象模板。

参数
sources源图像,每个模式一个。
class_id对象类ID。
object_mask将对象与背景分离的掩码。
[输出]bounding_box可选地返回提取特征的边界框。
返回
Template ID,或如果失败提取有效模板则返回-1。

◆ classIds()

std::vector< String > cv::linemod::Detector::classIds ( ) const
Python
cv.linemod.Detector.classIds() -> retval

◆ getModalities()

const std::vector< Ptr< > > & cv::linemod::Detector::getModalities ( ) const
inline
Python
cv.linemod.Detector.getModalities() -> retval

获取此检测器使用的模态。

不允许添加/删除模式,但可以将它们动态转换为调整参数。

◆ getT()

int cv::linemod::Detector::getT ( int  pyramid_level) const
inline
Python
cv.linemod.Detector.getT(pyramid_level) -> retval

获取在 pyramid_level 上的采样步长 T。

◆ getTemplates()

const std::vector< > & cv::linemod::Detector::getTemplates ( const String class_id,
int  template_id 
) const
Python
cv.linemod.Detector.getTemplates(class_id, template_id) -> retval

获取由 template_id 标识的模板金字塔。

例如,对于2个模式(梯度,法线)和两个金字塔级别(L0,L1),顺序是(GradientL0,NormalL0,GradientL1,NormalL1)。

◆ match()

void cv::linemod::Detector::match ( const std::vector< Mat > &  sources,
float  threshold,
std::vector< Match > &  matches,
const std::vector< String > &  class_ids = std::vector< String >(),
OutputArrayOfArrays  quantized_images = noArray(),
const std::vector< Mat > &  masks = std::vector< Mat >() 
) const
Python
cv.linemod.Detector.match(sources, threshold[, class_ids[, quantized_images[, masks]]]) -> matches, quantized_images

通过模板匹配检测对象。

在最低层金字塔全局匹配,然后逐步向上层金字塔细化。

参数
sources源图像,每个模式一个。
threshold相似度阈值,介于0和100之间的百分比。
[输出]matchesTemplate matches,按相似度分数排序。
class_ids如果不为空,则只搜索所需的对象类别。
[输出]quantized_images可选:返回量化图像的vector<Mat>。
masks匹配时考虑的掩码。掩码应为CV_8UC1类型,其中255代表有效的像素。如果非空,则向量大小必须与sources相同。每个元素必须是空的或与相应源具有相同的尺寸。
以下是此函数的调用图

◆ matchClass()

void cv::linemod::Detector::matchClass ( const LinearMemoryPyramid lm_pyramid,
const std::vector< Size > &  sizes,
float  threshold,
std::vector< Match > &  matches,
const String class_id,
const std::vector< TemplatePyramid > &  template_pyramids 
) const
protected

◆ numClasses()

int cv::linemod::Detector::numClasses ( ) const
inline
Python
cv.linemod.Detector.numClasses() -> retval

◆ numTemplates() [1/2]

int cv::linemod::Detector::numTemplates ( ) const
Python
cv.linemod.Detector.numTemplates() -> retval
cv.linemod.Detector.numTemplates(class_id) -> retval

◆ numTemplates() [2/2]

int cv::linemod::Detector::numTemplates ( const String class_id) const
Python
cv.linemod.Detector.numTemplates() -> retval
cv.linemod.Detector.numTemplates(class_id) -> retval

◆ pyramidLevels()

int cv::linemod::Detector::pyramidLevels ( ) const
inline
Python
cv.linemod.Detector.pyramidLevels() -> retval

获取此检测器使用的金字塔层数量。

◆ read()

void cv::linemod::Detector::read ( const FileNode fn)
Python
cv.linemod.Detector.read(fn) -> None

◆ readClass()

String cv::linemod::Detector::readClass ( const FileNode fn,
const String class_id_override = "" 
)

◆ readClasses()

void cv::linemod::Detector::readClasses ( const std::vector< String > &  class_ids,
const String format = "templates_%s.yml.gz" 
)
Python
cv.linemod.Detector.readClasses(class_ids[, format]) -> None

◆ write()

void cv::linemod::Detector::write ( FileStorage fs) const

◆ writeClass()

void cv::linemod::Detector::writeClass ( const String class_id,
FileStorage fs 
) const

◆ writeClasses()

void cv::linemod::Detector::writeClasses ( const String format = "templates_%s.yml.gz") const
Python
cv.linemod.Detector.writeClasses([, format]) -> None

成员数据文档

◆ class_templates

TemplatesMap cv::linemod::Detector::class_templates
protected

◆ modalities

std::vector< Ptr<Modality> > cv::linemod::Detector::modalities
protected

◆ pyramid_levels

int cv::linemod::Detector::pyramid_levels
protected

◆ T_at_level

std::vector cv::linemod::Detector::T_at_level
protected

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