6

多くの照明条件で画像のRGB値を取得したい。どういうわけかニュートラルなシナリオを取得するために、いくつかの事前定義された画像のRGB値でRGB値を正規化したいです。

説明させてください。6つの事前定義された画像があり、それらの正確な平均RGB値を知っています。次に、さまざまな照明条件で未知の画像の写真を撮ります。また、同じ条件で事前定義された6枚の画像の写真を撮ります。ここでの私の目標は、事前定義された画像の既知の参照RGB値をカメラ画像から計算された値と比較することにより、正規化式を定義することです。この正規化パラメータを使用して、未知の画像のRGB値を調整します。照明条件に関係なく、未知の画像からニュートラルな方法で平均RGB値を取得できるようにします。

Javaでこれを簡単に実現するにはどうすればよいですか。

4

2 に答える 2

1

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

そこから、別の色コンポーネント標準で新しい画像を取得し、必要に応じて RGB に戻すことができます。

手順(Javaではありません):

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

このようにして、ここで説明するアルゴリズムを使用して明るさの正規化を実装できます。

それ以外の場合は、各チャネルの平均を平均し、それらを新しい画像の正規化係数の分子として使用して、各チャネルを個別に計算できます。

于 2012-06-29T02:17:27.413 に答える
0

さまざまな照明状況では、必要なのはリニア RGB 補正だけです。R、G、B のそれぞれの値に、各チャンネル用に導出された定数を掛けるだけです。

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

複数の色を一致させるには、修正係数を平均して、単一の定数セットに到達する必要があります。たとえば、(200,150,20) の参照があり、(190,140,​​10) を測定した場合、青の量を 2 倍にしようとしますが、これは非常に遠い可能性があります。最も簡単な方法は、すべての参照値を合計し、測定値の合計で割ることです。

于 2012-06-29T04:15:10.720 に答える