这个问题是error-in-opencv-code-for-motion-detection的延续。编辑后的代码没有任何错误,但输出视频没有创建,它是零字节!这有什么问题?另外,为运动检测创建的边界框从来没有真正捕获过运动,它不会做什么呢最初声称要这么做。我误解了一些关于代码目标的东西?所以,这是我的问题:
答案 0 :(得分:0)
以下是您可以使用以将视频构图为一组图像的代码。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "cv.h"
#include <highgui.h>
#include "cxcore.h"
int main( int argc, char** argv )
{
CvCapture *capture = cvCaptureFromAVI("E:\\Myvideo.avi");
if(!capture)
{
printf("!!! cvCaptureFromAVI failed (file not found?)\n");
return -1;
}
int fps = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
printf("* FPS: %d\n", fps);
IplImage* frame = NULL;
int frame_number = 0;
char key = 0;
while (key != 'q')
{
// get frame
frame = cvQueryFrame(capture);
if (!frame)
{
printf("!!! cvQueryFrame failed: no frame\n");
break;
}
// quit when user press 'q'
key = cvWaitKey(1000 / fps);
}
// free resources
cvReleaseCapture(&capture);
return 0;
}