Matlab - LEER IMAGENES DE DIFERENTES SUBCARPETAS

 
Vista:
sin imagen de perfil

LEER IMAGENES DE DIFERENTES SUBCARPETAS

Publicado por Ronald (7 intervenciones) el 18/10/2015 18:19:24
Hola,

tengo una carpeta, y dentro de esa carpeta varias subcarpetas, y dentro de cada subcarpeta varias imágenes.

Estoy intentando cargarlas todas...pero no lo consigo.
El primer problema que tengo es que pongo un patrón y cada Subcarpeta se llama de una forma..por lo que solo se me abren las que empiezan por el patrón que yo le pongo.

El segundo problema, es que solo me carga una imagen por cada subcarpeta...y yo necesito que me cargue todas.
¿Alguien sabría decirme que estoy haciendo mal?

Gracias


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
myRootDir = 'C:\Users\Beatriz\Documents\MATLAB\Imagenes\';
mySubDirPattern = 'Sol*';
 
myFilePattern = '*.jpg';
 
mySubDirs = dir(fullfile(myRootDir, mySubDirPattern));
numSubDirs = length(mySubDirs);
 
 
 
 
currentSubDir = cell(1,numSubDirs);
myFiles = cell(1,numSubDirs);
 
for i = 1:numSubDirs
 
    if(mySubDirs(i).isdir == 1)
 
             currentSubDir{i} = fullfile(myRootDir, mySubDirs(i).name);
 
 
 
              myFiles{i}= dir(fullfile(currentSubDir{i}, myFilePattern));
 
 
              numFiles = length(myFiles);
 
             end
            imageSubCell = cell(1,numFiles);
           fileName = cell(1,numFiles);
 
 
             for k = 1:numFiles
 
 
                    fileName{k}= myFiles{k}.name;
                    fullFileName = fullfile(currentSubDir, fileName);
                    imageSubCell{k}= imread(fullFileName{k});
                    figure
                  image(imageSubCell{k})
 
 
              imageCell{i} = imageSubCell;
 
 
     end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

LEER IMAGENES DE DIFERENTES SUBCARPETAS

Publicado por Royeth (1818 intervenciones) el 18/10/2015 20:32:06
para que carges todas las imágenes y te queden guardadas en un array debes hacer lo siguiente :

1
2
3
4
5
6
7
8
9
10
a=uigetdir; %seleccionas la carpeta
d = dir(a);
c={};
isub = [d(:).isdir];
subcarpetas = {d(isub).name}';
subcarpetas(ismember(subcarpetas,{'.','..'})) = [];
for k=1:length(subcarpetas)
f=dir(fullfile(a,subcarpetas{k},'*.jpg'));
c=[c fullfile(a,subcarpetas{k},{f.name})];
end


te quedarán guardas en c donde c es un array con la dirección específica de cada imágen así que si quieres luego cargarlas puedes hacer

1
2
imagen=imread(c{20})
imshow(imagen);

y puedes variar el número dependiendo de las acciones que vayas a tomar luego de esto

espero te sea de ayuda
https://www.facebook.com/royethmatlab/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

LEER IMAGENES DE DIFERENTES SUBCARPETAS

Publicado por Ronald (7 intervenciones) el 18/10/2015 22:51:07
Muchas gracias Jesús, me ha servido de mucho.

el problema es que tengo 6000 imágenes para cargar...no se si es que tarda bastante..pero solo se me abre la primera imagen.

por otro lado, este comando subcarpetas(ismember(subcarpetas,{'.','..'})) = []; que hace exactamente?

Gracias de nuevo.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

LEER IMAGENES DE DIFERENTES SUBCARPETAS

Publicado por Royeth (1818 intervenciones) el 18/10/2015 23:07:21
comprueba con un carpeta que tenga en sus subcarpetas pocas imagénes y verás que funciona bien , bueno eso comando lo que hace es eliminar unas carpetas que vienen por defecto que son current and parent directory , el directorio actual y el directorio padre los guarda como . y .. entonces lo que se hace es eliminarlos simplemente , si colocas el comando dir verás que además de los archivos y las carpetas te salen antes estos dos directorios, espero te sea de ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

LEER IMAGENES DE DIFERENTES SUBCARPETAS

Publicado por Ronald (7 intervenciones) el 18/10/2015 23:16:34
Perfecto! funciona genial!
muchísimas gracias ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar