10/11/2011

Rect Corner Detection / C++, OpenCV1.0 / 사각형 모서리 찾기

Created Date : 2008.11.
Language : C++
Tool : Visual Studio C++6.0
Library & Utilized :OpenCV 1.0
Reference : -
Etc. : -
 
 
 



This program is for detecting 4 corners of rects(3 rect).
The detection process is shown below.

1. Candidate corner detection using cvGoodFeaturesToTrack function.
2. Blob Coloring - Find 3 biggest blobs
3. Angle inspection tracking outline of blob. - using cvConvexHull2 function.
    Corner's angle would be big than other angles. so we select 4 corners.

<Source Code>
---------------------------------------------------------------------


다음과 같은 과정으로 사각형 캘리브레이션 타켓의 모서리 4군데를 찾는다.

캘리브레이션 타켓의 코너 lefttop, righttop, rightbottom, leftbottom을 검출한다.

cvGoodFeaturesToTrack로 코너 검출
CBlobResult로 Blob Coloring하여 가장 큰 덩어리 3개를 찾음 (사각형 3개)
각 Blob에 대해 cvConvexHull2로 외곽 점 검출
외곽점을 따라가면서 점 간에 각을 저장
점 간의 각도 중 가장 각이 큰 4점을 선택하여 모서리로 판단함
판단된 4점에서 코너점과 가장 가까운 4점을 선택함
이렇게 한 사각형에 대한 모서리 점이 선택됨

결과는 세개의 사각형에 대한
Left Top, Right Top, Right Bottom, Left Bottom 의 이미지 좌표를 알려줌
따라서 카메라 캘리브레이션을 위한 월드 좌표 - 이미지 좌표 값을 자동으로 추출 가능함
 <Source Code>