12장. Contour Detection 과 객체 분석
용어 짚고 가기
윤곽선(contour)흰 덩어리의 테두리를 따라 이은 점들의 목록입니다. contour 는 "바깥 둘레, 등고선"이라는 뜻입니다. 지도의 등고선처럼 같은 높이(같은 흰색)의 가장자리를 따라 긋는 선이라는 데서 온 이름입니다.윤곽선 검출(contour detection)이진 그림에서 윤곽선을 모두 찾아내는 일입니다. detection 은 "찾아냄"이라는 뜻입니다.이진 그림(binary image)8장에서 본 것처럼 칸마다 0(검정)과 255(흰색) 두 값만 있는 그림입니다. 윤곽선 찾기의 입력입니다.경계(edge)10장, 11장에서 본, 밝기가 크게 바뀌는 칸입니다. 경계는 칸의 모음이고 윤곽선은 물체마다 이어진 점 목록이라는 점이 다릅니다.cv2.findContours이진 그림에서 윤곽선을 찾는 OpenCV 함수입니다. find(찾다)와 contours(윤곽선들)를 붙인 이름입니다.계층 구조(hierarchy)윤곽선끼리 누가 누구 안에 있는지 적은 표입니다. hierarchy 는 "위아래 차례가 있는 짜임"이라는 뜻입니다.부모와 자식(parent, child)바깥 윤곽선이 부모, 그 바로 안쪽의 윤곽선이 자식입니다. 도넛의 바깥 테두리가 부모이고 구멍의 테두리가 자식입니다.찾는 방식(retrieval mode)윤곽선을 바깥 것만 찾을지, 모두 찾을지, 부모 자식까지 적을지 정하는 인자입니다. retrieval 은 "되찾아 옴, 꺼내 옴"이라는 뜻이고, 상수 이름의RETR가 이 말의 줄임입니다.RETR_EXTERNAL가장 바깥의 윤곽선만 찾는 방식입니다. external 은 "바깥의"라는 뜻입니다.RETR_LIST모든 윤곽선을 부모 자식 없이 목록(list)으로 찾는 방식입니다.RETR_TREE모든 윤곽선을 찾고 부모 자식 관계를 나무(tree) 모양으로 모두 적는 방식입니다.근사 방식(approximation method)윤곽선의 점을 모두 담을지, 곧은 줄의 가운데 점을 뺄지 정하는 인자입니다. approximation 은 "어림, 가깝게 만들기"라는 뜻입니다.CHAIN_APPROX_NONE, CHAIN_APPROX_SIMPLE점을 모두 담는 방식(NONE, 줄이지 않음)과 곧은 줄의 양 끝만 남기는 방식(SIMPLE, 간단히)입니다. chain 은 테두리 칸을 사슬처럼 이어 따라간다는 데서 붙은 말입니다.cv2.drawContours찾은 윤곽선을 그림 위에 그리는 함수입니다. draw 는 "그리다"라는 뜻입니다.면적(area)윤곽선이 둘러싼 넓이입니다.cv2.contourArea로 재고, 단위는 칸 하나의 넓이입니다.둘레(perimeter)윤곽선의 길이입니다.cv2.arcLength로 잽니다. arc 는 "호, 굽은 선"이라는 뜻입니다.모멘트(moments)흰 칸의 개수와 좌표의 합처럼 덩어리를 요약한 숫자 묶음입니다. 물리에서 "회전시키는 힘의 크기"를 뜻하던 말을 빌려 왔습니다.무게중심(centroid)흰 칸들의 x 좌표 평균과 y 좌표 평균인 점입니다. 판을 그 점 하나로 받치면 기울지 않고 균형이 맞습니다. centroid 는 center(가운데)에서 온 말입니다.바운딩 박스(bounding box)물체를 빈틈없이 감싸는 네모 상자입니다. bounding 은 "경계를 정하는, 둘러싸는"이라는 뜻입니다. 곧은 상자는cv2.boundingRect(Rect 는 rectangle, 직사각형)로 구합니다.회전 상자(rotated rectangle)물체를 감싸는 네모 가운데 넓이가 가장 작은 것입니다. 물체를 따라 기울어집니다.cv2.minAreaRect(minimum area rectangle, 넓이가 가장 작은 직사각형)로 구합니다.최소 외접원(minimum enclosing circle)윤곽선의 모든 점을 품는 원 가운데 가장 작은 원입니다. enclosing 은 "둘러싸는"이라는 뜻입니다.연결 요소(connected component)11장에서 본 것처럼, 서로 맞닿은 흰 칸끼리 묶은 덩어리 하나입니다.cv2.connectedComponentsWithStats9장의cv2.connectedComponents에 통계(stats, statistics)를 더한 함수입니다. 덩어리마다 번호와 함께 면적, 상자, 무게중심을 한 번에 돌려줍니다.잡티(speck)이진화 뒤에 남은, 물체가 아닌 작은 흰 점입니다. 먼지나 노이즈에서 생깁니다.