我正在研究Learning OpenCV(O'Reilly,来自Bradsky和Kaehler)。
编译并运行例2-3后,由cvNamedWindow
(应该存储/显示视频)创建的窗口仅显示一瞬间。然后它消失了。
这是我的代码:
#include "cv.h"
#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( int argc, char** argv ) {
cvNamedWindow( "Example3", CV_WINDOW_AUTOSIZE );
g_capture = cvCreateFileCapture( argv[1] );
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 loop (as in Example 2) capture & show video
// Release memory and destroy window
return(0);
}
我正在使用Windows 7,OpenCV 2.4.3和VS 2010;我正在从命令行运行代码。
是什么原因导致窗口关闭如此之快?
答案 0 :(得分:0)
您必须使用while循环捕获并显示视频,如示例2所示。此释放后的内存和销毁窗口。 ;)