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使用爬虫猜密码
Feb 19 Python
Python中你应该知道的一些内置函数
Mar 31 Python
详谈python http长连接客户端
Jun 12 Python
django创建自定义模板处理器的实例详解
Aug 14 Python
Python图形绘制操作之正弦曲线实现方法分析
Dec 25 Python
Python3之文件读写操作的实例讲解
Jan 23 Python
python3实现磁盘空间监控
Jun 21 Python
django的ORM模型的实现原理
Mar 04 Python
一行Python代码过滤标点符号等特殊字符
Aug 12 Python
Python基于pyecharts实现关联图绘制
Mar 27 Python
Python ini文件常用操作方法解析
Apr 26 Python
基于python实现模拟数据结构模型
Jun 12 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
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
PHP+jquery+ajax实现即时聊天功能实例
2014/12/23 PHP
在laravel框架中实现封装公共方法全局调用
2019/10/14 PHP
HTML颜色选择器实现代码
2010/11/23 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
Bootstrap每天必学之滚动监听
2016/03/16 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
vue实现的组件兄弟间通信功能示例
2018/12/04 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
Python3中的2to3转换工具使用示例
2015/06/12 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
python opencv读mp4视频的实例
2018/12/07 Python
python实现弹跳小球
2019/05/13 Python
基于Django统计博客文章阅读量
2019/10/29 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
css3 border-radius属性详解
2017/07/05 HTML / CSS
使用javascript和HTML5 Canvas画的四渐变色播放按钮效果
2014/04/10 HTML / CSS
英国第一豪华护肤品牌:Elemis
2017/10/12 全球购物
The Hut英国:英国领先的豪华在线百货商店
2019/07/26 全球购物
十佳青年个人事迹材料
2014/01/28 职场文书
资源工程专业毕业生求职信
2014/02/27 职场文书
2014年售票员工作总结
2014/11/19 职场文书
运动会报道稿大全
2015/07/23 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