function[fig1,fig2,fig3,fig4]=Scratch(X,Y)

% Tato funkce umoznuje komplexni analyzu snimku, ziskanych v prubehu
% experimentu Scratch Assay - snimku ve fluorescencnim a svetelnem poli.
%
% Vstupy: X - nazev snimku ve fluorescencnim poli vcetne koncovky
% (napr. '1-0h-3D.tif'), Y - nazev prislusneho snimku ve svetelnem poli
% vcetne koncovky (napr. '1-0h.tif').
% Pro aplikaci funkce na snimky bunek obarvenych SPIO-R musite deaktivovat
% a nasledne aktivovat nektere radky funkce (viz komentare).
% Pouzita verze MATLAB R2015b. Autor - Inna Zumberg (ID 185961).

% Snimky + profil intenzity
I=rgb2gray(im2double(imread(X)));   % 3D obrazek fluorescencni
level=graythresh(I);
% level=0.298;                      % pro snimky bunek obarvenych SPIO-R pouzijte level=0.298
I=im2bw(I,level);
vektor=sum(I);

I_sum=imread(Y);                    % obrazek svetelne pole
I_sum=rgb2gray(I_sum);
I_sum=im2double(I_sum); 
level=0.4;
I_sum=im2bw(I_sum,level);
I_sum=1-I_sum;
vektor_sum=sum(I_sum);


fig1=figure;
set(fig1,'Position',[260,90,850,550],...
         'Name','Porovnani snimku. Energeticky profil',...
         'NumberTitle','off');
pos1 = [0.001 0.4 0.52 0.52];
subplot('Position',pos1)
imshow(I);
title('Bunky ve fluorescencnim poli')
pos2 = [0.093 0.14 0.34 0.14];
subplot('Position',pos2)
plot(vektor);
title('Profil intenzity')
xlabel('Poloha pixelu')
ylabel('Intenzita')
xlim([0 1024]);
ylim([0 1250]);
grid on
pos3 = [0.521 0.4 0.52 0.52];
subplot('Position',pos3)
imshow(I_sum)
title('Bunky ve svetelnem poli')
pos4 = [0.613 0.14 0.34 0.14];
subplot('Position',pos4)
plot(vektor_sum)
title('Profil intenzity')
xlabel('Poloha pixelu')
ylabel('Intenzita')
xlim([0 1024]);
ylim([0 1250]);
grid on


% Vyplneni der

BW_fluo=I;
se=strel('disk',25);
after=imclose(BW_fluo,se);
after1=imopen(after,se);
after1(:,1024)=1;
after1(:,1)=1;
after1(1024,900:1024)=1;
after1(1024,1:200)=1;
vyplneni_fluo=imfill(after1,'holes');

BW_svet=I_sum;
se=strel('disk',25);
after2=imclose(BW_svet,se);
after3=imopen(after2,se);
after3(:,1024)=1;
after3(:,1)=1;
after3(1024,900:1024)=1;
after3(1024,1:200)=1;
vyplneni_svet=imfill(after3,'holes');

fig2=figure;
set(fig2,'Position',[260,90,850,550],...
         'Name','Vyplneni der v obrazcich',...
         'NumberTitle','off')
pos1 = [0.07 0.52 0.43 0.43];
subplot('Position',pos1)
imshow(BW_fluo)
title('BW snimek ve fluorescencnim poli')
pos3 = [0.07 0.03 0.43 0.43];
subplot('Position',pos3)
imshow(vyplneni_fluo)
title('Vyplneni der (snimek ve fluorescencnim poli)')
pos2 = [0.5 0.52 0.43 0.43];
subplot('Position',pos2)
imshow(BW_svet)
title('BW snimek ve svetelnem poli')
pos4 = [0.5 0.03 0.43 0.43];
subplot('Position',pos4)
imshow(vyplneni_svet)
title('Vyplneni der (snimek ve svetelnem poli)')

% Zjisteni sirky ryhy 

vyplneni_fluo_inv=[];
for i=1:1024;
    for j=1:1024;
        if vyplneni_fluo(i,j)==0;
           vyplneni_fluo_inv(i,j)=1;
        end
    end
end

sirka_fluo_jinak=sum(sum(vyplneni_fluo_inv,2))*1.14/1024;
nazev=['Sirka ryhy (snimek ve fluorescencnim poli): ',num2str(sirka_fluo_jinak), ' mikrometru'];
disp(nazev)

vyplneni_svet_inv=[];
for i=1:1024;
    for j=1:1024;
        if vyplneni_svet(i,j)==0;
           vyplneni_svet_inv(i,j)=1;
        end
    end
end

sirka_svet_jinak=sum(sum(vyplneni_svet_inv,2))*1.14/1024;
nazev=['Sirka ryhy (snimek ve svetelnem poli): ',num2str(sirka_svet_jinak), ' mikrometru'];
disp(nazev)


