python 解决cv2绘制中文乱码问题


Posted in Python onDecember 23, 2019

因为使用cv2.putText() 只能显示英文字符,中文会出现乱码问题,

因此使用PIL在图片上绘制添加中文,可以指定字体文件。

大体思路:

OpenCV图片格式转换成PIL的图片格式;

使用PIL绘制文字;

PIL图片格式转换成OpenCV的图片格式;

具体实现:

# coding=utf-8
# cv2解决绘制中文乱码
 
import cv2
import numpy
from PIL import Image, ImageDraw, ImageFont

 
def cv2ImgAddText(img, text, left, top, textColor=(0, 255, 0), textSize=20):
  if (isinstance(img, numpy.ndarray)): # 判断是否OpenCV图片类型
    img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
  # 创建一个可以在给定图像上绘图的对象
  draw = ImageDraw.Draw(img)
  # 字体的格式
  fontStyle = ImageFont.truetype(
    "font/simsun.ttc", textSize, encoding="utf-8")
  # 绘制文本
  draw.text((left, top), text, textColor, font=fontStyle)
  # 转换回OpenCV格式
  return cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)


if __name__ == '__main__':
  img = cv2ImgAddText(cv2.imread('img1.jpg'), "大家好,我是片天边的云彩", 10, 65, (0, 0 , 139), 20)
  cv2.imshow('show', img)
  if cv2.waitKey(100000) & 0xFF == ord('q'):
    cv2.destroyAllWindows()

效果展示:

python 解决cv2绘制中文乱码问题

以上这篇python 解决cv2绘制中文乱码问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python专用方法与迭代机制实例分析
Sep 15 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
Apr 04 Python
Python数据结构之顺序表的实现代码示例
Nov 15 Python
python excel使用xlutils类库实现追加写功能的方法
May 02 Python
Python解析并读取PDF文件内容的方法
May 08 Python
使用pandas批量处理矢量化字符串的实例讲解
Jul 10 Python
解决Python print 输出文本显示 gbk 编码错误问题
Jul 13 Python
python 求1-100之间的奇数或者偶数之和的实例
Jun 11 Python
Python Pandas数据结构简单介绍
Jul 03 Python
在python中用url_for构造URL的方法
Jul 25 Python
Python基于pandas爬取网页表格数据
May 11 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
Oct 23 Python
python 实现查询Neo4j多节点的多层关系
Dec 23 #Python
python 多进程队列数据处理详解
Dec 23 #Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
Dec 23 #Python
python读取ini配置文件过程示范
Dec 23 #Python
python读取Kafka实例
Dec 23 #Python
Python3 使用selenium插件爬取苏宁商家联系电话
Dec 23 #Python
kafka监控获取指定topic的消息总量示例
Dec 23 #Python
You might like
咖啡的植物学知识
2021/03/03 咖啡文化
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
php一些错误处理的方法与技巧总结
2013/08/10 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
javascript闭包的理解和实例
2010/08/12 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
js 定位到某个锚点的方法
2016/11/19 Javascript
jquery实时获取时间的简单实例
2017/01/26 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
浅析JS抽象工厂模式
2017/12/14 Javascript
JS画布动态实现黑客帝国背景效果
2020/11/08 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
python中去空格函数的用法
2014/08/21 Python
python通过socket查询whois的方法
2015/07/18 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
python虚拟环境迁移方法
2019/01/03 Python
python七夕浪漫表白源码
2019/04/05 Python
Django框架序列化与反序列化操作详解
2019/11/01 Python
python简单的三元一次方程求解实例
2020/04/02 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
澳大利亚巧克力花束和礼品网站:Tastebuds
2019/03/15 全球购物
介绍一下Java中的static关键字
2012/05/12 面试题
行政管理人员精品工作推荐信
2013/11/04 职场文书
村委会主任先进事迹
2014/01/15 职场文书
挂职自我鉴定
2014/02/26 职场文书
如何写好建议书
2014/03/13 职场文书
初中学校对照检查材料
2014/08/19 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
2015年学校教务处工作总结
2015/05/11 职场文书
男方家长婚礼致辞
2015/07/27 职场文书
Tomcat执行startup.bat出现闪退的原因及解决办法
2022/04/20 Servers
python使用BeautifulSoup 解析HTML
2022/04/24 Python
python 判断字符串当中是否包含字符(str.contain)
2022/06/01 Python