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中for循环下的索引变量的作用域
Apr 15 Python
Python基于PycURL自动处理cookie的方法
Jul 25 Python
Python进阶学习之特殊方法实例详析
Dec 01 Python
在windows下Python打印彩色字体的方法
May 15 Python
Python常用字符串替换函数strip、replace及sub用法示例
May 21 Python
python range()函数取反序遍历sequence的方法
Jun 25 Python
Python测试网络连通性示例【基于ping】
Aug 03 Python
Python实现的旋转数组功能算法示例
Feb 23 Python
Python对Tornado请求与响应的数据处理
Feb 12 Python
django和flask哪个值得研究学习
Jul 31 Python
python抢购软件/插件/脚本附完整源码
Mar 04 Python
Python实现8种常用抽样方法
Jun 27 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 魔术方法使用说明
2009/10/20 PHP
php中防止SQL注入的最佳解决方法
2013/04/25 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
动态样式类封装JS代码
2009/09/02 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
js函数模拟显示桌面.scf程序示例
2014/04/20 Javascript
深入理解javascript原型链和继承
2014/09/23 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
微信小程序左滑删除效果的实现代码
2017/02/20 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
vue项目刷新当前页面的三种方法
2018/12/04 Javascript
JavaScript遍历数组和对象的元素简单操作示例
2019/07/09 Javascript
JS立即执行的匿名函数用法分析
2019/11/04 Javascript
python使用opencv进行人脸识别
2017/04/07 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
python出现"IndentationError: unexpected indent"错误解决办法
2017/10/15 Python
django静态文件加载的方法
2018/05/20 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
python视频按帧截取图片工具
2019/07/23 Python
Python字典的概念及常见应用实例详解
2019/10/30 Python
python实现连续变量最优分箱详解--CART算法
2019/11/22 Python
基于opencv实现简单画板功能
2020/08/02 Python
python利用paramiko实现交换机巡检的示例
2020/09/22 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
勤俭节约倡议书范文
2015/04/29 职场文书
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技