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

キーポイント記述子をマッチングするための抽象基底クラス。 詳細...

#include <opencv2/cudafeatures2d.hpp>

Collaboration diagram for cv::cuda::DescriptorMatcher:

公開メンバ関数

virtual void add (const std::vector< GpuMat > &descriptors)=0
 記述子コレクションを学習するための記述子を追加する。
 
virtual void clear () CV_OVERRIDE=0
 学習用記述子コレクションをクリアする。
 
virtual bool empty () const CV_OVERRIDE=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 train ()=0
 記述子マッチャーを学習する。
 
- Public Member Functions inherited from cv::Algorithm
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 ファイルストレージからアルゴリズムの引数を読み込む。
 
virtual void save (const String &filename) const
 
virtual void write (FileStorage &fs) const
 アルゴリズムの引数をファイルストレージに保存する。
 
void write (FileStorage &fs, const String &name) const
 

静的公開メンバ関数

static Ptr< cuda::DescriptorMatchercreateBFMatcher (int normType=cv::NORM_L2)
 総当たり (brute-force) 記述子マッチャ。
 
- Static Public Member Functions inherited from 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)
 ファイルノードからアルゴリズムを読み込む。
 

Additional Inherited Members

- Protected Member Functions inherited from cv::Algorithm
void writeFormat (FileStorage &fs) const
 

詳細説明

キーポイント記述子をマッチングするための抽象基底クラス。

2 つのマッチメソッド群を持つ: ある画像の記述子を別の画像とマッチングするためのものと、画像集合とマッチングするためのものである。

メンバ関数詳解

◆ add()

virtual void cv::cuda::DescriptorMatcher::add ( const std::vector< GpuMat > & descriptors)
pure virtual

記述子コレクションを学習するための記述子を追加する。

コレクションが空でない場合、新しい記述子は既存の学習記述子に追加される。

引数
descriptors追加する記述子。各 descriptors[i] は同一の学習画像から得られた記述子の集合である。

◆ clear()

virtual void cv::cuda::DescriptorMatcher::clear ( )
pure virtual

学習用記述子コレクションをクリアする。

cv::Algorithm から再実装。

◆ createBFMatcher()

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

Brute-force記述子マッチャー。

第1集合の各記述子について、このマッチャーは第2集合のすべての記述子を試して最も近い記述子を探索する。この記述子マッチャーは、記述子集合の許容マッチのマスキングをサポートする。

引数
normTypeNORM_L1、NORM_L2、NORM_HAMMING のいずれか。L1 および L2 ノルムは SIFT や SURF の記述子に適した選択肢であり、NORM_HAMMING は ORB、BRISK、BRIEF とともに使用すべきである)。

◆ empty()

virtual bool cv::cuda::DescriptorMatcher::empty ( ) const
pure virtual

コレクションに学習用記述子が存在しない場合に true を返す。

cv::Algorithm から再実装されている。

◆ getTrainDescriptors()

virtual const std::vector< GpuMat > & cv::cuda::DescriptorMatcher::getTrainDescriptors ( ) const
pure virtual

学習用記述子コレクションへの定数リンクを返す。

◆ isMaskSupported()

virtual bool cv::cuda::DescriptorMatcher::isMaskSupported ( ) const
pure virtual

記述子マッチャーが許容マッチのマスキングをサポートしている場合は 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 )
pure virtual

クエリ集合の各記述子について、上位 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 )
pure virtual

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

◆ knnMatchAsync() [1/2]

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

クエリ集合の各記述子について、上位 k 個のマッチを検出する (非同期版)。

引数
queryDescriptorsクエリ側の記述子の集合。
trainDescriptors学習側の記述子の集合。この集合は、クラスオブジェクト内に格納されている学習記述子コレクションには追加されない。
matchesGPU メモリに格納されたマッチ配列。内部表現は定義されていない。標準表現で結果を取得するには DescriptorMatcher::knnMatchConvert メソッドを使用する。
k各クエリ記述子について検出する最良マッチの数。クエリ記述子に対して可能なマッチが合計で k 個未満の場合はその数になる。
mask入力クエリと学習記述子行列との間で許可されるマッチを指定するマスク。
streamCUDAストリーム。

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() )
pure virtual

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

◆ knnMatchConvert()

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

マッチ配列を内部表現から標準的なマッチベクトルへ変換する。

このメソッドは、最終結果を得るために DescriptorMatcher::knnMatchAsync と組み合わせて使用することを想定している。このメソッドは DescriptorMatcher::knnMatchAsync が完了した後 (すなわち同期後) にのみ呼び出すこと。

引数
gpu_matchesDescriptorMatcher::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() )
pure virtual

クエリ集合の各記述子について、最良のマッチを検出する (ブロッキング版)。

引数
queryDescriptorsクエリ側の記述子の集合。
trainDescriptors学習側の記述子の集合。この集合は、クラスオブジェクト内に格納されている学習記述子コレクションには追加されない。
matchesマッチ結果。あるクエリ記述子が mask によってマスクされている場合、その記述子に対するマッチは追加されない。したがって matches のサイズはクエリ記述子の数より小さくなることがある。
mask入力クエリと学習記述子行列との間で許可されるマッチを指定するマスク。

