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 }
View Code
转载于:https://www.cnblogs.com/dirge/p/8413279.html
opencv图片转幻灯片视频相关推荐
- opencv 图片读取和视频读取(一)
环境搭建 一 图片读取 1代码 import cv2 as cv #读取图片 src=cv.imread('./yiner.jpg') #cv.WINDOW_AUTOSIZE 表示自动窗口 cv.na ...
- opencv图片合成视频提高视频清晰度参数
之前有做过图片合成视频的功能,大概代码就是这样,你可以看一下 /** 图片合成视频 @param mp4SavePath 视频保存路径 @param imageDir 图片地址 @param rate ...
- OpenCV | 图片与视频的相互转换(C++Python)
七月 上海| 高性能计算之GPU CUDA培训 7月27-29日三天密集式学习 快速带你入门阅读全文> 正文共1338个字,预计阅读时间6分钟. 前言 在学习opencv的过程中,终会遇到需要 ...
- opencv︱图片与视频的读入、显示、写出、放缩与基本绘图函数介绍
本文来自于段力辉 译<OpenCV-Python 中文教程> 文章目录 一.图片 + 读入.显示.写出 1.cv2.imread() 2.cv2.imshow() 3.cv2.imwrit ...
- python opencv 图片/视频 拼接
python opencv 图片/视频 拼接 # coding: utf-8 # 像写诗一样写代码 import numpy as np import cv2img_A_path = "C: ...
- python opencv PIL 视频分割成图片 图片合成为视频 修改图片大小(抗锯齿)
Python代码将原有的视频分割成图片,我的例子是一帧一帧的分割 用python+opencv完成视频的分割 import cv2 #导入opencv模块 print(2) #测试是否运行 vc=cv ...
- OpenCV小案例——批量图片合成为视频
# 将某个文件夹下面的图片转化为一个视频 def png_to_video(dir_path):fps = 8size = (378, 512)video = cv2.VideoWriter(&quo ...
- python通过opencv使用图片制作简单视频(亲测)
最近在学习视频制作,但是做起来太浪费时间了,我就一直在想能否使用python等脚本实现制作视频,因为我看视频网站上很多营销号视频就是通过图片制作视频的,播放量还不错,我准备试一试. 一.目标 1.自动 ...
- v-viewer图片打不开一直在刷新_python实现将一组图片转化成视频
import os import cv2 import timeimg_root = "../img/" path="../img/" filelist=os. ...
最新文章
- centos安装easy_instal
- selenium 操作 html 5,[Selenium] WebDriver 操作 HTML5 中的 video
- Python之——遇到的小知识点总结
- unused import statement
- 51C语言编译后执行到一半,“C语言” 读书札记之[再续编译执行]
- 和我一起入坑-React-Native-加入Redux的TodoList
- XML文档中的xmlns、xmlns:xsi和xsi:schemaLocation
- 关于OpenFOAM的一些学习资料
- (面试题)用折半查找法在一组整形数组中查找某个数据
- IE6/IE7/IE8/Firefox/Chrome/Safari的CSS hack兼容一览表
- 软件工程专业的论文答辩_软件工程毕业论文答辩PPT模板
- 【机器人学习】平台并联机构matlab逆解
- TARA-汽车安全概念
- 微信小程序和app测试重点总结
- vs2010无法找到程序,安装Microsoft Visual Studio 2010 Service Pack 1 ,系统无法找到指定的对象
- 水晶报表打印s删除数据
- KAL 推出 Kalignite Hypervisor 解决方案—引领 ATM 硬件更新创新模式
- qt 图片适应窗口_Qt图片自适应窗口控件大小
- 人工智能领域的计算机科学,主要包含哪些重要职位?
- ArcGIS基础:全站仪或RTK采集的DAT文件生成点图形
热门文章
- Windows PATH变量不起作用
- 微信服务号通过Excel操作数据库发送消息的开发流程
- 自助建站是如何让一个没有经验的人完成网站建设的呢?
- windows server 2016 活动目录部署系列(二)创建域控制器(AD DS)
- php 上传文件 io错误,怎么解决discuz上传头像出现洗“IO错误”方法大全
- 前端模拟面试字数过23477万内容|刷题打卡
- eyoucms 下载最新版框架后,解压缩到web目录下面,可以看到初始的目录结构如下:
- Gvim使用心得--设置篇
- php如何做拆弹,“不定时炸弹”拆弹有了新方法
- 数组的三种初始化方式