📅  最后修改于: 2023-12-03 15:41:00.460000             🧑  作者: Mango
在使用OpenCV中的putText()
函数添加文本到图像中时,我们可以通过调整字体大小来控制文本的显示大小。然而,如果我们想要设置一种相对大小,该怎么做呢?这就需要使用到cv2.getTextSize()
函数,该函数可以获取当前文本实际大小,以便我们可以在将其放置到图像上时进行一些数学处理,以控制其相对大小。
以下是一个用于演示这个过程的代码示例:
import cv2
image = cv2.imread("example.jpg")
text = "Hello World!"
font = cv2.FONT_HERSHEY_SIMPLEX
# 获取文本大小
(text_width, text_height), _ = cv2.getTextSize(text, font, 1, 2)
# 在不同尺寸的文本下绘制矩形
cv2.rectangle(image, (10, 10), (10+text_width, 10+text_height), (0, 0, 255), 2)
cv2.putText(image, text, (10, 10+text_height), font, 1, (0, 0, 255), 2, cv2.LINE_AA)
cv2.rectangle(image, (10, 30), (10+int(text_width*0.5), 30+int(text_height*0.5)), (0, 255, 0), 2)
cv2.putText(image, text, (10, 30+int(text_height*0.5)), font, 0.5, (0, 255, 0), 2, cv2.LINE_AA)
cv2.rectangle(image, (10, 60), (10+int(text_width*0.25), 60+int(text_height*0.25)), (255, 0, 0), 2)
cv2.putText(image, text, (10, 60+int(text_height*0.25)), font, 0.25, (255, 0, 0), 2, cv2.LINE_AA)
cv2.imshow("Output", image)
cv2.waitKey(0)
在上面的示例代码中,我们首先获取文本的实际大小,然后根据我们想要的相对大小进行数学处理以绘制矩形和文本。在这里,我们绘制了3个文本,分别是100%,50%和25%的原始文本大小。每个文本都用不同的颜色表示。
下图是示例代码运行的结果:
通过使用cv2.getTextSize()
函数,我们可以以一种相对文本大小将文本放置到图像中,从而控制文本的显示大小,从而实现更好的可视化效果。