Bagaimana saya bisa menghitung suhu warna (setara dengan benda hitam) dari sumber cahaya yang menerangi gambar yang diberikan? Di bawah ini adalah screenshot dari Adobe Lightroom memanipulasi suhu warna dan pergeseran dalam Histogram RGB. Mengingat komponen RGB dari gambar, bagaimana cara menghitungnya? Saya harus mengharapkan nilai tunggal - Suhu setara tubuh hitam dari sumber penerangan, bukan?
image-processing
color
Tuan Loh.
sumber
sumber
Jawaban:
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:
2. Hitung nilai kromatisitas yang dinormalisasi:
3. Hitung nilai CCT dari:
Yang dapat digabungkan untuk membentuk persamaan berikut:
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:
Jadi ingatlah bahwa suhu warna yang Anda lihat pada slider Lightroom tidak akan sama dengan yang dihitung dari formula di atas.
sumber
Saya telah menghitung beberapa warna sesuai dengan rumus Anda, dan seperti yang saya lihat dalam beberapa kasus itu berfungsi, sementara dalam beberapa kasus lain - seperti merah (255 0 0) dan biru (0 0 255) - itu memberikan jawaban yang salah:
namun:
merah (255 0 0): n = 2.1497, CCT = 40938.6 K -> tampaknya salah
biru (0 0 255): n = -1.1148, CCT = 1672.45 K -> tampaknya salah
sumber