欢迎访问宙启技术站
智能推送

Python中drawString()函数绘制居中对齐的文本的实现方法

发布时间:2024-01-14 03:30:39

在Python中,绘制居中对齐的文本可以使用drawString()函数结合一些计算来实现。下面是一种实现方法,具体如下:

import cv2
import numpy as np

def draw_center_text(image, text, font_scale, color, thickness):
    # 获取文本宽度和高度
    text_size, _ = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, font_scale, thickness)
    text_width, text_height = text_size
    
    # 计算文本的位置
    image_height, image_width = image.shape[:2]
    x = (image_width - text_width) // 2
    y = (image_height + text_height) // 2
    
    # 绘制文本
    cv2.putText(image, text, (x, y), cv2.FONT_HERSHEY_SIMPLEX, font_scale, color, thickness)

# 创建一个黑色背景的图像
image = np.zeros((400, 600, 3), np.uint8)

# 绘制居中对齐的文本
draw_center_text(image, "Hello, World!", 2, (0, 255, 0), 3)

# 显示图像
cv2.imshow("Image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这个例子中,我们首先导入了cv2numpy库。然后我们定义了一个draw_center_text()函数,该函数有以下参数:

- image:要绘制文本的图像。

- text:要绘制的文本。

- font_scale: 文本字体的缩放比例。

- color: 文本的颜色。

- thickness: 文本字体的粗细。

首先,我们使用cv2.getTextSize()函数获取文本的大小。然后我们计算出文本的位置,即文本在图像中的左上角坐标。计算公式为:文本的x坐标为(image_width - text_width) // 2,文本的y坐标为(image_height + text_height) // 2

最后,使用cv2.putText()函数在图像上绘制文本,该函数接受的参数包括图像、文本、文本位置、文本字体、字体缩放比例、文本颜色和字体粗细。

在主程序中,我们创建了一个黑色背景的图像,然后调用draw_center_text()函数绘制居中对齐的文本。最后,使用cv2.imshow()函数显示图像,并使用cv2.waitKey()函数等待按键,最后使用cv2.destroyAllWindows()函数关闭图像窗口。

运行这段代码,你将会在一个黑色背景的图像上看到一个居中对齐的文本“Hello, World!”。你可以根据需要修改参数来绘制其他的文本。