더북(TheBook)

실제 매칭을 수행하는 BFMatcher 또는 FlannBasedMatcher 클래스 객체를 생성하려면 각 클래스에 정의되어 있는 create() 정적 멤버 함수를 사용해야 합니다. 먼저 BFMatcher::create() 함수 사용법은 다음과 같습니다.

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

normType

기술자 거리 측정 방식. NORM_L1, NORM_L2, NORM_HAMMING, NORM_HAMMING2 중 하나를 지정합니다.

crossCheck

이 값이 true이면 i번째 질의 기술자와 가장 유사한 훈련 기술자가 j이고, j번째 훈련 기술자와 가장 유사한 질의 기술자가 i인 경우에만 매칭 결과로 반환합니다.

반환값

BFMatcher 객체를 참조하는 Ptr 스마트 포인터 객체

 

BFMatcher::create() 함수는 두 개의 인자를 받을 수 있지만, 모두 기본값이 지정되어 있기 때문에 생략할 수 있습니다. BFMatcher::create() 함수의 첫 번째 인자 normType에는 두 기술자 사이의 거리를 측정하는 방식을 지정합니다. SIFT, SURF, KAZE 알고리즘처럼 실수 값으로 구성된 기술자를 사용하는 경우에는 보통 NORM_L2 또는 NORM_L1 상수를 지정합니다. ORB, BRIEF, AKAZE 알고리즘처럼 이진 기술자를 사용하는 경우에는 normTypeNORM_HAMMING 플래그를 지정해야 하며, 이 경우에는 두 이진 기술자 사이의 해밍 거리를 사용합니다. 만약 ORB 기술자에서 WTA_K를 3 또는 4로 설정한 경우에는 normTypeNORM_HAMMING2로 지정해야 합니다.

FlannBasedMatcher 객체를 생성하는 FlannBasedMatcher::create() 함수는 조금 단순한 원형을 가지고 있습니다.

static Ptr<FlannBasedMatcher> FlannBasedMatcher::create();

반환값

FlannBasedMatcher 객체를 참조하는 Ptr 스마트 포인터 객체

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.