clc
close all

% vyber snímku pre hodnotenie
vyb_snimok = 5;

%% Program **************************************************************************
%Zobrazenie vystupných obrazkov (vybranych pre hodnotenie)
figure (1);
subplot(1,2,1);
imshow (obr(:,:,vyb_snimok)),title('Pôvodný obraz');
subplot(1,2,2);
imshow (obr_fil_1(:,:,vyb_snimok)),title('Filtrovaný obraz Medianovym filtrom 2D');

figure (2);
subplot(1,2,1);
imshow (obr(:,:,vyb_snimok)),title('Pôvodný obraz');
subplot(1,2,2);
imshow (obr_fil_2(:,:,vyb_snimok)),title('Filtrovaný obraz Geometrickým filtrom 2D');

figure (3);
subplot(1,2,1);
imshow (obr(:,:,vyb_snimok)),title('Pôvodný obraz');
subplot(1,2,2);
imshow (obr_fil_3(:,:,vyb_snimok)),title('Filtrovaný obraz Homogennou maskou 2D');

figure (4);
subplot(1,2,1);
imshow (obr(:,:,vyb_snimok)),title('Pôvodný obraz');
subplot(1,2,2);
imshow (obr_fil_4(:,:,vyb_snimok)),title('Filtrovaný obraz Maximalnou homogenitou okolia 2D');

%************************************************************************************
%% Program **************************************************************************
%výber obrazkov pre hodnotenie
vyb_obr = obr(:,:,vyb_snimok);
vyb_obr_fil_1 = obr_fil_1(:,:,vyb_snimok);
vyb_obr_fil_2 = obr_fil_2(:,:,vyb_snimok);
vyb_obr_fil_3 = obr_fil_3(:,:,vyb_snimok);
vyb_obr_fil_4 = obr_fil_4(:,:,vyb_snimok);

figure (10);
imshow (vyb_obr),title('Pôvodný obraz - Vyber homogennú oblasť !! KLIKOM: najskor hore vlavo, potom dole vpravo');
%vyber homogennej oblasti
[y,x] = ginput(2);                          %vyber kurzorom 2 body
r1 = round(x(1,1)); c1 = round(y(1,1));     
r2 = round(x(2,1)); c2 = round(y(2,1));               
%'vykrojenie' homohennej oblasti
hom_obr = vyb_obr(r1:r2,c1:c2,:);                    
hom_obr_fil_1 = vyb_obr_fil_1(r1:r2,c1:c2,:);
hom_obr_fil_2 = vyb_obr_fil_2(r1:r2,c1:c2,:);
hom_obr_fil_3 = vyb_obr_fil_3(r1:r2,c1:c2,:);
hom_obr_fil_4 = vyb_obr_fil_4(r1:r2,c1:c2,:);
%zoradenie hodnot do rady
hom_obr_z = hom_obr(:)';
hom_obr_fil_1z = hom_obr_fil_1(:)';
hom_obr_fil_2z = hom_obr_fil_2(:)';
hom_obr_fil_3z = hom_obr_fil_3(:)';
hom_obr_fil_4z = hom_obr_fil_4(:)';
%vypocet hodnot SSI
SSI_f1 = ((var(hom_obr_fil_1z))^0.5)/(mean(hom_obr_fil_1z))*((mean(hom_obr_z)/(var(hom_obr_z))^0.5));
SSI_f2 = ((var(hom_obr_fil_2z))^0.5)/(mean(hom_obr_fil_2z))*((mean(hom_obr_z)/(var(hom_obr_z))^0.5));
SSI_f3 = ((var(hom_obr_fil_3z))^0.5)/(mean(hom_obr_fil_3z))*((mean(hom_obr_z)/(var(hom_obr_z))^0.5));
SSI_f4 = ((var(hom_obr_fil_4z))^0.5)/(mean(hom_obr_fil_4z))*((mean(hom_obr_z)/(var(hom_obr_z))^0.5));
%vypocet hodnot ENL
ENL = (mean(hom_obr_z)/std(hom_obr_z))^2;
ENL_f1 = (mean(hom_obr_fil_1z)/std(hom_obr_fil_1z))^2;
ENL_f2 = (mean(hom_obr_fil_2z)/std(hom_obr_fil_2z))^2;
ENL_f3 = (mean(hom_obr_fil_3z)/std(hom_obr_fil_3z))^2;
ENL_f4 = (mean(hom_obr_fil_4z)/std(hom_obr_fil_4z))^2;

