cv2.putText(frame, f Name: {name1} , (left, top - 50), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2)为什么显示不了中文
时间: 2024-04-14 10:28:30 浏览: 31
cv2.putText
5星 · 资源好评率100%
在 OpenCV 中,如果要在图像上显示中文,需要使用支持中文字符的字体文件。由于默认的字体文件不包含中文字符,所以无法正确显示中文。
解决方法是使用支持中文字符的字体文件。可以从网上下载一些免费的中文字体文件,然后在 OpenCV 中指定使用这些字体文件。
下面是一个示例代码,演示如何在图像上显示中文:
```python
import cv2
import numpy as np
from PIL import ImageFont, ImageDraw, Image
# 加载中文字体文件
font_path = '/path/to/font_file.ttf'
font = ImageFont.truetype(font_path, size=20)
# 创建一个空白图像
frame = np.zeros((500, 500, 3), dtype=np.uint8)
# 转换图像为 PIL.Image 格式
pil_image = Image.fromarray(frame)
draw = ImageDraw.Draw(pil_image)
# 在图像上绘制中文文字
name1 = '张三'
left, top = 50, 100
text = f'Name: {name1}'
draw.text((left, top - 50), text, font=font, fill=(0, 0, 255), stroke_width=2)
# 转换图像回 OpenCV 格式
frame = np.array(pil_image)
# 显示图像
cv2.imshow('Image', frame)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
请确保将 `font_path` 替换为您下载的字体文件的路径。这样就能够正确显示中文了。
阅读全文