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中操作时间之tzset()方法的使用教程
May 22 Python
Python程序中的观察者模式结构编写示例
May 27 Python
Python操作Oracle数据库的简单方法和封装类实例
May 07 Python
对dataframe进行列相加,行相加的实例
Jun 08 Python
python3通过selenium爬虫获取到dj商品的实例代码
Apr 25 Python
django ManyToManyField多对多关系的实例详解
Aug 09 Python
Python实现RabbitMQ6种消息模型的示例代码
Mar 30 Python
如何验证python安装成功
Jul 06 Python
Python实现快速大文件比较代码解析
Sep 04 Python
Python为何不支持switch语句原理详解
Oct 21 Python
基于Python实现的购物商城管理系统
Apr 27 Python
python工具dtreeviz决策树可视化和模型可解释性
Mar 03 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 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
PHP获取当前url的具体方法全面解析
2013/11/26 PHP
使用PHP开发留言板功能
2019/11/19 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
2020/11/27 PHP
jQuery的deferred对象详解
2014/11/12 Javascript
js实现微信分享代码
2020/10/11 Javascript
js类式继承与原型式继承详解
2016/04/07 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
2018/02/08 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
vue-router的HTML5 History 模式设置
2018/09/08 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
Vue动态创建注册component的实例代码
2019/06/14 Javascript
vue 中 命名视图的用法实例详解
2019/08/14 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
Python多进程分块读取超大文件的方法
2016/04/13 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
Python面向对象之继承代码详解
2018/01/29 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
全方位了解CSS3的Regions扩展
2015/08/07 HTML / CSS
西班牙美妆电商:Perfume’s Club(有中文站)
2018/08/08 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
军训拉歌口号
2014/06/13 职场文书
2014年协会工作总结
2014/11/22 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
旅游项目合作意向书
2015/05/08 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
matlab xlabel位置的设置方式
2021/05/21 Python
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
2022/04/19 Javascript
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python