用OpenCV写的播放视频的程序,有错,如下?

intmain()//播放视频文件{cvNamedWindow("Exception2",CV_WINDOW_AUTOSIZE);CvCapture*capture=NU... int main() //播放视频文件

{
cvNamedWindow("Exception2",CV_WINDOW_AUTOSIZE);

CvCapture* capture = NULL;
capture = cvCreateFileCapture("D:\\feiq\\Recv Files\\123.rmvb.AVI");

IplImage* frame;
while(1)
{
frame = cvQueryFrame(capture);
if(!frame)
{
break;
}
cvShowImage("Example2",frame);
char c = cvWaitKey(33);
if(c == 27) //如果用户触发了ESC键(ASCII 27),循环就退出,读入视频停止。
{
break;
}
cvReleaseCapture(&capture);
/*退出循环体后,释放资源。
*/

cvDestroyWindow("Example2");

}

return 0;
}

出错:
线程 'Win64 线程' (0xe68) 已退出,返回值为 0 (0x0)。
线程 'Win64 线程' (0x150c) 已退出,返回值为 0 (0x0)。
程序“[5512] FirstOpenCVDemo.exe: 本机”已退出,返回值为 0 (0x0)。
展开
 我来答
gao路人甲
2013-07-13
知道答主
回答量:3
采纳率:0%
帮助的人:2.8万
展开全部
int main() //播放视频文件
{

CvCapture* capture = cvCreateFileCapture("D:\\Devotion.f4v");
IplImage* frame;
while(1)
{
frame = cvQueryFrame(capture);
if(!frame)
break;
cvShowImage("Example2",frame);
char c = cvWaitKey(33);
if(c == 27) //如果用户触发了ESC键(ASCII 27),循环就退出,读入视频停止。
break;

}
cvReleaseCapture(&capture);
//退出循环体后,释放资源。

cvDestroyWindow("Example2");
return 0;
}

capture = cvCreateFileCapture("D:\\feiq\\Recv Files\\123.rmvb.AVI"); 这里载入的视频文件名不对,rmvb和AVI后缀名混了

下面的while循环不应该包括cvReleaseCapture和cvDestroyWindow,包括进去后窗口会一直建立和销毁所以什么都看不到
WM_THU
2013-07-13 · TA获得超过7164个赞
知道大有可为答主
回答量:4285
采纳率:80%
帮助的人:3966万
展开全部
看程序是正常的返回的啊,你说的出错在哪?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式