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程序员
Jun 12 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
windows系统下Python环境的搭建(Aptana Studio)
Mar 06 Python
linux下python使用sendmail发送邮件
May 22 Python
python实现黑客字幕雨效果
Jun 21 Python
10个Python小技巧你值得拥有
Sep 29 Python
python递归法实现简易连连看小游戏
Mar 25 Python
微信小程序python用户认证的实现
Jul 29 Python
PyCharm 2020 激活到 2100 年的教程
Mar 25 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
Dec 11 Python
python 中[0]*2与0*2的区别说明
May 10 Python
Python selenium的这三种等待方式一定要会!
Jun 10 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
层叠菜单的动态生成
2006/10/09 PHP
php将字符串转化成date存入数据库的两种方式
2014/04/28 PHP
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
本地计算机无法启动Apache故障处理
2014/08/08 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
php实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
JQuery判断radio是否选中并获取选中值的示例代码
2014/10/17 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
浅谈layui里的上传控件问题
2019/09/26 Javascript
python自动安装pip
2014/04/24 Python
Python函数式编程指南(四):生成器详解
2015/06/24 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
Python文件操作方法详解
2020/02/09 Python
python logging通过json文件配置的步骤
2020/04/27 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
如何利用cmp命令比较文件
2013/09/23 面试题
毕业生的自我鉴定
2013/10/29 职场文书
中医专业应届生求职信
2013/11/17 职场文书
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
政治学求职信
2014/06/03 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
2016基督教会圣诞节开幕词
2016/03/04 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
JS Canvas接口和动画效果大全
2021/04/29 Javascript
Vue实现下拉加载更多
2021/05/09 Vue.js
Java实现多线程聊天室
2021/06/26 Java/Android
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技