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线程的两种编程方式
Apr 14 Python
Python把csv数据写入list和字典类型的变量脚本方法
Jun 15 Python
python常用函数与用法示例
Jul 02 Python
python wav模块获取采样率 采样点声道量化位数(实例代码)
Jan 22 Python
Python Pandas 对列/行进行选择,增加,删除操作
May 17 Python
如何理解python中数字列表
May 29 Python
Python 解决相对路径问题:"No such file or directory"
Jun 05 Python
python zip()函数的使用示例
Sep 23 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 Python
python基础学习之生成器与文件系统知识总结
May 25 Python
Python内置数据类型中的集合详解
Mar 18 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
如何设置mysql允许外网访问
2013/06/04 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
javascript 面向对象编程基础:封装
2009/08/21 Javascript
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
Javascript 字符串模板的简单实现
2016/02/13 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
JS实现字符串转驼峰格式的方法
2016/12/16 Javascript
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
使用vue2.0创建的项目的步骤方法
2018/09/25 Javascript
微信小程序request请求封装,验签代码实例
2019/12/04 Javascript
在antd4.0中Form使用initialValue操作
2020/11/02 Javascript
[01:00]选手抵达华西村 整装待发备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
研究Python的ORM框架中的SQLAlchemy库的映射关系
2015/04/25 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
使用python实现飞机大战游戏
2020/03/23 Python
TensorFLow 数学运算的示例代码
2020/04/21 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
J2EE相关知识面试题
2013/08/26 面试题
机械个人求职信范文
2014/01/24 职场文书
旅游管理专业大学生职业规划书
2014/02/27 职场文书
专科生就业求职信
2014/06/22 职场文书
上班迟到检讨书
2014/09/15 职场文书
公司表扬信格式
2015/05/04 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书