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的web框架中的Model的教程
Apr 29 Python
Python爬虫之正则表达式基本用法实例分析
Aug 08 Python
python requests更换代理适用于IP频率限制的方法
Aug 21 Python
使用Python进行中文繁简转换的实现代码
Oct 18 Python
Python greenlet和gevent使用代码示例解析
Apr 01 Python
如何解决安装python3.6.1失败
Jul 01 Python
Python并发爬虫常用实现方法解析
Nov 19 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
Jan 29 Python
使用Python下载抖音各大V视频的思路详解
Feb 06 Python
python编程学习使用管道Pipe编写优化代码
Nov 20 Python
python超详细实现完整学生成绩管理系统
Mar 17 Python
尝试使用Python爬取城市租房信息
Apr 12 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 咖啡文化
初品cakephp 入门基础
2012/02/16 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
php通过function_exists检测函数是否存在的方法
2015/03/18 PHP
Yii2单元测试用法示例
2016/11/12 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
js动态控制table的tr、td增加及删除的具体实现
2014/04/30 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
20行js代码实现的贪吃蛇小游戏
2017/06/20 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
2019/09/21 Javascript
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
python之wxPython应用实例
2014/09/28 Python
Python定时发送天气预报邮件代码实例
2019/09/09 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
Python 通过监听端口实现唯一脚本运行方式
2020/05/05 Python
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
英文自我鉴定
2013/12/10 职场文书
光荣入党自我鉴定
2014/01/22 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
运动会横幅标语
2014/06/17 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
JavaScript 对象创建的3种方法
2021/11/17 Javascript
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