OpenCV添加中文(五)
OpenCV添加文字的方法putText(…),添加英文是没有问题的,但如果你要添加中文就会出现“???”的乱码,需要特殊处理一下。
下文提供封装好的(代码)方法,供OpenCV添加中文使用。
往期目录
视频人脸检测——Dlib版(六)
OpenCV添加中文(五)
图片人脸检测——Dlib版(四)
视频人脸检测——OpenCV版(三)
图片人脸检测——OpenCV版(二)
OpenCV环境搭建(一)
更多更新,欢迎访问我的github:https://github.com/vipstone/faceai
效果预览
实现思路
使用PIL的图片绘制添加中文,可以指定字体文件,那么也就是说使用PIL可以实现中文的输出。
有思路之后,接下来的工作就简单了。
- OpenCV图片格式转换成PIL的图片格式;
- 使用PIL绘制文字;
- PIL图片格式转换成OpenCV的图片格式;
代码分解
OpenCV图片转换为PIL图片格式
img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
使用PIL绘制文字
draw = ImageDraw.Draw(img)
fontText = ImageFont.truetype("font/simsun.ttc", textSize, encoding="utf-8")
draw.text((left, top), "文字内容", textColor, font=fontText)
字体文件为:simsun.ttc,Windows可以在C:\Windows\Fonts下面查找。
PIL图片格式转换成OpenCV的图片格式
cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)
完整代码
封装好的完整方法
#coding=utf-8
#中文乱码处理import cv2
import numpy
from PIL import Image, ImageDraw, ImageFontdef 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)fontText = ImageFont.truetype("font/simsun.ttc", textSize, encoding="utf-8")draw.text((left, top), text, textColor, font=fontText)return cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)
代码调用
img = cv2ImgAddText(img, "大家好,我是星爷", 140, 60, (255, 255, 0), 20)
OpenCV添加中文(五)相关推荐
- opencv在图片上添加中文汉字(c++以及python)
文章目录 一. 汉字点阵字库实现原理 1. 汉字编码 1.1 区位码 1.2 机内码 2. 点阵字库结构 2.1 点阵字库存储 2.2 16*16点阵字库 3. 汉字点阵获取 3.1 利用区位码获取汉 ...
- JAVA Opencv在图片上添加中文
问题描述: 将图片进行均值.中值.高斯滤波,高斯边缘检测,并在图片上添加中文文字. 一.算法思想 首先经过opencv的一系列操作,例如高斯模糊.均值模糊等操作后.用Imgcodecs.imwrite ...
- 【OpenCV 例程200篇】23. 图像添加中文文字
[OpenCV 例程200篇]23. 图像添加中文文字 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 OpenCV ...
- docker onlyoffice7.1.1 word excel ppt在线编辑、在线预览_添加中文字体和中文字号_02
文章目录 一. onlyoffice添加中文字体 1. 下载字体 2. 上传字体 3. 删除原版自带字体 4. 字体复制 5. 安装字体 6. 重启容器 7. 清除缓存 8. 效果验证 二. only ...
- JAVACV实现视频帧添加中文水印
@[TOC] JAVACV实现视频帧添加中文水印 JAVACV实现视频帧添加中文水印 最近有个项目需要用到监控视频和采集数据融合显示的问题.通过各种尝试,最终确定可以使用javacv+nginx-te ...
- centos安装IBUS并添加98五笔
一般我们使用英文环境是没有办法使用中文的,这是因为我们没有设置在英文环境下的中文配置.下面我们在英文环境下配置中文输入法ibus使得我们可以输入中文. 首先,安装ibus #yum install ...
- 搭建onlyoffice实现多人在线编辑,以及添加中文字体,使用自定义插入的插件
onlyoffice安装教程 演示图 获取安装资源 可以直接在onlyoffice官网下载社区版(有限制最高20在线编辑),采用docker安装,直接docker pull 镜像.也可以直接私信我镜像 ...
- 如何为Kali Linux添加中文输入法?
为Kali Linux添加中文输入法Ibus. 前言:我们知道Kali Linux默认的系统语言是英语,默认的输入法中也只有英语,没有自带的中文输入法.对于英语不好的小伙伴,很是头疼.特别是没有中文输 ...
- 为CV::Mat添加中文
opencv自带的puttext函数,能够很方便地在Mat中添加英文字母.但是在实际项目中,甲方往往希望能够添加中文标识.解决的方法,总的来说有两种,一种是基于基础库的,比如我使用MFC,那么所有的显 ...
最新文章
- 用计算机演银河系,天文学家利用计算机模拟类银河星系
- 什么是接口幂等性?为什么会产生这个问题?如何保证接口幂等性?
- RDKit | 基于随机森林(RF)的机器学习模型预测hERG阻断剂活性
- ADO.NET—数据提供程序(连接类)
- 所有配置_一张图看懂iPhone12的所有配置!
- mySql 的常用命令
- 【Groovy】集合遍历 ( 集合中有集合元素时调用 flatten 函数拉平集合元素 | 代码示例 )
- android系统源代码添加新产品的支持
- 都快下班了,才来写日记
- KEIL编译生成bin文件,并输出内存使用情况
- Linux中sudo免密码
- 项目中比较常用的数据筛选场景
- 信息安全系统设计基础第一次实验报告
- 2018春江苏省计算机等级考试,2018年春季江苏省计算机等级考试报名通知
- robot framework 添加selenium2library显示红色
- 高一计算机教学总结怎么写,高一信息技术教学工作总结
- 图灵mysql_图灵学院JAVA架构师-VIP-MySQL底层实现之B+树
- 网红神盾七号重疾险再创新高,自带住院津贴,还能赔两次!
- 什么是Bugzilla?
- Matlab中Robotics toolbox的安装及使用