メインコンテンツ

localtonemap

局所的なコントラストを強調しながら HDR イメージを表示用にレンダリング

説明

RGB = localtonemap(HDR) は、ハイ ダイナミック レンジ (HDR) イメージ HDR を、表示に適したロー ダイナミック レンジ (LDR) イメージ RGB に変換します。localtonemap は、イメージの局所的なコントラストを保持しながら、トーン マッピングというプロセスを使用します。

RGB = localtonemap(HDR,Name=Value) は、名前と値の引数を使用して、トーン マッピングのさまざまな特性を制御します。

すべて折りたたむ

ハイ ダイナミック レンジ イメージを読み込みます。

HDR = hdrread('office.hdr');

ダイナミック レンジ圧縮の量を小さくして局所トーン マッピングを適用します。

RGB = localtonemap(HDR, 'RangeCompression', 0.1);

結果のトーン マッピングされたイメージを表示します。

imshow(RGB)

Figure contains an axes object. The hidden axes object contains an object of type image.

操作を繰り返します。ただし、今回はイメージの細部を強調します。

RGB = localtonemap(HDR, ...
                  'RangeCompression', 0.1, ...
                  'EnhanceContrast', 0.5);

細部を増やしてトーン マッピングされた結果のイメージを表示します。

imshow(RGB)

Figure contains an axes object. The hidden axes object contains an object of type image.

入力引数

すべて折りたたむ

HDR イメージ。非負の数値から成る mn 列の行列または m×n×3 の配列として指定します。

データ型: single

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: RGB = localtonemap(HDR,RangeCompression=0.5) はレンジ圧縮を 0.5 に設定します。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: RGB = localtonemap(HDR,"RangeCompression",0.5)

HDR イメージのダイナミック レンジに適用される圧縮の量。範囲 [0, 1] の数値として指定します。

説明
0最小の圧縮。中間の 99% の強度をダイナミック レンジ 100:1 に再マッピングした後、指数 1/2.2 のガンマ補正を加えるのみになります。
1最大の圧縮。局所ラプラシアン フィルター処理を使用します。

局所的なコントラスト強調の量。[0, 1] の範囲の数値として指定します。

説明
0局所的なコントラストの変更なし
1最大の局所的なコントラスト強調

出力引数

すべて折りたたむ

ロー ダイナミック レンジ イメージ。入力イメージ HDR と同じサイズの数値配列として返されます。

アルゴリズム

localtonemap は対数空間で局所ラプラシアン フィルター処理を使用し、局所的なコントラストを保持または強調しながら HDR のダイナミック レンジを圧縮します。その際、出力イメージの外観が一致するように、圧縮イメージの 99% の中間の強度を 100:1 の固定ダイナミック レンジに再マッピングします。その後、localtonemap はガンマ補正を適用して表示用の最終イメージを生成します。

バージョン履歴

R2016b で導入