Quick Start¶
Extracting a Color Palette¶
from renoir.color import ColorExtractor, ColorAnalyzer, ColorVisualizer
from PIL import Image
extractor = ColorExtractor()
image = Image.open("artwork.jpg")
# Extract 6 dominant colors (reproducible with default random_state=42)
palette = extractor.extract_dominant_colors(image, n_colors=6)
print(palette) # [(120, 89, 143), ...]
Naming Colors with Art-Historical Vocabularies¶
from renoir.color import ColorNamer
namer = ColorNamer()
rgb = (120, 89, 143)
# Name using four different vocabularies
for vocab in ["artist", "resene", "natural", "xkcd"]:
namer.set_vocabulary(vocab)
name = namer.name(rgb)
print(f"{vocab}: {name}")
Advanced Metrics¶
from renoir.color import ColorAnalyzer, ColorNamer
analyzer = ColorAnalyzer()
# Color Complexity Index
cci = analyzer.calculate_color_complexity(palette)
print(f"CCI: {cci['cci']:.3f}")
# Historical Pigment Probability (for a painting dated 1650)
namer = ColorNamer(vocabulary="artist")
hpp = namer.historical_pigment_probability(rgb, year=1650)
print(hpp)
# Color Provenance Score
cps = analyzer.color_provenance_score(palette, year=1650)
print(f"Provenance score: {cps['score']:.3f}")
Visualization¶
from renoir.color import ColorVisualizer
visualizer = ColorVisualizer()
visualizer.plot_palette(palette, title="Extracted Palette", show_names=True)