在Python中利用cv2putText()函数给图像添加中文标题的代码示例
发布时间:2023-12-19 06:11:06
在Python中使用cv2.putText()函数给图像添加中文标题的代码示例如下:
import cv2
import numpy as np
from PIL import ImageFont, ImageDraw, Image
def put_chinese_text(img, text, position, text_size, text_color):
"""
在图像中添加中文文本
:param img: 原始图像
:param text: 要添加的文本
:param position: 文本位置,格式为 (x, y)
:param text_size: 文本字体大小
:param text_color: 文本颜色,格式为 (B, G, R)
:return: 添加文本后的图像
"""
# 使用PIL库读取图像数据
pil_img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
draw = ImageDraw.Draw(pil_img)
# 载入字体文件并设置文本大小
font = ImageFont.truetype('simsun.ttc', text_size)
# 调用文本绘制函数
draw.text(position, text, font=font, fill=text_color)
# 将PIL图像转换为OpenCV图像
cv2_img = cv2.cvtColor(np.array(pil_img), cv2.COLOR_RGB2BGR)
return cv2_img
# 读取原始图像
img = cv2.imread('image.jpg')
# 定义中文标题文本信息
text = '中文标题'
position = (50, 50)
text_size = 50
text_color = (255, 0, 0)
# 在图像上添加中文标题
img_with_text = put_chinese_text(img, text, position, text_size, text_color)
# 显示图像
cv2.imshow('Image', img_with_text)
cv2.waitKey(0)
cv2.destroyAllWindows()
在上述代码示例中,put_chinese_text()函数用于在图像中添加中文标题。该函数使用PIL库来处理图像数据,并调用PIL的绘制函数draw.text()来绘制中文文本。最后,将生成的PIL图像转换为OpenCV图像,并返回添加文本后的图像。
使用例子:
1. 在代码示例中,我们假设要添加的中文标题文本为'中文标题',位置为(50, 50),字体大小为50,颜色为红色。
2. 修改img变量为要添加标题的图像路径,例如img = cv2.imread('image.jpg')。
3. 运行代码,在弹出的窗口中可以看到原始图像以及添加了中文标题后的图像。
