# -*- coding: utf-8 -*-
def display_chinese(img_OpenCV,text_chinese):
import numpy as np
from PIL import Image, ImageDraw, ImageFont
img_PIL = Image.fromarray(cv2.cvtColor(img_OpenCV, cv2.COLOR_BGR2RGB)) # cv2和PIL中颜色的hex码的储存顺序不同
# PIL图片上打印汉字
draw = ImageDraw.Draw(img_PIL) # 图片上打印
# NotoSansCJK-Bold.ttc NotoSansCJK-Regular.ttc NotoSerifCJK-Bold.ttc NotoSerifCJK-Regular.ttc
font = ImageFont.truetype('NotoSansCJK-Bold.ttc', 40)# 参数1:字体文件路径,参数2:字体大小
draw.text((0, 0), text_chinese, (255, 0, 0), font=font) # 参数1:打印坐标,参数2:文本,参数3:字体颜色,参数4:字体
# img_PIL.save('02.jpg', 'jpeg') # 使用PIL中的save方法保存图片到本地
cv2charimg = cv2.cvtColor(np.array(img_PIL), cv2.COLOR_RGB2BGR) # PIL图片转cv2 图片
cv2.imshow("print chinese to image", cv2charimg)
cv2.imwrite('03.jpg', img_OpenCV)
cv2.waitKey(0)
cv2.destroyAllWindows()
if __name__ == '__main__':
import cv2
img_OpenCV = cv2.imread('1.jpg')
text_chinese = '我是哈哈'
display_chinese(img_OpenCV, text_chinese)