/*g++ *.cpp `pkg-config --cflags --libs opencv` -std=c++11*/

 #include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
#define NUM_FRAME 300
#define SIZE 7 char path[];//输入文件路径 //将图片序列转换为视频
void getVideo()
{
int i = ;
IplImage* img = ;//读入图像
IplImage* outimg = ;//修改图像尺寸
char image_name[];//图像名字
char videoname[];
strcpy(videoname, path);
strcat(videoname, "//1.avi"); //初始化视频编写器,参数根据实际视频文件修改
CvVideoWriter *writer = ;
//从文件读入视频
CvCapture* capture = cvCaptureFromAVI(videoname);
//读取和显示
int isColor = ;
IplImage* frameimg;//从视频中提取的帧图像
int fps = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);//视频的fps
int frameH = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT);//视频的高度
int frameW = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH);//视频的宽度
writer = cvCreateVideoWriter("..//output//2.avi",-, fps, cvSize(frameW, frameH), isColor);//创建视频写入
printf("\tvideo height : %d\n\tvideo width : %d\n\tfps : %d\n", frameH, frameW, fps);
//创建窗口
cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);
//读入图片,并制作幻灯片
while (i<SIZE)
{
CvSize Out_Img_size;//图片的大小
Out_Img_size.width = frameW;//使读入图片的大小与视频尺寸相同
Out_Img_size.height = frameH;
sprintf(image_name, "%d%s", ++i, ".jpg");//得到图片名字
char imgname[];
strcpy(imgname, path);
strcat(imgname, "//");
strcat(imgname,image_name);//加上路径
img = cvLoadImage(imgname);//打开图片
outimg = cvCreateImage(Out_Img_size, img->depth, img->nChannels);//创建一张与视频帧大小相同的图像
cvResize(img, outimg, CV_INTER_LINEAR);//让打开的图像重写为指定大小
if (!img)
{
printf("Could not load image file...\n");
exit();
}
//设置字体
CvFont font;
cvInitFont(&font, CV_FONT_VECTOR0, 0.5f, 0.5f, , , );
//在图像中显示文本字符串
cvPutText(outimg, "StudentID", cvPoint(frameW - , frameH - ), &font, CV_RGB(, , ));
cvPutText(outimg, "name", cvPoint(frameW - , frameH - ), &font, CV_RGB(, , ));
char key = cvWaitKey();//等待
//将图像写入视频,重复25次是为了使之放映速度变慢
for (int j = ; j < ; j++) {
cvShowImage("mainWin", outimg);
cvWriteFrame(writer, outimg);
}
}
i = ;
while ()
{
frameimg = cvQueryFrame(capture); //获取一帧图片
if (!frameimg)break;//读到尽头,退出
//设置字体
CvFont font;
cvInitFont(&font, CV_FONT_VECTOR0, 0.5f,0.5f , , , );
//在图像中显示文本字符串
cvPutText(frameimg, "StudentID", cvPoint(frameW - , frameH - ), &font, CV_RGB(, , ));
cvPutText(frameimg, "name", cvPoint(frameW - , frameH - ), &font, CV_RGB(, , ));
cvShowImage("mainWin", frameimg);
char key = cvWaitKey();
//将视频帧写入视频
cvWriteFrame(writer, frameimg);
}
cvReleaseVideoWriter(&writer);
cvDestroyWindow("mainWin");
} int main(int argc, char** argv)
{
strcpy(path, argv[]);
getVideo();
waitKey();
system("pause");
return ;
}

