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目录操作之python遍历文件夹后将结果存储为xml
Jan 27 Python
详解Python发送邮件实例
Jan 10 Python
Python如何读取MySQL数据库表数据
Mar 11 Python
Python基于time模块求程序运行时间的方法
Sep 18 Python
python+opencv实现动态物体追踪
Jan 09 Python
Python 删除整个文本中的空格,并实现按行显示
Jul 24 Python
使用Python进行体育竞技分析(预测球队成绩)
May 16 Python
Python 函数list&read&seek详解
Aug 28 Python
Python代理IP爬虫的新手使用教程
Sep 05 Python
Pandas-Cookbook 时间戳处理方式
Dec 07 Python
python的数学算法函数及公式用法
Nov 18 Python
利用Python实时获取steam特惠游戏数据
Jun 25 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来自动调用不同服务器上的flash
2006/10/09 PHP
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
PHP中strtotime函数使用方法分享
2012/01/10 PHP
PHP匿名函数和use子句用法实例
2016/03/16 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
微信推送功能实现方式图文详解
2019/07/12 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
js获取提交的字符串的字节数
2009/02/09 Javascript
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
JavaScript调用ajax获取文本文件内容实现代码
2014/03/28 Javascript
jQuery动态加载css文件实现方法
2016/06/15 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
Node.js操作MongoDB数据库实例分析
2020/01/19 Javascript
利用Pandas 创建空的DataFrame方法
2018/04/08 Python
python使用turtle绘制分形树
2018/06/22 Python
详解Django中间件的5种自定义方法
2018/07/26 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
python中数据库like模糊查询方式
2020/03/02 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
2014年会演讲稿范文
2014/01/06 职场文书
清洁工岗位职责
2014/01/29 职场文书
高校教师岗位职责
2014/03/18 职场文书
党支部公开承诺践诺书
2014/03/28 职场文书
《最佳路径》教学反思
2014/04/13 职场文书
给校长的建议书200字
2014/05/16 职场文书
2015年党员公开承诺书范文
2015/01/22 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
mysql的Buffer Pool存储及原理
2022/04/02 MySQL
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python
新的CSS 伪类函数 :is() 和 :where()示例详解
2022/08/05 HTML / CSS