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中for语句简单遍历数据的方法
May 07 Python
python使用htmllib分析网页内容的方法
May 08 Python
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
Dec 25 Python
Python递归函数定义与用法示例
Jun 02 Python
pandas把dataframe转成Series,改变列中值的类型方法
Apr 10 Python
python实现连续图文识别
Dec 18 Python
Python读写文件模式和文件对象方法实例详解
Sep 17 Python
python list多级排序知识点总结
Oct 23 Python
Python concurrent.futures模块使用实例
Dec 24 Python
Python面向对象魔法方法和单例模块代码实例
Mar 25 Python
python实现udp聊天窗口
Mar 31 Python
python OpenCV学习笔记
Mar 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
php程序的国际化实现方法(利用gettext)
2011/08/14 PHP
用PHP读取超大文件的实例代码
2012/04/01 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
jQuery 使用手册(一)
2009/09/23 Javascript
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
JavaScript中的getTimezoneOffset()方法使用详解
2015/06/10 Javascript
在JavaScript应用中使用RequireJS来实现延迟加载
2015/07/01 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
vue自定义表单生成器form-create使用详解
2019/07/19 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
Python程序设计入门(4)模块和包
2014/06/16 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
python实现手机销售管理系统
2019/03/19 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
西班牙在线药店:DosFarma
2020/03/28 全球购物
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
董事长秘书岗位职责
2015/02/13 职场文书
歌剧魅影观后感
2015/06/05 职场文书
详解Python中的进程和线程
2021/06/23 Python
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android