假设我们有一个格式为(1,n)像素的图像(r,g,b)。
我们现在可以选择格式(r,g,b)的X颜色来生成第二个相同大小的图像。 这些X颜色中的每一种都代表n / x自由选择新图像的像素。
现在我们通过遍历两个图像上[1..n]的每个像素对并总结它们的色差sqrt(sqr(R1-R2)来计算从原始图像到新生成图像的平方偏差+ SQR(G1-G2)+ SQR(B1-B2))。
现在我们假设我们分配了所有的X颜色,这样这个平方偏差的总和是最小的。
我的问题是:如何在完美分布后找到完美的X颜色,与其他颜色组相比,我们的方差最小?
如果某些信息缺失或不清楚(由于我的英语不好),请告诉我。
谢谢!
PS: 为了更好地理解,我添加了一个X = 4的示例。颜色的分布几乎是最佳的,但我确信我没有选择完美的4种颜色来表示原始图像。
不幸的是,我没有发布图片的声誉,所以我添加了链接 Before-After example for X=4
答案 0 :(得分:2)
问题称为color quantization,即给定n
输入颜色并且最多给出m < n
个输出颜色,找到最佳的颜色值分配,使总颜色误差总和最小
最佳量化是NP hard,大致意味着没有已知的算法在一般情况下有效,并且不必尝试所有可能的组合。
有 - 然而 - 各种近似算法,其中大多数基于聚类算法,因为问题基本上等于在{C>}场中定位m
点。 n
指出(少数)m
点与所有(多个)n
点之间的距离总和最小。
另请注意,在RGB空间中使用欧几里德距离绝不是确定colorimetric color difference的良好衡量标准。