opencv 叠加文字_Hello world.
視頻是一幀一幀的圖像組成的,在視頻上添加文字就是在沒一幀上添加圖像而已,這么看來這個(gè)問題就沒有那么難了。
代碼如下:#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;
}
結(jié)果顯示如下:
其中的“hello world”就是要顯示的文字
黑框中的是計(jì)算出來的fps,也可以顯示在文字中
我可能計(jì)算有錯(cuò)誤,但是這個(gè)不是主要問題。
下面是在網(wǎng)上找到的一些資料:
opencv 中的 cvPutText() 函數(shù)是加上文字的意思:
cvPutText(CvArr* img, const char* text, CvPoint origin, constCvFont* font, CvScalar color);
函數(shù)中各個(gè)參數(shù)的含義如下所示:
img---圖片指針(需要說明的是,CvArr* 等價(jià)于void*,一般我們?cè)谶@里傳遞一個(gè)IplImage*);
text---顯然是需要打印到圖片上的字符串的內(nèi)容;
origin---字符串在圖片上打印的原點(diǎn)(即,字符串的左下角在圖片中的位置)
font---描述字體屬性的變量;
color---字體的顏色;
CvFont類型變量的初始化是通過函數(shù)cvInitFont來實(shí)現(xiàn)的;該函數(shù)的申明如下所示:
void cvInitFont(CvFont*font, int font_face, double h_scale, double v_scale, double shear=0, intthickness=1, int line_type=8);
該函數(shù)中各個(gè)變量的含義如下所示:
font---傳入及傳出的字體屬性類型指針;
font_face---表示字體的類型,其取值只能為以下數(shù)值之一:
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,表示水平方向字體的縮放系數(shù);
v_scale---只能為1或0.5,表示垂直方向字體的縮放系數(shù);
shear---取值從0---1,表示字體的傾斜程度,0表示不傾斜,1表示傾斜45度;
thichness, line_type這兩個(gè)參數(shù)同OpenCV的其它繪圖函數(shù)中定義的一樣,表示線型的寬度和線條的類型;
總結(jié)
以上是生活随笔為你收集整理的opencv 叠加文字_Hello world.的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux怎么用jconsole_jco
- 下一篇: rust核电分解机在哪里_腐蚀RUST个