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网络编程学习笔记(九):数据库客户端 DB-API
Jun 09 Python
Python采用raw_input读取输入值的方法
Aug 18 Python
独特的python循环语句
Nov 20 Python
python实现的二叉树定义与遍历算法实例
Jun 30 Python
python实现简易通讯录修改版
Mar 13 Python
Python numpy 点数组去重的实例
Apr 18 Python
对python3标准库httpclient的使用详解
Dec 18 Python
Python函数返回不定数量的值方法
Jan 22 Python
Python实现KNN(K-近邻)算法的示例代码
Mar 05 Python
使用python模拟命令行终端的示例
Aug 13 Python
python学生信息管理系统实现代码
Dec 17 Python
简单了解Java Netty Reactor三种线程模型
Apr 26 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
模仿OSO的论坛(四)
2006/10/09 PHP
PHP+JS无限级可伸缩菜单详解(简单易懂)
2007/01/02 PHP
php数组查找函数总结
2014/11/18 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
js获取单选按钮的数据
2006/11/27 Javascript
JavaScript 异步调用框架 (Part 1 - 问题 & 场景)
2009/08/03 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
九种js弹出对话框的方法总结
2013/03/12 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
2015/04/12 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
2018/01/26 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
在vue中获取微信支付code及code被占用问题的解决方法
2019/04/16 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
Scrapy基于selenium结合爬取淘宝的实例讲解
2018/06/13 Python
flask中过滤器的使用详解
2018/08/01 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
Python3 assert断言实现原理解析
2020/03/02 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
2020/12/27 Python
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
社区工作者先进事迹
2014/01/18 职场文书
公司端午节活动方案
2014/02/04 职场文书
企业军训感言
2014/02/08 职场文书
网络工程师专家职业发展路线
2014/02/14 职场文书
自主招生学校推荐信
2014/09/26 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python