Matlab 如何截取视频中的每一帧图像
来源:互联网 发布:警用手铐淘宝哪里有卖 编辑:程序博客网 时间:2024/06/05 14:38
实在感谢这位朋友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 如何截取视频中的每一帧图像
- Matlab 如何截取视频中的每一帧图像
- matlab如何截取视频中的每一帧图像
- 使用MATLAB获取视频中每一帧的图像
- 如何从视频中提取每一帧图像
- opencv 读取视频中的每一帧
- matlab将视频转成每一帧的方法
- OpenCV之从视频获取每一帧图像
- matlab截取图像
- matlab截取图像一部分
- 通过matlab截取视频
- [opencv入门笔记] 读视频转图像—读取视频中每一帧图像
- 提取视频每一帧
- python 提取gif动态图像中的每一帧
- Android Camera设置setPreviewCallback实现onPreviewFrame接口实时截取每一帧视频流数据
- Android Camera设置setPreviewCallback实现onPreviewFrame接口实时截取每一帧视频流数据
- 读取视频中的每一帧并保存图片
- 《OpenCV》Part4 OpenCV3.1.0 提取视频中的每一帧
- 工欲善其事必先利其器,工具之网络篇
- 免费开源解压缩软件7-Zip
- Windows线程基础
- 正则表达式基础实例
- 黑马程序员_java之银行业务调度系统(很重要)
- Matlab 如何截取视频中的每一帧图像
- 简易C++学生管理系统
- java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to ]
- 大规模高能效图遍历: 一种高效的数据密集型超级计算方法
- IIR,FIR滤波器介绍
- Emacs学习笔记(1):初学者的学习计划
- java 对象树的构建
- 编辑框(Edit)样式风格
- Java集合框架