2017-04-04 1 views
-1

Ich schreibe ein Python-Skript, wo ich brauche Farbcode gegen 3 Farben zu überprüfen: rot, gelb und grün auf diese Weise:Wie überprüft man RGB-Farben gegen einen Farbbereich?

if (255,255,255) is in green range: 
    print("green") 
else if (255,255,255) is in yellow range: 
    print("yellow") 
else if (255,255,255) is in red range: 
    print("red") 
else: 
    print("none") 

Das, was ich Probleme mit ist mit bin, wie is in yellow range wenn es zu sehen?

Alle Vorschläge werden geschätzt.

EDIT

Die folgende Abbildung stellt mein Gefühl von gelb, grün und rot:

enter image description here

+2

Was meinst du mit "grünen Bereich"? Kannst du das definieren? –

+0

es bedeutet, wenn die Farbe einen beliebigen Farbton grün – Elisha512

+2

yeah, aber ich meine: sagen Sie haben eine Farbe '(r, g, b)' unter welchen Bedingungen ist es "nah" an rot? Sollte es nur "(255,0,0)" oder "(200,10,10)" sein? Es gab einmal ein Experiment darüber, ob Menschen eine Farbe als grün oder blau identifizierten. Weil Russisch zwei verschiedene Wörter für Blau (hellblau und dunkelblau) hat, sahen Russen mehr Farben als blau. Sogar Leute sind in dieser Angelegenheit nicht einverstanden, also müssen Sie das zuerst definieren. –

Antwort

2

ich die folgende Lösung in das Terminal nur gehackt, nicht sehr sauber, aber ich hoffe, Sie habe die Idee.

TARGET_COLORS = {"Red": (255, 0, 0), "Yellow": (255, 255, 0), "Green": (0, 255, 0)} 

def color_difference (color1, color2): 
    return sum([abs(component1-component2) for component1, component2 in zip(color1, color2)]) 

my_color = (123, 234, 100) 

differences = [[color_difference(my_color, target_value), target_name] for target_name, target_value in TARGET_COLORS.items()] 
differences.sort() # sorted by the first element of inner lists 
my_color_name = differences[0][1] 

print(my_color_name) 

Zahlen, my_color = (123, 234, 100) nächste Übereinstimmung grün war :)

+0

Das funktioniert perfekt! genau was ich brauchte. Vielen Dank! – Elisha512

1

die Farbe HSL konvertieren und wie this one auf ein Farbrad beziehen Ihre Definitionen von gelb, rot und grün, speziell der H-Wert.

Verwandte Themen