C++

一.视频转图像 (保存每一帧)

可参考:https://www.cnblogs.com/miaojinmin799/p/6845462.html

  #include<opencv2/highgui/highgui.hpp>#include<iostream>using namespace std;using namespace cv;int main(){VideoCapture cap("D:/1.wmv");  //读入视频Mat img;   //图像变量char image[20];  //保存路径int i = 0;   //图像计数while (cap.read(img))    //读取视频帧{sprintf(image, "%s%d%s", "..\\image", i++, ".jpg");   //指定保存路径imwrite(image, img);  //保存图像}}

结果展示:

二。图片 转 视频  (该方法,生成视频会卡)

1. 首先将本地图像的路径保存成  .txt文件

参考我的博客:https://blog.csdn.net/wgf5845201314/article/details/78404756?locationNum=9&fps=1

2. 利用 .txt 生成视频

//#include "stdafx.h"
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2\highgui\highgui.hpp>
#include <string>
#include <fstream>  using namespace std;int main()
{cout << "*********************开始图像转换为视频*********************" << endl;string imagepath("C:\\Users\\jingling\\Desktop\\TCP图像传输_C++\\client\\clent\\list.txt");int m = imagepath.find_last_of('.');string avipath = imagepath.substr(0, m) + ".avi";ifstream File;File.open(imagepath);if (!File.is_open()){cout << "图像无法读取,请检查图像路径是否有误!" << endl;return -1;}string imageName;int height;int width;double rate;cout << "请输入帧率:";cin >> rate;cout << "请输入图像的宽度:";cin >> width;cout << "请输入图像的高度:";cin >> height;cout << "请输入图像是否为彩色,是输入1,不是则输入0!  ";int e;bool color = true;cin >> e;if (e == 0){color = false;}cv::VideoWriter writer;writer.open(avipath, CV_FOURCC('M', 'J', 'P', 'G'), rate, cv::Size(width, height), color);if (!writer.isOpened()){cout << "Could not open the writer for write!" << endl;return -1;}while (getline(File, imageName)){cv::Mat image = cv::imread(imageName);if (!image.data){cout << "Could not load image file..." << endl;return -1;}writer << image;}cout << "*********************生成视频成功!*********************" << endl;system("pause");return 0;
}

MATLAB

视频转图片

%%将视频转换成帧图片
clc;
clear;
%% 读取视频
video_path='video_test.avi';
video_obj=VideoReader(video_path);   frame_number=video_obj.NumberOfFrames;%% 存储每一帧图片到文件夹image
if ~exist('image','dir')mkdir('image');disp('successfully create directory image!');
endfor i=1:frame_numberimage_name=strcat('./image/im_',num2str(i),'.jpg');   frame=read(video_obj,i);           imwrite(frame,image_name,'jpg');
enddisp('all images are written into directory image')

图片转视频  (完美,不卡)

framesPath = 'C:\Users\jingling\Desktop\TCP图像传输_C++\client\clent\';%图像序列所在路径,同时要保证图像大小相同
videoName = 'C:\Users\jingling\Desktop\TCP图像传输_C++\client\clent\Bolt.avi';%表示将要创建的视频文件的名字
fps = 25; %帧率
startFrame = 0; %从哪一帧开始
endFrame = 507; %哪一帧结束  if(exist('videoName','file'))  delete videoName.avi
end  %生成视频的参数设定
aviobj=VideoWriter(videoName);  %创建一个avi视频文件对象,开始时其为空
aviobj.FrameRate=fps;  open(aviobj);%Open file for writing video data
%读入图片
for i=startFrame:endFrame  fileName=sprintf('image%d',i);    %根据文件名而定 我这里文件名是image0.jpg image1.jpg ....  image507frames=imread([framesPath,fileName,'.jpg']);  writeVideo(aviobj,frames);
end
close(aviobj);% 关闭创建视频  

结果:

