Linux下python matplotlib.pyplot在图像上显示中文的问题
2016-06-16 19:18
951 查看
之前用py-faster-rcnn训练了一个车牌检测模型,然后对检测出来的车牌进行识别,由于我国的车牌第一个一般为汉字,在图像上显示汉字时,出现很多问题,乱码、汉字变方框等,后来在网上看了很多办法才解决,下面把解决过程记录一下。
以py-faster-rcnn的demo.py代码为基础,我在demo.py中的修改如下:
(1)指定默认编码:
(2)设置中文字体:
上面的zhfont就是设置的中文字体,由于系统的原因,这个路径不一定相同,所以,用下面的命令确定你的中文字体路径:
(3)添加参数
还是vis_detections()这个函数,修改:
那个s就是识别的结果(有中文),color后面添加fontproperties = zhfont
这样,就可以在图像上显示中文了,效果如下:
以py-faster-rcnn的demo.py代码为基础,我在demo.py中的修改如下:
(1)指定默认编码:
import caffe, os, sys, cv2 reload(sys) sys.setdefaultencoding('utf-8')
(2)设置中文字体:
def vis_detections(im, class_name, dets, thresh=0.5): """Draw detected bounding boxes.""" inds = np.where(dets[:, -1] >= thresh)[0] if len(inds) == 0: return im = im[:, :, (2, 1, 0)] zhfont = matplotlib.font_manager.FontProperties(fname="/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf") #字体 fig, ax = plt.subplots(figsize=(12, 12)) ax.imshow(im, aspect='equal')
上面的zhfont就是设置的中文字体,由于系统的原因,这个路径不一定相同,所以,用下面的命令确定你的中文字体路径:
(3)添加参数
还是vis_detections()这个函数,修改:
ax.text(bbox[0], bbox[1] - 2, '{:s}'.format(s), bbox=dict(facecolor='blue', alpha=0.5), fontsize=14, color='white', fontproperties = zhfont)
那个s就是识别的结果(有中文),color后面添加fontproperties = zhfont
这样,就可以在图像上显示中文了,效果如下:
相关文章推荐
- CentOS基于yum源安装R
- 线程与信号
- linux下增加字体
- 在VMware10中安装centos6.4详解
- git新手学习和使用
- scp命令
- Linux的find、locate、whereis、which、type
- linux select函数详解
- linux c
- LINUX 面试题 +运维岗
- Linux crontab使用详解
- linux查看指定目录下最大的10个文件
- ARM linux内核-----准备
- Linux服务器上安装织梦CMS
- Linux中查看jdk版本
- 第三部分 linux busybox最小文件系统的移植
- 【Linux】ACL权限管理
- linux sed 批量替换字符串
- 修改linux终端命令行颜色
- Linux mysql 基础操作