Wie finde ich heraus, ob TIF-Bilder eine Gammakorrektur haben oder nicht?

Ich habe mehrere DNG-Bilddateien, die mit einem LGE Nexus 5X mit Open Camera für Android als Kamera-App aufgenommen wurden. Zur weiteren Bildbearbeitung habe ich die DNG-Dateien mit Camera Raw 8 und Photoshop CC 2015 in TIF-Dateien konvertiert. Ich habe die Bilder konvertiert, ohne Farb- oder Belichtungseinstellungen zu ändern.

Soweit ich weiß, sollten die DNG-Dateien linear sein (ohne Gammakorrektur). Meine Frage ist, ob die konvertierte TIF-Datei noch linear ist oder nicht. Führt Photoshop / Camera Raw eine Gammakorrektur für TIF-Dateien durch?

Antworten (4)

Wenn Sie das Bild mit einem normalen Bildbetrachter betrachten, ist es meistens dunkel? Wenn nicht, wurde eine Gammakurve angewendet. Das heißt, sieht es so aus?

tif kein Gamma

Das erhalten Sie mit einem reinen Dump linearer Werte in eine 16-Bit-TIFF-Datei. Oder, über 8 Bit codiert und demosaikiert und mit angepasstem Weißabgleich, etwa so:

8-Bit-Farbe

Wenn es so oder ähnlich aussieht, sehen Sie wahrscheinlich ein lineares Bild. Dies wird normalerweise nicht als sehr nützlich angesehen. Wenn also RAW-Dateien in Bildformate konvertiert werden, die zum Anzeigen und Verteilen verwendet werden, werden sie fast immer zu etwas verarbeitet, auf das für diesen Zweck eine Gammakurve angewendet wird.

Ich habe die Bilder konvertiert, ohne Farb- oder Belichtungseinstellungen zu ändern.

Möglicherweise haben Sie die Standardeinstellungen nicht geändert , aber Ihre RAW-Konversationssoftware verfügt über Standardeinstellungen, die nicht "Eingabewerte unverändert lassen" lauten.

Siehe Wie sieht eine unverarbeitete RAW-Datei aus? für mehr. Wenn Sie wirklich unverarbeitete Daten für Ihre eigene Verarbeitung extrahieren möchten, sehen Sie sich die Verwendung von dcraw an, wie dort verwiesen wird.

Danke! Um die Bilder zu linearisieren, müsste ich den Gammawert kennen, der für die Gammakorrektur verwendet wird. Gibt es eine Möglichkeit, es herauszufinden?
Warum nicht einfach dcraw verwenden? Warum willst du überhaupt lineare Bilder?
Das Problem liegt jenseits von Gamma, das nur eine Codierungs-/Decodierungsmethode ist, die durch Tags angegeben wird, die in die TIFF-Datei geschrieben werden. Das eigentliche Problem ist die Tonwertkurve, die für die Konvertierung von RAW in TIFF verwendet wird, und das hat nichts mit der Gammakorrektur zu tun. Schlimmer noch, es ist nicht definiert, es beeinflusst auch die Farbchromatizität und ist nicht reversibel. Anscheinend möchten Sie ein sogenanntes "Scene Referred"-Bild erhalten. Dies ist ein etwas spezialisierter Bereich für diejenigen, die High-End-Reproduktionsdrucke erstellen.
@doug Ja, ich habe das irgendwie beschönigt, aber es ist absolut der Fall. Im zweiten Bild oben dcrawwurde eine Weißabgleichsanpassung angewendet, die aus den von der Kamera erzeugten Metadaten zusammen mit einer kameramodellspezifischen Farbmatrix gelesen wurde.
@mattdm Ich möchte die Bilder in den Farbraum CIEL a b * konvertieren . Soweit ich weiß, müssen die Bilder daher linear sein. Vielleicht gibt es eine Möglichkeit, die L a b * -Bilder direkt aus den RAW-Daten zu berechnen.
@HansMüller Aber warum willst du das machen? Das scheint ein Zwischenziel zu sein, kein Endzustand.
Ich suche nach Indizes, die mit der "Grünheit" von Pflanzen korrelieren. Der b*-Parameter des CIEL*a*b*-Farbraums könnte ein solcher Index sein.
@HansMüller Mag sein. Der CIELAB-Farbraum soll der menschlichen Wahrnehmung entsprechen; Wenn Sie das mit "Grünheit" meinen, könnte dies eine angemessene Wahl sein. Allerdings a) die Verwendung von Photoshop und fotografischen Tools ist nicht die richtige Wahl – Sie sollten sich stattdessen dcraw oder möglicherweise Matlab, Octave oder ähnliches ansehen, und Sie müssen das RAW-Dateiformat und den normalen Konvertierungsprozess in der Reihenfolge wirklich verstehen etwas anders machen; b) eine Consumer-Kamera ist für diese Anforderung möglicherweise keine gute Wahl; und c) das ist nicht wirklich ein fotografisches Problem.
Ich sage "nicht wirklich ein Fotografieproblem", weil das Ziel eine Messung ist , nicht ein Foto, und tatsächlich stehen Ihnen die Werkzeuge und Prozesse, die zum Erstellen von Fotos verwendet werden, im Weg und Sie möchten etwas anderes machen.

Gamma muss nicht „korrigiert“ werden, sondern ist eine Skalierung zur Anpassung an 8-Bit-Bilder, um die durch diese 8 Bit dargestellten Werte über einen größeren Dynamikbereich anzupassen. Eine RAW-Datei enthält die Sensordaten, die rein linear (oder Gamma = 1) sind. Wenn Sie eine RAW-Datei in ein 16x3-Bit-Bild konvertieren, bei dem Gamma auf 1,0 eingestellt ist, sieht es in einer farbverwalteten Anwendung wie Photoshop genauso aus wie bei der Konvertierung in denselben Farbraum mit Gamma = 2,2 *. Wenn Sie es jedoch in eine 8-Bit-Bilddatei konvertieren, sieht es insgesamt gleich aus, aber die dunkleren Teile weisen erhebliche Streifenbildung auf, da das menschliche Auge bei geringen Lichtstärken viel empfindlicher auf kleine Änderungen reagiert als bei hohen Lichtstärken.

Wenn Sie 16-Bit-Bilder verwenden, hat Gamma keinen Einfluss darauf, wie sie aussehen oder gedruckt werden, aber normale Farbräume haben herkömmlicherweise Gammas, die von 1,8 (ProPhoto) bis 3,0 (RGB skaliert basierend auf L*) variieren. Ein 8-Bit-Bild sieht unabhängig vom Gamma des Farbraums, in den es konvertiert wird, gleich aus, da das Gamma umgekehrt wird, wenn das Bild angezeigt oder gedruckt wird.

* Abgesehen davon können Sie ein Standard-RGB-Profil wie ProPhoto RGB mit Photoshop in eine Gamma = 1-Version umwandeln, indem Sie ein benutzerdefiniertes Profil erstellen und Gamma = 1 festlegen. Ich finde es nützlich, Dinge wie die Größenänderung von Bildern in Gamma = 1 zu tun, um Aliasing-Artefakte und Moiré zu reduzieren, die bei Standard-Gammas auftreten können.

