function [sumareg,mascara,longitud,intensidad_media,coordenadas]=crece(imagen,u,v,mascara,sumareg,agregacion)

[m,n]=size(imagen);
longitud=1;
intensidad_media=imagen(u,v);
coordenadas(1,1)=u;
coordenadas(1,2)=v;
indcoor=2;
min_npoints=15;
t=2;

if mascara(u,v)==0
    
    mascara(u,v)=1; %Ese píxel semilla ya lo hemos mirado ponemos mascara de esa posicion a 1
    sumareg(u,v)=imagen(u,v); %La semilla seguro pertenecerá a la region asi que la metemos
    %Para no mirar un píxel varias veces
    candidatos(1,1)=u;	%Candidatos es una tabla con los puntos que pueden pertenecer a la region????
    candidatos(1,2)=v;
    indcand=2;
    candidatos(indcand,1)=0;
    candidatos(indcand,2)=0;
   % F=agregacion;
   F=imagen(u,v)-agregacion;	%Para la condición de pertenencia
    
    %Mientras exista algún candidato aparte de la semilla por mirar 
    while (size(candidatos)> [1 1])  
        % Coge los indices de los cuatro píxeles de alrededor de la semilla y el de la propia semilla
        filas=[candidatos(1,1)-1,candidatos(1,1)-1,candidatos(1,1)-1,candidatos(1,1),candidatos(1,1),candidatos(1,1),candidatos(1,1)+1,candidatos(1,1)+1,candidatos(1,1)+1];
        cols=[candidatos(1,2)-1,candidatos(1,2),candidatos(1,2)+1,candidatos(1,2)-1,candidatos(1,2),candidatos(1,2)+1,candidatos(1,2)-1,candidatos(1,2),candidatos(1,2)+1];
        for (turno=1:9), %Para cada píxel de ese entorno de 5 puntos hace
        %esto
            j=filas(1,turno);	%Toma los indices del punto en cuestion
            k=cols(1,turno);
            
            %Si se cumple la condicion de pertenencia y no nos hemos salido de la imagen
            if (j>0)&(j<=m)&(k>0)&(k<=n)&(mascara(j,k)==0)&(imagen(j,k)>=F)
                
                intensidad_media(t)=imagen(j,k);
                t=t+1;
                longitud=longitud+1;
                mascara(j,k)=1; 
                candidatos(indcand,1)=j;	%En el elemento que era cero pones este nuevo pixel y añades un elemento ficticio debajo
                candidatos(indcand,2)=k;
                indcand=indcand+1;
                candidatos(indcand,1)=0;
                candidatos(indcand,2)=0;
                
                coordenadas(indcoor,1)=j;   %Guardamos las coordenadas de los elementos que pertenecen a la region
                coordenadas(indcoor,2)=k;
                indcoor=indcoor+1;
                
                sumareg(j,k)=imagen(j,k); %Como el píxel cumple la condicion lo añadimos a la region candidatos
            end
        end
        [c,d]=size(candidatos);       %Quitamos el primer píxel de candidatos que era la semilla para no volverla a estudiar
        candidatos=candidatos(2:c,:); %Si candidatos queda de dimension 1 es que ya no hay más píxeles que añadir
        indcand=c-1; 
    end
    
    % Para eliminar vasos con menos de min_points puntos
    if longitud<min_npoints
        [r,s]=size(coordenadas);
        for i=1:r
            mascara(coordenadas(i,1),coordenadas(i,2))=0;
            sumareg(coordenadas(i,1),coordenadas(i,2))=0;
        end
    else
        average=mean(intensidad_media);
        maximo=max(intensidad_media);
        intensidad_media=sqrt(average*maximo);
    end
end
   
      

%         filas=[candidatos(1,1)-1,candidatos(1,1),candidatos(1,1),candidatos(1,1),candidatos(1,1)+1];
%         cols=[candidatos(1,2),candidatos(1,2)-1,candidatos(1,2),candidatos(1,2)+1,candidatos(1,2)];
%         for (turno=1:5), %Para cada píxel de ese entorno de 5 puntos hace esto