C++ 图像 和 视频 转换相关推荐

  1. python 图像和视频互相转换

    python 图像和视频互相转换 预备条件 视频转图像 图像转视频 完整代码 预备条件 创建两个文件夹,将视频放在video文件夹里 我拍的视频,视频链接 提取码:t1zj 视频转图像 import ...

  2. 视频转换成图像序列、图像转换成视频(代码)

    在目标检测领域,经常碰到将视频转换成图像序列,或者将图像序列转成视频.下面一段代码可实现此类功能.废话不多说,直接上代码 void Video2Pic() { cv::VideoCapture vc; ...

  3. 基于微软开源深度学习算法,用 Python 实现图像和视频修复

    ‍‍ 作者 | 李秋键 编辑 | 夕颜 出品 | AI科技大本营(ID:rgznai100) 图像修复是计算机视觉领域的一个重要任务,在数字艺术品修复.公安刑侦面部修复等种种实际场景中被广泛应用.图像 ...

  4. 图像与视频合成领域的集大成者,都在这里了!

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 本文转载自:机器之心 |  作者:蛋酱.小舟 图像 / 视频合成领域的集大成者,就在这一篇了. ...

  5. 《音频、图像及视频技术》学习笔记

    秒懂音视频开发学习笔记 01_移动通信技术的发展 02_重识图片 03_Windows开发环境搭建 04_Qt开发基础 05_重识声音 06_重识音频 07_音频录制01_命令行 08_音频录制02_ ...

  6. 基于OpenGL的Android系统视频转换功能实现

          第1章OpenGL ES 3D图形编程首先OpenGL.OpenGL的英文全称是OpenGL Graphics Library,中午名称是开发式图形库.OpenGL为程序开发人员定义了一个 ...

  7. 【Python 字符视频】Python 实现将抖音视频转换成字符视频

    以前就在抖音上看到过字符视频,直到昨天才突然想自己动手做一个,然后就利用各种博客,自己总结 兼 借鉴,终于完成了字符视频的制作 一.思路: 众所周知,视频是一帧一帧的图片组成的,所以我想的就是将抖音的 ...

  8. ffmpeg学习十三:图像数据格式的转换与图像的缩放

    一.实现图像数据格式转换与图像缩放的三个重要函数 ffmpeg实现图像数据格式的转换以及图片的缩放的功能,主要使用swscale.h中的三个函数: sws_getContext() sws_scale ...

  9. 适用于 Windows 和 macOS 的几款免费视频转换软件

    您是否曾经尝试过在网站上上传视频格式不受支持? 甚至更糟的是,当您所需的视频无法在您的设备上播放时.在这种情况下,我们会思考为什么这些格式不是在所有地方都受支持.虽然目前似乎无法实现这种可能性,但幸运 ...

最新文章

  1. windows 2003系统目前最完善最完美的安全权限方案(转)
  2. 现实交互动作和现实环境交互的魅力
  3. 硅谷来信 | 投资人张璐:AI正在造就超级人类,医疗应用潜力无穷
  4. mysql 按照指定字段拼接_mysql 根据某个字段将多条记录的某个字段拼接成一个字段...
  5. 使用HSRP和SLB实现服务器群负载均衡和冗余
  6. java开发平台普元_java开发平台的两种实现模式
  7. Java多线程的三种实现方式(重点看Collable接口实现方式)
  8. 每个tabpage中都有一个dategridview_宇宙中每个原子里都隐藏着一个巨大的秘密
  9. 【leetcode 简单】第四十二题 阶乘后的零
  10. Ubuntu18.04 安装 Idea 2018.2
  11. redis数据类型语法及与java连接
  12. 使用Foobar2000在PC上播放.ios音乐
  13. 【线性模型引论】王松桂著 课后习题2.2参考答案
  14. 深圳Python培训:100天从新手到Python大师
  15. 小心 transmittable-thread-local 的这个坑
  16. 开发人员如何规划自己的职业生涯
  17. 运营能力提升学习(一)了解运营是什么
  18. 再学 GDI+[57]: 路径 - Widen
  19. 基于cesium实现城市查询并定位
  20. linux 循环一段ip区间,Shell脚本实现判断IP地址是否在一个ip段内代码分享

热门文章

  1. 冒泡,选择,快速,二叉树排序速度比较
  2. Java进阶(三)——权限修饰符,代码块,常用API
  3. Vue 2.0 开发流程 (全)
  4. Arduino笔记-数码管的基本使用
  5. Python自学日记28——如何选择学习资料
  6. 一年级男生上课不专心,说了很多次都不改!
  7. fw150um linux驱动下载,fw150um无线网卡驱动
  8. 用python爬取有道翻译遇到反爬,3分钟反反爬绕过其反爬
  9. html5三国策略布阵,《战略三国》官方网站—联众三国策略页游
  10. 【第五届集创赛备赛】九、SD卡控制器开发总结