%% Funkce pro převod obrazů klasifikovaných experty do matice tříd PRO RITE DATABÁZI
% Tepnám přiřazena hodnota 2, žílám hodnota 3;
% pixely, kde se kříží/protínají cévy mají hodnotu 1;
% pixely, u kterých není jasná klasifikace = hodnota 1;
% pozadí má přiřazenou hodnotu 1.
%
% Vstupem funkce je class_img, obraz klasifikovaný experty, na výstupu je
% matice tříd (1, 2, 3).

function labels_matice = labels_rite(class_img)

labels_matice = zeros(size(class_img, 1), size(class_img, 2));  % vytvoření matice, do které budou zapisovány jednotlivé třídy

tepny = logical(class_img(:, :, 1));   % červený kanál
prekryv = logical(class_img(:, :, 2)); % zelený kanál
zily = logical(class_img(:, :, 3));    % modrý kanál

% černé pozadí
pozadi = tepny == 0 & prekryv == 0 & zily == 0;
neklas = tepny > 0 & prekryv > 0 & zily > 0;

% bílé pozadí
% pozadi = tepny == 255 & prekryv == 255 & zily == 255;
% neklas = tepny > 255 & prekryv > 255 & zily > 255;

% 1, 2, 3
for i = 1:size(class_img, 1)
    for j = 1:size(class_img, 2)
        if pozadi(i, j) == 1
            labels_matice(i, j) = 1;
        elseif tepny(i, j) == 1
            labels_matice(i, j) = 2;
        elseif zily(i, j) == 1
            labels_matice(i, j) = 3;
        end
    end
end

for i = 1:size(class_img, 1)
    for j = 1:size(class_img, 2)
        if neklas(i, j) == 1
            labels_matice(i, j) = 1;
        elseif prekryv(i, j) == 1
            labels_matice(i, j) = 1;
        end
    end
end

% labels_vektor = reshape(labels_matice, [], 1);  % transformace matice do vektoru

% [x, y] = find(labels_matice == 2);              % kontrola zápisu 

end