Library Import
1
2
import cv2
import numpy as np
텍스트
cv2.FONT_HERSHEY_SIMPLEX
: 보통 크기의 산 셰리프 글꼴cv2.FONT_HERSHEY_PLAIN
: 작은 크기의 산 셰리프 글꼴cv2.FONT_HERSHEY_SCRIPT_SIMPLEX
: 필기체 스타일 글꼴cv2.FONT_HERSHEY_TRIPLEX
: 보통 크기의 셰리프 글꼴cv2.FONT_ITALIC
: 기울임
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
img = np.zeros((480, 640, 3), dtype=np.uint8) # height, width, channel
COLOR = (255, 255, 255) # 흰색
THICKNESS = 1 # 글자 두께
SCALE = 1 # 글자 크기
# 그릴 위치, 텍스트, 시작 위치, 폰트 종류, 크기, 색상, 두께
cv2.putText(img, 'SIMPLEX', (20, 50),
cv2.FONT_HERSHEY_SIMPLEX, SCALE, COLOR, THICKNESS)
cv2.putText(img, 'PLAIN', (20, 150),
cv2.FONT_HERSHEY_PLAIN, SCALE, COLOR, THICKNESS)
cv2.putText(img, 'SCRIPT_SIMPLEX', (20, 250),
cv2.FONT_HERSHEY_SCRIPT_SIMPLEX, SCALE, COLOR, THICKNESS)
cv2.putText(img, 'TRIPLEX', (20, 350),
cv2.FONT_HERSHEY_TRIPLEX, SCALE, COLOR, THICKNESS)
cv2.putText(img, 'ITALIC', (20, 450),
cv2.FONT_HERSHEY_TRIPLEX | cv2.FONT_ITALIC, SCALE, COLOR, THICKNESS)
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
한글 우회 방법
OpenCV에서는 한글을 지원하지 않기 때문에 한글 텍스트는 물음표(?)
로 보이게 된다. 따라서 우회하여 작성하여야 한다. PIL
을 사용한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from PIL import ImageFont, ImageDraw, Image
img = np.zeros((480, 640, 3), dtype=np.uint8) # height, width, channel
# 한글 우회하여 텍스트 입력하는 함수
def myPutText(src, text, pos, font_size, font_color):
img_pil = Image.fromarray(src)
draw = ImageDraw.Draw(img_pil)
font = ImageFont.truetype('font/gulim.ttc', font_size)
draw.text(pos, text, font=font, fill=font_color)
return np.array(img_pil)
COLOR = (255, 255, 255) # 흰색
FONT_SIZE = 30 # 폰트 크기
img = myPutText(img, '또또 주인의 주인', (20, 50), FONT_SIZE, COLOR)
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()