您的位置:首页 > 运维架构

Opencv学习之--进度条控制视频

2017-04-14 11:01 267 查看


include “opencv2\opencv.hpp”

using namespace std;

using namespace cv;

int value;

double Fps;

int framePos;

void OnChange(int , void* param)

{

VideoCapture cap = (VideoCapture)param;

cap.set(CV_CAP_PROP_POS_FRAMES, value); //设置视频帧位置

}

void main()

{

char strFps[20];

Mat frame;

VideoCapture cap(“1.avi”);

if (!cap.isOpened())//打开失败

return;

int FrameCount = cap.get(CV_CAP_PROP_FRAME_COUNT);//获取总帧数

namedWindow(“Video”, CV_WND_PROP_AUTOSIZE);

createTrackbar(“Frame”, “Video”, &value, FrameCount, OnChange, &cap);

Fps=cap.get(CV_CAP_PROP_FPS);//获得视频帧率

sprintf(strFps, “Fps:%1.0f/s”, Fps);//格式化字符串

while (1)

{

framePos = cap.get(CV_CAP_PROP_POS_FRAMES);//获取视频帧位置

setTrackbarPos(“Frame”, “Video”, framePos);//设置滑动条位置

cap >> frame;

if (frame.empty())//取帧失败

break;

putText(frame, strFps, Point(5, 30), CV_FONT_HERSHEY_COMPLEX_SMALL, 1, Scalar(0, 255, 0), 1, 8);

imshow(“Video”, frame);

if(27==waitKey(1000/Fps)) //Esc跳出循环

break;

}

cap.release();

destroyAllWindows();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: