opencv实现从视频读取每一帧图像保存并合成avi格式视频
我的方法是用两个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格式视频相关推荐
- 【OpenCV 例程 300篇】253. 多帧图像(动图)的读取与保存
『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]253. 多帧图像(动图)的读取与保存 1. 多帧图像(动图) 多帧图像是将多幅图像 ...
- 格式工厂AVI格式视频转MP4画面不清晰变模糊解决办法
格式工厂AVI格式视频转MP4画面不清晰变模糊解决办法: 1.预设配置选择为"AVC高质量和大小" 2.参数设置中,视频编码项选择为AVC(H264)(AVC(H265)大部分播放 ...
- java视频转换语音,视频转换成音频方法,avi格式视频怎么转换为MP3格式
如何将视频中的音频提取出来?有时候我们在网上下载了一个视频,但真正吸引到自己的却是视频中的音乐.甚至有时候并不是想要视频文件,而是想要视频中的声音,那么如何将视频格式转换成音频格式呢?一般常见的视频转 ...
- opencv入门基础——图像读取,图像显示,图像保存
一,图像读取 如上图所示,从文件中导入图像用这个函数 retval=cv.imread(文件名,[,显示控制参数]) 显示控制参数,主要是这几个: cv.IMREAD_UNCHANGED cv.IMR ...
- 使用ffmpeg将mp4格式视频元数据信息转到视频第一帧、转换mp4为ts格式视频
最近在研究web一些播放器,videojs\ckplayer\jwplayer等各种页面播放器,发现在播放视频的时候,有些mp4格式的视频是不能够边缓存边播放的,在网上查阅了一些资料,发现是这些mp4 ...
- 批量剪辑,截取视频中某一帧画面保存为图片
平时刷视频的时候看到好看的画面就想截图保存,那么如何批量提取视频中的某一帧画面呢?不知道怎么操作的朋友走过路过不要错过,小编分享一个方法演示具体的操作步骤,一起来看看. 运行[媒体梦工厂]这款软件中有 ...
- 用三个步骤在视频里随机抽帧某一画面保存为图片
有些时候,我们需要对视频抽帧视频需要的随机一帧画面,有些人会直接用截图来保存图片,但是直接截图往往会爱到各种不同的影响,也可能效查一般也不是很好,那么有什么办法可以轻松随机的抽帧画面保存为图片呢?方法 ...
- AVI格式视频转YUV
网上找这一方面找的还蛮困难的,开始只能找到别人写的一长串的代码,但不想用这种方式,觉得麻烦.现在也不知道这个问题算解决没有,因为感觉播放不是很清楚,打算明天找找比较两个视频的异同的指标乃至代码,看转换 ...
- avi格式视频转换高清mp4的方法
AVI英文全称为Audio Video Interleaved,即音频视频交错格式,AVI信息主要应用在多媒体光盘上,用来保存电视.电影等各种影像信息. 优点:跨平台使用 缺点:文件的体积(占用内存) ...
最新文章
- java注释风格 与javadoc
- Loadrunner的Tuxedo脚本分析,基本流程和基本函数介绍
- 背包九讲之五(二维费用的背包问题)
- Python 第一篇:python简介和入门
- 框架写mysql插入为空_学习springMVC框架配置遇到的问题-数据写入不进数据库时的处理办法...
- node cluster 数据共享_深入理解Node.js 中的进程与线程
- java比较两个类的值不相同_java 反射---------比较两个相同类型的对象相同属性的属性值是否相同的具体调用...
- ip扫描命令 linux,如何使用Linux扫描网络上的IP地址
- pytorch复现经典生成对抗式的超分辨率网络
- Unity Shader - 伪次表面散射模拟
- 龙芯(Loongarch64),在Linux虚拟一个龙芯OS体验下
- docker多容器操作与强制删除容器的方法步骤
- 随机过程4-宽平稳过程,严平稳过程的定义和判定
- raid卡的读写策略
- IR Cut Filter主要作用分别是什么?_安防 | 说说监控摄像头中IR-CUT双滤光片哪些事...
- 一个人必须不停地写作,才能不被茫茫人海淹没。
- SQL 获取 weekday
- 选购哪种护眼灯对眼睛好,让我们一起来看看吧
- yjv是电缆还是电线_YJY电缆与YJV电缆区别在哪里
- InputBox函数用法