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访问纯真IP数据库的代码
May 19 Python
编写Python脚本来实现最简单的FTP下载的教程
May 04 Python
Python中type的构造函数参数含义说明
Jun 21 Python
Django自定义用户认证示例详解
Mar 14 Python
python如何拆分含有多种分隔符的字符串
Mar 20 Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 Python
java判断三位数的实例讲解
Jun 10 Python
基于Python脚本实现邮件报警功能
May 20 Python
django Model层常用验证器及自定义验证器详解
Jul 15 Python
Python 爬虫性能相关总结
Aug 03 Python
Python实现手势识别
Oct 21 Python
Python+OpenCV实现图片中的圆形检测
Apr 07 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数据缓存技术
2007/02/14 PHP
PHP系列学习之日期函数使用介绍
2012/08/18 PHP
php curl选项列表(超详细)
2013/07/01 PHP
一个显示效果非常不错的PHP错误、异常处理类
2014/03/21 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
2015/09/23 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
ThinkPHP中调用PHPExcel的实现代码
2017/04/08 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
实例讲解Vue.js中router传参
2018/04/22 Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
2018/08/24 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
python获取引用对象的个数方式
2019/12/20 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
python实现npy格式文件转换为txt文件操作
2020/07/01 Python
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
网络教育毕业生自我鉴定
2013/10/10 职场文书
董事长职责范文
2013/11/08 职场文书
无工作经验者个人求职信范文
2013/12/22 职场文书
优秀女职工事迹材料
2014/02/06 职场文书
党员教师群众路线对照检查材料思想汇报
2014/09/29 职场文书
销售2014年度工作总结
2014/12/08 职场文书
大雁塔导游词
2015/02/04 职场文书
python实现批量移动文件
2021/04/05 Python