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

如何使用cv2putText()函数在Python中给图像加上中文标签

发布时间:2023-12-19 06:09:23

在Python的OpenCV库中,可以使用cv2.putText()函数给图像加上文字标签。然而,由于cv2.putText()函数不支持直接在图像中添加中文文字,因此我们需要借助其他工具和库来实现。

一种常见的方法是使用PIL库中的ImageDraw和ImageFont。以下是一个简单的例子,演示了如何使用cv2.putText()函数在图像中添加中文标签:

import cv2
from PIL import ImageFont, ImageDraw, Image

# 读取图像
image = cv2.imread("image.jpg")

# 将图像转换为PIL图像
image_pil = Image.fromarray(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

# 在图像上绘制文字
font_path = "chinese_font.ttf"  # 中文字体文件路径
font_size = 20  # 字体大小
text = "中文标签"  # 中文文字内容
text_color = (255, 0, 0)  # 文字颜色,RGB格式
text_position = (10, 10)  # 文字位置

# 创建字体对象
font = ImageFont.truetype(font_path, font_size)

# 创建绘图对象
draw = ImageDraw.Draw(image_pil)

# 在图像上绘制文字
draw.text(text_position, text, font=font, fill=text_color)

# 将PIL图像转换回OpenCV图像
image_cv = cv2.cvtColor(np.array(image_pil), cv2.COLOR_RGB2BGR)

# 显示图像
cv2.imshow("Image with Chinese text", image_cv)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上述例子中,我们首先使用cv2.imread()读取图像,然后使用cv2.cvtColor()将图像转换为PIL图像。接下来,我们指定中文字体文件的路径、字体大小、文字内容、文字颜色和文字位置。然后,我们通过调用ImageDraw.Draw对象的text()函数,在PIL图像上绘制文字。最后,我们使用cv2.cvtColor()将PIL图像转换回OpenCV图像,并使用cv2.imshow()显示图像。

需要注意的是,上述代码中的中文字体文件路径需要替换为实际的中文字体文件路径。另外,也可以根据需要调整字体大小、文字内容、文字颜色和文字位置等参数。

除了使用PIL库,还可以使用其他库或工具来实现在图像中添加中文标签的功能。例如,可以使用PyQt等库来绘制图像和添加中文标签,或者使用Python的文字处理库来将中文转换为图像,并将图像与原始图像合并。在实际中,具体的方案取决于所选工具和库的功能和需求。