这个opencv写入avi程序,我另外加入的两行想看看有没有数据读出.但没有数据.不知道那里有问题请指点指点?

[复制链接]
查看11 | 回复2 | 2010-11-18 10:50:31 | 显示全部楼层 |阅读模式
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
int main(int argc, char** argv)
{
CvCapture *capture = cvCreateFileCapture( "C:\\Users\\sl\\Documents\\Visual Studio 2005\\Projects\\test\\test\\12.avi" );

if(!capture)
{

return-1;

}
double fps = cvGetCaptureProperty(capture,CV_CAP_PROP_FPS);

CvSize size = cvSize(

(int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_WIDTH),

(int)cvGetCaptureProperty( capture, CV_CAP_PROP_FRAME_HEIGHT)
);

CvVideoWriter *writer = cvCreateVideoWriter("out.avi",CV_FOURCC('M','J','P','G'),fps,size);

IplImage* logpolar_frame = cvCreateImage(size,IPL_DEPTH_8U,3);
cvNamedWindow("haha");//我另外加入的


IplImage *bgr_frame;

while( (bgr_frame=cvQueryFrame(capture)) != NULL )
{

bgr_frame=cvQueryFrame(capture);//Init the video read

cvLogPolar( bgr_frame, logpolar_frame,cvPoint2D32f(bgr_frame->width/2,
bgr_frame->height/2),40,CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS );

cvShowImage("haha",bgr_frame);//是我另外加入的

cvWriteFrame( writer, logpolar_frame );

}

cvReleaseVideoWriter( &writer );

cvReleaseImage( &logpolar_frame );

cvReleaseCapture( &capture );
cvDestroyWindow("show");

return(0);
}

回复

使用道具 举报

千问 | 2010-11-18 10:50:31 | 显示全部楼层
我不知道你说的没有数据读出是什么意思,你的问题没有说清楚。不过可以告诉你有两个地方需要修改, while( (bgr_frame=cvQueryFrame(capture)) != NULL ){
bgr_frame=cvQueryFrame(capture);//Init the video read这里,你看你的while中已经有这个bgr_frame=cvQueryFrame(capture)操作了,不用再重复该语句,这样做的结果是每隔一帧处理一帧,而不是一次处理每帧图像了。另外你的销毁窗口语句有错误,你应该是从别的地方直接复制过来的吧,你明明定义的窗口名字是“haha”,cvNamedWindo
回复

使用道具 举报

千问 | 2010-11-18 10:50:31 | 显示全部楼层
CvVideoWriter *writer = cvCreateVideoWriter("out.avi",CV_FOURCC('M','J','P','G'),fps,size);改一下改为:CvVideoWriter *writer = cvCreateVideoWriter("out.avi",CV_FOURCC('x','i','v','
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行