Tim*_*Tim 5 php mysql algorithm colors
我们有一个数据库表,我们管理一系列颜色.在此表中,我们为颜色保存以下属性:
每个值都在一个单独的字段中.我们现在想要实现的是找到最佳匹配颜色,如果您搜索这些值.
用户可以选择他想要搜索哪些颜色模型.我们的第一种方法是使用范围在数据库中搜索这些值(因此,如果用户搜索红色(RGB)的值150,我们将使用查询数据库BETWEEN 100 AND 200.
结果不是很好,因为组合的值总是与搜索它们并找到适当的行时不同.
有没有更好的方法来搜索我们的数据库以获得最佳匹配颜色?
"最佳匹配"的解释:
我们想找到最近的颜色,所以如果我们搜索红色,我们只想要红色.也许可以计算匹配的百分比,这样用户就可以选择是否必须是100%匹配,或者50%是否也可以.
我之前做过一个类似的项目......他们使用一个简单的公式来确定哪种颜色最接近......
说Rm,Gm,Bm是要匹配的颜色......并且Rx,Gx,Bx是另一种颜色......
因此,我们计算e = (Rm-Rx)^2 + (Gm-Gx)^2 + (Bm-Bx)^2......具有最低值的那个被认为是接近......我们的目标是找到具有(Rx,Gx,Bx)最小值的e。
我们的查询看起来像这样Select ColorName from Colortable order by (Rm-Rx)*(Rm-Rx)+...(Bm-Bx) TOP 10(我也不记得确切的查询......)
这为您提供了前 10 名最匹配的颜色......
注意:我不支持这个公式,但它在实际情况下效果很好。