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使用fileinput模块实现逐行读取文件的方法
Apr 29 Python
在Python的Flask框架中验证注册用户的Email的方法
Sep 02 Python
Python递归函数定义与用法示例
Jun 02 Python
Python最火、R极具潜力 2017机器学习调查报告
Dec 11 Python
Python 查看文件的读写权限方法
Jan 23 Python
Python获取系统所有进程PID及进程名称的方法示例
May 24 Python
python3爬取数据至mysql的方法
Jun 26 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
在Python运行时动态查看进程内部信息的方法
Feb 22 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
Apr 03 Python
vscode 配置 python3开发环境的方法
Sep 19 Python
Pytorch中的variable, tensor与numpy相互转化的方法
Oct 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
PHP中ADODB类详解
2008/03/25 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
php计算一个文件大小的方法
2015/03/30 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
固定网页背景图同时保持图片比例的思路代码
2013/08/15 Javascript
javascript自然分类法算法实现代码
2013/10/11 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
使用impress.js制作幻灯片
2015/09/09 Javascript
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
node.js操作MongoDB的实例详解
2017/10/11 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
用Python中的字典来处理索引统计的方法
2015/05/05 Python
Python3遍历目录树实现方法
2015/05/22 Python
python下setuptools的安装详解及No module named setuptools的解决方法
2017/07/06 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
Python编写带选项的命令行程序方法
2019/08/13 Python
python3 sorted 如何实现自定义排序标准
2020/03/12 Python
python实现对变位词的判断方法
2020/04/05 Python
matlab中二维插值函数interp2的使用详解
2020/04/22 Python
自荐书范文
2013/12/08 职场文书
《雨点》教学反思
2014/02/12 职场文书
行政内勤岗位职责
2014/04/07 职场文书
学生会辞职信
2015/03/02 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
2021/07/01 Java/Android
【海涛教你打dota】体验一超神发条:咱是抢盾专业户
2022/04/01 DOTA