Python武器库 - 科研中常用的python图像操作 - 图像添加文字
应用场景:在科研中,有时需要在生成结果中标注文字作为说明,
或者添加文字在一行图片的开头作为标题
(这个效果通常需要 配合在一行图片的开头添加一张空(纯黑)图片,在该图片中添加文字作为标题,
使用python-opencv来创建一张纯色图片的操作,详情见我的另一篇随笔
https://www.cnblogs.com/lingdu98/p/18275825
)
如果只是一两次操作,那可能用ppt或者一些图像编辑软件就可以实现,
但如果是对于大量数据,就需要代码来自动实现批量操作,
比如有时候需要将模型的所有生成结果有顺序地组织起来,并添加文字说明
(当然,这个过程中通常也需要图像拼接的操作,详情见我的另一篇随笔
https://www.cnblogs.com/lingdu98/p/18250444)
实现在图像中添加文字的功能,主要用到的函数为cv2.putText()
opencv官方文档说明:https://docs.opencv.org/4.x/d6/d6e/group__imgproc__draw.html#ga5126f47f883d730f633d74f07456c576
函数说明:
cv2.putText(image, text, org, font, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
参数:
image: 待绘制文本的图像
text: 要绘制的文本字符串
org: 图像中文本字符串左下角的坐标。坐标表示为两个值的元组,即(X坐标值,Y坐标值)
font: 表示字体类型,包括FONT_HERSHEY_SIMPLEX、FONT_HERSHEY_PLAIN等等
fontScale: 字体尺寸缩放因子,用以乘以字体特定的基本大小
color: 要绘制的文本字符串的颜色。对于BGR,传递一个元组。例如(255, 0, 0) 表示蓝色
thickness: 字体线条的粗细,单位为px
返回值:
返回添加文字后的图片
代码示例:
import numpy as np
import cv2
img_black = np.zeros((256,256,3), np.uint8)
cv2.imshow('lingdu show image1', img_black)
cv2.putText(img_black, 'Control', (20,70), cv2.FONT_HERSHEY_SIMPLEX, fontScale=1, color=(255,255,255), thickness=3)
cv2.imshow('lingdu show image2', img_black)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey(1)
运行效果: