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中元类用法实例
Oct 10 Python
Python利用itchat对微信中好友数据实现简单分析的方法
Nov 21 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
Jan 02 Python
详解Python之unittest单元测试代码
Jan 24 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
win8下python3.4安装和环境配置图文教程
Jul 31 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 Python
python实现12306登录并保存cookie的方法示例
Dec 17 Python
python语言中有算法吗
Jun 16 Python
Python实现文件压缩和解压的示例代码
Aug 12 Python
python调用win32接口进行截图的示例
Nov 11 Python
python 检测nginx服务邮件报警的脚本
Dec 31 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
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
javascript中的window.location.search方法简介
2013/09/02 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
javascript如何写热点图
2015/12/08 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
2016/12/26 Javascript
Bootstrap模态框(Modal)实现过渡效果
2017/03/17 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
Python 字符串中的字符倒转
2008/09/06 Python
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
用python实现简单EXCEL数据统计的实例
2017/01/24 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
Python中logging日志库实例详解
2020/02/19 Python
pytorch数据预处理错误的解决
2020/02/20 Python
python中的垃圾回收(GC)机制
2020/09/21 Python
python基于selenium爬取斗鱼弹幕
2021/02/20 Python
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
法人委托书范本
2014/04/04 职场文书
音乐之声音乐广播稿
2014/09/10 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
小学体育课教学反思
2016/02/16 职场文书
《实心球》教学反思
2016/02/23 职场文书
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server