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
  • 相关阅读:
    HDU 6071
    HDU 6073
    HDU 2124 Repair the Wall(贪心)
    HDU 2037 今年暑假不AC(贪心)
    HDU 1257 最少拦截系统(贪心)
    HDU 1789 Doing Homework again(贪心)
    HDU 1009 FatMouse' Trade(贪心)
    HDU 2216 Game III(BFS)
    HDU 1509 Windows Message Queue(队列)
    HDU 1081 To The Max(动态规划)
  • 原文地址:https://www.cnblogs.com/wxl845235800/p/6685948.html
Copyright © 2011-2022 走看看