使用Python OpenCV自定义字体

作者:渣渣辉2024.02.16 13:53浏览量:9

简介:介绍如何在Python OpenCV中自定义字体,以便在图像上添加文字。

在使用Python OpenCV添加文字到图像时,我们通常使用cv2.putText()函数。这个函数允许我们指定字体、字体大小、颜色等参数,但字体必须是OpenCV支持的字体。然而,有时候我们可能希望使用自定义的字体样式,例如手写字体或特殊的艺术字体。在这种情况下,我们可以使用PIL(Python Imaging Library)来加载自定义字体,并将其与OpenCV结合使用。

下面是一个示例代码,演示如何使用Python OpenCV和PIL加载自定义字体,并在图像上添加文字:

  1. import cv2
  2. from PIL import ImageFont, ImageDraw, Image
  3. # 加载图像和自定义字体
  4. image = cv2.imread('image.jpg')
  5. font = ImageFont.truetype('handwriting.ttf', 30)
  6. # 将图像转换为PIL格式
  7. image_pil = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
  8. # 创建绘图对象
  9. draw = ImageDraw.Draw(image_pil)
  10. # 在图像上添加文字
  11. text = 'Hello, world!'
  12. draw.text((10, 10), text, font=font, fill=(255, 0, 0))
  13. # 将PIL图像转换回OpenCV格式
  14. image = cv2.cvtColor(np.array(image_pil), cv2.COLOR_RGB2BGR)
  15. # 显示图像
  16. cv2.imshow('Image', image)
  17. cv2.waitKey(0)
  18. 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加载自定义字体,并在图像上添加任意文本。这为我们提供了更大的灵活性,使我们能够创建更具个性化和艺术感的图像。

article bottom image

相关文章推荐

发表评论