Warum werden reine Farben (Rot/Grün/Blau) bei der Rohwandlung zu einer Farbmischung?

Bei dem Versuch zu verstehen, wie RAW konvertiert wird, habe ich ein synthetisches RAW-Bild erstellt, das einen roten, grünen und blauen Verlaufsstreifen mit einem Gamma von 2,2 ( dng ) aufweist. Ich habe das synthetische Raw erstellt, indem ich ein Bild von einer Nikon D200 in unkomprimiertes DNG konvertiert und dann die Bilddaten mit Python überschrieben habe.

Wenn ich es in JPEG umwandle, würde ich erwarten, dass es die reinen Farben beibehält, wie im Bild unten:

Erwartetes Ergebnis

Ich habe dann Lightroom und Lightzone verwendet, um dieses Bild mit Standardeinstellungen und Weißabgleich auf Tageslicht in JPEG zu konvertieren. Dies sind die Ergebnisse, wobei vor allem Rot und Blau andere und eigene Farben enthalten.

Lichtraum:

Lightroom-Bild

Lichtzone:

Lightzone-Bild

Mein Verständnis des Weißabgleichs war, dass es nur eine Zahl war, mit der jede Farbe multipliziert, aber nicht gemischt wurde. Das scheint falsch zu sein. Kann mir jemand erklären, warum die Farben nicht "rein" bleiben?

Das Anwenden des Weißabgleichs auf ein Bild, das aus reinen (wie bei einer einzelnen R-, G- oder B-Komponente ungleich Null) besteht, führt fast immer zu nicht reinen Farben, da der Effekt des Weißabgleichs darin besteht, zu subtrahieren (oder zu addieren, je nachdem, wie Sie aussehen). dabei) einen bestimmten Farbstich, um es wärmer (mehr Rot/Orange/Gelb) oder kühler (mehr Blau/Violett) zu machen und die Grün-Magenta-Balance anzupassen. Jede davon ist eine Farbkorrektur, die Ihre "reinen" Farben in nicht "reine" Farben umwandelt. Es klingt für mich, als hätten Sie beim Weißabgleich eher an eine Tonwertkurve oder Gamma gedacht ...
Es stimmt, dass man Farben addiert und subtrahiert, wenn man bereits einen Weißabgleich gewählt hat, aber warum passiert das auch bei einem Rohbild? Ich dachte, der Weißabgleich eines Rohmaterials bestand darin, eine Temperatur in K mithilfe von Mathematik in Multiplikatoren für lineares r, g und b umzuwandeln. Kennen Sie eine Ressource, die etwas anderes erklärt?
Stellen Sie sicher, dass dies kein Farbraumproblem ist .
Es ist ein Fehler, die R-, G- oder B-Werte in einer Kamera-RAW-Datei als „reine“ Farben zu betrachten. Sie sind es nicht nur nicht, sie können es auch nicht sein.

Antworten (2)

Hier sind einige Ursachen für Nicht-Null-Werte, von denen Sie erwarten, dass sie null sind. Die relevantesten für Ihr Problem werden zuerst aufgelistet.

  • Ihr synthetisches Rohmaterial berücksichtigt nicht das Eingangsfarbprofil der Kamera , das darauf basiert, wie die spezifischen Farbfilter in der Bayer-Matrix beim Fotografieren von Kalibrierungszielen mit Lichtquellen interagieren (mit einem Objektiv, das möglicherweise eine eigene Farbverschiebung aufweist). Hier ist das Histogramm und die Ausgabe mit dem D200-Profil (mit RawTherapee):

    Histogramm: DCP

    Ergebnis: DCP

    Vergleichen Sie mit, wenn kein Kameraprofil verwendet wird.

    Histogramm: sRGB → sRGB

    Ergebnis: sRGB → sRGB

    Siehe RawPedia: Was sind DCP-Profile und warum brauche ich sie?

  • Einige Leute bezeichnen es als ihre „ Farbwissenschaft “, wie Hersteller ihre Kameras so gestalten, dass Farben so wiedergegeben werden, dass sie auf angenehme Weise von der „Realität“ abweichen .

