Я пытаюсь использовать OpenCV для записи видеофайла. У меня есть простая программа, которая загружает кадры из видеофайла, а затем принимает их сохранить
Сначала cvCreateVideoWrite всегда возвращает NULL. Я получил ответ от вашей группы, в котором говорится, что он возвращает отдельные изображения, и попытался изменить имя файла на test0001.png.
Но теперь функция cvWriteFrame всегда дает сбой, код
CString path;
path="d:\\mice\\Test_Day26_2.avi";
CvCapture* capture = cvCaptureFromAVI(path);
IplImage* img = 0;
CvVideoWriter *writer = 0;
int isColor = 1;
int fps = 25; // or 30
int frameW = 640; // 744 for firewire cameras
int frameH = 480; // 480 for firewire cameras
writer=cvCreateVideoWriter("d:\\mice\\test0001.png",CV_FOURCC('P','I','M','1'),
fps,cvSize(frameW,frameH),isColor);
if (writer==0)
MessageBox("could not open writter");
int nFrames = 50;
for(int i=0;i<nFrames;i++){
if (!cvGrabFrame(capture))
MessageBox("could not grab frame");
img=cvRetrieveFrame(capture); // retrieve the captured frame
if (img==0)
MessageBox("could not retrive data");
if (!cvWriteFrame(writer,img) )
MessageBox("could not write frame");
}
cvReleaseVideoWriter(&writer);