OpenCV 将文本放置在图像上

Ammar Ali 2024年2月15日
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)

输出:

puttext 函数的可选参数

你可以在代码中看到我们还必须再次设置文本的位置,以便它应该可见。查看此链接了解有关 OpenCV 支持的字体系列的更多详细信息。

作者: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

相关文章 - Python OpenCV

相关文章 - OpenCV Image