这里有一些代码来尝试并演示我想做的事情。
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)元组的形式提供的。
我如何执行比较?
你可以选择颜色的截止点。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"
这只涵盖了红色,绿色和蓝色,你需要调整规则以适应你的需要。 你也可以制定其他规则来寻找其他颜色,比如黄色或紫色等。
这也许会对你有所帮助。
tuple1 = (1,2,3)
tuple2 = (1,2,4)
print (tuple1 == tuple2) # False
print (tuple1 < tuple2) # True
print (tuple1 > tuple2) # False