
cv2.polylines는 OpenCV에서 이미지 위에 하나 이상의 다각선(폴리라인)을 그리는 함수입니다. 선들을 연결해 윤곽선을 표시할 때 사용하며, 닫힌 다각형(폴리곤)으로 그릴지 여부를 지정할 수 있습니다. 기본 동작과 주요 매개변수는 다음과 같습니다. 기본 시그니처 (Python): cv2.polylines(img, pts, isClosed, color, thickness=1, lineType=cv2.LINE_8, shift=0) 매개변수 설명: - img: 선을 그릴 대상 이미지 (NumPy 배열). 함수는 이미지 배열을 직접 수정하며, 수정된 이미지를 반환합니다. - pts: 하나 이상의 점 배열을 담은 리스트 또는 적절한 형태의 NumPy 배열. 각 폴리라인은 점들의 배열로 제공됩니다. 일반적인 형태는 np.array([[x1,y1],[x2,y2],...], dtype=np.int32)이고, OpenCV 예제에서는 pts = pts.reshape((-1,1,2))처럼 3차원 형태로 만듭니다. 여러 폴리라인을 그릴 때는 [pts1, pts2, ...] 형태로 전달합니다. - isClosed: True이면 마지막 점과 첫 번째 점을 자동으로 연결해 닫힌 도형(폴리곤)을 만듭니다. False이면 열린 폴리라인(폴리라인 세그먼트들)만 그립니다. - color: BGR 튜플(예: (0,255,0)) 또는 그레이스케일 값 — 선 색상입니다. - thickness: 선 굵기(픽셀 단위). 기본값 1. - lineType: 선의 보간 방식 (cv2.LINE_8, cv2.LINE_AA(anti-aliased) 등). - shift: 좌표의 고정 소수점 비트 수(소수점 좌표를 표현할 때 사용). 주의/팁: - 좌표 순서는 (x, y) = (열, 행)입니다. - 폴리라인을 채우려면 cv2.fillPoly 또는 cv2.fillConvexPoly를 사용하세요. (cv2.polylines는 윤곽선만 그립니다.) - pts는 정수형(int32) 또는 부동소수형(float32) 배열이 일반적입니다. - 함수는 이미지 배열을 직접 변경하므로 반환값을 다시 받지 않아도 됩니다(반환되는 값은 수정된 이미지). 간단한 예: import cv2, numpy as np img = np.zeros((400,400,3), dtype=np.uint8) pts = np.array([[50,50],[300,50],[200,300]], np.int32) pts = pts.reshape((-1,1,2)) cv2.polylines(img, [pts], isClosed=True, color=(0,255,0), thickness=3, lineType=cv2.LINE_AA) 위 코드는 초록색 굵은 선으로 닫힌 삼각형 윤곽을 이미지에 그립니다.