首页 > 代码库 > opencv再学习(1):视频的读取和滚动条的添加

opencv再学习(1):视频的读取和滚动条的添加

蝴蝶书中的21页。(由于此书主要还是用着IplImage的方式,为了方便,我还是尽量改成Mat吧。)

这部分主要进行播放AVI视频及滚动条的实现。

#include<iostream>
#include<opencv2\ml\ml.hpp>
#include<opencv2\core\core.hpp>
#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>

using namespace std;
using namespace cv;

CvCapture *capture;//视频捕捉器
void onTrackbarSlide(int pos) {//滚动函数
cvSetCaptureProperty(capture, CV_CAP_PROP_POS_FRAMES, pos);
}

int main(int argc, char* argv[]) {

namedWindow("Example");
capture = cvCreateFileCapture("F:\\迅雷下载\\[电影天堂www.dy2018.com]比利·林恩的中场战事BD中英双字.rmvb");
Mat image;
int frames = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT);//获取视频的全部帧数

if (frames != 0) {
cvCreateTrackbar("Position", "Example", 0, frames, onTrackbarSlide);
}
while (1) {
image = cvQueryFrame(capture);
resize(image, image, Size(600, 400));//压缩图片大小
if (image.empty())
break;
imshow("Example", image);
char c = waitKey(3);
if (c == 27) break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("Example");
return 0;
}

opencv再学习(1):视频的读取和滚动条的添加