Python中的putText函数详解
在图像处理中,我们常常需要在图片上添加文字内容,以便更好地展示图片的相关信息。Python的OpenCV库中提供了putText函数,可以用于在图像上绘制文字。本文将详细介绍putText函数的用法,并通过代码示例演示具体的应用。
putText函数的基本用法
putText函数的基本用法如下:
cv2.putText(img, text, org, fontFace, fontScale, color, thickness, lineType, bottomLeftOrigin)
其中,参数的含义如下:
- img:要绘制文本的图像。
- text:要绘制的文本内容。
- org:文本在图像上的起始坐标。
- fontFace:字体类型。
- fontScale:字体的大小因子。
- color:文本的颜色。
- thickness:文本的粗细程度。
- lineType:线的类型。
- bottomLeftOrigin:坐标原点是否在图像左下角。
文本位置和对齐方式
在OpenCV中,文本的位置由参数org指定,它是文本在图像上的起始坐标。可以通过设置org参数来控制文本在图像上的位置。例如,如果将org参数设置为(10, 50),则表示文本起始坐标为图像的(10, 50)位置。
同时,可以通过设置fontFace和fontScale参数来控制文本的大小和字体。fontFace参数可以是以下常用的字体类型:
- cv2.FONT_HERSHEY_SIMPLEX:正常大小无衬线字体。
- cv2.FONT_HERSHEY_PLAIN:小号无衬线字体。
- cv2.FONT_HERSHEY_DUPLEX:正常大小无衬线字体(更复杂)。
- cv2.FONT_HERSHEY_COMPLEX:正常大小有衬线字体。
- cv2.FONT_HERSHEY_TRIPLEX:正常大小有衬线字体(更复杂)。
- cv2.FONT_HERSHEY_COMPLEX_SMALL:小号有衬线字体。
- cv2.FONT_HERSHEY_SCRIPT_SIMPLEX:手写样式字体。
- cv2.FONT_HERSHEY_SCRIPT_COMPLEX:更复杂的手写样式字体。
下面的代码示例演示了如何在图像上绘制文本,并控制文本的位置和对齐方式:
import cv2
import numpy as np
# 创建一张空白图像
img = np.zeros((300, 500, 3), np.uint8)
# 设置文本参数
text = "Hello, World!"
org = (50, 150)
fontFace = cv2.FONT_HERSHEY_SIMPLEX
fontScale = 2
color = (0, 255, 0)
thickness = 2
lineType = cv2.LINE_AA
bottomLeftOrigin = False
# 绘制文本
cv2.putText(img, text, org, fontFace, fontScale, color, thickness, lineType, bottomLeftOrigin)
# 显示图像
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
上述代码中,我们首先创建了一张空白的图像,然后定义了要绘制的文本内容和文本的参数。最后,调用putText函数在图像上绘制文本,并通过imshow函数显示绘制后的图像。
文本样式和颜色
除了控制文本的位置和对齐方式外,我们还可以通过设置文本的样式和颜色来使文本更加美观。
在putText函数中,可以通过设置thickness参数来控制文本的粗细程度。当thickness为正数时,表示文本为实心;当thickness为负数时,表示文本为空心。
同时,可以通过设置color参数来控制文本的颜色。color参数是一个三元组,表示文本颜色的BGR值。例如,(0, 255, 0)表示绿色。
下面的代码示例演示了如何设置文本的样式和颜色:
import cv2
import numpy as np
# 创建一张空白图像
img = np.zeros((300, 500, 3), np.uint8)
# 设置文本参数
text = "Hello, World!"
org = (50, 150)
fontFace = cv2.FONT_HERSHEY_SIMPLEX
fontScale = 2
color = (0, 255, 0)
thickness = 3
lineType = cv2.LINE_AA
bottom