1、用matlab读取avi 视频(只能读一定压缩各式的avi 电影,这是因为avi视频文件的编码

有很多,而matlab只支持部分编码格式。可见

http://blog.csdn.net/IdoIwill/article/details/2125838) aviinfo('d:\abc.avi');

%显示存在d 盘文件abc.avi 的信息,在matlab2010 版本中,该函数可以换成mmreader mov=aviread('abc:.avi');   %读入电影abc.avi movie(mov);             %放映电影

2、将avi视频转成图片序列

mov=aviread('d:\abc.avi'); %读入

Vframes=size(mov,2);   %读取视频的帧数,mov 为1*1179 struct,struct就是第4点所介绍的 for i=1: Vframes

strtemp=strcat('d:\转换的图片\',int2str(i),'.','jpg'); %将每帧转成.jpg 的图片 imwrite(mov(i).cdata(:,:,), mov(i).colormap, strtemp);  % 把图像写入磁盘 end

3、读取avi视频第index帧有三种使用方式(不适用于索引图):

第一种:mov=aviread(filename);   % 读入视频

frame=mov(index);       %读取avi 文件的第index 帧图像; img = frame.cdata;        % 读取图像的颜色信息

第二种:frame = aviread(filename, index);          img = frame.cdata;

第三种:mov = aviread(filename);         frame = mov.cdata;         img = mov{index}; 例:%读取第一帧图像

mov = aviread('highwayI_raw.AVI'); frame=mov(index); imshow(frame.cdata);

4、读取avi视频第index帧图像后,所储存帧格式是一个结构体(struct),该结构体有两个元素:cdata 和colormap

例:

frame = aviread('highwayI_raw.AVI', i);

frame.cdata 表示了一个数据数组,彩色图像就是3 维的,灰度图像就是2 维的。也就是相当于I=imread(‘abc.jpg’)后的数组I

frame.colormap 见(help aviread)

%%%%%了解了以上四点,处理视频文件就可以相当于图像文件一样处理了%%%%

5、将彩色图像转换为灰度图像,很简单:

frame = aviread('highwayI_raw.AVI', i);

f_gray = rgb2gray(frame.cdata); 这样就可以将文件的第i帧转换为灰度图像。

6、 创建avi视频文件

aviobj = avifile(filename)

aviobj = avifile(filename, 'Param1', Val1, 'Param2', Val2,...) 描述:

aviobj = avifile(filename) 创建一个AVI文件,其名称为filename,AVI文件对象的所有属性均取默认值。如果文件名中并不包含扩展名,则avifile为filename自动添加扩展名.avi。AVI是一种存储声音和图像数据的文件格式。

avifile返回一个指向AVI文件对象aviobj的句柄,使用该对象在其他函数中可以引用该对象。AVI文件对象支持控制被创建的AVI文件的各方面属性和方法。

aviobj = avifile(filename, 'Param1', Val1, 'Param2', Val2,...)使用指定的参数设置创建一个AVI文件。 参数说明表:

用户也可以使用结构语法来设置AVI对象的属性。Avifile对象的所有属性名字和参数表中的名字一样,并且要完整(除了keyframe这个参数)。例如,设定质量属性为100可以使用如下的语法

格式:

aviobj = avifile('myavifile'); aviobj.quality = 100;

实例

这一实例显示如何使用函数avifile创建AVI文件example.avi。 t = linspace(0,2.5*pi,40); fact = 10*sin(t); fig=figure;

aviobj = avifile('example.avi') [x,y,z] = peaks; for k=1:length(fact) h = surf(x,y,fact(k)*z); axis([-3 3 -3 3 -80 80]) axis off

caxis([-90 90]) F = getframe(fig);

aviobj = addframe(aviobj,F); end

close(fig)

aviobj = close(aviobj);

7、mmreader 类---创建一个视频文件读取对象

其实在 matlab2010 中,会建议采用mmreader、mmfileinfo等函数,如果使用aviread会出现警告如下:

Warning: AVIREAD will be removed in a future release. Use MMREADER instead.  这是由于aviread接口需要要求avi文件时没有压缩的,这回导致其应用受到很大的 具体的mmreader 类描述可见matlab的help,以下摘自一些重点:  mmreader类 是为了创建一个读取视频文件的多媒体读取对象 描述:

函数 mmreader可以读取所有的多媒体文件,返回值为一个结构体;然后可以用read 函数进行读取文件

mmreader 支持的文件格式由各个操作系统平台决定

Window: AVI(.avi)/MPEG-1(.mgp)Window Media Video(.wmv,.asf,.asx)

Macintosh: AVI(.avi)/MPEG-1(.mpg)/MPEG(.mp4,.m4v)/苹果Quick Time movie(.mov)              以及被QuickTime在苹果系统上所支持的视频格式

Linux:  支持系统中所安装的GStreamer 0.10 支持的视频格式,包括AVI/Ogg Theora(.ogg)

mmreader创建视频文件有两种 obj = mmreader(filename);

obj = mmreader(filename, ‘PropertyName’, ‘PropertyValue’);

第一种只需提供(默认路径名)+文件名,就可以返回一个视频对象;使用第二种方法,可以设置属性名以及属性值

obj具有的属性如下:  BitsPerPixel  (只读)   视频的每个像素的位数  Duration     (只读)   每秒的总长度  FrameRate   (只读)   每秒的帧率  Height       (只读)  视频每帧图像的高度  Name        (只读)  对象所对应的视频文件名  NumberOfFrames (只读) 视频流中的总帧数  Path            (只读)视频文件所在的路径名  Tag                  定义视频对象的标签(默认’’)  Type            (只读) 对象的类名—mmreader  UserData               给用户自定义数据的区域  VideoFormat     (只读) 视频文件压缩格式  Width           (只读)视频每帧图像的宽度 通常obj对象配合read方法使用;read的使用方法如下: video = read(obj);

video = read(obj,index); 或 video = read(obj, [index1,index2])

其实第一种默认是read(obj, [1,inf]) 第一种方法读入obj视频对象的所有帧; 第二种方法读入obj视频对象的第index帧.

第一种方法返回的video对象是个4维数组,H-W-B-F H: 图像帧的高度 W: 图像帧的宽度 B: 图像帧的颜色通道 F: 图像帧的数目

第二种方法返回就是图像帧的数据,灰度图像返回二维数组,RGB24图像返回三维数组。 读取第一帧图像例子如下

obj = mmreader('abc.avi'); video = read(obj); img = video(:,:,:1); imshow(img);

matlab怎么载入视频,怎样将视频导入matlab啊相关推荐

  1. 示波器数据用matlab进行fft,示波器CSV波形数据导入Matlab进行FFT分析.doc

    示波器CSV波形数据导入Matlab进行FFT分析 1,将CSV文件拖到workspace窗口,弹出的Import Wizard窗口中,点选"Next",新窗口中选第二项" ...

  2. MATLAB 手把手教你如何将视频水彩风格化(简易版)

    前言 原本想做视频动漫风格化的,动漫风格化要求图片色块分明,所以用到的是保边缘性极强的双边滤波,但由于双边滤波需要每张图片多次滤波才能出效果,等待时机较长,MATLAB处理循环的能力并不太适合. 事实 ...

  3. wallpaper怎么导入视频_怎样制作Wallpaper Engine视频壁纸 制作视频壁纸方法图文教程...

    Wallpaper Engine突然间在国内就大火了起来,很多用户纷纷给自己的电脑换上了新妆.然而也有一些用户觉得网上的资源自己都不喜欢,想要自己制作一款满意的视频壁纸.那么,如何制作Wallpape ...

  4. 基于matlab的调用电脑摄像头,截取视频图像识别颜色

    基于matlab的调用电脑摄像头,截取视频图像识别颜色. 同时识别电脑中存储的图片颜色. ID:5999678941619779Matlab和数学建模

  5. Nvivo如何导入视频、切割视频、以及编码视频

    Nvivo如何导入视频.切割视频.以及编码视频## 标题 一.视频导入 在导入视频之前需要先安装视频解码工具,mp4格式的视频无法导入到nvivo中 视频解码工具k-lite(要梯子,如果没有可以下载 ...

  6. 怎么把php字幕导入视频,怎么往视频加广告还有字幕 字幕怎么导入视频里|视频字幕制作软件怎么把字幕嵌入视频...

    首先,怎么往视频加广告还有字幕? ----- ----- 其次,已经制作好的字幕怎么导入视频里?嗯~ o(* ̄▽ ̄*)o ,这里的方法就比较多了,一种是比较快捷的,但前提视频是mkv视频格式,如下图, ...

  7. 使用MATLAB读取视频并获取视频信息、分帧保存

    题外话:初学MATLAB,是因为跟着老师做项目,与MATLAB机器学习相关,包含了智能信息处理,是从前未接触的领域.因此,想写博客来记录自己的学习进度.老师安排的第一次任务为:用MATLAB读取视频, ...

  8. FinalCut 如何导入 HDR 视频,HDR 视频在普通模式下显示不正常

    FinalCut 如何导入 HDR 视频,HDR 视频在普通模式下显示不正常 在 FinalCut 的普通项目中导入 HDR 视频的时候,视频显示不正常,出现过曝的情况 如何解决呢? 解决办法 打开效 ...

  9. matlab aviread cdata,Matlab的使用—Avi格式的视频与图像

    Matlab中文论坛中的东西,自己毕业设计搞图像处理,曾经搞过视频与图像的相互转换之类的--不错-- 以下代码本文验证过--不错-- 有些人可能拿自己的avi文件进行读取转换,会出错,原因之一:avi ...

  10. 【视频互动跟踪】通过matlab提取跟踪视频中的目标,并提示备注信息。通过FLash播放器可互动点击查看信息

    1.软件版本 MATLAB2010b 2.本算法理论知识 算法流程如下所示: 读取avi视频  :get_AVI.m 获取灰度视频:vedio_op.m 运动员跟踪  :func_man_catch. ...

最新文章

  1. tf.keras.layers.Flatten该网络中的第一层tf.keras.layers.Flatten将图像的格式从2d阵列(28乘28像素)转换为28 * 28 = 784像素的1d阵列。可以
  2. 人工智能和机器学习在治安管理方面意义重大
  3. vSphere开发指南1——vSphere Automation API
  4. boost::fusion::nil用法的测试程序
  5. linux script $,linux – 这在shell脚本中是什么意思SCRIPTNAME =“${0 ## * /}”?
  6. spring学习(10):创建项目(自动装配)
  7. java 方法 示例_Java语言环境getDisplayVariant()方法与示例
  8. 苹果将在内华达州里诺市再购地块 都是为了它
  9. python去除视频中的logo_Python音视频开发:消除抖音短视频Logo和去电视台标的实现详解...
  10. Scikit-Learn 学得如何?程序员不容错过十大实用功能来袭
  11. SpringBoot中关于Mybatis使用的三个问题
  12. MAC在命令行运行不带窗口的 Emacs -- 比窗口模式占用的资源更少一些
  13. 福昕PDF阅读器文本复制功能设置
  14. 网页链接分享到微信朋友圈带图标和摘要的完美解决方法
  15. 永福读《天才在左,疯子在右》
  16. C语言练习-统计数字个数
  17. 十款强大的图像后期处理软件和工具
  18. Java 结构化数据处理开源库SPL,再也不用苦哈哈写SQL了
  19. ghost linux引导修复工具,GhostBSD 19.10 发布,UEFI多重引导的修复
  20. 宜家开发中心东亚区完成了在中国的全新升级,实践“民主设计”

热门文章

  1. 2017.6.4 problem b 失败总结
  2. java spark on hive_hive-on-spark 安装 以及 scala 实例
  3. 【英语学习】【English L06】U05 Appointments L5 I'd like to make an appointment with Mr. Grant
  4. 倪文迪陪你学蓝桥杯2021寒假每日一题:1.11日(2017省赛A第9题)
  5. android 获取是否连接wifi热点,android - 如何知道您是否已连接到Wifi热点/ Wifi / Wifi Direct - 堆栈内存溢出...
  6. Unity中的layer和tag
  7. 迭代终止准则的三种形式_一种经验模态分解筛选迭代过程终止准则的方法与流程...
  8. 不同系统可以用一个数据库服务器吗,同一个数据库 不同服务器吗
  9. stm32f103c8t6最小系统电路原理图_嵌入式单片机之STM32F103C8T6最小系统板电路设计参考...
  10. 使用Mali Graphics Debugger调优Unity程序(Killer示例)