copying multiple images from one folder to other folder

5 visualizaciones (últimos 30 días)
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 ..
  2 comentarios
Jan
Jan el 27 de En. de 2016
Editada: Jan el 27 de En. de 2016
What have you tried so far and which problems occurred?
What does this mean: "image dimension must be appropriate like Width=600 and hight=100 not accepted" ??
ahmed obaid
ahmed obaid el 27 de En. de 2016
I have solve the last condition , but how to read sequence image , find extension of that image is it jpg or png then find it size if satisfy then create folder in the destination folder and copy that image to it .

Iniciar sesión para comentar.

Respuesta aceptada

Stalin Samuel
Stalin Samuel el 27 de En. de 2016
Editada: Stalin Samuel el 27 de En. de 2016
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
  7 comentarios
ahmed obaid
ahmed obaid el 27 de En. de 2016
Editada: ahmed obaid el 27 de En. de 2016
sir i have verify directory path , add your function to matlab path , but dirFlags [] is still empty i think its not able to read subdirectory folders , and K= [] and subfolders is struct 0x0 struct ??
Mammo Image
Mammo Image el 3 de Oct. de 2017
I also have a txt files in the folder. How can I ignore the txt files from being copied and moved. Thanks

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Get Started with MATLAB en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by