Este documento (download em pdf) fornece as seguintes fórmulas para o cálculo da temperatura de cor correlacionada (CCT). Eles não dizem explicitamente (ou eu errei), mas o exemplo deles me leva a inferir que eles estão assumindo valores RGB no intervalo de 0 a 255.
1. Converta os valores RGB em valores tristimulus CIE (XYZ) da seguinte maneira:
X= ( - 0,14282 ) ( R ) + ( 1,54924 ) ( G ) + ( - 0,95641 ) ( B )
Y= ( - 0,3246 ) ( R ) + ( 1,57837 ) ( G ) + ( - 0,73191 ) ( B ) = Il l u m i n a n c e
Z= ( - 0,68202 ) ( R ) + ( 0,77073 ) ( G ) + ( 0,56332 ) ( B )
2. Calcule os valores normalizados de cromaticidade:
x = X/ (X+ Y+ Z)
y= Y/ (X+ Y+ Z)
3. Calcule o valor CCT de:
CCT= 449 n3+ 3525 n2+ 6823,3 n + 5520,33
onde n = ( x - 0,3320 ) / ( 0,1858 - y)
Que pode ser combinado para formar a seguinte equação:
CCT= 449 n3+ 3525 n2+ 6823,3 n + 5520,33
onde n = ( ( 0,238881 ) R + ( 0,25499 ) G + ( - 0,58291 ) B )/ ((0,111109)R+(-0,85406)G+(0,52289)B)
Não tenho certeza sobre como aplicar isso a uma imagem, mas se você quiser apenas um número generalizado, talvez possa usar algum tipo de média? Encontre um valor RGB "médio" aceitável para a imagem (por exemplo, o centróide) e use-o para calcular uma temperatura ou (uma opção muito mais cara em termos de computação) calcule a temperatura de cada pixel da imagem e faça a média desses resultados .
Além disso, lembre-se de que o CCT é apenas uma métrica aproximada para a maioria das cores, pois apenas uma única curva no espaço de cores representa realmente a cor que pode ser obtida com um radiador de corpo preto do mundo real. Assim, para todas as outras cores, a temperatura calculada da cor é simplesmente uma aproximação da temperatura do corpo preto que ela representa mais de perto. Assim, para algumas cores (especialmente as verdes), pode realmente ser um valor um tanto sem sentido, pelo menos no sentido físico. Isso está bem ilustrado na imagem a seguir (do artigo da Wikipedia sobre temperatura de cor ).
A linha preta na imagem representa o Locus Planckiano de cores que realmente poderiam ser produzidas pela radiação do corpo do bloco. As linhas de cruzamento menores representam as isotermas da aproximação da TCC nas proximidades.
Além disso, como sua pergunta faz referência específica ao Adobe Lightroom, encontrei isso ao pesquisar:
Os controles deslizantes [no Adobe Lightroom] ajustam não a temperatura do corpo preto da luz, mas a compensação aplicada à imagem para compensar a temperatura do corpo preto da luz. Isso acontece ao contrário.
Lembre-se de que a temperatura da cor que você vê no controle deslizante do Lightroom não será a mesma que a calculada a partir das fórmulas acima.