如何使用Python在图像上添加中文字体显示?

2026-06-11 11:171阅读0评论SEO基础
  • 内容介绍
  • 相关推荐

本文共计592个文字,预计阅读时间需要3分钟。

如何使用Python在图像上添加中文字体显示?

在处理图像时,经常使用OpenCV库,但发现`cv2.putText`显示不了中文。经过查找,Stack Overflow上有一个有效的方法,可以解决在Python图像上写中文的问题。以下是具体步骤:

1. 首先确保安装了`PIL`(Python Imaging Library)库,如果没有安装,请使用以下命令安装: python pip install pillow

2.使用`cv2.putText`函数时,需要指定中文字体的路径。以下是一个示例代码:

python import cv2 from PIL import ImageFont

# 读取中文字体,这里以simhei.ttf为例 font_path='simhei.ttf' font_scale=1 font=ImageFont.truetype(font_path, font_scale)

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

# 在图像上写字 cv2.putText(img, '中文', (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2, cv2.LINE_AA)

# 将OpenCV图像转换为PIL图像 pil_img=Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))

# 使用PIL的ImageDraw绘制文字 draw=ImageDraw.Draw(pil_img) draw.text((10, 50), '中文', font=font, fill=(255, 0, 0))

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

# 显示图像 cv2.imshow('result', result_img) cv2.waitKey(0) cv2.destroyAllWindows()

3.在上述代码中,`simhei.ttf`是中文字体文件的路径,可以根据需要更换其他字体文件。`font_scale`是字体大小,可以根据实际情况调整。

通过以上步骤,您就可以在Python图像上成功写入中文了。

本人处理图像的时候经常使用opencv的包,但是 cv2.putText 显示不了中文,所以查找了如何在python在图像上写中文的方法,在伟大的Stack Overflow上面找到一个方法,分享给大家。

本文的 Stack Overflow 网址:stackoverflow.com/questions/50854235/how-to-draw-chinese-text-on-the-image-using-cv2-puttextcorrectly-pythonopen

import cv2

from PIL import ImageFont, ImageDraw, Image

image = cv2.imread(‘image‘)

# 定义宋体路径
fontpath = ‘simsun.ttc‘

# 创建字体对象,并且指定字体大小

font = ImageFont.truetype(fontpath, 28)

如何使用Python在图像上添加中文字体显示?

# 把array格式转换成PIL的image格式

img_pil = Image.fromarray(image)

# 创建一个可用来对其进行draw的对象

draw = ImageDraw.Draw(img_pil)

# 在图像上写上你要写的子

draw.text((30, 60), ‘你好,中国’, font=font, fill=(255, 255, 255))

# 把PIL的image格式转换回成array格式

save_image = np.array(img_pil)

cv2.imshow(‘image‘, image)

cv2.waitKey()

cv2.destroyAllWindows()

这样就可以在图像上看到中文了。

这边有个细节要提醒下大家,因为本人电脑系统是ubuntu18.04,所以下载的simsun.ttc打开文件一直有错误,所以就在github上找了一个

本文共计592个文字,预计阅读时间需要3分钟。

如何使用Python在图像上添加中文字体显示?

在处理图像时,经常使用OpenCV库,但发现`cv2.putText`显示不了中文。经过查找,Stack Overflow上有一个有效的方法,可以解决在Python图像上写中文的问题。以下是具体步骤:

1. 首先确保安装了`PIL`(Python Imaging Library)库,如果没有安装,请使用以下命令安装: python pip install pillow

2.使用`cv2.putText`函数时,需要指定中文字体的路径。以下是一个示例代码:

python import cv2 from PIL import ImageFont

# 读取中文字体,这里以simhei.ttf为例 font_path='simhei.ttf' font_scale=1 font=ImageFont.truetype(font_path, font_scale)

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

# 在图像上写字 cv2.putText(img, '中文', (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 0, 0), 2, cv2.LINE_AA)

# 将OpenCV图像转换为PIL图像 pil_img=Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))

# 使用PIL的ImageDraw绘制文字 draw=ImageDraw.Draw(pil_img) draw.text((10, 50), '中文', font=font, fill=(255, 0, 0))

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

# 显示图像 cv2.imshow('result', result_img) cv2.waitKey(0) cv2.destroyAllWindows()

3.在上述代码中,`simhei.ttf`是中文字体文件的路径,可以根据需要更换其他字体文件。`font_scale`是字体大小,可以根据实际情况调整。

通过以上步骤,您就可以在Python图像上成功写入中文了。

本人处理图像的时候经常使用opencv的包,但是 cv2.putText 显示不了中文,所以查找了如何在python在图像上写中文的方法,在伟大的Stack Overflow上面找到一个方法,分享给大家。

本文的 Stack Overflow 网址:stackoverflow.com/questions/50854235/how-to-draw-chinese-text-on-the-image-using-cv2-puttextcorrectly-pythonopen

import cv2

from PIL import ImageFont, ImageDraw, Image

image = cv2.imread(‘image‘)

# 定义宋体路径
fontpath = ‘simsun.ttc‘

# 创建字体对象,并且指定字体大小

font = ImageFont.truetype(fontpath, 28)

如何使用Python在图像上添加中文字体显示?

# 把array格式转换成PIL的image格式

img_pil = Image.fromarray(image)

# 创建一个可用来对其进行draw的对象

draw = ImageDraw.Draw(img_pil)

# 在图像上写上你要写的子

draw.text((30, 60), ‘你好,中国’, font=font, fill=(255, 255, 255))

# 把PIL的image格式转换回成array格式

save_image = np.array(img_pil)

cv2.imshow(‘image‘, image)

cv2.waitKey()

cv2.destroyAllWindows()

这样就可以在图像上看到中文了。

这边有个细节要提醒下大家,因为本人电脑系统是ubuntu18.04,所以下载的simsun.ttc打开文件一直有错误,所以就在github上找了一个