//*********************************製作視頻滾動條未成功,原因不明**************************************************
#include <cv.h>
#include <highgui.h>
#include <highgui.h>
int g_slider_position = 0;//滾動條位置的全局變量
CvCapture * g_capture = NULL;//回調函數使用的capture對象
CvCapture * g_capture = NULL;//回調函數使用的capture對象
void onTrackbarslide(int pos)
{
cvSetCaptureProperty(g_capture, CV_CAP_PROP_POS_FRAMES, pos);//滾動的位置傳入,設置cvcapture對象的屬性
}
int main()
{
cvNamedWindow("test_demo3", CV_WINDOW_AUTOSIZE);
g_capture = cvCreateFileCapture("D:\\op\\Megamind.avi");//不用單個\表示地址是爲了避免\本事可能是轉意字符;avi文件必須爲x-vid格式或者安解碼器,也有說支持xvid格式的設備很少
int frames = (int)cvGetCaptureProperty(g_capture, CV_CAP_PROP_POS_AVI_RATIO);//查詢cvcapture對象的屬性
//int frames = (int)cvGetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_COUNT);
frames = 120;
if (frames != 0)
{
cvCreateTrackbar("Position",//滾動條名稱
"teat_demo3", //所屬窗口名稱
&g_slider_position,//滾動條位置變量
frames,//查詢的總幀數,若視頻格式不合適,則返回幀數爲0無法創建滾動條
onTrackbarslide);//回調函數
}
else
{
printf("crate trackbar failed,%d",frames);
}
IplImage * frame;
while (1)
{
frame = cvQueryFrame(g_capture);
if (!frame) break;
cvShowImage("test_demo3", frame);
char c = cvWaitKey(33);
if (c == 27) break;
}
cvReleaseCapture(&g_capture);
cvDestroyWindow("test_demo3");
{
cvSetCaptureProperty(g_capture, CV_CAP_PROP_POS_FRAMES, pos);//滾動的位置傳入,設置cvcapture對象的屬性
}
int main()
{
cvNamedWindow("test_demo3", CV_WINDOW_AUTOSIZE);
g_capture = cvCreateFileCapture("D:\\op\\Megamind.avi");//不用單個\表示地址是爲了避免\本事可能是轉意字符;avi文件必須爲x-vid格式或者安解碼器,也有說支持xvid格式的設備很少
int frames = (int)cvGetCaptureProperty(g_capture, CV_CAP_PROP_POS_AVI_RATIO);//查詢cvcapture對象的屬性
//int frames = (int)cvGetCaptureProperty(g_capture, CV_CAP_PROP_FRAME_COUNT);
frames = 120;
if (frames != 0)
{
cvCreateTrackbar("Position",//滾動條名稱
"teat_demo3", //所屬窗口名稱
&g_slider_position,//滾動條位置變量
frames,//查詢的總幀數,若視頻格式不合適,則返回幀數爲0無法創建滾動條
onTrackbarslide);//回調函數
}
else
{
printf("crate trackbar failed,%d",frames);
}
IplImage * frame;
while (1)
{
frame = cvQueryFrame(g_capture);
if (!frame) break;
cvShowImage("test_demo3", frame);
char c = cvWaitKey(33);
if (c == 27) break;
}
cvReleaseCapture(&g_capture);
cvDestroyWindow("test_demo3");
return (0);
}
}