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中第三方库Requests库的高级用法详解
Mar 12 Python
Python如何通过subprocess调用adb命令详解
Aug 27 Python
tensorflow实现图像的裁剪和填充方法
Jul 27 Python
Python 串口读写的实现方法
Jun 12 Python
python time.sleep()是睡眠线程还是进程
Jul 09 Python
Python3常用内置方法代码实例
Nov 18 Python
python 检查数据中是否有缺失值,删除缺失值的方式
Dec 02 Python
python实现读取类别频数数据画水平条形图案例
Apr 24 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
Aug 26 Python
python批量生成身份证号到Excel的两种方法实例
Jan 14 Python
python 如何用terminal输入参数
May 25 Python
python绘制云雨图raincloud plot
Aug 05 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
关于PHP5 Session生命周期介绍
2010/03/02 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
浅析PHP的ASCII码转换类
2013/07/05 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
jQuery实用技巧必备(下)
2015/11/03 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
JS实现表单中点击小眼睛显示隐藏密码框中的密码
2020/04/13 Javascript
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
使用scrapy实现爬网站例子和实现网络爬虫(蜘蛛)的步骤
2014/01/23 Python
Python 列表理解及使用方法
2017/10/27 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
python实战教程之自动扫雷
2018/07/13 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
浅谈Python小波分析库Pywavelets的一点使用心得
2019/07/09 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
党员活动日总结
2014/05/05 职场文书
自我查摆剖析材料
2014/10/11 职场文书
法学专业求职信范文
2015/03/19 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python
使用python如何删除同一文件夹下相似的图片
2021/05/07 Python
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript