关于opencv 不能在图片上显示中文字符的解决办法 已解决
代码来源于网络
import cv2 import numpy as np from PIL import ImageFont, Image, ImageDraw INFER_PATH = "./work/infer_license.png" img = cv2.imread(INFER_PATH) def show_chinese(img,text,pos): img_pil = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) font = ImageFont.truetype(font='msyh.ttc', size=36) draw = ImageDraw.Draw(img_pil) draw.text(pos, text, font=font, fill=(255, 0, 0)) # PIL中RGB=(255,0,0)表示红色 img_cv = np.array(img_pil) # PIL图片转换为numpy img = cv2.cvtColor(img_cv, cv2.COLOR_RGB2BGR) # PIL格式转换为OpenCV的BGR格式 return img img = show_chinese(img,"你好",(0,0)) cv2.imshow('p', img) cv2.waitKey(0) cv2.destroyAllWindows()
这句话中的函数用到了.ttc 后缀名的字体
font = ImageFont.truetype(font='msyh.ttc', size=36)
然后是根据PIL 转数组然后做操作做完之后在转成图片。汉字就显示在图片上了
可以想这样封装一个函数留存记录
def show_chinese(img,text,pos) 以后写也可以直接套用 增加代码可复用性
本文作者:ClingYang
本文链接:https://www.cnblogs.com/Yang-blackSun/p/18025344
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
本文作者:Yang-blackSun
本文链接:https://www.cnblogs.com/Yang-blackSun/p/18025344
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步