首页 > 开发 > Python > 正文

python 解决cv2绘制中文乱码问题

2020-07-28 13:39:49
字体:
来源:转载
供稿:网友

因为使用cv2.putText() 只能显示英文字符,中文会出现乱码问题,

因此使用PIL在图片上绘制添加中文,可以指定字体文件。

大体思路:

OpenCV图片格式转换成PIL的图片格式;

使用PIL绘制文字;

PIL图片格式转换成OpenCV的图片格式;

具体实现:

# coding=utf-8# cv2解决绘制中文乱码 import cv2import numpyfrom PIL import Image, ImageDraw, ImageFont def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):  if (isinstance(img, numpy.ndarray)): # 判断是否OpenCV图片类型    img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))  # 创建一个可以在给定图像上绘图的对象  draw = ImageDraw.Draw(img)  # 字体的格式  fontStyle = ImageFont.truetype(    "font/simsun.ttc", textSize, encoding="utf-8")  # 绘制文本  draw.text((left, top), text, textColor, font=fontStyle)  # 转换回OpenCV格式  return cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)if __name__ == '__main__':  img = cv2ImgAddText(cv2.imread('img1.jpg'), "大家好,我是片天边的云彩", 10, 65, (0, 0 , 139), 20)  cv2.imshow('show', img)  if cv2.waitKey(100000) & 0xFF == ord('q'):    cv2.destroyAllWindows()  

效果展示:

以上这篇python 解决cv2绘制中文乱码问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持错新网之家。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表