Python OpenCV实现图片上输出中文


Posted in Python onJanuary 22, 2018

OpenCV中在图片上输出中文一般需要借助FreeType库实现。FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件。但使用FreeType需要下载库并重新编译,过程麻烦一点。

在Python中,可以借助PIL(Python Imaging Library)模块实现,相对简单很多,需要做的只是对图像进行OpenCV格式和PIL格式的相互转换。

# -*- coding: utf-8 -*- 
import cv2 
import numpy 
from PIL import Image, ImageDraw, ImageFont 
 
if __name__ == '__main__': 
 
 img_OpenCV = cv2.imread('01.jpg') 
 # 图像从OpenCV格式转换成PIL格式 
 img_PIL = Image.fromarray(cv2.cvtColor(img_OpenCV, cv2.COLOR_BGR2RGB)) 
 
 # 字体 字体*.ttc的存放路径一般是: /usr/share/fonts/opentype/noto/ 查找指令locate *.ttc 
 font = ImageFont.truetype('NotoSansCJK-Black.ttc', 40) 
 # 字体颜色 
 fillColor = (255,0,0) 
 # 文字输出位置 
 position = (100,100) 
 # 输出内容 
 str = '在图片上输出中文' 
 
 # 需要先把输出的中文字符转换成Unicode编码形式 
 if not isinstance(str, unicode): 
  str = str.decode('utf8') 
 
 draw = ImageDraw.Draw(img_PIL) 
 draw.text(position, str, font=font, fill=fillColor) 
 # 使用PIL中的save方法保存图片到本地 
 # img_PIL.save('02.jpg', 'jpeg') 
 
 # 转换回OpenCV格式 
 img_OpenCV = cv2.cvtColor(numpy.asarray(img_PIL),cv2.COLOR_RGB2BGR) 
 cv2.imshow("print chinese to image",img_OpenCV) 
 cv2.waitKey() 
 cv2.imwrite('03.jpg',img_OpenCV)

输出效果:

 Python OpenCV实现图片上输出中文

字体 *.ttc的存放路径一般是: /usr/share/fonts/opentype/noto/  

可以使用locate指令查找本机上已经下载的字体:

Python OpenCV实现图片上输出中文

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中遍历字典过程中更改元素导致异常的解决方法
May 12 Python
深入浅析python定时杀进程
Jun 06 Python
Python利用IPython提高开发效率
Aug 10 Python
Python实现自动登录百度空间的方法
Jun 10 Python
Python生成器定义与简单用法实例分析
Apr 30 Python
python配置grpc环境
Jan 01 Python
Python画图实现同一结点多个柱状图的示例
Jul 07 Python
python生成器推导式用法简单示例
Oct 08 Python
基于Python3.6中的OpenCV实现图片色彩空间的转换
Feb 03 Python
python词云库wordcloud的使用方法与实例详解
Feb 17 Python
Django cookie和session的应用场景及如何使用
Apr 29 Python
C3 线性化算法与 MRO之Python中的多继承
Oct 05 Python
python批量替换页眉页脚实例代码
Jan 22 #Python
python解析html提取数据,并生成word文档实例解析
Jan 22 #Python
Python复制Word内容并使用格式设字体与大小实例代码
Jan 22 #Python
Python读取word文本操作详解
Jan 22 #Python
python导出hive数据表的schema实例代码
Jan 22 #Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 #Python
一道python走迷宫算法题
Jan 22 #Python
You might like
PHP下MAIL的另一解决方案
2006/10/09 PHP
网页游戏开发入门教程三(简单程序应用)
2009/11/02 PHP
php查看网页源代码的方法
2015/03/13 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
浅谈php的TS和NTS的区别
2019/03/13 PHP
javascript完美拖拽的实现方法
2013/09/29 Javascript
JavaScript监听文本框回车事件并过滤文本框空格的方法
2015/04/16 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
2016/01/26 Javascript
基于JavaScript实现报警器提示音效果
2017/10/27 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
pygame学习笔记(1):矩形、圆型画图实例
2015/04/15 Python
python中黄金分割法实现方法
2015/05/06 Python
python相似模块用例
2016/03/04 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
python/golang实现循环链表的示例代码
2020/09/14 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
北京捷通华声语音技术有限公司Java软件工程师笔试题
2012/04/10 面试题
创建卫生先进单位实施方案
2014/03/10 职场文书
2014年预备党员学习两会心得体会
2014/03/17 职场文书
教师演讲稿大全
2014/05/16 职场文书
空气环保标语
2014/06/12 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
2014年学校党建工作总结
2014/11/11 职场文书
2015年元宵节活动总结
2015/02/06 职场文书
基于Python和openCV实现图像的全景拼接详细步骤
2021/10/05 Python
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP