#include <cv.h> #include <highgui.h> #include <stdio.h> int main() { IplImage *img=cvLoadImage("0.bmp",0); IplImage *img1=cvLoadImage("10.bmp",0); IplImage *temp=cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1); CvVideoWriter * pwriter; pwriter=cvCreateVideoWriter("my.avi",0 ,20,cvGetSize(img),1); printf("%x\n",pwriter); int num=100; while(num>0) { if(num%2==0) cvCopy(img,temp); else cvCopy(img1,temp); int result=cvWriteFrame(pwriter,temp); num--; } cvReleaseVideoWriter(&pwriter); cvReleaseImage(&img); //======================================================= CvCapture * capture = cvCreateFileCapture ("my.avi"); //读取视频 if(capture==NULL) { printf("NO capture"); //读取不成功,则标识 return 1; }; double fps=cvGetCaptureProperty(capture, CV_CAP_PROP_FPS ); //读取视频的帧率 int vfps = 1000 / fps; //计算每帧播放的时间 printf("%5.1f\t%5d\n",fps,vfps); double frames=cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_COUNT);//读取视频中有多少帧 printf("frames is %f\n",frames); cvNamedWindow("example",CV_WINDOW_AUTOSIZE); //定义窗口 IplImage * frame; while(1) { frame = cvQueryFrame( capture ); if(!frame) break; float ratio = cvGetCaptureProperty(capture, CV_CAP_PROP_POS_AVI_RATIO); //读取该帧在视频中的相对位置 printf("%f\n",ratio); cvShowImage("example",frame); //显示 char c = cvWaitKey(vfps); if(c == 27 )break; } cvReleaseCapture(&capture); cvDestroyWindow("example"); return 0; }
|
|
来自: 昵称12278894 > 《opencv》