%analyza_v4
clc; 
close all; 
clear all;

%Cesta k adresářům s daty k analýze (načte jména podadresářů v hlavním adresáři):
cesta_main=('d:\==zaloha4_12\moje\Documents\MATLAB\Program\Input_dp\');
filelist_main = dir(cesta_main);
dirNames = {filelist_main.name}';

%% Načtení vzorků z orginálního/linearizovaného fundus

pocet_obrazku=17; %počet obrázků (musí se shodovat s počtem souborů ve složce)
N=2592; M=3888;
okno_f=30;  % Volba velikosti okna pro výběr vzorku z fundus snímku (vel. 20 = okno 41x41 px)
okno_t=7;

nazvy_normals = [31604; 59042; 59047; 71084; 71086; 87930; 90790; 91930; 92422; 96250; 96251; 96335; 96336; 96352; 97872; 98410; 98411]; 

%Načtení vzorků vybraných z orig. fundus:
for count=1:pocet_obrazku
    load([cesta_main dirNames{count+2} '\' dirNames{count+2} '_data_nove' '.mat']); 
    
    fun=imread([cesta_main dirNames{count+2} '\' dirNames{count+2} '.tiff']); %Linearizovaný fundus
    fun_GB{count}=((fun(:,:,2))+(fun(:,:,3)))/2; % (G+B)/2
    
    fun_GB{count}=adapthisteq(fun_GB{count}, 'NumTiles', [71 71], 'ClipLimit', 0.01); %CLAHE
    
    X_fun{count}=floor(Fundus_souradnice_X_Y(:,1)); 
    Y_fun{count}=floor(Fundus_souradnice_X_Y(:,2)); 
    X=X_fun{count};
    Y=Y_fun{count};
    
    for j=1:length(X);
        norm_samples_g0{count}(:,:,j) = fun_GB{count}( Y(j)-okno_f:Y(j)+okno_f, X(j)-okno_f:X(j)+okno_f );
    end
end


%% výpočet směrové analýzy

for i=1:pocet_obrazku
    
    [N,M,pocet_vzorku] = size(norm_samples_g0{i}); % N, M je rozměr vzorku, vždy 61 x 61; pocet vzorků se s každým snímkem mění

    for q=1:pocet_vzorku
        spekt{i}(:,:,q) = log(abs(fftshift(fft2(norm_samples_g0{i}(:,:,q)))));
        
        xstr = floor(M/2);
        ystr = floor(N/2);
       
       % kreslení kružnic
        radius = 3;
        pom = 0.05;
        num_prof = 20;
        for k = 1:num_prof
            kruznice = plot_circle(xstr, ystr, radius*(1.3+pom), 'bresenham');
            kruznice = floor(kruznice);

            profil_kruz{i,q}{k} = improfile(spekt{i}(:,:,q), kruznice(:,1), kruznice(:,2));
            pom = pom + 0.025;
        end    
       % Interpolace profilů
        for k = 1:num_prof
            profil_res{i,q}(k,:) = imresize(profil_kruz{i,q}{k}, [length(profil_kruz{i,q}{num_prof}), 1]);
        end

        profil_res_mean{i,q} = mean(profil_res{i,q});
        
        a = length(profil_res_mean{i,q});
        [x{i,q}, poradi{i,q}] = max(profil_res_mean{i,q});
        pozorovane(i,q) = 360/a * poradi{i,q} + 90;   % + přičtení 90 stupňů, díky natočení spektra
          
        vetsi = pozorovane>180;
        pozorovane(vetsi) = pozorovane(vetsi)-180;
        pozorovane(~vetsi) = pozorovane(~vetsi);
    end
end

%% uspořádané dvojice souřadnic vzorků

% středy OD snímků
stred_OD = [1478 1255; 2449 1370; 1424 1333; 2549 1330; 1354 1288; 1448 1300; 2443 1306; 1475 1212; 1375 1270; 2513 1246; 1420 1448; 1399 1333; 2489 1342; 2528 1267; 1408 1243; 1475 1294; 2470 1200];

for i=1:17
  for z = 1:length(X_fun{1,i})
     ocekavane(i,z)=pocitej_uhel(X_fun{1,i}(z),Y_fun{1,i}(z),stred_OD(i,1),stred_OD(i,2));
  end
end

pozorovane_k_analyze = pozorovane;
pozorovane(pozorovane==0)=[];

ocekavane(15,1)=0.001;
ocekavane_k_analyze = ocekavane;
ocekavane(ocekavane==0)=[];

srovnani = [reshape(ocekavane, [],1) reshape(pozorovane, [],1)];
xlswrite('data.xls',srovnani);


