OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
cv::linemod::Detector クラス

任意のモダリティ集合とともにLINEテンプレートマッチングアルゴリズムを用いる物体ディテクタ。 続きを読む...

#include <opencv2/rgbd/linemod.hpp>

Collaboration diagram for 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

◆ LinearMemoryPyramid

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

◆ TemplatePyramid

◆ TemplatesMap

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

構築子と解体子の詳解

◆ Detector() [1/2]

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

空のコンストラクタ。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 object>
cv.linemod.Detector(modalities, T_pyramid) -> <linemod_Detector object>

コンストラクタ。

引数
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ソース画像。各モダリティに1枚ずつ。
class_id物体クラスID。
object_mask物体を背景から分離するマスク。
[out]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< Modality > > & cv::linemod::Detector::getModalities ( ) const
inline
Python:
cv.linemod.Detector.getModalities() -> retval

この検出器が使用するモダリティを取得する。

モダリティの追加・削除は許可されていないが、dynamic_cast してパラメータを調整することはできる。

◆ 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< Template > & 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つのモダリティ (Gradient, Normal) と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ソース画像。各モダリティに1枚ずつ。
threshold類似度のしきい値。0から100までのパーセント値。
[out]matches類似度スコアでソートされた、一致した Template
class_ids空でない場合は、指定した物体クラスのみを探索する。
[out]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<int> cv::linemod::Detector::T_at_level
protected

このクラス詳解は次のファイルから抽出されました: