📅  最后修改于: 2023-12-03 15:30:13.790000             🧑  作者: Mango
在图像处理过程中,我们有时候需要在图像上添加一些文字来说明,如图像的标题、注释等。cv2提供了添加文本的方法,下面介绍一下cv2添加文本的几种方式。
使用cv2.putText()可以在图像中添加文本。该函数的语法如下:
cv2.putText(img, text, org, fontFace, fontScale, color[, thickness[, lineType[, bottomLeftOrigin]]])
import cv2
import numpy as np
# 创建一个空的图像
img = np.zeros((512,512,3), np.uint8)
# 添加文本
cv2.putText(img, 'OpenCV', (10,500), cv2.FONT_HERSHEY_SIMPLEX, 4, (255,255,255), 2, cv2.LINE_AA)
# 显示图像
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
输出的图像如下:
使用PIL库中的ImageDraw.Draw.text()方法也可以添加文本。该方法的语法如下:
PIL.ImageDraw.Draw.text(xy, text, fill=None, font=None, anchor=None, spacing=0, align='left')
from PIL import Image, ImageDraw, ImageFont
# 创建一个空的图像
img = Image.new('RGB', (512,512), (0, 0, 0))
# 获取字体
font_path = 'arial.ttf'
font = ImageFont.truetype(font_path, 100)
# 添加文本
draw = ImageDraw.Draw(img)
draw.text((50, 50), 'OpenCV', (255, 255, 255), font=font)
# 显示图像
img.show()
输出的图像如下:
使用matplotlib库中的pyplot.text()方法也可以添加文本。该方法的语法如下:
matplotlib.pyplot.text(x, y, s, fontdict=None, **kwargs)
import matplotlib.pyplot as plt
# 创建一个空的图像
fig, ax = plt.subplots()
ax.imshow(np.zeros((512, 512, 3), dtype=np.uint8))
# 添加文本
ax.text(100, 100, 'OpenCV', fontsize=20, color='white')
# 显示图像
plt.show()
输出的图像如下:
哪种方法更好要根据实际需求和个人喜好来选择。