【Matlab读取视频】

利用matlab从视频流中提取图片

本程序可将 avi、mp4、flv 等格式的视频按帧分离成图片,且能够进行系统计时,用以分析算法效率。

开始计时

tic

数据载入

[filename, filepath] = uigetfile(...
	{'*.avi;*.mp4;*.flv','video files(*.avi;*.mp4;*.flv)';...
	'*.avi;', 'avi files(*.avi)';...
	'*.mp4;', 'mp4 files(*.mps)';...
	'*.flv;', 'flv files(*.flv)';...
	'*.*', 'all files(*.*)'},...
	'选择视频文件');

添加进度条

h = waitbar(0, 'Starting...');

创建文件夹,用于保存图片

mkdir([filepath, 'ImageFrame']);		%文件夹名称ImageFrame
ImageFramePath = strcat(filepath, 'ImageFrame\');   %文件夹路径

读取视频

video_file = [filepath filename];
video = VideoReader(video_file);
numFrames = get(video, 'NumberOfFrames');

分离图片

for i = 1 : 1 : numFrames
	image_name = strcat(ImageFramePath, num2str(i));		%写在ImageFrame文件夹中
	image_name = strcat(image_name, '.jpg');
	I = read(video, i);		%读出图片
	imwrite(I , image_name, 'jpg');		%写图片
	I = [];
% 更新进度条
	if isequal(i, numFrames)
		strWaitBar = [num2str((i/numFrames)*100), '%', 'Done!'];
	else
		strWaitBar = [num2str((i/numFrames)*100), '%', 'Waiting...'];
	end
	waitbar((i/numFrames), h, strWaitBar)
end

delete(h);

计时结束

toc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值