clear all
clc

%% nacteni obrazku k identifikaci
slozka = dir('..\A VYSTUP segmentace cev_verze_2\');
slozka = slozka(3:end);

% for i = 1:length(slozka)      % bud
i = 1;                          % a nebo
    soubor = ['..\A VYSTUP segmentace cev_verze_2\',slozka(i).name];
    vstup = imread(soubor);

vstup = imresize(vstup,[1000 1500]);
vstup = logical(vstup);

%% zobrazeni vstupniho binarniho snimku
figure(1)
imshow(vstup)
title('Vstupní binární obraz')

%% skeletonizace
[vstup obr] = skeletonizace(vstup);     % funkce, provadi skelet cevniho reciste
figure(2)
imshow(obr)
title('Obraz po skeletonizaci')

%% hledani bifurkaci
[souradnice pocet] = krizeni(obr);      % funkce, na vystupu souradnice nalezenych...
                                        % ... bifurkaci a jejich pocet

%% "tloustka" cevy v okoli krizeni
[tloustka souradnice_nove] = pocitani(souradnice, vstup);
        % omezeni poctu souradnic podle hranice vymezene ve funkci

%% uhly krizeni
[kolecka uhel souradnice_omezene vrcholy vrcholy_vsechny tloustka] = uhlovani(souradnice_nove, obr,tloustka);
        % kolecka ... body tvorici kruznici kolem kazde souradnice pro...
        % ... urceni bodu pro vypocet uhlu
        % uhel ... matice 3 uhlu, v souctu 360st, pro kazdou bifurkaci
        % souradnice_omezene ... pouze ty souradnice, kde jsou sevreny 3 uhly
        % vrcholy ... vyznaceni mist, z kterych se pocitaji uhly
        % tloustka ... uprava vektoru 'tloustka' tak, aby vyhovovala delka...
        % ... vektoru promenne 'souradnice_omezene' a 'uhel'

%% obrazek po skeletonizaci se zaznacenymi bifurkacemi
figure(3)
imshow(obr)
hold on
plot(souradnice(2,:),souradnice(1,:),'rx','MarkerFaceColor','r')
title('Všechny nalezené bifurkace, vyznačení úhlů')
plot(kolecka(2,:),kolecka(1,:),'g.','MarkerFaceColor','g')
plot(vrcholy_vsechny(2,:),vrcholy_vsechny(1,:),'m*','MarkerFaceColor','m')
plot(vrcholy(2,:),vrcholy(1,:),'r*','MarkerFaceColor','r')

%% globalni priznaky
% pocet vsech jednickovych pixelu
[pixely] = globalni_pixely (vstup);

% pocet vsech detekovanych bifurkaci
bifurkace_pocet = length(souradnice_omezene);

%% ulozeni extrahovanych priznaku do souboru *.mat
% lze pouzit pouze pri nacitani snimku ze slozky snimku - tj. nelze vyuzit...
% ... v pripade zkusebnich obrazku 'pokus_horsi_seg.tif' a 'pokus_lepsi_seg.tif'

soubor = ['mat_soubory_cvicne\',slozka(i).name];
soubor(end-3:end)=[];     % odstraneni pripony 'tif'
soubor = [soubor,'.mat'];
save(soubor,'pixely','bifurkace_pocet','tloustka','uhel','souradnice_omezene')

%% vymazani pomocnych promennych
clear i kolecka obr pocet slozka souradnice souradnice_nove vrcholy vrcholy_vsechny vstup

%% konec pocatecniho cyklu 'for'
% end
