MATLAB: Copying multiple images from one folder to other folder

for loopimageimage acquisitionimage processingMATLABprogramming

Dear Matlab Users ,
I have 10 folders contain images in the following folder ( " D:\ second_folders ") , inside this folder there are 10 folders names ( folder1 , folder2 ….. , folder10 ) , i need to read each image in each folder and copy the image to another main folder ("D:\ master_folder" ) if its satisfy conditions and put it that copied image in same folder name that it comes from .. for example if image1 was read from folder1 in D:\ second_ folder and satisfy conditions then copied to folder1 in D:\ master_folder and so on for others images in folders ,,,
conditions are :
image type must be .jpg or .png type ,
image size must be >=50 KB ,
thanks ..

Best Answer

clear all
clc
M_dir = 'D:\ second_folders'% source directory
D_dir = 'D:\ master_folder'
files = dir(M_dir);% main directory
dirFlags = [files.isdir];
subFolders = files(dirFlags);%list of folders
for k = 1 :length(subFolders)
if any(isletter(subFolders(k).name))
c_dtry = strcat(M_dir,subFolders(k).name)
fileList = getAllFiles(c_dtry)%list of files in subfolder
for n1 = 1:length(fileList)
[pathstr,name,ext] = fileparts(fileList{n1})% file type
s = dir(fileList{n1});
S = s.bytes/1000;%file size
Im = imread(fileList{n1});
[h,w,d] = size(Im);%height width and dimension
if ((strcmp(ext,'.jpg')|strcmp(ext,'.png'))&S>=50&(write image dimension condition))% here you need to modify
baseFileName = strcat(name,ext);
fullFileName = fullfile(D_dir, baseFileName); % No need to worry about slashes now!
imwrite(Im, fullFileName);
end
end
end
end