[OpenCV 3.2] Harris corner detector - 모서리 검출 알고리즘

영상을 인식하는데 있어서 물체의 같은 색상의 픽셀은 구분하기가 힘들다.

픽셀의 값이 크게 바뀌는 물체의 윤곽선이나 모서리를 특징점이라고 한다.

모서리 검출 알고리즘으로 유명한 Harris 모서리 검출을 정리한다.


1. Harris 모서리 검출 함수

void cornerHarris(InputArray src, OutputArray dst, int blockSize, int ksize, double k, int borderType=BORDER_DEFAULT )

1) src : 모서리 검출 할 gray 이미지

2) dst : 모서리 검출 결과 이미지

3) blcokSize : 이웃 사이즈

4) ksize : Sobel()동작을 위한 Aperture 매개변수

5) k : Harris detector free parameter (아래 공식 참고)

6) borderType : 픽셀 보간 타입

\texttt{dst} (x,y) =  \mathrm{det} M^{(x,y)} - k  \cdot \left ( \mathrm{tr} M^{(x,y)} \right )^2

Harris 모서리 검출 함수는 이론을 정확히 알지 못하면 매개변수들의 의미를 잘모르겠다. 시간이 날 때 다시 찾아보겠다.


2. 소스 코드

주석 처리 부분은 모서리 부분에 초록색 동그라미를 그리고 싶었으나 실패한 소스 코드이다.

결국 맨붕해서 소스 코드 정리도 하지 않은 채 올리게 되었다. 이것도 시간이 날 때 다시 정리하겠다.


3. 실행 결과



Harris Corner Detector가 잘 되면 이걸로 도형을 인식하고 싶었으나, 지식 습득 부족으로 다음 시간에 findContours()를 이용하여 도형을 찾는 방법을 정리하겠다.




컴퓨터 비전과 영상 처리에 대해 독학을 하면서 정리한 걸 적고 있습니다.

전공과 무관하며 전문적인 지식이 아니므로 개인적인 의견과 부족하고 틀린 점이 많습니다.

추가 지식 및 잘못된 점을 지적해주시면 공부하는데 많은 도움이 되겠습니다. 감사합니다^^

- 푸어맨


[Reference]

(OpenCV documentation) http://docs.opencv.org/3.0-beta/doc/tutorials/features2d/trackingmotion/harris_detector/harris_detector.html

(Harris corner detector) http://blog.naver.com/sh1nk1y/80051220061

(영상 특징점 추출법) http://darkpgmr.tistory.com/131

(Shape Detection - English) http://opencv-srf.blogspot.kr/2011/09/object-detection-tracking-using-contours.html

(Shape Detection - 번역) http://m.blog.naver.com/ledzefflin/220503059357

+ Recent posts