RGB 16 進色の配列があります。色の類似性としきい値でそれらをグループ化する手っ取り早い方法を見つけたいと思います。
仕様:
迅速かつ汚い:
$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
次に、しきい値の 2 乗と比較します。係数は調整される可能性があります (特に青はより高い係数を取得する可能性があります)、およびそれらの合計 (しきい値に一致させるため)
「ゆっくりとクリーンな」ソリューションについては、ここから始めます(より実用的なアプローチについては、ここから始めます)。
色空間を選択し、「類似度」を 2 つの色の座標間のユークリッド距離などとして定義します。たとえば、HSL/HSV は RGB よりも適切な選択かもしれません。