Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

rgb2lin

ガンマ補正された RGB 値の線形化

説明

B = rgb2lin(A) は、B が線形 RGB 値を含むように、イメージ A 内の sRGB 値のガンマ補正を元に戻します。

B = rgb2lin(A,Name,Value) は追加オプションを制御するために名前と値のペアを使用してガンマ補正を元に戻します。

すべて折りたたむ

イメージを開きます。JPEG ファイル形式はガンマ補正された sRGB 色空間にイメージを保存します。

A = imread('foosball.jpg');

イメージを表示します。

imshow(A)
title('Scene With sRGB Gamma Correction')

関数 rgb2lin を使用することにより、ガンマ補正を元に戻してイメージを線形化します。オプションで、線形化された値のデータ型を指定します。

B = rgb2lin(A,'OutputType','double');

線形化されたイメージを表示します。線形化されたイメージ内の影は、予想どおり、元のイメージ内の影よりも暗くなります。

imshow(B)
title('Scene Without sRGB Gamma Correction')

入力引数

すべて折りたたむ

ガンマ補正された RGB カラー値。次のいずれかの形式の数値配列として指定します。

  • c 行 3 列のカラーマップ。各行が 1 つの RGB の色の値を指定します。

  • m x n x 3 のイメージ

  • m × n × 3 × p のイメージのスタック

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

名前と値のペアの引数

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

例: B = lin2rgb(I,'ColorSpace','adobe-rgb-1998') は、Adobe RGB (1998) 規格に基づいて、ガンマ補正されたイメージ I を線形化します。

入力イメージの色空間。'ColorSpace''srgb'、または 'adobe-rgb-1998' から構成されるコンマ区切りのペアとして指定します。

データ型: char | string

出力 RGB タイプのデータ型。'OutputType' と、'double''single''uint8'、または 'uint16' のいずれかで構成されるコンマ区切りのペアとして指定します。既定では、出力データ型は A のデータ型と同じです。

データ型: char | string

出力引数

すべて折りたたむ

線形化された RGB カラー値。入力 A と同じサイズの数値配列として返されます。

アルゴリズム

すべて折りたたむ

sRGB 規格を使用した線形化

sRGB 三刺激値は、以下のパラメトリック曲線を使用して線形化されます。

f(u) = -f(-u), u < 0

f(u) = c ⋅ u, 0 ≤ u < d

f(u) = (a ⋅ u + b)ɣ, u ≥ d,

ここで u は以下のパラメーターを持つカラー値を表します。

a = 1/1.055

b = 0.055/1.055

c = 1/12.92

d = 0.04045

ɣ = 2.4

Adobe RGB (1998) 規格を使用した線形化

Adobe RGB (1998) 三刺激値は、以下の単純なべき関数を使用して線形化されます。

v = uɣ,

ここで

ɣ = 2.19921875

参照

[1] Ebner, Marc. "Gamma Correction." Color Constancy. Chichester, West Sussex: John Wiley & Sons, 2007.

[2] Adobe Systems Incorporated. "Inverting the color component transfer function." Adobe RGB (1998) Color Image Encoding. Section 4.3.5.2, May 2005, p.12.

参考

R2017b で導入