% Zjisteni plochy ryhy
plocha_fluo=0;
for i=1:1024;
    for j=1:1024;
        if vyplneni_fluo(i,j)==0;
            plocha_fluo=plocha_fluo+1;
        end
    end
end

plocha_fluo=plocha_fluo*(1.14^2)/1000000;
plocha1=['Plocha ryhy (snimek ve fluorescencnim poli): ',num2str(plocha_fluo),' milimetru^2'];
disp(plocha1)

plocha_svet=0;
for i=1:1024;
    for j=1:1024;
        if vyplneni_svet(i,j)==0;
            plocha_svet=plocha_svet+1;
        end
    end
end

plocha_svet=plocha_svet*(1.14^2)/1000000;
plocha2=['Plocha ryhy (snimek ve svetelnem poli): ',num2str(plocha_svet),' milimetru^2'];
disp(plocha2)


% Kresleni hranice

I=imread(X);
I=im2double(I);
ryha_fluo=zeros(1024,1024);

for i=1:1024;
    for j=11:1013;
        if vyplneni_fluo(i,j+1)-vyplneni_fluo(i,j)==-1;
            ryha_fluo(i,j+1)=1;
            ryha_fluo(i,j+2)=1;
            ryha_fluo(i,j+3)=1;
            ryha_fluo(i,j+4)=1;
            ryha_fluo(i,j+5)=1;
            ryha_fluo(i,j+6)=1;
            ryha_fluo(i,j+7)=1;
            ryha_fluo(i,j+8)=1;
            ryha_fluo(i,j+9)=1;
            ryha_fluo(i,j+10)=1;
            ryha_fluo(i,j+11)=1;
        elseif vyplneni_fluo(i,j+1)-vyplneni_fluo(i,j)==1;
            ryha_fluo(i,j)=1;
            ryha_fluo(i,j-1)=1;
            ryha_fluo(i,j-2)=1;
            ryha_fluo(i,j-3)=1;
            ryha_fluo(i,j-4)=1;
            ryha_fluo(i,j-5)=1;
            ryha_fluo(i,j-6)=1;
            ryha_fluo(i,j-7)=1;
            ryha_fluo(i,j-8)=1;
            ryha_fluo(i,j-9)=1;
            ryha_fluo(i,j-10)=1;
        end
    end
end
        
vyplneni_fluo1=zeros(1024,1024,3);
vyplneni_fluo1(:,:,1)=ryha_fluo;           
% vyplneni_fluo1(:,:,1)=ryha_fluo;     % pro snimky obarvene SPIO-R pouzijte bilou 
% vyplneni_fluo1(:,:,2)=ryha_fluo;     % barvu pro kresleni hranice ryhy 
% vyplneni_fluo1(:,:,3)=ryha_fluo;   
I=I+vyplneni_fluo1;


I_svet=imread(Y);
I_svet=im2double(I_svet);
ryha_svet=zeros(1024,1024);

for i=1:1024;
    for j=11:1013;
        if vyplneni_svet(i,j+1)-vyplneni_svet(i,j)==-1;
            ryha_svet(i,j+1)=1;
            ryha_svet(i,j+2)=1;
            ryha_svet(i,j+3)=1;
            ryha_svet(i,j+4)=1;
            ryha_svet(i,j+5)=1;
            ryha_svet(i,j+6)=1;
            ryha_svet(i,j+7)=1;
            ryha_svet(i,j+8)=1;
            ryha_svet(i,j+9)=1;
            ryha_svet(i,j+10)=1;
            ryha_svet(i,j+11)=1;

        elseif vyplneni_svet(i,j+1)-vyplneni_svet(i,j)==1;
            ryha_svet(i,j)=1;
            ryha_svet(i,j-1)=1;
            ryha_svet(i,j-2)=1;
            ryha_svet(i,j-3)=1;
            ryha_svet(i,j-4)=1;
            ryha_svet(i,j-5)=1;
            ryha_svet(i,j-6)=1;
            ryha_svet(i,j-7)=1;
            ryha_svet(i,j-8)=1;
            ryha_svet(i,j-9)=1;
            ryha_svet(i,j-10)=1;
            
        end
    end
end

vyplneni_svet1=zeros(1024,1024,3);
vyplneni_svet1(:,:,2)=ryha_svet;
I_svet=I_svet+vyplneni_svet1;

fig3=figure;
set(fig3,'Position',[260,90,850,550],...
         'Name','Detekce hranice ryhy',...
         'NumberTitle','off')
subplot(1,2,1)
imshow(I)
title('Snimek ve fluorescencnim poli')
subplot(1,2,2)
imshow(I_svet)
title('Snimek ve svetelnem poli')

% Porovnani detekci ve dvou polich

I_svet=I_svet+vyplneni_fluo1;
fig4=figure;
set(fig4,'Name','Porovnani detekci ve dvou polich',...
         'NumberTitle','off') 
imshow(I_svet)
xlabel('Cervena (CMFDA) nebo bila (SPIO-R) barva - detekce ve fluorescencnim poli, zelena barva - detekce ve svetelnem poli')