このメソッドの最初の派生版では、学習用記述子を入力引数として渡す。2 番目の派生版では、DescriptorMatcher::add によって設定された学習用記述子コレクションが使用される。どのクエリ記述子と学習用記述子をマッチング可能とするかを指定するため、省略可能なマスク (またはマスク群) を渡せる。具体的には、queryDescriptors[i] は mask.at<uchar>(i,j) が非ゼロの場合に限り trainDescriptors[j] とマッチングできる。

◆ match() [2/2]

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

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

◆ matchAsync() [1/2]

virtual void cv::cuda::DescriptorMatcher::matchAsync ( InputArray queryDescriptors,
InputArray trainDescriptors,
OutputArray matches,
InputArray mask = noArray(),
Stream & stream = Stream::Null() )
pure virtual

クエリ集合の各記述子について、最良のマッチを検出する (非同期版)。

引数
queryDescriptorsクエリ側の記述子の集合。
trainDescriptors学習側の記述子の集合。この集合は、クラスオブジェクト内に格納されている学習記述子コレクションには追加されない。
matchesGPU メモリに格納されたマッチ配列。内部表現は定義されていない。標準表現で結果を取得するには DescriptorMatcher::matchConvert メソッドを使用する。
mask入力クエリと学習記述子行列との間で許可されるマッチを指定するマスク。
streamCUDAストリーム。

このメソッドの最初の派生版では、学習用記述子を入力引数として渡す。2 番目の派生版では、DescriptorMatcher::add によって設定された学習用記述子コレクションが使用される。どのクエリ記述子と学習用記述子をマッチング可能とするかを指定するため、省略可能なマスク (またはマスク群) を渡せる。具体的には、queryDescriptors[i] は mask.at<uchar>(i,j) が非ゼロの場合に限り 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() )
pure virtual

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

◆ matchConvert()

virtual void cv::cuda::DescriptorMatcher::matchConvert ( InputArray gpu_matches,
std::vector< DMatch > & matches )
pure virtual

マッチ配列を内部表現から標準的なマッチベクトルへ変換する。

このメソッドは、最終結果を得るために 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 maxDistance,
InputArray mask = noArray(),
bool compactResult = false )
pure virtual

各クエリ記述子について、指定した距離以内にある学習用記述子を検出する (ブロッキング版)。

引数
queryDescriptorsクエリ側の記述子の集合。
trainDescriptors学習側の記述子の集合。この集合は、クラスオブジェクト内に格納されている学習記述子コレクションには追加されない。
matches見つかったマッチ。
maxDistanceマッチした記述子間の距離に対するしきい値。ここでの距離は計量距離(例えば Hamming 距離)を意味し、座標間の距離(ピクセル単位で測られるもの)ではない!
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 )
pure virtual

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

◆ radiusMatchAsync() [1/2]

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

各クエリ記述子について、指定した距離以内にある学習用記述子を検出する (非同期版)。

引数
queryDescriptorsクエリ側の記述子の集合。
trainDescriptors学習側の記述子の集合。この集合は、クラスオブジェクト内に格納されている学習記述子コレクションには追加されない。
matchesGPU メモリに格納されたマッチ配列。内部表現は定義されていない。標準表現で結果を取得するには DescriptorMatcher::radiusMatchConvert メソッドを使用する。
maxDistanceマッチした記述子間の距離に対するしきい値。ここでの距離は計量距離(例えば Hamming 距離)を意味し、座標間の距離(ピクセル単位で測られるもの)ではない!
mask入力クエリと学習記述子行列との間で許可されるマッチを指定するマスク。
streamCUDAストリーム。

各クエリ記述子について、本メソッドはクエリ記述子と学習記述子との距離が 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() )
pure virtual

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

◆ radiusMatchConvert()

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

マッチ配列を内部表現から標準的なマッチベクトルへ変換する。

このメソッドは、最終結果を得るために DescriptorMatcher::radiusMatchAsync と組み合わせて使用することを想定している。このメソッドは DescriptorMatcher::radiusMatchAsync が完了した後 (すなわち同期後) にのみ呼び出すこと。

引数
gpu_matchesDescriptorMatcher::radiusMatchAsync から返されるマッチ。
matchesDMatch オブジェクトのベクトル。
compactResultマスク(またはマスク群)が空でない場合に使われる引数。compactResult が false の場合、matches ベクトルは queryDescriptors の行数と同じサイズになる。compactResult が true の場合、matches ベクトルには完全にマスクされたクエリ記述子に対するマッチは含まれない。

◆ train()

virtual void cv::cuda::DescriptorMatcher::train ( )
pure virtual

記述子マッチャを学習させる。

記述子マッチャ (例えば flann インデックス) を学習する。すべてのマッチングメソッドにおいて、マッチングの前に毎回 train() メソッドが実行される。


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