Class for extracting keypoints and computing descriptors using the Scale Invariant Feature Transform (SIFT) algorithm by D. Lowe
[Lowe04]
.
[詳解]
#include <features2d.hpp>
cv::Feature2Dを継承しています。
|
virtual CV_WRAP String |
getDefaultName
() const CV_OVERRIDE |
|
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 |
|
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<
SIFT
> |
create
(int nfeatures=0, int nOctaveLayers=3, double contrastThreshold=0.04, double edgeThreshold=10, double sigma=1.6) |
|
static CV_WRAP
Ptr<
SIFT
> |
create
(int nfeatures, int nOctaveLayers, double contrastThreshold, double edgeThreshold, double sigma, int descriptorType) |
|
作成SIFT指定されたdescriptorTypeを持つ[【詳解】(英語]
|
|
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()) |
|
文字列からアルゴリズムを読み込む[【詳解】(英語]
|
|
キーポイントを抽出し,スケールインバリアント特徴変換(SIFT) アルゴリズムを用いた,キーポイントの抽出とディスクリプタの計算のためのクラス.[Lowe04]..
◆
create()
[1/2]
static CV_WRAP
Ptr<
SIFT
> cv::SIFT::create
|
( |
int |
nfeatures,
|
|
|
int |
nOctaveLayers,
|
|
|
double |
contrastThreshold,
|
|
|
double |
edgeThreshold,
|
|
|
double |
sigma,
|
|
|
int |
descriptorType |
|
) |
|
|
|
static
|
作成SIFT指定されたdescriptorTypeを持つ
- 引数
-
nfeatures |
保持する最適な特徴の数.特徴は,そのスコア(アルゴリズムでは,局所的なコントラストとして測定されます)によってランク付けされます.SIFTアルゴリズムでは,局所的なコントラストとして測定されます). |
nOctaveLayers |
各オクターブにおける層の数.3は,D. Loweの論文で使われている値です.オクターブの数は、画像の解像度から自動的に計算されます。 |
contrastThreshold |
半均一な(低コントラストの)領域にある弱い特徴をフィルタリングするために使用されるコントラストの閾値です。しきい値が大きいほど、検出器で生成される特徴が少なくなります。 |
- 覚え書き
- コントラスト閾値は、フィルタリングが適用される際に、nOctaveLayersで割られます。nOctaveLayersがデフォルトに設定されていて、D. Lowe論文で使用されている値、0.03を使用したい場合、この引数を0.09に設定します。
- 引数
-
edgeThreshold |
エッジ的な特徴をフィルタリングするために使用されるしきい値です。すなわち、edgeThresholdが大きければ大きいほど、フィルタリングされる特徴が少なくなる(より多くの特徴が保持される)ということです。 |
sigma |
オクターブ#0の入力画像に適用されたガウスのシグマです。柔らかいレンズを使った弱いカメラで撮影された画像の場合は、数を減らした方がいいでしょう。 |
descriptorType |
ディスクリプタの種類.CV_32F と CV_8U のみがサポートされます. |
◆
create()
[2/2]
static CV_WRAP
Ptr<
SIFT
> cv::SIFT::create
|
( |
int |
nfeatures
=
0 ,
|
|
|
int |
nOctaveLayers
=
3 ,
|
|
|
double |
contrastThreshold
=
0.04 ,
|
|
|
double |
edgeThreshold
=
10 ,
|
|
|
double |
sigma
=
1.6 |
|
) |
|
|
|
static
|
- 引数
-
nfeatures |
保持する最適な特徴の数.特徴は,そのスコア(アルゴリズムでは,局所的なコントラストとして測定されます)によってランク付けされます.SIFTアルゴリズムでは,局所的なコントラストとして測定されます). |
nOctaveLayers |
各オクターブにおける層の数.3は,D. Loweの論文で使われている値です.オクターブの数は、画像の解像度から自動的に計算されます。 |
contrastThreshold |
半均一な(低コントラストの)領域にある弱い特徴をフィルタリングするために使用されるコントラストの閾値です。しきい値が大きいほど、検出器で生成される特徴が少なくなります。 |
- 覚え書き
- コントラスト閾値は、フィルタリングが適用される際に、nOctaveLayersで割られます。nOctaveLayersがデフォルトに設定されていて、D. Lowe論文で使用されている値、0.03を使用したい場合、この引数を0.09に設定します。
- 引数
-
edgeThreshold |
エッジ的な特徴をフィルタリングするために使用されるしきい値です。すなわち、edgeThresholdが大きければ大きいほど、フィルタリングされる特徴が少なくなる(より多くの特徴が保持される)ということです。 |
sigma |
オクターブ#0の入力画像に適用されたガウスのシグマです。柔らかいレンズを使った弱いカメラで撮影された画像の場合は、数を減らした方がいいでしょう。 |
◆
getDefaultName()
virtual CV_WRAP String cv::SIFT::getDefaultName
|
( |
|
) |
const |
|
virtual
|
algorithm string identifier を返す。この文字列は,オブジェクトをファイルや文字列に保存する際に,最上位のxml/ymlノードタグとして使用されます.
cv::Feature2Dを再実装します。
このクラス詳解は次のファイルから抽出されました: