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

在OpenCV中使用cv2putText()函数将中文文字添加到图像的代码示例

发布时间:2023-12-19 06:11:47

在OpenCV中使用cv2.putText()函数将中文文字添加到图像需要进行以下步骤:

1. 安装OpenCV库:如果还没有安装OpenCV库,请先使用pip install opencv-python命令进行安装。

2. 导入必要的库:

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

3. 加载图像:

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

4. 调整图像格式:

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

5. 创建字体对象:

font_path = "font.ttf"  # 字体文件路径
font_size = 32  # 字体大小
font = ImageFont.truetype(font_path, font_size)

6. 创建绘制对象:

draw = ImageDraw.Draw(image_pil)

7. 添加中文文字:

text = "你好,世界!"  # 要添加的中文文字
text_position = (100, 100)  # 文字位置
text_color = (255, 0, 0)  # 文字颜色
draw.text(text_position, text, font=font, fill=text_color)

8. 将图像转换回OpenCV格式:

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

9. 显示图像:

cv2.imshow("Image", image_cv)
cv2.waitKey(0)
cv2.destroyAllWindows()

下面是一个完整的示例代码,将中文文字添加到图像中并显示出来:

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

def add_chinese_text(image_path, font_path, text, position, color, font_size):
    # 加载图像
    image = cv2.imread(image_path)
    
    # 调整图像格式
    image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    image_pil = Image.fromarray(image_rgb)
    
    # 创建字体对象
    font = ImageFont.truetype(font_path, font_size)
    
    # 创建绘制对象
    draw = ImageDraw.Draw(image_pil)
    
    # 添加中文文字
    draw.text(position, text, font=font, fill=color)
    
    # 将图像转换回OpenCV格式
    image_cv = cv2.cvtColor(np.array(image_pil), cv2.COLOR_RGB2BGR)
    
    # 显示图像
    cv2.imshow("Image", image_cv)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

if __name__ == "__main__":
    image_path = "image.jpg"  # 图像路径
    font_path = "font.ttf"  # 字体文件路径
    text = "你好,世界!"  # 要添加的中文文字
    position = (100, 100)  # 文字位置
    color = (255, 0, 0)  # 文字颜色
    font_size = 32  # 字体大小
    
    add_chinese_text(image_path, font_path, text, position, color, font_size)

在代码中,需要将image.jpg替换为你的图像路径,font.ttf替换为你的字体文件路径,text替换为你要添加的中文文字,position替换为文字的位置,color替换为文字的颜色,font_size替换为文字的大小。

运行以上代码,你将在一个新的窗口中看到已经将中文文字添加到图像中的结果。