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发送邮件实例分享
Jul 28 Python
简述Python2与Python3的不同点
Jan 21 Python
Python科学计算包numpy用法实例详解
Feb 08 Python
Django中的CBV和FBV示例介绍
Feb 25 Python
《与孩子一起学编程》python自测题
May 27 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
Python简易计算器制作方法代码详解
Oct 31 Python
Python-numpy实现灰度图像的分块和合并方式
Jan 09 Python
Python qrcode 生成一个二维码的实例详解
Feb 12 Python
python,Java,JavaScript实现indexOf
Sep 09 Python
python glom模块的使用简介
Apr 13 Python
python非标准时间的转换
Jul 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 动态多文件上传
2009/01/18 PHP
php session 错误
2009/05/21 PHP
PHP生成自适应大小的缩略图类及使用方法分享
2014/05/06 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
js获取元素在浏览器中的绝对位置
2010/07/24 Javascript
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
Array 重排序方法和操作方法的简单实例
2014/01/24 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
jQuery实现简单弹幕制作
2020/12/10 jQuery
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python测试人员需要掌握的知识
2018/02/08 Python
Django 实现购物车功能的示例代码
2018/10/08 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
Python闭包和装饰器用法实例详解
2019/05/22 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
药品促销活动方案
2014/02/14 职场文书
幼儿园庆六一活动方案
2014/03/06 职场文书
打造高效课堂实施方案
2014/03/22 职场文书
2014年党员教师自我剖析材料
2014/09/30 职场文书
教师自查自纠材料
2014/10/14 职场文书
见习报告格式范文
2014/11/08 职场文书
2014年外贸业务员工作总结
2014/12/11 职场文书
2016元旦晚会主持人开场白和结束语
2015/12/03 职场文书
Python几种酷炫的进度条的方式
2022/04/11 Python