OpenCV 4.5.3(日本語機械翻訳)
公開型 | 公開メンバ関数 | 静的公開メンバ関数 | 静的公開変数類 | 全メンバ一覧

Class implementing the ORB (oriented BRIEF) keypoint detector and descriptor extractor [詳解]

#include <features2d.hpp>

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

公開型

enum ScoreType { HARRIS_SCORE =0 , FAST_SCORE =1 }

公開メンバ関数

virtual CV_WRAP void setMaxFeatures (int maxFeatures)=0
virtual CV_WRAP int getMaxFeatures () const =0
virtual CV_WRAP void setScaleFactor (double scaleFactor)=0
virtual CV_WRAP double getScaleFactor () const =0
virtual CV_WRAP void setNLevels (int nlevels)=0
virtual CV_WRAP int getNLevels () const =0
virtual CV_WRAP void setEdgeThreshold (int edgeThreshold)=0
virtual CV_WRAP int getEdgeThreshold () const =0
virtual CV_WRAP void setFirstLevel (int firstLevel)=0
virtual CV_WRAP int getFirstLevel () const =0
virtual CV_WRAP void setWTA_K (int wta_k)=0
virtual CV_WRAP int getWTA_K () const =0
virtual CV_WRAP void setScoreType (ORB::ScoreType scoreType)=0
virtual CV_WRAP ORB::ScoreType getScoreType () const =0
virtual CV_WRAP void setPatchSize (int patchSize)=0
virtual CV_WRAP int getPatchSize () const =0
virtual CV_WRAP void setFastThreshold (int fastThreshold)=0
virtual CV_WRAP int getFastThreshold () const =0
virtual CV_WRAP String getDefaultName () const CV_OVERRIDE
- 基底クラス cv::Feature2D に属する継承公開メンバ関数
virtual CV_WRAP void detect (InputArray image, CV_OUT std::vector< KeyPoint > &keypoints, InputArray mask=noArray())
画像(第1のバージョン)または画像セット(第2のバージョン)からキーポイントを検出します。[【詳解】(英語]
virtual CV_WRAP void detect (InputArrayOfArrays images, CV_OUT std::vector< std::vector< KeyPoint > > &keypoints, InputArrayOfArrays masks=noArray())
virtual CV_WRAP void compute (InputArray image, CV_OUT CV_IN_OUT std::vector< KeyPoint > &keypoints, OutputArray descriptors)
画像(第1の形式)または画像集合(第2の形式)から検出されるキーポイントの集合に対するディスクリプタを計算します.[【詳解】(英語]
virtual CV_WRAP void compute (InputArrayOfArrays images, CV_OUT CV_IN_OUT std::vector< std::vector< KeyPoint > > &keypoints, OutputArrayOfArrays descriptors)
virtual CV_WRAP void detectAndCompute (InputArray image, InputArray mask, CV_OUT std::vector< KeyPoint > &keypoints, OutputArray descriptors, bool useProvidedKeypoints=false)
virtual CV_WRAP int descriptorSize () const
virtual CV_WRAP int descriptorType () const
virtual CV_WRAP int defaultNorm () const
CV_WRAP void write (const String &fileName) const
CV_WRAP void read (const String &fileName)
virtual void write (FileStorage &) const CV_OVERRIDE
アルゴリズムのパラメーターをファイルストレージに格納[【詳解】(英語]
virtual CV_WRAP void read (const FileNode &) CV_OVERRIDE
アルゴリズム・パラメータをファイル・ストレージから読み込みます。[【詳解】(英語]
virtual CV_WRAP bool empty () const CV_OVERRIDE
検出器オブジェクトが空の場合は,trueを返します.[【詳解】(英語]
CV_WRAP void write (const Ptr< FileStorage > &fs, const String &name=String()) const
- 基底クラス cv::Algorithm に属する継承公開メンバ関数
virtual CV_WRAP void clear ()
アルゴリズムの状態をクリアする[【詳解】(英語]
CV_WRAP void write (const Ptr< FileStorage > &fs, const String &name=String()) const
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
virtual CV_WRAP void save (const String &filename) const

静的公開メンバ関数

static CV_WRAP Ptr< ORB > create (int nfeatures=500, float scaleFactor=1.2f, int nlevels=8, int edgeThreshold=31, int firstLevel=0, int WTA_K=2, ORB::ScoreType scoreType=ORB::HARRIS_SCORE, int patchSize=31, int fastThreshold=20)
のクラスはスレッドセーフではありません。ORBコンストラクタ[【詳解】(英語]
- 基底クラス 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())
文字列からアルゴリズムを読み込む[【詳解】(英語]

静的公開変数類

static const int kBytes = 32

その他の継承メンバ

- 基底クラス cv::Algorithm に属する継承限定公開メンバ関数
void writeFormat (FileStorage &fs) const

詳解

を実装したクラス。ORB(オリエンテッドブリフ) キーポイント検出器とディスクリプタ抽出器

に記載されている。[RRKB11] に記載されています。. このアルゴリズムは、安定したキーポイントを検出するためにピラミッドのFASTを使用し、FASTまたはHarris応答を用いて最も強い特徴を選択し、一次モーメントを用いてその向きを見つけ、BRIEF(ランダムな点のペア(またはk-タプル)の座標が測定された向きに従って回転される)を用いて記述子を計算します。

関数詳解

create()

static CV_WRAP Ptr< ORB > cv::ORB::create ( int nfeatures = 500,
float scaleFactor = 1.2f,
int nlevels = 8,
int edgeThreshold = 31,
int firstLevel = 0,
int WTA_K = 2,
ORB::ScoreType scoreType = ORB::HARRIS_SCORE,
int patchSize = 31,
int fastThreshold = 20
)
static

のクラスはスレッドセーフではありません。ORBコンストラクタ

引数
nfeatures 保持する特徴の最大数です。
scaleFactor ピラミッドのデシメーション比(1以上) scaleFactor==2は、次の各レベルのピクセル数が前のレベルの4倍になる古典的なピラミッドを意味しますが、このような大きなスケールファクターは、特徴マッチングのスコアを劇的に低下させます。一方、スケールファクターが1に近すぎると、特定のスケール範囲をカバーするために、より多くのピラミッドレベルが必要となり、速度が低下します。
nlevels ピラミッドレベルの数。一番小さいレベルのリニアサイズは、input_image_linear_size/pow(scaleFactor, nlevels - firstLevel)に相当します。
edgeThreshold これは、特徴が検出されなかった境界のサイズです。patchSizeパラメータとほぼ一致している必要があります。
firstLevel ソース画像を置くピラミッドのレベル。それ以前のレイヤーは、アップスケールされたソース画像で埋められます。
WTA_K 配向したBRIEF記述子の各要素を生成する点の数。デフォルト値である 2 は,ランダムな点のペアを取り,その明るさを比較するという BRIEF を意味し,0/1 の応答が得られます.他の可能な値は3と4です。例えば,3は,3つのランダムな点(もちろん,これらの点の座標はランダムですが,あらかじめ定義されたシードから生成されるので,BRIEFディスクリプタの各要素は,ピクセルの矩形から決定論的に計算されます)を取り,最大の明るさの点を見つけ,勝者のインデックス(0,1,2)を出力することを意味します。このような出力は2ビットを占有するので,特別な変種のHammingdistanceはNORM_HAMMING2(1ビンあたり2ビット)と表記されます。WTA_K=4の場合,各ビンを計算するために,4つのランダムな点を取ります(これも2ビットを占め,0,1,2,3のいずれかの値を取り得ます).
scoreType デフォルトの HARRIS_SCORE は,Harris アルゴリズムを用いて特徴をランク付けすることを意味します(このスコアは KeyPoint::score に書き込まれ,最良の nfeatures 特徴を保持するために用いられます).FAST_SCORE は,パラメータの代替値で,キーポイントの安定性は若干劣りますが,計算速度は若干速くなります.
patchSize Oriented BRIEF descriptorで利用されるパッチのサイズ.もちろん,小さなピラミッド層では,特徴によってカバーされる知覚画像領域はより大きくなります。
fastThreshold 高速閾値

getDefaultName()

virtual CV_WRAP String cv::ORB::getDefaultName ( ) const
virtual

algorithm string identifier を返す。この文字列は,オブジェクトをファイルや文字列に保存する際に,最上位のxml/ymlノードタグとして使用されます.

cv::Feature2Dを再実装します。


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