Gamma muss unbedingt korrigiert werden, und der korrekte Name des Begriffs lautet „Gamma-Korrektur“. Siehe google.com/search?&q=gamma+correction . "Gamma" ist der Name des zu behebenden Problems. Heutzutage neigen wir dazu, CRT-Monitore zu vergessen, aber das Korrigieren von CRT-Monitoren ist der Zweck des Hinzufügens einer Gammakorrektur. Unsere Standards tun es immer noch, um zu verhindern, dass alle alten Bilder der Welt obsolet werden.
@WayneF Die Verwendung von "Korrektur" impliziert, dass etwas, das falsch ist, richtig gemacht werden muss. Dies galt sicherlich zu Zeiten analoger CRTs, da Kathodenstrahlröhren, wie Sie betonen, an sich nicht linear waren. Gamma ist einfach eine Codierungs-/Decodierungstechnik, die angibt, wie die relative Leuchtdichte codiert/decodiert wird, nicht aber die Leuchtdichte. Es ändert optisch nichts. Nehmen Sie ein 8-Bit-sRGB-Bild auf. Es ist als modifiziertes 2,4-Gamma codiert. Ändert man den Modus in Photoshop von 8 Bit auf 32 Bit, ändert sich optisch gar nichts. Aber was ist das Gamma des neuen Bildes? Es ist 1,0.
Nicht richtig. Die Gamma-Korrektur ändert offensichtlich und drastisch die Bildtöne, was der ganze Punkt ist (um die falsche nichtlineare CRT-Reaktion zu korrigieren, die als Gamma bezeichnet wird). Es gibt kein Clipping aufgrund der Gammakorrektur, aber die Helligkeit ändert sich DRASTISCH (um die CRT-Reaktion zu korrigieren). Die 8-16-32 Bits sind ein völlig anderes Konzept, das in keiner Weise mit der Gammakorrektur zusammenhängt. Druckereien benötigen auch ein großes Maß an verstärkten Daten, und sie wissen, wie sie damit umgehen müssen. Wir sollten uns darüber im Klaren sein, dass unsere Histogramme Gammadaten zeigen, NICHT lineare Daten. (Fortsetzung wegen Länge)
Photoshop zeigt Gamma 1.0 als immer noch UNVERÄNDERT an, relativ zu dem, was das ursprüngliche Gamma war. Wenn das ursprüngliche Gamma 2,2 war und Sie es in Photoshop auf 1,2 optimieren, bedeutet dies, dass 2,2 x 1,2 = Gamma 2,64 die Daten sind, die die CRT sehen würde. LED-Monitore sind jedoch linear und wissen einfach, dass sie zuerst die Gammakorrektur decodieren müssen (sie sozusagen verwerfen), aber die LEDs führen eine 2,2-Decodierung durch, was vom sRGB-Standard erwartet wird. Unsere Augen sehen nur die lineare Dekodierung, wir sehen niemals irgendwelche Gammadaten. Es wurde zuerst rückwärts dekodiert, entweder durch die CRT-Antwort oder durch die LED-Nachschlagetabellen.
@WayneF "Die Gammakorrektur ändert offensichtlich und drastisch die Bildtöne" Sie ändert die Bildwerte, nicht die Farben / Luminanz, die die Werte darstellen. Genauso wie das Ändern von 2.3 von einfacher Genauigkeit zu doppelter Genauigkeit die codierten Bits ändert, aber beide repräsentieren den gleichen Wert von sehr nahem, aber nicht genau 2,3. Übrigens hat Fließkomma die Eigenschaft, wie die Gammacodierung, große Werte weiter auseinander zu codieren als kleine Werte. Da dies für Gleitkommazahlen typisch ist, ist die Anwendung eines zusätzlichen Gammas nicht erforderlich.
@WayneF "Wir sollten erkennen, dass unsere Histogramme Gammadaten zeigen, NICHT lineare Daten" Histogramme variieren. In Photoshop zeigen Histogramme die RGB-Werte "linear". Das ist 127 ist in der Mitte. Dies gilt unabhängig vom Gamma des Arbeitsraums. Wenn Sie also ein Bild von Gamma = 2,2 auf Gamma = 1 konvertieren, ändert sich das Bild optisch nicht, aber das Histogramm verschiebt sich stark nach links.
Wenn Sie in PS Levels Gamma ändern, ändert sich das aktuelle visuelle Bild sicherlich, wenn Sie die Vorschau aktiviert haben oder wenn Sie auf OK klicken. Es ändert sich auch im Histogramm, das die einzigen Daten zeigt, die wir haben. Anfängermaterial zeigt nur lineare Histogramme (Gamma würde sie verwirren), aber linear 127 ist absolut NICHT in der Mitte eines Histogramms, das wir sehen. Ich werde eine weitere offensichtliche Widerlegung hinzufügen (wie Sie dies sehen können), dass die Histogrammdaten absolut und offensichtlich Gamma-codiert sind. Gamma-codierte Daten sind die einzigen Daten, die wir haben. Und dann hoffe ich, weg zu sein.
Machen Sie ein Bild von etwas Hellem, stellen Sie es so ein, dass es in die Nähe von Histogramm 255 kommt (sehr nah, aber NICHT ganz abgeschnitten). Dann auch 1,0 Blende runterblenden für ein weiteres Bild. Eine Blende ist 50 % Licht. Ihre falsche lineare Vorstellung würde erwarten, dass dieser Spitzenwert jetzt bei 127 liegt (50 % der vorherigen 255). ABER ES TUT ES NICHT. Es wird in der Nähe von 3/4 der vollen Skala sein. Gamma 2.2-Codierung von 50 % linear berechnet 187 oder 73 %, aber die Kamera verschiebt auch Weißabgleich und Kontrast usw., sodass dies nicht genau vorhergesagt werden kann. ABER SICHER IST ES NICHT NAHE 50 % LINEAR, WIE SIE SICH VORSTELLEN. Histogrammdaten sind absolut kodiert mit Gammakorrektur. Es ist alles da.
@WayneF Vielleicht sprechen wir über verschiedene Dinge. Das Gamma eines Farbraums ist eine nichtlineare, exponentielle Kodierung. Beim Konvertieren von Farbräumen mit unterschiedlichen Gammawerten ändert sich das Erscheinungsbild des Bildes nicht, wenn die Farben innerhalb des Farbraums des neuen Farbraums liegen. Ein One-Stop-Reduktionsbild verschiebt Spitzen auf der rechten Seite eines Histogramms in die Mitte, wenn der Farbraum Gamma = 1 ist. Wenn Sie in Farbräume mit unterschiedlichen Gammas konvertieren, verschiebt sich die Position der Spitzen, nicht aber die Luminanz des Bildes. Aber ein typischeres Bild mit Gamma = 2,2 verschiebt sich um etwa 30 % nach links.
Gamma ist immer noch genau das gleiche wie für CRT. Es ist nicht Gamma 1, was in Editoren einfach relativ zum ursprünglichen unveränderten Wert bedeutet, was auch immer es war (ist 2,2 in sRGB). Eine Änderung auf 1,2 bedeutet dann 1,2 x 2,2. Eine Reduzierung um eine Stufe geht NICHT in die Mitte, in 2,2-Daten fällt 255 auf eine Skala von etwa 3/4. Es ist nichtlinear, aber 3/4 ist keine absolute Zahl, da Kameras auch mit anderen Verschiebungen wie Weißabgleich, Kontrast und Farbprofil beschäftigt sind. Das Konvertieren von Farbräumen kann versuchen, die Bildfarben beizubehalten, aber nur das Ändern von Gamma ändert absolut Töne, Farbverschiebungen, die als Helligkeit bezeichnet werden.
@Wayne, haben Sie oder wissen Sie, wie Sie einen RGB-ICC-Farbraum in Gamma = 1 erhalten? Sie sind sehr nützlich, um die Größe zu ändern, ohne Mischartefakte einzuführen. Wenn Sie ein Bild in einem Gamma = 1-Farbraum betrachten, verschiebt es sich vom rechten Rand zur Mitte, wobei die Belichtung um eine Stufe verringert wird. Eine Möglichkeit, dies zu testen, ist mit dcraw.c, das Bilder mit einem ICC-getaggten Farbraum von Gamma = 1 ausgeben kann. In Photoshop können Sie sich das selbst ansehen. Außerdem bietet dcraw.c Optionen zum Erstellen von szenenbezogenen Bildern, die farbmetrisch genau sind und nicht über das Verschiedenes verfügen. Tonkurvenzusätze Kameras hinzufügen.
Doug hat Recht, @WayneF ist in einigen Punkten nicht richtig. Zunächst einmal folgen alle Vakuumröhren dem Langmuir-Child-Gesetz, aber die Mittel zur Linearisierung waren sicherlich bekannt - es war eine Designentscheidung der frühen Fernsehingenieure, um die CRT-Nichtlinearität am Anfang der Sendekette zu berücksichtigen, da das System-Gamma davon profitierte der menschlichen nichtlinearen visuellen Wahrnehmung, die eine Reduzierung des scheinbaren Rauschens im Bild um 30 dB ermöglichte. Das CRT-Design HAT viel mit dem effektiven CRT-Gamma zu tun, das von 1,5 bis über 3,5 variieren kann. Das Entwerfen von CRTs für ein Ziel-Gamma von 2,2 hat viele Vorteile. (Fortsetzung)...
Schon damals war es durchaus möglich, eine TV/CRT-Treiberschaltung für LINEARE Reaktion zu entwerfen, aber die Nichtlinearität der CRT-Anzeige war eine erwünschte Eigenschaft für die Rauschunterdrückung und aus anderen Gründen, genau wie heute für die Reduzierung der Bittiefe. Selbst wenn CRTs kein nichtlineares Ansprechverhalten hätten, wäre eine Art ähnlicher Vorverzerrung zur Rauschunterdrückung verwendet worden, wie es in vielen anderen Bereichen der Signalverarbeitung für Rundfunk/Übertragung der Fall ist. 2.2 Gamma wurde als Teil der NTSC-Farbe spezifiziert, da es notwendig war, Gamma für eine konsistente Farbwiedergabe zu definieren.
Der springende Punkt: Gamma wird heute noch benötigt , auch wenn wir Displays hatten, die linear waren. Gamma ist erforderlich, um den verfügbaren Coderaum optimal zu nutzen. Wenn Bilder ohne Gamma codiert würden, würden sie mindestens 12 Bit pro Farbe pro Pixel (36 Bit pro Pixel) benötigen, aber eine Übertragungskurve verwenden, die nahe an der Umkehrung der menschlichen Wahrnehmung liegt, z. B. zwischen 1/2 und 1 /2.5 können wir mit nur 8 Bit pro Farbkanal (24 Bit pro Pixel) davonkommen. Einige Bildbearbeitungsprogramme wie Photoslop erledigen möglicherweise viele Dinge in einem Gamma-codierten Arbeitsbereich, aber Sie können PS sicherlich in linearer Form verwenden.
Und AfterEffects macht es trivial, in einem linearen Raum zu arbeiten. Sehr viele Operationen werden besser in einem linearisierten Arbeitsbereich und nicht in einem Gamma-Arbeitsbereich ausgeführt. Trotzdem hat DOUG Recht, die in Adobe-Histogrammen angezeigten Daten sind eine lineare Verteilung von RGB-Werten, unabhängig von der verwendeten Bildkodierung. Die Mitte des Histogramms ist 127/128. Dies ist akademisch, und als jemand, der die ganze Zeit im linearen Raum arbeitet, kann ich Ihnen sagen, dass die Histogramme von Adobe teilweise aus diesem Grund für lineare Arbeit ziemlich mangelhaft sind (ein anderer Grund sind die Steuerelemente, während linear nicht einmal annähernd einheitlich wahrgenommen wird).
Gamma wird NICHT gemacht, um in 8 Bits zu passen. Gamma wird durchgeführt, um die nichtlineare CRT-Reaktion zu KORRIGIEREN. Ohne CRT wird es jetzt immer noch notwendigerweise für die Kompatibilität mit den Bilddaten der Welt fortgesetzt. Das Auge sieht NIEMALS irgendwelche Gammadaten, sie werden immer UNBEDINGT zurück in linear dekodiert, um sie dem Auge zu präsentieren. Die Dekodierung ist eigentlich eine EXAKTE UMKEHRUNG der Kodierung, die mit der CRT übereinstimmen muss, aber es könnte für das Auge nicht weniger wichtig sein, welchen Weg Gamma genommen hat, weil die Idee ist, dass Daten für das Auge notwendigerweise genau wieder in linear umgekehrt werden. Alles andere wäre Verzerrung oder zumindest Modifikation.
"Gamma wird NICHT gemacht, um in 8 Bit zu passen" Das ist seit geraumer Zeit der Hauptgrund für >1 Gamma, nachdem Monitore von analogen Schnittstellen zu digitalen migriert wurden. Die meisten Monitore erlauben die Programmierung ihres Gammas. Da die große Mehrheit aus 8 Bit besteht und eine kleinere Anzahl 10 Bit unterstützt, ist ein Gamma von 1,5 bis 3 unerlässlich, um Streifenbildung in Bildern mit geringer Leuchtdichte zu vermeiden. Manchmal stelle ich das Gamma meines Monitors auf 1,0 ein, um zu überprüfen, ob der 10-Bit/Kanal-Pfad funktioniert, da es mehrere Dinge gibt, die dazu führen können, dass mein Setup auf 8 Bit zurückgesetzt wird. Treiber, App und Monitor müssen alle korrekt eingerichtet sein.
@WayneF Während Sie sich in der 8-Bit-Diskussion irren, wie Myndex ausführlich diskutiert hat, haben Sie recht, dass die überwiegende Mehrheit der den Menschen angezeigten Bilder ziemlich schrecklich aussehen würde, wenn Monitore kein hohes Gamma hätten. Ursprünglich diente dies dazu, die CRT-Reaktion anzunähern. Heutzutage ist es Kompatibilität, wenn die Leute kein Farbmanagement verwenden. Aber es dient auch dazu, Streifenbildung bei niedriger Leuchtdichte zu verhindern, was selbst bei High-End-10-Bit-Displays ein Problem darstellt, obwohl sie mit 10-Bit-Pfade und Gamma = 1 für die meisten Bilder ziemlich gut funktionieren, da das Bildrauschen das Bild zittert.

