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构造icmp echo请求和实现网络探测器功能代码分享
Jan 10 Python
Python实现的一个找零钱的小程序代码分享
Aug 25 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
Python2.7.10以上pip更新及其他包的安装教程
Jun 12 Python
详解python异步编程之asyncio(百万并发)
Jul 07 Python
PyTorch之图像和Tensor填充的实例
Aug 18 Python
python 模拟创建seafile 目录操作示例
Sep 26 Python
Python如何自动获取目标网站最新通知
Jun 18 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
python单元测试框架pytest的使用示例
Oct 07 Python
python的变量和简单数字类型详解
Sep 15 Python
pandas中pd.groupby()的用法详解
Jun 16 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
一个可查询所有表的“通用”查询分页类
2006/10/09 PHP
PHP的一个基础知识 表单提交
2011/07/04 PHP
PHP开发者常犯的10个MySQL错误更正剖析
2012/01/30 PHP
PHP类中的魔术方法(Magic Method)简明总结
2014/07/08 PHP
PHP中$this和$that指针使用实例
2015/01/06 PHP
php基于GD库画五星红旗的方法
2015/02/24 PHP
Javascript中的数学函数集合
2007/05/08 Javascript
JS正则表达式大全(整理详细且实用)
2013/11/14 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
vue中的scope使用详解
2017/10/29 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
详解VUE-地区选择器(V-Distpicker)组件使用心得
2018/05/07 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
vue主动刷新页面及列表数据删除后的刷新实例
2018/09/16 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
python机器学习库xgboost的使用
2020/01/20 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
质量工程师岗位职责
2013/11/16 职场文书
应届毕业生个人求职自荐信
2014/01/06 职场文书
军训自我鉴定怎么写
2014/02/13 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
大学生评语大全
2014/04/18 职场文书
个人查摆剖析材料
2014/10/04 职场文书
青春雷锋观后感
2015/06/10 职场文书
签字仪式主持词
2015/07/03 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
Python 如何安装Selenium
2021/05/06 Python
Golang 字符串的常见操作
2022/04/19 Golang
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android