%rozbor sledu snimok s urcovanim skumanych oblasti cez pecenta

pocet_snimok=3; %tu treba zadat pocet snimok, ktore chceme zpracovavat

mint=14;  %minimalna teplota na snimkach

maxt=46;    %maximalna teplota na snimkach

m=0; %premenna dolezita pre stanovenie jednotlivych subplotov
n=1; %premenna, ktora nam posuva sheety v exceloch
o=1; %premenna, ktora sluzi na zmenu nazvu jednotlivych vysekov

filename = 'teploty_zo_serie_snimok_cele_snimky.xlsx'; %vytvorenie suborov pre zapis do excelu
filename = 'teploty_zo_serie_snimok_1.xlsx';           %POZOR!!! pokial budeme pridavat dalsi vysek, treba pridat dalsi subor na zapis
filename = 'teploty_zo_serie_snimok_2.xlsx';



for ii = 1:pocet_snimok
    
img = imread(sprintf('SEQ_0719-%03.0f.png',ii)); %nacita sa obrazok, ktory sa nasledne prevedie na maticu hodnot 0-255

img=img([180:730],[89:1020],:); %obrazok sa oreze tak, ze zostane na nom iba snimka

J = rgb2gray(img); %prekonvertuje sa farebny obrazok na obrazok v odtienoch sedej

J=double(J); %prevedie maticu z uint8 na double =>budu desatine cisla, zanikne ostry prechod v odtienoch sedej

J=J(:,:,1); %prevedie maticu J na 2-rozmernu

q=255/(maxt-mint);%(maxt(max teplota na snimke)-mint(min teplota na snimke)), prevedu sa hodnoty na rozmedzie od minimalnej teploty snimky po maximalnu

A=(J./q)+mint; %vytvori sa matica hodnot s teplotami na obrazku

xlswrite('teploty_zo_serie_snimok_celej_snimky.xlsx',A,n); %ulozi data z matice A(matica teplot) do excelovskeho suboru

B=img; %vytvori identicku maticu k matici img pre neskorsie vykreslenie obrazku

A=round(A); %zaokruhlia sa hodnoty v matici pre vyber cetnosti

vyska=size(A,1); %da nam pocet riadkov matice

prva_suradnica_v_precentach=10; %za prva/druha_suradnica_v_percentach zadame percentualne suradnice
druha_suradnica_v_precentach=20;

prvsur=vyska*(prva_suradnica_v_precentach/100); %prepocitaju sa percentualne suradnice na suradnice na snimke
drusur=vyska*(druha_suradnica_v_precentach/100);

prvsur=round(prvsur);  %zaokruhlia sa hodnoty pre vytiahnutie konkretnych riadkov z matice A
drusur=round(drusur);

C=A([prvsur:drusur],:); %vytiahne z matice A cely x-ty az y-ty riadok pre vykreslenie grafov

D=B([prvsur:drusur],:,:); %vytiahne z matice B cely x-ty az y-ty riadok (pri com sa zachova jej troj-rozmernost), tento krat pre vykreslenie vyseku

E=unique(C); %ziska jednotlive hodnoty nachadzajuce sa v matici C

F=histc(C(:),E); %ziska cetnosti kazdej hodnoty

S=sum(F); %vytvori celkovy pocet cetnosti z F pre prevod na percenta

F=(F./S)*100; %zmeni cetnosti tak aby sucet daval 100, mozme zapisat y-ovu os histogramu v percentach

if n==pocet_snimok              %
K = mat2gray(D);                %
subplot(7,2,1)                  %cyklus pre vykreslenie prveho vyseku
imshow(K)                       %
title(sprintf('%1.0f. výrez',o))%
o=o+1;                          %
end                             %

M = mean(C); %vytvori priemerne hodnoty zo stlpcov z matice C (pre graf zmeny teplot)

xlswrite('teploty_zo_serie_snimok_1.xlsx',M,n); %ulozi data z matice M(matica teplot v danom vyseku, zpriemerovane na vysku) do excelovskeho suboru

l=length(M); %ziska sa dlzka matice M pre pre definoavnie vektoru x