Diese werden in Kameras über Einstellungen konfiguriert, die oft als „Farbprofile“ oder „Filmsimulationen“ bezeichnet werden. Sie haben oft Namen wie Standard, Neutral, Vivid, Portrait, Landscape und Flat. Einige RAW-Prozessoren versuchen möglicherweise, diese Profile in einer Ebene der Farbmodifikation zu replizieren, die von Farbkorrekturprofilen, Kameraeingangsfarbprofilen und Farbräumen getrennt ist.

  • Der Arbeitsfarbraum stimmt möglicherweise nicht mit dem Ausgabefarbraum überein.  Stellen Sie sicher, dass Arbeits- und Ausgabefarbraum übereinstimmen . Wenn dies nicht möglich ist, kann die Auswahl einer anderen Konvertierungsmethode zu „besseren“ Ergebnissen führen, da Farben außerhalb des Farbumfangs von unterschiedlichen Algorithmen unterschiedlich konvertiert werden. Hier sind Histogramme zur Veranschaulichung:

    • Adobe-RGB → sRGB:

      Histogramm: Adobe RGB → sRGB

    • sRGB → sRGB:

      Histogramm: sRGB → sRGB

Weniger relevante Möglichkeiten:

  • Die Glanzlichter-Wiederherstellung mit CIELab Blending kann die Farben am hellen Ende der Farbverläufe beeinflussen. Andere Methoden (Blend, Color Propagation und Luminance Recovery) hatten keine offensichtliche Auswirkung auf die Farbverläufe.

    Ergebnis: CIELab-Mischung

  • Der Demosaicing-Algorithmus kann die Interpretation von Farben beeinflussen.

    Siehe RawPedia: Demosaicing

  • Einige Programme fügen Rauschen oder Dithering hinzu , wenn sie Farben von höheren Bittiefen in 8-Bit/Kanal konvertieren.

... die Rotverschiebung geht in Richtung der tatsächlichen Farbe des "roten" Filters in einer typischen Bayer-Maske - irgendwo zwischen Gelb und Orange. – Michael C

Idealerweise würden "reine" Eingabefarben zu Ausgabefarben führen, die dem Bayer-Filter der ausgewählten Kamera entsprechen. In der Praxis passiert das jedoch nicht .

Die Farbverschiebung scheint durch Kameraprofile verursacht zu werden, die von den Raw-Prozessoren verwendet werden, zusammen mit anderen beitragenden Faktoren. Sie werden erstellt, indem Fotos von Kalibrierungszielen verarbeitet werden, die mit echten Objektiven unter verschiedenen Lichtquellen aufgenommen wurden, wie bei RawPedia beschrieben . Der Farbfilter trägt also insofern bei, als er an der Profilerstellung beteiligt ist. Jedes Programm erzeugt jedoch unterschiedliche Ausgaben, sodass nicht gesagt werden kann, welche davon sich, wenn überhaupt, zu den tatsächlichen Farben des in einer bestimmten Kamera verwendeten Bayer-Filters hin oder von ihnen weg verschoben haben .

Wählen Sie unabhängig von der tatsächlichen Farbe im Bayer-Array ein anderes Profil aus, und die Ausgabefarben ändern sich. Verwenden Sie ein anderes Programm, das andere Profile verwendet, und die Farben ändern sich. Verwenden Sie ein synthetisches Profil, und die Farben können völlig unabhängig von einem echten Bayer-Array sein.

Eine weitere Ebene der Farbmodifikation, die die tatsächlichen Farben des Bayer-Arrays vom Ausgabebild trennt, sind "Farbprofile", wie z. B. Standard, Neutral, Lebhaft, Hochformat, Landschaft, Flach, die einige Rohprozessoren möglicherweise zu replizieren versuchen.

Lightroom-Bild Lightzone-Bild RawTherapy-Bild

Meine Vermutung für die Rot-Orange-Verschiebung ist, dass am gesättigten Ende Wiederherstellungsalgorithmen für Hervorhebungen eingreifen (in diesem Fall schlecht, aber sie sind nicht für dieses erfundene Szenario gedacht).
@mattdm Die Hervorhebungswiederherstellung mit CIELab-Mischung wirkt sich auf die hellen Enden der Farbverläufe aus. Die anderen Algorithmen scheinen keinen Einfluss auf die Farbverläufe zu haben.
@mattdm interessant, dass die Rotverschiebung in Richtung der tatsächlichen Farbe des "roten" Filters in einer typischen Bayer-Maske geht - irgendwo zwischen Gelb und Orange.
Das alles deckt sich mit der Aussage, dass es sich „an den spezifischen Farben orientiert, die in der Bayer-Matrix verwendet werden“.
@xiota tolle Erklärung. Jetzt muss ich nur noch verstehen, wie Farbprofile funktionieren :)
Farben können über einen Zwischenfarbraum von einem Raum in einen anderen umgewandelt werden. Kann dir bei der Mathematik nicht helfen, aber Matrizen sind beteiligt. Hier ist eine Seite, die Sie möglicherweise hilfreich finden: RGB/XYZ-Matrizen . RawTherapee enthält DCP-Dateien, aber sie sind in einem Binärformat, so dass Sie sich die Quelle ansehen müssen, um herauszufinden, wie man sie liest und verwendet. Vielleicht können Sie eine Bibliothek wie Little CMS verwenden .

Die kurze Antwort lautet, dass die „roten“, „grünen“ und „blauen“ Filter in der Bayer-Maske Ihrer Kamera nicht die gleichen Farben haben wie die Farben Rot, Grün und Blau, die von emittierenden RGB-Displays verwendet werden. Auch nicht die Farben „rot“, „grün“ und „blau“, für die die drei Arten von Zapfen in unserer Netzhaut am empfindlichsten sind.

Hier sind die Empfindlichkeiten der kurzwelligen, mittelwelligen und langwelligen Zapfen in unserer Netzhaut, mit den Kurven für jede Farbe, die wir für die Wellenlänge der Spitzenempfindlichkeit dieses Typs wahrnehmen.

Geben Sie hier die Bildbeschreibung ein

Typische maskierte Bayer-Sensoren sind ähnlich, obwohl der "rote" Filter etwas mehr "gelb-orange" als "gelb-grün" ist.

Geben Sie hier die Bildbeschreibung ein

Hier ist das gleiche Diagramm mit vertikalen Linien gezeichnet, wo ein typisches RGB-Display (oder RYGB-Display, das einen gelben Kanal hinzufügt) ihr Licht emittiert. Beachten Sie, wie groß der Abstand zwischen der Spitze jedes „roten“, „grünen“ und „blauen“ Kanals auf dem Sensor einer Kamera und den von einem RGB-Display ausgegebenen roten, grünen und blauen Kanälen ist. Beachten Sie insbesondere, wie viel näher die "roten" Filter in unseren Bayer-Masken an Gelb als an Rot liegen.

Geben Sie hier die Bildbeschreibung ein

Das Fehlen von echtem Rot in der Bayer-Maske hilft auch zu erklären, warum Sensoren grün sind .

Ungeachtet aller niedlichen kleinen Zeichnungen im Internet sind die "roten" Filter in den meisten Bayer-Masken bei etwa 590 nm zentriert, was wir als einen orangefarbenen Gelbton wahrnehmen, und bei etwa 640 nm nicht rot. Es gibt auch subtilere Unterschiede zwischen den "blauen" und "grünen" Filtern und den von RGB-Displays verwendeten Farben.

