OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
ハイダイナミックレンジイメージング

次のチュートリアル: 高レベルなスティッチングAPI (Stitcherクラス)

原著者Fedor Morozov
互換性OpenCV >= 3.0

はじめに

今日のデジタル画像や撮像機器の多くは、チャンネルあたり8ビットを使用しており、機器のダイナミックレンジを2桁(実際には256階調)に制限している。一方、人間の目は10桁にわたって変化する照明条件に適応できる。実世界のシーンを撮影すると、明るい領域は露出オーバーになり、暗い領域は露出アンダーになることがあり、単一の露出ではすべてのディテールを捉えることができない。HDRイメージングは、チャンネルあたり8ビットを超える(通常は32ビット浮動小数点値)画像を扱い、はるかに広いダイナミックレンジを可能にする。

HDR画像を得る方法はいくつかあるが、最も一般的なのは、異なる露出値で撮影したシーンの写真を使う方法である。これらの露出を合成するには、カメラのレスポンス関数を知っておくと便利であり、それを推定するアルゴリズムも存在する。HDR画像を合成した後は、通常のディスプレイで表示するために8ビットへ変換し直す必要がある。この処理をトーンマッピングと呼ぶ。シーン内の物体やカメラが撮影間で動く場合、異なる露出の画像を位置合わせ・アライメントする必要があるため、さらに複雑になる。

このチュートリアルでは、露出シーケンスからHDR画像を生成して表示する方法を示す。ここでは画像はすでにアライメントされており、動く物体もない。また、低ダイナミックレンジの画像を生成する露出合成 (exposure fusion) という別のアプローチも紹介する。HDRパイプラインの各ステップは異なるアルゴリズムで実装できるため、それらすべてを確認するにはリファレンスマニュアルを参照してほしい。

露光シーケンス

ソースコード

サンプル画像

画像・露光時間・list.txt ファイルを含むデータディレクトリはここからダウンロードできる。

解説

  • 画像と露出時間の読み込み

まず、ユーザーが指定したフォルダから入力画像と露出時間を読み込む。フォルダには画像と、ファイル名および露出時間の逆数を含むファイル list.txt が入っている必要がある。

今回の画像シーケンスでは、リストは次のようになっている:

memorial00.png 0.03125
memorial01.png 0.0625
...
memorial15.png 1024
  • カメラレスポンスの推定

多くのHDR構築アルゴリズムでは、カメラレスポンス関数 (CRF) を知ることが必要である。ここではキャリブレーションアルゴリズムの1つを使い、256個すべてのピクセル値に対する逆CRFを推定する。

  • HDR画像の生成

前項で計算したレスポンスを用いて、Debevecの重み付け方式によりHDR画像を構築する。

  • HDR画像のトーンマップ

一般的なLDRディスプレイで結果を見たいので、HDR画像を可能な限りディテールを保ったまま8ビットの範囲にマッピングする必要がある。これがトーンマッピング手法の主目的である。ここではバイラテラルフィルタリングを用いたトーンマッパーを使い、ガンマ補正の値として2.2を設定する。

  • 露出合成の実行

HDR画像が必要ない場合に、露出を合成する別の方法がある。この処理は露出合成 (exposure fusion) と呼ばれ、ガンマ補正を必要としないLDR画像を生成する。また、写真の露出値も使用しない。

  • 結果の書き出し

いよいよ結果を見るときである。HDR画像は一般的な画像フォーマットには保存できないため、Radiance画像 (.hdr) として保存する点に注意。また、すべてのHDRイメージング関数は結果を [0, 1] の範囲で返すため、結果に255を掛ける必要がある。

他のトーンマップアルゴリズム、cv::TonemapDragocv::TonemapMantiukcv::TonemapReinhard を試すこともできる。また、自分の写真に合わせてHDRキャリブレーションやトーンマップ手法のパラメータを調整することもできる。

結果

トーンマッピング画像

露光合成 (Exposure fusion)

追加リソース

  1. Paul E Debevec and Jitendra Malik. Recovering high dynamic range radiance maps from photographs. In ACM SIGGRAPH 2008 classes, page 31. ACM, 2008. [71]
  2. Mark A Robertson, Sean Borman, and Robert L Stevenson. Dynamic range improvement through multiple exposures. In Image Processing, 1999. ICIP 99. Proceedings. 1999 International Conference on, volume 3, pages 159–163. IEEE, 1999. [235]
  3. Tom Mertens, Jan Kautz, and Frank Van Reeth. Exposure fusion. In Computer Graphics and Applications, 2007. PG'07. 15th Pacific Conference on, pages 382–390. IEEE, 2007. [195]
  4. Wikipedia-HDR
  5. Recovering High Dynamic Range Radiance Maps from Photographs (webページ)