opencv视频读取程序,为什么没有显示,请各位大侠帮帮忙

#include"iostream"#include"cv.h"#include"highgui.h"usingnamespacestd;intmain(intargc,... #include "iostream"
#include "cv.h"
#include "highgui.h"
using namespace std;
int main(int argc,char** argv)
{
CvCapture* capture=cvCreateFileCapture("video.avi");//cvCaptureFromAVI("video.avi");// 读入AVI文件cvCreateFileCapture(argv[1]);
IplImage *img=0;
if (!cvGrabFrame(capture))//cvQueryFrame 函数是 cvGrabFrame 函数和 cvRetrieveFrame函数
//的组合调用,直接返回一幅图像。单独cvGrabFrame不能。
{
printf("Could not grab a frame\n\7");
exit(0);
}
img=cvRetrieveFrame(capture);//取回由函数cvGrabFrame抓取的图像

img=cvQueryFrame(capture);//获取视频
cvNamedWindow("avi", CV_WINDOW_AUTOSIZE); //定义一个窗口
//捕捉装置的各个属性
int frameH =(int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT);//获得文件总帧数以对滚动条设置
int frameW =(int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH);
int fps =(int) cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);//每秒的帧数
cvSetCaptureProperty(capture,CV_CAP_PROP_POS_AVI_RATIO,0);
//CV_CAP_PROP_POS_AVI_RATIO - 视频文件的相对位置(0 - 影片的开始,1 - 影片的结尾)

CvVideoWriter *writer=0;

int nFrames=50;
writer=cvCreateVideoWriter("video.avi",CV_FOURCC('D','I','V','X'),fps,cvSize(frameW,frameH),-1);
//四个字符用来表示压缩帧的codec 例如CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4 codec
for(int i=0;i<nFrames;i++)
{
cvGrabFrame(capture);//抓取帧
img=cvRetrieveFrame(capture);//恢复图像
cvWriteFrame(writer,img);//将帧加入视频文件
cvShowImage("avi", img);
if(cvWaitKey(200)>0)break;
}
cvReleaseVideoWriter(&writer);
cvDestroyWindow("avi");cvReleaseCapture(&capture);
cvReleaseImage(&img);//为什么释放这个要出错
return 0;
}
展开
 我来答
eif6
2011-10-20
知道答主
回答量:5
采纳率:0%
帮助的人:3.3万
展开全部
驱动问题,可搜索Camerads,完美解决方案。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chensuchang
2011-10-21 · TA获得超过6399个赞
知道大有可为答主
回答量:6655
采纳率:50%
帮助的人:4950万
展开全部
你检查一下video.avi的编码格式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式