在识别图片中的文字后,要把对应的文字写在对应的位置,但是cv2.putText无法写入中文。一番查询,找到解决办法,在此做个记录:
from PIL import Image, ImageDraw, ImageFont
import cv2
import numpy as np
#读取路径中含有中文的图片
old_cv_img = cv2.imdecode(np.fromfile(imgDir, dtype=np.uint8), -1)
#转换图片格式
pil_img = Image.fromarray(cv2.cvtColor(old_cv_img, cv2.COLOR_BGR2RGB))
draw = ImageDraw.Draw(pil_img)
font = ImageFont.truetype('simhei.ttf', 50, encoding="utf-8")
draw.text((pt[0] - 5, pt[1] - 5), text, (0, 0, 255), font)
new_cv_img = cv2.cvtColor(np.array(pil_img), cv2.COLOR_RGB2BGR)
#保存路径中含有中文的图片
cv2.imencode('.jpg', new_cv_img)[1].tofile(saveDir)#saveDir:xx/xx/中文.jpg