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 相关文章推荐
ptyhon实现sitemap生成示例
Mar 30 Python
Python实现的数据结构与算法之链表详解
Apr 22 Python
Python语言描述连续子数组的最大和
Jan 04 Python
pandas pivot_table() 按日期分多列数据的方法
Nov 16 Python
神经网络相关之基础概念的讲解
Dec 29 Python
Python2与Python3的区别实例分析
Apr 11 Python
Python CSV文件模块的使用案例分析
Dec 21 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
Jan 04 Python
完美解决pycharm 不显示代码提示问题
Jun 02 Python
Python面向对象实现方法总结
Aug 12 Python
Python 实现定积分与二重定积分的操作
May 26 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
Jun 21 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
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
递归实现php数组转xml的代码分享
2015/05/14 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
2015/12/14 PHP
PDO实现学生管理系统
2020/03/21 PHP
Js获取事件对象代码
2010/08/05 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
2013/02/06 Javascript
多次注册事件会导致一个事件被触发多次的解决方法
2013/08/12 Javascript
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
jQuery实现点击按钮弹出可关闭层的浮动层插件
2015/09/19 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
JavaScript 数组some()和filter()的用法及区别
2016/05/20 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
2017/01/19 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
vue做网页开场视频的实例代码
2017/10/20 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
使用Nuxt.js改造已有项目的方法
2018/08/07 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
微信小程序整个页面的自动适应布局的实现
2020/07/12 Javascript
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
基于python中的TCP及UDP(详解)
2017/11/06 Python
Python简单生成随机姓名的方法示例
2017/12/27 Python
Django如何继承AbstractUser扩展字段
2020/11/27 Python
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
介绍下Java中==和equals的区别
2013/09/01 面试题
人力管理专业毕业生求职信
2014/02/27 职场文书
充分就业社区汇报材料
2014/05/07 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书
2015年学校食堂工作总结
2015/04/22 职场文书
新闻发布会新闻稿
2015/07/17 职场文书
预备党员表决心的话
2015/09/22 职场文书
导游词之镇江西津古渡
2019/11/06 职场文书