也谈matlab中读取视频的一个重要函数mmreader

也谈matlab中读取视频的一个重要函数mmreader

在matlab中输入help mmreader来查阅一下该函数,有如下信息:

MMREADER Create a multimedia reader object.
 
    OBJ = MMREADER(FILENAME) constructs a multimedia reader object, OBJ, that
    can read in video data from a multimedia file.  FILENAME is a string
    specifying the name of a multimedia file.  There are no restrictions
    on file extensions.  By default, MATLAB looks for the file FILENAME on
    the MATLAB path.
 
    If the object cannot be constructed for any reason (for example, if the
    file cannot be opened or does not exist, or if the file format is not
    recognized or supported), then MATLAB throws an error.
 
    OBJ = MMREADER(FILENAME, ‘P1‘, V1, ‘P2‘, V2, ...) 
    constructs a multimedia reader object, assigning values V1, V2, etc. to the
    specified properties P1, P2, etc.
 
    If an invalid property name or property value is specified, MATLAB throws
    an error and the object is not created.  Note that the property value pairs
    can be in any format supported by the SET function, e.g. parameter-value
    string pairs, structures, or parameter-value cell array pairs.

下面给出两个简单的应用:

[plain] view plaincopy

  1. clear
  2. clc
  3. cd(‘C:\Documents and Settings\Administrator\桌面\matlab‘);
  4. % .avi必须是无损压缩的. matlab读取发现,视频尺寸为176*144
  5. fileName = ‘ntia_wfall-qcif_original.avi‘;
  6. % mm不表示美眉,而表示multimedia. obj是一个对象
  7. obj = mmreader(fileName);
  8. % 读取所有的帧数据
  9. vidFrames = read(obj);
  10. % 帧的总数
  11. numFrames = obj.numberOfFrames;
  12. % 读取数据
  13. % mov(k)是一个结构体,mov(k).cdata实际上就是一个有RGB的帧
  14. for k = 1 : numFrames
  15. mov(k).cdata = vidFrames(:,:,:,k);
  16. mov(k).colormap = [];
  17. end
  18. % 在matlab中播放视频
  19. movie(mov);

[plain] view plaincopy

    1. clear
    2. clc
    3. cd(‘C:\Documents and Settings\Administrator\桌面\matlab‘);
    4. % 有损压缩的.mpg视频. matlab读取后发现,视频大小为352*288
    5. fileName = ‘功夫熊猫_盖世五侠的秘密.mpg‘;
    6. % mm不表示美眉,而表示multimedia. obj是一个对象
    7. obj = mmreader(fileName);
    8. begin = 1001;
    9. % 读取[begin begin + 99]中的100帧数据
    10. vidFrames = read(obj, [begin begin + 99]);
    11. % 读取数据
    12. % mov(k)是一个结构体,mov(k).cdata实际上就是一个有RGB的帧
    13. for k = 1 : 100
    14. mov(k).cdata = vidFrames(:,:,:,k);
    15. mov(k).colormap = [];
    16. end
    17. % 在matlab中播放视频
时间: 2024-10-12 16:12:06

也谈matlab中读取视频的一个重要函数mmreader的相关文章

matlab中如何求某一个矩阵的标准差和均值

方法: 先reshape成行向量或者列向量 然后,利用mean函数,std函数. 构造测试数据,可以利用random函数,就好.利用这个函数,可以构造不同分布的随机数列(或 矩阵). 如: >> y =random('norm',2,0.3,3,4) y = 2.1391 2.2945 2.0769 2.1751 1.9334 1.6805 1.9315 1.8912 1.8775 1.8126 1.9733 1.7686 >> rows = reshape(y,3*4,1) ro

Matlab中如何将(自定义)函数作为参数传递给另一个函数

Matlab中如何将(自定义)函数作为参数传递给另一个函数 假如我们编写了一个积分通用程序,想使它更具有通用性,那么可以把被积函数也作为一个参数.在c/c++中,可以使用函数指针来实现上边的功能,在matlab中如何实现呢?使用函数句柄——这时类似于函数指针的一项功能.假如我们现在已经编写了一个辛普森方法积分的函数如下,我们要把函数作为参数传给它(当然啦,matlab早已经提供给我们非常牛x的积分函数了,这里只是个例子而已):function g=myintegrate(f,N,a,b)%int

