[Opencv] 텍스트

_찬·2022년 9월 18일
0

Opencv

목록 보기
4/6
post-thumbnail

텍스트는 뭐 별거없다
그냥 글꼴과 한글로 어떻게 출력하는지 정도로 나뉜다.

글꼴의 종류는 아래와 같다.

cv2.FONT_HERSHEY_SIMPLEX : 보통 크기의 산 셰리프(sans-serif) 글꼴
cv2.FONT_HERSHEY_PLAIN : 작은 크기의 산 세리프 글꼴
cv2.FONT_HERSHEY_SCRIPT_SIMPLEX : 필기체 스타일 글꼴
cv2.FONT_HERSHEY_TRIPLEX : 보통 크기의 산 세리프 글꼴
cv2.FONT_ITALIC : 기울임 (이탤릭체)

영어로 출력

import numpy as np
import cv2 

img = np.zeros((480, 640, 3), dtype = np.uint8)

COLOR = (255,255,255) # 흰색 
THICKNESS = 1 # 두께 
SCALE = 1 # 크기

cv2.putText(img, 'Nado Simplex', (20, 50), cv2.FONT_HERSHEY_SIMPLEX, SCALE, COLOR, THICKNESS)
# 그림 위치, 텍스트 내용, 시작 위치, 폰트 종류, 크기 , 색깔, 두께
cv2.putText(img, 'Nado PLAIN', (20, 150), cv2.FONT_HERSHEY_PLAIN, SCALE, COLOR, THICKNESS)
cv2.putText(img, 'Nado SCROPT_SIMPLEX', (20, 250), cv2.FONT_HERSHEY_SCRIPT_SIMPLEX, SCALE, COLOR, THICKNESS)
cv2.putText(img, 'Nado ITALIC', (20, 350), cv2.FONT_HERSHEY_TRIPLEX|cv2.FONT_ITALIC, SCALE, COLOR, THICKNESS)

cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

위는 모든 글꼴을 다 활용하여 출력한 것이다.



한글로 출력하는 법

한글은 위에서 'Nado' 를 '나도' 로 바꾸어서 출력을 하게 되면
?????? 이렇게 출력이 된다. 그렇기 때문에 코드를 수정해야 한다.

아래는 모든 글꼴을 활용하여 출력한 코드이다.

import numpy as np
import cv2 
# PIL (Python Image Library)
from PIL import ImageFont, ImageDraw, Image

def myPutText(src, text, pos, font_size, font_color) :
    img_pil = Image.fromarray(src)
    draw = ImageDraw.Draw(img_pil)
    font = ImageFont.truetype('fonts/gulim.ttc', font_size)
    draw.text(pos, text, font=font, fill= font_color)
    return np.array(img_pil)

img = np.zeros((480, 640, 3), dtype = np.uint8)

COLOR = (255,255,255) # 흰색 
FONT_SIZE = 30

# cv2.putText(img, '한글', (20, 50), cv2.FONT_HERSHEY_SIMPLEX, SCALE, COLOR, THICKNESS)
# 그림 위치, 텍스트 내용, 시작 위치, 폰트 종류, 크기 , 색깔, 두께

img = myPutText(img, '나도 코딩', (20,50), FONT_SIZE, COLOR)

cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

새로운 함수 myPutText 라는 함수를 만들어서 다 따로 수정하여 마지막에 nado 처럼 myPutText 함수에 넣어서 출력을 해주었다.

profile
꾸준한 사람이 되길!

0개의 댓글