사실 OpenCV의 이미지는 numpy의 배열입니다. 그런데 문제는 파이썬에서 OpenCV를 통해 텍스트를 출력할때 한글 출력이 쉽지 않습니다. 해서 한글 출력을 위해 PIL(Python Imaging Library)의 도움을 받을 수 있습니다. 아래의 예제가 바로 그것입니다.
import numpy as np from PIL import ImageFont, ImageDraw, Image import cv2 img = np.zeros((200,400,3),np.uint8) b,g,r,a = 255,255,255,0 fontpath = "fonts/gulim.ttc" font = ImageFont.truetype(fontpath, 20) img_pil = Image.fromarray(img) draw = ImageDraw.Draw(img_pil) draw.text((60, 70), "김형준ABC123#GISDeveloper", font=font, fill=(b,g,r,a)) img = np.array(img_pil) cv2.putText(img, "by Dip2K", (250,120), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (b,g,r), 1, cv2.LINE_AA) cv2.imshow("res", img) cv2.waitKey() cv2.destroyAllWindows()
7-12번 코드가 PIL을 이용해 한글을 출력하는 코드이고, 14~15번 코드는 OpenCV의 텍스트 출력 코드입니다. 결과는 다음과 같습니다.
좋은 정보 감사합니다!