opencv图片转幻灯片视频的更多相关文章

  1. Python OpenCV图片转视频 工具贴(三)

    Python OpenCV图片转视频 粘贴即用,注意使用时最好把自己的文件按照数字顺序命名.按照引导输入操作. # 一键傻瓜式引导图片串成视频 # 注意使用前最好把文件命名为数字顺序格式 import ...

  2. 【小工具系列】Python + OpenCV 图片序列转换成视频

    图片序列转换成视频 最近一直在找一个工具,能够将一堆图片转化成视频.网上找了一些小软件,还有 win10 的照片自带的视频制作功能,都不是很满意. 又不想下载那些专业的视频剪辑软件大材小用. 然后找到 ...

  3. opencv3.2.0实现连续图片合成avi视频

    ##名称:利用videowriter实现多张连续图片合成avi视频 ##平台:QT5.7.1+OpenCV3.2.0 ##日期:2017年12月10日 /**************新建QT控制台程序 ...

  4. Matlab从一系列图片导出AVI视频,导出GIF动图

    平台:Win7,Matlab 2014a 从一系列图片导出AVI视频的M代码如下: clear all; % 清除变量 % 官方示例,命令窗口输入“doc VideoWriter” writerObj ...

  5. javascript - 图片的幻灯片效果

    javascript 代码: <script type="text/javascript"> function select_play() { var select_p ...

  6. Kafka+OpenCV 实现实时流视频处理

     1. 启动Kafka Server bin/kafka-server-start.sh config/server.properties & 2. 创建一个新topic bin/kafka- ...

  7. 基于opencv图片切割

    基于opencv图片切割为n个3*3区块 工作原因,切割图片,任务急,暂留调通的源码,留以后用. package com.rosetta.image.test; import org.opencv.c ...

  8. 没有内涵段子可以刷了,利用Python爬取段友之家贴吧图片和小视频(含源码)

    由于最新的视频整顿风波,内涵段子APP被迫关闭,广大段友无家可归,但是最近发现了一个"段友"的app,版本更新也挺快,正在号召广大段友回家,如下图,有兴趣的可以下载看看(ps:我不 ...

  9. Opencv图片明暗处理

    Opencv图片明暗处理 #include <iostream> #include <opencv2/opencv.hpp> using namespace std; usin ...

随机推荐

  1. 部署jenkins问题

    总结:配置的url,jenkins部署的ip必须有开放,否则发布会超时失败

  2. python解释 yield 和 Generators(生成器)

    yield 和 Generators(生成器) 转自:http://www.oschina.net/translate/improve-your-python-yield-and-generators ...

  3. variadic templates & pass by const reference & member operator [] in const map & gcc sucks

    /// bugs code with comments #include <iostream> #include <memory> #include <unordered ...

  4. ovs源码阅读--元组空间搜索算法

    关于TTS(元组空间搜索算法)的详细介绍可以参考OVS+DPDK Datapath 包分类技术这篇文章,本文只对该篇博客进行简单的介绍,案例和部分图片来自于OVS+DPDK Datapath 包分类技 ...

  5. ffplay.exe操作方式

    大牛博客: 博文名称:[总结]FFMPEG视音频编解码零基础学习方法 博文链接:http://blog.csdn.net/leixiaohua1020/article/details/15811977 ...

  6. zabbix第一篇:zabbix安装及使用

    常用软件安装及使用目录 一:搭建zabbix命令集 cat /etc/redhat-release uname -r getenforce systemctl status firewalld.ser ...

  7. 如何将office卸载干净

    我试了控制面板卸载office软件等方法,发现一直卸载不干净. 后发现这个office的官方链接,根据这个链接的步骤就很轻松的卸载好了. https://support.office.com/zh-c ...

  8. “Hello World!”团队第五周第六次会议

    “Hello World!”团队第五周第六次会议   博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.todo list 六.会议照片 七.燃尽图 八.checkout& ...

  9. 学霸网站-Alpha版本发布说明

    项目名称 学霸网站 项目版本 Alpha 项目团队 ourteam 发布日期 2014-11-23 一.版本的新功能 1.匿名提问 用户提问的时候可以选择匿名提问,这样在问题的详细信息不会显示提出者的 ...

  10. java学习de路线建议

    我想谈一谈我的一些关于网页学习的小感悟吧.之所以是写这个的原因完全是想告诉现在还处在网页学习的初始阶段的同学一些我学习走过的弯路,但我说的也仅是我个人的理解,毕竟我只能是JavaWeb开发的新手,所以 ...