How to read several files and save CSV files in folder

1 visualizzazione (ultimi 30 giorni)
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);

Risposta accettata

Jon
Jon il 12 Mar 2020
Modificato: Jon il 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
  3 Commenti
Jon
Jon il 12 Mar 2020
oops it should be
reader = VideoReader(list(k).name);
sorry about that
Kong
Kong il 12 Mar 2020
Thank you so much!
Can I get another idea to make CSV each file?
csvwrite('shahar_bend_file.csv',X);

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Data Import and Analysis in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by