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

yipeiwu_com5年前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如何生成各种随机分布图

python如何生成各种随机分布图

在学习生活中,我们经常性的发现有很多事物背后都有某种规律,而且,这种规律可能符合某种随机分布,比如:正态分布、对数正态分布、beta分布等等。 所以,了解某种分布对一些事物有更加深入的理...

Python编程实现删除VC临时文件及Debug目录的方法

本文实例讲述了Python编程实现删除VC临时文件及Debug目录的方法。分享给大家供大家参考,具体如下: # *_* coding=gb2312 *-* import os imp...

从零学python系列之从文件读取和保存数据

在HeadFirstPython网站中下载所有文件,解压后以chapter 3中的“sketch.txt”为例:   新建IDLE会话,首先导入os模块,并将工作目录却换到包含...

Python中的XML库4Suite Server的介绍

在继续阅读本文之前,您务必要对我们在本专栏中将要讨论的一些技术有所了解。我们要使用的技术包括:可扩展的样式表语言转换(Extensible Stylesheet Language Tra...

Python排序搜索基本算法之归并排序实例分析

Python排序搜索基本算法之归并排序实例分析

本文实例讲述了Python排序搜索基本算法之归并排序。分享给大家供大家参考,具体如下: 归并排序最令人兴奋的特点是:不论输入是什么样的,它对N个元素的序列排序所用时间与NlogN成正比。...