function rezultat = crtanje_granica(slika, matrica)

% krece se crtanju granica na originalnoj slici na temelju odredjenih
% sekcija sa istom teksturom

velicina = max(size(matrica));
vel_segmenta = 32;
broj_segmenata = velicina/vel_segmenta;

redak = 0;
for k = 0: broj_segmenata-1
    redak = redak + 1
    for l = 0: broj_segmenata-1
        uzorak = matrica(k*vel_segmenta+1, l*vel_segmenta+1);
        if (k == 0) % ---------------------------------------------
            % nalazim se u prvom redu
            if (l == 0)
                % nalazim se u prvom stupcu
                % Treba uzet uzorak DOLJE i DESNO.
                susjedni_uzorak = matrica((k+1)*vel_segmenta+1, l*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak)
                    slika(k*vel_segmenta+vel_segmenta,...
                          l*vel_segmenta+1 : l*vel_segmenta + vel_segmenta) = 0;
                end;
                susjedni_uzorak2 = matrica(k*vel_segmenta+1, (l+1)*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak2)
                    slika(k*vel_segmenta+1 : k*vel_segmenta + vel_segmenta,...
                          l*vel_segmenta+vel_segmenta) = 0;
                end;
            elseif (l == broj_segmenata-1)
                % nalazim se na kraju prvog retka
                % Treba uzet uzorak DOLJE, LIJEVO
                susjedni_uzorak = matrica((k+1)*vel_segmenta+1, l*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak)
                    slika(k*vel_segmenta+vel_segmenta,...
                          l*vel_segmenta+1 : l*vel_segmenta + vel_segmenta) = 0;
                end;
                susjedni_uzorak2 = matrica(k*vel_segmenta+1, (l-1)*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak2)
                    slika(k*vel_segmenta+1 : k*vel_segmenta + vel_segmenta,...
                          l*vel_segmenta+1) = 0;
                end;
            else
                % nalazim se negdje u sredini prvog retka.
                % Treba uzet uzorak DOLJE, LIJEVO, DESNO
                susjedni_uzorak = matrica((k+1)*vel_segmenta+1, l*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak)
                    slika(k*vel_segmenta+vel_segmenta,...
                          l*vel_segmenta+1 : l*vel_segmenta + vel_segmenta) = 0;
                end;
                susjedni_uzorak2 = matrica(k*vel_segmenta+1, (l-1)*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak2)
                    slika(k*vel_segmenta+1 : k*vel_segmenta + vel_segmenta,...
                          l*vel_segmenta+1) = 0;
                end;
                susjedni_uzorak3 = matrica(k*vel_segmenta+1, (l+1)*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak3)
                    slika(k*vel_segmenta+1 : k*vel_segmenta + vel_segmenta,...
                          l*vel_segmenta+vel_segmenta) = 0;
                end;
            end;
        elseif (k == broj_segmenata-1) % --------------------------
            % nalazim se u zadnjem retku
            if (l == 0)
                % nalazim se u prvom stupcu
                % Treba uzet uzorak  GORE i DESNO.
                susjedni_uzorak = matrica((k-1)*vel_segmenta+1, l*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak)
                    slika(k*vel_segmenta+1,...
                          l*vel_segmenta+1 : l*vel_segmenta + vel_segmenta) = 0;
                end;
                susjedni_uzorak2 = matrica(k*vel_segmenta+1, (l+1)*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak2)
                    slika(k*vel_segmenta+1 : k*vel_segmenta + vel_segmenta,...
                          l*vel_segmenta+1) = 0;
                end;
            elseif (l == broj_segmenata-1)
                % nalazim se na kraju prvog retka
                % Treba uzet uzorak GORE i LIJEVO
                susjedni_uzorak = matrica((k-1)*vel_segmenta+1, l*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak)
                    slika(k*vel_segmenta+1,...
                          l*vel_segmenta+1 : l*vel_segmenta + vel_segmenta) = 0;
                end;
                susjedni_uzorak2 = matrica(k*vel_segmenta+1, (l-1)*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak2)
                    slika(k*vel_segmenta+1 : k*vel_segmenta + vel_segmenta,...
                          l*vel_segmenta+1) = 0;
                end;
            else
                % nalazim se negdje u sredini prvog retka.
                % Treba uzet uzorak GORE, LIJEVO, DESNO
                susjedni_uzorak = matrica((k-1)*vel_segmenta+1, l*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak)
                    slika(k*vel_segmenta+1,...
                          l*vel_segmenta+1 : l*vel_segmenta + vel_segmenta) = 0;
                end;
                susjedni_uzorak2 = matrica(k*vel_segmenta+1, (l-1)*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak2)
                    slika(k*vel_segmenta+1 : k*vel_segmenta + vel_segmenta,...
                          l*vel_segmenta+1) = 0;
                end;
                susjedni_uzorak3 = matrica(k*vel_segmenta+1, (l+1)*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak3)
                    slika(k*vel_segmenta+1 : k*vel_segmenta + vel_segmenta,...
                          l*vel_segmenta+vel_segmenta) = 0;
                end;
            end;
        else % ---------------------------------------------------- 
            % nalazim se negdje u sredini redaka
            if (l == 0)
                % nalazim se u prvom stupcu
                % Treba uzet uzorak DOLJE, GORE i DESNO.
                susjedni_uzorak = matrica((k+1)*vel_segmenta+1, l*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak)
                    slika(k*vel_segmenta+vel_segmenta,...
                          l*vel_segmenta+1 : l*vel_segmenta + vel_segmenta) = 0;
                end;
                susjedni_uzorak2 = matrica((k-1)*vel_segmenta+1, l*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak2)
                    slika(k*vel_segmenta+1,...
                          l*vel_segmenta+1 : l*vel_segmenta + vel_segmenta) = 0;
                end;
                susjedni_uzorak3 = matrica(k*vel_segmenta+1, (l+1)*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak3)
                    slika(k*vel_segmenta+1 : k*vel_segmenta + vel_segmenta,...
                          l*vel_segmenta+vel_segmenta) = 0;
                end;
            elseif (l == broj_segmenata-1)
                % nalazim se na kraju prvog retka
                % Treba uzet uzorak DOLJE, GORE i LIJEVO.
                susjedni_uzorak = matrica((k+1)*vel_segmenta+1, l*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak)
                    slika(k*vel_segmenta+vel_segmenta,...
                          l*vel_segmenta+1 : l*vel_segmenta + vel_segmenta) = 0;
                end;
                susjedni_uzorak2 = matrica((k-1)*vel_segmenta+1, l*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak2)
                    slika(k*vel_segmenta+1 : k*vel_segmenta + vel_segmenta,...
                          l*vel_segmenta+1) = 0;
                end;
                susjedni_uzorak3 = matrica(k*vel_segmenta+1, (l-1)*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak3)
                    slika(k*vel_segmenta+1 : k*vel_segmenta + vel_segmenta,...
                          l*vel_segmenta+1) = 0;
                end;
            else
                % nalazim se negdje u sredini prvog retka.
                % Treba uzet uzorak DOLJE, GORE, LIJEVO, DESNO
                susjedni_uzorak = matrica((k+1)*vel_segmenta+1, l*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak)
                    slika(k*vel_segmenta+vel_segmenta,...
                          l*vel_segmenta+1 : l*vel_segmenta + vel_segmenta) = 0;
                end;
                susjedni_uzorak2 = matrica((k-1)*vel_segmenta+1, l*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak2)
                    slika(k*vel_segmenta+1,...
                          l*vel_segmenta+1 : l*vel_segmenta + vel_segmenta) = 0;
                end;
                susjedni_uzorak3 = matrica(k*vel_segmenta+1, (l-1)*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak3)
                    slika(k*vel_segmenta+1 : k*vel_segmenta + vel_segmenta,...
                          l*vel_segmenta+1) = 0;
                end;
                susjedni_uzorak4 = matrica(k*vel_segmenta+1, (l+1)*vel_segmenta+1);
                if (uzorak ~= susjedni_uzorak4)
                    slika(k*vel_segmenta+1 : k*vel_segmenta + vel_segmenta,...
                          l*vel_segmenta+vel_segmenta) = 0;
                end;
            end;
        % end od if-a za k
        end;
        %imagesc(slika); pause;
    % end za petlju od stupaca
    end;
% end za petlju od redaka
end;

rezultat = slika;