소스 뷰어
글자 쓰기¶
- cv2.putText(iamge, text, org, fontFace, fontScale, color[, thickness[, lineType[, shift[, bottomLeftOrigin]]]])
- text 문자열을 org 좌표에 color 색상으로 그린다
- image : 문자열을 작성할 대상 행렬(영상)
- text : 작성할 문자열
- fontface : 문자열의 시작 좌표, 문자열에서 가장 왼쪽 하단을 의미
- fontScale : 글자 크기 확대 비율
- color : 글자의 색상
- thickness : 글자의 굵기
- lineType : 글자 선의 형태
- bottomLeftOrigin : 영상의 원점 좌표 설정 (True - 좌하단 왼쪽, False - 좌상단)
문자열의 폰트 (fontFace)에 대한 옵션과 의미¶
- cv2.FONT_HERSHEY_SIMPLEX (값 : 0) : 중간 크기 산세리프 폰트
- cv2.FONT_HERSHEY_PLAIN (값 : 1) : 작은 크기 산세리프 폰트
- cv2.FONT_HERSHEY_DUPLEX (값 : 2) : 2줄 산세리프 폰트
- cv2.FONT_HERSHEY_COMPLEX (값 : 3) : 중간 크기 세리프 폰트
- cv2.FONT_HERSHEY_TRIPLEX (값 : 4) : 3줄 세리프 폰트
- cv2.FONT_HERSHEY_COMPLEX_SMALL (값 : 5) : complex 보다 작은 폰트
- cv2.FONT_HERSHEY_SCRIPT_SIMPLEX (값 : 6) : 필기체 스타일 폰트
- cv2.FONT_HERSHEY_SCRIPT_COMPLEX (값 : 7) : 복잡하 필기체 스타일
- cv2.FONT_ITALIC (값 : 16) : 이탤릭체를 위한 플래그
import numpy as np
import cv2
from matplotlib import pyplot as plt
olive, violet, brown = (128, 128, 0), (221, 160, 221), (42 , 42, 165)
pt1, pt2 = (50, 230), (50, 310) # 문자열 위치 좌표
image = np.zeros((350, 500,3), np.uint8)
image.fill(255)
cv2.putText(image, "SIMPLEX", (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 2, brown)
cv2.putText(image, "DUPLEX", (50, 120), cv2.FONT_HERSHEY_DUPLEX, 2, olive)
cv2.putText(image, "TRIPLEX", pt1, cv2.FONT_HERSHEY_TRIPLEX, 2, violet)
fontFace = cv2.FONT_HERSHEY_PLAIN | cv2.FONT_ITALIC
cv2.putText(image, "ITALIC ", pt2, fontFace, 2, violet)
b, g, r = cv2.split(image)
image2 = cv2.merge([r, g, b])
plt.imshow(image2)
plt.xticks([])
plt.yticks([])
plt.show()