OpenCV播放视频-----滚动条随着视频播放移动代码
學習OpenCV,使用highGUI工具包實現視頻的播放控制,使滾動條隨著視頻播放移動
代碼如下:
#include "highgui.h"
#include "direct.h"
#include "cv.h"
using namespace cv;
//播放視頻,有滾動條
int g_slider_position = 0;//滾動條當前位置
CvCapture* g_capture = NULL;//指向視頻文件的指針
int frame_count = 0;//控制滾動條的位置
//定義拖動條函數:設置視頻獲取信息(對指定視頻g_capture設置屬性標識符CV_CAP_PROP_POS_FRAMES的值pos)
void onTrackbarSlide(int pos)
{
?? ?cvSetCaptureProperty(g_capture, CV_CAP_PROP_POS_FRAMES, pos);
?? ?frame_count = pos;
}
int main()
{
?? ?cvNamedWindow("Example3", CV_WINDOW_AUTOSIZE);
?? ?g_capture = cvCreateFileCapture("E:\\IME\\01.mp4");
?? ?int frames = (int)cvGetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_COUNT);//得到視頻總幀數
?? ?if (frames!=0)
?? ?{
?? ??? ?cvCreateTrackbar("Position", "Example3", &g_slider_position, frames, onTrackbarSlide);//創建滾動條
?? ?}
?? ?IplImage* frame;
?? ?while (1) ?//實時捕捉視頻幀顯示,并且更新進度條
?? ?{
?? ??? ?frame = cvQueryFrame(g_capture);//獲得一幀圖像
?? ??? ?if (!frame) break;
?? ??? ?cvShowImage("Example3", frame);
?? ??? ?cvSetTrackbarPos("Position", "Example3", frame_count++);//進度條根據視頻進度跟新位置
?? ??? ?char c = cvWaitKey(33);
?? ??? ?if (c == 27) break;
?? ?}
?? ?cvReleaseCapture(&g_capture);
?? ?cvDestroyWindow("Example3");
?? ?return 0;
}
學習中,記錄一下~
總結
以上是生活随笔為你收集整理的OpenCV播放视频-----滚动条随着视频播放移动代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: \V110\Microsoft.CppC
- 下一篇: OpenCV 2.4.9-2.4.13各