close(figure (10));     %zatvorenie figure 10 (kde bol vyber homogenej oblasti)
%zobrazenie homogennych oblasti s vysledkom
figure (11);
subplot(2,2,1);
imshow (vyb_obr),title('Pôvodný obraz s vybranou homogennou oblastou');
hold on;
plot([c1,c2],[r1,r1],'r','LineWidth',2);    %Vlozenie ciar pre zobrazenie vybranej hom. oblasti
plot([c1,c2],[r2,r2],'r','LineWidth',2);
plot([c1,c1],[r1,r2],'r','LineWidth',2);
plot([c2,c2],[r1,r2],'r','LineWidth',2);
hold off;

subplot(2,2,2);
imshow (vyb_obr_fil_1),title('Filtrovany obraz (M.F. 2D) s vybranou homogennou oblastou');
hold on;
plot([c1,c2],[r1,r1],'r','LineWidth',2);
plot([c1,c2],[r2,r2],'r','LineWidth',2);
plot([c1,c1],[r1,r2],'r','LineWidth',2);
plot([c2,c2],[r1,r2],'r','LineWidth',2);
hold off;

subplot(2,2,3);
imshow(hom_obr),title('Vyber homogennej oblasti v pôvodnom obraze');   
xlabel(['ENL = ',num2str(ENL)],'fontsize',14);

subplot(2,2,4);
imshow(hom_obr_fil_1),title('Vyber homogennej oblasti vo filtrovanom obraze');
xlabel(['ENL = ',num2str(ENL_f1),'; SSI = ',num2str(SSI_f1)],'fontsize',14);

figure (12);
subplot(2,2,1);
imshow (vyb_obr),title('Pôvodný obraz s vybranou homogennou oblastou');
hold on;
plot([c1,c2],[r1,r1],'r','LineWidth',2);
plot([c1,c2],[r2,r2],'r','LineWidth',2);
plot([c1,c1],[r1,r2],'r','LineWidth',2);
plot([c2,c2],[r1,r2],'r','LineWidth',2);
hold off;

subplot(2,2,2);
imshow (vyb_obr_fil_2),title('Filtrovany obraz (Geometricka fil. 2D) s vybranou homogennou oblastou');
hold on;
plot([c1,c2],[r1,r1],'r','LineWidth',2);
plot([c1,c2],[r2,r2],'r','LineWidth',2);
plot([c1,c1],[r1,r2],'r','LineWidth',2);
plot([c2,c2],[r1,r2],'r','LineWidth',2);
hold off;

subplot(2,2,3);
imshow(hom_obr),title('Vyber homogennej oblasti v pôvodnom obraze');   
xlabel(['ENL = ',num2str(ENL)],'fontsize',14);

subplot(2,2,4);
imshow(hom_obr_fil_2),title('Vyber homogennej oblasti vo filtrovanom obraze');
xlabel(['ENL = ',num2str(ENL_f2),'; SSI = ',num2str(SSI_f2)],'fontsize',14);

figure (13);
subplot(2,2,1);
imshow (vyb_obr),title('Pôvodný obraz s vybranou homogennou oblastou');
hold on;
plot([c1,c2],[r1,r1],'r','LineWidth',2);
plot([c1,c2],[r2,r2],'r','LineWidth',2);
plot([c1,c1],[r1,r2],'r','LineWidth',2);
plot([c2,c2],[r1,r2],'r','LineWidth',2);
hold off;

subplot(2,2,2);
imshow (vyb_obr_fil_3),title('Filtrovany obraz (Hom. maskou 2D) s vybranou homogennou oblastou');
hold on;
plot([c1,c2],[r1,r1],'r','LineWidth',2);
plot([c1,c2],[r2,r2],'r','LineWidth',2);
plot([c1,c1],[r1,r2],'r','LineWidth',2);
plot([c2,c2],[r1,r2],'r','LineWidth',2);
hold off;

subplot(2,2,3);
imshow(hom_obr),title('Vyber homogennej oblasti v pôvodnom obraze');   
xlabel(['ENL = ',num2str(ENL)],'fontsize',14);

subplot(2,2,4);
imshow(hom_obr_fil_3),title('Vyber homogennej oblasti vo filtrovanom obraze');
xlabel(['ENL = ',num2str(ENL_f3),'; SSI = ',num2str(SSI_f3)],'fontsize',14);

