RGB-Farbe in englischen Farbnamen in Python konvertieren
Sie möchten ein RGB-Farbtupel in einen Farbnamen wie „Gelb“ umwandeln ' oder 'blau'.
Betrachten Sie den folgenden Code:
<code class="python">import Image im = Image.open("test.jpg") n, color = max(im.getcolors(im.size[0]*im.size[1])) print color # (119, 172, 152)</code>
Dieser Code extrahiert die extrahiert die dominante Farbe aus einem Bild und speichert sie als Tupel. Wie können Sie dieses Tupel in Python in einen Farbnamen umwandeln?
Lösung:
Das Webcolors-Paket bietet eine nützliche Funktion namens rgb_to_name():
rgb_to_name(rgb_triplet, spec='css3')
Diese Funktion konvertiert ein Drei-Tupel ganzzahliger RGB-Werte in den entsprechenden Farbnamen innerhalb einer angegebenen Farbspezifikation (z. B. 'css3'). Zum Beispiel:
<code class="python">import webcolors rgb_to_name((0, 0, 0)) # 'black'</code>
Um den Farbnamen zu finden, der einem bestimmten RGB-Tupel am nächsten kommt, können Sie eine benutzerdefinierte Funktion wie die folgende verwenden:
<code class="python">import math import webcolors def closest_colour(requested_colour): min_colours = {} for key, name in webcolors.CSS3_HEX_TO_NAMES.items(): r_c, g_c, b_c = webcolors.hex_to_rgb(key) rd = (r_c - requested_colour[0]) ** 2 gd = (g_c - requested_colour[1]) ** 2 bd = (b_c - requested_colour[2]) ** 2 min_colours[(rd + gd + bd)] = name return min_colours[min(min_colours.keys())]</code>
Sie können dann die folgende Funktion verwenden um sowohl den tatsächlichen Farbnamen, falls vorhanden, als auch den am besten passenden Namen abzurufen:
<code class="python">def get_colour_name(requested_colour): try: closest_name = actual_name = webcolors.rgb_to_name(requested_colour) except ValueError: closest_name = closest_colour(requested_colour) actual_name = None return actual_name, closest_name</code>
Mit dieser Funktion können Sie sowohl den genauen Farbnamen als auch die nächste Näherung für a erhalten gegebenes RGB-Tupel.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich ein RGB-Farbtupel in Python in einen englischen Farbnamen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!