python解决cv2绘制中⽂乱码问题因为使⽤cv2.putText() 只能显⽰英⽂字符,中⽂会出现乱码问题,
因此使⽤PIL在图⽚上绘制添加中⽂,可以指定字体⽂件。
⼤体思路:
OpenCV图⽚格式转换成PIL的图⽚格式;
使⽤PIL绘制⽂字;
PIL图⽚格式转换成OpenCV的图⽚格式;
具体实现:
# coding=utf-8
# cv2解决绘制中⽂乱码
import cv2
import numpy
from PIL import Image, ImageDraw, ImageFont
def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):
numpy教程 pdfif (isinstance(img, numpy.ndarray)): # 判断是否OpenCV图⽚类型
img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
# 创建⼀个可以在给定图像上绘图的对象
draw = ImageDraw.Draw(img)
# 字体的格式
fontStyle = uetype(
"", textSize, encoding="utf-8")
# 绘制⽂本
<((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绘制中⽂乱码问题就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论