OpenCV学习的第一个实例(视屏滚动条)
2014-11-16 17:46
197 查看
using namespace std;
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( "Example2_3", CV_WINDOW_AUTOSIZE );
g_capture = cvCreateFileCapture( "D:\\OpenCV\\Mywork\\Test.flv" );
IplImage *foo = cvQueryFrame( g_capture); //在调用cvGetCaptureProperty前必须调用cvQueryFrame
int frames = (int) cvGetCaptureProperty(
g_capture,
CV_CAP_PROP_FRAME_COUNT
);
int tmpw = (int) cvGetCaptureProperty(
g_capture,
CV_CAP_PROP_FRAME_WIDTH
);
int tmph = (int) cvGetCaptureProperty(
g_capture,
CV_CAP_PROP_FRAME_HEIGHT
);
printf("opencv frames %d w %d h %d\n",frames,tmpw,tmph);
cvCreateTrackbar( //创建拖动条,关联回调函数onTrackbarSlide,这个函数将在拖动条改变时触发
"Position",
"Example2_3",
&g_slider_position,
frames,
onTrackbarSlide
);
IplImage* frame;
frames = 0;
while(1) {
frame = cvQueryFrame( g_capture ); //获取视屏的当前帧,每次调用帧序数向后推移+1
if( !frame ) break;
int frames = cvGetCaptureProperty( g_capture, CV_CAP_PROP_POS_FRAMES);// 获取当前帧序号
// frames++; //My cheat 控制帧间隔
printf("\nFrame number=%d\n",frames);
cvSetTrackbarPos("Position","Example2_3",frames); //将拖动条指向(frames)指定的位置,该函数会调用 // onTrackbarSlide
,使帧序数和拖动条位置对应
cvShowImage( "Example2_3", frame );
char c = (char)cvWaitKey(10);
if( c == 27 ) break;
}
cvReleaseCapture( &g_capture );
cvDestroyWindow( "Example2_3" );
return(0);
}
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( "Example2_3", CV_WINDOW_AUTOSIZE );
g_capture = cvCreateFileCapture( "D:\\OpenCV\\Mywork\\Test.flv" );
IplImage *foo = cvQueryFrame( g_capture); //在调用cvGetCaptureProperty前必须调用cvQueryFrame
int frames = (int) cvGetCaptureProperty(
g_capture,
CV_CAP_PROP_FRAME_COUNT
);
int tmpw = (int) cvGetCaptureProperty(
g_capture,
CV_CAP_PROP_FRAME_WIDTH
);
int tmph = (int) cvGetCaptureProperty(
g_capture,
CV_CAP_PROP_FRAME_HEIGHT
);
printf("opencv frames %d w %d h %d\n",frames,tmpw,tmph);
cvCreateTrackbar( //创建拖动条,关联回调函数onTrackbarSlide,这个函数将在拖动条改变时触发
"Position",
"Example2_3",
&g_slider_position,
frames,
onTrackbarSlide
);
IplImage* frame;
frames = 0;
while(1) {
frame = cvQueryFrame( g_capture ); //获取视屏的当前帧,每次调用帧序数向后推移+1
if( !frame ) break;
int frames = cvGetCaptureProperty( g_capture, CV_CAP_PROP_POS_FRAMES);// 获取当前帧序号
// frames++; //My cheat 控制帧间隔
printf("\nFrame number=%d\n",frames);
cvSetTrackbarPos("Position","Example2_3",frames); //将拖动条指向(frames)指定的位置,该函数会调用 // onTrackbarSlide
,使帧序数和拖动条位置对应
cvShowImage( "Example2_3", frame );
char c = (char)cvWaitKey(10);
if( c == 27 ) break;
}
cvReleaseCapture( &g_capture );
cvDestroyWindow( "Example2_3" );
return(0);
}
相关文章推荐
- Struts2 第一个实例学习
- 学习struts2的第一个小实例
- OpenCV学习之CvMat的用法详解及实例
- 别人:OpenCV学习笔记(一)——安装配置、第一个程序(http://blog.csdn.net/yang_xian521/article/details/6894228)
- OpenCV学习之CvMat的用法详解及实例
- OWC学习笔记-电子表格(Spreadsheet)第一个实例
- opencv 学习第一天 学习opencv(中文版)创建一个类似滚动条
- 基础学习笔记之opencv(18):kmeans函数使用实例
- 转:OpenCV学习之CvMat的用法详解及实例
- Opencv学习 Canny加滚动条
- 根据滚动条位置缩放图像(学习OpenCV课后题 2.5)
- OpenCV学习之CvMat的用法详解及实例
- MVC3+EF4.1学习系列(一)-------创建EF4.1 code first的第一个实例(强转)
- MVC3+EF4.1学习系列(一)-------创建EF4.1 code first的第一个实例
- 【OpenCV学习】OpenMP并行化实例
- 【C# -- OpenCV】Emgu CV 第一个实例
- Struts1学习笔记_1(第一个应用实例)
- OpenCV2.3.1的学习——安装+配置+第一个历程
- Android JNI学习之第一个入门实例
- opencv 学习第一天 学习opencv(中文版)第一个程序 打开一个图像