%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%        Proyecto final de carrera         %%%
%%%   - Francisco Cruz Fernandez             %%%
%%%   - Uppsala universitet                  %%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%'result' is the thresholded image. Now we are gonna fill the holes and
%process the shape.


%Invert colors to get the holes

resultInv = 1-result;
holes = imfill(resultInv,'holes');
holesInv=1-holes;

% Aplicamos filtro de apertura para intentar separar regiones y eliminar
% ruido


imtool(holesInv);

se=strel('disk',4);
a=imopen(holes,se);

imtool(a);

[L,NUM] = BWLABEL(a);

A = regionprops(L,'Area');

%L es una matriz donde cada píxel indica a que objeto pertenece. Por 
%ejemplo, en la imagen 0010 tenemos 10437 objetos.

%A es un array donde se indica para cada objeto, su área en el caso 'Area'.


%Quitar lo que sea menor de 900 y mayor de 15000



provisional = a;

for i=1:2304
    for j=1:3072
        
if(L(i,j) ~= 0)
     if(A(L(i,j)).Area > 15000)
         provisional(i,j) = 0;
     end
     if(A(L(i,j)).Area < 900)
         provisional(i,j) = 0;
     end
end

    end
end


[L,NUM] = BWLABEL(provisional);



%%%%%%% Hasta aquí, quitamos los grandes y pequeños OK %%%%%%%

%Quitar lo que sea más excentrico que 0.90

E = regionprops(L,'Eccentricity');

for i=1:2304
    for j=1:3072
        
if(L(i,j) ~= 0)
     if(E(L(i,j)).Eccentricity > 0.976)
         provisional(i,j) = 0;
     end
end

    end
end



[L,NUM] = BWLABEL(provisional);




if(Image==1)
Orig = imread('SNAP-111458-0008.JPG');
end

if(Image==2)
Orig = imread('SNAP-111528-0009.JPG');
end

if(Image==3)
Orig = imread('SNAP-111718-0010.JPG');
end

if(Image==4)
Orig = imread('SNAP-111755-0011.JPG');
end

if(Image==5)
Orig = imread('SNAP-111834-0012.JPG');
end


SegmentationR = Orig;

for i=1:2304
    for j=1:3072
        if(provisional(i,j) == 1)
            SegmentationR(i,j,1)=0;
            SegmentationR(i,j,2)=0;
            SegmentationR(i,j,3)=0;

        end
    end
end

imtool(SegmentationR);