figure (14);
subplot(2,2,1);
imshow (vyb_obr),title('Pôvodný obraz s vybranou homogennou oblastou');
hold on;
plot([c1,c2],[r1,r1],'r','LineWidth',2);
plot([c1,c2],[r2,r2],'r','LineWidth',2);
plot([c1,c1],[r1,r2],'r','LineWidth',2);
plot([c2,c2],[r1,r2],'r','LineWidth',2);
hold off;

subplot(2,2,2);
imshow (vyb_obr_fil_4),title('Filtrovany obraz (Max. hom. okolia 2D) s vybranou homogennou oblastou');
hold on;
plot([c1,c2],[r1,r1],'r','LineWidth',2);
plot([c1,c2],[r2,r2],'r','LineWidth',2);
plot([c1,c1],[r1,r2],'r','LineWidth',2);
plot([c2,c2],[r1,r2],'r','LineWidth',2);
hold off;

subplot(2,2,3);
imshow(hom_obr),title('Vyber homogennej oblasti v pôvodnom obraze');   
xlabel(['ENL = ',num2str(ENL)],'fontsize',14);

subplot(2,2,4);
imshow(hom_obr_fil_4),title('Vyber homogennej oblasti vo filtrovanom obraze');
xlabel(['ENL = ',num2str(ENL_f4),'; SSI = ',num2str(SSI_f4)],'fontsize',14);


figure (20);
imshow (vyb_obr),title('Pôvodný obraz - Vyber rez cez hranu !! Vertilnu, KLIKOM: naskor HORE a potom DOLE');
%vyber rezu myskou
[y,x] = ginput(2);                          %vyber kurzorom 2 body
u1 = round(x(1,1)); w1 = y(1,1);     
u2 = round(x(2,1)); w2 = y(2,1);
%uprava hodnot, aby bol rez vertikalny
w3 = round((w1 + w2)/2);
%vyber hodnot v reze
rez_obr = vyb_obr(u1:u2,w3);
rez_obr_fil_1 = vyb_obr_fil_1(u1:u2,w3);
rez_obr_fil_2 = vyb_obr_fil_2(u1:u2,w3);
rez_obr_fil_3 = vyb_obr_fil_3(u1:u2,w3);
rez_obr_fil_4 = vyb_obr_fil_4(u1:u2,w3);

close(figure (20)); %zatvorenie okna pre vyber rezu

%zobrazenie rezov
figure (21);
subplot(2,2,1);
imshow (vyb_obr),title('Pôvodný obraz');
hold on;
plot([w3,w3],[u1,u2],'r','LineWidth',2); %pridana ciara pre zobrazenie rezu
hold off;

subplot(2,2,2);
imshow (vyb_obr_fil_1),title('Filtrovany obraz Mediánovym filtrom 2D');
hold on;
plot([w3,w3],[u1,u2],'r','LineWidth',2);
hold off;

subplot(2,2,[3 4]);
plot(rez_obr);
hold on;
plot(rez_obr_fil_1,'r');
hold off;
title('MODRA - rez hranou povodného obrazku; ČERVENA - rez hranou filtrovaneho obrazku');

figure (22);
subplot(2,2,1);
imshow (vyb_obr),title('Pôvodný obraz');
hold on;
plot([w3,w3],[u1,u2],'r','LineWidth',2);
hold off;

subplot(2,2,2);
imshow (vyb_obr_fil_2),title('Filtrovany obraz Geometrickou filtráciou 2D');
hold on;
plot([w3,w3],[u1,u2],'r','LineWidth',2);
hold off;

subplot(2,2,[3 4]);
plot(rez_obr);
hold on;
plot(rez_obr_fil_2,'r');
hold off;
title('MODRA - rez hranou povodného obrazku; ČERVENA - rez hranou filtrovaneho obrazku');

figure (23);
subplot(2,2,1);
imshow (vyb_obr),title('Pôvodný obraz');
hold on;
plot([w3,w3],[u1,u2],'r','LineWidth',2);
hold off;

subplot(2,2,2);
imshow (vyb_obr_fil_3),title('Filtrovany obraz Homogenou maskou 2D');
hold on;
plot([w3,w3],[u1,u2],'r','LineWidth',2);
hold off;

subplot(2,2,[3 4]);
plot(rez_obr);
hold on;
plot(rez_obr_fil_3,'r');
hold off;
title('MODRA - rez hranou povodného obrazku; ČERVENA - rez hranou filtrovaneho obrazku');

