关于opencvputtext的信息

[img]

简介:

OpenCV是一款流行的计算机视觉库,它提供了许多功能用于图像和视频处理。其中包括能够把文本添加到图像中的功能,这就是我们今天要介绍的OpenCV putText函数。

多级标题:

1. putText函数的基本语法

2. putText函数的参数解释

3. 显示文本的示例

4. 更改文本格式的示例

5. 在图像中添加阴影的示例

内容详细说明:

1. putText函数的基本语法

OpenCV putText函数的基本语法如下:

```python

cv2.putText(img, text, org, font, fontScale, color, thickness, lineType, bottomLeftOrigin)

```

其中:

- img:要添加文本的图像

- text:要添加的文本

- org:文本坐标的位置,以左下角为基准点

- font:字体类型,可以使用cv2.FONT_HERSHEY_SIMPLEX等内置字体

- fontScale:文本大小

- color:文本颜色,通常是一个BGR值(蓝,绿,红)

- thickness:文本轮廓厚度

- lineType:文本轮廓类型,可以是8-connected、4-connected等

- bottomLeftOrigin:如果为真,则org表示左上角;否则,表示左下角

2. putText函数的参数解释

接下来,让我们看看putText函数的各个参数。

为了添加文本,我们需要将图像传递给函数。文本是以字符串的形式传递给函数。要添加的第二个参数是文本字符串。

文本坐标是以左下角为基准的。因此,用以表示文本坐标的org必须是具有两个值的元组或列表。

在定义文本的图像区域时,我们还可以选择字体。字体名称可以是标准字体,如cv2.FONT_HERSHEY_SIMPLEX或cv2.FONT_HERSHEY_COMPLEX,也可以是用户定义的字体。

尽管我们可以手动选择文本格式,但默认的字体格式在大多数情况下都可以胜任。但我们可以使用fontScale值调整文本的缩放大小。

文本颜色通常是一个三色值元组,按BGR顺序指定。我们也可以使用内置的命令cv2.putText()来指定一些常见颜色,如cv2.COLOR_RED或cv2.COLOR_GREEN。

文本边缘是使用thickness参数实现的,默认值为1。

线型参数可以指定为可接受的值之一:cv2.LINE_AA、cv2.LINE_4或cv2.LINE_8。LINE_AA用于反走样线,而LINE_4和LINE_8则代表4或8相邻分量的相应整数。

如果bottomLeftOrigin为真,则坐标点org是文本框左上角的坐标。如果为假,则是文本框左下角的坐标。

3. 显示文本的示例

让我们看一下一个putText函数使用示例:

```python

import cv2

# 读取图像

img = cv2.imread('example.jpg')

# 在图像上添加文本

org = (50, 50) # 左下角基准点

text = "Hello OpenCV"

font = cv2.FONT_HERSHEY_SIMPLEX

fontScale = 1

color = (255, 0, 0) # 蓝色文本

thickness = 2

cv2.putText(img, text, org, font, fontScale, color, thickness, cv2.LINE_AA)

# 显示图像

cv2.imshow('Image', img)

cv2.waitKey(0)

cv2.destroyAllWindows()

```

在上面的代码中,我们通过读取一个名为example.jpg的图像文件,并在其左下角添加一行文本。

4. 更改文本格式的示例

让我们探讨一下如何使用putText函数更改文本的格式,例如文本的字体和大小。

```python

import cv2

# 读取图像

img = cv2.imread('example.jpg')

# 在图像上添加文本

org = (50, 50) # 左下角基准点

text = "Hello OpenCV"

font = cv2.FONT_HERSHEY_SIMPLEX

fontScale = 2

color = (255, 0, 0) # 蓝色文本

thickness = 2

cv2.putText(img, text, org, font, fontScale, color, thickness, cv2.LINE_AA)

# 更改文本格式

font = cv2.FONT_ITALIC

# 添加新的文本

org = (50, 100) # 左下角基准点

text = "Welcome to OpenCV"

fontScale = 1.5

color = (0 ,255, 0) # 绿色文本

thickness = 1

cv2.putText(img, text, org, font, fontScale, color, thickness, cv2.LINE_AA)

# 显示图像

cv2.imshow('Image', img)

cv2.waitKey(0)

cv2.destroyAllWindows()

```

在上面的代码中,我们先添加了一个文本字符串Hello OpenCV。然后,我们更改了字体为cv2.FONT_ITALIC,并添加了一个新的字符串Welcome to OpenCV。我们还增加了fontScale的大小,使得文本看起来更大,并且使新添加的文本在颜色、大小和基准点方面与原始文本不同。

5. 在图像中添加阴影的示例

有时,我们可能希望在图像中添加一些阴影来增强文本的可读性。下面是一个在图像中添加阴影的代码示例。

```python

import cv2

# 读取图像

img = cv2.imread('example.jpg')

# 定义文本和坐标

org = (50, 50) # 左下角基准点

text = "Hello OpenCV"

# 字体和大小

font = cv2.FONT_HERSHEY_SIMPLEX

fontScale = 2

# 颜色和轮廓厚度

color = (255, 0, 0) # 蓝色文本

thickness = 2

# 添加文本阴影

shadow = cv2.putText(img, text, org, font, fontScale, (0, 0, 0), thickness + 2, cv2.LINE_AA)

# 在图像上添加文本

cv2.putText(shadow, text, org, font, fontScale, color, thickness, cv2.LINE_AA)

# 显示图像

cv2.imshow('Image with Shadow', shadow)

cv2.waitKey(0)

cv2.destroyAllWindows()

```

在上面的代码中,我们使用与之前相同的文本、字体和字体大小添加了一个新的字符串。不同之处在于,我们调整的是添加文本的颜色,使用了黑色,并增加了描边的厚度。这种方法使我们的文本产生了阴影效果,从而增强了它的可读性。

总之,OpenCV的putText函数是一种非常强大和灵活的工具,可用于在图像和视频中添加文本。我们可以使用该函数修改文本的大小、颜色和格式,并添加阴影效果,以增强文本的可读性。

标签列表