我的方法是用两个mat生成的对象,frame,src,frame是读取了视频的每一帧图像,并实现了保存,src是单纯用于合成视频。目前有出现两个bug,一个是生成的avi格式视频过大,一个是获取的图像可能是颠倒的。

#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;int main()
{VideoCapture capture("input.avi");long totalFrameNumber = capture.get(CAP_PROP_FRAME_COUNT);cout << "整个视频共" << totalFrameNumber << "帧" << endl;capture.set(CAP_PROP_POS_FRAMES, 0);double rate = capture.get(CAP_PROP_FPS);cout << "帧率:" << rate << endl;int delay = 1000 / rate;Mat frame;if (!capture.read(frame)){cout << "读取视频失败" << endl;return -1;}int isColor = 1;int fps = rate;//char savefile[200];int frameWidth = frame.cols;int frameHeight = frame.rows;VideoWriter writer;writer.open("out.avi", VideoWriter::fourcc('M', 'J', 'P', 'G'), 30, Size(frameWidth, frameHeight), 1);char savefile[200];Mat src;for (int i=0;i< totalFrameNumber; i++){frame = frame.clone();/*  waitKey(delay);*/if (!capture.read(frame)){cout << "读取视频结束" << endl;break;}cout << "现在处理第" << i <<"帧" << endl;sprintf(savefile, "./img/img%d.jpg", i);imwrite(savefile, frame);/*frame = imread(savefile,1);*/src = imread(savefile, 1);if (src.empty()){cout << "图片读取完了" << endl;break;}imshow("Output Video", src);waitKey(1000 / rate);writer.write(src);}writer.release();capture.release();waitKey(0);return 0;}

opencv实现从视频读取每一帧图像保存并合成avi格式视频相关推荐

  1. 【OpenCV 例程 300篇】253. 多帧图像(动图)的读取与保存

    『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]253. 多帧图像(动图)的读取与保存 1. 多帧图像(动图) 多帧图像是将多幅图像 ...

  2. 格式工厂AVI格式视频转MP4画面不清晰变模糊解决办法

    格式工厂AVI格式视频转MP4画面不清晰变模糊解决办法: 1.预设配置选择为"AVC高质量和大小" 2.参数设置中,视频编码项选择为AVC(H264)(AVC(H265)大部分播放 ...

  3. java视频转换语音,视频转换成音频方法,avi格式视频怎么转换为MP3格式

    如何将视频中的音频提取出来?有时候我们在网上下载了一个视频,但真正吸引到自己的却是视频中的音乐.甚至有时候并不是想要视频文件,而是想要视频中的声音,那么如何将视频格式转换成音频格式呢?一般常见的视频转 ...

  4. opencv入门基础——图像读取,图像显示,图像保存

    一,图像读取 如上图所示,从文件中导入图像用这个函数 retval=cv.imread(文件名,[,显示控制参数]) 显示控制参数,主要是这几个: cv.IMREAD_UNCHANGED cv.IMR ...

  5. 使用ffmpeg将mp4格式视频元数据信息转到视频第一帧、转换mp4为ts格式视频

    最近在研究web一些播放器,videojs\ckplayer\jwplayer等各种页面播放器,发现在播放视频的时候,有些mp4格式的视频是不能够边缓存边播放的,在网上查阅了一些资料,发现是这些mp4 ...

  6. 批量剪辑,截取视频中某一帧画面保存为图片

    平时刷视频的时候看到好看的画面就想截图保存,那么如何批量提取视频中的某一帧画面呢?不知道怎么操作的朋友走过路过不要错过,小编分享一个方法演示具体的操作步骤,一起来看看. 运行[媒体梦工厂]这款软件中有 ...

  7. 用三个步骤在视频里随机抽帧某一画面保存为图片

    有些时候,我们需要对视频抽帧视频需要的随机一帧画面,有些人会直接用截图来保存图片,但是直接截图往往会爱到各种不同的影响,也可能效查一般也不是很好,那么有什么办法可以轻松随机的抽帧画面保存为图片呢?方法 ...

  8. AVI格式视频转YUV

    网上找这一方面找的还蛮困难的,开始只能找到别人写的一长串的代码,但不想用这种方式,觉得麻烦.现在也不知道这个问题算解决没有,因为感觉播放不是很清楚,打算明天找找比较两个视频的异同的指标乃至代码,看转换 ...

  9. avi格式视频转换高清mp4的方法

    AVI英文全称为Audio Video Interleaved,即音频视频交错格式,AVI信息主要应用在多媒体光盘上,用来保存电视.电影等各种影像信息. 优点:跨平台使用 缺点:文件的体积(占用内存) ...

最新文章

  1. java注释风格 与javadoc
  2. Loadrunner的Tuxedo脚本分析,基本流程和基本函数介绍
  3. 背包九讲之五(二维费用的背包问题)
  4. Python 第一篇:python简介和入门
  5. 框架写mysql插入为空_学习springMVC框架配置遇到的问题-数据写入不进数据库时的处理办法...
  6. node cluster 数据共享_深入理解Node.js 中的进程与线程
  7. java比较两个类的值不相同_java 反射---------比较两个相同类型的对象相同属性的属性值是否相同的具体调用...
  8. ip扫描命令 linux,如何使用Linux扫描网络上的IP地址
  9. pytorch复现经典生成对抗式的超分辨率网络
  10. Unity Shader - 伪次表面散射模拟
  11. 龙芯(Loongarch64),在Linux虚拟一个龙芯OS体验下
  12. docker多容器操作与强制删除容器的方法步骤
  13. 随机过程4-宽平稳过程,严平稳过程的定义和判定
  14. raid卡的读写策略
  15. IR Cut Filter主要作用分别是什么?_安防 | 说说监控摄像头中IR-CUT双滤光片哪些事...
  16. 一个人必须不停地写作,才能不被茫茫人海淹没。
  17. SQL 获取 weekday
  18. 选购哪种护眼灯对眼睛好,让我们一起来看看吧
  19. yjv是电缆还是电线_YJY电缆与YJV电缆区别在哪里
  20. InputBox函数用法

热门文章

  1. 统一资源定位器,超文本传输协议,HTML
  2. JavaScript基础系列之五 浏览器
  3. 计算机英语实践计划,计算机英语教学计划(范文).doc
  4. 输入商品种数和价格,列出所有的正好能消费完1000元购物券的不同购物方法
  5. 微信扫码自动跳转技术
  6. WinPhone中的消息推送
  7. db2数据库日期减一天_数据库date减一天
  8. Figma如何创建蒙版,小白教程
  9. C.8 基于ERNIELayoutPDFplumber-UIEX的多方案学术论文信息抽取
  10. 使用ThingJS,前端人员也能轻松搞定物联网开发!