Matlab - Disminuir el tiempo de procesamiento en scilab

 
Vista:

Disminuir el tiempo de procesamiento en scilab

Publicado por edgar roa (3 intervenciones) el 04/12/2013 16:06:08
Hola a todos los colegas programadores, espero se encuentren bien

Hoy quiero pedir muy amablemente la ayuda de todos para resolver una duda que tengo con scilab. Estoy trabajando procesamiento de imágenes en scilab y el programa funciona correctamente pero se demora alrededor de 15 a 20 minutos para entregar el resultado, las imágenes son RGB de 231*418.
Acá les muestro el ciclo for que se demora mucho, di,d2 y d3 son matrices de 231*418 halladas en un ciclo anteriormente y no son demoradas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
for i=1:231
    for j=1:418
        if (d1(i,j)<d2(i,j) & d1(i,j)<d3(i,j))
            imafil(i,j,1)=0;
            imafil(i,j,2)=255;
            imafil(i,j,3)=0;
        elseif (d2(i,j)<d1(i,j) & d2(i,j)<d3(i,j))
            imafil(i,j,1)=255;
            imafil(i,j,2)=0;
            imafil(i,j,3)=0;
        elseif (d3(i,j)<d2(i,j) & d3(i,j)<d1(i,j))
            imafil(i,j,1)=0;
            imafil(i,j,2)=0;
            imafil(i,j,3)=255;
        else
            imafil(i,j,:)=255;
        end
    end
end

Les pido me ayuden a encontrar la manera que el programa realice este for sin demorarse tanto.

Estaré atento a sus respuestas
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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Disminuir el tiempo de procesamiento en scilab

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 05/12/2013 11:52:11
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
>> clear all
format short
tic
d1=rand(231,418);
d2=rand(231,418);
d3=rand(231,418);
for i=1:231
     for j=1:418
         if (d1(i,j)<d2(i,j) & d1(i,j)<d3(i,j))
             imafil(i,j,1)=0;
             imafil(i,j,2)=255;
             imafil(i,j,3)=0;
         elseif (d2(i,j)<d1(i,j) & d2(i,j)<d3(i,j))
             imafil(i,j,1)=255;
             imafil(i,j,2)=0;
             imafil(i,j,3)=0;
         elseif (d3(i,j)<d2(i,j) & d3(i,j)<d1(i,j))
             imafil(i,j,1)=0;
             imafil(i,j,2)=0;
             imafil(i,j,3)=255;
         else
             imafil(i,j,:)=255;
         end
     end
end
toc



Elapsed time is 0.368124 seconds.
El tiempo transcurrido es 0.368124 segundos.

Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]


http://matlabcaballero.blogspot.com


http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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

Disminuir el tiempo de procesamiento en scilab

Publicado por edgar roa (3 intervenciones) el 05/12/2013 16:57:02
Buenas tardes JOSE CABALLERO

El código que sugirió sirve para matlab pero para scilab sigue funcionando lento
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 JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Disminuir el tiempo de procesamiento en scilab

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 05/12/2013 17:10:27
No sugerí ningún código, solo ejecuté tu código y te hice ver que el tiempo de proceso es rápido.
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 Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Disminuir el tiempo de procesamiento en scilab

Publicado por Dave (1094 intervenciones) el 07/12/2013 11:19:00
Hola Edgar;

He ejecutado tu código en Matlab y corre se ejecuta en Elapsed time is 0.259125 seconds, pienso que tu problemas podría estar relacionado con tu PC.

Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
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 Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Disminuir el tiempo de procesamiento en scilab

Publicado por Dave (1094 intervenciones) el 07/12/2013 11:52:31
Hola Edgar;

Acabo de ejecutar tu código en Scilab y lo ejecuto en un poco más de 5 segundos


-->tic

-->d1=rand(231,418);

-->d2=rand(231,418);

-->d3=rand(231,418);

-->for i=1:231
--> for j=1:418
--> if (d1(i,j)<d2(i,j) & d1(i,j)<d3(i,j))
--> imafil(i,j,1)=0;
--> imafil(i,j,2)=255;
--> imafil(i,j,3)=0;
--> elseif (d2(i,j)<d1(i,j) & d2(i,j)<d3(i,j))
--> imafil(i,j,1)=255;
--> imafil(i,j,2)=0;
--> imafil(i,j,3)=0;
--> elseif (d3(i,j)<d2(i,j) & d3(i,j)<d1(i,j))
--> imafil(i,j,1)=0;
--> imafil(i,j,2)=0;
--> imafil(i,j,3)=255;
--> else
--> imafil(i,j,:)=255;
--> end
--> end
-->end

-->

-->toc
ans =

5.639

Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
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