📌  相关文章
📜  将文本放在图像上 python (1)

📅  最后修改于: 2023-12-03 15:25:20.227000             🧑  作者: Mango

在图像上添加文本 - Python

在许多应用程序中,我们需要将文本放在图像上,这通常用于添加标签或标题。在 Python 中,我们可以使用许多库来实现这个目标,例如 Pillow, OpenCV, Matplotlib 等等。在本文中,我们将讨论此任务的一些方法,并提供代码示例。

Pillow 库

Pillow 库是 Python Imaging Library (PIL) 的一个分支,是 Python 中使用最广泛的图像处理库之一。我们可以使用 Pillow 库的 ImageDraw 模块将文本添加到图像中。以下是一个简单的代码示例:

from PIL import Image, ImageDraw, ImageFont

# 打开图像文件
image = Image.open("image.jpg")

# 创建 ImageDraw 对象
draw = ImageDraw.Draw(image)

# 定义文本和字体样式
text = "Hello World!"
font = ImageFont.truetype("arial.ttf", 36)

# 将文本添加到图像中心
textwidth, textheight = draw.textsize(text, font)
x = (image.width - textwidth) / 2
y = (image.height - textheight) / 2
draw.text((x, y), text, font=font, fill=(255, 255, 255))

# 显示图像
image.show()

在上述代码中,我们打开了一个名为 image.jpg 的图像并创建了一个 ImageDraw 对象以便添加文本。我们定义了要添加的文本 和字体(在此为 Arial 字体,并将大小设置为 36px)。然后,我们计算出文本应该出现在图像的哪个位置,将其添加到该位置,并通过 Image 对象的 show() 方法显示该文件。

输出图像将在您的系统中打开窗口中显示。

OpenCV 库

OpenCV 是一个用于计算机视觉的强大开源库,它非常适合用于处理图像和视频。在 OpenCV 中,我们可以使用 putText() 函数将文本添加到图像中。以下是一个简单的代码示例:

import cv2

# 打开图像文件
image = cv2.imread("image.jpg") 

# 定义文本和字体样式
text = "Hello World!"
font = cv2.FONT_HERSHEY_SIMPLEX
org = (50, 50) # 在图像的左上角

# 将文本添加到图像中
cv2.putText(image, text, org, font, 1, (255, 255, 255), 2, cv2.LINE_AA)

# 显示图像
cv2.imshow("image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上述代码中,我们使用 OpenCV 的 imshow() 函数将图像文件加载到窗口中。我们定义了要添加的文本(在此为"Hello World!")和字体,以及要将文本添加到的图像的位置(在此为左上角,坐标为 (50,50 ))。然后,我们使用 putText() 函数将文本添加到图像中,并将包含文本的图像通过 imshow() 函数呈现到窗口中。

Matplotlib 库

Matplotlib 是一个用于对数据进行可视化的 Python 库,它可以创建绘图,直方图、散点图、等高线图等等。在 Matplotlib 中,我们可以使用 text() 函数将文本添加到图表中。以下是一个简单的代码示例:

import matplotlib.pyplot as plt 
import matplotlib.image as mpimg

# 打开图像文件
image = mpimg.imread("image.jpg")

# 显示图像
plt.imshow(image)

# 定义文本和字体样式
text = "Hello World!"
font = {'family': 'serif', 'color': 'white', 'size': 24}

# 将文本添加到图像中
plt.text(0, 0, text, fontdict=font)

# 隐藏坐标轴
plt.axis("off")

# 显示图像
plt.show()

在上述代码中,我们使用 Matplotlib 的 imshow() 函数和 mpimg.imread() 函数打开图像文件。我们定义了要添加的文本(在此为"Hello World!"),字体样式和在图像中出现的位置(在此为图像左上角,坐标为 (0,0))。然后,我们隐藏了图像坐标轴,并使用 show() 函数显示图像。

结论

在 Python 中,我们有许多不同的库和方法可以将文本放在图像上。在本文中,我们探讨了使用 Pillow、OpenCV 和 Matplotlib 库的方法,并提供了相应的代码示例。根据需要选择最合适的方法。