用opencv编译,将图片生成了avi视频,但视屏不能播放
得一初心 2017-04-15 04:22:42 用opencv编译,将图片生成了avi视频,但视屏不能播放
# include "opencv2/opencv.hpp"
#include <iostream>
using namespace cv;
using namespace std;
void main()
{
//批量读取图片(有序)没有加c++的头文件
/*char filename[50];
char winName[50];
//Mat srcImg=imread("E:\\qiche.jpg");//读取一张图片的代码5.1
Mat srcImg;
for(int i=1;i<100;i++)
{
sprintf(filename,"E:\\cat\\%d.jpg",i);
sprintf(winName,"NO_%d",i);
srcImg=imread(filename);
if(srcImg.empty())
break;
imshow(winName,srcImg);//读取一张图片的代码5.2
}
waitKey(0);
destroyAllWindows;*/
//将视频转换成图片也没有加c++头文件
/*Mat frame;
char outfile[50];
VideoCapture cap("E:\\2.3gp");
if(!cap.isOpened())//打开失败
return;
int totalFrame=cap.get(CV_CAP_PROP_FRAME_COUNT);//获取政总数
for(int i=1;i<=totalFrame;i++)
{
cap>> frame;
if(frame.empty())
break;
sprintf(outfile,"E:\\%d.bmp",i);
imwrite(outfile,frame);
imshow("video",frame);
waitKey(15);
}
cap.release();
destroyAllWindows();
*/
//图片合成视频
VideoWriter writer("E:\\out.avi",CV_FOURCC('X','Y','T','D'),20,Size(1440,900),true);
char filename[50];
Mat frame;
for(int i=1;i<663;i++)
{
sprintf(filename,"E:\\tupian\\%d.bmp",i);
frame=imread(filename);
if(frame.empty())
break;
writer<<frame;
}
cout<<"write end !!"<<endl;
destroyAllWindows();
}