오늘 해볼 것은 OpenCV를 이용해 도형을 그려볼 것입니다. 코랩을 이용하였습니다.
동심으로 돌아가 본인이 그림그리기 공부를 한다고 가정했을 때, 우선은 스케치북이 필요하겠죠
import cv2
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from PIL import Image
import requests
from io import BytesIO
from google.colab.patches import cv2_imshow
img = np.zeros((512,512,3), np.uint8)
그리고 plt로 출력결과를 보겠습니다.
plt.imshow(img)
plt.show()
직선의 파라미터설명
img | 그림을 그릴 이미지 파일 |
start | 시작 좌표 |
end | 종료 좌표 |
color | BGR형태의 Color (e.g., (255, 0, 0)→Blue) |
thickness (int) | 선의 두께 (pixel) |
그럼이제 직선을 그어보도록 하겠습니다.
img =cv2.line(img, (0, 0),(511,511), (255,0,0), 5)
plt.imshow(img)
plt.show()
그리고 사각형을 그려보도록 하겠습니다.
파라미터설명
img | 그림을 그릴 이미지 |
start | 시작 좌표 |
end | 종료 좌표 |
color | BGR형태의 Color (e.g., (255, 0, 0)→Blue) |
thickness (int) | 선의 두께 (pixel) |
img = cv2.rectangle(img, (400,0), (510, 128), (0,255,0),3)
plt.imshow(img)
plt.show()
이제 원도 그려봐야겠죠?
파라미터설명
img | 그림을 그릴 이미지 |
center | 원의 중심 좌표(x, y) |
radian | 반지름 |
color | BGR형태의 Color |
thickness | 선 두께, -1이면 원 안쪽을 채움 |
lineType | 선의 형태, cv2.line() 함수의 인수와 동일 |
shift | 좌표에 대한 비트 시프트 연산 |
img = cv2.circle(img,(450,50),50,(0,0,255),-1)
plt.imshow(img)
plt.show()
참고로 두께를 -1값을 주면 안이 채워지고 +값을 넣으면 직선처럼 두께가 정해집니다.
이제는 타원입니다.
파라미터설명
img | image |
center | 타원의 중심 |
axes | 중심에서 가장 큰 거리와 작은 거리 |
angle | 타원의 기울기 각 |
startAngle | 타원의 시작 각도 |
endAngle | 타원이 끝나는 각도 |
color | 타원의 색 |
thickness | 선의 두께, -1이면 안쪽을 채움 |
lineType | 선의 형태 |
shift | 좌표에 대한 비트 시프트 |
img = cv2.ellipse(img, (256,256), (150,30),0,0,180,(0,255,0),-1)
plt.imshow부분은 생략하도록 하겠습니다.
'영상처리 > opencv' 카테고리의 다른 글
OpenCV를 이용해 이미지 출력하기 (0) | 2021.10.26 |
---|---|
OpenCV을 이용해 카메라(웹캠) 출력 (0) | 2021.10.26 |
opencv 이미지 출력시 색바뀜 오류 해결(기본) (0) | 2021.10.11 |