我正在尝试编写一个简单的函数,该函数基于RGB代码返回最接近的“参考”颜色的名称。
基于other SO问题,我将RGB转换为CIE LAB,并计算输入颜色和参考颜色之间的距离。然后,我正在寻找最小的距离,并采用相应的颜色。
不幸的是,建议的解决方案仅部分起作用。鉴于“深橙色”颜色被解释为红色。
我试图进行改进,并根据this的文章将 deltaE_ciede76 更改为 deltaE_ciede94 和 deltaE_ciede00 。
您是否知道他们如何在下一页解决此问题? https://convertingcolors.com/rgb-color-247_104_8.html-请向下滚动至“详细信息”部分
它写为:颜色可以描述为深饱和橙色。
您能给我些建议吗?
简单程序:
import numpy as np
from skimage.color import rgb2lab, deltaE_ciede94
def identify_colour(rgb_colour):
reference = {
"red" : [53.23, 80.11, 67.22], # https://convertingcolors.com/cielab-color-53.23_80.11_67.22.html
"orange": [74.93, 23.94, 78.96], # https://convertingcolors.com/cielab-color-74.93_23.94_78.96.html
}
input_colour = rgb2lab([[rgb_colour / 255]])
selected = None
d = {}
for colour, value in reference.items():
basic_lab = np.asarray(value)
distance = deltaE_ciede94(basic_lab, input_colour)
d[colour] = distance
selected = min(d, key=d.get)
print("selected: ", selected)
print(d)
return selected
def main():
rgb_colour = np.array([247, 104, 8]) # https://convertingcolors.com/rgb-color-247_104_8.html
identify_colour(rgb_colour)
if __name__ == '__main__':
main()
答案 0 :(得分:1)
我无法发表评论,只能回答,但因为这是我要评论的网站
“您是否知道他们如何在下一页上解决此问题?:https://convertingcolors.com/rgb-color-247_104_8.html-请向下滚动至“详细信息”部分。”
看一下这次演讲和幻灯片;这帮助我实现了此功能: https://www.dotconferences.com/2018/11/david-desandro-read-color-hex-codes