python 实现3秒内 cv2.putText一直显示
时间: 2023-10-19 08:29:29 浏览: 127
可以使用 Python 的 `time` 和 OpenCV 的 `cv2` 模块来实现:
```python
import cv2
import time
# 创建一个空白图像
img = cv2.imread("blank_image.png")
while True:
# 在图像上添加文字
cv2.putText(img, "Hello, World!", (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
# 显示图像
cv2.imshow("Image", img)
# 等待 3 秒
time.sleep(3)
# 清除图像上的文字
img = cv2.imread("blank_image.png")
# 按下 ESC 键退出循环
if cv2.waitKey(1) == 27:
break
cv2.destroyAllWindows()
```
这个程序会在一个空白图像上不断地添加文字并显示,每次显示持续时间为 3 秒。注意,如果您想要更改文字的内容、位置、颜色和字体大小等属性,可以在 `cv2.putText` 函数中进行修改。
相关问题
cv2.puttext函数显示中文
要在cv2.putText函数中显示中文,需要先将中文转换为图像,然后再使用cv2.putText将图像显示在窗口中。具体步骤如下:
1. 安装中文支持库
```
!pip install opencv-python-headless
!pip install opencv-contrib-python-headless
!pip install fonttools
```
2. 下载中文字体文件,比如“SimHei.ttf”
3. 将字体文件转换为OpenCV可以识别的格式
```
from fontTools.ttLib import TTFont
import numpy as np
import cv2
font = TTFont('SimHei.ttf')
font.saveXML('SimHei.xml')
font = cv2.freetype.createFreeType2()
font.loadFontData('SimHei.xml')
```
4. 在图像上绘制中文
```
img = np.zeros((100, 200, 3), dtype=np.uint8)
text = '你好,世界!'
font.putText(img, text, (10, 50), fontHeight=20, color=(255, 255, 255), thickness=-1)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
cv2.putText 中文显示??
在 OpenCV 中,`cv2.putText()` 函数默认不支持中文显示,因为它使用的是默认的字体库,不包含中文字体。但你可以通过以下步骤实现在图像上使用中文显示:
1. 确保你的系统中已经安装了适合中文显示的字体文件,比如微软雅黑 (Microsoft YaHei) 或者思源黑体 (Source Han Sans) 等中文字体。
2. 使用 `cv2.putText()` 函数绘制英文文本时,可以通过指定字体的参数来加载中文字体。在大多数情况下,你需要使用 `cv2.FONT_HERSHEY_SIMPLEX` 字体样式。示例代码如下:
```python
import cv2
import numpy as np
# 读取图像
image = cv2.imread('image.jpg')
# 设置文字相关参数
text = '你好,世界!'
font = cv2.FONT_HERSHEY_SIMPLEX
font_scale = 1.2
color = (0, 0, 255)
thickness = 2
# 绘制中文文本
cv2.putText(image, text, (50, 50), font, font_scale, color, thickness)
# 显示图像
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们使用 `cv2.putText()` 函数绘制了一段中文文本。我们指定了中文字体,字体大小,颜色和线条粗细等参数。然后,使用 `cv2.imshow()` 函数显示图像。
请注意,这种方法需要你的系统中已经安装了相应的中文字体文件。如果你的系统中没有安装合适的中文字体,或者想要更灵活地控制中文显示,你可以考虑使用第三方库,如 `pillow` 或者 `matplotlib` 来实现中文显示。
阅读全文