在工作閑暇時間,把開發(fā)過程重要的一些內(nèi)容片段備份一下弧轧,如下內(nèi)容段是關(guān)于python從一組顏色中找出與給定顏色最接近的顏色的內(nèi)容个扰,應(yīng)該對碼農(nóng)們有些幫助。
from colorsys import rgb_to_hsv
colors = dict((
((196, 2, 51), "RED"),
((255, 165, 0), "ORANGE"),
((255, 205, 0), "YELLOW"),
((0, 128, 0), "GREEN"),
((0, 0, 255), "BLUE"),
((127, 0, 255), "VIOLET"),
((0, 0, 0), "BLACK"),
((255, 255, 255), "WHITE"),))
def to_hsv( color ):
? ? """ converts color tuples to floats and then to hsv """
def color_dist( c1, c2):
? ? """ returns the squared euklidian distance between two color vectors in hsv space """
def min_color_diff( color_to_match, colors):
? ? """ returns the `(distance, color_name)` with the minimal distance to `colors`"""
? ? return min( # overal best is the best match to any color:
? ? ? ? (color_dist(color_to_match, test), colors[test]) # (distance to `test` color, color name)
? ? ? ? for test in colors)
color_to_match = (255,255,0)
print min_color_diff( color_to_match, colors)