优草派  >   Python

python显示图像中文?

周文涛            来源:优草派

Python如何显示图像中文?

在使用Python进行图像处理的过程中,如果需要在图像中添加一些中文的标注,那么该如何操作呢?本文将从多个角度为大家介绍Python显示图像中文的方法。

python显示图像中文?

一、Matplotlib

Matplotlib是常用的Python绘图包,其实也可以用于在图像中添加中文。具体方法如下:

1. 安装字体文件

Matplotlib中默认的字体文件并不支持中文字符,需要我们手动安装中文字体文件。可以在网上下载一些比较常用的中文字体,或者通过系统自带字体找到中文字体文件。以微软雅黑为例,将字体文件放到项目文件夹中。

2. 修改Matplotlib配置文件

打开Matplotlib的配置文件matplotlibrc,在其中找到font.family和font.sans-serif这两个参数,添加如下配置:

font.family : 'sans-serif'

font.sans-serif : ['Microsoft YaHei', 'SimHei']

这样就将字体设置为微软雅黑或者黑体了。

3. 在图像中添加中文

在代码中,使用Matplotlib库的text方法即可添加中文,例如:

import matplotlib.pyplot as plt

plt.figure()

plt.text(0.5, 0.5, '中国', fontsize=200)

plt.show()

运行以上代码,就可以在画布中心添加一个'中国'字,字体为200号字体。

二、Pillow

Pillow是Python图像处理模块,可以用于图像的读取、处理、展示等。当然,它也可以用于在图像中添加文字。想要添加中文,需要对中文字体进行设置。具体方法如下:

1. 安装字体文件

同上,需要下载所需字体并安装。

2. 导入字体文件

在代码中,导入所需使用的字体文件,例如:

from PIL import Image

from PIL import ImageFont

from PIL import ImageDraw

font = ImageFont.truetype('msyh.ttc', 20)

这里导入了字体文件msyh.ttc,并设置字体大小为20号字体。

3. 在图像中添加中文

使用Image库中的ImageDraw对象和text方法即可添加中文,例如:

from PIL import Image

from PIL import ImageFont

from PIL import ImageDraw

img = Image.new('RGB', (800, 600), (255, 255, 255))

draw = ImageDraw.Draw(img)

font = ImageFont.truetype('msyh.ttc', 20)

draw.text((400, 300), '中国', font=font, fill=(0, 0, 0))

img.show()

可以看到,该代码将创建一个800x600的白色画布,在中心添加一个'中国'字,字体为20号字体,颜色为黑色。

三、OpenCV

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可用于构建实时跟踪、人脸识别、手势识别等。当然,它也可以用于在图像中添加文字。方法如下:

1. 导入字体文件

同样需要安装和导入字体文件。

2. 在图像中添加中文

使用OpenCV库的putText方法即可添加中文,例如:

import cv2

import numpy as np

img = np.ones((320, 320, 3), dtype=np.uint8) * 255

font = cv2.FONT_HERSHEY_SIMPLEX

cv2.putText(img, '中国', (50, 150), font, 2, (0, 0, 255), 2)

cv2.imshow('image', img)

cv2.waitKey(0)

在320x320的黑色画布上添加一个'中国'字,字体为2号SimHei字体,颜色为红色,边框粗细为2。

四、总结

在上文中,我们介绍了三种方法用于在Python中显示图像中文,分别是Matplotlib、Pillow和OpenCV。其中,Matplotlib需要手动安装中文字体和设置参数;Pillow需要导入字体文件和设置参数;而OpenCV可以直接使用系统自带字体,但需要调整字体大小。针对不同的需求,可以选择不同的方法来添加图像中的中文。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行