Matlab中处理日期与时间的函数

Matlab用三种格式来表示日期与时间 (1)双精度型日期数字:一个日期型数字代表从公元0年到某一日期的的天数,例如,2008年8月26日夜时0点钟被表示为733646,而这同一天的中午12点就被表示为733646.5,也就是说任何一个时刻都可以用一个双精度型数字表示. (2)不同形式的日期字符串:Matlab定义了28种标准日期格式的字符串. (3)数值型的日期向量:用一个6元数组来表示一个日期时间,例如,[2008 8 26 12 5 0]表示2008年8月26日12点05分0秒:用一个3元

MATLAB中白噪声的WGN和AWGN函数的使用

MATLAB中白噪声的WGN和AWGN函数的使用如下: MATLAB中产生高斯白噪声非常方便,可以直接应用两个函数,一个是WGN,另一个是AWGN.WGN用于产生高斯白噪声,AWGN则用于在某一 信号中加入高斯白噪声. 1. WGN:产生高斯白噪声y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度.y = wgn(m,n,p,imp) 以欧姆(Ohm)为单位指定负载阻抗.y = wgn(m,n,p,imp,state) 重置RANDN的状态. 在

matlab中怎样随机生成一个最大值为N的正整数??

使用unidrnd(N)函数,具体代码如下: 1 >> unidrnd(5) 2 3 ans = 4 5 2 6 7 >> unidrnd(5) 8 9 ans = 10 11 5 12 13 >> unidrnd(5) 14 15 ans = 16 17 4 18 19 >> unidrnd(5) 20 21 ans = 22 23 3

matlab中自带的sobol的函数提供的sobol序列

1 clc; 2 clear all; 3 close all; 4 M=9;% 维度,几个参数 5 nPop=200; 6 VarMin=[0.6, 0.10, 0.002, 0.02, 0.17, 0.0, 0.17, 0.0, 0.0];%各个参数下限 7 VarMax=[2.0, 0.49, 0.05, 0.30, 2.6, 0.0, 1.30, 0.99, 5.0];%各个参数上限 8 p = sobolset(M); 9 % R=p(1:nPop,:);% 我只用前nPop个 10

MATLAB中图像处理的一些简单函数

A. imreadimread函数用于读入各种图像文件,其一般的用法为[X,MAP]=imread('filename','fmt')其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为图像的格式,filename为读取的图像文件(可以加上文件的路径).例:[X,MAP]=imread('flowers.tif','tif');比较读取二值图像,灰度图像,索引图像,彩色图像的X和MAP的特点,可以利用size函数用来显示数组的维数,了解数据的特点.B=size(a) 返回数组a 的维数.

从QQ音乐开发,探讨如何利用腾讯云SDK在直播中加入视频动画

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯游戏云发表于云+社区专栏 看着精彩的德甲赛事,突然裁判一声口哨,球赛断掉了,屏幕开始自动播放"吃麦趣鸡盒,看德甲比赛"的视频广告 那么问题来了,如何在直播流中,无缝的插入点播视频文件呢? 本文介绍了QQ音乐基于腾讯云AVSDK,实现互动直播插播动画的方案以及踩过的坑. 01 从产品经理给的需求说起 "开场动画?插播广告?" 不久之前,产品同学说我们要在音视频直播中,加一个开场动画. 要播放插播动画

matlab中filter,conv之间的区别

conv是做卷积,就是按照书上的做法,先翻转,在一步步平移,得出结果.对于两个长度分别为n,m的序列,卷积结果长度为m+n-1 filter是做滤波,其实原理跟卷积是想通的,只不过处理结果的方法不同,先看示例程序: x=[1,2,3,4,5]; h=[1,1,1]; y1=conv(h,x) y2=filter(h,1,x) y3=filter(x,1,h) y4=filter(x,1,[h,zeros(1,4)]) 结果为: y1 = 1     3     6     9    12