Forum: Mikrocontroller und Digitale Elektronik HSV-Spektrum anpassen / Farben verschieben


von Pete P. (nomispetrus)


Lesenswert?

Hallo zusammen,

ich habe eine uhr im 7Segment-Design mit WS2812B und ESP32 gebaut.
Die Zahlen können wahlweise mit einem Farbverlauf belegt werden, was 
ganz witzig aussieht. Ich lasse also einfach im HSV-Farbraum den H-Wert 
(abhängig von der Anzahl der LEDs) in passenden Schrittweiten hochzählen 
und bestimme so die Farbe für die einzelnen LEDs.

Allerdings stört mich die ungleichmäßige Farbverteilung im HSV-Farbraum, 
zum Beispiel besonders der nur sehr kleine Bereich im Orange und der 
ziemlich breite Bereich Türkis/Blaugrün.

Ich würde also gern speziell den Orange-Bereich etwas verbreitern und 
den Türkis-Bereich eben schmaler machen.

Hat jemand von euch sowas schon mal gemacht? Hat jemand zB schon 
Erfahrung, welchen Bereich ich wie anpassen muss? Speziell die Einzelnen 
Farbwinkel-Bereiche und wie weit ich diesen Bereich strecken/stauchen 
sollte wären sehr Interessant für mich, mit ausprobieren komme ich nicht 
so richtig vorwärts...

Mathematisch würde ich das wahrscheinlich mit Hilfe der 
Gradient-Palettes von FastLED lösen, das scheint mir hier relativ 
elegant machbar.

Hat jemand von euch Tips oder Ideen oder vielleicht sogar konkrete Werte 
für mich?

Vielen Dank an euch :)

Viele Grüße!

von Sebastian (Gast)


Lesenswert?

Ich dachte in FastLED gäbe es doch schon so eine Gamma-Spreizung?

LG, Sebastian

von Pete P. (nomispetrus)


Lesenswert?

Es gibt in FastLED ein "Regenbogen-Spektrum" wenn man mit den 
HSV-Methoden von FastLED arbeitet.
Für die Umrechnung von HSV zu RGB funktioniert das soweit auch gut, nur 
der umgekehrte weg (also RGB zu HSV) funktioniert nicht immer gut oder 
zuverlässig, speziell wenn die Farben nicht komplett gesättigt sind. Da 
ich aber für verschiedene Animationen auf die Umrechnung in beide 
Richtungen angewiesen bin, habe ich zur Umrechnung andere Funktionen, 
die sind dann aber eben leider ohne "Regenbogen-Spektrum"...

von Wolfgang (Gast)


Lesenswert?

Sebastian schrieb:
> Ich dachte in FastLED gäbe es doch schon so eine Gamma-Spreizung?

Was hat eine Gamma-Korrektur mit dem starken spektralen Überlapp der 
roten und grünen Zapfen im Auge (schmaler Grün-Rot Übergang = 
Orangebereich, breiter Blau-Grün Übergang bezogen auf die Wellenlänge) 
zu tun?
Die Gamma-Korrektur bezieht sich auf die Helligkeitswahrnehmung, aber 
nicht auf eine spektrale Breite der Farbempfindung.
https://de.wikipedia.org/wiki/Farbwahrnehmung#Sinneszellen_der_Netzhaut

von Helmut -. (dc3yc)


Lesenswert?

Pete P. schrieb:
> Allerdings stört mich die ungleichmäßige Farbverteilung im HSV-Farbraum,

Da haben sich wahrscheinlich ein paar Sankt-Pauli-Anhänger dazugesellt. 
Durch ihre Brauntöne bringen sie zum Blau-Schwarz-Weiß einen rötlichen 
Farbstich dazu. Fazit: auf's nächste Derby warten, wer die Oberhand 
behält!

von hufnala (Gast)


Lesenswert?

Hi, schon mal probiert Rot und Grün bei RGB mal tauschen vor der Ausgabe 
oder
Rot, Grün, Blau mit unterschiedlichen Offsets ausgeben analog einem 
Farbequilizer?

Hab hier eine Regenbogelampe als Stripe die recht ausgeglichen scheint. 
Der Algorithmus kam vor ein paar Jahren aus dem led-styles Forum. Läuft 
auf nem Mega8 oder so, sollte also kein Thema für Deinen uC sein.

//hufnala

von Pete P. (nomispetrus)


Lesenswert?

hufnala schrieb:
> Hi, schon mal probiert Rot und Grün bei RGB mal tauschen vor der Ausgabe
> oder
> Rot, Grün, Blau mit unterschiedlichen Offsets ausgeben analog einem
> Farbequilizer?
>
> Hab hier eine Regenbogelampe als Stripe die recht ausgeglichen scheint.
> Der Algorithmus kam vor ein paar Jahren aus dem led-styles Forum. Läuft
> auf nem Mega8 oder so, sollte also kein Thema für Deinen uC sein.
>
> //hufnala

Danke für die Ideen!
Rot und Grün tauschen klappt leider nicht, ich steuere ja auch von 
extern und da sollten die Zielfarben ja halbwegs stimmen. Und der 
Farbverlauf sieht nachher wohl auch nicht „stetig“ (oder wie man das 
auch immer nennt…) aus, wenn 2 Grundfarben vertauscht sind.

Aber das mit den Offsets klingt interessant, leider verstehe ich den 
Ansatz grad noch nicht. Was ist denn ein Farbequilizer? Hast du 
vielleicht einen CodeSchnipsel dafür?

von Wolfgang (Gast)


Lesenswert?

hufnala schrieb:
> Rot, Grün, Blau mit unterschiedlichen Offsets ausgeben

Offset ist nur eine schlechte Approximation für eine Gamma-Korrektur

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.