OpenCV 2410
初始化字体结构-cvInitFontcvInitFont初始化字体结构体,字体结构体可以被传递到文字显示函数中。函数原型:void cvInitFont( CvFont* font, //被初始化的字体结构体int font_face, //字体名称标识符double hscale,//字体宽度double vscale, //字体高度double shear=0,//字体斜度int thickness=1, //字体笔划的粗细程度int line_type=8 ); //字体笔划的类型参数:hscale:字体宽度。如果等于1.0f,字符的宽度是最初的字体宽度。如果等于0.5f,字符的宽度是最初的字体宽度的一半。vscale:字体高度。如果等于1.0f,字符的高度是最初的字体高度。如果等于0.5f,字符的高度是最初的字体高度的一半。shear:字体的斜度。当值为0时 ,字符不倾斜;当值为1.0f时,字体倾斜≈45度,等等。厚度让字母着重显示。函数cvLine用于绘制字母。thickness:字体笔划的粗细程度。line_type:字体笔划的类型。
cvPutText():使用给定的字体和颜色在图像上显示文本字符串这些显示的文本由感兴趣矩形包围着。函数原型:void cvPutText( CvArr* img,//待绘制图像const char* text,//显示的字符串CvPoint org,//第一个字母左下角的坐标const CvFont* font,//指向字体结构的指针CvScalar color );//文本的颜色.
结合cvInitFont和cvPutText在图像上显示文本的方法:#include
getTextSize():获取待绘制文本框的大小,以方便放置文本框函数原型:Size getTextSize( const string& text, //带设置的字符串文本Point origin, //文本框左下角int fontFace, //字符串字体double fontScale, int thickness, //字体笔划的粗细程度int* baseLine );
getTextSize()和putText()结合的应用:程序:int main(){ //创建空白图用于绘制文字 Mat image = cv::Mat::zeros(cv::Size(640, 480), CV_8UC3); //设置蓝色背景 image.setTo(cv::Scalar(100, 0, 0)); //设置绘制文本的相关参数 string text = 'Hello World!'; int font_face = cv::FONT_HERSHEY_COMPLEX; double font_scale = 2; int thickness = 2; int baseline; //获取文本框的长宽 Size text_size = getTextSize(text, font_face, font_scale, thickness, &baseline); //将文本框居中绘制 Point origin; origin.x = image.cols / 2 - text_size.width / 2; origin.y = image.rows / 2 + text_size.height / 2; putText(image, text, origin, font_face, font_scale, cv::Scalar(0, 255, 255), thickness, 8, 0); //显示绘制解果 imshow('image', image); waitKey(0); return 0; }
cvInitFont初始化字体结构体,字体结构体可以被传递到文字显示函数中。
cvPutText():使用给定的字体和颜色在图像上显示文本字符串
getTextSize():获取待绘制文本框的大小,以方便放置文本框
putText():在图像中绘制文本信息