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)

运行效果:
image

posted on 2024-07-01 17:46  零度的python武器库  阅读(22)  评论(0编辑  收藏  举报