刚刚数学建模比赛,提取视频中的照片。
解释下:
1.
这个27941是秒数,就是提取视频多少秒。如果整个视频提取的话,可以用VideoAd.Duration即视频总长度替代。
video.FrameRate是视频每秒多少帧图片。你如果想要60秒提取一帧的话,那么 60*FrameRate 设定为循环的步长就可以提取了。
clc;
clear;
%% 读取视频
video_file='C:\Users\49786\Desktop\Fog20200313000026.mp4';
video=VideoReader(video_file);
frame_number=floor(27941* video.FrameRate);
n=video.FrameRate*60;
%% 分离图片
k=1;
for i=1:n:frame_number
image_name=strcat('C:\Users\49786\Desktop\imges2\',num2str(k));
image_name=strcat(image_name,'.jpg');
I=read(video,i); %读出图片
imwrite(I,image_name,'jpg'); %写图片
k=k+1;
I=[];
end