Jak obliczyć (w kolorze ciała) temperaturę barwową źródła światła oświetlającego dany obraz? Poniżej znajdują się zrzuty ekranu programu Adobe Lightroom manipulującego temperaturą kolorów i przesunięciem histogramów RGB. Biorąc pod uwagę składniki RGB obrazu, jak przejść do jego obliczenia? Powinienem oczekiwać jednej wartości - Temperatura ekwiwalentu czarnego ciała źródła światła, prawda?
image-processing
color
Lord Loh.
źródło
źródło
Odpowiedzi:
Ten artykuł (plik pdf do pobrania) podaje następujące wzory do obliczania skorelowanej temperatury barwowej (CCT). Nie mówią wprost (lub mi tego brakowało), ale ich przykład prowadzi mnie do wniosku, że przyjmują wartości RGB w zakresie 0-255.
1. Przekształć wartości RGB na wartości trójbodźca CIE (XYZ) w następujący sposób:
2. Oblicz znormalizowane wartości chromatyczności:
3. Oblicz wartość CCT z:
Które można połączyć w celu utworzenia następującego równania:
Nie jestem pewien co do zastosowania tego do obrazu, ale jeśli chcesz tylko jednej liczby uogólniającej, to może mógłbyś użyć jakiegoś uśrednienia? Znajdź akceptowalną „średnią” wartość RGB obrazu (np. Centroid) i użyj jej do obliczenia temperatury lub (opcja o wiele bardziej kosztowna obliczeniowo) oblicz temperaturę dla każdego piksela na obrazie i weź średnią z tych wyników .
Należy również pamiętać, że CCT jest jedynie przybliżoną miarą dla większości kolorów, ponieważ tylko pojedyncza krzywa w przestrzeni kolorów reprezentuje kolor, który można uzyskać z prawdziwego czarnego grzejnika na świecie. Tak więc dla wszystkich innych kolorów obliczona temperatura barwowa jest po prostu przybliżeniem czarnej temperatury ciała, którą najbardziej reprezentuje. Dlatego w przypadku niektórych kolorów (zwłaszcza zieleni) może to być w pewnym sensie wartość bez znaczenia, przynajmniej w sensie fizycznym. Jest to dobrze zilustrowane na poniższym obrazie (z artykułu w Wikipedii na temat temperatury barwowej ).
Czarna linia na obrazie reprezentuje locus kolorów Planckiego, który może być faktycznie wytworzony przez promieniowanie bryły bloku. Mniejsze linie przecięcia reprezentują izotermy przybliżenia CCT w pobliżu.
Ponadto, ponieważ twoje pytanie odnosi się konkretnie do Adobe Lightroom, znalazłem to podczas wyszukiwania:
Należy więc pamiętać, że temperatura kolorów widoczna na suwaku Lightroom nie będzie taka sama jak temperatura obliczona na podstawie powyższych wzorów.
źródło
Obliczyłem niektóre kolory według twoich wzorów i, jak widzę, w niektórych przypadkach działa, podczas gdy w niektórych innych przypadkach - takich jak czerwony (255 0 0) i niebieski (0 0 255) - daje złą odpowiedź:
jednak:
czerwony (255 0 0): n = 2.1497, CCT = 40938.6 K -> wydaje się być błędny
niebieski (0 0 255): n = -1.1148, CCT = 1672.45 K -> wydaje się być błędny
źródło