画像を照らす光源の色温度を計算するにはどうすればよいですか?


14

特定の画像を照らす光源の(黒体に相当する)色温度を計算するにはどうすればよいですか?以下は、色温度とRGBヒストグラムのシフトを操作するAdobe Lightroomのスクリーンショットです。画像のRGBコンポーネントが与えられた場合、どのように計算しますか?単一の値を期待する必要があります-照明源の黒体相当温度ですよね?

4600K 23810K


それが理にかなっているかどうかはわかりません。色温度は、画像の撮影中にシーンを照らすために使用されるランプのように、光の特性です。画像自体に色温度があるかどうかはわかりません。普通の緑の画像の色温度は何ですか?緑は黒体スペクトルにさえありません。高温の光源で照らされた濃い緑色のオブジェクト、または低温の光源で照らされた明るい緑色のオブジェクトによって生成されましたか?
エンドリス

私の質問の最後の部分-「単一の値を期待する必要があります-照明源の黒体相当温度ですよね?」不明な点はありますか?その場合は、編集を提案してください。あなたが緑の表面を持っているならば、それは照明源に応じて異なって見えるでしょう。私は緑を見て、照明源の(黒体に相当する)温度を計算しようとしています-PhotoshopとLight Roomはどのようにそれを行いますか?普通の緑のオブジェクトであっても、-#00FF00(rgb hex)として表示されません。
ローLord。

@endolith-いくつかの変更を加えました。質問は今より明確になったと思いますか?
ローLord。

わかりました、それはより理にかなっていますが、それが可能かどうかはまだわかりません。異なる色温度の光源で照らされた2つの緑の色合いは、同じ出力画像を生成できませんか?それでは、オブジェクトとカメラのプロパティを知らずに、光源の色温度をどのように伝えることができますか?
エンドリス

@endolith-できますか?私はわかりません。かもしれないと思う。カメラにはホワイトバランス制御が組み込まれています。しかし、ほとんどの画像には複数の陰影があり、これは確率的にヒストグラムで分析されているようです。そのため、特定の温度にいるという信頼区間があるかもしれません。その上、カメラと写真にもいくつかのメタデータがあります。この方程式はエキスパートドライブであると感じています。誰か(専門家)がそれを調整して数値を与えました。* Cまたは* Fのように、水の凝固点を0 * Cまたは32 * Fに設定することを誰が決めたのですか?
ローLord。

回答:


10

このペーパー(pdfダウンロード)は、相関色温度(CCT)を計算するための以下の公式を提供します。彼らは明示的に言っていない(または私はそれを見逃した)が、彼らの例は、彼らが0-255の範囲のRGB値を仮定していると推測するように導く。

1. 次のように、RGB値をCIE三刺激値(XYZ)に変換します。

バツ=0.14282R+1.54924G+0.95641B
Y=0.32466R+1.57837G+0.73191B=llあなたはmnance
Z=0.68202R+0.77073G+0.56332B

2.正規化された色度値を計算します。

バツ=バツ/バツ+Y+Z
y=Y/バツ+Y+Z

3.以下からCCT値を計算します。

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

どこ n=バツ0.3320/0.1858y

これらを組み合わせて、次の式を作成できます。

CCT=449n3+3525n2+6823.3n+5520.33
どこ n=0.23881R+0.25499G+0.58291B/0.11109R+0.85406G+0.52289B

これを画像に適用するかどうかはわかりませんが、単一の一般化された数値が必要な場合は、何らかの平均化を使用できますか?画像の許容可能な「平均」RGB値(たとえば、重心)を見つけて、それを使用して温度を計算するか、(はるかに計算コストの高いオプション)画像内の各ピクセルの温度を計算し、それらの結果の平均を取得します。

また、色空間内の1つの曲線だけが実際に現実世界の黒体放射体から取得できる色を表すため、CCTはほとんどの色の近似指標にすぎないことに留意してください。したがって、他のすべての色の場合、計算された色温度は、最も近い黒体温の単なる近似値です。したがって、一部の色(特に緑)では、少なくとも物理的な意味では、実際には多少意味のない値になります。これは、次の画像でよく示されています(色温度に関するウィキペディアの記事から)。

画像の黒い線は、ブロック体の放射によって実際に生成される可能性のある色のプランク軌跡を表しています。小さい交差線は、近くのCCT近似の等温線を表しています。

また、あなたの質問は特にAdobe Lightroomを参照しているので、検索中にこれを見つけました。

[Adobe Lightroomの]スライダーは、光の黒体温度ではなく、光の黒体温度を補正するために画像に適用される補正を調整します。これは逆になります。

そのため、Lightroomスライダーに表示される色温度は、上記の式から計算される色温度とは異なることに注意してください。


上記で使用されるRGB-XYZ変換は、特定のハードウェアで使用される色空間に固有のものであるように見えることに注意してください。間違いなくsRGBについては正しくありません。これは、OPの場合に使用される可能性が最も高いものです。正しい変換を参照してくださいsRGB規格
awdz9nld

注意また、その照度とは対照的に、1931表す輝度CIEにおけるY成分、
awdz9nld

0

私はあなたの式に従っていくつかの色を計算しましたが、私が見るようにいくつかのケースで動作しますが、他のいくつかのケースでは-赤(255 0 0)や青(0 0 255)など-それは間違った答えを与えます:

  • 白(255 255 255):n = 0.4049、CCT = 8890.77 K->は正しいようです
  • 黄色(255 255 0):n = -0.6646、CCT = 2410.65 K->は正しいようです
  • 緑(0 255 0):n = -0.2986、CCT = 3785.42 K->は正しいようです
  • シアン(0 255 255):n = 0.9902、CCT = 16168.7 K->は正しいようです
  • マゼンタ(255 0 255):n = -0.5428、CCT = 2783.54 K->は正しいようです

しかしながら:

  • 赤(255 0 0):n = 2.1497、CCT = 40938.6 K->間違っているようです

  • 青(0 0 255):n = -1.1148、CCT = 1672.45 K->間違っているようです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.