본문 바로가기
python/Computer Vision

영상처리 기초 개념 5 - 경계선(Contour) 검출/허프(Hough)변환/RANSAC

by 괴로운데이빗 2025. 4. 6.
더보기

[목차]

1. 검출한 에지가 유의미한 윤곽선인지 아닌지 판단

2. 그 윤곽선이 직선인지 곡선인지 판단

3. 이상치 제거

 

1. 경계선 찾기(Contour Detection)

 - 엣지 맵(Edge Map)에서 인접한 엣지 화소들을 연결(8-연결)하여 연속된 점들 경계선(Contour)으로 식별, 이를 리스트 형태로 저장(에지 검출이 선행되어야 함)

 - 추출된 경계선 리스트 중에서 길이가 일정 이상인 것만 필터링

-> 유의미한 직선 또는 윤곽선만 선택적으로 사용 가능

 

2. 허프 변환(Hough Transform)

 - 엣지 맵 상의 점들이 어떤 직선을 따르고 있는지 확인하는 데 사용

 - 각 점이 지나는 가능한 모든 직선에 대해 파라미터 공간(Parameter space)에서 투표 진행

 - 가장 많은 점이 투표한 파라미터 값이 실제 존재하는 직선의 수식이 됨

(직선뿐 아니라 원, 곡선 등 다양한 형태에도 확장 가능)

 

3. RANSAC(RANdom SAmple Consensus)

현실 이미지에는 이상치가 섞여 있음

 - 이상치들을 제거하고 신뢰도 높은 직선을 찾기 위한 기법

 

작동 방식:

 - 랜덤하게 두 점을 선택해 직선을 만듬

 - 그 직선 위에 있는(혹은 근처에 있는) 다른 점의 수를 count

 - count가 충분히 많고, 직선과 점들의 오차가 작다면 사용

 - 이 과정을 여러 번 반복해 가장 적합한 직선을 찾습니다.