Wie berechne ich die Farbtemperatur der Lichtquelle, die ein Bild beleuchtet?


14

Wie kann ich die Farbtemperatur (Schwarzkörperäquivalent) der Lichtquelle berechnen, die ein bestimmtes Bild beleuchtet? Unten finden Sie Screenshots von Adobe Lightroom, in denen die Farbtemperatur und eine Verschiebung der RGB-Histogramme geändert werden. Wie berechne ich das Bild bei gegebenen RGB-Komponenten? Ich sollte einen einzelnen Wert erwarten - Die Schwarzkörper-Äquivalenttemperatur der Beleuchtungsquelle, richtig?

4600K 23810K


Ich bin mir nicht sicher, ob das Sinn macht. Die Farbtemperatur ist eine Eigenschaft des Lichts, ähnlich wie die Lampen, mit denen eine Szene beleuchtet wird, während das Bild aufgenommen wird. Ich weiß nicht, ob Bilder selbst eine Farbtemperatur haben. Wie ist die Farbtemperatur eines einfachen grünen Bildes? Grün ist nicht einmal im Schwarzkörperspektrum. Wurde es von einem dunkelgrünen Objekt erzeugt, das von einer Hochtemperaturquelle beleuchtet wurde, oder von einem hellgrünen Objekt, das von einer Niedertemperaturquelle beleuchtet wurde?
Endolith

Der letzte Teil meiner Frage - "Ich sollte einen einzigen Wert erwarten - Die Schwarzkörper-Äquivalenttemperatur der Beleuchtungsquelle, oder?" War ich unklar? In diesem Fall können Sie gerne Änderungen vorschlagen. Wenn Sie eine grüne Oberfläche haben, sieht diese je nach Beleuchtungsquelle unterschiedlich aus. Ich versuche, das Grün zu erkennen und die Temperatur (Schwarzkörperäquivalent) der Beleuchtungsquelle zu berechnen. Wie funktionieren Photoshop und Light Room? Selbst ein normales grünes Objekt darf nicht als - # 00FF00 (RGB-Hex) angezeigt werden.
Lord Loh.

@endolith - Ich habe einige Änderungen vorgenommen. Glaubst du, die Frage ist jetzt klarer?
Lord Loh.

Ok, das macht mehr Sinn, aber ich bin mir immer noch nicht sicher, ob es möglich ist. Können nicht zwei Grüntöne, die von verschiedenen Farbtemperaturquellen beleuchtet werden, identische Ausgabebilder erzeugen? Wie können Sie also die Farbtemperatur des Leuchtmittels bestimmen, ohne die Eigenschaften des Objekts und der Kamera zu kennen?
Endolith

@endolith - Kann es? Ich bin mir nicht sicher. Ich denke es könnte sein. Die Kameras verfügen über eine integrierte Steuerung für den Weißabgleich. Aber die meisten Bilder haben mehrere Schattierungen und dies scheint mit Histogrammen analysiert zu werden - stochastisch. Es kann also ein Konfidenzintervall für eine bestimmte Temperatur geben. Außerdem haben Kameras und Bilder auch einige Metadaten. Ich habe das Gefühl, dass die Gleichung dafür Expertenantrieb ist - jemand (Experte) hat sie kalibriert, um eine Zahl zu geben. Genau wie * C oder * F - Wer hat entschieden, dass der Gefrierpunkt von Wasser auf 0 * C oder 32 * F gesetzt wird?
Lord Loh.

Antworten:


10

Dieses Dokument (PDF-Download) enthält die folgenden Formeln zur Berechnung der korrelierten Farbtemperatur (CCT). Sie sagen nicht explizit (oder ich habe es verpasst), aber ihr Beispiel lässt mich schließen, dass sie RGB-Werte im Bereich von 0-255 annehmen.

1. Konvertieren Sie die RGB-Werte wie folgt in CIE-Tristimulus-Werte (XYZ):

X=(-0,14282)(R)+(1,54924)(G)+(-0,95641)(B)
Y.=(-0,32466)(R)+(1,57837)(G)+(-0,73191)(B)=ichllumichneinnce
Z=(-0,68202)(R)+(0,77073)(G)+(0,56332)(B)

2. Berechnen Sie die normalisierten Farbwerte:

