Main Content

tonemap

表示のためのハイ ダイナミック レンジ イメージのレンダリング

説明

RGB = tonemap(HDR) は、トーン マッピングというプロセスを使用して、ハイ ダイナミック レンジ イメージ HDR を表示に適したそれより低いダイナミック レンジ イメージ RGB に変換します。トーン マッピングは、より制限されたダイナミック レンジを使用する表示でハイ ダイナミック レンジ イメージの外観を近似する際に使用される手法です。

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

すべて折りたたむ

この例では、HDR (ハイ ダイナミック レンジ) イメージを表示する方法を説明します。HDR イメージを表示するには、まずデータをコンピューターに正しく表示できるダイナミック レンジに変換しなければなりません。

hdrread を使用してハイ ダイナミック レンジ (HDR) イメージを読み取ります。HDR イメージを表示しようとしても正しく表示されないことに注目してください。

hdr_image = hdrread("office.hdr");
imshow(hdr_image)

関数 tonemap を使用してコンピューターで表示できるダイナミック レンジに HDR イメージを変換します。この関数は HDR イメージをデータ型 uint8 の RGB イメージに変換します。

rgb = tonemap(hdr_image);
whos
  Name             Size                  Bytes  Class     Attributes

  hdr_image      665x1000x3            7980000  single              
  rgb            665x1000x3            1995000  uint8               

RGB イメージを表示します。

imshow(rgb)

入力引数

すべて折りたたむ

ハイ ダイナミック レンジ イメージ。m x n x 3 の配列として指定します。

データ型: single | double

名前と値の引数

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

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

例: RGB = tonemap(HDR,'AdjustLightness',[0.05 0.95]);

レンダリングされたイメージの全体的な明るさ。2 要素ベクトルとして指定します。ベクトルは [low high] の形式をとります。ここで、low および high は、(0, 1] を範囲とする、ロー ダイナミック レンジ イメージの輝度の値です。これらの値は imadjust に渡されます。

データ型: double

レンダリングされたイメージの色の彩度。正のスカラーとして指定します。値が 1 より大きい場合、色の彩度は高くなります。値が範囲 (0, 1] である場合、色の彩度は低くなります。

データ型: double

トーン マッピング操作の適応ヒストグラム均等化の実行中に使用されるタイル数。正の整数の 2 要素ベクトルとして指定します。ベクトルは [rows cols] の形式をとります。ここで、rows および cols はタイルの行数と列数を指定します。rows および cols は、2 以上でなければなりません。合計イメージ タイル数は、rows*cols に等しくなります。タイル数が多いと、局所的なコントラストが大きいイメージとなります。

データ型: double

出力引数

すべて折りたたむ

ロー ダイナミック レンジ イメージ。m x n x 3 の配列として指定します。

データ型: uint8

バージョン履歴

R2007b で導入