CvScalar color
);</pre>
</div>
参数text所指向的文本将打印到图像上。
参数origin指定文本框左下角位置。
参数color指定文本颜色。
要获取CvFont*指针需要调用函数cvInitFont( )函数。函数原型:
<div id="scid:f32c3428-b7e9-4f15-a8ea-c502c7ff2e88:ff19f507-549b-4cc3-96a1-839e39282dcb" class="wlWriterEditableSmartContent" style="float: none; margin: 0px; display: inline; padding: 0px;">
<pre class="brush: c;">void cvInitFont (
CvFont* font,
intfont_face,
double hscale,
double vscale,
double shear = 0,
intthickness = 1,
intline_type = 8
);</pre>
</div>
该函数采用一组参数配置一些用于屏幕输出的基本特定字体。为了建立一个可以传值给cvPutText( )的cvFont,首先必须声明一个CvFont变量,然后把它传递给cvInitFont( )。
font_face是选择字体,且该标志可以和CV_FONT_ITALIC(字体标志)组合使用(使用与或)。以下是全部可用的字体:
hscale和vscale只能设定为1.0或0.5,。字体渲染时选择全高或半高(宽度同比缩放),绘制效果与指定字体的基本定义有关。
参数shear创建斜体字,如果设置为0.0,字体不倾斜。当设置为1.0时,字体倾斜范围接近45°。
其他两个参数与以前相同。
下面用一个例子来说明前面介绍的知识:
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <stdio.h>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
IplImage *image = cvCreateImage(cvSize(800, 600), 8, 3);
// Draw Line
cvLine(image, cvPoint(10, 10), cvPoint(500, 20),
cvScalar(255), 2, 8, 1);
// Draw Circle
cvCircle(image, cvPoint(100, 100), 50, cvScalar(0, 255, 0), 2, 8, 0);
// Draw Ellipse
cvEllipse(image, cvPoint(400, 150),
cvSize(100, 150), 45, 0, 360, cvScalar(0, 0, 255), 2);
cvEllipse(image, cvPoint(600, 150),
cvSize(100, 150), 0, 0, 360, CV_RGB(0, 0, 255), 2);
// Draw Text
CvFont font1, font2, font3, font4, font5, font6, font7, font8;
char* text = "Time Track";
cvInitFont(&font1, CV_FONT_HERSHEY_COMPLEX, 1, 1, 0);
cvPutText(image, text, cvPoint(100, 200), &font1, CV_RGB(0, 0, 0));
cvInitFont(&font2, CV_FONT_HERSHEY_PLAIN, 1, 0.5, 0.2);
cvPutText(image, text, cvPoint(100, 250), &font2, CV_RGB(0, 0, 0));
cvInitFont(&font3, CV_FONT_HERSHEY_DUPLEX, 0.5, 1, 0.4);
cvPutText(image, text, cvPoint(100, 300), &font3, CV_RGB(0, 0, 0));
cvInitFont(&font4, CV_FONT_HERSHEY_COMPLEX, 0.5, 1, 0.6);
cvPutText(image, text, cvPoint(100, 350), &font4, CV_RGB(0, 0, 0));
cvInitFont(&font5, CV_FONT_HERSHEY_TRIPLEX | CV_FONT_ITALIC, 1, 1, 0.8);
cvPutText(image, text, cvPoint(100, 400), &font5, CV_RGB(0, 0, 0));
cvInitFont(&font6, CV_FONT_HERSHEY_COMPLEX_SMALL, 1, 1, 1);
cvPutText(image, text, cvPoint(100, 450), &font6, CV_RGB(0, 0, 0));
cvInitFont(&font7, CV_FONT_HERSHEY_SCRIPT_SIMPLEX, 1, 1, 2);
cvPutText(image, text, cvPoint(100, 500), &font7, CV_RGB(0, 0, 0));
cvInitFont(&font8, CV_FONT_HERSHEY_SCRIPT_COMPLEX, 1, 1, 3);
cvPutText(image, text, cvPoint(200, 550), &font8, CV_RGB(0, 0, 0));
cvNamedWindow("Display");
cvShowImage("Display", image);
cvWaitKey();
return 0;
}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-21679-4.html
低智商
大家都很现实