从rgb cod中寻找颜色名称的健壮方法

2024-10-03 13:27:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图写一个简单的函数,它基于RGB代码返回最接近的“参考”颜色的名称。 基于otherSO问题,我将RGB转换为CIE LAB,并计算输入颜色和参考颜色之间的距离。然后我在寻找最小的距离并选择相应的颜色。
不幸的是,建议的解决方案只能部分起作用。鉴于“深橙色”的颜色被解释为红色。 我试图改进它,并根据this的文章,将deltaE\u ciede76改为deltaE\u ciede94和deltaE\u 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()

Tags: httpscom距离颜色mainhtmlnprgb
1条回答
网友
1楼 · 发布于 2024-10-03 13:27:45

我不能评论,只是回答,但因为这是我的网站,我想评论

“你知道下一页他们是如何解决这个问题的吗?:https://convertingcolors.com/rgb-color-247_104_8.html-请向下滚动到“详细信息”部分

看看这个演讲和幻灯片;这有助于我实现这个功能: https://www.dotconferences.com/2018/11/david-desandro-read-color-hex-codes

相关问题 更多 >