13장. Shape 분석과 ROI 처리
용어 짚고 가기
윤곽선(contour)12장에서 본, 흰 덩어리의 테두리를 따라 이은 점들의 목록입니다. 면적(cv2.contourArea), 둘레(cv2.arcLength), 바운딩 박스(cv2.boundingRect), 회전 상자(cv2.minAreaRect)도 12장에서 풀었으므로 이 장에서는 다시 풀지 않습니다.모양 특징(shape feature)윤곽선에서 계산한, 모양을 나타내는 숫자입니다. 원형도, 종횡비 같은 것입니다. feature 는 "생김새의 특징"이라는 뜻입니다.근사 다각형(polygon approximation)울퉁불퉁한 윤곽선을 꼭짓점 몇 개짜리 다각형으로 단순하게 바꾼 것입니다. approximation 은 "가깝게 어림함"이라는 뜻입니다.cv2.approxPolyDP윤곽선을 근사 다각형으로 바꾸는 OpenCV 함수입니다. approximate polygon(다각형으로 어림)과 DP(Douglas-Peucker, 이 방법을 만든 더글러스와 퍼커)를 붙인 이름입니다.epsilon(엡실론)approxPolyDP 에 주는 "봐줄 만큼의 비뚤어짐"입니다. 그리스 문자 ε 의 이름으로, 수학에서 작은 양을 나타낼 때 흔히 씁니다.꼭짓점(vertex)다각형의 모서리 점입니다. 세모는 3개, 네모는 4개입니다. vertex 는 라틴어로 "꼭대기"라는 뜻입니다.원형도(circularity)모양이 원에 얼마나 가까운지를 나타낸 숫자입니다. 4π×넓이 ÷ 둘레² 로 구하고, 원이면 1 입니다. circular 는 "둥근"이라는 뜻입니다.종횡비(aspect ratio)가로 길이를 세로 길이로 나눈 값입니다. 縱(세로)과 橫(가로)의 비라는 말이고, aspect 는 "보이는 모습"이라는 뜻입니다.채움 비율(extent)물체의 넓이를 물체를 감싼 네모 상자의 넓이로 나눈 값입니다. 상자를 얼마나 꽉 채웠는지 알려 줍니다. extent 는 "차지한 범위"라는 뜻입니다.볼록 껍질(convex hull)물체를 고무줄로 감쌌을 때 고무줄이 만드는 모양입니다. convex 는 "볼록한", hull 은 "껍질, 배의 몸통"이라는 뜻입니다.볼록 비율(solidity)물체의 넓이를 볼록 껍질의 넓이로 나눈 값입니다. 움푹 들어간 곳이 많을수록 작아집니다. solid 는 "속이 꽉 찬"이라는 뜻입니다.cv2.convexHull윤곽선의 볼록 껍질을 구하는 OpenCV 함수입니다.cv2.isContourConvex윤곽선이 볼록한지(움푹한 곳이 없는지) True, False 로 알려 주는 함수입니다. is contour convex(윤곽선이 볼록한가)를 그대로 붙인 이름입니다.규칙 기반 분류(rule-based classification)사람이 정한 if 규칙으로 이름을 붙이는 방법입니다. 데이터로 배우는 딥러닝과 견주어 쓰는 말입니다. rule 은 "규칙"이라는 뜻입니다.관심 영역(ROI, Region Of Interest)사진에서 따로 살펴보고 싶은 부분입니다. 4장에서 이름만 나왔고, 이 장에서 자세히 다룹니다. region 은 "구역", interest 는 "관심"이라는 뜻입니다.여백(margin)잘라 낼 상자의 둘레에 더 붙이는 몇 칸입니다. 물체가 상자 끝에 딱 붙어 잘리지 않게 합니다. margin 은 "가장자리, 여유"라는 뜻입니다.np.clip숫자를 정한 범위 안으로 밀어 넣는 NumPy 함수입니다. clip 은 "잘라 내다, 깎다"라는 뜻입니다.cv2.fillPoly꼭짓점 목록으로 다각형을 그려 속까지 채우는 함수입니다. fill polygon(다각형 채우기)을 줄인 이름입니다.cv2.bitwise_and마스크의 흰 칸만 원래 값을 남기는 함수입니다. 3장에서 색으로 과일을 고를 때 썼습니다. bitwise 는 "비트 단위로", and 는 "그리고"라는 뜻입니다.cv2.selectROI창에 그림을 띄우고 사람이 마우스로 네모를 그려 관심 영역을 고르게 하는 함수입니다. select ROI(관심 영역 고르기)라는 뜻입니다.붙여 넣기(paste back)잘라 내어 처리한 조각을 원본의 같은 자리에 다시 넣는 일입니다. 이 장에서는 슬라이싱에 값을 대입해서 합니다.