Die „reine“ rote Farbe, die von einem RGB-Display bei etwa 640 nm emittiert wird, erzeugt also eine Reaktion in mehr als nur den Fotostellen, die von einem Filter maskiert werden, der am empfindlichsten für 590 nm ist, aber mit einer erheblichen Empfindlichkeit von 560 nm bis 790 nm oder so. Die "grün" gefilterten Fotoseiten reagieren auch auf rotes 640-nm-Licht. Alles jenseits von 790–800 nm wird durch den IR-Sperrfilter im Filterstapel vor dem Sensor gefiltert (der bei der Empfindlichkeitsmessung nicht vor dem Sensor platziert wird).

Ebenso erzeugt die „reine“ grüne Farbe, die von einem RGB-Display bei etwa 530 nm emittiert wird, eine Reaktion in mehr als nur den durch einen „grünen“ Filter maskierten Fotostellen. Auch die "blau" gefilterten Fotoseiten registrieren eine Reaktion. Das Gleiche gilt für das 480-nm-Licht, das vom blauen Kanal des Displays ausgestrahlt wird. Sowohl die "blau" als auch die "grün" gefilterten Fotostellen auf dem Kamerasensor registrieren eine Reaktion auf dieses Licht.

Wir stellen unsere Kameras so her, dass sie die Art und Weise nachahmen, wie unser Auge/Gehirn-System die Wahrnehmung von Farbe aus bestimmten Wellenlängen elektromagnetischer Strahlung erzeugt. Der einzige Grund, warum wir einen Teil des elektromagnetischen Spektrums als sichtbares Licht bezeichnen , liegt darin, dass dieser Teil des EMG-Spektrums eine biologische Reaktion hervorruft, wenn es auf die Zapfen in der Netzhaut unserer Augen fällt. Es gibt keine spezifischen Farben, die in bestimmten Wellenlängen des Lichts enthalten sind, es gibt nur die Wahrnehmung von Farbe, die von den Augen und dem Gehirn erzeugt wird, die sie wahrnehmen. Tiere mit Zapfen, die auf die gleichen Lichtwellenlängen unterschiedlich reagieren, sehen nicht die gleichen Farben für die gleichen Wellenlängen und Kombinationen von Wellenlängen.

Damit eine Kamera "reine" Farben erzeugt, wenn sie auf ein RGB-Display gerichtet ist, bräuchte man einen Sensor mit einem "roten" Kanal, der überhaupt nicht auf grünes oder blaues Licht reagiert, das vom RGB-Display emittiert wird, einen "grünen Kanal". der überhaupt nicht auf rotes oder blaues Licht reagiert, und ein "blauer" Kanal, der überhaupt nicht auf grünes oder rotes Licht reagiert. Aber eine solche Kamera wäre nicht in der Lage, andere Farben als reines Rot, reines Grün und reines Blau zu konstruieren. Es gäbe keine Möglichkeit, andere Farben mit überlappenden Empfindlichkeiten von „rot“, „grün“ und „blau“ gefilterten Fotoseiten zu synthetisieren, die die Art und Weise nachahmen, wie unsere Netzhautkegel und unser Gehirn kombiniert werden, um Farben basierend auf den überlappenden Empfindlichkeiten unserer S, L zu synthetisieren , und M Kegel.

Ausgezeichnete Antwort. Um die Dinge noch komplizierter zu machen, verwenden die meisten (alle?) Bildschirme Technologien, die auch Reaktionskurven haben. Mir ist keine Technologie bekannt, die reine Farben erzeugt.
Ja. Ich habe dieses Diagramm in eine andere Antwort auf eine verwandte Frage aufgenommen . Für diese Frage wäre es jedoch egal, ob sie reine Farben emittieren. Die breitere Empfindlichkeit jedes "Kanals" auf dem Sensor würde immer noch dazu führen, dass jede vom Monitor kommende Ausgangsfarbe Reaktionen von Sensoren registriert, die auch für die anderen Farben gefiltert werden.