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

在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. 运行代码,在弹出的窗口中可以看到原始图像以及添加了中文标题后的图像。