How to save multiple images in the same folder?

2 views (last 30 days)
hello, I have several images that are saved in different folders and I want to arrange theses images in a single folder. please, any suggestion of matlab code? thanks in advances

Accepted Answer

Image Analyst
Image Analyst on 1 Jan 2016
Perhaps use my demo. In the middle of the loop is where you would stick a call to copyfile() or movefile().

More Answers (1)

Walter Roberson
Walter Roberson on 1 Jan 2016
The function you supply would movefile()
Watch out for duplicate file names! Watch out for bugs while you get the code working...
If I were developing the code, I would refrain from moving the files unless I had good reason. I would either copy the files or I would create links to the files.
  2 Comments
Sahar abdalah
Sahar abdalah on 1 Jan 2016
thank you for your reply, but I am new in matlab and I did not understand the importance of this link in the resolution of my problem. simply, I have images with different names and are stored in multiple folders, my goal is to copy all images in a single folder. I have a folder: flowers that contain 12 others folders (category 1, category 2, ......, category 12). and each folder contain a list of images corresponding to the category of flowers. my goal is to save these images in a new folder called flowerCategory. Any idea please for matlab code?
Walter Roberson
Walter Roberson on 4 Jan 2016
sourcedir = fullfile(pwd, 'flowers');
destdir = fullfile(pwd, 'flowerCategory');
if ~exist(destdir,'dir')
[success, message, messageid] = mkdir(destdir);
if ~success
error(messageid, sprintf('Failed to create directory "%s" because "%s"', destdir, message) );
end
end
%find the potential source directories
dinfo = dir( fullfile(sourcedir, 'category*') );
%remove everything that is not a directory
dinfo(~[dinfo.isdir]) = [];
for J = 1 : length(dinfo) %for each source directory
thisdir = fullfile(sourcedir, dinfo(J).name);
%find potential files in directory
finfo = dir( thisdir );
%get rid of the things that are not files
finfo([finfo.isdir]) = [];
for K = 1 : length(finfo) %for each file in directory
thisfile = fullfile(thisdir, finfo(K).name );
%make a copy of it
copyfile(thisfile, destdir);
end
end

Sign in to comment.

Categories

Find more on File Operations 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!