我有一组 RGB 十六进制颜色。我想找到一种快速而肮脏的方法来按颜色相似性和阈值对它们进行分组。
规格:
又快又脏:
$dr = $red1 - $red2;
$dg = $green1 - $green2;
$db = $blue1 - $blue2;
$fr = 2; // may be adjusted
$fg = 4; // "
$fb = 1; // "
$distance_squared = $fr * $dr * $dr + $fg * $dg * $dg + $fb * $db * $db;
然后,您将$distance_squared
与阈值的平方进行比较。可以调整因子(特别是蓝色可能会得到更高的因子),以及它们的总和(为了匹配阈值)
选择一个颜色空间,并将“相似性”定义为例如两种颜色坐标之间的欧几里得距离。例如,HSL/HSV 可能是比 RGB 更好的选择。