figure (24);
subplot(2,2,1);
imshow (vyb_obr),title('Pôvodný obraz');
hold on;
plot([w3,w3],[u1,u2],'r','LineWidth',2);
hold off;

subplot(2,2,2);
imshow (vyb_obr_fil_4),title('Filtrovany obraz Max. homogenitou okolia 2D');
hold on;
plot([w3,w3],[u1,u2],'r','LineWidth',2);
hold off;

subplot(2,2,[3 4]);
plot(rez_obr);
hold on;
plot(rez_obr_fil_4,'r');
hold off;
title('MODRA - rez hranou povodného obrazku; ČERVENA - rez hranou filtrovaneho obrazku');

% vyber bodov pre vypočet v rezoch a vlozenie aproximnacnych priamok
figure (30);
plot(rez_obr);
title('Vyber MINIMUM, MAXIMUM a STRED !');
[x] = ginput(3);                          %vyber kurzorom 3 body
z1 = round(x(1,1));    
z2 = round(x(2,1));
z3 = round(x(3,1));
close(figure (30));

figure (30);
plot(rez_obr_fil_1,'r');
title('Vyber MINIMUM, MAXIMUM a STRED !');
[x] = ginput(3);                          %vyber kurzorom 3 body
z1_f1 = round(x(1,1));    
z2_f1 = round(x(2,1));
z3_f1 = round(x(3,1));
close(figure (30));

figure (30);
plot(rez_obr_fil_2,'r');
title('Vyber MINIMUM, MAXIMUM a STRED !');
[x] = ginput(3);                          %vyber kurzorom 3 body
z1_f2 = round(x(1,1));    
z2_f2 = round(x(2,1));
z3_f2 = round(x(3,1));
close(figure (30));

figure (30);
plot(rez_obr_fil_3,'r');
title('Vyber MINIMUM, MAXIMUM a STRED !');
[x] = ginput(3);                          %vyber kurzorom 3 body
z1_f3 = round(x(1,1));    
z2_f3 = round(x(2,1));
z3_f3 = round(x(3,1));
close(figure (30));

figure (30);
plot(rez_obr_fil_4,'r');
title('Vyber MINIMUM, MAXIMUM a STRED !');
[x] = ginput(3);                          %vyber kurzorom 3 body
z1_f4 = round(x(1,1));    
z2_f4 = round(x(2,1));
z3_f4 = round(x(3,1));
close(figure (30));

%vypocet EEI - pomocne premenne
sucet_H = 0;
sucet_D = 0;
sucet_H_f1 = 0;
sucet_D_f1 = 0;
sucet_H_f2 = 0;
sucet_D_f2 = 0;
sucet_H_f3 = 0;
sucet_D_f3 = 0;
sucet_H_f4 = 0;
sucet_D_f4 = 0;

for zz = 1:1:5
    sucet_H = sucet_H + rez_obr(z3+zz);
    sucet_D = sucet_D + rez_obr(z3-zz);
    sucet_H_f1 = sucet_H_f1 + rez_obr_fil_1(z3_f1+zz);
    sucet_D_f1 = sucet_D_f1 + rez_obr_fil_1(z3_f1-zz);
    sucet_H_f2 = sucet_H_f2 + rez_obr_fil_2(z3_f2+zz);
    sucet_D_f2 = sucet_D_f2 + rez_obr_fil_2(z3_f2-zz);
    sucet_H_f3 = sucet_H_f3 + rez_obr_fil_3(z3_f3+zz);
    sucet_D_f3 = sucet_D_f3 + rez_obr_fil_3(z3_f3-zz);
    sucet_H_f4 = sucet_H_f4 + rez_obr_fil_4(z3_f4+zz);
    sucet_D_f4 = sucet_D_f4 + rez_obr_fil_4(z3_f4-zz);
end
%vypocet EEI
EEI_f1 = (sucet_H_f1-sucet_D_f1)/(sucet_H-sucet_D);
EEI_f2 = (sucet_H_f2-sucet_D_f2)/(sucet_H-sucet_D);
EEI_f3 = (sucet_H_f3-sucet_D_f3)/(sucet_H-sucet_D);
EEI_f4 = (sucet_H_f4-sucet_D_f4)/(sucet_H-sucet_D);

