点击上方“算法猿的成长“,关注公众号,选择加“星标“或“置顶”
总第 141 篇文章,本文大约 1500 字,阅读大约需要 5 分钟
前言
给图片添加文本信息是非常常见的需求,通常需要添加的文本信息分为中文文字或者是非中文的文字,比如数字和英文,对这两类的实现方法也有所不同,非中文的文本信息可以直接用 opencv
实现,而中文文本需要使用 PIL
,因为 opencv
不支持中文。
所以接下来就分别介绍这两种实现方法。
opencv 添加文本信息
opencv
添加文本信息的函数是 putText
,实现代码如下所示,这个函数的参数主要是:
img:原图
text:需要添加的文字
position:文字起始的位置,
tuple
元组类型font: 字体类型,这里用了默认字体,实际上还有其他几种字体,具体可以查看官方文档:https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html#void%20putText(Mat&%20img,%20const%20string&%20text,%20Point%20org,%20int%20fontFace,%20double%20fontScale,%20Scalar%20color,%20int%20thickness,%20int%20lineType,%20bool%20bottomLeftOrigin
font_scale: 字体大小
font_color:字体的颜色
thickness: 线的粗细
import cv2
%matplotlib inline
import matplotlib.pyplot as plt# opencv
img = cv2.imread('plane.jpg')
# 添加的文字
text = 'plane'
# 文字起始的位置
position = (600, 100)
# 字体大小
font_scale = 3
# 字体颜色
font_color = (0, 0, 255)
# 默认字体
font=cv2.FONT_HERSHEY_SIMPLEX
# 线的粗细
thickness = 3
cv2.putText(img, text, position, font, font_scale, font_color, thickness, cv2.LINE_AA)
plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
结果如下所示:
PIL 添加中文文本信息
如果是中文文字,那么就必须用 PIL 来实现了,同样先上实现的代码:
from PIL import Image, ImageDraw, ImageFont
%matplotlib inline
import matplotlib.pyplot as plt# PIL 绘制中文
img = Image.open('plane.jpg')
# 自定义字体
font = ImageFont.truetype("/System/Library/Fonts/PingFang.ttc", 60)
draw = ImageDraw.Draw(img)
# 文字起始坐标
position = (600, 100)
# 文字
text = '纸飞机'
# 文字颜色
color = (0, 0, 255)
draw.text(position, text, font=font, fill=color)
plt.imshow(img)
结果如下所示:
基本的参数其实和 opencv
的函数一样,同样需要指定文字、字体、起始位置、字体大小和颜色,其中字体可以是自定义的字体,在官方文档中给出了不同系统自带字体存放的位置:
windows:在
c:\Windows\Fonts\
mac:
/Library/Fonts/
,/System/Library/Fonts/
或者是~/Library/Fonts/
linux: 在
/usr/share/fonts/
https://pillow.readthedocs.io/en/stable/reference/ImageFont.html#PIL.ImageFont.truetype
精选AI文章
1. 2020年计算机视觉学习指南
2. 是选择Keras还是PyTorch开始你的深度学习之旅呢?
3. 编写高效的PyTorch代码技巧(上)
4. 编写高效的PyTorch代码技巧(下)
5. 深度学习算法简要综述(上)
6. 深度学习算法简要综述(下)
7. 10个实用的机器学习建议
8. 实战|手把手教你训练一个基于Keras的多标签图像分类器
精选python文章
1. python数据模型
2. python版代码整洁之道
3. 快速入门 Jupyter notebook
4. Jupyter 进阶教程
5. 10个高效的pandas技巧
精选教程资源文章
1. [资源分享] TensorFlow 官方中文版教程来了
2. [资源]推荐一些Python书籍和教程,入门和进阶的都有!
3. [Github项目推荐] 推荐三个助你更好利用Github的工具
4. Github上的各大高校资料以及国外公开课视频
5. GitHub上有哪些比较好的计算机视觉/机器视觉的项目?
欢迎关注我的微信公众号--算法猿的成长,或者扫描下方的二维码,大家一起交流,学习和进步!
如果觉得不错,在看、转发就是对小编的一个支持!