3

同じシーンを異なる露出で撮影した一連の画像があります。これらの画像には EXIF データがないため、絞り値やシャッター速度などの有用な情報を抽出する方法はありません。

私がやろうとしているのは、画像間のストップの違いを判断することです。つまり、Image1 は Image0 の +1.3 ストップです。

私の現在のアプローチは、最初に式を使用して画像のRGB値から輝度を計算することです

L = 0.2126 * R + 0.7152 * G + 0.0722 * B

方程式でさまざまな数値が使用されているのを見てきましたが、一般的に、最終結果の L にあまり影響を与えるべきではありません。

その後、画像の対数平均輝度を導き出します。

exp(avg of log(luminance of image))

しかし、どういうわけか、対数平均輝度は、画像間の露出の違いをあまり示していないようです。露出の違いを決定する方法についてのアイデアはありますか?

編集: c/c++ で

4

1 に答える 1

1

一般に、次の 2 つの問題を解決する必要があります。

1. 画像データを線形化する

(意味が明確でない場合: ピクセルによって収集される光が 2 倍になると、線形化された画像の強度値が 2 倍になります。)

画像入力は既に (十分に) 線形化されている可能性があります -> パート 2 にスキップできます。コンテンツがカメラから取得され、JPEG である場合、これはほとんど当てはまりません。

この問題の真の「解決策」は、カメラの応答関数を見つけることです。これを反転して画像データに適用し、線形強度値を取得します。これは決して簡単な作業ではありません。EMoRモデルは、あらゆる種類のソフトウェア (Photoshop、PTGui、Photomatix など) でカメラ応答関数を記述するために広く使用されています。この問題を解決するいくつかのオープン ソース ソフトウェア (ただし、別のモデル iirc を使用) はPFS calibrationです。

そうは言っても、単純な逆ガンマの適用で済むかもしれません。適切なガンマ値の大まかな「推測」は、次のようにして見つけることができます。

  1. ee/2の 2つの露出時間で均一に照らされた静的なシーンをキャプチャする
  2. 両方の画像にいくつかの逆ガンマ変換を適用します (たとえば、0.1 ステップで 1.8 から 2.4 に)。
  3. すべての短時間露光画像に 2.0 を掛けて、それぞれの長時間露光画像から差し引きます
  4. 全体的な差が最小になるガンマを選択する

2. ストップ単位での照射の実際の差、すなわち log2(scale factor) を見つけます。

シーンが静的である (移動するオブジェクトやカメラがない) と仮定すると、これは比較的簡単です。

sum1 = sum2 = 0
foreach pixel pair (p1,p2) from the two images:
  if p1 or p2 is close to 0 or 255:
    skip this pair
  sum1 += p1 and sum2 += p2
return log2(sum1 / sum2)

大きな画像では、画像をサブサンプリングすると、これは確かに同様に機能し、はるかに高速になります。

カメラが静止していてもシーンが静止していない場合 (オブジェクトが動いている場合)、これはうまく機能しなくなります。この場合、上記の手順を数回繰り返すだけで許容できる結果が得られ、前回の実行の出力を正しい倍率の推定値として使用し、商が現在の推定値から離れすぎているピクセル ペアを破棄しました。したがって、基本的に上記のif行を次のように置き換えます。

if <see above> or if abs(log2(p1/p2) - estimate) > 0.5:

一定回数の繰り返しの後、または 2 つの連続した推定値が互いに十分に近い場合は、繰り返しを停止します。

編集:輝度への変換に関する注意

それを行う必要はまったくありません(Tony Dがすでに述べたように)。もしあなたが主張する場合は、線形化ステップの後に行います(Mark Ransomが指摘したように)。完璧な設定 (静的シーン、ノイズなし、デモザイクなし、量子化なし) では、すべてのピクセルのすべてのチャネルが同じ比率になりますp1/p2(どちらも飽和していない場合)。したがって、異なるチャネルの相対的な重み付けは関係ありません。すべてのピクセル/チャネルを合計する (R、G、B を均等に重み付けする) か、緑のチャネルのみを使用することができます。

于 2013-02-23T21:56:36.673 に答える