# findContours

- contour : 동일한 색 또는 동일한 픽셀값(강도)를 가지고 있는 경계선 정보 (윤곽선, 외형파악에 사용됨)

import cv2

images, contours, hierachy = cv2.findContours(img, mode, method)

- img : 회색조 이미지 또는 이진화된 이미지
- mode : 컨투어를 찾는 방법
    - RETR_EXTERNAL : 컨투어 라인 중 가장 바깥쪽의 라인만 찾음
    - RETR_LIST : 모든 컨투어라인을 찾는지만, 상하구조(hierachy)관계는 구성하지 않음
    - RETR_CCOMP : 모든 컨투어라인을 찾고, 상하구조는 2단계로 구성함
    - RETR_TREE : 모든 컨투어라인을 찾고, 모든 상하구조를 구성함
- method : 컨투어를 찾을 떄 사용하는 근사화 방법
    - CHAIN_APPROX_NONE : 모든 컨투어 포인트를 반환
    - CHAIN_APPROX_SIMPLE : 컨투어 라인을 그릴 수 있는 포인트만 반환
    - CHAIN_APPROX_TC89_L1 : Teh_chain연결 근사 알고리즌 L1버전을 적용하여 컨투어 포인트를 줄임
    - CHAIN_APPROX_TC89_KCOS : Teh_chain연결 근사 알고리즘 KCOS버전을 적용하여 컨투어 포인트를 줄임


- contours : 컨투어 정보 : 컨투어를 구성하는 점들로 이루어진 배열 리스트(numpy,ndarray)
    - 리스트원소의 갯수(len(contours)) == 컨투어의 갯수
- hierachy : 1, 0 ,-1 값으로 이루어진 (컨투어 수 x 4)크기의 행렬
    - 첫번째 원소 : 같은 수준의 다음 컨투어의 인덱스(같은 수준의 다음 컨투어가 없으면 -1)
    - 두번째 원소 : 같은 수준의 이전 컨투어의 인덱스(같은 수준의 이전 컨투어가 없으면 -1)
    - 세번째 원소 : 하위 자식 컨투어의 인덱스(가장 하위 컨투어이면 -1)
    - 네번째 원소 : 부모 컨투어의 인덱스(가장 상위 컨투어이면 -1)



# drawContours

- 컨투어 정보로 비트맵이미지를 만듬

cv2.drawContours(img, contours, contourIdx, color)

- img : 원본 이미지
- contours : 컨투어 라인 정보
    - findContours의 두번째 리턴값으로, 리스트형 자료임
- contourIdx : 컨투어 라인 번호
    - contourIdx < 0 (-1)로 지정하면 모든 contour을그림
- color : 컨투어 라인 색상

'Python > OpenCV' 카테고리의 다른 글

thresholding  (0) 2022.07.07

+ Recent posts