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安装官方whl包和tar.gz包的方法(推荐)
Jun 04 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
使用Python制作自动推送微信消息提醒的备忘录功能
Sep 06 Python
python中使用zip函数出现错误的原因
Sep 28 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
Apr 23 Python
关于pandas的离散化,面元划分详解
Nov 22 Python
python异常处理和日志处理方式
Dec 24 Python
Python Tkinter Entry和Text的添加与使用详解
Mar 04 Python
如何使用scrapy中的ItemLoader提取数据
Sep 30 Python
Python hashlib模块的使用示例
Oct 09 Python
Python Tkinter实例——模拟掷骰子
Oct 24 Python
python import 上级目录的导入
Nov 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
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
php学习之数据类型之间的转换介绍
2011/06/09 PHP
PHP连接sql server 2005环境配置及问题解决
2014/08/08 PHP
PHP动态页生成静态页的3种常用方法
2014/11/13 PHP
php获取twitter最新消息的方法
2015/04/14 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
LBS blog sql注射漏洞[All version]-官方已有补丁
2007/08/26 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
基于jquery的图片轮播 tab切换组件
2012/07/19 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
Python下使用Psyco模块优化运行速度
2015/04/05 Python
Python类的继承和多态代码详解
2017/12/27 Python
python实现机器学习之多元线性回归
2018/09/06 Python
使用Python做垃圾分类的原理及实例代码附源码
2019/07/02 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
解析Python3中的Import
2019/10/13 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
老生常谈CSS中的长度单位
2016/06/27 HTML / CSS
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
物流管理毕业生自荐信范文
2014/03/15 职场文书
女性健康知识讲座通知
2015/04/23 职场文书
美丽心灵观后感
2015/06/01 职场文书
大国崛起日本观后感
2015/06/02 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
生产设备维护保养制度
2015/08/06 职场文书
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python
Python 数据科学 Matplotlib图库详解
2021/07/07 Python
Go语言应该什么情况使用指针
2021/07/25 Golang
详解JAVA的控制语句
2021/11/11 Java/Android
mysql全面解析json/数组
2022/07/07 MySQL