实在感谢这位朋友brothers,我找了好几个小时啊~~

%这段代码可以选择一个或多个视频,根据视频名称和帧的序号对图片命名。设定的只能选择avi格式,至于其它格式的视频你可以改改代码的第一句试试%看。

%希望对你有用。
[filename,pathname,fileindex]=uigetfile('*.avi','选择视频文件','video.avi','Multiselect','on');
if ischar(filename) %只有选择了文件才进行以下计算
   video=mmreader([pathname filename]);
   %%General Settings:
    %Duration  时间
    %Name  视频名称
    %Path  路径
    %Tag = 
    %Type = mmreader
    %UserData = []
  %%Video Settings:
    %BitsPerPixel=24
    %FrameRate 视频采集速率
    %Height 高度
    %NumberOfFrames 总帧数
    %VideoFormat 图像模式
    %Width = 宽度
    LEN=video.NumberOfFrames; %获得视频长度
    dir=strcat(pathname,strrep(filename,'.avi',''),'\pic');
    mkdir(dir);
    fn=strrep(filename,'.avi','');
   for k=1:LEN-1 %若read到len,常会报错如下??? MATLAB:read:readTimedOut,read到len-1就好了
       frame=rgb2gray(read(video,k));
       if k<10
          imwrite(frame,strcat(dir,'\',fn,'-avi-000',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
       elseif k>=10 && k<100
          imwrite(frame,strcat(dir,'\',fn,'-avi-00',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
       elseif k>=100 && k<1000
          imwrite(frame,strcat(dir,'\',fn,'-avi-0',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
       elseif k>=1000 && k<10000
          imwrite(frame,strcat(dir,'\',fn,'-avi-',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
        end        
   end 
elseif iscell(filename)
   navi=length(filename);
   for n=1:navi
       video=mmreader([pathname filename{n}]);
       %%General Settings:
        %Duration  时间
        %Name  视频名称
        %Path  路径
        %Tag = 
        %Type = mmreader
        %UserData = []
      %%Video Settings:
        %BitsPerPixel=24
        %FrameRate 视频采集速率
        %Height 高度
        %NumberOfFrames 总帧数
        %VideoFormat 图像模式
        %Width = 宽度
       LEN=video.NumberOfFrames; %获得视频长度
       dir=strcat(pathname,strrep(filename{n},'.avi',''),'\pic');
       mkdir(dir);
       fn=strrep(filename{n},'.avi','');
       for k=1:LEN-1  %若read到len,常会报错如下??? MATLAB:read:readTimedOut,独到len-1就好了
           frame=rgb2gray(read(video,k));
           if k<10
              imwrite(frame,strcat(dir,'\',fn,'-avi-000',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
           elseif k>=10 && k<100
              imwrite(frame,strcat(dir,'\',fn,'-avi-00',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
           elseif k>=100 && k<1000
              imwrite(frame,strcat(dir,'\',fn,'-avi-0',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
           elseif k>=1000 && k<10000
              imwrite(frame,strcat(dir,'\',fn,'-avi-',int2str(k),'.bmp'),'bmp');%把每帧图像存入硬盘
           end 
       end
       disp(strcat(num2str(n),'/',num2str(navi),' : "',filename{n},'" Finished!',datestr(now,13)));
   end
else
   return
end
msgbox('所有帧提取完毕,已写入磁盘!','提示');
clear all

Matlab 如何截取视频中的每一帧图像相关推荐

  1. 批量跨帧提取人脸视频中的脸部区域帧图像python

    代码实现功能 1.所有人脸视频在一个文件夹中. 2.跨帧提取帧图像. 3.截取帧图像的脸部区域. 3.将截取到的所有脸部图像保存到新文件夹中. 代码语言:python3.6 #这个代码实现了批量跨帧提 ...

  2. python OpenCV 按时间间隔截取视频中任意片段帧

    通过视频制作相应的数据集,截取视频中的任意片段帧. 使用python截取视频中的任意片段帧,直接上代码: import cv2 import os# 定义视频文件路径和保存图像文件路径 video_p ...

  3. python识别视频中某个物体的轨迹_用Matlab来识别视频中物体的运动轨迹!

    对于很多生命科学领域的研究者来说,研究生物的行为是很多人研究工作中必不可少的部分.在进行生物行为研究工作的时候,生物的运动又是重中之重.这这里我以小鼠的一段运动视频为例,教大家用Matlab来分析视频 ...

  4. 如何截取视频中的一部分制作成GIF动态图

    如何截取视频中的一部分制作成GIF动态图?关于截取视频于转换视频格式这方面,可能还有很多朋友不能有效解决问题,当然,这和我们的操作能力关系不大,更重要的是需要一款简单实用的视频转换器,网上关于怎样把视 ...

  5. python如何截取视频中的某一段

    使用python截取视频中的某一段,直接上代码: def cut_video(video_path, save_path):"""截取某一段视频""& ...

  6. 如何使用matlab从视频中提取出一帧帧图像

    如何使用matlab从视频中提取出一帧帧图像 原文链接:http://blog.sina.com.cn/s/blog_a5fdbf010101ao4f.html 近期有需要,从视频里面提取图片,以前用 ...

  7. 如何截取视频中的一部分,制作成GIF动态图

    怎么把视频做成gif 截取视频中的一部分内容,制作成GIF动态图?是先用播放器进行截取,还是说先转换视频格式,然后用相应的GIF编辑器呢.网上关于怎样把视频截取转化成gif动态图片的方法有很多,林林总 ...

  8. 视频编辑利器,截取视频中指定区域并实现静音操作

    视频编辑中的常见需求之一就是截取视频中的指定区域,使用moviepy这个库可以轻松地实现这个目的. 需要确定我们要截取的视频区间,然后使用moviepy中的函数来实现截取操作.同时需要实现静音操作,可 ...

  9. 批量剪辑,截取视频中某一帧画面保存为图片

    平时刷视频的时候看到好看的画面就想截图保存,那么如何批量提取视频中的某一帧画面呢?不知道怎么操作的朋友走过路过不要错过,小编分享一个方法演示具体的操作步骤,一起来看看. 运行[媒体梦工厂]这款软件中有 ...

最新文章

  1. python3 赋值与内存空间
  2. 【Android应用开发】 Universal Image Loader ( 使用简介 | 示例代码解析 )
  3. 3.5 将 Batch 拟合进神经网络-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  4. 项目管理:五大过程组十大领域
  5. 【Boost】boost库asio详解2——strand与io_service区别
  6. 理想汽车10月份新增12家直营交付中心 蔚来第1000座充电站上线
  7. 【LeetCode 剑指offer刷题】矩阵题1:4 有序矩阵中的查找( 74. Search a 2D Matrix )(系列)...
  8. ssms的导入功能_SSMS 17中的新增功能; PowerShell和DAX
  9. Application.DoEvents可能不是线程安全的
  10. jsp+mysql 数据库操作
  11. 微信小程序 解决disableScroll无法禁止小程序下拉的问题和视频铺满全屏尺寸
  12. WPF_界面_图片/界面/文字模糊解决之道整理
  13. Win10优化大师Windows 10 Manager v3.4.6.0 官方安装绿色版
  14. myeclipse10破解补丁激活方法
  15. mummer基因组共线性分析详解
  16. 接口测试平台-18:首页完善和项目模块初窥
  17. POWER BI filter函数的筛选条件可以使用度量值作为筛选条件
  18. iOS编译cURL库并链接darwinssl,zlib,c-ares库操作步骤
  19. springboot整合autopoi-web文件导出Excel,使用注解配置一多
  20. BugKu-图穷匕见

热门文章

  1. 在腾讯云中配置服务器外网可以访问
  2. 据说,证监会已承认证券交易所选址时没看好风水...
  3. 栈内存和堆内存的区别
  4. 开始使用Elasticsearch (2): 了解如何进行搜索
  5. arm 2022.10.22
  6. 条件随机场CRF(三)
  7. model.compile中metrics的参数accuracy
  8. C++字符串的几种输入方法(string和字符数组)
  9. HTML——选择器(1)
  10. BlockingQueue drainTo()