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


Posted in Python onMarch 19, 2015

本文实例讲述了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基础之函数用法实例详解
Sep 10 Python
Python开发常用的一些开源Package分享
Feb 14 Python
Python装饰器使用示例及实际应用例子
Mar 06 Python
python使用pandas实现数据分割实例代码
Jan 25 Python
使用python 3实现发送邮件功能
Jun 15 Python
Django组件之cookie与session的使用方法
Jan 10 Python
Python3数字求和的实例
Feb 19 Python
PyQt Qt Designer工具的布局管理详解
Aug 07 Python
如何基于pythonnet调用halcon脚本
Jan 20 Python
keras实现VGG16 CIFAR10数据集方式
Jul 07 Python
python反爬虫方法的优缺点分析
Nov 25 Python
Python函数中的不定长参数相关知识总结
Jun 24 Python
python遍历类中所有成员的方法
Mar 18 #Python
python获取图片颜色信息的方法
Mar 18 #Python
Python调用C语言开发的共享库方法实例
Mar 18 #Python
Python两个整数相除得到浮点数值的方法
Mar 18 #Python
10款最好的Web开发的 Python 框架
Mar 18 #Python
python通过yield实现数组全排列的方法
Mar 18 #Python
python以环状形式组合排列图片并输出的方法
Mar 17 #Python
You might like
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
php源代码安装常见错误与解决办法分享
2013/05/28 PHP
is_uploaded_file函数引发的不能上传文件问题
2013/10/29 PHP
初识laravel5
2015/03/02 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
2016/06/13 PHP
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
使用JS读秒使用示例
2013/09/21 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
Java 生成随机字符的示例代码
2021/01/13 Javascript
进一步理解Python中的函数编程
2015/04/13 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
python多进程读图提取特征存npy
2019/05/21 Python
Django如何自定义model创建数据库索引的顺序
2019/06/20 Python
python 杀死自身进程的实现方法
2019/07/01 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
2020/01/03 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
python实现126邮箱发送邮件
2020/05/20 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
Linux中如何用命令创建目录
2015/01/12 面试题
初中三好学生事迹材料
2014/01/13 职场文书
中药专业自荐信范文
2014/03/18 职场文书
环保主题班会教案
2015/08/13 职场文书
SpringBoot 整合mongoDB并自定义连接池的示例代码
2022/02/28 MongoDB
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android
win10频率超出范围怎么办?win10老显示超出工作频率范围的解决方法
2022/07/07 数码科技