opencv读入视频并播放的类

来源:互联网 发布:生态环境大数据平台 编辑:程序博客网 时间:2024/05/03 18:09
直接上代码。

// .h #pragma once#include <opencv2\highgui\highgui.hpp>class VideoPlayer{public:     VideoPlayer();     ~VideoPlayer();     int Play();};


// .cpp#include "stdafx.h"#include "VideoPlayer.h"VideoPlayer::VideoPlayer(){}VideoPlayer::~VideoPlayer(){}int VideoPlayer::Play(){     CvCapture * capture = cvCreateFileCapture("D:\\Handwriting Beautification Using Token Means.mp4");  //读取视频     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);                          //抓取帧          float ratio = cvGetCaptureProperty(capture, CV_CAP_PROP_POS_AVI_RATIO);     //读取该帧在视频中的相对位置          printf("%f\n", ratio);          if (!frame)break;          cvShowImage("example", frame);                          //显示          char c = cvWaitKey(vfps);          if (c == 27)break;     }     cvReleaseCapture(&capture);     cvDestroyWindow("example");     return 0;}



注意类的写法,很多c++语法都忘记了
比如play前面没有写上类名,就会出现 “无法编译的外部符号” 报错

0 0
原创粉丝点击