2012-02-29 53 views
0

我希望将视频分割成图像帧,然后将它们保存到文件中。 编译代码时出现以下错误apear: 未定义的引用itoa和strcat。 有什么帮助吗?使用OpenCV(第一个版本)将图像分割成一帧图像C

感谢

的代码如下:

#include <stdio.h> 
#include <stdlib.h> 
#include "cv.h" 
#include <highgui.h> 
#include "cxcore.h" 
int main(int argc, char** argv) 
{  

    CvCapture *capture = cvCaptureFromAVI("xyz.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; 
     }  

     char filename[100]; 
     strcpy(filename, "frameSplit"); 

     char frame_id[30]; 
     itoa(frame_number, frame_id, 10); 
     strcat(filename, frame_id); 
     strcat(filename, ".png"); 

     printf("* Saving: %s\n", filename); 

     if (!cvSaveImage(filename, frame,0)) 
     { 
      printf("!!! cvSaveImage failed\n"); 
      break; 
     } 

     frame_number++; 

     // quit when user press 'q' 
     key = cvWaitKey(1000/fps); 
    } 

    // free resources 
    cvReleaseCapture(&capture); 

    return 0; 
} 
+0

可能重复:HTTP:// stackoverflow.com/questions/5428632/c-error-undefined-reference-to-itoa – Cyclonecode 2012-02-29 23:08:16

+0

非常感谢你,这个问题解决了这个问题。现在的问题是该计划没有做到假设要做的事情。它读取avi文件,但不会将视频分割成图像并将其保存到“frameSplit”文件中。 – Hernando 2012-02-29 23:25:33

回答

0

你忘了#包括< string.h>的

试试吧:)

+0

非常感谢。我只是忘了标题。 – Hernando 2012-03-01 10:24:03