欢迎访问宙启技术站
智能推送

Python中使用cv2putText()函数在图像上添加中文标题的简单方法

发布时间:2023-12-19 06:12:01

在Python中使用cv2库的putText()函数在图像上添加中文标题可以通过以下简单方法实现:

1. 导入所需的库和模块:

import cv2
import numpy as np
from PIL import ImageFont, ImageDraw, Image

2. 加载图像:

image = cv2.imread("image.jpg")

3. 定义标题和字体样式:

title = "中文标题"
font_path = "font.ttf"  # 字体文件路径
font_color = (255, 255, 255)  # 字体颜色,RGB格式
font_size = 48  # 字体大小

4. 将图像转换为PIL图像对象:

image_pil = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

5. 加载字体文件:

font = ImageFont.truetype(font_path, font_size)

6. 创建一个可绘制对象:

draw = ImageDraw.Draw(image_pil)

7. 获取标题的宽度和高度:

text_width, text_height = draw.textsize(title, font)

8. 计算标题的位置坐标:

x = int((image.shape[1] - text_width) / 2)  # 居中显示
y = 20  # 将标题放在图像顶部

9. 在图像上添加标题:

draw.text((x, y), title, font=font, fill=font_color)

10. 将PIL图像转换回OpenCV图像:

image_cv = cv2.cvtColor(np.array(image_pil), cv2.COLOR_RGB2BGR)

11. 显示或保存带有中文标题的图像:

cv2.imshow("Image with Title", image_cv)
cv2.waitKey(0)
cv2.imwrite("image_with_title.jpg", image_cv)

下面是完整的例子:

import cv2
import numpy as np
from PIL import ImageFont, ImageDraw, Image

# 加载图像
image = cv2.imread("image.jpg")

# 定义标题和字体样式
title = "中文标题"
font_path = "font.ttf"  # 字体文件路径
font_color = (255, 255, 255)  # 字体颜色,RGB格式
font_size = 48  # 字体大小

# 将图像转换为PIL图像对象
image_pil = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

# 加载字体文件
font = ImageFont.truetype(font_path, font_size)

# 创建一个可绘制对象
draw = ImageDraw.Draw(image_pil)

# 获取标题的宽度和高度
text_width, text_height = draw.textsize(title, font)

# 计算标题的位置坐标
x = int((image.shape[1] - text_width) / 2)
y = 20

# 在图像上添加标题
draw.text((x, y), title, font=font, fill=font_color)

# 将PIL图像转换回OpenCV图像
image_cv = cv2.cvtColor(np.array(image_pil), cv2.COLOR_RGB2BGR)

# 显示或保存带有中文标题的图像
cv2.imshow("Image with Title", image_cv)
cv2.waitKey(0)
cv2.imwrite("image_with_title.jpg", image_cv)

可以根据实际需求调整字体样式、位置坐标等参数,以实现更加个性化的效果。记得将"image.jpg"和"font.ttf"替换为实际的图像文件路径和字体文件路径。这样就可以在图像上添加中文标题了。