Drawing

정승균·2021년 1월 19일
0

OpenCV

목록 보기
2/7
post-thumbnail

1. line

  • img = cv2.line(img, pt1, pt2, color, thickness, lineType)
    • img : 선을 넣을 이미지
    • pt1 : 시작 좌표 tuple
    • pt2 : 끝 좌표 tuple
    • color : 선 색 tuple
    • thickness : 선 두께
    • linetype : 라인 그리는 알고리즘 LINE_4, LINE_8, LINE_AA

2. rectangle

  • img = cv.rectangle(img, pt1, pt2, color, thickness, lineType)
    • img : 직사각형을 넣을 이미지
    • pt1 : 대각선 한쪽 좌표 tuple
    • pt2 : 대각선 나머지 좌표 tuple
    • color : 선 색 tuple
    • thickness : 선 두께, FILLED 인 경우 안에 색칠
    • linetype : 라인 그리는 알고리즘 LINE_4, LINE_8, LINE_AA

3. circle

  • img = cv.circle(img, center, radius, color, thickness, lineType)
    • img : 원을 그릴 이미지
    • center : 원 중심 좌표 tuple
    • radius : 원 반지름
    • color : 선 색 tuple
    • thickness : 선두께, FILLED인 경우 안에 색칠
    • lineType : 라인 그리는 알고리즘 LINE_4, LINE_8, LINE_AA

4. polygon

  • img = cv.fillPoly(img, pts, color, lineType)

    • img : 다각형 그릴 이미지
    • pts : 꼭지점들 [numpy array]
    • color : 색 tuple
    • LineType : 라인 그리는 알고리즘 LINE_4, LINE_8, LINE_AA
  • img = cv.polylines(img, pts, isClosed, color, thickness, lineType)

    • img : 다각형 그릴 이미지
    • pts : 꼭지점들 [ndarray]
    • isClosed : 닫힌 도형인지 아닌지 bool
    • color : 색 tuple
    • thickness : 선 두께
    • LineType : 라인 그리는 알고리즘 LINE_4, LINE_8, LINE_AA

5. ellipse

  • img = cv.ellipse(img, center, axes, angle, startAngle, endAngle, color, thickness, lineType)
    • img : 타원을 그릴 이미지
    • center : 타원 중심 좌표 tuple
    • axes : 타원 단축, 장축 반지름 tuple
    • angle : 타원이 기울여저 있는 degree
    • startAngle : arc의 시작 degree
    • endAngle : arc의 끝 degree
    • color : 색상 tuple
    • thickness : 선 두께, FILLED인 경우 색칠
    • lineType : 선 그리는 알고리즘 LINE_4, LINE_8, LINE_AA

6. Text

  • img = cv.putText(img, text, org, fontFace, fontScale, color, thickness, lineType, bottomLeftOrigin)
    • img : 텍스트를 넣을 이미지
    • org : 왼쪽 아래 좌표 tuple
    • fontFace : 글꼴
    • fontScale : 글씨 크기 float
    • color : 색상 tuple
    • thickness : 선 두께
    • LineType : 선 그리는 알고리즘 LINE_4, LINE_8, LINE_AA
    • bottomLeftOrigin : 상하 반전 여부 bool

7. 예제

import numpy as np
import cv2 as cv

src = np.zeros((768, 1366, 3), dtype = np.uint8)

cv.line(src, (100, 100), (1200, 100), (0, 0, 255), 3, cv.LINE_AA)
cv.circle(src, (300, 300), 50, (0, 255, 0), cv.FILLED, cv.LINE_4)
cv.rectangle(src, (500, 200), (1000, 400), (255, 0, 0), 5, cv.LINE_8)
cv.ellipse(src, (1200, 300), (100, 50), 0, 90, 180, (255, 255, 0), 2)

pts1 = np.array([[100, 500], [300, 500], [200, 600]])
pts2 = np.array([[600, 500], [800, 500], [700, 600]])
cv.polylines(src, [pts1], True, (0, 255, 255), 2)
cv.fillPoly(src, [pts2], (255, 0, 255), cv.LINE_AA)

cv.putText(src, "OpenCV", (900, 600), cv.FONT_HERSHEY_COMPLEX, 2, (255, 255, 255), 3)

cv.imshow("display", src)
cv.waitKey(0)
cv.destroyAllWindows()

0개의 댓글