使用Python OpenCV自定义字体
2024.02.16 13:53浏览量:9简介:介绍如何在Python OpenCV中自定义字体,以便在图像上添加文字。
在使用Python OpenCV添加文字到图像时,我们通常使用cv2.putText()函数。这个函数允许我们指定字体、字体大小、颜色等参数,但字体必须是OpenCV支持的字体。然而,有时候我们可能希望使用自定义的字体样式,例如手写字体或特殊的艺术字体。在这种情况下,我们可以使用PIL(Python Imaging Library)来加载自定义字体,并将其与OpenCV结合使用。
下面是一个示例代码,演示如何使用Python OpenCV和PIL加载自定义字体,并在图像上添加文字:
import cv2
from PIL import ImageFont, ImageDraw, Image
# 加载图像和自定义字体
image = cv2.imread('image.jpg')
font = ImageFont.truetype('handwriting.ttf', 30)
# 将图像转换为PIL格式
image_pil = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
# 创建绘图对象
draw = ImageDraw.Draw(image_pil)
# 在图像上添加文字
text = 'Hello, world!'
draw.text((10, 10), text, font=font, fill=(255, 0, 0))
# 将PIL图像转换回OpenCV格式
image = cv2.cvtColor(np.array(image_pil), cv2.COLOR_RGB2BGR)
# 显示图像
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上面的代码中,我们首先使用cv2.imread()函数加载图像。然后,我们使用PIL的ImageFont模块加载自定义字体文件(handwriting.ttf),并指定字体大小为30。接下来,我们将OpenCV图像转换为PIL格式,并创建一个绘图对象。然后,我们使用绘图对象的text()方法在图像上添加文字,并指定文字的位置、内容和字体。最后,我们将PIL图像转换回OpenCV格式,并使用cv2.imshow()函数显示图像。
请注意,在使用自定义字体时,需要确保字体文件与Python脚本位于同一目录下,或者提供字体的完整路径。此外,由于OpenCV和PIL使用不同的颜色空间,因此我们需要将颜色从BGR转换为RGB,然后再将PIL图像转换回BGR。
通过这种方式,我们可以使用Python OpenCV和PIL加载自定义字体,并在图像上添加任意文本。这为我们提供了更大的灵活性,使我们能够创建更具个性化和艺术感的图像。

发表评论
登录后可评论,请前往 登录 或 注册