krok = (rez_obr(z2)-rez_obr(z1))/(z2-z1);
krok_f1 = (rez_obr_fil_1(z2_f1)-rez_obr_fil_1(z1_f1))/(z2_f1-z1_f1);
krok_f2 = (rez_obr_fil_2(z2_f2)-rez_obr_fil_2(z1_f2))/(z2_f2-z1_f2);
krok_f3 = (rez_obr_fil_3(z2_f3)-rez_obr_fil_3(z1_f3))/(z2_f3-z1_f3);
krok_f4 = (rez_obr_fil_4(z2_f4)-rez_obr_fil_4(z1_f4))/(z2_f4-z1_f4);

predlzenie = 2;         %predlzenie priamok z oboch stran
trenline = nan(1,z2+3);
trenline_f1 = nan(1,z2_f1+3);
trenline_f2 = nan(1,z2_f2+3);
trenline_f3 = nan(1,z2_f3+3);
trenline_f4 = nan(1,z2_f4+3);

%predlzenie priamok
for zz = z1:1:(z2+predlzenie)
    trenline(zz) = rez_obr(z1)+(krok*(zz-z1));
end

for zz = z1_f1:1:(z2_f1+predlzenie)
    trenline_f1(zz) = rez_obr_fil_1(z1_f1)+(krok_f1*(zz-z1_f1));
end

for zz = z1_f2:1:(z2_f2+predlzenie)
    trenline_f2(zz) = rez_obr_fil_2(z1_f2)+(krok_f2*(zz-z1_f2));
end

for zz = z1_f3:1:(z2_f3+predlzenie)
    trenline_f3(zz) = rez_obr_fil_3(z1_f3)+(krok_f3*(zz-z1_f3));
end

for zz = z1_f4:1:(z2_f4+predlzenie)
    trenline_f4(zz) = rez_obr_fil_4(z1_f4)+(krok_f4*(zz-z1_f4));
end

for zz = 1:1:predlzenie
    trenline(z1-zz) = rez_obr(z1)-(krok*(zz));
    trenline_f1(z1_f1-zz) = rez_obr_fil_1(z1_f1)-(krok_f1*(zz));
    trenline_f2(z1_f2-zz) = rez_obr_fil_2(z1_f2)-(krok_f2*(zz));
    trenline_f3(z1_f3-zz) = rez_obr_fil_3(z1_f3)-(krok_f3*(zz));
    trenline_f4(z1_f4-zz) = rez_obr_fil_4(z1_f4)-(krok_f4*(zz));
end

%vypocet parametrov smernicovych priamok
z4 = z1+round((z2-z1)/2);
[k,q] = rov_priamky(z1-z4,rez_obr(z1),z2-z4,rez_obr(z2));
[k_f1,q_f1] = rov_priamky(z1_f1-z4,rez_obr_fil_1(z1_f1),z2_f1-z4,rez_obr_fil_1(z2_f1));
[k_f2,q_f2] = rov_priamky(z1_f2-z4,rez_obr_fil_2(z1_f2),z2_f2-z4,rez_obr_fil_2(z2_f2));
[k_f3,q_f3] = rov_priamky(z1_f3-z4,rez_obr_fil_3(z1_f3),z2_f3-z4,rez_obr_fil_3(z2_f3));
[k_f4,q_f4] = rov_priamky(z1_f4-z4,rez_obr_fil_4(z1_f4),z2_f4-z4,rez_obr_fil_4(z2_f4));
%vypocet rozdielovych hodnot
del_k_f1 = k_f1 - k;
del_k_f2 = k_f2 - k;
del_k_f3 = k_f3 - k;
del_k_f4 = k_f4 - k;
del_q_f1 = q_f1 - q;
del_q_f2 = q_f2 - q;
del_q_f3 = q_f3 - q;
del_q_f4 = q_f4 - q;

%zobrazenie rezov s apoximacnymi priamkami
figure (30);
axes('FontSize',16);
plot(rez_obr,'LineWidth',4);
hold on;
plot(trenline,'--','LineWidth',3);
line('XData', [z4 z4], 'YData', [-1 2], 'LineStyle', '-.');
legend('rez - pôvodný obraz','aproximačná priamka - pôvodný obraz','Location','SouthEast');
title('REZ povodným obrazom');
hold off;

figure (31);
axes('FontSize',16);
plot(rez_obr,'LineWidth',4);
hold on;
plot(trenline,'--','LineWidth',3);
plot(rez_obr_fil_1,'r','LineWidth',4);
plot(trenline_f1,'--r','LineWidth',3);
line('XData', [z4 z4], 'YData', [-1 2], 'LineStyle', '-.','LineWidth',2);
legend('rez - pôvodný obraz','aproximačná priamka - pôvodný obraz','rez - filtrovaný obraz','aproximačná priamka - fitrovaný obraz','Location','SouthEast');
title('MEDIANOVA FILTRÁCIA');
hold off;

