OpenCV 그리기 함수

yeoni·2023년 6월 28일
0

opencv

목록 보기
8/12

OpenCV 그리기 함수

  • OpenCV는 영상에선, 도형, 문자열을 출력하는 그리기 함수를 제공
  • 선그리기: 직선, 화살표, 마커등
  • 도형그리기: 사각형, 원, 타원, 다각형등
  • 문자열출력

그리기 함수 사용 시 주의할 점

  • 그리기 알고리즘을 이용하여 영상의 픽셀값 자체를 변경
    • 원본 영상이 필요하면 복사본을 만들어서 그리기& 출력
  • 그레이 스케일 영상에는 컬러로 그리기 안됨
    • cv2.cvtColor() 함수로 BGR 컬러영상으로 변환한 후 그리기 함수 호출

그리기 함수 종류

직선 그리기

cv2.line(img, pt1, pt2, color, thickness=None, lineType=None,
shift=None) -> img
  • img: 그림을 그릴 영상
  • pt1, pt2: 직선의 시작점과 끝점. (x, y) 튜플.
  • color: 선 색상 또는 밝기. (B, G, R) 튜플 또는 정수값.
  • thickness: 선두께. 기본값은 1.
  • lineType: 선타입. cv2.LINE_4, cv2.LINE_8, cv2.LINE_AA 중 선택. 기본값은cv2.LINE_8.
  • shift: 그리기 좌표값의 축소 비율. 기본값은 0.

사각형그리기

cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None,
shift=None) -> img
cv2.rectangle(img, rec, color, thickness=None, lineType=None,
shift=None) -> img
  • img:그림을 그릴 영상
  • pt1, pt2: 사각형의 두 꼭지점 좌표. (x, y) 튜플.
  • rec: 사각형 위치 정보. (x, y, w, h) 튜플.
  • color: 선 색상 또는 밝기. (B, G, R) 튜플 또는 정수값.
  • thickness: 선 두께. 음수(-1)를 지정하면 내부를 채움.기본값은 1.
  • lineType: 선타입. cv2.LINE_4, cv2.LINE_8, cv2.LINE_AA 중 선택. 기본값은 cv2.LINE_8.
  • shift: 그리기 좌표값의 축소 비율. 기본값은 0.

원그리기

cv2.circle(img, center, radius, color, thickness=None, lineType=None,
shift=None) -> img
  • img: 그림을 그릴 영상
  • center: 원의 중심 좌표. (x, y) 튜플.
  • radius: 원의 반지름
  • color:선 색상 또 는밝기. (B, G, R) 튜플 또는 정수값.
  • thickness: 선 두께. 음수(-1)를 지정하면 내부를 채움.기본값은 1.
  • lineType: 선타입. cv2.LINE_4, cv2.LINE_8, cv2.LINE_AA 중 선택. 기본값은 cv2.LINE_8.
  • shift: 그리기 좌표값의 축소 비율. 기본값은 0.

다각형 그리기

cv2.polylines(img, pts, isClosed, color, thickness=None, lineType=None,
shift=None) -> img
  • img:그림을그릴영상
  • pts:다각형 외곽점들의 좌표 배열. numpy.ndarray의 리스트
    (e.g.) [np.array([[10,10],[50,50],[10,50]],dtype=np.int32)]
  • isClosed: 폐곡선 여부. True 또는False 지정.
  • color: 선 색상 또 는밝기. (B, G, R) 튜플 또는 정수값.
  • thickness: 선 두께. 음수(-1)를 지정하면 내부를 채움.기본값은 1.
  • lineType: 선 타입. cv2.LINE_4, cv2.LINE_8, cv2.LINE_AA 중 선택. 기본값은 cv2.LINE_8.
  • shift: 그리기 좌표값의 축소 비율. 기본값은 0.

문자열 출력

cv2.putText(img, text, org, fontFace, fontScale, color, thickness=None,
lineType=None, bottomLeftOrigin=None) -> img
  • img: 그림을 그릴 영상
  • text: 출력할 문자열
  • org: 영상에서 문자열을 출력할 위치의 좌측 하단좌표. (x, y) 튜플.
  • fontFace: 폰트종류. cv2.FONTHERSHEY 로시작하는 상수 중 선택
  • fontScale: 폰트 크기 확대/축소 비율
  • color: 선 색상 또 는밝기. (B, G, R) 튜플 또는 정수값.
  • thickness: 선 두께. 음수(-1)를 지정하면 내부를 채움.기본값은 1.
  • lineType: 선타입. cv2.LINE_4, cv2.LINE_8, cv2.LINE_AA 중 선택.
  • bottomLeftOrigin: True이면 영상의 좌측 하단을 원점으로 간주. 기본값은False.

Reference
1) 제로베이스 데이터스쿨 강의자료

profile
데이터 사이언스 / just do it

0개의 댓글