OpenCV 4.5.3(日本語機械翻訳)
公開メンバ関数 | 静的公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | 全メンバ一覧
cv::BFMatcher クラス

Brute-force descriptor matcher. [詳解]

#include <features2d.hpp>

cv::DescriptorMatcherを継承しています。

公開メンバ関数

CV_WRAP BFMatcher (int normType=NORM_L2, bool crossCheck=false)
残酷な matcher コンストラクタ(廃止予定).を使用してください.BFMatcher.create()
virtual bool isMaskSupported () const CV_OVERRIDE
ディスクリプタ Matcherが,許容されるマッチのマスキングをサポートしている場合には,trueを返します.[【詳解】(英語]
virtual Ptr< DescriptorMatcher > clone (bool emptyTrainData=false) const CV_OVERRIDE
Matcherのクローンを作成します。[【詳解】(英語]
- 基底クラス cv::DescriptorMatcher に属する継承公開メンバ関数
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 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
アルゴリズムのパラメーターをファイルストレージに格納[【詳解】(英語]
CV_WRAP void write (const Ptr< FileStorage > &fs, const String &name=String()) const
- 基底クラス cv::Algorithm に属する継承公開メンバ関数
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< BFMatcher > create (int normType=NORM_L2, bool crossCheck=false)
ブルートフォース・マッチャー作成メソッド。[【詳解】(英語]
- 基底クラス cv::DescriptorMatcher に属する継承静的公開メンバ関数
static CV_WRAP Ptr< DescriptorMatcher > create (const String &descriptorMatcherType)
デフォルトのパラメータ(デフォルトコンストラクタを利用)で,指定されたタイプのディスクリプタ Matcherを作成します.[【詳解】(英語]
static CV_WRAP Ptr< DescriptorMatcher > create (const DescriptorMatcher::MatcherType &matcherType)
- 基底クラス cv::Algorithm に属する継承静的公開メンバ関数
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) CV_OVERRIDE
virtual void radiusMatchImpl (InputArray queryDescriptors, std::vector< std::vector< DMatch > > &matches, float maxDistance, InputArrayOfArrays masks=noArray(), bool compactResult=false) CV_OVERRIDE
- 基底クラス cv::DescriptorMatcher に属する継承限定公開メンバ関数
void checkMasks (InputArrayOfArrays masks, int queryDescriptorsCount) const
- 基底クラス cv::Algorithm に属する継承限定公開メンバ関数
void writeFormat (FileStorage &fs) const

限定公開変数類

int normType
bool crossCheck
- 基底クラス cv::DescriptorMatcher に属する継承限定公開変数類
std::vector< Mat > trainDescCollection
訓練画像からのディスクリプタのコレクション.
std::vector< UMat > utrainDescCollection

その他の継承メンバ

- 基底クラス cv::DescriptorMatcher に属する継承公開型
enum MatcherType {
FLANNBASED = 1 , BRUTEFORCE = 2 , BRUTEFORCE_L1 = 3 , BRUTEFORCE_HAMMING = 4 ,
BRUTEFORCE_HAMMINGLUT = 5 , BRUTEFORCE_SL2 = 6
}
- 基底クラス cv::DescriptorMatcher に属する継承静的限定公開メンバ関数
static bool isPossibleMatch (InputArray mask, int queryIdx, int trainIdx)
static bool isMaskedOut (InputArrayOfArrays masks, int queryIdx)
static Mat clone_op (Mat m)

詳解

記述子の残酷な照合を行います.

この Matcherは,第1集合の各ディスクリプタに対して,第2集合の各ディスクリプタを試行して最も近いディスクリプタを見つけます.このディスクリプタ Matcherは,ディスクリプタセットの許容されるマッチをマスクすることをサポートします.

関数詳解

clone()

virtual Ptr< DescriptorMatcher > cv::BFMatcher::clone ( bool emptyTrainData = false ) const
virtual

Matcherのクローンを作成します。

引数
emptyTrainData emptyTrainData が false の場合、このメソッドはオブジェクトのディープコピーを作成します。つまり、パラメータとトレーニングデータの両方をコピーします。emptyTrainData が true の場合、このメソッドは現在のパラメータでオブジェクトのコピーを作成しますが、訓練データは空です。

cv::DescriptorMatcherを実装します。

create()

static CV_WRAP Ptr< BFMatcher > cv::BFMatcher::create ( int normType = NORM_L2 ,
bool crossCheck = false
)
static

ブルートフォース・マッチャー作成メソッド。

引数
normType NORM_L1, NORM_L2, NORM_HAMMING, NORM_HAMMING2 のうちの1つです。L1およびL2のノルムが望ましい選択です。SIFTとSURFディスクリプタでは、 NORM_HAMMINGが使用されるべきです。ORB,BRISKとBRIEFでは、NORM_HAMMING2が使用されます。ORBは,WTA_K==3または4のときに使用されるべきである(ORB::ORBコンストラクタの説明を参照).
crossCheck これがfalseの場合,k個の最近傍を見つけるときのデフォルトの動作はBFMatcherの動作となります.crossCheck==trueの場合は,k=1のknnMatch()メソッドは,k=1 の場合,i 番目のクエリ記述子に対して Matcher のコレクションの j 番目の記述子が最近接であり,その逆であるようなペア (i,j) のみを返します.BFMatcherは,一貫性のあるペアのみを返します.この手法は,十分な数のマッチがある場合に,通常,外れ値の数を最小限に抑えて最良の結果を得ることができます.で D. Lowe が用いた比検定に代わるものです.SIFTペーパーに記載されている3D再構成アルゴリズムを実装しています。

isMaskSupported()

virtual bool cv::BFMatcher::isMaskSupported ( ) const
inline virtual

ディスクリプタ Matcherが,許容されるマッチのマスキングをサポートしている場合には,trueを返します.

cv::DescriptorMatcherを実装します。

knnMatchImpl()

virtual void cv::BFMatcher::knnMatchImpl ( InputArray queryDescriptors,
std::vector< std::vector< DMatch > > & matches,
int k,
InputArrayOfArrays masks = noArray(),
bool compactResult = false
)
protected virtual

実際には,マッチングは以下の2つのメソッドによってのみ実装されています.これらのメソッドは,クラスオブジェクトがすでに学習されていることを前提としています.パブリックなマッチメソッドは,以下のメソッドを呼び出した後に,これらのメソッドを呼び出します.train().

cv::DescriptorMatcherを実装します。

radiusMatchImpl()

virtual void cv::BFMatcher::radiusMatchImpl ( InputArray queryDescriptors,
std::vector< std::vector< DMatch > > & matches,
float maxDistance,
InputArrayOfArrays masks = noArray(),
bool compactResult = false
)
protected virtual

cv::DescriptorMatcherを実装します。


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