figure (32);
axes('FontSize',16);
plot(rez_obr,'LineWidth',4);
hold on;
plot(trenline,'--','LineWidth',3);
plot(rez_obr_fil_2,'r','LineWidth',4);
plot(trenline_f2,'--r','LineWidth',3);
line('XData', [z4 z4], 'YData', [-1 2], 'LineStyle', '-.','LineWidth',2);
legend('rez - pôvodný obraz','aproximačná priamka - pôvodný obraz','rez - filtrovaný obraz','aproximačná priamka - fitrovaný obraz','Location','SouthEast');
title('GEOMETRICKÁ FILTRÁCIA');
hold off;

figure (33);
axes('FontSize',16);
plot(rez_obr,'LineWidth',4);
hold on;
plot(trenline,'--','LineWidth',3);
plot(rez_obr_fil_3,'r','LineWidth',4);
plot(trenline_f3,'--r','LineWidth',3);
line('XData', [z4 z4], 'YData', [-1 2], 'LineStyle', '-.','LineWidth',2);
legend('rez - pôvodný obraz','aproximačná priamka - pôvodný obraz','rez - filtrovaný obraz','aproximačná priamka - fitrovaný obraz','Location','SouthEast');
title('FILTRÁCIA HOMOGENOU MASKOU');
hold off;

figure (34);
axes('FontSize',16);
plot(rez_obr,'LineWidth',4);
hold on;
plot(trenline,'--','LineWidth',3);
plot(rez_obr_fil_4,'r','LineWidth',4);
plot(trenline_f4,'--r','LineWidth',3);
line('XData', [z4 z4], 'YData', [-1 2], 'LineStyle', '-.','LineWidth',2);
legend('rez - pôvodný obraz','aproximačná priamka - pôvodný obraz','rez - filtrovaný obraz','aproximačná priamka - fitrovaný obraz','Location','SouthEast');
title('FILTRÁCIA MAXIMALNOU HOM. OKOLIA');
hold off;

%************************************************************************************
%% Vypisanie výsledkov **************************************************************
fprintf('Povodný obrázok:\n');
fprintf('ENL = %.3f\n',ENL);
fprintf('k   = %.4f\n',k);
fprintf('q   = %.4f\n',q);

fprintf('\n\nMedianová filtrácia 2D:\n');
fprintf('ENL = %.3f\n',ENL_f1);
fprintf('SSI = %.4f\n',SSI_f1);
fprintf('EEI = %.4f\n',EEI_f1);
fprintf('k   = %.4f\n',k_f1);
fprintf('q   = %.4f\n',q_f1);
fprintf('d_k = %.4f\n',del_k_f1);
fprintf('d_q = %.4f\n',del_q_f1);

fprintf('\n\nGeometrická filtrácia 2D:\n');
fprintf('ENL = %.3f\n',ENL_f2);
fprintf('SSI = %.4f\n',SSI_f2);
fprintf('EEI = %.4f\n',EEI_f2);
fprintf('k   = %.4f\n',k_f2);
fprintf('q   = %.4f\n',q_f2);
fprintf('d_k = %.4f\n',del_k_f2);
fprintf('d_q = %.4f\n',del_q_f2);

fprintf('\n\nFiltrácia s homogenou maskou 2D:\n');
fprintf('ENL = %.3f\n',ENL_f3);
fprintf('SSI = %.4f\n',SSI_f3);
fprintf('EEI = %.4f\n',EEI_f3);
fprintf('k   = %.4f\n',k_f3);
fprintf('q   = %.4f\n',q_f3);
fprintf('d_k = %.4f\n',del_k_f3);
fprintf('d_q = %.4f\n',del_q_f3);

fprintf('\n\nFiltrácia max. homogenita okolia 2D:\n');
fprintf('ENL = %.3f\n',ENL_f4);
fprintf('SSI = %.4f\n',SSI_f4);
fprintf('EEI = %.4f\n',EEI_f4);
fprintf('k   = %.4f\n',k_f4);
fprintf('q   = %.4f\n',q_f4);
fprintf('d_k = %.4f\n',del_k_f4);
fprintf('d_q = %.4f\n\n',del_q_f4);

%************************************************************************************