CS/Computer Vision

[OpenCV] 12장 레이블링과 외곽선 검출

0m1n 2022. 12. 30. 12:59
728x90
반응형

레이블링

  • 각각의 객체를 구분하고 분석할때 사용
  • 검은색 배경, 흰색 객체 간주
  • 레이블 맵을 생성하여 진행
    • 레이블 맵 : 이진 영상에 레이블링을 수행 → 각각 객체 영역에 고유 번호 매겨진 2차원 정수 행렬
  • 레이블링 후 각 객체 영역 하나하나 확인하는거 힘듦 → connectedComponentsWithStats() 사용
    • (x, y, w, h, area)

외곽선(contour) 검출

  • 외곽선 : 객체 영역 픽셀 중 배경 영역과 인접한 일련의 픽셀
    • 보통 검은색 배경안 흰색 객체에서 가장 최외곽 픽셀 외곽선으로 정의
  • drawContours() : 외곽선 그리는 함수
  • boundingRect() : 주어진 외곽선 점들을 감싸는 가장 작은 크기의 사각형 구함
  • minAreaRect() : 외곽선(점)을 감싸는 최소 크기의 회전된 사각형 구함
  • minEnclosingCircle() : 외곽선(점)을 감싸는 최소 크기의 원 구함
  • arcLength() : 곡선 집합에서 곡선 길이 구하기
  • contourArea() : 외곽선이 감싸는 영역 면적 구하기
  • approxPolyDP() : 외곽선(곡선) 단순화
    • 입력 외곽선 중 가장 멀리 떨어져 있는 두 점 찾음 → 직선으로 연결
    • 위 직선에서 가장 먼 외곽선 점 찾아 근사화 점으로 추가
    • 위 작업 반복하다 점과 근사화 직선의 수직거리 < epsilon 이면 근사화 중단
    • 원에 가까울수록 R이 1에 가까운 값 가짐
728x90
반응형