我想要构建一个类似这个http://labs.ideeinc.com/multicolr的工具,但我不知道他们使用哪种算法,有人知道吗?
我想要构建一个类似这个http://labs.ideeinc.com/multicolr的工具,但我不知道他们使用哪种算法,有人知道吗?
最小距离比较
。从距离计算开始。在3维中,我认为它是:
SQRT((x1-x2)^2 + (y1-y2)^2 + (z1-z2)^2)
对于您的目的,您将具有多于3个维度,因此将具有更多术语。4位直方图将具有16个术语,8位直方图将具有256个术语,等等。请记住,这种数学很慢,因此不要实际执行SQRT
部分。如果您将图像大小归一化到足够小,例如10,000个像素,则只需计算值0..10,0000的x^2
。预先计算一个从0..10,000中x取值的x^2
的查找表。然后您的计算将变得快速。
当您从调色板中选择颜色时,只需使该颜色的直方图= 10,0000。当选择2个时,制作一个颜色1=5000,颜色2=5000等的直方图。
最后,您将不得不添加一些调整因素,以使应用程序与现实世界相匹配,但是您将通过测试找到这些因素。