%Funcion que segmenta mediante umbralización utilizando como pixel de entrada impixel con aumento de %contraste automatizado y rango de intensidades válidos de 0.065 name=input('introduzca nombre de la imagen: ','s'); y=dicomread(name); minimo=min(min(y)); resul=y-minimo; maximo=max(max(resul)); maximo=double(maximo); I=double(resul)/maximo; I10=I; % Automatizamos los umbrales para aumentar el contraste de la imagen [h,n]=imhist(I); %h=representa el numero de veces q se repite intensidad de la imagen, n=el valor de intensidad del hist. for(i=2:length(n)-1) if((h(i)>h(i+1))) maximo=h(i); p=i; else maximo=h(i+1); p=i+1; end maximo=h(p); queue(1,i)=maximo; end maxtotal=max(queue(1,:)) %calculamos el valor maximo del histograma eliminando el maximo en cero m=imhist(I)==maxtotal; %vector que toma el valor 1 en la posición en la que el histograma toma el valor maximo resu=m'*n imhist(I) mini=resu+0.1 ; %Intervalo mimino para aplicar contraste maxi=mini+0.3 ; %Intervalo maximo para aplicar contraste if(maxi>1) maxi=1; end I2=imadjust(I,[mini;maxi]); clf imshow(I2),title('SELECCIONE LA SEMILLA') %Implantamos semilla title('seleccione semilla'),[col,fil,sem]=impixel(I2) sem=I2(fil,col) umbral=0.065; interior=zeros(512,512); %inicializamos matriz interior(0=no visitado,1=visitado y pertenece,2=visitado y no pertenece) I3=zeros(512,512); for i=1:512 %recorremos filas for j=1:512 %recorremos colunmas if(abs(sem-I2(i,j))>umbral) interior(i,j)=2; else interior(i,j)=1; indfila=i; indcolu=j; I(i,j); I3(indfila,indcolu)=I2(indfila,indcolu); end end end imview(I3) I4=medfilt2(I3); I5=medfilt2(I4); I6=medfilt2(I5); I7=medfilt2(I6); imview(I7)