%Program pro výpočet plochy v dané mezi RGB odstínu

function [plocha_mm2, plocha_cm2] = Plocha ( x, rozmer_pix ) 
% za x je potřeba dosadit umístění souboru. Je-li soubor v adresáři Matlab,
% pak stačí jen jeho název a koncovku ('vzorek.jpg') včetně uvozovek. 
% Za proměnnou rozmer_pix je potšwba dosadit rozměr pixelu podle danného
% měřítka na mikroskopu. Nebude-li rozměr zadán, bude nahrazen rozměrem ze
% zvětšení 100.

Y=imread(x); % načtení obrázku jako třírozměrnou matici Y
[vyska, sirka, rgb]=size(Y); % zjištění rozměrů (pixelů) matice; rgb=3
[velikost]=((vyska*sirka*rgb)-2); 
% proměnná velikost udává počet kroků pro následující forcyklus. 
% Cyklus běží pro velikost+2, proto je nutné tyto dva kroky odečíst.


if (rozmer_pix==0) % situace při nezadání rozměru pixelu. 
                   % Dosazen rozměr při zvětšení 100x
    rozmer_pix=3.341923816;
end

Tr1=125; % spodní práh pro R
Tr2=180; % horní práh pro R
Tg1=125; % spodní práh pro G
Tg2=180; % horní práh pro G
Tb1=125; % spodní práh pro B
Tb2=180; % horní práh pro B
krok=0; % vynulování proměnné krok, proměnná krok je ověření počtu kroků cyklu
pocet=0; % vynulování proměnné pošet, proměnná počet přičítá každý pixel 
         %vyhovující daným hranicím

for n=1:3:(velikost) % cyklus od 1 s krokem 3 až po maximální hodnotu (=velikost)
    if (Y(n)<Tr1)||(Y(n)>Tr2) % porovnání hodnoty R s danámi hranicemi
        if (Y(n+1)<Tg1)||(Y(n+1)>Tg2) % porovnání hodnoty G s danámi hranicemi
            if (Y(n+2)<Tb1)||(Y(n+2)>Tb2) % porovnání hodnoty B s danámi hranicemi
                pocet=pocet+1; %když pixel vyhovuje všem mezím, je započítán
                krok=krok+1; % přičtení kroku v cyklu
            else
                krok=krok+1; % přičtení kroku v cyklu
            end
        else
            krok=krok+1; % přičtení kroku v cyklu
        end
    else
        krok=krok+1; % přičtení kroku v cyklu
    end
end
plocha_mm2 = ((pocet*rozmer_pix*0.00001));% počet pixelů vynásobený rozměrey pixelu
plocha_cm2 = plocha_mm2/100;