ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

makehdr

ハイ ダイナミック レンジ イメージを作成

構文

HDR = makehdr(files)
HDR = makehdr(files,Name,Value,...)

説明

HDR = makehdr(files) は、セル配列 files にリストされる、空間的にレジストレーションされたロー ダイナミック レンジ イメージのセットから単精度のハイ ダイナミック レンジ イメージ HDR を作成します。これらのファイルには EXIF 露光メタデータを含めなければなりません。makehdr は、最も明るいイメージと最も暗いイメージの中間の露光値を、ハイ ダイナミック レンジの計算の基本露光として使用します。この値は、特定のファイルにある必要はありません。この中間の露光値の計算方法についての詳細は、アルゴリズムを参照してください)。

HDR = makehdr(files,Name,Value,...) はハイ ダイナミック レンジ イメージを作成します。ここでは、パラメーターと対応する値を使用してイメージ作成のさまざまな特性を制御できます。パラメーター名は省略形でも構いません。大文字と小文字は区別されません。

メモ

一度に使用できるのは、BaseFileExposureValuesRelativeExposure のパラメーターのいずれかのみになります。

すべて折りたたむ

同じ絞り値 (f-stop number) を共有し、異なる露光時間をもつ一連のロー ダイナミック レンジ イメージからハイ ダイナミック レンジ (HDR) イメージを作成します。

6 つのロー ダイナミック レンジ イメージを読み込みます。各露光時間のベクトルを作成します。

files = {'office_1.jpg', 'office_2.jpg', 'office_3.jpg', ...
         'office_4.jpg', 'office_5.jpg', 'office_6.jpg'};
expTimes = [0.0333, 0.1000, 0.3333, 0.6250, 1.3000, 4.0000];

このイメージを組み合わせて HDR イメージにします。

hdr = makehdr(files, 'RelativeExposure', expTimes ./ expTimes(1));

HDR イメージを可視化します。

rgb = tonemap(hdr);
figure
imshow(rgb)

入力引数

すべて折りたたむ

空間的にレジストレーションされたロー ダイナミック レンジ イメージのセット。文字ベクトルのセル配列として指定します。入力イメージは、カラーまたはグレースケールで、ビット深度 8 または 16 になります。

データ型: char | cell

名前/値のペアの引数

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

例:

すべて折りたたむ

基本露光として使用するファイルの名前。文字ベクトルとして指定します。

データ型: char

セット内の各ファイルの露光値。files 内のロー ダイナミック レンジ イメージごとに 1 つの要素をもつ、正の値の数値ベクトルとして指定します。露光値 (EV) が 1 増加するのは、2 倍の露光に相当し、1 EV 減少するのは 2 分の 1 の露光に相当します。任意の正の値を受け入れます。このパラメーターで指定された値は、EXIF 露光メタデータをオーバーライドします。

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

セット内の各ロー ダイナミック レンジ イメージの相対露光値。files 内のロー ダイナミック レンジ イメージごとに 1 つの要素をもつ、数値ベクトルとして指定します。0.5 の相対露光 (RE) をもつイメージには、1.0 の RE をもつイメージの半分の露光値があります。RE 値 3 は RE が 1 のイメージの 3 倍の露光になります。このパラメーターで指定された値は、EXIF 露光メタデータをオーバーライドします。

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

最小適正露光値。数値スカラーとして指定します。各ロー ダイナミック レンジ イメージで、これより小さい値をもつピクセルは露光不足と見なされ、最終的なハイ ダイナミック レンジ イメージに寄与しません。このパラメーターの値が省略された場合、イメージのデータ型で許容される最大強度の 2% とみなされます。

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

最大適正露光値。数値スカラーとして指定します。各ロー ダイナミック レンジ イメージで、これより大きい値をもつピクセルは露光過多と見なされ、最終的なハイ ダイナミック レンジ イメージに寄与しません。このパラメーターの値が省略された場合、その値をイメージのデータ型で許容される最大強度の 98% とします。

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

出力引数

すべて折りたたむ

ハイ ダイナミック レンジ イメージ。single クラスの数値配列として返されます。

アルゴリズム

関数 makehdr は、ファイルに格納されているか 'Exposurevalues' パラメーターを使用して指定された口径およびシャッター速度のメタデータに基づいて、各イメージの露光値 (EV) を計算することによって中間の露光値を計算します。仮想または実際の中間イメージの EV が、基本露光として使用されます。したがって、中間の露光は最大の EV と最小の EV の平均であり、実際の明るさの平均ではありません (EV には非線形で幾何学的な性質があるため)。

参照

[1] Reinhard, et al.High Dynamic Range Imaging 2006. Ch. 4.

R2008a で導入

この情報は役に立ちましたか?