This code demonstrates to convert avi file formats to sequence of frames.This code could be used for video processing applications in matlab. Video processing is done in frames ,in order to convert video to frames you need the following code snippet.
Matlab Code to Convert Video to Sequence of Frames
% To get information about video file
file=aviinfo('test.avi');
% To get the no of frames in the video file
frm_cnt=file.NumFrames
FileExtension='.bmp'
%Progress bar starts
h = waitbar(0,'Please wait...');
%Begin Loop process till End of Frames
for i=1:frm_cnt
% Read the Frame of the Video file
frm(i)=aviread('test.avi',i);
% Convert Frame to image file
frm_name=frame2im(frm(i));
%Create Filename to store
Filename=strcat(strcat(num2str(i)),FileExtension);
% Write image file to the current folder
imwrite(frm_name,Filename);
waitbar(i/frm_cnt,h)
end
%Close Progress bar
close(h)
This part of the sample code explains to convert to video to frames using videoreader
FileExtension='.bmp'
%Create a multimedia reader video
readerobj = VideoReader('xylophone.mp4', 'tag', 'myreader1');
% Read in all video frames.
vidFrames = read(readerobj);
% Get the number of frames.
numFrames = get(readerobj, 'NumberOfFrames');
% Create a MATLAB movie struct from the video frames.
for k = 1 : numFrames
mov(k).cdata = vidFrames(:,:,:,k);
frm_name=vidFrames(:,:,:,k);;
%Create Filename to store
Filename=strcat(strcat(num2str(k)),FileExtension);
% Write image file to the current folder
imwrite(frm_name,Filename);
mov(k).colormap = [];
end
% Create a figure
hf = figure;
% Resize figure based on the video's width and height
set(hf, 'position', [150 150 readerobj.Width readerobj.Height])
% Playback movie once at the video's frame rate
movie(hf, mov, 1, readerobj.FrameRate);



