我认为您的问题应分为两个问题:
- 如何将颜色映射到n维笛卡尔空间中,并定义颜色之间的欧几里得距离函数,以使该距离反映人类观察者的差异。
- 给定n维长方体,请生成一系列点,以使到目前为止生成的任何两个点之间的最小欧几里得距离最大化。
现在的答案:
- 使用CIEDE2000色差公式计算色差。所述CIEDE2000公式是基于LCH颜色空间(光度,色度和色调)。LCH颜色空间表示为圆柱体(请参见此处的图像)。
但是,差异公式是高度非线性的。因此,不可能将颜色映射到正方形网格中,以至于欧几里得距离将产生CIEDE2000色差。
基于不太准确的模型,我们可以使用基于Lab颜色空间(L * a * b
*)的CIE76色差公式。我们可以直接在此色彩空间上使用欧几里得距离来测量差异。在RGB或CMYK值与L* a * b
之间没有转换的简单公式,因为RGB和CMYK颜色模型取决于设备。首先需要将RGB或CMYK值转换为特定的绝对颜色空间,例如sRGB或Adobe
RGB。该调整将取决于设备,但是来自转换的结果数据将与设备无关,从而允许将数据转换为CIE 1931颜色空间,然后转换为L * a * b
。此文章解释程序和公式。
- 对于L * a * b *颜色空间和CIE76色差公式-我们需要解决3D立方体的问题。
我相信您最好的策略是将多维数据集分为8个多维数据集,这将产生27个点。使用这些要点。现在将8个多维数据集中的每一个划分为另外8个多维数据集。对于每个多维数据集,已经使用了27个点中的12个,因此剩下15* 8个新点。在每个附加步骤n中,您可以生成15 * 8 ^ n个附加点。
每个步骤中设置的点应进行排序,以使两个连续点之间的最小距离最大化。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)