Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

illumwhite

ホワイト パッチ レチネックス アルゴリズムを使用した光源の推定

説明

illuminant = illumwhite(A) は、最も明るい赤、緑、青の上位 1% の値が白色を表していると仮定することで、RGB イメージ A 内のシーン照度を推定します。

illuminant = illumwhite(A,topPercentile) は最も明るい赤、緑、青の値の topPercentile の割合を使用して照度を推定します。

illuminant = illumwhite(___,Name,Value) は追加オプションを制御するために名前と値のペアを使用して照度を推定します。

すべて折りたたむ

イメージを開き、それを表示します。表示するイメージのサイズを縮小するオプションの倍率を指定します。

A = imread('foosball.jpg');
figure
imshow(A,'InitialMagnification',25)
title('Original Image')

JPEG ファイル形式はガンマ補正された sRGB 色空間にイメージを保存します。関数rgb2linを使用してガンマ補正を元に戻します。

A_lin = rgb2lin(A);

最も明るいピクセルの上位 5% からシーン照度を推定します。入力イメージが線形化されているため、関数 illumwhite は線形 RGB 色空間で光源を返します。

topPercentile = 5;
illuminant = illumwhite(A,topPercentile)
illuminant = 1×3

    0.7333    0.8314    1.0000

illuminant の 3 番目の係数が最大です。これはイメージの青みがかった色調と一致します。

関数chromadaptに推定された光源を入力することで色を補正します。

B_lin = chromadapt(A_lin,illuminant,'ColorSpace','linear-rgb');

関数lin2rgbを使用してガンマ補正を適用することで、画面にホワイト バランス済みのイメージを正しく表示します。

B = lin2rgb(B_lin);

オプションの倍率を設定して、補正後のイメージを表示します。

figure
imshow(B,'InitialMagnification',25)
title(['White-Balanced Image using White Patch with topPercentile=' ...
    num2str(topPercentile)])

入力引数

すべて折りたたむ

RGB イメージ。m x n x 3 の数値配列として指定します。

データ型: single | double | uint8 | uint16

光源推定のために使用する最も明るい色の百分位。[0, 100] の範囲で数値スカラーとして指定します。赤、緑、青の最大値を返すには、topPercentile を 0 に設定します。

イメージは、光源を推定するのに選択された赤、緑、青の値を示します。選択は、各カラー チャネルごとに異なります。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

名前と値のペアの引数

オプションの引数 Name,Value のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: illuminant = illumwhite(I,'Mask',m) はバイナリ マスク m に従って選択されたイメージ I 内のピクセルのサブセットを使用してシーンの光源を推定します。

イメージ マスク。 'Mask' と m 行 n 列の logical または数値配列で構成されるコンマ区切りのペアとして指定します。マスクは、光源を推定するときに入力イメージ A のどのピクセルを使用するかを示します。計算では、マスク値 0 に対応する A 内のピクセルが除外されます。既定では、マスクはすべて 1 を持ち、A 内のすべてのピクセルが推定に含まれます。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

出力引数

すべて折りたたむ

シーン照度の推定。3 要素の数値の行ベクトルとして返されます。3 つの要素は、光源の赤、緑、青の値に対応しています。

データ型: double

参照

[1] Ebner, Marc. "White Patch Retinex." Color Constancy. Chichester, West Sussex: John Wiley & Sons, 2007.

R2017b で導入