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

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

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

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

imshow(RGB)

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

入力引数

すべて折りたたむ

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

データ型: single

名前と値のペアの引数

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

例: '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 で導入