Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

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 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 axes object contains an object of type image.

入力引数

すべて折りたたむ

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

データ型: single

名前と値の引数

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

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

例: 'RangeCompression',0.5

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

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

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

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

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

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

出力引数

すべて折りたたむ

トーン マッピングされた LDR イメージ。入力イメージ hdr と同じサイズの数値配列として返されます。

アルゴリズム

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

バージョン履歴

R2016b で導入