이진 영상 처리 6) 레이블링, 7) 외곽선 검출 (1)

매일 공부(ML)·2021년 12월 14일
0

OPEN CV

목록 보기
40/45

레이블링

동일한 객체에 속한 모든 픽셀에 고유한 번호를 매기는 작업


레이블링 함수

connectedComponents()

connectedComponentsWithStats()

  • retval: 객체의 수 + 1(배경 포함)

  • stats 행렬
    • 행은 순서대로 배경, 1번 객체, 2번 객체, 3번 객체의 정보를 나타낸다.
    • 열은 객체 정보를 나타내며, 순서대로 좌측 상단의 x 좌표, y좌표, width, height, 면적을 나타냄
  • centroids 행렬
    • stats 행렬과 동일하게 행 순서대로 배경, 1번 객체, 2번 객체, 3번 객체의 정보를 나타냄
    • 열은 순서대로 무게 중심의 x 좌표, 무게 중심의 y좌표를 나타내며, 아래와 같이 구할 수 있다.
      • 무게중심의x좌표=픽셀들의x좌표의합픽셀의개수{무게 중심의 x좌표 } = \frac{픽셀들의 x 좌표의 합}{픽셀의 개수}
      • 무게중심의y좌표=픽셀들의y좌표의합픽셀의개수{무게 중심의 y좌표 } = \frac{픽셀들의 y 좌표의 합}{픽셀의 개수}

키보드 영상에서 문자 영역 분할 예제


외곽선 검출

  • shape = (k, 1, 2)
    • k: 외곽선 좌표 개수
    • 1: 중간 값은 1로 고정시킴
    • 2: x, y 좌표

외곽선 검출 방식 지정 (mode)

  • cv2.RETR_EXTERNAL

    • 검정색 배경에서 만나게 되는 첫번째 흰색 객체 검출
    • 위 예시에서는 0과 4가 해당
    • 바깥쪽 외곽선만 검출한다.
  • cv2.RETR_LIST

    • 모든 외곽선을 다 찾는다.
    • 순서없이 무작위로 찾음
  • cv2.RETR_CCOMP

    • 2단계로 만드는 계층구조
    • 위 예시에서 6을 보면 형태를 알 수 있음 (하단 TREE와 다르게 6을 상위 단계로 본다)
  • cv2.RETR_TREE

    • 계층구조를 형성함
profile
성장을 도울 아카이빙 블로그

0개의 댓글