将视频离散成每一帧的图片,保持视频本身的分辨率和帧率
clear all; close all; clc;
% 指定要打开的AVI文件路径
name1='G:\实验数据\接触角\25组接触角-KRUSS测量\1\1.9\cao_z';
name2='.mp4';
filename =[name1 name2];
% 创建 VideoReader 对象并打开 AVI 文件
videoObj = VideoReader(filename);
% 获取视频信息(如分辨率、帧速率等)
info = videoObj;
disp(['视频名称:', info.Name]);
disp(['分辨率:', num2str(info.Width), 'x', num2str(info.Height)]);
disp(['帧速率:', num2str(info.FrameRate)]);
% 获取视频的属性信息
frameRate = videoObj.FrameRate; % 帧速率
numFrames = videoObj.NumFrames; % 总帧数
% 定义要保存图像的目录
name3='/';
outputDir =[name1 name3];
if ~exist(outputDir,'dir')
mkdir(outputDir);
end
% 开始处理视频帧
for i=1:numFrames
frame = readFrame(videoObj); % 读取当前帧
% 构造保存图像的文件名
outputFileName = sprintf('%s/%05d.jpg', outputDir, i-1);
% 保存图像到指定位置
imwrite(frame, outputFileName);
fprintf('已保存第 %d 张图像\n', i);
end
%fclose(videoObj); % 关闭VideoReader对象
disp('所有图像都已保存完成!');
% 关闭 VideoReader 对象
delete(videoObj);