opencv播放视频一闪而过

ogiso_pest 2010-10-17 08:00:03
opencv下播放avi出现问题,运行后出现窗口就消失了
改成cvWaitKey(0)也依然是一闪而过
请问怎么解决问题啊?
谢谢大家了啊

#include "highgui.h"

int main( int argc, char** argv ) {
cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
//CvCapture* capture = cvCaptureFromAVI( argv[1] ); // either one will work
CvCapture* capture = cvCreateFileCapture( "test.avi" );
IplImage* frame;
while(1) {
frame = cvQueryFrame( capture );
if( !frame ) break;
cvShowImage( "Example2", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "Example2" );

return 0;
}
...全文
1171 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010807743 2013-07-07
  • 打赏
  • 举报
回复
下载安装了XviD codec,一开始可以正常显示窗口播放视频,后来写了其他程序,不知道什么原因就又变成窗口一闪而过了,重新安装XviD codec也不行,麻烦各位大神帮帮忙啊
whjxnyzh 2012-10-17
  • 打赏
  • 举报
回复
请问具体怎么弄的啊[Quote=引用 12 楼 的回复:]

用七楼的办法 解决成功。
[/Quote]
bendandun 2012-10-10
  • 打赏
  • 举报
回复
下载安装了,还需要怎么转换呢?不懂啊,求指教,谢谢!
colorful__day 2012-10-05
  • 打赏
  • 举报
回复
用七楼的办法 解决成功。
barte5156 2012-06-17
  • 打赏
  • 举报
回复
我也遇到同样的问题,我试试7楼的办法看看先!
hackerjoy 2012-05-08
  • 打赏
  • 举报
回复
七楼正解。。谢谢啦
majian0558 2012-03-20
  • 打赏
  • 举报
回复
7楼说的是正确的,楼主只需要下载一个视频解码器即可解决,http://www.xvidmovies.com/codec/
wjjsuperwjj 2012-02-20
  • 打赏
  • 举报
回复
我也遇到这个问题了,用7楼的方法解决了,谢谢!
我重复一下解决办法:
1.需要下载安装XviD codec,http://www.xvidmovies.com/codec/
2.你打开的文件是avi而且必须是XviD编码的视频文件,如果不是就要用视频转换器转换一下
anzm2006 2011-09-12
  • 打赏
  • 举报
回复
视频一闪而过如果程序没有错误一般可能有两个问题
1.需要下载安装XviD codec,http://www.xvidmovies.com/codec/。
2.你打开的文件是avi而且必须是XviD编码的视频文件,如果不是就要用视频转换器转换一下
转:http://zhidao.baidu.com/question/316469686.html
fancy_MSF 2011-03-28
  • 打赏
  • 举报
回复
视频格式OPenCV不支持,
凡人皆有一死 2011-01-01
  • 打赏
  • 举报
回复
和 楼主一样 文件没有打开
凡人皆有一死 2011-01-01
  • 打赏
  • 举报
回复
cv::waitKey();
seyvlei 2010-11-12
  • 打赏
  • 举报
回复
int main( int argc, char** argv )
{
cvNamedWindow("Example",CV_WINDOW_AUTOSIZE);
const char* filename = "C:\Users\sl\Documents\Visual Studio 2005\Projects\test\1.avi";
CvCapture* capture = cvCreateFileCapture( filename );
IplImage* frame;
while(1)
{
frame = cvQueryFrame( capture );
if( !frame ) break;
cvShowImage( "Example", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "Example" );
}
改成这样还是一闪而过

fengbingchun 2010-10-18
  • 打赏
  • 举报
回复
1楼修改后与原代码没什么区别啊
感觉原代码没什么错误呀
zfc929 2010-10-18
  • 打赏
  • 举报
回复


修改为:
#include "highgui.h"

int main( int argc, char** argv ) {
cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
//CvCapture* capture = cvCaptureFromAVI( argv[1] ); // either one will work
CvCapture* capture = cvCreateFileCapture( "test.avi" );
IplImage* frame;
while(frame =cvQueryFrame( capture )) {

if( !frame ) break;
cvShowImage( "Example2", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "Example2" );

return 0;
}

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