在Python中使用cv2putText()函数给图像添加中文标题的步骤
发布时间:2023-12-19 06:08:56
在Python中给图像添加中文标题,可以使用OpenCV库中的cv2.putText()函数。以下是具体的步骤:
1. 导入相关库:
import numpy as np import cv2 from PIL import ImageFont, ImageDraw, Image
2. 加载图像:
image = cv2.imread('path_to_image.jpg')
3. 设置标题的文本、字体、字号和颜色:
text = '中文标题'
font = ImageFont.truetype('path_to_font.ttf', size=60) # 字体文件可以从网上下载
color = (0, 255, 0) # BGR格式的颜色
4. 转换图像的颜色空间:
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
5. 将图像转换为PIL Image对象:
pil_image = Image.fromarray(image)
6. 创建一个ImageDraw对象并设置文本相关属性:
draw = ImageDraw.Draw(pil_image) text_width, text_height = draw.textsize(text, font=font) x = (image.shape[1] - text_width) // 2 y = 20
7. 在图像上绘制文本:
draw.text((x, y), text, font=font, fill=color)
8. 将PIL Image对象转换回OpenCV图像格式:
image = cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR)
9. 显示或保存添加标题后的图像:
cv2.imshow('Image with Title', image)
cv2.waitKey(0)
cv2.imwrite('image_with_title.jpg', image)
这是一个完整的示例代码,你可以根据实际情况进行调整:
import numpy as np
import cv2
from PIL import ImageFont, ImageDraw, Image
# 加载图像
image = cv2.imread('path_to_image.jpg')
# 设置标题的文本、字体、字号和颜色
text = '中文标题'
font = ImageFont.truetype('path_to_font.ttf', size=60)
color = (0, 255, 0)
# 转换图像的颜色空间
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# 将图像转换为PIL Image对象
pil_image = Image.fromarray(image)
# 创建一个ImageDraw对象并设置文本相关属性
draw = ImageDraw.Draw(pil_image)
text_width, text_height = draw.textsize(text, font=font)
x = (image.shape[1] - text_width) // 2
y = 20
# 在图像上绘制文本
draw.text((x, y), text, font=font, fill=color)
# 将PIL Image对象转换回OpenCV图像格式
image = cv2.cvtColor(np.array(pil_image), cv2.COLOR_RGB2BGR)
# 显示或保存添加标题后的图像
cv2.imshow('Image with Title', image)
cv2.waitKey(0)
cv2.imwrite('image_with_title.jpg', image)
注意事项:
- 需要提供一个中文字体文件(.ttf),用于显示中文。你可以在网上搜索适合你的需求,并将其路径替换到代码中。
- 示例代码中的路径('path_to_image.jpg'和'path_to_font.ttf')需要进行替换为实际的图像路径和字体文件路径。
- 示例中的绘制位置(x和y)是根据图像和文本大小计算得出的,你可以根据实际需求进行调整。
