ピクセルのルクスで輝度を測定するアルゴリズムは (ここから取得)であることがわかります。
double luminance = r*0.299 + g*0.587 + b*0.114;
純粋な輝度ではなく、特定の写真の「青」スペクトルの光の強度を知りたいと思っています。これはどのように行うことができますか?カメラ画像の各ピクセルの重み付けされた「青」の値を取得し、それらを平均化/追加するだけでうまくいくでしょうか?
ご意見ありがとうございます。
輝度は面積あたりの強度です。
あなたが投稿した式は、赤、緑、青の強度を合計輝度に、またはその逆に変換することに関するものではありません。赤、緑、青の輝度を重み付けして合計輝度を取得するだけです。すでに青色の輝度を取得しているため、目的に関連する式は次のとおりです。
b
または、必要に応じて:
b*0.114
他の部分については、何を求めているかによって異なりますが、おそらく次のパスのどこかにあるでしょう。
各ピクセルの強度は、そのピクセルの輝度にピクセルの面積を掛けたものです。
アレイ全体の強度は、これらの個別の強度すべての合計です。
配列全体の輝度は、配列全体の強度を配列の総面積で割ったものであり、これも自明であることは明らかです。
部屋全体の輝度は…まあ、おそらくここでの要点は、カメラ アレイの輝度とほぼ同じであると仮定しているということです。したがって、仮定によって、それは最後の値とまったく同じです。
部屋全体の任意の平面の強度は、輝度にその平面の面積を掛けたものであり、部屋全体の強度は、それらすべての平面の合計ですが、おそらくあまり役に立ちません。
写真の強度は、写真を撮った時点でのカメラ アレイ全体の強度です。それはおそらく、部屋の強度よりも有用です.
@abamert はすでに正しい答えを出しています。詳細を少し追加しています。
デジタル イメージングとビデオの用語luminance
は一般的ですが、測光用語と混同される可能性があるため、最適な選択ではありません。より良い選択はluma
. OPがリンクしている記事は、まさにこの混乱を引き起こしています(皮肉なことに、ウィキペディアの測光用語のエントリに実際にリンクしているにもかかわらず、これはたまたまNot to be mixed with Lumaというメモで始まります)。
LUX
は光度の測定単位であり、完全にキャリブレーションされたデバイスを使用し、生データで作業し、実際の応答曲線を確実に把握していない限り、ピクセル データから取得した値をそのような測定値に関連付けることはできません。カメラ画像からは、ルクスやキャンドルなどの正確なものは得られません。
いくつかのカラー モデルがあり、それぞれに複数のカラー スペースがある場合があります。画像データは RGB ですが、RGB はカラー モデルであり、色空間ではありません。いくつかの RGB 色空間があります。
この式は、色空間のデータから NTSC 色空間で定義された輝度Y = R*0.299 + G*0.587 + B*0.114
を計算するための標準的な式です(Y、R、G、および B はすべて 0 と 1 の間の値であることに注意してください)。しかし、あなたの画像はおそらくその空間ではなく、色空間にある可能性が高いため、実際には、標準で定義された色空間に存在しない値を取得しているだけです(ある意味で独自の空間を構成しています)。Y
CIE-RGB
CIE-RGB
sRGB
これにより、もう 1 つの重要な問題が生じます。純粋な輝度ではなく、特定の画像の「青」スペクトルの光の強度を知りたいのです。あなたにとって青のスペクトルとは何かを正確に定義しなければ意味がありません。@abamert が言うように、RGB 画像から既に _ blue _ 値を取得しています。これsRGB
は、D65 ホワイト ポイントを使用し、x=0.15 と y=0.06 (CIE-XYZ
空間内) を青の原色として持つ青です。そして、それはあなたがすでに持っているので、計算がより簡単です.