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()
在这个例子中,我们首先导入了cv2和numpy库。然后我们定义了一个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!”。你可以根据需要修改参数来绘制其他的文本。
