728x90
선 그리기
입력 이미지에 시작점, 끝점을 잇는 직선을 그립니다.
cv2.line(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
매개 변수 | 설명 |
img | 소스 이미지 |
pt1 | 시작점(width, height) |
pt2 | 끝점(width, height) |
color | 선 색상 (BGR) |
thickness | 선 두께 |
lineType | 선 타입 |
shift | 그리기 좌표값의 축소비율 |
import numpy as np
import cv2
img = np.zeros((240, 320, 3), np.uint8)
img2 = np.ones((240, 320, 3), np.uint8) * 255
cv2.line(img, (0, 120), (320, 120), (0, 255, 255), 3)
cv2.line(img2, (0, 0), (img2.shape[1], img2.shape[0]), (255, 0, 0), 5)
cv2.imshow('img', img)
cv2.imshow('img2', img2)
cv2.waitKey()
cv2.destroyAllWindows()
직사각형 그리기
입력 이미지에 시작점의 좌표부터 입력받은 크기의 직사각형을 그립니다.
cv2.rectangle(img, pt1, pt2, color, thickness=None, lineType=None, shift=None)
매개 변수 | 설명 |
img | 소스 이미지 |
pt1 | 사각형의 시작점 (x, y) |
pt2 | 사각형의 크기 (width, height) |
color | 선 색상 (BGR) |
thickness | 선 두께 |
lineType | 선 타입 |
shift | 그리기 좌표값의 축소비율 |
import numpy as np
import cv2
img = np.zeros((320, 480, 3), np.uint8)
img2 = np.ones((320, 480, 3), np.uint8) * 255
h = img.shape[0]
w = img.shape[1]
cv2.rectangle(img, (50, 50), (w-50, h-50), (0, 255, 255), 3)
cv2.rectangle(img, (100, 100), (w-100, h-100), (255, 0, 0), 5)
cv2.imshow('img', img)
cv2.waitKey()
cv2.destroyAllWindows()
원 그리기
입력 이미지에 중심점 좌표에서 입력받은 반지름을 가지는 원을 그립니다.
cv2.circle(img, center, radius, color, thickness=None, lineType=None, shift=None)
매개 변수 | 설명 |
img | 소스 이미지 |
center | 원의 중심좌표 (x, y) |
radius | 원의 반지름 (width, height) |
color | 선 색상 (BGR) |
thickness | 선 두께 |
lineType | 선 타입 |
shift | 그리기 좌표값의 축소비율 |
import numpy as np
import cv2
img = np.zeros((320, 480, 3), np.uint8)
img2 = np.ones((320, 480, 3), np.uint8) * 255
y = img.shape[0]
x = img.shape[1]
cv2.circle(img, (int(x/2), int(y/2)), 100, (0, 0, 255), 3)
cv2.imshow('img', img)
cv2.waitKey()
cv2.destroyAllWindows()
다각형 그리기
입력 이미지에 입력받은 꼭지점을 연결하여 그립니다.
cv2.polylines(img, pts, isClosed, color, thickness=None, lineType=None, shift=None)
매개 변수 | 설명 |
img | 소스 이미지 |
pts | 꼭지점 (x, y) [<class 'numpy.ndarray'>] |
isClosed | 폐곡선 여부 True/False |
color | 선 색상 (BGR) |
thickness | 선 두께 |
lineType | 선 타입 |
shift | 그리기 좌표값의 축소비율 |
isClosed 옵션을 True 로 주게되면 img2 처럼 시작점과 끝점이 연결됩니다.
import numpy as np
import cv2
img = np.zeros((320, 480, 3), np.uint8)
img2 = np.zeros((320, 480, 3), np.uint8)
y = img.shape[0]
x = img.shape[1]
point = np.array([[50, 50], [x-50, 50], [int(x/2), int(y-50)]], dtype=np.int32)
cv2.polylines(img, [point], False, (0, 0, 255), 3)
cv2.polylines(img2, [point], True, (0, 0, 255), 3)
cv2.imshow('img', img)
cv2.imshow('img2', img2)
cv2.waitKey()
cv2.destroyAllWindows()
'OpenCV' 카테고리의 다른 글
파이썬 OpenCV 트랙바 사용하기 (1) | 2020.07.14 |
---|---|
파이썬 OpenCV 이미지 밝기 조절 : add, sub (0) | 2020.07.14 |
파이썬 OpenCV 이미지 생성/복사하기 (0) | 2020.07.13 |
파이썬 OpenCV 이미지 읽기 -2 : 이미지 객체 속성, 픽셀 접근 (0) | 2020.07.08 |
파이썬 OpenCV 이미지 읽기 -1 : imread() 속성, 흑백으로 읽기 (0) | 2020.07.08 |