根据“用opencv显示视频”我有一点问题。该代码使用visual studio 2008以c ++编写。
这是代码:
int main( int argc, char** argv )
{
cvNamedWindow( "xample2", CV_WINDOW_AUTOSIZE );
CvCapture* capture = cvCreateFileCapture( "Micro-dance_2_.avi" );
IplImage* frame;
while(1) {
frame = cvQueryFrame( capture );
if( !frame ) break;
cvShowImage( "xample2", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "xample2" );
}
调试时,程序启动,我可以看到命令窗口和灰色窗口(我想应该显示视频)几毫秒。然后两个窗户关闭。
视觉中调试窗口的输出显示以下内容:
.. 。 (很多加载和卸载的dll) 。 。
程序'[3684] 2aufg4).exe:Native'已退出,代码为0(0x0)。
我不知道我做错了什么......
我非常感谢你的帮助!
总是谢谢你们
答案 0 :(得分:1)
您需要检查cvCreateFileCapture()
的返回并确保其成功加载文件:
#include <cv.h>
#include <highgui.h>
int main(int argc, char** argv)
{
cvNamedWindow("xample2", CV_WINDOW_AUTOSIZE);
CvCapture* capture = cvCreateFileCapture( "Micro-dance_2_.avi" );
if (!capture)
{
std::cout << "!!! cvCreateFileCapture didn't found the file !!!\n";
return -1;
}
IplImage* frame;
while (1)
{
frame = cvQueryFrame(capture);
if(!frame)
break;
cvShowImage("xample2", frame);
char c = cvWaitKey(33);
if (c == 27)
break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("xample2");
}
答案 1 :(得分:0)
试试这个
int main( int argc, char** argv )
{
cvNamedWindow( "xample2", CV_WINDOW_AUTOSIZE );
CvCapture* capture = cvCreateFileCapture( "Micro-dance_2_.avi" );
IplImage* frame;
if(!cvQueryFrame( capture )){
std::cout << "Could not open file\n";
return -1;
}
while(1) {
frame = cvQueryFrame( capture );
if( !frame ) break;
cvShowImage( "xample2", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "xample2" );
}