我有一个RGB十六进制颜色数组。 我想找到一种快速而肮脏的方法,通过颜色相似性和阈值对它们进行分组。
规范:
答案 0 :(得分:3)
$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
与阈值的平方进行比较。可以调整因子(特别是蓝色可能会得到更高的因子),以及它们的总和(为了匹配阈值)
答案 1 :(得分:1)
选择color space,并将“相似度”定义为例如欧几里德两种颜色坐标之间的距离。例如,HSL / HSV可能是比RGB更好的选择。