乐闻世界logo
搜索文章和话题

如何用Python OpenCV在cv2.putText中制作黑色背景

1 个月前提问
1 个月前修改
浏览次数2

1个答案

1

在使用Python的OpenCV库中的cv2.putText方法添加文字时,如果需要文字周围有一个明显的黑色背景,以提高文字的可读性,可以先使用cv2.rectangle方法在文字的背后绘制一个黑色的矩形,然后再在这个矩形上使用cv2.putText添加文字。

以下是一个具体的步骤和示例代码:

  1. 导入必要的库:首先导入OpenCV库,这是使用cv2.putTextcv2.rectangle的基础。

  2. 读取或创建图像:加载一张图像或创建一张新的图像,用于展示文字。

  3. 设定文字相关参数:包括文字内容、位置、字体、字体大小和颜色等。

  4. 计算文字宽度和高度:使用cv2.getTextSize计算文字的尺寸,以便知道需要画多大的矩形来作为背景。

  5. 绘制矩形:根据计算出的文字尺寸和位置,使用cv2.rectangle在图像上绘制黑色矩形作为文字的背景。

  6. 添加文字:使用cv2.putText在刚才绘制的黑色矩形上绘制所需的文字。

示例代码

python
import cv2 import numpy as np # 创建一个空白图像 img = np.zeros((500, 800, 3), dtype=np.uint8) # 设置文字相关参数 text = "Hello, OpenCV" font_face = cv2.FONT_HERSHEY_SIMPLEX font_scale = 1 thickness = 2 color = (255, 255, 255) # 白色文字 background_color = (0, 0, 0) # 黑色背景 # 获取文字区域的大小 (text_width, text_height), _ = cv2.getTextSize(text, font_face, font_scale, thickness) # 设置文字的位置 text_x = 50 text_y = 100 # 在图像上绘制黑色矩形作为背景 cv2.rectangle(img, (text_x, text_y - text_height - 10), (text_x + text_width, text_y + 10), background_color, -1) # 添加白色文字 cv2.putText(img, text, (text_x, text_y), font_face, font_scale, color, thickness) # 显示图像 cv2.imshow('Text with Background', img) cv2.waitKey(0) cv2.destroyAllWindows()

这段代码首先创建了一个全黑的图像,然后计算了所需添加的文字的尺寸,并在文字将要显示的位置的背后画了一个黑色的矩形。之后,在这个黑色矩形上添加了白色的文字,最后显示了这个图像。

通过这种方式,我们能够清晰地在图像中展示带有黑色背景的文字,确保文字在不同颜色背景图像上都能清晰可读。

2024年8月15日 11:51 回复

你的答案