python实现从一组颜色中找出与给定颜色最接近颜色的方法 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【meiwen.anslib.com - 电脑资料】

    作者:liuli 字体:[增加 减小] 类型:转载

    这篇文章主要介绍了python实现从一组颜色中找出与给定颜色最接近颜色的方法,涉及Python操作rgb格式颜色的技巧,非常具有实用价值,需要的朋友可以参考下

    本文实例讲述了python实现从一组颜色中找出与给定颜色最接近颜色的方法,

python实现从一组颜色中找出与给定颜色最接近颜色的方法

。分享给大家供大家参考。具体分析如下:

    这段代码非常有用,可以找到指定颜色相似的颜色,比如有一组8个颜色,现在给定一个rgb格式的演示,找出它与8个颜色中的哪一个最接近,如果你需要做一个按照图片颜色搜索图片的程序,这个就非常有用了。

    代码如下:

    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 """

    return rgb_to_hsv(*[x/255.0 for x in color]) #rgb_to_hsv wants floats!

    def color_dist( c1, c2):

    """ returns the squared euklidian distance between two color vectors in hsv space """

    return sum( (a-b)**2 for a,b in zip(to_hsv(c1),to_hsv(c2)) )

    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)

    希望本文所述对大家的Python程序设计有所帮助,

电脑资料

python实现从一组颜色中找出与给定颜色最接近颜色的方法》(http://meiwen.anslib.com)。

最新文章