Python opencv在图片上绘制中文

 

opencv提供了一个cv2.putText方法,可以用来在图片上绘制文字。但是,如果你用来绘制中文的时候你会发现全是问号,也就是乱码,主要是因为OpenCV并不支持no-ascii码的原因,所以我们需要借助其他的库来在图片上绘制中文

Python opencv在图片上绘制中文_第1张图片

在图片上绘制中文

如果没有按照PIL模块,需要先安装,通过以下命令可以进行安装

pip install Pillow

字体文件下载网站:http://www.font5.com.cn/font_download.php?id=150&part=1237886897 

import cv2
import numpy as np
from PIL import ImageFont,ImageDraw,Image

#创建一张全白的图片用来绘制中文
img = np.full((200,200,3),fill_value=255,dtype=np.uint8)

#在图片的指定位置绘制英文
cv2.putText(img,"draw chinese",(10,50),cv2.FONT_HERSHEY_SIMPLEX,1,(255,0,0),1)
#绘制中文
cv2.putText(img,"中文",(10,100),cv2.FONT_HERSHEY_SIMPLEX,1,(255,0,0),1)
#导入字体文件
fontpath = "simsun.ttc"
#设置字体的颜色
b,g,r,a = 0,255,0,0
#设置字体大小
font = ImageFont.truetype(fontpath,15)
#将numpy array的图片格式转为PIL的图片格式
img_pil = Image.fromarray(img)
#创建画板
draw = ImageDraw.Draw(img_pil)
#在图片上绘制中文
draw.text((10,150),"绘制中文",font=font,fill=(b,g,r,a))
#将图片转为numpy array的数据格式
img = np.array(img_pil)
#保存图片
cv2.imwrite("draw_text.jpg",img)

Python opencv在图片上绘制中文_第2张图片

你可能感兴趣的:(opencv修炼之路)