function[vector] = getSCFromHSVe(vstupniObraz)

VstObrazHSV = RGB2HSV(vstupniObraz);
[height width z] = size(vstupniObraz);

maximum= (height*width)/50;
minimum = (height*width)/500;
number = 100;

H=VstObrazHSV(:,:,1);

Hr = round(H.*3600)+1;

numH(3601)                = 0;
sumXH(3601)               = 0;           % soucet hodnot osy x pro vsechny body dane barvy
sumYH(3601)               = 0;           % soucet hodnot osy y pro vsechny body dane barvy
sumX2H(3601)              = 0;           % soucet kvadratu hodnot osy x pro vsechny body dane barvy
sumY2H(3601)              = 0;           % soucet kvadratu hodnot osy y pro vsechny body dane barvy
StrHodnX(3601)            = 0;           % stredni hodnota  vzdalenosti v souradnicich x
StrHodnY(3601)            = 0;           % stredni hodnota  vzdalenosti v souradnicich y
SigmaX(3601)              = 0;           % rozptyl vzdalenosti v souradnicich x           
SigmaY(3601)              = 0;           % rozptyl vzdalenosti v souradnicich y
SmerodatnaOdchylkaX(3601) = 0;           % smerodatna odchylka vzdalenosti v souradnicich x
SmerodatnaOdchylkaY(3601) = 0;           % smerodatna odchylka vzdalenosti v souradnicich y


for i = 1:1:height
    for j = 1:1:width
        numH(Hr(i,j,1))    = numH(Hr(i,j,1)) + 1;
        sumXH(Hr(i,j,1))   = sumXH(Hr(i,j,1))  + j; % j je width cili X
        sumYH(Hr(i,j,1))   = sumYH(Hr(i,j,1))  + i; % i je height cili Y
        sumX2H(Hr(i,j,1))  = sumX2H(Hr(i,j,1))  + j*j;
        sumY2H(Hr(i,j,1))  = sumY2H(Hr(i,j,1))  + i*i;
    end
end
for i = 1:1:3601

      if numH(i)~=0  
        StrHodnX(i)   = sumXH(i)./numH(i);%stredni hodnota vzdalenosti v souradnici X
        SigmaX(i)     = (sumX2H(i)./numH(i)) - ((sumXH(i).*sumXH(i))./(numH(i).*numH(i))); %rozptyl od stredni hodnoty
        SmerodatnaOdchylkaX(i) = sqrt(SigmaX(i));
        
        StrHodnY(i)   = sumYH(i)./numH(i);%stredni hodnota vzdalenosti v souradnici Y
        SigmaY(i)     = (sumY2H(i)./numH(i)) - ((sumYH(i).*sumYH(i))./(numH(i).*numH(i))); %rozptyl od stredni hodnoty
        SmerodatnaOdchylkaY(i) = sqrt(SigmaY(i));
      else
        StrHodnX(i)   = 0;
        SigmaX(i)     = 0;
        SmerodatnaOdchylkaX(i) = 0;
        
        StrHodnY(i)   = 0;
        SigmaY(i)     = 0;
        SmerodatnaOdchylkaY(i) = 0;
      end
      allVector(:,i) = [numH(i) SmerodatnaOdchylkaX(i) SmerodatnaOdchylkaY(i) SigmaX(i) SigmaY(i) StrHodnX(i) StrHodnY(i) i ]';
end

for i=1:1:length(allVector)
    if (allVector(2,i)~=0) 
        allVector(10,i) = allVector(4,i)./allVector(1,i); %pocet bodu dane barvy / smerodatna odchylka X
    else
        allVector(10,i) = 1;
    end
    if (allVector(3,i)~=0) 
        allVector(11,i) = allVector(5,i)./allVector(1,i); %pocet bodu dane barvy / smerodatna odchylka Y
    else
        allVector(11,i) = 1;
    end
    allVector(12,i) = allVector(10,i)+allVector(11,i);
end


ReduceAllVector = zeros(12,1);
j=0;
for i=1:1:length(allVector)
    if (allVector(1,i)>minimum && allVector(2,i)*allVector(3,i)<maximum) 
      j=j+1;
      ReduceAllVector(:,j) = allVector(:,i);
      selHnum(ReduceAllVector(8,j))   = ReduceAllVector(1,j);
    end 
end
 

if exist('selHnum','var')

    selHnum(size(selHnum,2):3601)= 0;
    minPomer = 1;
    minPomer = min(ReduceAllVector(12,:));

    q=0;
    ReduceAllVectorX = zeros(size(ReduceAllVector,1),size(ReduceAllVector,2));
    % vyber prvku s nejlepsim pomerem mnozstvi/rozptyl
    for i=1:1:size(ReduceAllVector,2)
            if (ReduceAllVector(12,i)< minPomer*15)
                q = q+1;
                ReduceAllVectorX(:,q) = ReduceAllVector(:,i); 
                selHnumX(ReduceAllVectorX(8,q))   = ReduceAllVectorX(1,q);
            end
    end

    selHnumX(size(selHnumX,2)+1:3601+number)= 0;
    
    %vyber jednoho nejvyssiho prvku z poctu "number" prvku
    for i=1:1:size(selHnumX,2)
        if (selHnumX(i)>0)
            for j=1:1:number
                if (selHnumX(i+j)<selHnumX(i))
                    selHnumX2(i) = selHnumX(i);
                elseif (selHnumX(i+j)>selHnumX(i))
                    selHnumX2(i) = 0;
                    break;
                end
            end
        end
    end
    selHnumX2 = [zeros(1,number) selHnumX2];
    selHnumX2(size(selHnumX2,2)+1:3601+number)= 0;
    for i=size(selHnumX2,2):-1:1
        if (selHnumX2(i)>0)
            for j=1:number
                if (selHnumX2(i-j)<selHnumX2(i))
                    selHnumX3(i) = selHnumX2(i);
                elseif (selHnumX2(i-j)>selHnumX2(i))
                    selHnumX3(i) = 0;
                    break;
                end
            end
        end
    end
    selHnumX3 = selHnumX3(number+1:size(selHnumX3,2));
    k=0;
    for i=1:1:size(selHnumX3,2)
        if (selHnumX3(i)>0)
           k=k+1;
           vector(:,k) = allVector(:,i);
        end
    end
else
  vector = zeros(12,1);
end 
