function [ obrys, obrys_vektor, vektor_rada ] = VytvorObrys( obj )
%VECTOR_OF_NEIGHBORS Summary of this function goes here
%   Detailed explanation goes here

if length(find(obj==1)) <= 1
    obrys = zeros(size(obj) + 2);
    obrys_vektor = zeros(size(obj) + 2);
    vektor_rada = [];
   return; 
end

%% Iniciace
start = 1;
mask = zeros(3);
vektor_rada = [];

%% Tvorba pixelu s hodnout 0 kolem obrazu
obj = [zeros(size(obj,1), 1) obj zeros(size(obj,1), 1)];
obj = [zeros(1, size(obj,2)); obj; zeros(1,size(obj,2))];

%% Tvorba prazdnych matic pro obrys a obrysove vektory
obrys = zeros(size(obj));
obrys_vektor = zeros(size(obj));

%% Zapsani prvniho pixelu s hodnotou 1 do matic
[x,y] = find(obj,1);
obrys(x,y) = 1;
obrys_vektor(x,y) = 1;

%% Pomocna matice, nastavena podle posledniho obrysoveho vektoru
pomocna_matice = [3 6 9 8 7 4 1 2];

% disp([x y]); % ukazat souradnice prniho pixelu hodnoty 1  

%% Ulozeni prvniho pixelu
a = x;
b = y;

%% Tvorba obrysu
while start == 1
    for i = 1 : length(mask) 
        for j = 1 : length(mask)
            mask(i,j) = obj(x + i - 2, y + j - 2); % Vypln masku hodnotami kolem pocatku
        end
    end
    
    mask(2,2) = 0; % vymazat hodnotu pocatku
    mask_i = find(mask==1); % najit hodnoty 1 v masce
    g = []; 
    for i = 1 : length(mask_i)
        g(i) = find(pomocna_matice == mask_i(i)); % hleda indexy hodnot v pomocne matici
                                                  % s hodnotou 1
    end
    
    dot = pomocna_matice(min(g)); % vybere spravny smer
    obrys_vektor(x,y) = dot * 28;
    vektor_rada = [vektor_rada obrys_vektor(x,y)];  %% ukladani vektoru obrysu jako radu
      
    %% Pohyb na dalsi pixel obrysu a zmena pomocne matice
    switch(dot)
        case 1
            x = x - 1;
            y = y - 1;
            pomocna_matice = [7 4 1 2 3 6 9 8];
        case 2
            x = x;
            y = y - 1;
            pomocna_matice = [1 2 3 6 9 8 7 4];
        case 3
            x = x + 1;
            y = y - 1;
            pomocna_matice = [1 2 3 6 9 8 7 4];
        case 4
            x = x - 1;
            y = y;          
            pomocna_matice = [7 4 1 2 3 6 9 8];
        case 5
            disp('Toto neni mozne!');
        case 6
            x = x + 1;
            y = y;            
            pomocna_matice = [3 6 9 8 7 4 1 2];
        case 7
            x = x - 1;
            y = y + 1;  
            pomocna_matice = [9 8 7 4 1 2 3 6];
        case 8
            x = x;
            y = y + 1;           
            pomocna_matice = [9 8 7 4 1 2 3 6 ];
        case 9
            x = x + 1;
            y = y + 1;  
            pomocna_matice = [3 6 9 8 7 4 1 2];
    end
    
    obrys(x,y) = 1; % zapis pixelu hodnoty 1 do obrysove matice
    
    %% Ukonceni 
    if x == a && y <= b
        start = 0;
    end
    
    % disp([x y]);
    % imshow(obrys);
    %pause;
end
end

