%%%%%%%%%%%%%%%
%% SHADOWING %%
%%%%%%%%%%%%%%%
close all; clear all; clc;
 
shadowed(1:4,1:1500)=zeros;
prumerne_zastineni(1:4,1)=zeros;
 
threshold=0.15; %nastavení prahu zmeny
vykreslit=true;
 
% plocha èoèky
a = 550; % velikost oriznutí elipsy 550
b = 510; %510
A = pi*(a/2)*(b/2);
 
for osob=1:4
    
sigdir = ['MERENI\Mistnost\Rovne\mist_rovne_' int2str(osob) '_cropped\'];
 
D = dir([sigdir, '\*.jpg']);
N = length(D(not([D.isdir])))-1 %poèet obrázkù ve složce
% N=50; %manuální nastavení poètu obrázkù
 
reference = imread([sigdir 'ref.jpg']); %naètení referenèního obrázku
reference_bw=rgb2gray((reference));
 
maska=strel('octagon',3); %nastaveni masky pro vyhlazeni
maska2=strel('octagon',6);
 
for n = 1:N %poèet porovnávaných obrázkù
  img = imread([sigdir 'img_' int2str(n) '.jpg']); % naètení obrázku
    %zpracovani obrazu    
    img_bw=rgb2gray((img)); 
    diff_im = imabsdiff(reference_bw(:,:),img_bw(:,:));
    diff_imbw = im2bw(diff_im,threshold); %0.11 0.2-sikmo 0.13-stul
 
    eroz=imerode(diff_imbw,maska);
    img_sub=imcomplement(imdilate(eroz,maska2));
 
    shadow=sum(sum(img_sub==0)); %poèet zastínìných pixelù
    shadowed(osob,n) = shadow/A*100; %procentualní zastínìní èoèky
 %%   vykresleni
   if vykreslit
    subplot(121)
     imshow(img)
     title('Zastínìný obraz');
    subplot(122) 
     imshow(img_sub)
     text(10,20,['Zastínìno ' int2str(shadowed(osob,n)) ' % èoèky'],'Color',[1,0,0]) %380,620
     title('Stín');
    pause(0.01)
    
   end
 
    disp(['img_' int2str(n) '.jpg'])
 
end
 
prumerne_zastineni(osob,:)=sum(shadowed(osob,1:N))/(N)
disp('Completed!')
end
