Main Content

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

blendexposure

異なる露光のイメージから適切な露光のイメージの作成

説明

J = blendexposure(I1,I2,...,In) は露光が異なるグレースケール イメージまたは RGB イメージをブレンドします。blendexposure はコントラスト、彩度および適切な露光に基づいてイメージをブレンドし、適切な露光のイメージ J を返します。

J = blendexposure(I1,I2,...,In,Name=Value) は露光が異なるイメージをブレンドします。名前と値の引数を使用して、各入力イメージの混合イメージに対する寄与度を調整します。

すべて折りたたむ

露光が異なる一連のイメージを読み取ります。これらは固定カメラでシーンの中に動く物体がない状況で撮影されたものです。

I1 = imread('car_1.jpg');
I2 = imread('car_2.jpg');
I3 = imread('car_3.jpg');
I4 = imread('car_4.jpg');

イメージを表示します。露光不足のイメージでは、ヘッドライトのような明るい領域だけに、詳しい情報があります。逆に、露光オーバーのイメージのヘッドライトは飽和していて、最適なコントラストは、レンガの床や屋根のような暗い領域で得られます。

montage({I1,I2,I3,I4})

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

露光融合を使用してイメージをブレンドします。既定では、関数 blendexposure は強力な光源からのハイライトを抑えるようにします。比較のために、ハイライトを抑えないイメージのブレンドも行います。2 つの結果を表示します。

E = blendexposure(I1,I2,I3,I4);
F = blendexposure(I1,I2,I3,I4,'ReduceStrongLight',false);
montage({E,F})
title('Exposure Fusion With (Left) and Without (Right) Strong Light Suppression')

Figure contains an axes object. The axes object with title Exposure Fusion With (Left) and Without (Right) Strong Light Suppression contains an object of type image.

融合したイメージでは、明るい領域と暗い領域に、詳しい情報があります。強力な光が抑えられると、ヘッドライトの形状を識別でき、飽和したピクセルは、ヘッドライトの境界を超えません。強力な光が抑えられないと、ヘッドライトの形状を識別できず、床や他の車の一部のピクセルは、ヘッドライトの反射で飽和しています。

露光が異なる一連のイメージを読み取ります。これらのイメージは固定カメラで撮影されたものです。シーンの中に動く物体はありません。

I1 = imread('office_1.jpg');
I2 = imread('office_2.jpg');
I3 = imread('office_3.jpg');
I4 = imread('office_4.jpg');
I5 = imread('office_5.jpg');
I6 = imread('office_6.jpg');
montage({I1,I2,I3,I4,I5,I6})
title('Images with Different Exposures')

Figure contains an axes object. The axes object with title Images with Different Exposures contains an object of type image.

露光融合を使用して登録イメージをブレンドします。オプションで融合のコントラスト、彩度、露光の重みを変更し、強力な光源を低減しないで実行します。結果を表示します。

E = blendexposure(I1,I2,I3,I4,I5,I6,'contrast',0.8,...
    'saturation',0.8,'wellexposedness',0.8,'reduceStrongLight',false);
imshow(E)
title('Blended Image Using Exposure Fusion')

Figure contains an axes object. The axes object with title Blended Image Using Exposure Fusion contains an object of type image.

入力引数

すべて折りたたむ

グレースケールまたは RGB イメージ。一連の m 行 n 列の数値行列または m x n x 3 の数値配列として指定します。イメージはすべて同じサイズで同じデータ型でなければなりません。

データ型: single | double | uint8 | uint16

名前と値の引数

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

例: blendexposure(I1,I2,I3,Contrast=0.5,Saturation=0.9)

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

例: blendexposure(I1,I2,I3,"Contrast",0.5,"Saturation",0.9)

ブレンド中のコントラストに対する相対重み。範囲 [0, 1] の数値として指定します。

ブレンド中の彩度に対する相対重み。範囲 [0, 1] の数値として指定します。

ブレンド中の露光画質に対する相対重み。範囲 [0, 1] の数値として指定します。各イメージの露光画質は、適切な露光のピクセルのモデルから、ピクセルの強度の発散に基づいています。

強力な光の低減。数値または logical の 1 (true) または 0 (false) として指定します。ReduceStrongLighttrue の場合、blendexposure はイメージで強力な光源からのハイライトを抑えるようにします。

メモ

入力イメージに強力な光源がなく、ReduceStrongLighttrue を指定した場合、出力イメージ J ではコントラストが低くなります。

出力引数

すべて折りたたむ

融合イメージ。サイズとデータ型が入力イメージ I1,I2,...,In と同じ数値行列または配列として返されます。

ヒント

  • 動きのあるシーンやカメラ ジッターがあるイメージをブレンドするには、関数 imregmtb を使用してまずイメージのレジストレーションを実行します。imregmtb ではイメージのレジストレーションを実行するとき、平行移動だけを考慮します。回転や他の種類の幾何学的変換は考慮されません。

アルゴリズム

関数 blendexposure は次のとおり、各画質測定の重みを計算します。

  • コントラストの重みはラプラシアン フィルター処理を使用して計算されます。

  • 彩度の重みは、各イメージの標準偏差から計算されます。

  • 適切な露光は、平均 0.5、標準偏差 0.2 のガウス分布とイメージの各部分を比較して決定します。

  • 強力な光の低減の重みは、他の 3 つの重みを混合し、一定の平均と分散のガウス分布を乗算して計算します。

これらの重みは、シームレスなブレンド用ガウス ピラミッドと対応するイメージのラプラス ピラミッドを使用し、分解されます。これはシーンの細部を維持できます。

参照

[1] Mertens, T., J. Kautz, and F. V. Reeth. "Exposure Fusion." Pacific Graphics 2007: Proceedings of the Pacific Conference on Computer Graphics and Applications. Maui, HI, 2007, pp. 382–390.

バージョン履歴

R2018a で導入