Makalah ini (unduhan pdf) memberikan rumus berikut untuk menghitung Temperatur Warna Korelasi (CCT). Mereka tidak secara eksplisit mengatakan (atau saya melewatkannya), tetapi contoh mereka membuat saya menyimpulkan bahwa mereka mengasumsikan nilai RGB dalam kisaran 0-255.
1. Konversikan nilai RGB ke nilai tristimulus CIE (XYZ) sebagai berikut:
X= ( - 0.14282 ) ( R ) + ( 1.54924 ) ( G ) + ( - 0.95641 ) ( B )
Y= ( - 0.32466 ) ( 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. Hitung nilai kromatisitas yang dinormalisasi:
x = X/ (X+ Y+ Z)
y= Y/ (X+ Y+ Z)
3. Hitung nilai CCT dari:
CCT= 449 n3+ 3525 n2+ 6823,3 n + 5520,33
di mana n = ( x - 0,3320 ) / ( 0,1858 - y)
Yang dapat digabungkan untuk membentuk persamaan berikut:
CCT= 449 n3+ 3525 n2+ 6823,3 n + 5520,33
di mana n = ( ( 0,23881 ) R + ( 0,25499 ) G + ( - 0,58291 ) B )/((0.11109)R+(−0.85406)G+(0.52289)B)
I am not sure about applying this to an image, but if you just want a single, generalizing number, than you could perhaps use some sort of averaging? Either find an acceptable "average" RGB value for the image (eg. the centroid) and use that to calculate a temperature or (a much more computationally expensive option) calculate the temperature for each pixel in the image and take the average of those results.
Juga, ingatlah bahwa CCT hanya perkiraan metrik untuk sebagian besar warna, karena hanya kurva tunggal dalam ruang warna yang benar-benar mewakili warna yang dapat diperoleh dari radiator benda hitam dunia nyata. Jadi untuk semua warna lain, suhu warna yang dihitung hanyalah perkiraan suhu tubuh hitam yang paling dekat diwakilinya. Jadi, untuk beberapa warna (terutama hijau) sebenarnya bisa menjadi nilai yang agak tidak berarti, setidaknya dalam arti fisik. Ini diilustrasikan dengan baik pada gambar berikut (dari artikel wikipedia pada suhu warna ).
Garis hitam pada gambar melambangkan Planckian Locus of colors yang sebenarnya bisa dihasilkan oleh radiasi tubuh. Garis persilangan yang lebih kecil mewakili isoterm dari perkiraan CCT di dekatnya.
Juga, karena pertanyaan Anda secara spesifik merujuk pada Adobe Lightroom, saya menemukan ini ketika mencari di sekitar:
Penggeser [dalam Adobe Lightroom] tidak menyesuaikan suhu tubuh hitam cahaya, tetapi kompensasi yang diterapkan pada gambar untuk mengkompensasi suhu tubuh hitam cahaya. Ini sebaliknya.
Jadi ingatlah bahwa suhu warna yang Anda lihat pada slider Lightroom tidak akan sama dengan yang dihitung dari formula di atas.