Come calcolare altri colori con la stessa leggerezza percepita di un determinato valore di grigio?


11

Questo è legato a una domanda che ho posto su tex.stackexchange , che ha un aspetto colorato. Il risultato di questa domanda è la seguente immagine:
valore e contrasto di saturazione

Ho disegnato una serie di quadrati grigi a sinistra, con un ramo rosso in partenza a destra. L'obiettivo è avere diversi quadrati rossi con una saturazione diversa, ma tutti con lo stesso valore di grigio. Nel modello di colore hsv, hanno tutti lo stesso v, ma quando converto l'immagine in scala di grigi usando Gimp, non vengono convertiti nello stesso grigio. Inoltre l'impressione visiva è che i quadrati rossi a destra siano più scuri di quelli a sinistra.

Come posso, dato un certo grigio, calcolare i colori con una certa tonalità e lo stesso valore di grigio (o, ancora meglio, con la stessa impressione di grigio )? I colori utilizzati nell'immagine sono tutti calcolati, quindi preferisco soluzioni che includano anche calcoli.

Potrei aver usato termini sbagliati qui - Sono un ingegnere meccanico, quindi per favore correggimi dove appropriato, o chiedi chiarimenti.


Il suggerimento di utilizzare lo spazio colore Lab mi ha portato ad alcune conclusioni:

  • Posso usare il Lvalore del modello Lab per impostare una sorta di valore di grigio per colori diversi. Nel modello hsv questo è v. Non sono sicuro di poter effettivamente confrontare quelli, ma lo farò fino a quando qualcuno non si lamenta.

  • Nel modello hsv posso anche impostare un po 'di "colore di base" (una tonalità), che non trovo nel modello Lab.

  • Nel modello hsv, ho 2 costanti (nell'immagine sopra: h= 0, v= 0,375) e una variabile ( s).

  • Fino a questo punto, ho solo una costante nel modello Lab. Questo non è abbastanza per generare qualcosa di simile a quello che ho già fatto con il modello hsv.

Immagino sia tempo di esperimenti.


Fatto! Dopo aver eseguito il codice di conversione, è stato semplice. Il primo passo è stato definire il "bersaglio rosso" sulla destra. Ho calcolato RGB2Lab (255,0,0) e modificato il valore L del risultato nella L desiderata nella figura (L = 62,5). I colori vengono calcolati usando un'interpolazione lineare nello spazio Lab da (L, 0,0) a (L, aTarget, bTarget). Il risultato:

inserisci qui la descrizione dell'immagine

Grazie!


2
Ci sono un sacco di cose che potresti trovare utili nella voce di Wikipedia, ma ho trovato ( en.wikipedia.org/wiki/HSL_and_HSV#Disvantaggi ) di possibili ripercussioni sul tuo problema, in particolare: "Perché HSL e HSV sono definiti esclusivamente con riferimento ad uno spazio RGB, non sono spazi colore assoluti: per specificare un colore è necessario riportare non solo i valori HSL o HSV, ma anche le caratteristiche dello spazio RGB su cui si basano, inclusa la correzione gamma in uso. "
horatio,

Quindi l'idea ovvia è quella di specificare lo spazio colore gamma e RGB (se possibile!) Quando si tenta una conversione.
horatio,

2
Un'idea ancora migliore è RGB → L * a * b * → RGB; poiché Lab è progettato per approssimare la visione umana e la Leggerezza è una delle sue dimensioni.
Jari Keinänen,

@koiyu Lab è come suggerisco di trovare anche corrispondenze grigie. (Mi hai battuto! Stavo deridendo la risposta qui sotto quando hai pubblicato questo.)
Nick,

Stavo evitando la discussione problematica sulla percezione del colore :)
horatio

Risposte:


10

Puoi usare lo spazio colore Lab per trovare le tue corrispondenze. I colori con lo stesso valore L del grigio target appariranno quasi identici quando convertiti in scala di grigi.

Ad esempio, un grigio Lab di (50, 0, 0) apparirà molto simile ai rossi Lab (50, 30, 0), (50, 50, 30) e (50, 50, 50) quando convertito in in scala di grigi. Gli esempi seguenti usano Photoshop (Immagine> Modalità> Scala di grigi) per convertire da Lab a grigio: Colori Lab originali
Convertito in scala di grigi


Sembra qualcosa che voglio! Grazie. Tuttavia, non posso usare Lab direttamente con il mio set di strumenti, quindi ho bisogno di un qualche tipo di algoritmo di conversione. Koiyu ha suggerito di convertire RGB -> Lab -> RGB, e proverò a implementarlo.
Christoph,

1
Ho trovato quanto segue: http://www.brucelindbloom.com/index.html?Equations.html . Non so se le conversioni siano corrette e ho l'impressione che sia ancora necessaria della magia.
Christoph,

Queste funzioni di conversione sembrano essere utili.
Nick,

E in effetti sembrano un po 'più semplici ...
Christoph,

@Nick Posso fare tutti i calcoli con una calcolatrice, il che è buono. Tuttavia, devo implementare le conversioni del modello di colore nel mio documento LaTeX, il che mi fa venire il mal di testa qua e là. Al termine, posterò il risultato e accetterò la tua risposta.
Christoph,

4

Quindi, i consigli di cui sopra di Nick funzionano solo per il 50% di luminanza. Se si applica qualsiasi altro valore L uguale a colori diversi, il risultato grigio è diverso.

Ci deve essere una matematica per quello, ma puoi farlo sullo schermo a occhio.

Se crei tutti i colori che desideri e poi poni un elemento grigio (illustratore) o un livello (photoshop) con la sua modalità di trasparenza su "colore" (o saturazione o tonalità), tutti gli elementi sottostanti renderanno visibile la sua luminosità.

Dovresti assicurarti che tutti i colori sotto quell'elemento grigio abbiano una saturazione di 100, o avrai risultati grigio-ish, piuttosto che bei colori.

Ora, il problema è: con tutti i metodi sopra, renderai tutti gli elementi la "stessa luminosità all'interno del profilo RGB usato", cioè lo stesso grigio per il "dispositivo" selezionato, e la parte peggiore: l'occhio è un dispositivo e ci sono differenze.

Puoi mostrare gli stessi colori a persone diverse e non troveranno la stessa "uniformità" degli altri.

Aggiungilo al fatto che stai impostando quei colori come "stessa luminosità" nel dispositivo selezionato e non solo sono tutti "stimati", non appena lo mostri in un dispositivo diverso, l'effetto fallirà, perché ogni dispositivo ha la sua capacità di illuminare gli elementi rossi verdi o blu con intensità diverse, quindi potresti ottenere, ad esempio, elementi rossi.

Inoltre, se si effettua una fusione da un grigio a un colore come suggerito sopra, è necessario assicurarsi che l'elemento grigio abbia almeno 1/255 minimo in ogni canale (ovvero non più grigio) o che il software consideri l'origine grigia come 0-tonalità, che ti darà toni medi rosso-ish (perché una fusione tra 0 tonalità e qualsiasi altro colore sarà a metà strada verso un rosso)

Sono un esperto di prestampa dagli anni '90 e il mio consiglio è: se vuoi andare con la matematica, dovresti usare la matematica per l'occhio (capacità visive) e quelle per il dispositivo che mostrerai quei numeri su.

In bocca al lupo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.