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)

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

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

入力引数

すべて折りたたむ

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

データ型: single | double

名前と値のペアの引数

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

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