function filteredPoints = CarPointsFilter(lidarBox)
    % filtrovaní hodnot výseče
 %% hard filter
  % Určení nejpočetnější hodnoty pro výběr bodů
    value = mode(round(lidarBox/10)*10,"all");
    
    filteredPointsHard = zeros(size(lidarBox,1),size(lidarBox,2));

    for k = 1:size(lidarBox, 1)
        for j = 1:size(lidarBox, 2)
            % Pokud je hodnota bodu v boundary boxu menší a větší než prahová hodnota 
            if lidarBox(k,j) > value-10 && lidarBox(k,j) < value+10
                filteredPointsHard(k,j)=lidarBox(k,j);
            else
                filteredPointsHard(k,j)=NaN;
            end
        end
    end

%% soft filter
    value2 = mode(round(filteredPointsHard),"all");

    filteredPoints = zeros(size(filteredPointsHard,1),size(filteredPointsHard,2));

    for k = 1:size(filteredPointsHard, 1)
        for j = 1:size(filteredPointsHard, 2)
            % Pokud je hodnota bodu v boundary boxu menší a větší než prahová hodnota
            if filteredPointsHard(k,j) > value2-5 && filteredPointsHard(k,j) < value2+5
                filteredPoints(k,j)=filteredPointsHard(k,j);
            else
                filteredPoints(k,j)=NaN;
            end
        end
    end

    filteredPoints = filteredPoints(any(filteredPoints,2),:);

end