2017-02-22 3 views
1

Pythonでは、OpenCVのFlannBasedMatcherコンストラクタは、パラメタの辞書を取ります。その最初はalgorithmです。 The python tutorialは、異なる名前の変数を渡すことによってalgorithmの異なる値を指定できることを示唆しています。 FLANN_INDEX_KDTREEFLANN_INDEX_LSHですが、変数はもちろんコンストラクタに何も伝えることはできません。これらの名前は代わりに文字列として渡すべきだと考えるかもしれませんが、次の例ではFLANN_INDEX_KDTREEは0として初期化されていますので、パラメータがどのように機能するかは完全には不明です。OpenCVのFlannBasedMatcherコンストラクタのアルゴリズムパラメータはどのような値ですか?

OpenCVには実際にはPythonのドキュメントはありません。 In C++の場合、コンストラクタは汎用ディクショナリをとるのではなく、IndexClassをインスタンス化するオブジェクトです。ここで、各サブクラスIndexClassは異なるアルゴリズムに対応しています。

答えて

1

algorithmは整数をとりますが、チュートリアルでは、FLANN_INDEX_KDTREEFLANN_INDEX_LSHの値が異なる初期設定がありません。

C++ source codeは、LSHアルゴリズムが値6に対応するような初期化リストを持っています。 FLANN_INDEX_KDTREEも1と初期化します。これは、0を持つPythonチュートリアルが間違っていること、またはソースコードが違う場所(紛失している)で矛盾する定義を使用していることを意味します。

FLANN_INDEX_LINEAR = 0 
FLANN_INDEX_KDTREE = 1 
FLANN_INDEX_KMEANS = 2 
FLANN_INDEX_COMPOSITE = 3 
FLANN_INDEX_KDTREE_SINGLE = 4 
FLANN_INDEX_HIERARCHICAL = 5 
FLANN_INDEX_LSH = 6 
FLANN_INDEX_SAVED = 254 
FLANN_INDEX_AUTOTUNED = 255 

EDIT:

これらは、ソースコード内のすべての値であり、私は今、受理された両方の問題を修正a pull requestを提出しました。

関連する問題