opencv 视频分解成图片 图片合成视频 批量读取图片

来源:互联网 发布:淘宝交易快照在哪里 编辑:程序博客网 时间:2024/05/11 22:40
#include"opencv2/opencv.hpp"using namespace cv;using namespace std;void main(){//批量读取图片(有序)  char filename[50];  char winname[50];  Mat srcImg;  for(int i=0;i<1000;i++)  {  sprintf(filename,"%d.bmp",i);  sprintf(winname,"No--%d",i);  srcImg=imread(filename);  if(srcImg.empty())     break;    imshow(winname,srcImg);  }  waitKey(0);  destroyAllWindows();//----------------------------------------------------视频分解成图片-----------------------------------------------------//Mat frame;char outfile[50];VideoCapture cap("1.avi");if(!cap.isOpened())//打开失败   returnint totalname=cap.get(CV_CAP_PROP_FRAME_COUNT);//获取总帧数for(int i=1;i<=totalFrame;i++){   cap>>frame;   if(frame.empty())     break;     sprintf(outfile,"%d.bmp",i);    inshow("video",frame);    waitKey(15);}cap.release();deatroyAllwindows();///////////////////////////////////////////////图片合成视频  //////////////////////////////////////////////VideoWriter writer("1.avi",CV_FOURCC('X','V','T','D'),20,Size(568,320),true);char filename[50];Mat frame;for(int i=1;i<64;i++){   sprintf(filename,"%d.bmp",i);//   frame=imread(filename);   cap.open(filename);   if(!cap.isOpened())     break;    cap>>frame;   if(frame.empty())      break;    writer<<frame;}cout<<"write end!";destroyAllWindows();}