opencv关于视频添加滚动条的问题 一样的程序 为什么结构不一样呢!奇怪极了(4)
话不多说,先上程序
这一段是网上大神的:
#include "highgui.h"
int g_slider_position = 0;
CvCapture* g_capture = NULL;
void onTrackbarSlide(int pos)
{
cvSetCaptureProperty(g_capture, CV_CAP_PROP_POS_FRAMES,pos);
}
int main()
{
cvNamedWindow("example",CV_WINDOW_AUTOSIZE);
g_capture = cvCreateFileCapture("I:\\资料\\opencv相关资料\\OpenCV教程\\图像与视频\\video.long.mjpg.avi");
int frames = (int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_FRAME_COUNT);
//int frameRate = (int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_FPS);
if(frames!=0)
cvCreateTrackbar("position","example", &g_slider_position, frames, onTrackbarSlide);
IplImage* frame;
for(g_slider_position=0;g_slider_position<frames;g_slider_position++)
{
frame = cvQueryFrame(g_capture);
if(!frame) break;
cvShowImage("example", frame);
char c = cvWaitKey(33);
cvSetTrackbarPos("position","example", g_slider_position);
onTrackbarSlide(g_slider_position);
if(c == 27) break;
}
cvReleaseCapture(&g_capture);
cvDestroyWindow("example");
}
这一段是我的:
#include "highgui.h"
int g_slider_position = 0;
CvCapture* g_capture =NULL;
void onTrackbarSlide(int pos)
{
cvSetCaptureProperty(g_capture,CV_CAP_PROP_POS_FRAMES,pos);
}
int main()
{
cvNamedWindow("example",CV_WINDOW_AUTOSIZE);
g_capture = cvCreateFileCapture("I:\\资料\\opencv相关资料\\OpenCV教程\\图像与视频\\video.long.mjpg.avi");
int frames=(int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_FRAME_COUNT);
//int frameRate = (int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_FPS);
if(frames!=0)
cvCreateTrackbar("position","exapmle", &g_slider_position, frames, onTrackbarSlide);
IplImage * frame;
for(g_slider_position=0;g_slider_position<frames;g_slider_position++)
{
frame = cvQueryFrame(g_capture);
if(!frame) break;
cvShowImage("example",frame);
char c = cvWaitKey(33);
cvSetTrackbarPos("position","example",g_slider_position);
onTrackbarSlide(g_slider_position);
if(c==27) break;
}
cvReleaseCapture(&g_capture);
cvDestroyWindow("example");
}
运行结果:大神的程序可以成功添加滚动条 ,可是我的空空如也,没有半点滚动条的痕迹。
求解释~~!!在此谢过了!