OpenCV 4.5.3(日本語機械翻訳)
|
Abstract base class for matching keypoint descriptors. [詳解]
#include <features2d.hpp>
cv::Algorithmを継承しています。
cv::BFMatcherに継承されています。
クラス |
|
class | DescriptorCollection |
公開型 |
|
enum |
MatcherType
{
FLANNBASED = 1 , BRUTEFORCE = 2 , BRUTEFORCE_L1 = 3 , BRUTEFORCE_HAMMING = 4 , BRUTEFORCE_HAMMINGLUT = 5 , BRUTEFORCE_SL2 = 6 } |
公開メンバ関数 |
|
virtual CV_WRAP void | add (InputArrayOfArrays descriptors) |
CPU(trainDescCollectionis) または GPU(utrainDescCollectionis) のディスクリプタコレクションを訓練するために,ディスクリプタを追加します.[【詳解】(英語]
|
|
CV_WRAP const std::vector< Mat > & | getTrainDescriptors () const |
列車ディスクリプタコレクション trainDescCollection への定数リンクを返します. |
|
virtual CV_WRAP void | clear () CV_OVERRIDE |
列車ディスクリプタコレクションをクリアします.[【詳解】(英語]
|
|
virtual CV_WRAP bool | empty () const CV_OVERRIDE |
両方のコレクションに列車ディスクリプタが存在しない場合,真を返します.[【詳解】(英語]
|
|
virtual CV_WRAP bool | isMaskSupported () const =0 |
ディスクリプタ Matcherが,許容されるマッチのマスキングをサポートしている場合には,trueを返します.[【詳解】(英語]
|
|
virtual CV_WRAP void | train () |
ディスクリプタ Matcher を学習します.[【詳解】(英語]
|
|
CV_WRAP void | match (InputArray queryDescriptors, InputArray trainDescriptors, CV_OUT std::vector< DMatch > &matches, InputArray mask=noArray()) const |
クエリセットから,各ディスクリプタに対するベストマッチを見つけます.[【詳解】(英語]
|
|
CV_WRAP void | knnMatch (InputArray queryDescriptors, InputArray trainDescriptors, CV_OUT std::vector< std::vector< DMatch > > &matches, int k, InputArray mask=noArray(), bool compactResult=false) const |
クエリセットの各ディスクリプタに対して,k個のベストマッチを見つけます.[【詳解】(英語]
|
|
CV_WRAP void | radiusMatch (InputArray queryDescriptors, InputArray trainDescriptors, CV_OUT std::vector< std::vector< DMatch > > &matches, float maxDistance, InputArray mask=noArray(), bool compactResult=false) const |
各クエリディスクリプタに対して,指定された距離よりも離れていないトレーニングディスクリプタを見つけます.[【詳解】(英語]
|
|
CV_WRAP void | match (InputArray queryDescriptors, CV_OUT std::vector< DMatch > &matches, InputArrayOfArrays masks=noArray()) |
CV_WRAP void | knnMatch (InputArray queryDescriptors, CV_OUT std::vector< std::vector< DMatch > > &matches, int k, InputArrayOfArrays masks=noArray(), bool compactResult=false) |
CV_WRAP void | radiusMatch (InputArray queryDescriptors, CV_OUT std::vector< std::vector< DMatch > > &matches, float maxDistance, InputArrayOfArrays masks=noArray(), bool compactResult=false) |
CV_WRAP void | write (const String &fileName) const |
CV_WRAP void | read (const String &fileName) |
virtual CV_WRAP void | read (const FileNode &) CV_OVERRIDE |
アルゴリズム・パラメータをファイル・ストレージから読み込みます。[【詳解】(英語]
|
|
virtual void | write (FileStorage &) const CV_OVERRIDE |
アルゴリズムのパラメーターをファイルストレージに格納[【詳解】(英語]
|
|
virtual CV_WRAP Ptr< DescriptorMatcher > | clone (bool emptyTrainData=false) const =0 |
Matcherのクローンを作成します。[【詳解】(英語]
|
|
CV_WRAP void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
![]() |
|
CV_WRAP void | write (const Ptr< FileStorage > &fs, const String &name=String()) const |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。 |
|
virtual CV_WRAP void | save (const String &filename) const |
virtual CV_WRAP String | getDefaultName () const |
静的公開メンバ関数 |
|
static CV_WRAP Ptr< DescriptorMatcher > | create (const String &descriptorMatcherType) |
デフォルトのパラメータ(デフォルトコンストラクタを利用)で,指定されたタイプのディスクリプタ Matcherを作成します.[【詳解】(英語]
|
|
static CV_WRAP Ptr< DescriptorMatcher > | create (const DescriptorMatcher::MatcherType &matcherType) |
![]() |
|
template<typename _Tp > | |
static Ptr< _Tp > | read (const FileNode &fn) |
ファイル・ノードからアルゴリズムを読み込む[【詳解】(英語]
|
|
template<typename _Tp > | |
static Ptr< _Tp > | load (const String &filename, const String &objname=String()) |
ファイルからアルゴリズムを読み込む[【詳解】(英語]
|
|
template<typename _Tp > | |
static Ptr< _Tp > | loadFromString (const String &strModel, const String &objname=String()) |
文字列からアルゴリズムを読み込む[【詳解】(英語]
|
|
限定公開メンバ関数 |
|
virtual void | knnMatchImpl (InputArray queryDescriptors, std::vector< std::vector< DMatch > > &matches, int k, InputArrayOfArrays masks=noArray(), bool compactResult=false)=0 |
virtual void | radiusMatchImpl (InputArray queryDescriptors, std::vector< std::vector< DMatch > > &matches, float maxDistance, InputArrayOfArrays masks=noArray(), bool compactResult=false)=0 |
void | checkMasks (InputArrayOfArrays masks, int queryDescriptorsCount) const |
![]() |
|
void | writeFormat (FileStorage &fs) const |
静的限定公開メンバ関数 |
|
static bool | isPossibleMatch (InputArray mask, int queryIdx, int trainIdx) |
static bool | isMaskedOut (InputArrayOfArrays masks, int queryIdx) |
static Mat | clone_op (Mat m) |
限定公開変数類 |
|
std::vector< Mat > | trainDescCollection |
訓練画像からのディスクリプタのコレクション. |
|
std::vector< UMat > | utrainDescCollection |
キーポイントディスクリプタのマッチングのための抽象的な基底クラス.
このクラスには,ある画像のディスクリプタを別の画像や画像セットとマッチングさせるための,2つのマッチングメソッド群があります.
|
virtual |
CPU(trainDescCollectionis) または GPU(utrainDescCollectionis) のディスクリプタコレクションを訓練するために,ディスクリプタを追加します.
コレクションが空ではない場合,新しいディスクリプタは,既存の訓練ディスクリプタに追加されます.
descriptors | 追加されるディスクリプタ.各 descriptors[i] は,同じ訓練画像から得られたディスクリプタの集合です. |
|
virtual |
列車ディスクリプタコレクションをクリアします.
cv::Algorithmを再実装します。
|
pure virtual |
Matcherのクローンを作成します。
emptyTrainData | emptyTrainData が false の場合、このメソッドはオブジェクトのディープコピーを作成します。つまり、パラメータとトレーニングデータの両方をコピーします。emptyTrainData が true の場合、このメソッドは現在のパラメータでオブジェクトのコピーを作成しますが、訓練データは空です。 |
cv::BFMatcherで実装されています.
|
static |
デフォルトのパラメータ(デフォルトコンストラクタを利用)で,指定されたタイプのディスクリプタ Matcherを作成します.
descriptorMatcherType | ディスクリプタのマッチャータイプ.現在,以下のマッチャータイプがサポートされています.
|
|
virtual |
両方のコレクションに列車ディスクリプタが存在しない場合,真を返します.
cv::Algorithmを再実装します。
|
pure virtual |
ディスクリプタ Matcherが,許容されるマッチのマスキングをサポートしている場合には,trueを返します.
cv::BFMatcherで実装されています.
CV_WRAP void cv::DescriptorMatcher::knnMatch | ( | InputArray | queryDescriptors, |
CV_OUT std::vector< std::vector< DMatch > > & | matches, | ||
int | k, | ||
InputArrayOfArrays |
masks
=
noArray() ,
|
||
bool |
compactResult
=
false |
||
) |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
queryDescriptors | ディスクリプタのセットをクエリします. |
matches | マッチ.各 matches[i] は,同じクエリディスクリプタに対する k 個以下のマッチです. |
k | 各クエリ記述子ごとに見つかったベストマッチの数,あるいは,クエリ記述子のマッチ可能な数が合計で k 個以下の場合はそれ以下. |
masks | マスクのセット.各 masks[i] は,入力されたクエリ記述子と,i番目の画像 trainDescCollection[i] からの保存された訓練記述子との間の,許容されるマッチを指定します. |
compactResult | マスクが空ではない場合に使用されるパラメータです.compactResult が false の場合, matches ベクトルは queryDescriptors の行数と同じサイズになります.compactResult が true の場合, matches vector には,完全にマスクアウトされたクエリディスクリプタに対するマッチは含まれません. |
CV_WRAP void cv::DescriptorMatcher::knnMatch | ( | InputArray | queryDescriptors, |
InputArray | trainDescriptors, | ||
CV_OUT std::vector< std::vector< DMatch > > & | matches, | ||
int | k, | ||
InputArray |
mask
=
noArray() ,
|
||
bool |
compactResult
=
false |
||
) | const |
クエリセットの各ディスクリプタに対して,k個のベストマッチを見つけます.
queryDescriptors | ディスクリプタのセットをクエリします. |
trainDescriptors | ディスクリプタの訓練セット.このセットは,クラスオブジェクトに格納されている訓練ディスクリプタコレクションには追加されません. |
mask | 入力クエリと訓練ディスクリプタの行列との間の,許容されるマッチを指定するマスク. |
matches | マッチ.各 matches[i] は,同じクエリディスクリプタに対する k 個以下のマッチです. |
k | 各クエリ記述子ごとに見つかったベストマッチの数,あるいは,クエリ記述子のマッチ可能な数が合計で k 個以下の場合はそれ以下. |
compactResult | マスクが空ではない場合に使用されるパラメータです.compactResult が false の場合, matches ベクトルは queryDescriptors の行数と同じサイズになります.compactResult が true の場合, matches vector には,完全にマスクアウトされたクエリディスクリプタに対するマッチは含まれません. |
のこれらの拡張バージョンはDescriptorMatcher::matchメソッドの拡張版は,各クエリディスクリプタに対して複数のベストマッチを見つけます.これらのマッチは,距離の増加順に返されます.クエリと訓練ディスクリプタの詳細についてはDescriptorMatcher::matchを参照してください.
|
protected pure virtual |
実際には,マッチングは以下の2つのメソッドによってのみ実装されています.これらのメソッドは,クラスオブジェクトがすでに学習されていることを前提としています.パブリックなマッチメソッドは,以下のメソッドを呼び出した後に,これらのメソッドを呼び出します.train().
cv::BFMatcherで実装されています.
CV_WRAP void cv::DescriptorMatcher::match | ( | InputArray | queryDescriptors, |
CV_OUT std::vector< DMatch > & | matches, | ||
InputArrayOfArrays |
masks
=
noArray() |
||
) |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
queryDescriptors | ディスクリプタのセットをクエリします. |
matches | マッチ。クエリディスクリプタが mask でマスクアウトされている場合,このディスクリプタに対するマッチは追加されません.そのため,マッチのサイズは,クエリディスクリプタの数よりも小さくなる可能性があります. |
masks | マスクのセット.各 masks[i] は,入力されたクエリ記述子と,i番目の画像 trainDescCollection[i] からの保存された訓練記述子との間の,許容されるマッチを指定します. |
CV_WRAP void cv::DescriptorMatcher::match | ( | InputArray | queryDescriptors, |
InputArray | trainDescriptors, | ||
CV_OUT std::vector< DMatch > & | matches, | ||
InputArray |
mask
=
noArray() |
||
) | const |
クエリセットから,各ディスクリプタに対するベストマッチを見つけます.
queryDescriptors | ディスクリプタのセットをクエリします. |
trainDescriptors | ディスクリプタの訓練セット.このセットは,クラスオブジェクトに格納されている訓練ディスクリプタコレクションには追加されません. |
matches | マッチ。クエリディスクリプタが mask でマスクアウトされている場合,このディスクリプタに対するマッチは追加されません.そのため,マッチのサイズは,クエリディスクリプタの数よりも小さくなる可能性があります. |
mask | 入力クエリと訓練ディスクリプタの行列との間の,許容されるマッチを指定するマスク. |
このメソッドの第1のバージョンでは,入力引数として訓練ディスクリプタが渡されます.このメソッドの第2のバージョンでは,で設定された訓練ディスクリプタコレクションが利用されます.DescriptorMatcher::addが使用されます.オプションのマスクを渡すことで,どのクエリディスクリプタとトレーニングディスクリプタをマッチングさせるかを指定できます.つまり,mask.at<uchar>(i,j) が0ではない場合にのみ,queryDescriptors[i] は trainDescriptors[j] とマッチすることができます.
CV_WRAP void cv::DescriptorMatcher::radiusMatch | ( | InputArray | queryDescriptors, |
CV_OUT std::vector< std::vector< DMatch > > & | matches, | ||
float | maxDistance, | ||
InputArrayOfArrays |
masks
=
noArray() ,
|
||
bool |
compactResult
=
false |
||
) |
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
queryDescriptors | ディスクリプタのセットをクエリします. |
matches | マッチしたもの |
maxDistance | マッチしたディスクリプタ間の距離の閾値.距離とは,ここではメトリックな距離(例えばHammingdistance)を意味し,座標間の距離(これは,Pixelsで測定されます)ではありません. |
masks | マスクのセット.各 masks[i] は,入力されたクエリ記述子と,i番目の画像 trainDescCollection[i] からの保存された訓練記述子との間の,許容されるマッチを指定します. |
compactResult | マスクが空ではない場合に使用されるパラメータです.compactResult が false の場合, matches ベクトルは queryDescriptors の行数と同じサイズになります.compactResult が true の場合, matches vector には,完全にマスクアウトされたクエリディスクリプタに対するマッチは含まれません. |
CV_WRAP void cv::DescriptorMatcher::radiusMatch | ( | InputArray | queryDescriptors, |
InputArray | trainDescriptors, | ||
CV_OUT std::vector< std::vector< DMatch > > & | matches, | ||
float | maxDistance, | ||
InputArray |
mask
=
noArray() ,
|
||
bool |
compactResult
=
false |
||
) | const |
各クエリディスクリプタに対して,指定された距離よりも離れていないトレーニングディスクリプタを見つけます.
queryDescriptors | ディスクリプタのセットをクエリします. |
trainDescriptors | ディスクリプタの訓練セット.このセットは,クラスオブジェクトに格納されている訓練ディスクリプタコレクションには追加されません. |
matches | マッチしたもの |
compactResult | マスクが空ではない場合に使用されるパラメータです.compactResult が false の場合, matches ベクトルは queryDescriptors の行数と同じサイズになります.compactResult が true の場合, matches vector には,完全にマスクアウトされたクエリディスクリプタに対するマッチは含まれません. |
maxDistance | マッチしたディスクリプタ間の距離の閾値.距離とは,ここではメトリックな距離(例えばHammingdistance)を意味し,座標間の距離(これは,Pixelsで測定されます)ではありません. |
mask | 入力クエリと訓練ディスクリプタの行列との間の,許容されるマッチを指定するマスク. |
各クエリディスクリプタに対して,メソッドは,クエリディスクリプタとトレーニングディスクリプタの間の距離が maxDistance と同等かそれよりも小さくなるようなトレーニングディスクリプタを見つけます.検出されたマッチは,距離が大きい順に返されます.
|
virtual |
アルゴリズム・パラメータをファイル・ストレージから読み込みます。
cv::Algorithmを再実装します。
|
virtual |
ディスクリプタ Matcher を学習します.
ディスクリプタ・マッチャー(例えば,flannインデックス)を学習します.マッチするすべてのメソッドにおいて,メソッドtrain()はマッチングの前に毎回実行されます.一部のディスクリプタ Matcher(例えば,BruteForceMatcher)は,このメソッドを空で実装しています.他の Matcher は,本当に内部構造を学習します(例えば, FlannBasedMatcher は, flann::Index を学習します).
|
virtual |
アルゴリズムのパラメーターをファイルストレージに格納
cv::Algorithmを再実装します。