레이블링
동일한 객체에 속한 모든 픽셀에 고유한 번호를 매기는 작업
레이블링 함수
connectedComponents()
connectedComponentsWithStats()
- stats 행렬
- 행은 순서대로 배경, 1번 객체, 2번 객체, 3번 객체의 정보를 나타낸다.
- 열은 객체 정보를 나타내며, 순서대로 좌측 상단의 x 좌표, y좌표, width, height, 면적을 나타냄
- centroids 행렬
- stats 행렬과 동일하게 행 순서대로 배경, 1번 객체, 2번 객체, 3번 객체의 정보를 나타냄
- 열은 순서대로 무게 중심의 x 좌표, 무게 중심의 y좌표를 나타내며, 아래와 같이 구할 수 있다.
- 무게중심의x좌표=픽셀의개수픽셀들의x좌표의합
- 무게중심의y좌표=픽셀의개수픽셀들의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