显示视频在循环中捕获的连续帧数



我正在尝试将从视频中取出的帧数放在循环中。我想按顺序显示这些帧,然后我想用opencv 2.3减去它。

我的问题是,我不知道哪里函数没有被调用。

下面是我的代码:
  void loadImage(IplImage *image, int number)
  {
    // Store path to directory
    char filename[100];
    strcpy(filename, "S:FINAL PROJECT ABSTRACTimages 1");
 char *frame;
// Convert integer to char    
char frameNo[10];
//sprintf(frame, "%0.3i", number);
// Combine to generate path
  strcat(filename, frameNo);
  strcat(filename, ".jpg");
// Use path to load image
  image = cvLoadImage(filename);
 }
  int _tmain(int argc, _TCHAR* argv[]){
  IplImage *im=0;
  int nImages = 6;
  for (int i = 0; i < nImages; ++i)
 {

  loadImage(im, i);
  char filename[100];
  strcpy(filename, "images 1");
  char frameNo[10];
   sprintf(frameNo, "%03i", i);
  strcat(filename, frameNo);
  strcat(filename, ".jpg");

IplImage *im = cvLoadImage(filename,CV_LOAD_IMAGE_COLOR);
cvNamedWindow("pic");
cvShowImage("pic",im);
cvWaitKey();
}
}
//}

我在构建中没有得到任何错误。但在调试时显示:-在frame .exe循环中0x77db15de未处理异常:0xC0000005:访问冲突。

在strcat(文件名,frameNo);strcat(文件名,"jpg");

你的字符串处理非常混乱。不清楚你想要生成的路径。

您可以用单个sprintf()替换大部分路径生成

char filename[100];
sprintf(filename, "S:\FINAL PROJECT ABSTRACT\images 1%03i.jpg",number);
image = cvLoadImage(filename);

(100个字符似乎有点随意-可能有点短)

不知道这是否是您的图像路径的正确字符串,您试图插入一个'。,所以我不知道你真正的文件路径是什么样子的。

然而,在loadImage()函数中加载了图像,然后你似乎在main()中做同样的事情(扔掉你刚刚加载的图像,生成另一个路径,然后加载它)。所以我怀疑这是否会工作,即使你修复字符串处理。

相关内容

  • 没有找到相关文章

最新更新