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. The axes 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. The axes 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. The axes 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. The axes 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

名前と値のペアの引数

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

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

ブレンド中のコントラストに対する相対重み。'Contrast' と範囲 [0, 1] の数値スカラーで構成されるコンマ区切りのペアとして指定します。

ブレンド中の彩度に対する相対重み。'Saturation' と範囲 [0, 1] の数値スカラーで構成されるコンマ区切りのペアとして指定します。

ブレンド中の露光画質に対する相対重み。'Wellexposedness' と [0 1] の範囲の数値スカラーで構成されるコンマ区切りのペアとして指定します。各イメージの露光画質は、適切な露光のピクセルのモデルから、ピクセルの強度の発散に基づいています。

強力な光の低減。'ReduceStrongLight'true または false から構成されるコンマ区切りのペアとして指定します。'ReduceStrongLight'true の場合、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 で導入