OpenCV 将文本放置在图像上
本教程将讨论在 Python 中使用 OpenCV 的 putText()
函数将文本放置在图像上。
在 Python 中使用 Opencv 的 putText()
函数将文本放置在图像上
我们可以使用 OpenCV 的 putText()
函数将文本放置在具有所需颜色、字体大小、字体系列和位置的图像上。putText()
函数的第一个参数是我们要放置文本的图像。
第二个参数是我们想要放置在图像上的文本(字符串)。第三个参数是我们要放置文本的位置,默认情况下,位置原点是图像的左上角。
位置的值应使用两个整数设置,其中第一个整数定义 x 轴位置,第二个整数定义 y 轴位置。
例如,如果我们将位置设置为 (10,20),它将把文本放置在距离原点 10 像素和 y 轴 20 像素的位置,原点位于图像的左上角。
第四个参数是字体系列,它可以来自 OpenCV 的默认字体系列,如 cv2.FONT_HERSHEY_SIMPLEX
。第五个参数是字体大小或字体比例,它的值应该是双精度数据类型。
第六个参数是文本的颜色,它的值应该是一个 RGB 三元组,例如 (255,255,255) 表示白色。
上述所有参数都是必需的,如果缺少一个或多个参数,则会出现错误。我们还可以设置三个可选参数,如果我们不设置可选参数的值,将使用默认值。
第一个可选参数是线条的粗细,默认情况下它的值应该是一个整数。第二个可选参数是线型或样式,默认设置为 cv2.LINE_8
。
第三个可选参数用于将左下位置设置为原点,如果为真,则默认设置为假,它会翻转文本。
例如,让我们使用 numpy
库的 zeros() 函数创建一个黑色的 512×512 图像,然后使用 putText()
函数在其上放置一些随机文本。请参阅下面的代码。
import numpy as np
import cv2
img = np.zeros((512, 512, 3), np.uint8)
font = cv2.FONT_HERSHEY_SIMPLEX
position = (10, 500)
fontScale = 2
fontColor = (255, 255, 0)
cv2.putText(img, "Hello World!", position, font, fontScale, fontColor)
cv2.imshow("img", img)
cv2.waitKey(0)
输出:
我们在上面的示例中使用了黑色图像,但我们也可以使用 imread()
函数使用任何彩色图像。我们还可以更改可选参数的值。
例如,让我们将线条的粗细更改为 3。对于 antialiased
线条,线条类型为 cv2.LINE_AA
,让我们使用最后一个参数翻转文本并将其设置为 true。请参阅下面的代码。
import numpy as np
import cv2
img = np.zeros((512, 512, 3), np.uint8)
font = cv2.FONT_HERSHEY_SIMPLEX
position = (10, 450)
fontScale = 2
fontColor = (255, 255, 0)
cv2.putText(
img, "Hello World!", position, font, fontScale, fontColor, 3, cv2.LINE_AA, True
)
cv2.imshow("img", img)
cv2.waitKey(0)
输出:
你可以在代码中看到我们还必须再次设置文本的位置,以便它应该可见。查看此链接了解有关 OpenCV 支持的字体系列的更多详细信息。
相关文章 - Python OpenCV
- OpenCV sobel() 函数
- Python 中 OpenCV 的 GUI 特性
- 在 Python 中使用 OpenCV 创建二维码扫描器
- 在 Python 中使用 OpenCV 的 HSV 颜色空间
- OpenCV 中的模糊滤镜
- 使用 OpenCV 进行对象跟踪