蝴蝶书中的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;
}