function region = blurred_path_region(n_timestamps_1,n_timestamps_2,...
resolution_level, n_timestamps_reduced_1, n_timestamps_reduced_2,...
path, radius)
    path = path - 1;

    path_length = length(path);
    path_up = repmat(path, 1, radius);
    path_down = path_up;
    path_left = path_up;
    path_right = path_up;

    for i = 1:radius
        start = path_length * (i - 1) + 1;
        end_ = path_length * i;
    
        path_up(1, start:end_) = path_up(1, start:end_) + i;
        path_down(1, start:end_) = path_down(1, start:end_) - i;
        path_left(2, start:end_) = path_left(2, start:end_) - i;
        path_right(2, start:end_) = path_right(2, start:end_) + i;
    end

    path_radius = [path path_up path_down path_left path_right];
    
    path_rad_1 = path_radius(1,:);
    path_rad_2 = path_radius(2,:);
    path_rad_1(path_rad_1 > n_timestamps_reduced_1 - 1) = n_timestamps_reduced_1 - 1;
    path_rad_2(path_rad_2 > n_timestamps_reduced_2 - 1) = n_timestamps_reduced_2 - 1;
    path_rad_1 = max(0, path_rad_1);
    path_rad_2 = max(0, path_rad_2);

    path_radius = [path_rad_1; path_rad_2];
    
    region_reduced = zeros(2, n_timestamps_reduced_1);
    
    for i = 0:n_timestamps_reduced_1 - 1
        logic = path_radius(1, :) == i;
        arr = path_radius(2, :);
        arr = arr(logic);
        
        min_ = min(arr);
        max_ = max(arr);
        region_reduced(1, i + 1) = min_ * resolution_level;
        region_reduced(2, i + 1) = (max_ + 1) * resolution_level;
    end
    
    region = repelem(region_reduced, 1, resolution_level);
    
    reg_1 = region(1,:) + 1;
    reg_2 = region(2,:) + 1;
    reg_1(reg_1 > n_timestamps_1) = n_timestamps_1;
    reg_2(reg_2 > n_timestamps_2) = n_timestamps_2;
    
    region = [reg_1; reg_2];
    region = max(0, region);
    
end


