本堂小课介绍图像的编辑,在图像编辑文字,强大的opencv不仅除了各种绘制图形的函数之外,还有在图像上绘制文字的函数–putText函数。如下为putText函数:
putText( Mat& img, const string& text, Point orgin, int fontFace,double fontScale, Scalar color, int thickness=1, int lineType=8, );
参数:
-
Mat& img:绘制文字的图像
-
const string& text:绘制的文字
-
Point org:第一个字符左下角坐标
-
int fontFace:字体类型,可供选择的有 :
-
FONT_HERSHEY_SIMPLEX:正常大小无衬线字体
FONT_HERSHEY_PLAIN:小号无衬线字体
FONT_HERSHEY_DUPLEX:正常大小无衬线字体,比FONT_HERSHEY_SIMPLEX更复杂
FONT_HERSHEY_COMPLEX:正常大小有衬线字体
FONT_HERSHEY_TRIPLEX:正常大小有衬线字体,比FONT_HERSHEY_COMPLEX更复杂
FONT_HERSHEY_COMPLEX_SMALL:FONT_HERSHEY_COMPLEX的小译本
FONT_HERSHEY_SCRIPT_SIMPLEX:手写风格字体
FONT_HERSHEY_SCRIPT_COMPLEX:手写风格字体,比FONT_HERSHEY_SCRIPT_SIMPLEX更复杂
-
double fontScale:字体大小
-
Scalar color:字体颜色
-
int thickness,字体粗细
-
int lineType:线型,默认值8
实现代码:
#include <opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
Mat image = imread("dog.jpg");
namedWindow("原图");
imshow("原图", image);
//添加文字
putText(image,"I'm a super dog", Point(50, 60), FONT_HERSHEY_SIMPLEX, 1, Scalar(0, 0, 255), 4, 8);//在图片上写文字
namedWindow("效果图");
imshow("效果图", image);
waitKey();
return 0;
}
结果:
原图
结果图
在opencv库中putText函数不能在图片上编辑中文字体,强制添加会出现乱码,下一节会介绍如何在图像上添加中文字体。
"动动手指扫码或微信搜一搜关注哟"