假设我有两个Lab颜色空间的颜色:
颜色1:L=81,a=-8,b=74 颜色2:L=64,a=-14,b=3
我想在它们之间生成n个颜色。比如说n=100或者尽可能多的颜色。
我知道RGB和HSV颜色渐变算法。但我想在LAB颜色空间中生成渐变。我不想将颜色转换为HSV或RGB,因为不同的颜色模型会生成不同的渐变。
我找到了一个链接,可以在Lab和其他颜色模型中生成渐变:http://davidjohnstone.net/pages/lch-lab-colour-gradient-picker 我想在Java中做类似的事情,但语言并不重要,我只需要理解背后的逻辑和算法。
我这样做主要是为了将扫描的颜色值与我拥有的5种颜色的图表匹配。所以,我必须首先使用渐变生成所有这些5种颜色之间的颜色,并比较其他颜色以找到最接近的颜色。(为了比较,我使用CIEDE2000 Delta-e方法)。但我想这是次要的问题。
进一步补充我的问题的最后部分,
我想我必须生成一个渐变,因为我想在我拥有的图表序列中找到样本颜色的确切位置。
例如,我有6种绿色阴影(从浅到深),每个对应于0到450毫克之间的特定数字数据,如下所示(带有它们的LAB值):
现在我想生成它们之间的所有颜色,并找到扫描颜色的位置并返回 mg 值。 如果我的颜色恰好在 Color 1 和 Color 2 之间,则它将返回 15 mg,否则,如果它更接近 Color 2,则将返回 28.5 mg,依此类推。希望这样可以清楚我要达到的目的。
颜色1:L=81,a=-8,b=74 颜色2:L=64,a=-14,b=3
我想在它们之间生成n个颜色。比如说n=100或者尽可能多的颜色。
我知道RGB和HSV颜色渐变算法。但我想在LAB颜色空间中生成渐变。我不想将颜色转换为HSV或RGB,因为不同的颜色模型会生成不同的渐变。
我找到了一个链接,可以在Lab和其他颜色模型中生成渐变:http://davidjohnstone.net/pages/lch-lab-colour-gradient-picker 我想在Java中做类似的事情,但语言并不重要,我只需要理解背后的逻辑和算法。
我这样做主要是为了将扫描的颜色值与我拥有的5种颜色的图表匹配。所以,我必须首先使用渐变生成所有这些5种颜色之间的颜色,并比较其他颜色以找到最接近的颜色。(为了比较,我使用CIEDE2000 Delta-e方法)。但我想这是次要的问题。
进一步补充我的问题的最后部分,
我想我必须生成一个渐变,因为我想在我拥有的图表序列中找到样本颜色的确切位置。
例如,我有6种绿色阴影(从浅到深),每个对应于0到450毫克之间的特定数字数据,如下所示(带有它们的LAB值):
Color 1: 78, -10, -71 [0 mg]
Color 2: 73,-14,44 [30 mg]
Color 3: 71, -19, 53 [80 mg]
Color 4: 67, -18, 31 [160 mg]
Color 5: 69, -2, 29 [300 mg]
Color 6: 61, -14, 3 [450 mg]
现在我想生成它们之间的所有颜色,并找到扫描颜色的位置并返回 mg 值。 如果我的颜色恰好在 Color 1 和 Color 2 之间,则它将返回 15 mg,否则,如果它更接近 Color 2,则将返回 28.5 mg,依此类推。希望这样可以清楚我要达到的目的。