/*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. Jmeter+ant+jenkins接口自动化测试 平台搭建(一)

    平台简介 一个完整的接口自动化测试平台需要支持接口的自动执行,自动生成测试报告,以及持续集成.Jmeter 支持接口的测试,Ant 支持自动构建,而 Jenkins 支持持续集成,所以三者组合在一起可 ...

  2. 初试Shell脚本

    背景 临上线前测试比较努力,遇到闪退或者其他问题,会把日志包打给我,由于app内存限制,目前每次打包都是1m大小,所以有时查找问题的上下文比较吃力.同时由于日志比较多,根据关键词过滤的需求越来越重要. ...

  3. Netty源码分析第2章(NioEventLoop)---->第1节: NioEventLoopGroup之创建线程执行器

    Netty源码分析第二章: NioEventLoop 概述: 通过上一章的学习, 我们了解了Server启动的大致流程, 有很多组件与模块并没有细讲, 从这个章开始, 我们开始详细剖析netty的各个 ...

  4. Linux 文件系统 -- 简述几种文件类型

    Linux 中一切皆为文件,文件类型也有多种,使用 ls -l 命令可以查看文件的属性,所显示结果的第一列的第一个字符用来表明该文件的文件类型,如下: 1.普通文件 使用 ls -l 命令后,第一列第 ...

  5. 02_python内置模块_timeit

    timeit模块可以用来测试一小段python代码的执行速度. (1)timeit.Timer(stmt='pass', setup='pass', timer=<timer function& ...

  6. ffplay.exe操作方式

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

  7. scrapy有用的(代理,user-agent,随机延迟等)

    代理 方法一(待测试) 见scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware import os # 设置相应的代理用户名密码,主机和 ...

  8. Daily Scrum 11.15

    今日完成任务: 1.在回答页面显示用户的相关信息 2.重写了搜索方法,并在自己的Demo网站测试成功 3.修改问题实体属性,加入悬赏积分:并在问题列表页面显示问题悬赏分数 遇到困难:一个是对于学长的搜 ...

  9. 20162325 金立清 S2 W7 C16

    20162325 2017-2018-2 <程序设计与数据结构>第7周学习总结 教材学习内容概要 树是非线性结构,其元素组织为一个层次结构 树的度表示树种任意结点的最大子结点数 有m个元素 ...

  10. Mysql常用配置及优化

    [client]# 该目录下的内容常用来进行localhost登陆,一般不需要修改port = 3306 # 端口号socket = /var/lib/mysql/mysql.sock # 套接字文件 ...