Esempio n. 1
0
def elect_samples(colors, n=8):
    if len(colors) > 1000:
        samples = random.sample(colors, n*5)
        colors = random.sample(colors, 1000)
    elif len(colors) > n*5:
        samples = random.sample(colors, n*5)
        assert len(samples) == n*5
    else:
        samples = colors
    votes = []

    for color in colors:
        ratings = []
        for candidate in samples:
            ratings.append((euclidean_distance(color, candidate),
                tuple(candidate)))
        ratings.sort()
        vote = [r[1] for r in ratings]
        votes.append(vote)

    winners = elect_stv(samples, votes, n)
    return [lab_to_rgb(x) for x in winners]
Esempio n. 2
0
def rgb_samples(colors, n=8):
    samples = get_samples(colors, n)
    assert len(samples) == n
    return [lab_to_rgb(s) for s in samples]