더북(TheBook)

11.4.2 해리스 코너 검출 구현

해리스 코너 응답 함수를 구현하기 위해서는 행렬의 행렬식과 대각합을 구해야 한다. 만약 행렬이 2×2 크기라면 복잡한 계산식 없이 행렬식과 대각합을 구할 수 있다. 행렬 A가 다음과 같은 원소를 갖는 2×2 행렬이라고 가정하자.

이 경우 행렬 A의 행렬식과 대각합은 다음과 같이 구해진다.

Det(A) = ad-bc
Tr(A)=a+d

그러면 실제로 해리스 코너 검출을 수행하는 함수를 작성해보자. 함수의 이름은 IppHarrisCorner를 사용하기로 하고, IppFeature.h 파일에 다음과 같은 함수 선언을 추가하자.

void IppHarrisCorner(IppByteImage& img, std::vector<IppPoint>& corners, double th);

IppHarrisCorner 함수 인자 목록에서 img는 코너 포인트를 찾을 입력 영상이고, 검출된 코너 포인트 정보는 corners에 저장된다. 마지막 인자 th는 해리스 코너 응답 함수에서 코너 여부를 결정할 때 사용할 임계값이다. IppHarrisCorner 함수의 전체 내용은 소스 11-11에 나타내었다.

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