2012-06-29 115 views
5

多くの照明条件で画像のRGB値を取得したいと考えています。どうにかしてニュートラルなシナリオを得るために、いくつかの定義済みの画像のRGB値でRGB値を正規化したいと思います。RGB値を基準RGB値で正規化する方法

私を説明しましょう。私は6つの定義済みの画像を持っており、それらの正確な平均RGB値を知っています。ここでは、さまざまな照明条件で未知の画像を撮影します。同じ条件で、あらかじめ定義された6枚の画像を撮影します。私の目標は、事前定義された画像の既知の基準rgb値をカメラ画像から計算された値と比較することによって正規化公式を定義することです。この正規化パラメータIにより、未知の画像のRGB値を較正する。照明条件に関係なく、未知の画像から平均RGB値を中立的に得ることができます。

これをJavaで簡単に実現する方法はありますか。

答えて

0

異なる照明状況の場合、線形RGB補正が必要です。 R、G、Bの値のそれぞれに、各チャンネルに対して導出された定数を単純に乗算します。

基準色が1つしかない場合は、基準色を掛けて、取り込まれた色で除算するのは簡単です。たとえば、基準色が(240,200,120)で、画像が250,190,150と測定された場合、赤は240/250、緑は200/190、青は120/150となります。イメージ内のすべてのピクセルに同じ定数を使用します。

一致する複数の色を使用すると、補正係数を平均して1組の定数に到達する必要があります。たとえば、(200,150,20)の参照があり、それが非常に遠くにある可能性のある青の量を倍にしようとしていると測定した(190,140,​​10)場合、より明るい色に大きな重みを付ける必要があります。最も簡単な方法は、すべての基準値を合計し、測定値の合計で除算することです。

+0

こんにちは私はあなたの方法を使用しています。 RGB値の代わりに、私はHSI色空間を使用しており、強度行列を正規化するだけです。 –

+0

@ P basak - 言い換えれば、あなたは基本的に私が提案したことをしているが、YUVの代わりにHSIを使っている。つまり、明るいチャンネルと非常によく似た何かの正規化が必要でした。 – trumpetlicks

+0

@マーク - あなたが提案しているのは、各チャンネルの平均です。その平均を新しい画像の正規化係数として使用します。 – trumpetlicks

1

RGBを正規化するためにこれを行う理由、または画像を同様の明るさに正規化しようとしている理由ですか?あなたの目標が単に明るさの場合、私は明るさ成分を持つ色標準に変換し、明るさ成分のみを正規化するでしょう。

そこから、別の色のコンポーネント標準で新しい画像を撮り、好きなときにRGBに戻すことができます。

手順(ただし、Javaで):あなたがalgorithm described hereを使用して明るさの正規化を実装することができます。このように

1) Convert - RGBImage --> YUVImage 
2) Normalize RGBImage using the Y component 
3) Convert - Normalized(YUVImage) --> Normalized(RGBImage) 

ELSEでは、各チャネルの平均値を平均し、各チャネルを別々に計算する新しい画像の正規化係数の分子として使用できます。

+0

こんにちは、本当にrgbを正規化したいと思います。 –

+0

私は校正のようなものが欲しいです。私は参照画像からの偏差を計算し、その偏差を未知の画像に適用して中性値を取得したいと思います。 –

+0

私はHSI色空間に変換しました。今私は参照とインデックスを正規化する方法を探しています。 –

関連する問題