x=X/(X+Y.+Z)
y=Y./(X+Y.+Z)

3. Berechnen Sie den CCT-Wert aus:

CCT=449n3+3525n2+6823.3n+5520.33

wo n=(x-0,3320)/(0,1858-y)

Welche können kombiniert werden, um die folgende Gleichung zu bilden:

CCT=449n3+3525n2+6823.3n+5520.33
wo n=((0,23881)R+(0,25499)G+(-0,58291)B)/((0,11109)R+(-0,85406)G+(0,52289)B)

Ich bin mir nicht sicher, ob ich das auf ein Bild anwenden soll, aber wenn Sie nur eine einzelne verallgemeinernde Zahl wollen, dann könnten Sie vielleicht eine Art Mittelung verwenden? Finden Sie entweder einen akzeptablen "durchschnittlichen" RGB-Wert für das Bild (z. B. den Schwerpunkt) und verwenden Sie diesen, um eine Temperatur zu berechnen, oder (eine viel rechenintensivere Option) berechnen Sie die Temperatur für jedes Pixel im Bild und bilden Sie den Durchschnitt dieser Ergebnisse .

Denken Sie auch daran, dass die CCT für die meisten Farben nur eine ungefähre Kennzahl ist, da nur eine einzige Kurve im Farbraum die Farbe darstellt, die mit einem realen Schwarzkörperstrahler erzielt werden kann. Daher ist die berechnete Farbtemperatur für alle anderen Farben lediglich eine Annäherung an die Schwarzkörpertemperatur, die sie am besten darstellt. Daher kann es für einige Farben (insbesondere für Grüns) tatsächlich einen etwas bedeutungslosen Wert geben, zumindest in physikalischer Hinsicht. Dies ist im folgenden Bild gut dargestellt (aus dem Wikipedia-Artikel zur Farbtemperatur ).

Die schwarze Linie im Bild stellt den Planckschen Farbort dar, der tatsächlich durch Blockkörperstrahlung erzeugt werden könnte. Die kleineren Kreuzungslinien repräsentieren die Isothermen der CCT-Approximation in der Nähe.

Da sich Ihre Frage speziell auf Adobe Lightroom bezieht, habe ich dies auch bei der Suche in folgenden Bereichen festgestellt :

Die Schieberegler [in Adobe Lightroom] passen nicht die Schwarzkörpertemperatur des Lichts an, sondern die Kompensation, die auf das Bild angewendet wird, um die Schwarzkörpertemperatur des Lichts zu kompensieren. Das geht umgekehrt.

Bedenken Sie also, dass die auf dem Lightroom-Schieberegler angezeigte Farbtemperatur nicht mit der aus den obigen Formeln berechneten übereinstimmt.


Bitte beachten Sie, dass die oben verwendete RGB-XYZ-Transformation spezifisch für den von einer bestimmten Hardware verwendeten Farbraum zu sein scheint. Es ist mit Sicherheit nicht richtig für sRGB, was höchstwahrscheinlich im Fall von OP verwendet wird.
Beachten

Beachten Sie auch , dass die Y - Komponente in CIE 1931 Bezeichnet Leuchtdichte als an Beleuchtungsstärke gegen
awdz9nld

0

Ich habe einige Farben nach Ihren Formeln berechnet, und wie ich sehe, funktioniert dies in einigen Fällen, während in anderen Fällen - wie z. B. Rot (255 0 0) und Blau (0 0 255) - die Antwort falsch ist:

  • Weiß (255 255 255): n = 0,4049, CCT = 8890,77 K -> scheint korrekt zu sein
  • gelb (255 255 0): n = -0,6646, CCT = 2410,65 K -> scheint korrekt zu sein
  • Grün (0 255 0): n = -0,2986, CCT = 3785,42 K -> scheint korrekt zu sein
  • Cyan (0 255 255): n = 0,9902, CCT = 16168,7 K -> scheint korrekt zu sein
  • Magenta (255 0 255): n = -0,5428, CCT = 2783,54 K -> scheint korrekt zu sein

jedoch:

  • rot (255 0 0): n = 2,1497, CCT = 40938,6 K -> scheint falsch zu sein

  • blau (0 0 255): n = -1,1148, CCT = 1672,45 K -> scheint falsch zu sein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.