putText是OpenCV库中的一个函数,用于在图像上绘制文本。
函数原型:
void putText(Mat& img, const string& text, Point org, int fontFace, double fontScale,
Scalar color, int thickness = 1, int lineType = LINE_8, bool bottomLeftOrigin = false)
参数说明:
- img:要绘制文本的图像。
- text:要绘制的文本内容。
- org:文本左下角的坐标点。
- fontFace:字体类型。可选值有如下几种:
- FONT_HERSHEY_SIMPLEX: 正常大小无衬线字体(平滑边缘)
- FONT_HERSHEY_PLAIN: 小号无衬线字体
- FONT_HERSHEY_DUPLEX: 正常大小无衬线字体(双倍宽度)
- FONT_HERSHEY_COMPLEX: 正常大小有衬线字体
- FONT_HERSHEY_TRIPLEX: 大号有衬线字体
- 其他…
- fontScale:字体缩放因子,控制文本大小。
- color:文本颜色,使用Scalar对象表示颜色值。
- thickness:线条粗细,默认为1。
- lineType:线条类型,默认为LINE_8。可选值有如下几种:
- LINE_4: 四邻域连接
- LINE_8: 八邻域连接
- LINE_AA: 抗锯齿连接
- bottomLeftOrigin:是否以左下角作为起始点,默认为false。如果设置为true,将以左下角作为起始点。
示例代码:
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
// 创建一个空白图像
Mat image(400, 600, CV_8UC3, Scalar(255, 255, 255));
// 绘制文本
string text = "Hello OpenCV!";
Point org(100, 200);
int fontFace = FONT_HERSHEY_SIMPLEX;
double fontScale = 1.5;
Scalar color(0, 0, 255); // BGR颜色,红色
int thickness = 2;
int lineType = LINE_AA;
putText(image, text, org, fontFace, fontScale, color, thickness);
// 显示图像
imshow("Image", image);
waitKey(0);
return 0;
}
上述示例创建了一个大小为400x600的空白图像,并使用putText函数在其中绘制了文本”Hello OpenCV!“,位置在(100, 200)处。文本使用了FONT_HERSHEY_SIMPLEX字体,缩放因子为1.5,颜色为红色(BGR格式),线条粗细为2。最后通过imshow显示图像并等待按键事件。
请根据你的需求修改相应参数,并确保你已经正确配置了OpenCV库环境。
内容由零声教学AI助手提供,问题来源于学员提问




