python 解决cv2绘制中文乱码问题

因为使用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绘制中文乱码问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2019-12-22

首先,先确认一下你的字段值是不是乱码,如果是,按照以下方法: 我的字段值是来自于一个geojson字符串,我在对它解析时做了如下处理: properties = fea.get("properties") pro_json=json.dumps(properties) pro_json.replace('u\'','\'')#将unicode编码转化为中文先处理一下 pro_json=pro_json.decode("unicode-escape") #将unico

绘制图形时使用了中文标题,会出现乱码 原因是matplotlib.pyplot在显示时无法找到合适的字体. 先把需要的字体(在系统盘C盘的windows下的fonts目录内)添加到FontProperties中. 具体解决方法如下: import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties font_set = FontProperties(fname=r"c:\windows\fonts

使用HTMLTestRunner输出的测试报告中,标题和错误说明的中文乱码. 环境: python v3.6 HTMLTestRunner v0.8.2 定位问题 刚开始以为是python3对HTMLTestRunner文件兼容的问题.网上搜了一些解决办法基本都是说python2的,对比看了一下,我这边兼容性是可以的. 接下来,查看HTMLTestRunner文件输出,倒着去找,最后问题定位到: self.stream.write(output) 这一行,print(output)是正常输出中文

如下所示: #-*- coding:utf-8 -*- import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties #k与客户端处理时间的值之间的关系 x=range(2,51,2) y1=[5.393128497232703, 9.57638681757734, 13.828038570286598, 17.88060602988053, 22.943

今天在用python3+ImageFont输出中文时,结果显示乱码 # coding:utf-8 from PIL import Image, ImageDraw, ImageFont image= Image.new('RGB', (559, 320),(255,255,255)) draw = ImageDraw.Draw(image) # draw.text() font = ImageFont.truetype("arial", 40, encoding="unic&

1. 场景描述 linux服务器下安装了Anaconda3,执行Pyhton的K-means算法,结果出现如下图的中文字符乱码.上次已经解决了,忘记记录解决流程了,这次配置了一台新的服务器,又出现,默认不配置的话matplotlib画图就会乱码,这次把解决过程记录下,希望能帮助自己和有需要的朋友. 2. 解决方案 网上有好几个解决方案,只介绍自己实战可行的. 1. 查看matplotlib字体位置 python import matplotlib print(matplotlib.matplot

解决方式一: import matplotlib #1. 获取matplotlibrc文件所在路径 matplotlib.matplotlib_fname() #Out[3]: u'd:\\Anaconda2\\lib\\site-packages\\matplotlib\\mpl-data\\matplotlibrc' #修改此配置文件,一劳永逸,不用在每个脚本中写代码解决中文显示问题 修改 'font.sans-serif' 的配置,在最前面加你本地电脑已有的字体family. 参看方式二.

如题,解决Python中用PyQt时中文乱码问题的解决方法: 在中文字符串前面加上u,如u'你好,世界',其他网上的方法没有多去探究,Python的版本也会影响解决方法,故这里只推荐这种. (有人说用toLocal8bit函数也可以,我试了下,貌似不行)请看例子: #coding=utf-8 from PyQt4 import QtGui, QtCore s = QtCore.QString(u'你好(hello)世界(world)') t = s.toLocal8Bit() u = unico

一.搭建 python 环境 在 VSC 中点击 F1 键,弹出控制台,输入 ext install 界面左侧弹出扩展窗格,输入python,确认,开始搜索 下载发布者为Don Jayamanne 的 Python 插件 (下载过程中不要切换窗口,不要做其他任何操作,否则会中断下载,下载时间略长,耐心等待) 安装完毕 "文件"-"首选项"-"用户设置",打开用户配置文件settings.json,再其中大括号内输入计算机中 python.exe

Python是个好工具,但是也有其固有的一些缺点.最近在学习网页爬虫时就遇到了这样一种问题,中文网站爬取下来的内容往往中文显示乱码.看过我之前博客的同学可能知道,之前爬取的一个学校网页就出现了这个问题,但是当时并没有解决,这着实成了我一个心病.这不,刚刚一解决就将这个方法公布与众,大家一同分享. 首先,我说一下Python中文乱码的原因,Python中文乱码是由于Python在解析网页时默认用Unicode去解析,而大多数网站是utf-8格式的,并且解析出来之后,python竟然再以Unicod

本文实例讲述了wxPython窗口中文乱码解决方法,分享给大家供大家参考.具体方法如下: 文件保存为 utf-8 文件开头添加 # -*- coding: utf-8 -*- 在有中文字符串前加u或U,例如:u"我的网站:http://www.jb51.net" 示例如下: 复制代码 代码如下: # -*- coding: utf-8 -*- import wx class App(wx.App):       def OnInit(self):         frame = wx.

前阵子想爬点东西,结果一直提示错误UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position,在网上一查,发现是 Windows 的控制台的问题.控制台的编码是 GBK,Python 是 UTF-8,造成了冲突.下面给出三种解决方法. 第一种方法:直接替换出错的内容 import requests url = 'https://blog.csdn.net/jianhong1990/article/detail

今天在做编程题的时候发现Python的print输出默认换行输出,并且输出后有空格. 题目要求输出 122 而我的输出是: 1 2 2 于是我百度查到取消print自动换行的方法:就是在print的值后边加逗号,例如print x, 果然,不换行了,但是输出结果仍然不对,要求输出为122,而我的输出为1 2 2 于是我继续百度查方法,发现Python2和Python3的print方法是不同的.Python2的print不用加()可以直接输出,例如print 'hello world', Pyth

英文版: File -> settings -> Editor -> File Encodings 首先打开设置:文件 -> 默认设置 -> 文件编码 (我这里是中文版的) 修改成如图配置,再按应用即可 py文件头加上 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 在代码里面(我的是socket里的应用代码): str = str.encode() // 这种方式编码 client_recv = client.recv(1024) prin

写一个简单的例子程序: # coding:utf-8 import flask from flask import json, jsonify, request, render_template app = flask.Flask(__name__) @app.route("/api", methods=["GET", "POST"]) def api(): if request.method == 'GET': return jsonify({

一.问题描述 使用zTree的异步刷新父级菜单时,服务器返回中文乱码,但项目中使用了SpringMvc,已经对中文乱码处理,为什么还会出现呢? 此处为的异步请求的配置: Java代码 async: { enable: true, url: basePath + '/sysMenu/listSysMenu', autoParam: ["id=parentId"] } SpringMvc中文字符处理: Java代码

一句print("ni hao"),很久看不见,怎么让python print能立刻输出呢. 因为python默认是写入stdout缓冲的,使用-u参数启动python,就会立刻输出了. python3 -u driver.py 以上这篇python print输出延时,让其立刻输出的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

根本原因: python定义函数时,一般都会有指定返回值,如果没有显式指定返回值,那么python就会默认返回值为None 我们输入的代码如下: def test(): print('aaa') print(test()) 相当于执行了: def test(): print('aaa') return None print(test()) 如果不想要有None,那么就要添加返回值 def test(): return 'ccc' print(test()) 补充知识:python中如何实现pri

python idea控制台中文乱码_python 解决cv2绘制中文乱码问题相关推荐

  1. python 中文乱码_python 解决cv2绘制中文乱码问题

    前几天在公司敲出了个BUG,硬是让我头疼了一阵子,没想到BUG的起因竟是一点小小的细节问题,唉!被折磨的够呛,又让我想起那时候遇到的python cv2绘制中文乱码,差不多也是同样的感受. 为此今天我 ...

  2. linux vlc乱码,一劳永逸解决VLC播放中文字幕乱码问题

    VLC对于Mac/Ubuntu用户来说算得上是必备软件.其相当于PC机上的"暴风影音",但Mac/Ubuntu的新手使用VLC播放avi时都会碰 到字幕乱码的问题.avi字幕的格式 ...

  3. ASP+Access中文乱码的解决方法,ASP中文乱码,asp乱码问题

    确保编码声明正确(例:时尚淘女之家http://www.tao36524.com) 如果您使用的是国外空间,默认是西欧而不是GB2312,你可以通过强制为GD2312的方式! 在数据提取页面的第一行代 ...

  4. Mp3tag中文设置方法(解决mp3歌曲名乱码,出现问号的问题)

    解决Mp3tag中文设置方法(解决mp3歌曲名乱码,出现??问题) Mp3tag(mp3标签修改器)软件是MP3文件ID3-Tag信息修改器.所谓ID3-Tag 信息,就是在MP3文件中加入曲名.演唱 ...

  5. python安装文件乱码_Python程序在Windows终端乱码解决方法

    解决方法之一: 在程序中头声明 #!C:\Python27\python # -*- coding: utf-8 -*- ----- 在每一行输出的字符串,模仿下面: print u"你好& ...

  6. mysql5.7乱码_解决Mysql5.7中文乱码的问题

    在使用mysql5.7时,会发现通过web端向数据库中写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢?此处不对MySQL的数据编码过程和原理进行讲解 ...

  7. php运行显示中文乱码,如何解决PHP界面显示中文乱码的问题

    如何解决PHP界面显示中文乱码的问题 发布时间:2020-07-14 15:19:00 来源:亿速云 阅读:74 作者:Leah 这期内容当中小编将会给大家带来有关如何解决PHP界面显示中文乱码的问题 ...

  8. php android 乱码,如何解决android php 中文乱码问题

    android php中文乱码的解决办法:1.填写对应的格式,代码如"httpResponse.getEntity()),HTTP.UTF_8":2.使用流的形式,代码如" ...

  9. php curl 图片 乱码,如何解决curl php中文乱码问题

    curl php中文乱码的解决办法:首先打开相应的PHP代码文件:然后使用"mb_convert_encoding($res, 'UTF-8', 'UTF-8,GBK,GB2312,BIG5 ...

最新文章

  1. CPSR和SPSR(转)
  2. SQL Server 2017 AlwaysOn on Linux 配置和维护(18)
  3. Theano深度学习入门
  4. 【iCore1S 双核心板_ARM】例程十七:FSMC实验——读写FPGA
  5. id jquery选择器 开头_HTML的id选择器类选择器
  6. 分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例
  7. 怎样快速学会python_python入门如何更快的学习
  8. 相等变为1 编号_量子力学中的线性代数(Qiskit 学习笔记之1)
  9. 少儿编程scratch(源码)
  10. 网页精美动效/动画制作 按钮鼠标悬浮动效基础 01《炫彩网页 iVX 无代码动效/动画制作》
  11. 利用vlmcs客户端区分KMS服务器是KMS模拟器还是正版微软KMS服务器
  12. u-boot编译构成之 MLO(1)
  13. [转] 好玩的电子琴(附琴谱)
  14. 图文并茂:推荐算法架构——粗排
  15. 设备安全:防火墙总结(1)
  16. 【Dive into Deep Learning / 动手学深度学习】第二章 - 第一节:数据操作
  17. 浏览器调试工具网页性能分析中的使用
  18. win10怎么连上win7服务器未响应,win10dns服务器未响应怎么办?
  19. 关于机器学习、符号学习、统计学习、流形学习、深度学习关系的浅见:
  20. python你已经是个成熟的软件了_你们已经是成熟的软件了表情包下载

热门文章

  1. Tween 若干年后我尽然还要学数学 曲线到底是什么鬼啊
  2. 最常见的HTTP错误
  3. [转]C#中得到程序当前工作目录和执行目录的一些方法
  4. max与top的效率
  5. 选文可以学计算机专业,是不是文理科都可以报计算机专业?
  6. OPPO尝鲜android版本更新,安卓11迎来四大贴心升级,OPPO小米率先尝鲜
  7. 设置mysql整形_mysql 整型字段设计
  8. 爬数据html解析,jsoup网络爬取数据HTML解析
  9. mysql 5.6 5.7 并存_centos同时运行mysql5.6和mysql5.7
  10. linux 空格函数,linux c语言的split函数和空格处理函数