% funkce na rozpoznání znaků na řádku
function [znak_cislo navrhy obraz_cislo] = funkce_znaky_radek(obrazek)

obrazek_cara_1 = im2double(obrazek);

obrazek_cara = obrazek_cara_1(2:end-1,2:end-1);

mez = 0.8;
obrazek_cara_1 = obrazek_cara;
obrazek_cara_1(obrazek_cara > mez) = 0;
obrazek_cara_1(obrazek_cara <= mez) = 1;

% odstranění čáry pod písmenem                           
[prumetV_obrazek_cara_1,poziceV_obrazek_cara_1] = funkce_prumet(obrazek_cara_1,'V');

% najde maxim, což je čára
maximum_pozice = 0;
maximum = 0;
for i = 1 : length(prumetV_obrazek_cara_1)
    if prumetV_obrazek_cara_1(i) > maximum
        maximum_pozice = i;
        maximum = prumetV_obrazek_cara_1(i);
    end
end
[maximum maximum_pozice] = max(prumetV_obrazek_cara_1);
% a potom minimum což je mezera mezi čárou a číslem
minimum = maximum;
i = maximum_pozice;
while i ~= 0
    if (prumetV_obrazek_cara_1(i-1)  - prumetV_obrazek_cara_1(i)) > 0
        minimum_pozice = i;
        i = 0;
    else
        i = i -1;
    end
end

% pokud nezjistí žádné číslo, znamenáto nevyplněno
if minimum_pozice == 1
    znak_cislo = '*';
    return;
end

% obraz bez čáry
obrazek_bez_cara_2 = obrazek_cara_1(1:minimum_pozice,:);

% ořezání
[f c]=find(obrazek_bez_cara_2);
obrazek_bez_cara_2=obrazek_bez_cara_2(min(f):max(f),min(c):max(c));

% zobrazení čar
obrazek_bez_cara_2 = bwmorph(obrazek_bez_cara_2,'thin',Inf);
obrazek_bez_cara_2 = bwmorph(obrazek_bez_cara_2,'dilate',ones(1));
obrazek_bez_cara_2 = bwmorph(obrazek_bez_cara_2,'thin',Inf);

% ořezání
[f c]=find(obrazek_bez_cara_2);   
obrazek_bez_cara_2=obrazek_bez_cara_2(min(f):max(f),min(c):max(c));

[prumetH_obrazek_bez_cara_2,poziceH_obrazek_bez_cara_2] = funkce_prumet(obrazek_bez_cara_2,'H');
pozice_car = find(0 == sum(obrazek_bez_cara_2));

% zapsání poslední souřadnice
pozice_car(length(pozice_car) +1) = poziceH_obrazek_bez_cara_2(end);

obrazek_bez_cara_2 = bwmorph(obrazek_bez_cara_2,'dilate',ones(1));
  

% cyklus který načítá jednotlivé znaky
i = 2;
k = 2;

while i < length(pozice_car)
    if i == 2
        x1 = 1;
        x2 = pozice_car(i-1);
    else
        x1 = pozice_car(i-1);
        x2 = pozice_car(i);
    end
    
    while x2 - x1 <= 2 && i < length(pozice_car)
        i = i + 1;
        x1 = pozice_car(i-1);
        x2 = pozice_car(i);
    end


    cislice = obrazek_bez_cara_2(:,x1+1:x2-1);
    
    % ořezání
    [f c]=find(cislice);   
    pismenko_mini=cislice(min(f):max(f),min(c):max(c));

    % rozpoznání jednotlivých číslic
    [znak_cislo(k-1) predbezne_navrhy obraz_cislo{k-1}] = funkce_rozpoznani(pismenko_mini,'C');
    navrhy(1+2*(k-2):2+2*(k-2),:) = predbezne_navrhy;
    
    % posunutí na další znak
    k = k + 1;   
    
    i = i + 1;
end

end