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中设置变量作为默认值时容易遇到的错误
Apr 03 Python
使用Python对Excel进行读写操作
Mar 30 Python
python多线程socket编程之多客户端接入
Sep 12 Python
python检索特定内容的文本文件实例
Jun 05 Python
Python实现的批量修改文件后缀名操作示例
Dec 07 Python
详解Python:面向对象编程
Apr 10 Python
python下载卫星云图合成gif的方法示例
Feb 18 Python
pycharm安装及如何导入numpy
Apr 03 Python
pycharm 对代码做静态检查操作
Jun 09 Python
Java如何基于wsimport调用wcf接口
Jun 17 Python
Python selenium的这三种等待方式一定要会!
Jun 10 Python
python如何利用cv2.rectangle()绘制矩形框
Dec 24 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 GD 图像处理组件的常用函数总结
2010/04/28 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
2013/09/16 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
php注册登录系统简化版
2020/12/28 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
详解json在php中的应用
2018/09/30 PHP
用javascript实现自定义标签
2007/05/08 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
JQuery实现简单时尚快捷的气泡提示插件
2012/12/20 Javascript
php跨域调用json的例子
2013/11/13 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
jquery实现鼠标滑过后动态图片提示效果实例
2015/08/10 Javascript
获取JS中网页各种高宽与位置的方法总结
2016/07/27 Javascript
JS实现重新加载当前页面或者父页面的几种方法
2016/11/30 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
jQuery实现动态生成年月日级联下拉列表示例
2019/05/11 jQuery
Vue根据条件添加click事件的方式
2019/11/09 Javascript
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
python模块之re正则表达式详解
2017/02/03 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
2017/08/18 Python
django formset实现数据表的批量操作的示例代码
2019/12/06 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
英国天然抗衰老护肤品品牌:Nakin Skin Care
2019/04/16 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
高中化学教学反思
2014/01/13 职场文书
护理毕业生自我鉴定
2014/02/11 职场文书
助学感谢信范文
2015/01/21 职场文书
英语教师个人工作总结
2015/02/09 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
总结一下关于在Java8中使用stream流踩过的一些坑
2021/06/24 Java/Android
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis