zoukankan      html  css  js  c++  java
  • 【matlab】使用VideoReader提取视频的每一帧,不能用aviread函数~

    这个问题是matlab版本问题,已经不用aviread函数了~

    VideoReader里面没有cdata这个函数!

    MATLAB不支持avireader了,
    而且没有cdata这个属性了,详情去官网
    http://www.mathworks.cn/cn/help/matlab/ref/videoreaderclass.html

    cdata 是MATLAB里存放图像数据的一个矩阵,你可以使用get语句去得到他的句柄,然后做相应的图像处理。
     

    ------------------------------------------------

    以前:使用aviread:(现在不用这种了)

    整段程序示例一:

    avi格式视频的读取和显示(Matlab代码)

      cdata: M x N x 3 的矩阵用来表示真彩色的图像

    clear data                                                                              
    disp('input video');                     % 显示 "input video"
    avi = aviread('samplevideo.avi');        % avi: MATLAB movie structure
    video = {avi.cdata};                     % cdata: M x N x 3 的矩阵用来表示真彩色的图像
    for a = 1:length(video)                  % length(video)表示这段视频的帧数
        imshow(video{a})                     %按帧数顺序显示图像
        drawnow;                                            
    end

    --------------------------------------

    整段程序示例二:

    avi格式视频的读取和倒放(Matlab代码)

    clear data                                                                              
    disp('input video');                            % 显示字符串 "input video",disp功能类似于c语言中的print;java语言中的System.out.println();
    avi = aviread('samplevideo.avi');               % avi: MATLAB movie structure
    video = {avi.cdata};                            % cdata: M x N x 3 的矩阵用来表示真彩色的图像
    for a = length(video) :-1:1                     % length(video)表示这段视频的帧数
        imshow(video{a})                            %按帧数倒序显示图像
        drawnow;                                            
    end                

    以后应该用:VideoReader!

    现在:使用VideoReader提取视频的每一帧~

    fileName = 'D:Workcar.avi';  
    obj = VideoReader(fileName); 
    numFrames = obj.NumberOfFrames;                     % 读取视频的帧数  
    for i = 1 : numFrames      
        frame = read(obj,i);                            % 读取每一帧      
        imshow(frame);                                  %显示每一帧      
        imwrite(frame,strcat(num2str(i),'.jpg'),'jpg'); % 保存每一帧 
    end
  • 相关阅读:
    在IIS7中应用Application Request Routing配置反向代理
    sqlite数据类型(时间 日期 ) timestamp 使用
    Windows环境下搭建Redis集群(Redis-x64-3.2.100)
    Vertx上传 官网Demo Java版
    Vert.x HTTP 服务器与客户端
    vertx-mysql-client/java/
    vertx-jersey
    Vertx和Jersey集成使用
    jersey常用注解解释 JAX-RS常用注解:
    Statement及PreparedStatement执行多个sql
  • 原文地址:https://www.cnblogs.com/wxl845235800/p/6685948.html
Copyright © 2011-2022 走看看