opencv图片转幻灯片视频

 1 /*g++ *.cpp `pkg-config --cflags --libs opencv` -std=c++11*/
 2
 3 #include <opencv2/opencv.hpp>
 4 using namespace std;
 5 using namespace cv;
 6 #define NUM_FRAME 300
 7 #define SIZE 7
 8
 9 char path[100];//输入文件路径
10
11 //将图片序列转换为视频
12 void getVideo()
13 {
14     int i = 0;
15     IplImage* img = 0;//读入图像
16     IplImage* outimg = 0;//修改图像尺寸
17     char image_name[100];//图像名字
18     char videoname[100];
19     strcpy(videoname, path);
20     strcat(videoname, "//1.avi");
21
22     //初始化视频编写器,参数根据实际视频文件修改
23     CvVideoWriter *writer = 0;
24     //从文件读入视频
25     CvCapture* capture = cvCaptureFromAVI(videoname);
26     //读取和显示
27     int isColor = 1;
28     IplImage* frameimg;//从视频中提取的帧图像
29     int fps = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);//视频的fps
30     int frameH = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT);//视频的高度
31     int frameW = (int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH);//视频的宽度
32     writer = cvCreateVideoWriter("..//output//2.avi",-1, fps, cvSize(frameW, frameH), isColor);//创建视频写入
33     printf("\tvideo height : %d\n\tvideo width : %d\n\tfps : %d\n", frameH, frameW, fps);
34     //创建窗口
35     cvNamedWindow("mainWin", CV_WINDOW_AUTOSIZE);
36     //读入图片,并制作幻灯片
37     while (i<SIZE)
38     {
39         CvSize Out_Img_size;//图片的大小
40         Out_Img_size.width = frameW;//使读入图片的大小与视频尺寸相同
41         Out_Img_size.height = frameH;
42         sprintf(image_name, "%d%s", ++i, ".jpg");//得到图片名字
43         char imgname[100];
44         strcpy(imgname, path);
45         strcat(imgname, "//");
46         strcat(imgname,image_name);//加上路径
47         img = cvLoadImage(imgname);//打开图片
48         outimg = cvCreateImage(Out_Img_size, img->depth, img->nChannels);//创建一张与视频帧大小相同的图像
49         cvResize(img, outimg, CV_INTER_LINEAR);//让打开的图像重写为指定大小
50         if (!img)
51         {
52             printf("Could not load image file...\n");
53             exit(0);
54         }
55         //设置字体
56         CvFont font;
57         cvInitFont(&font, CV_FONT_VECTOR0, 0.5f, 0.5f, 0, 1, 8);
58         //在图像中显示文本字符串
59         cvPutText(outimg, "StudentID", cvPoint(frameW - 100, frameH - 60), &font, CV_RGB(255, 255, 255));
60         cvPutText(outimg, "name", cvPoint(frameW - 100, frameH - 30), &font, CV_RGB(255, 255, 255));
61         char key = cvWaitKey(20);//等待
62         //将图像写入视频,重复25次是为了使之放映速度变慢
63         for (int j = 0; j < 25; j++) {
64             cvShowImage("mainWin", outimg);
65             cvWriteFrame(writer, outimg);
66         }
67     }
68     i = 0;
69     while (1)
70     {
71         frameimg = cvQueryFrame(capture); //获取一帧图片
72         if (!frameimg)break;//读到尽头,退出
73         //设置字体
74         CvFont font;
75         cvInitFont(&font, CV_FONT_VECTOR0, 0.5f,0.5f , 0, 1, 8);
76         //在图像中显示文本字符串
77         cvPutText(frameimg, "StudentID", cvPoint(frameW - 100, frameH - 60), &font, CV_RGB(255, 255, 255));
78         cvPutText(frameimg, "name", cvPoint(frameW - 100, frameH - 30), &font, CV_RGB(255, 255, 255));
79         cvShowImage("mainWin", frameimg);
80         char key = cvWaitKey(20);
81         //将视频帧写入视频
82         cvWriteFrame(writer, frameimg);
83     }
84     cvReleaseVideoWriter(&writer);
85     cvDestroyWindow("mainWin");
86 }
87
88 int main(int argc, char** argv)
89 {
90     strcpy(path, argv[1]);
91     getVideo();
92     waitKey();
93     system("pause");
94     return 0;
95 }

