Main Content

illumwhite

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

説明

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

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

illuminant = illumwhite(___,Mask=mask) はバイナリ マスクで定義された ROI 内のピクセルのみを使用して照度を推定します。

すべて折りたたむ

イメージを開いて、不適切なホワイト バランスで表示します。

A = imread("foosball.jpg");
imshow(A)
title("Original Image")

Figure contains an axes object. The axes object with title Original Image contains an object of type 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);

補正したイメージを表示します。

imshow(B)
title("White-Balanced Image using White Patch with topPercentile="+ ...
    num2str(topPercentile))

Figure contains an axes object. The axes object with title White-Balanced Image using White Patch with topPercentile=5 contains an object of type image.

入力引数

すべて折りたたむ

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

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

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

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

Grayscale colorbar showing pixels in increasing order of intensity to the right. The intensity value to use for illuminant estimation is the intensity value of topPercentile.

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

イメージ マスク。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 で導入