C’è un modo semplice per confrontare quanto due colors sono vicini l’uno all’altro

C’è un modo per confrontare quanto vicini due colors sono tra loro? Se dire che entrambi sono blu.
Al momento il modo in cui li confrontiamo è assegnare manualmente ogni colore ansible a una famiglia di colors (rosso, verde, blu …). E poi basta confrontare le stringhe 🙂
Ma sicuramente quell’attività manuale può essere assegnata ad un piccolo algoritmo pulito.

Delta-e , è un numero singolo che rappresenta la “distanza” percepita tra due colors. Più basso è il numero, più simili sono i colors per l’occhio umano.

Ci sono diversi modi per calcolarlo … CIE76 (aka CIE 1976 o dE76) è il più popolare.

  • CIE76
  • CMC l: c
  • dE94
  • dE2000

Ognuno fa le cose in un modo diverso, ma per la maggior parte tutti richiedono di convertire in un modello di colore migliore (per confronto) di RGB.

Per CIE76 in pratica basta convertire i colors nello spazio colore LAB, quindi calcolare la distanza tridimensionale tra di loro.

Wikipedia ha tutte le formule: http://en.wikipedia.org/wiki/Color_difference

Puoi controllare il tuo lavoro con i calcolatori colore online:

  • CIE76
  • CMC l: c

Probabilmente vuoi convertire i colors in un modello HSL (tonalità, saturazione, luminosità) e quindi confrontare i valori all’interno delle soglie nell’ordine HSL. Se la tonalità è all’interno di una tolleranza considerata come “chiusa”, controllare la “prossimità” della saturazione e quindi la luminosità.

Non sono sicuro di alcun algoritmo, potresti prendere in considerazione la conversione dei valori RGB (rosso, verde, blu) in HSB (tonalità, saturazione, luminosità).

La tonalità è essenzialmente “colorata”, quindi è ansible confrontare semplicemente quanto sono vicini i valori di tonalità.

Vedi http://en.wikipedia.org/wiki/HSV_color_space