2017-02-22 10 views
1

python에서 OpenCV의 FlannBasedMatcher 생성자는 parametres 사전을 취합니다. 첫 번째는 algorithm입니다. The python tutorial은 다른 이름의 변수를 전달하여 algorithm의 다른 값을 지정할 수 있다고 제안합니다. FLANN_INDEX_KDTREEFLANN_INDEX_LSH이지만 변수 은 물론 생성자에게 아무 것도 전달할 수 없습니다. 이 이름들을 대신 문자열로 전달해야한다고 생각할 수도 있지만, 다음 예제에서는 FLANN_INDEX_KDTREE이 0으로 초기화되므로 매개 변수의 작동 방식이 완전히 명확하지 않습니다.OpenCV의 FlannBasedMatcher 생성자에서 알고리즘 매개 변수의 값은 무엇입니까?

OpenCV에는 실제로 파이썬 문서가 없습니다. In C++ 인 경우 생성자는 generic 사전을 사용하지 않지만 IndexClass을 인스턴스화하는 객체는 IndexClass의 각 하위 클래스가 다른 알고리즘에 해당합니다.

답변

1

algorithm은 정수이며, 튜토리얼에서 누락 된 것은 FLANN_INDEX_KDTREEFLANN_INDEX_LSH의 값이 다른 초기화입니다. (대문자는 고정 된 정수 값을 설명하는 레이블로 의미해야 함을 암시해야합니다.) C++ source code은 LSH 알고리즘이 값 6에 해당하는 것처럼 보이는 초기화 목록을 가지고 있습니다. 또한 FLANN_INDEX_KDTREE을 1로 초기화합니다. 이는 0을 갖는 파이썬 자습서가 잘못되었거나 소스 코드가 여러 곳에서 충돌하는 정의를 사용한다는 것을 의미합니다. 이는 놓친 것입니다. 이는 불행합니다.

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 

편집 :

이 소스 코드의 모든 값입니다 지금은 접수 된 두 문제를 해결 a pull request을 제기했다.