x=linspace(1,100,l); %definujeme si vektor dlzky ako je vektor M

subplot(7,2,3+m)                                                                                    %
plot(x,M)                                                                                           %
title(sprintf('Zmena priemernej teploty v závislosti na dåžke v prvom výreze na snímke %1.0f',n))   %vykresli nam graf zmeny priemernej teploty v zavislosti na dlzke 
xlabel('Délka(%)')                                                                                  %
ylabel('Teploty(°C)')                                                                               %
grid                                                                                                %

subplot(7,2,5+m)                                                        %
bar(E,F,1,'b')                                                          %
title(sprintf('Histogram teplôt v druhom výreze na snímke %1.0f',n))    %vytvori histogram z poctu hodnot v matici E
xlabel('Teploty(°C)')                                                   %
ylabel('%')                                                             %
grid                                                                    %

prva_suradnica_v_precentach=30;                                                                      %
druha_suradnica_v_precentach=40;                                                                     %
prvsur2=vyska*(prva_suradnica_v_precentach/100);                                                     %
drusur2=vyska*(druha_suradnica_v_precentach/100);                                                    %    
prvsur2=round(prvsur2);                                                                              %    
drusur2=round(drusur2);                                                                              %
C=A([prvsur2:drusur2],:);                                                                            %
D=B([prvsur2:drusur2],:,:);                                                                          %
E=unique(C);                                                                                         %
F=histc(C(:),E);                                                                                     %
S=sum(F);                                                                                            %
F=(F./S)*100;                                                                                        %   
if n==pocet_snimok                                                                                   %pre vytvorenie grafov a histogramov z dalsieho vyseku sa musi cela tato cast zkopirovat
K = mat2gray(D);                                                                                     %a dat dalej (!pred n=n+1;!), prvych dvoch prikazoch treba nastavit nove percenutalne suradnice
subplot(7,2,2)                                                                                       %a premenne prvsur2 a drusur2 premenovat o cislo vyssie, to plati aj pre excel
imshow(K)                                                                                            %(porpipade o dalsie cisla vyssie pri dalsich vysekoch), nasledne musime upravit suradnice
title(sprintf('%1.0f. výrez',o))                                                                     %subplotov v celom programe aby to dalej sedelo a zmenit rast premennej m
o=o+1;                                                                                               %a to je snad vsetko :)
end                                                                                                  %
M = mean(C);                                                                                         %
xlswrite('teploty_zo_serie_snimok_2.xlsx',M,n);                                                      %
subplot(7,2,4+m)                                                                                     % 
plot(x,M)                                                                                            %
title(sprintf('Zmena priemernej teploty v závislosti na dåžke v druhom výreze na snímke %1.0f',n))   %
xlabel('Délka(%)')                                                                                   % 
ylabel('Teploty(°C)')                                                                                %
grid                                                                                                 %
subplot(7,2,6+m)                                                                                     %
bar(E,F,1,'b')                                                                                       %
title(sprintf('Histogram teplôt v druhom výreze na snímke %1.0f',n))                                 %
xlabel('Teploty(°C)')                                                                                %
ylabel('%')                                                                                          %
grid                                                                                                 %

n=n+1; %v exceli sa perpneme do dalsieho sheetu

m=m+4; %premenna m sa zmeni pre posunutie subplotov(POZOR!!! treba zmenit vzdy o +2 s kazdym pridanym vysekom)

end

figure                                          %
K = mat2gray(B);                                %
imshow(K)                                       %
line([0,l],[prvsur,prvsur],'color',[1 0 0])     %vykreslenie celej snimky a ukazka vysekov (vykresli sa posledna snimka)
line([0,l],[drusur,drusur],'color',[1 0 0])     %POZOR!!! pri pridani dalsieho vyseku treba pridat 2x prikaz line pre ukazku dalsieho vyseku, a popripade nastavit inu farbu
line([0,l],[prvsur2,prvsur2],'color',[0 1 0])   %
line([0,l],[drusur2,drusur2],'color',[0 1 0])   %
title('Celá snímka s výraznenými výsekmi')      %