TIF sollte Gamma haben. Jedes normale und sichtbare (brauchbare) Tonwertbild enthält eine Gammakorrektur. Tonal enthält Farbe (RGB oder indiziert) und Graustufen, aber keine Strichzeichnungen (zweistufig, Daten sind nur 1 oder 0).

Raw-Bilder (noch) nicht, Gamma und Weißabgleich werden für die spätere Verarbeitung in RGB verschoben. Ihre TIF-Datei war diese spätere Verarbeitung.

Kurze Antwort: Wenn Sie mehr als einen fast schwarzen Fleck aus Nichts betrachten, wurde eine Gammakorrektur angewendet.

Zu dunkel, sollte aber nicht ganz schwarz sein. 255 linear codiert zu 255 Gamma (in dieser 0..1-Skala ist 1 zu jedem Exponenten immer noch 1. Irgendwie clever, kein Clipping aufgrund von Gamma). Dieses uncodierte 255-Linear wird bei Betrachtung (nicht dunkel) wieder auf 255 decodiert. 70 % linear würden zu 135 statt 179 dekodiert, aber immer noch über dem Mittelpunkt. 50 % linear werden zu 187 Gamma 2.2 codiert, aber die nicht codierten 50 % werden bei der Anzeige zu 22 % oder zu 55 im Histogramm decodiert. Dunkel, aber nicht ganz schwarz, mit Ausnahme der dunklen Töne, die wirklich leiden. Es soll aber auch hellere Töne geben, nur eben nicht ganz hell.
@WayneF "fast" ist nicht gleich "alle".
Ist auch nicht gleich schwarzer Klecks. :) Wenn Sie Photoshop Levels verwenden, um Gamma mit 0,45 (Kehrwert von 2,2) zu multiplizieren, um 1,0 zu erhalten, was linear ist, sieht es ungefähr aus wie jedes durchschnittliche oder typische unterbelichtete Foto. Mehr als leicht, es ist dunkel, sieht aber immer noch sehr korrigierbar aus, sehr weit von Schwarz entfernt. Wenn Sie sich Windows-Hintergrundbilder ansehen, die auf diese Weise erstellt wurden, enthalten einige Bilder möglicherweise kein Schwarz. Der strittige Punkt ist jedoch, dass es unangenehm dunkler ist, und es wird erwartet, dass unsere Bilder eine Gammakorrektur enthalten.