用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();

}
...全文
1343 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr_Zhouzl 2017-04-15
  • 打赏
  • 举报
回复
VideoWriter writer("E:\\out.avi",CV_FOURCC('X','Y','T','D'),20,Size(1440,900),true); 视频的大小是1440*900吗?

1,451

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 图象工具使用
社区管理员
  • 图象工具使用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