opencv 叠加文字_Hello world.
视频是一帧一帧的图像组成的,在视频上添加文字就是在没一帧上添加图像而已,这么看来这个问题就没有那么难了。代码如下:#include"highgui.h"#include"cv.h"#include"cxcore.h"#include"stdio.h"#include#include"cxtypes.h"#include#includeintmain(intargc,...
视频是一帧一帧的图像组成的,在视频上添加文字就是在没一帧上添加图像而已,这么看来这个问题就没有那么难了。
代码如下:#include "highgui.h"
#include "cv.h"
#include "cxcore.h"
#include "stdio.h"
#include
#include "cxtypes.h"
#include
#include
int main(int argc, char* argv[])
{
cvNamedWindow("avi");
CvCapture* capture=cvCreateFileCapture("c:\\2.avi");
printf("hello world\n");
IplImage * frame;
char *a="hello world";
CvFont font;
double fps=0;
double t=0;
t = (double)cvGetTickCount();
while(1)
{
frame=cvQueryFrame(capture);
if (!frame)
{
break;
}
t = ((double)cvGetTickCount() - t) / cvGetTickFrequency();
fps=1.0/t;
printf("fps-->%7f\n",fps);
cvInitFont(&font,CV_FONT_HERSHEY_SCRIPT_COMPLEX, 1.0f,1.0f);
cvPutText(frame, a, cvPoint(100,100),&font,cvScalar(23,66,255));
frame->origin=1;
cvShowImage("avi",frame);
char c=cvWaitKey(100);
if (c==27)
{
break;
}
}
cvReleaseImage(&frame);
cvReleaseCapture(&capture);
cvDestroyWindow("avi");
return 0;
}
结果显示如下:
其中的“hello world”就是要显示的文字
黑框中的是计算出来的fps,也可以显示在文字中
我可能计算有错误,但是这个不是主要问题。
下面是在网上找到的一些资料:
opencv 中的 cvPutText() 函数是加上文字的意思:
cvPutText(CvArr* img, const char* text, CvPoint origin, constCvFont* font, CvScalar color);
函数中各个参数的含义如下所示:
img---图片指针(需要说明的是,CvArr* 等价于void*,一般我们在这里传递一个IplImage*);
text---显然是需要打印到图片上的字符串的内容;
origin---字符串在图片上打印的原点(即,字符串的左下角在图片中的位置)
font---描述字体属性的变量;
color---字体的颜色;
CvFont类型变量的初始化是通过函数cvInitFont来实现的;该函数的申明如下所示:
void cvInitFont(CvFont*font, int font_face, double h_scale, double v_scale, double shear=0, intthickness=1, int line_type=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的其它绘图函数中定义的一样,表示线型的宽度和线条的类型;
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)