How to read several files and save CSV files in folder
1 view (last 30 days)
Show older comments
Hello. I am a beginner in Matlab.
I have several video files (daria_bend.avi, denis_bend.avi, eli_bend.avi, .......).
I want to read each file and save it to the CSV file.
I have a code, but I want to use "for loop" to read without entering each name of the file.
How to fix two parts.
reader = VideoReader('shahar_bend.avi');
csvwrite('shahar_bend_file.csv',X);
All code / I should enter each file name.
clear all
close all
%// read the video:
reader = VideoReader('shahar_bend.avi');
vid = {};
while hasFrame(reader)
vid{end+1} = im2single(readFrame(reader));
end
%// simple background estimation using mean:
bg = mean( cat(4, vid{:}), 4);
%// estimate foreground as deviation from estimated background:
for i=1:30
fIdx(i) = i; %// do it for frame 1 ~ 60
fg{i} = sum( abs( vid{fIdx(i)} - bg ), 3 );
fg{i} = imresize(fg{i}, 0.5);
fg{i} = reshape(fg{i},[],1);
end
X = cell2mat(fg);
csvwrite('shahar_bend_file.csv',X);
0 Comments
Accepted Answer
Jon
on 12 Mar 2020
Edited: Jon
on 12 Mar 2020
You can use
list = dir('*.avi')
to get a list of the .avi files in your local director. Check out the documentation on the dir command for details.
It return an array of structures. Specifically you can make a loop like
% get a list of the .avi files
list = dir('*.avi')
% loop through the filenames in the list
for k = 1:length(list)
reader = VideoReader(list.name(k));
% and so on
end
More Answers (0)
See Also
Categories
Find more on Data Import and Analysis in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!