前言

视频处理分析的过程中,需要用到将视频一帧帧地读取、写入,本文就涉及此问题。

系统环境

1.系统:win7_64

2.matlab版本:matlab2015a

测试代码

代码一(读视频):

%To read video frames.
clc
clear
close all fileName = 'E:\fatigue_detection\dataset\segVideosP1\1_5.avi';
obj = VideoReader(fileName);
numFrames = obj.NumberOfFrames;
for i = : numFrames
frame = read(obj,i);
imshow(frame);
imwrite(frame,strcat(num2str(i),'.jpg'),'jpg');
end

代码二(读视频):

fileName = 'E:\fatigue_detection\dataset\segVideosP1\1_5.avi';  

xyloObj = VideoReader(fileName);

vidWidth = xyloObj.Width;
vidHeight = xyloObj.Height;
% mov = struct('cdata',zeros(vidHeight,vidWidth,,'uint8'),'colormap',[]); while hasFrame(xyloObj)
frame = readFrame(xyloObj);
imshow(frame);
end

代码三(写视频):

写视频步骤:

创建视频文件VideoWriter - > 打开视频文件open - > 获取视频帧并写入视频文件writeVideo -> 关闭视频文件close.

fileName = 'E:\fatigue_detection\dataset\segVideosP1\1_5.avi';  

%method2
xyloObj = VideoReader(fileName);
vidWidth = xyloObj.Width;
vidHeight = xyloObj.Height;
fps = xyloObj.FrameRate; out = VideoWriter('out.avi');
out.FrameRate = fps;
open(out);
while hasFrame(xyloObj)
frame = readFrame(xyloObj);
writeVideo(out, frame);
end
close(out);

代码可参考matlab的help文档.

注意:

1.不同版本之间可能会存在一些代码问题,可参考help文档进行修正.

2.写入视频文件之前要先打开文件,写入完毕之后要关闭文件.

matlab读写视频VideoReader/VideoWriter的更多相关文章

  1. matlab读写图片,读取图像序列,读取AVI视频

    介绍使用matlab读写图片,读取图像序列,读取AVI视频的方法: 一.读写图像 使用matlab读一幅图像,并另存 % Filename: ImageReadWrite clc; clear; i ...

  2. opencv中读写视频

    1.介绍 OpenCV 读写视频之前,先介绍一下编解码器(codec) .如果是图像文件, 我们可以根据文件扩展名得知图像的格式.但是此经验并不能推广到视频文件中. 有些 OpenCV 用户会碰到奇怪 ...

  3. OpenCV读写视频文件解析(二)

    OpenCV读写视频文件解析(二) VideoCapture::set 设置视频捕获中的属性. C++:bool VideoCapture::set(int propId, double value) ...

  4. OpenCV读写视频文件解析

    OpenCV读写视频文件解析 一.视频读写类 视频处理的是运动图像,而不是静止图像.视频资源可以是一个专用摄像机.网络摄像头.视频文件或图像文件序列. 在 OpenCV 中,VideoCapture ...

  5. Matlab摄像头视频基本处理

    一.读取摄像头 1.首先保证摄像头及其驱动正确在电脑上安装 2.简单的代码显示驱动摄像头,并显示: vid = videoinput('winvideo',1); preview(vid); 3.默认 ...

  6. MATLAB读视频报错 Unable to initialize the video obtain properties (videoreader in Matlab)

    这个bug卡了半天,这里记录一下 Error using VideoReader/init (line ) Could not read file due to an unexpected error ...

  7. 【matlab】使用VideoReader提取视频的每一帧,不能用aviread函数~

    这个问题是matlab版本问题,已经不用aviread函数了~ VideoReader里面没有cdata这个函数! MATLAB不支持avireader了,而且没有cdata这个属性了,详情去官网ht ...

  8. opencv读写视频,对感兴趣区域进行裁剪

    作为小码农,本人最近想对一段视频的某个区域进行处理,因此要将该段视频区域裁剪出来,搜搜网上,发现没有痕迹,是故自己琢磨一下,左右借鉴,编了如下代码,目标得以实现,希望对你有用. #include &q ...

  9. OpenCV读写视频操作

    一.读取视频流 在使用OpenCV读取摄像头,或者处理一些磁盘中保存的视频文件时,通常使用VideoCapture进行读取. std::string video_path("/path/to ...

随机推荐

  1. MongoDB(课时26 聚合(取的集合个数))

    3.7 聚合(重点) 信息的统计操作就是聚合(直白:分组统计就是一种聚合操作). 3.7.1 取的集合的数据量 对于集合的数据量而言,在MongoDB里面直接使用count()函数就可以完成. 范例: ...

  2. STL_算法_中使用的函数对象

    写在前面: STL算法中的 函数对象的功能: (1).都是提供一种比较的函数,比较相邻的左右两个值的 相等/大小 等的关系, (2).返回值都是bool :该返回值 貌似是指明 遍历元素是否还要继续往 ...

  3. 用docker部署flask+gunicorn+nginx

    说来惭愧,写了好几个flask django项目都是在原型阶段直接python app.py 运行的,涉及到部署用nginx和gunicorn 都是让别人帮我部署的,据说好像说很麻烦的样子,我就没自己 ...

  4. C#读写记事本(txt)文件

    C#写入记事本(txt)文件方法一: FileStream stream = new FileStream(@"d:\aa.txt",FileMode.Create);//file ...

  5. Java基础七-正则表达式

    Java基础七-正则表达式 一.定义: 特定的符号的组合 二.作用: 用于操作字符串数据 三.优缺点 简化代码,但是阅读性差 四.引入 4.1 问题 判断一个号码是否是QQ号? 不是零开头 6-15位 ...

  6. yii第二步

    yii第二步: main.php 'urlManager'=>array('urlFormat'=>'path','rules'=>array('game/guess/<g:\ ...

  7. English trip -- VC(情景课)4 A Health

    Word doctor doctor's office medicine   [ˈmɛdɪsɪn]  n. 药:医学:内科:巫术  vt. 用药物治疗:给…用药 pill  n. 药丸 nurse   ...

  8. 页面title改变浏览器兼容性问题

    前一阵子客户在界面上改了下小小的需求,需要点不同的文章title显示不同的模块名称(之前没有区分,统一叫新闻图片),很简单的一个需求但是测试的时候并没有注意到不兼容IE7和IE8.在客户那被尴尬的发现 ...

  9. hpu1165 贪心

    1165: 最少的需求 [贪心] 时间限制: 1 Sec 内存限制: 128 MB 提交: 12 解决: 4 状态 题目描述 小Q开了一家餐厅,最近生意非常火爆. 假设有N N 个预订信息,第i i ...

  10. NuGet 控制台代码

    安装 Bootstrap 包:Install-package -version 3.0.0 bootstrap -projectname SportsStore.WebUI 这三句常常连用,在不同项目 ...