用opencv抽取视频的帧并保存为连续的图片

时间:2024-04-08 23:07:38

转自http://blog.csdn.net/timidsmile/article/details/8283319

  1. #include"stdafx.h"
  2. #include <stdio.h>
  3. #include <cv.h>
  4. #include <highgui.h>
  5. int main(int argc, char *argv[])
  6. {
  7. CvCapture* capture = cvCaptureFromAVI("C:\\me.avi");
  8. int i = 0;
  9. IplImage* img = 0;
  10. char image_name[25];
  11. cvNamedWindow( "vivi");
  12. //读取和显示
  13. while(1)
  14. {
  15. img = cvQueryFrame(capture); //获取一帧图片
  16. if(img == NULL)
  17. break;
  18. cvShowImage( "vivi", img ); //将其显示
  19. char key = cvWaitKey(20);
  20. sprintf(image_name, "%s%d%s", "..\\tutu\\image", ++i, ".jpg");//保存的图片名
  21. cvSaveImage( image_name, img);   //保存一帧图片
  22. }
  23. cvReleaseCapture(&capture);
  24. cvDestroyWindow("vivi");
  25. return 0;
  26. }

========================

这里是将抽取的图片保存在了 当前目录下的 tutu 目录下。

开始的时候遇到了   Stack around the variable was corrupted

的问题。。。

后来才发现是

存放图片名字的数组 溢出了。。。。

额,要注意哟~~