opencv在中文字符显示中很不友好,下面给大家带来一种用matplotlib处理opencv打开的图像,并且在不改变原图非情况下添加中文字符,并且保存的例子。
import matplotlib.pyplot as plt
import cv2
from pylab import mpl#解决matplotlib显示中文问题
mpl.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
img=cv2.imread('img.jpg')
img=cv2.cvtColor(img, cv2.COLOR_BGR2RGB)#转化为RGB
a,b=img.shape[:2]
fig=plt.figure(figsize=(b/100,a/100))#根据图片大小设置画布的大小,很关键
ax=fig.add_subplot(111)
ax.imshow(img)
ax.set_yticks([])
ax.set_xticks([]) #清楚坐标轴刻度
ax.text(b/2,a/2,'数字图像处理',color='red',size=50) #显示的字符及颜色大小设置
fig.subplots_adjust(bottom=0.0, right=1.0, left=0.0, top=1.0)#调整边框
fig.savefig('test.jpg')#保存图像