这里有一些代码可以尝试演示我正在尝试做的事情:
def check_color(color):
green_start = (40, 40, 40)
green_end = (70, 70, 70)
if color > green_start and color < green_end:
return True
return False
if check_color((60, 50, 60)):
print 'the color is "green"'
使用PIL,我试图检测给定的颜色是否为“绿色”(在本例中)。颜色以(R,G,B)元组的形式提供。
我该如何进行比较?
答案 0 :(得分:3)
将您的RGB值转换为color model之类的另一个HSV并比较Hue可能会有所帮助。
答案 1 :(得分:1)
答案 2 :(得分:0)
您可以选择颜色的截止点。 RGB颜色由3个值表示,这些值表示混合用于制作颜色的红色,绿色和蓝色的量。您需要确定您认为哪种混合物是某种颜色。
例如,只要绿色和蓝色的值小于红色值的一半,就可以说颜色是红色。即:(r = 100,g = 49,b = 49)将是红色但是(r = 100,g = 49,b = 50)不会是因为50不小于红色值的一半,100。 (r = 50,g = 23,b = 24)将为红色。您可以将相同的规则应用于绿色和蓝色。
伪代码:
def get_color(color)
r,g,b = color
if g < r/2 and b < r/2
return "red"
if r < g/2 and b < g/2
return "green"
if r < b/2 and g < b/2
return "blue"
这仅包括红色,绿色和蓝色,您可能需要调整规则以满足您的需求。您还可以制定其他规则来查找黄色或紫色等其他颜色......
答案 3 :(得分:0)
这可能会帮助您:
tuple1 = (1,2,3)
tuple2 = (1,2,4)
print (tuple1 == tuple2) # False
print (tuple1 < tuple2) # True
print (tuple1 > tuple2) # False
中的更多示例