博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV添加中文(五)
阅读量:6176 次
发布时间:2019-06-21

本文共 1333 字,大约阅读时间需要 4 分钟。

OpenCV添加文字的方法putText(...),添加英文是没有问题的,但如果你要添加中文就会出现“???”的乱码,需要特殊处理一下。

下文提供封装好的(代码)方法,供OpenCV添加中文使用。

往期目录

更多更新,欢迎访问我的github:

效果预览

img_69b0f0ad80af94cc7d73430bcc0e0120.png

实现思路

使用PIL的图片绘制添加中文,可以指定字体文件,那么也就是说使用PIL可以实现中文的输出。

有思路之后,接下来的工作就简单了。

  1. OpenCV图片格式转换成PIL的图片格式;
  2. 使用PIL绘制文字;
  3. 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 cv2import numpyfrom 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)
img_fa0be433d68c8212b2b0b3b1a564ccb1.png
如果本文对你有所帮助,请打赏——1元就足够感动我:)
支付宝打赏
微信打赏
联系邮箱:intdb@qq.com
我的GitHub:
关注公众号:
img_9bde0f31ac4a0eca10b1bd7414b78faf.png

作者:
出处:
本文版权归作者和博客园共有,欢迎转载,请标明出处。

你可能感兴趣的文章
Guice AOP
查看>>
懒汉式单例
查看>>
java递归组装树形结构
查看>>
手把手教你自己写一个模糊搜索的下拉框
查看>>
.Net文档图像处理工具包GdPicture.NET发布v14.0.30,改进PDF/OCR生成速度
查看>>
NetBSD 8.1 RC1 发布
查看>>
12个必备的JavaScript装逼技巧
查看>>
域名备案图文教程
查看>>
iOS ScrollView上的view添加悬停效果
查看>>
Spring与MQ整合简单例子
查看>>
Apache-shiro学习
查看>>
React-Redux源码分析
查看>>
页面传递参数问题
查看>>
PHP FPM源代码反刍品味之五:信号signal处理
查看>>
5G网速真的有理论上那么高吗?
查看>>
Set添加自定义方法对象如何保证唯一性
查看>>
站在巨人肩膀上的牛顿:Kubernetes和SAP Kyma
查看>>
技术工坊|浅谈区块链的Layer2扩展(北京)
查看>>
SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
查看>>
Apache和PHP结合 及 Apache默认虚拟主机
查看>>