Il modo migliore per mappare i colori RGB da HTML a LED

1

Ho collegato un LED RGB a un selettore di colori su una pagina Web e ho riscontrato l'ovvio problema che, sebbene il LED acquisisca valori a 8 bit (come HTML), la resa cromatica è molto diversa, quindi con le sfumature più sottili i valori dei LED perché il colore è molto diverso dai valori HTML.

Il metodo forza bruta dovrebbe essere per me avere una tabella di ricerca sul server web per mappare i due gruppi di valori, ma idealmente piacerebbe farlo in modo più elegante.

Prima di iniziare a elencare tutte le mie 101 idee per fare questo mi chiedevo se qualcun altro avesse riscontrato il problema, il gioco finale sarebbe stato in grado di astrarre il rendering dei colori dei diversi LED e renderlo disponibile come servizio web (Valore HTML e ID dispositivo inserito, valore LED escluso).

    
posta back_ache 19.08.2014 - 14:23
fonte

3 risposte

2

Invece di usare una tabella per memorizzare la mappatura, prendi in considerazione la costruzione di una "curva" per essa: una funzione matematica per calcolare le conversioni. Ci sono infiniti modi per farlo, ma puoi probabilmente scegliere qualcosa di semplice come Béziers o polinomi. La curva avrà alcuni parametri sconosciuti con cui dovrai giocare per ottenere i risultati corretti ("calibrazione").

Ad esempio, una curva molto semplice sarebbe:

R = r ^ a

dove r è il componente rosso originale (ridimensionato nell'intervallo da 0 a 1) e R è il nuovo componente rosso (ridimensionato allo stesso intervallo da 0 a 1). Il numero a è un parametro che può essere utilizzato per la calibrazione (può variare da 0 a ∞).

Nota che i colori HTML sono a 24 bit, mentre i tuoi LED sono a 8 bit, quindi dovrai eseguire un downsampling. In questo modo si aggiunge solo una piccola complicazione alla formula di conversione in precedenza. Dovrai capire la palette utilizzata dal sistema a 8 bit e arrotondare i tuoi valori a quei colori (non sono necessarie tabelle di ricerca a meno che la tavolozza non sia veramente eccentrica).

    
risposta data 19.08.2014 - 15:57
fonte
1

Il tuo problema è che stai cercando di mappare colori a 24 bit su output a 8 bit (o input per il tuo LED), dove le tue gamme di colori sono molto più ridotte - e probabilmente fornisci solo un segmento del codice attuale al tuo LED. Per capirlo meglio, leggi questo articolo di Wikipedia e presta particolare attenzione ai "colori sicuri per il web", perché alla fine questo è cosa devi fornire al tuo driver LED.

Per fornire effettivamente all'utente un'opzione realistica, puoi provare a utilizzare questo selettore di colori a 8 bit o uno simile con cui ti senti a tuo agio, o addirittura implementa il tuo, e guarda se questo fa il trucco.

    
risposta data 19.08.2014 - 15:08
fonte
0

Questo sarebbe impossibile da fare direttamente, perché dipende strongmente dalla calibrazione del display e dal tipo di LED che si sta utilizzando. E anche dal modo diverso in cui l'occhio umano vede i colori.

Un modo in cui penso sarebbe possibile fornire la propria "calibrazione". Mostra all'utente più domande in cui ogni domanda attiva un colore sul LED e visualizza più colori. Quindi fai scegliere il colore all'utente, che si chiude sul LED. Quindi avrai alcuni dati da cui puoi costruire la curva / tabella di calibrazione. Sarebbe anche una buona idea fare nuove domande basate sulla calibrazione precedente, quindi l'utente convergerà in calibrazione, che rappresenterà il suo display.

    
risposta data 19.08.2014 - 14:28
fonte

Leggi altre domande sui tag