/*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. ubuntu 相关软件设置

    软件篇 1. 网易云音乐软件 首先去官网下载网易云音乐客户端linux版,网址:http://music.163.com/#/download,选择linux版本,然后选择ubuntu 16.04(6 ...

  2. UITabBarController的使用

    UITabBarController的使用 前言: 苹果开发的小伙伴都知道,项目中只要用到了UITabBarController,UITabBarController就是APP的骨架.所以熟练掌握UI ...

  3. PHP性能分析工具xdebug+qcachegrind

    先安装xdebug工具 pecl install xdebug 修改php.ini配置 [xdebug] zend_extension="xdebug.so" # profiler ...

  4. dmesg命令详解

    基础命令学习目录 http://linux.cn/article-3587-1.html dmesg 命令的使用范例 下面我们展示一些最负盛名的‘dmesg’命令工具以及其实际使用举例.‘dmesg’ ...

  5. [译文]c#扩展方法(Extension Method In C#)

    原文链接: https://www.codeproject.com/Tips/709310/Extension-Method-In-Csharp 介绍 扩展方法是C# 3.0引入的新特性.扩展方法使你 ...

  6. python2.7 倒计时

    From: http://www.vitostack.com/2016/06/05/python-clock/#more Python公告 Python 发布了一个网站 http://pythoncl ...

  7. [ c++] cmake 编译时 undefined reference to `std::cout' 错误的解决方案

    cmake ..  和 make 之后,出现如下错误 Linking CXX executable ../../../bin/ModuleTest CMakeFiles/ModuleTest.dir/ ...

  8. Git基础级介绍

    这篇随笔是在学习了廖雪峰老师的git教程之后写的总结,要看详细的基础级git介绍可以去http://www.liaoxuefeng.com/wiki/0013739516305929606dd1836 ...

  9. BugPhobia准备篇章:Beta阶段前后端接口文档

    0x00:序言 Two strangers fell in love, Only one knows it wasn’t by chance. To the searching tags, you m ...

  10. 安装AndroidJDK的坑

    最近公司要用weex了,先开始搭一下环境,真的都是坑,写下来大家引以为鉴,我踩坑三天的后果. 首先要安装JavaJDK这个过程就不写了都是程序员网上搜索一下很多,注意找论坛上最新的帖子来看,这里有一个 ...