使用cv2.putText如何添加汉字
时间: 2024-11-21 21:29:53 浏览: 35
Ubuntu下的opencv:在图片上加汉字和文字 字库文件
在OpenCV(cv2)库中,`putText()`函数用于在图像上添加文本,包括汉字。要添加汉字,你需要使用Unicode编码,并设置正确的字体和字体大小。以下是基本步骤:
1. 首先,确保你安装了支持中文字符的字体,如`simhei.ttf`、`simsun.ttf`等。你可以从网上下载适合的字体文件并将其放在OpenCV可以访问的路径下。
2. 使用`cv2.FONT_HERSHEY_SIMPLEX`或其他类似字体作为`fontFace`参数。例如,对于简体中文,可以选择`cv2.FONT_HERSHEY_COMPLEX`或`cv2.FONT_HERSHEY_SIMPLEX`。
3. 设置字体大小,通常用像素值表示,比如`fontScale=0.5`。
4. 设置颜色,`color`是一个BGR元组,如`(0, 0, 255)`代表红色。
5. 定义文本的位置,使用`org`参数指定左上角坐标,通常是一个(x, y)对。
6. 调用`putText()`函数,传递图像、要添加的文本、位置、字体、字号、颜色以及是否抗锯齿(`lineType=2`)。
示例代码如下:
```python
import cv2
import numpy as np
# 加载字体文件
font_path = 'path/to/your/font.ttf'
font = cv2.FONT_HERSHEY_SIMPLEX
# 图像和文本信息
image = ... # 你的图像数组
text = '你好,世界!'
# 添加文字
text_size, baseline = cv2.getTextSize(text, font, 1, 2)
x, y = (image.shape[1] - text_size[0]) // 2, (image.shape[0] + baseline) // 2
cv2.putText(image, text, (x, y), font, 1, (0, 0, 255), 2)
# 显示结果
cv2.imshow('Image with Chinese Text', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文