您的位置:首页 > 运维架构

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

2017-06-02 21:59 507 查看
#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())//打开失败
return;
int 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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: