def make_html(): out = open('color_samples.html', 'w') out.write(HEADER) colordata = make_lab_color_data() names = colordata.keys() names.sort() for colorname in names: colors = colordata[colorname] freq = len(colors) if freq >= 8: samples = elect_samples(colors, 8) if len(samples) == 8: print colorname, samples print >> out, "<tr>" for sample in samples: print >> out, '<td bgcolor="#%02x%02x%02x" width="32"> </td>' % sample print >> out, '<td>%s (%d)</td>' % (colorname, freq) print >> out, '</tr>' out.write(FOOTER) out.close()
import simplenlp from metanl import english import math, random from luminoso3.background_space import get_commonsense_assoc from colorizer.color_data import make_lab_color_data, lab_to_rgb, rgb_to_hsv from colorizer.colorvote import weighted_elect_samples ENGLISH = simplenlp.get('en') ASSOC = get_commonsense_assoc('en', 100) COLORDATA = {} origdata = make_lab_color_data() def importance_factor(colorname): imp = 10000 / math.sqrt(english.word_frequency(colorname.split()[0], 1000000)) return int(imp) for key, values in origdata.items(): subset_values = random.sample(values, min(len(values), int(math.ceil(importance_factor(key)*math.sqrt(len(values)))))) COLORDATA[key] = subset_values def output_colors(labcolors): return [lab_to_rgb(c) for c in sorted(labcolors)] class IncrementalColorizer(object): def __init__(self, ncolors): self.ncolors = ncolors self.colors = [(128,128,128)] * ncolors