Lichtfrequenz in RGB umwandeln?
Kennt jemand eine Formel für die Umwandlung einer Licht-Frequenz zu einem RGB-Wert?
InformationsquelleAutor der Frage Shaul Behr | 2009-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kennt jemand eine Formel für die Umwandlung einer Licht-Frequenz zu einem RGB-Wert?
InformationsquelleAutor der Frage Shaul Behr | 2009-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine ausführliche Erläuterung des gesamten conversion-Prozess: http://www.fourmilab.ch/documents/specrend/. Source-code im Lieferumfang enthalten!
InformationsquelleAutor der Antwort Stephen Mesa
Für faule Jungs, die (wie ich), ist hier eine Implementierung in java-der code, der sich in @user151323 's Antwort (das ist nur eine einfache übersetzung aus dem pascal code, der sich in Spectra-Lab Report):
Durch die Art und Weise, dies funktioniert sehr gut für mich.
InformationsquelleAutor der Antwort Tarc
Du redest Umwandlung von Wellenlänge zu einem RGB-Wert.
Schau mal hier, wird wahrscheinlich die Antwort auf Ihre Frage. Deine haben ein Dienstprogramm, dies zu tun mit der source-code sowie einige Erklärungen.
WaveLengthToRGB
InformationsquelleAutor der Antwort
Dies ist zwar eine alte Frage und bekommt schon eine Handvoll gute Antworten, wenn ich versuchte, Sie zu implementieren, die eine solche Konvertierung Funktionalität in meiner Anwendung war ich nicht zufrieden mit den algorithmen, die bereits hier aufgeführt und habe meine eigene Forschung, die gab mir einige guten Ergebnis. So, ich werde veröffentlichen eine neue Antwort.
Nach einigen Untersuchungen stieß ich auf dieses Papier, Einfache Analytische Näherungen
die CIE XYZ Color Matching Funktionen, und versucht zu erlassen, die eingeführt multi-lobe stückweise Gauß-fit-Algorithmus in meiner Anwendung. Das Papier beschrieb nur die Funktionen zum konvertieren einer Wellenlänge, die zu der entsprechenden XYZ-Werte, also ich habe implementiert eine Funktion zum konvertieren von XYZ zu RGB-in den sRGB-Farbraum und kombinierte Sie. Das Ergebnis ist fantastisch und teilenswert:
mein code ist geschrieben in Java 8, aber es sollte nicht schwer sein, die Portierung auf ältere Versionen von Java und anderen Sprachen.
InformationsquelleAutor der Antwort Haochen Xie
Allgemeine Idee:
Schritte 1 und 2 können variieren.
Gibt es verschiedene Farb-matching-Funktionen, verfügbar als Tabellen oder als analytische Näherungen (vorgeschlagen von @Tarc und @Haochen Xie). Tabellen sind am besten, wenn Sie eine glatte exakte Ergebnis.
Gibt es keinen einzelnen RGB-Farbraum. Mehrere Transformationsmatrizen und verschiedene Arten der gamma-Korrektur kann verwendet werden.
Unten ist der C# - code, den ich kam mit vor kurzem. Es verwendet lineare interpolation über die "CIE 1964 normalbeobachter" Tisch und sRGB matrix + gamma-Korrektur.
Ergebnis für den 400-700 nm-Bereich:
InformationsquelleAutor der Antwort amartynov
Ich denke, ich könnte genauso gut Folgen, bis mein Kommentar mit einer formalen Antwort. Die beste option ist die Verwendung der HSV-Farbraum - obwohl der Farbton bezeichnet die Wellenlänge, es ist nicht eine eins-zu-eins-Vergleich.
InformationsquelleAutor der Antwort whatnick
Habe ich einen linearen fit der bekannte hue-Werte und Frequenzen (Drop-out-rot und Violett, weil Sie so weit in der Frequenz-Werte, die Sie neigen, die Dinge ein wenig), und ich habe eine grobe Umrechnung Gleichung.
Geht es wie
Frequenz (in THz)=474+(3/4)(Hue-Winkel (in Grad)
Habe ich versucht, um zu schauen und zu sehen, ob jemand mit dieser Gleichung, aber ich habe nicht gefunden was als der Mai 2010.
InformationsquelleAutor der Antwort David Elm