您的位置:首页 > 运维架构

opencv学习笔记8 将文字打印到图片上

2014-12-22 15:59 155 查看
用到的主要函数语句是:

cvInitFont()、cvPutText()

函数原型及相应参数解释如下:

CVAPI(void)  cvPutText( CvArr* img, const char* text, CvPoint org,
const CvFont* font, CvScalar color );


img---图片指针(需要说明的是,CvArr* 等价于void*,一般我们在这里传递一个IplImage*);

text---需要打印到图片上的字符串的内容;

origin---字符串在图片上打印的原点(字符串的左下角在图片中的位置)

font---描述字体属性的变量;

color---字体的颜色;
CvFont类型变量的初始化是通过函数cvInitFont来实现的;该函数的原型及参数说明如下所示:

CVAPI(void)  cvInitFont( CvFont* font, int font_face,
double hscale, double vscale,
double shear CV_DEFAULT(0),
int thickness CV_DEFAULT(1),
int line_type CV_DEFAULT(8));


font---传入及传出的字体属性类型指针;

font_face---表示字体的类型,其取值只能为以下数值之一:

1. CV_FONT_HERSHEY_SIMPLEX

2. CV_FONT_HERSHEY_PLAIN

3. CV_FONT_HERSHEY_DUPLEX

4. CV_FONT_HERSHEY_COMPLEX

5. CV_FONT_HERSHEY_TRIPLEX

6. CV_FONT_HERSHEY_COMPLEX_SMALL

7. CV_FONT_HERSHEY_SCRIPT_SIMPLEX

8. CV_FONT_HERSHEY_SCRIPT_COMPLEX

h_scale---只能为1或0.5,表示水平方向字体的缩放系数;

v_scale---只能为1或0.5,表示垂直方向字体的缩放系数;

shear---取值从0---1,表示字体的倾斜程度,0表示不倾斜,1表示倾斜45度;

thichness, line_type这两个参数同OpenCV的其它绘图函数中定义的一样,表示线型的宽度和线条的类型;

程序示例如下:

#include<cv.h>
#include<highgui.h>
using namespace std;
void main()
{
IplImage* image = cvLoadImage("C:\\Users\\lenovo\\Desktop\\11.png");
cvNamedWindow("test", CV_WINDOW_AUTOSIZE);
CvFont font;
cvInitFont(&font, CV_FONT_HERSHEY_COMPLEX, 1.0, 1.0, 0.0, 1, 8);
cvPutText(image, "Hello Man!", cvPoint(200, 300), &font, CV_RGB(255, 0, 0));
cvShowImage("test", image);
cvWaitKey(0);
cvReleaseImage(&image);
cvDestroyAllWindows();
}
运行结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: