opencv 图像上添加文字
- 格式:doc
- 大小:22.05 KB
- 文档页数:2
openCV字体和文字 cvFont
最后一种形式的绘图是绘制文字。当然,文字创建了一套自己的复杂格式,但是,在这类事情上,OpenCV一如既往地更关心提供一个简单的"一招解决问题"的方案,这个方案只适用于一些简单应用,而不适用于一个稳定的和完整的应用(这将降低由其他库提供的功能)。
OpenCV有一个主要的函数,叫cvPutText()。这个函数可以在图像上输出一些文本。参数text所指向的文本将打印到图像上,参数origin指定文本框左下角位置,参数color指定文本颜色。
1. void cvPutText(
2. CvArr* img,
3. const char* text,
4. CvPoint origin,
5. const CvFont* font,
6.
7. CvScalar color
8. );
概括地说,获取CvFont*指针的方式就是调用函数cvInitFont()。该函数采用一组参数配置一些用于屏幕输出的基本个特定字体。如果熟悉其他环境中的GUI编程,势必会觉得cvInitFont似曾相识,但只需更少的参数。
为了建立一个可以传值给cvPutText()的CvFont,首先必须声明一个CvFont变量,然后把它传递给cvInitFont()。
1. void cvInitFont(
2. CvFont* font,
3. int font_face,
4. double hscale,
5. double vscale,
6. double shear = 0,
7. int thickness = 1,
8. int line_type = 8
9. );
观察本函数与其他相似函数的不同。正如工作在OpenCV环境下的cvCreateImage()。调用cvInitFont()时,初始化一个已经准备好的CvFont结构(这意味着你创建了一个变量,并传给cvInitFont()函数一个指向新建的变量指针),而不是像cvCreateImage()那样创建一个结构并返回指针。
font_face参数列在表3-15中(效果在图3-6中画出),它可与CV_FONT_ITALIC组合(通过布尔或操作)。 表3-15:可用字体(全部可选变量)
标志名称 描述
CV_FONT_HERSHEY_SIMPLEX 正常尺寸sanserif字体
CV_FONT_HERSHEY_PLAIN 小尺寸sanserif字体
CV_FONT_HERSHEY_DUPLEX 正常尺寸sanserif, 比CV_FONT_HERSHEY_SIMPLEX更复杂
CV_FONT_HERSHEY_COMPLEX 正常尺寸serif, 比CV_FONT_HERSHEY_DUPLEX更复杂
续表
标志名称 描述
CV_FONT_HERSHEY_TRIPLEX 正常尺寸serif, 比CV_FONT_HERSHEY_COMPLEX更复杂
CV_FONT_HERSHEY_COMPLEX_SMALL 小尺寸的CV_FONT_HERSHEY_COMPLEX
CV_FONT_HERSHEY_SCRIPT_SIMPLEX 手写风格
CV_FONT_HERSHEY_SCRIPT_COMPLEX 比CV_FONT_HERSHEY_SCRIPT_SIMPLEX更复杂的风格