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"替换为实际的图像文件路径和字体文件路径。这样就可以在图像上添加中文标题了。