原文地址:https://www.cnblogs.com/dirge/p/8413279.html

时间: 2024-10-07 05:29:41

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

opencv 图片读取和视频读取(一)

一 图片读取 1代码 import cv2 as cv #读取图片 src=cv.imread('./yiner.jpg') #cv.WINDOW_AUTOSIZE 表示自动窗口 cv.namedWindow('赵丽颖',cv.WINDOW_AUTOSIZE) #图片显示窗口 cv.imshow('赵丽颖',src) #参数0表示一直显示,直到键盘按下一个数字键就消失 cv.waitKey(0) #删除所有的图片窗口 cv.destroyAllWindows() 2 图片读取函数解说 imrea

Duanxx的OpenCV学习:图片转化为视频

前面我说明了一下Opencv的视频转图片的方式和代码,这次要说明的是Opencv如何将图片转化为视频: 本文完整代码下载 1 VideoWriter说明 这里主要用到的是Opencv里的一个类:VideoWriter 其API参考链接:API链接. 函数原型: VideoWriter::VideoWriter(const string& filename, int fourcc, double fps, Size frameSize, bool isColor=true) 参数说明: filen

Opencv将图片转化成视频

// VideoWriter.cpp : 定义控制台应用程序的入口点. // //#include "stdafx.h" #include "cv.h" #include "highgui.h" #include "iostream" using namespace std; int main(int argc, char* argv[]) { double fps = 29;//视频压缩帧率 CvSize size = cv

图片的幻灯片效果

简单实现图片的幻灯片效果 设置-->"上一页"和"下一页"按钮 NSUInteger select; //创建图片视图控件 v1=[[UIImageView alloc] initWithFrame:CGRectMake(10, 30, 400, 400)]; select=0; v1.image=arr[select]; //添加到视图 [self.view addSubview:v1]; //按钮的响应方法 -(void)butaction:(UIButt

jpg图片转换为avi视频

要用到视频序列,目前只有jpg图片,所以参考了一些网络资料,并做修改,转化测试成功. 程序: #include <stdlib.h> #include <stdio.h> #include <math.h> #include <cv.h> #include <highgui.h> #define NUM_FRAME 300 //只处理前300帧,根据视频帧数可修改 void Video_to_image(char* filename,const

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

平台:Win7,Matlab 2014a 从一系列图片导出AVI视频的M代码如下: clear all; % 清除变量 % 官方示例,命令窗口输入“doc VideoWriter” writerObj = VideoWriter('out.avi'); % 输出AVI文件名字,out.avi writerObj.FrameRate = 25; % 帧率,25fps writerObj.Quality = 90; % 质量,百分比,90% open(writerObj); for i = 1:1:

javascript - 图片的幻灯片效果

javascript 代码: <script type="text/javascript"> function select_play() { var select_play_box = document.getElementById("select_play_box"); var aUl = select_play_box.getElementsByTagName("ul"); var aImg = aUl[0].getElemen

Mac/iPhone 多媒体(图片、音视频)处理

Mac/iPhone 多媒体(图片.音视频)处理 如何从 iPhone 导出照片和录制的视频 应用 Image Capture(图像捕捉) "图像捕捉"在数码相机或扫描仪与您的 Mac 电脑之间传输图像.当带有摄像头的兼容设备连接到电脑时,可以使用"图像捕捉"来拍照.然后,您可以在 iPhoto 或 Automator 中使用这些图像,或者通过网络共享这些图像. 打开[图像捕捉]应用,选择要导入的已连接的 iPhone.点击底栏左侧下方的箭头按钮展开,可选择[连接此

Ubuntu 14.04 下使用 OpenCV 图片二值化处理

参考: OpenCV - Ubuntu 14.04 64 bit 图片二值化工具 Ubuntu 14.04 下使用 OpenCV 图片二值化处理 TBD. 原文地址:https://www.cnblogs.com/qq952693358/p/8996719.html