cv::Mat src(500, 500, CV_8UC3, cv::Scalar(0,0,0));
std::string text = "Hello World!";
cv::putText(src,text, cv::Point(10,50), cv::FONT_HERSHEY_PLAIN,4, cv::Scalar(255,0,0),3);
/*
参数1:待绘制的图像
参数2:待绘制的文字
参数3:文本框的左下角
参数4:字体 支持的字体见下图
参数5:尺寸因子,值越大文字越大
参数6:线条的颜色
参数7:线条宽度
参数8:线型(4邻域或8邻域,默认8邻域)
参数9:bool bottomLeftOrigin = false // true='origin at lower left'
*/
cv::imshow("src", src);
cv::Mat src(500, 500, CV_8UC3, cv::Scalar(255,0,0));
std::string text = "Hello World!";
int baseline;
cv::Size text_size = cv::getTextSize(text, 3, 2, 2, &baseline);//获取文本框的长宽
/*
参数1:待绘制的文字
参数2: int fontFace: 文字字体类型
参数3:double fontScale: 字体缩放系数
参数4:int thickness: 字体笔画线宽
参数5:CV_OUT int* baseLine: 文字最底部y坐标
*/
cv::putText(src, text, cv::Point(10, 50), 3, 2, cv::Scalar(0, 255, 255), 2, 8, 0);
std::cerr << text_size << std::endl;
std::cerr << baseline << std::endl;
cv::imshow("src", src);
绘制中文
opencv默认不能使用中文,
解压后把两个文件复制到工程中
添加头文件和源文件
导入头文件:#include "puttextzh.h"
cv::Mat src(500, 500, CV_8UC3, cv::Scalar(0,0,0));
putTextZH(src, "欢迎你使用中文", cv::Point(10,50), cv::Scalar(255,0,0),30, "黑体", true,true);
/*
参数1:待绘制的图像
参数2:待绘制的文字
参数3:文本框的左下角
参数4:字体颜色
参数5:字体大小,值越大文字越大
参数6:字体(默认使用Arial字体,也可以设置成操作系统中已经安装的字体,如“宋体”、“微软雅黑”、“Times New Roman”等;默认显示非斜体、非下划线)
参数7:是否斜体
参数8:是否有下划线
*/
cv::imshow("src", src);