Problema con un bucle para una imagen
Publicado por Emma (13 intervenciones) el 23/11/2012 09:59:21
Hola,
Tengo una pregunta. Tengo un proceso de código elaborado para poder aplicarlo a una imagen, pero solo se me ejecuta para el primer píxel. No sé bien como hacer el bucle. Os muestro el código
[
Y una vez con estos tres últimos resultados, me gustaría poder guardar el resultado del spout1_c en la misma posición del píxel en la banda 1, el siguiente en la 2, etc.
Si alguien me pudiera ayudar la estaría muy agradecida. Muchas gracias de antemano y saludos,
Núria
Tengo una pregunta. Tengo un proceso de código elaborado para poder aplicarlo a una imagen, pero solo se me ejecuta para el primer píxel. No sé bien como hacer el bucle. Os muestro el código
[
indent]image1=imread('image234.tif'); % Aquí cargo la imagen y la divido entre las tres bandas
band1a= image234(:,:,1);
band2a= image234(:,:,2);
band3b= image234(:,:,3);
for i = 1:numel(band1b) % aquí empezaría la parte que no sé como hacer un bucle. quiero que me haga esto para todos los píxeles de la imagen
ma = zeros(100,1);
ma(10) = banda1b(i);
end
for i = 1:numel(band2b)
ma(25) = banda2b(i);
end
for i = 1:numel(band3b)
ma(50) = band3b(i);
end
band1a= image234(:,:,1);
band2a= image234(:,:,2);
band3b= image234(:,:,3);
for i = 1:numel(band1b) % aquí empezaría la parte que no sé como hacer un bucle. quiero que me haga esto para todos los píxeles de la imagen
ma = zeros(100,1);
ma(10) = banda1b(i);
end
for i = 1:numel(band2b)
ma(25) = banda2b(i);
end
for i = 1:numel(band3b)
ma(50) = band3b(i);
end
vec1= [10, 25, 50]';
pos1= ma(10);
pos2= ma(25);
pos3= ma(50);
vec2= [pos1 pos2 pos3];
t= 0:100;
xi= 0:1:100;
interplan= interp1(vec1,vec2,t,'spline');
sp1_a= spb1y.*interplan; %estas variables ya estan definidas anteriormente
sp1_b= sp1_a./spsum1;
sp2_a= spb2y.*interplan;
sp2_b= sp2_a./spsum2;
sp3_a= spb3y.*interplan;
sp3_b= spout3_a./spsum3;
spout1_c= sum(spout1_b);
spout2_c= sum(spout1_b);
spout3_c= sum(spout1_b);
pos1= ma(10);
pos2= ma(25);
pos3= ma(50);
vec2= [pos1 pos2 pos3];
t= 0:100;
xi= 0:1:100;
interplan= interp1(vec1,vec2,t,'spline');
sp1_a= spb1y.*interplan; %estas variables ya estan definidas anteriormente
sp1_b= sp1_a./spsum1;
sp2_a= spb2y.*interplan;
sp2_b= sp2_a./spsum2;
sp3_a= spb3y.*interplan;
sp3_b= spout3_a./spsum3;
spout1_c= sum(spout1_b);
spout2_c= sum(spout1_b);
spout3_c= sum(spout1_b);
Y una vez con estos tres últimos resultados, me gustaría poder guardar el resultado del spout1_c en la misma posición del píxel en la banda 1, el siguiente en la 2, etc.
Si alguien me pudiera ayudar la estaría muy agradecida. Muchas gracias de antemano y saludos,
Núria
Valora esta pregunta


0