python 解决cv2绘制中文乱码问题
因为使用cv2.putText()只能显示英文字符,中文会出现乱码问题,
因此使用PIL在图片上绘制添加中文,可以指定字体文件。
大体思路:
OpenCV图片格式转换成PIL的图片格式;
使用PIL绘制文字;
PIL图片格式转换成OpenCV的图片格式;
具体实现:
#coding=utf-8 #cv2解决绘制中文乱码 importcv2 importnumpy fromPILimportImage,ImageDraw,ImageFont defcv2ImgAddText(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格式 returncv2.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) ifcv2.waitKey(100000)&0xFF==ord('q'): cv2.destroyAllWindows()
效果展示:
以上这篇python解决cv2绘制中文乱码问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。