python实现从一组颜色中找出与给定颜色最接近颜色的方法
本文实例讲述了python实现从一组颜色中找出与给定颜色最接近颜色的方法。分享给大家供大家参考。具体分析如下:
这段代码非常有用,可以找到指定颜色相似的颜色,比如有一组8个颜色,现在给定一个rgb格式的演示,找出它与8个颜色中的哪一个最接近,如果你需要做一个按照图片颜色搜索图片的程序,这个就非常有用了。
fromcolorsysimportrgb_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"),)) defto_hsv(color): """convertscolortuplestofloatsandthentohsv""" returnrgb_to_hsv(*[x/255.0forxincolor])#rgb_to_hsvwantsfloats! defcolor_dist(c1,c2): """returnsthesquaredeuklidiandistancebetweentwocolorvectorsinhsvspace""" returnsum((a-b)**2fora,binzip(to_hsv(c1),to_hsv(c2))) defmin_color_diff(color_to_match,colors): """returnsthe`(distance,color_name)`withtheminimaldistanceto`colors`""" returnmin(#overalbestisthebestmatchtoanycolor: (color_dist(color_to_match,test),colors[test])#(distanceto`test`color,colorname) fortestincolors) color_to_match=(255,255,0) printmin_color_diff(color_to_match,colors)
希望本文所述对大家的Python程序设计有所帮助。