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中PDB模块中的命令来调试Python代码的教程
Mar 30 Python
KMP算法精解及其Python版的代码示例
Jun 01 Python
举例讲解Python的lambda语句声明匿名函数的用法
Jul 01 Python
Python实现按中文排序的方法示例
Apr 25 Python
Django如何配置mysql数据库
May 04 Python
Python实现统计给定字符串中重复模式最高子串功能示例
May 16 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
May 16 Python
tensorflow之tf.record实现存浮点数数组
Feb 17 Python
Python+Kepler.gl实现时间轮播地图过程解析
Jul 20 Python
Python爬虫之Selenium警告框(弹窗)处理
Dec 04 Python
python 如何在list中找Topk的数值和索引
May 20 Python
python 如何做一个识别率百分百的OCR
May 29 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
session在PHP大型web应用中的使用
2011/06/25 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
JavaScript 字符编码规则
2009/05/04 Javascript
js写的评论分页(还不错)
2013/12/23 Javascript
JS中怎样判断undefined(比较不错的方法)
2014/03/27 Javascript
jQuery验证插件 Validate详解
2014/11/20 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
微信小程序 textarea 详解及简单使用方法
2016/12/05 Javascript
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
javascript json对象小技巧之键名作为变量用法分析
2019/11/11 Javascript
js实现3D旋转效果
2020/08/18 Javascript
openlayers实现图标拖动获取坐标
2020/09/25 Javascript
[01:55]2014DOTA2国际邀请赛 BBC正赛第一天总结
2014/07/10 DOTA
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
2018/05/16 Python
python广度优先搜索得到两点间最短路径
2019/01/17 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
django实现用户注册实例讲解
2019/10/30 Python
Python 求数组局部最大值的实例
2019/11/26 Python
python excel和yaml文件的读取封装
2021/01/12 Python
THE OUTNET美国官网:国际设计师品牌折扣网站
2017/03/07 全球购物
Godiva巧克力英国官网:比利时歌帝梵巧克力
2018/08/28 全球购物
zooplus波兰:在线宠物店
2019/07/21 全球购物
小学生自我评价范例
2013/09/24 职场文书
品质主管的岗位职责
2013/12/04 职场文书
合作意向书范本
2014/03/31 职场文书
升学宴主持词
2014/04/02 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
讲解Python实例练习逆序输出字符串
2022/05/06 Python
全网非常详细的pytest配置文件
2022/07/15 Python