본문으로 바로가기
728x90

이미지에 글자 출력하기

이미지에 글자를 넣을 때는 putText() 를 사용합니다.

흰 배경의 이미지를 생성하고 그위에 글자를 넣어봅니다.

 

"파이썬 OpenCV" 의 한글이 깨지는 것을 볼 수 있습니다.

import numpy as np
import cv2

img = np.full((100, 200, 3), (255, 255, 255), np.uint8)

text = "파이썬 OpenCV"

cv2.putText(img,  text, (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 0), 1, cv2.LINE_AA)

cv2.imshow("text", img)

cv2.waitKey()
cv2.destroyAllWindows()

 

한글 출력하기

PIL 을 사용하면 한글출력을 쉽게 할 수 있습니다.

폰트를 지정하고 글자 이미지를 생성하고 넘파이 배열로 변환한 후, OpenCV 로 출력합니다.

import numpy as np
from PIL import ImageFont, ImageDraw, Image
import cv2

font = ImageFont.truetype("fonts/gulim.ttc", 20)

img = np.full((200, 300, 3), (255, 255, 255), np.uint8)
img = Image.fromarray(img)

draw = ImageDraw.Draw(img)

text = "이미지에 한글 출력\n\nhttps://jvvp.tistory.com"
draw.text((30, 50),  text, font=font, fill=(0, 0, 0))

img = np.array(img)

cv2.imshow("text", img)

cv2.waitKey()
cv2.destroyAllWindows()