cv2.putText 怎么显示中文
时间: 2023-08-17 20:03:11 浏览: 264
要在Python中使用cv2.putText显示中文,需要先安装中文字体。可以通过以下步骤来实现:
1. 下载中文字体文件(例如:SimHei.ttf)并将其保存在项目文件夹中。
2. 在代码中导入cv2和PIL库:
```python
import cv2
from PIL import ImageFont, ImageDraw, Image
```
3. 创建一个PIL图像对象并加载字体:
```python
img_pil = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
font = ImageFont.truetype('SimHei.ttf', 40)
```
4. 创建一个PIL绘图对象并使用puttext方法添加中文文本:
```python
draw = ImageDraw.Draw(img_pil)
draw.text((x, y), text, font=font, fill=(255, 0, 0))
```
5. 将PIL图像对象转换回OpenCV图像对象:
```python
img = cv2.cvtColor(np.array(img_pil), cv2.COLOR_RGB2BGR)
```
完整代码示例:
```python
import cv2
import numpy as np
from PIL import ImageFont, ImageDraw, Image
# 加载图像
img = cv2.imread('test.jpg')
# 创建PIL图像对象并加载字体
img_pil = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
font = ImageFont.truetype('SimHei.ttf', 40)
# 创建PIL绘图对象并使用puttext方法添加中文文本
draw = ImageDraw.Draw(img_pil)
text = '你好,世界!'
x, y = 50, 50
draw.text((x, y), text, font=font, fill=(255, 0, 0))
# 将PIL图像对象转换回OpenCV图像对象
img = cv2.cvtColor(np.array(img_pil), cv2.COLOR_RGB2BGR)
# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文