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 获取 Linux 系统信息的代码
Jul 13 Python
python简单实现计算过期时间的方法
Jun 09 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
Python字符串大小写转换拼接删除空白
Sep 19 Python
详解Django CAS 解决方案
Oct 30 Python
10个Python面试常问的问题(小结)
Nov 20 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
Django的ListView超详细用法(含分页paginate)
May 21 Python
Python正则表达式如何匹配中文
May 27 Python
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
Nov 19 Python
详解Python中string模块除去Str还剩下什么
Nov 30 Python
用python对oracle进行简单性能测试
Dec 05 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
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
如何解决PHP无法实现多线程的问题
2015/09/25 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
javascript 同时在IE和FireFox获取KeyCode的代码
2010/02/07 Javascript
jquery win 7透明弹出层效果的简单代码
2013/08/06 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
Javascript基础_嵌入图像的简单实现
2016/06/14 Javascript
jquery过滤特殊字符',防sql注入的实现方法
2016/08/17 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
详解Django中间件的5种自定义方法
2018/07/26 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
Python随机函数库random的使用方法详解
2019/08/21 Python
python numpy库linspace相同间隔采样的实现
2020/02/25 Python
长辈证婚人证婚词
2014/01/09 职场文书
个人校本研修方案
2014/05/26 职场文书
2014最新房贷收入证明范本
2014/09/12 职场文书
党员思想汇报材料
2014/12/19 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
python办公自动化之excel的操作
2021/05/23 Python
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技
MySQL事务的隔离级别详情
2022/07/15 MySQL