(57)【特許請求の範囲】
【請求項１】
複数の異なる露出値での撮影を繰り返しながら連続的に撮影範囲を変えて撮影された複数の画像を取得する取得手段と、
前記取得手段が取得した複数の画像について、隣接する画像間において被写体が重複する重複領域を検出する検出手段と、
前記検出手段が検出した前記重複領域を所定の回数を超えないように重複させた合成領域を作成する作成手段と、
前記取得手段が取得した前記複数の画像それぞれの前記合成領域での合成比率を、前記複数の画像それぞれの撮影時の露出値と信号値とに基づいて算出する算出手段と、
前記算出手段が算出した前記合成比率で、前記作成手段が作成した合成領域での画像合成を行うことにより広角合成画像を生成する生成手段と、備えることを特徴とする画像処理装置。
【請求項２】
前記算出手段は、前記合成領域に含まれる、前記重複領域を重複させる回数が前記所定の回数に達していない領域を前記広角合成画像に付加する場合、前記所定の回数に達していない領域の信号値に応じて前記合成比率を調整することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記複数の画像は、適正露出での撮影に対して低露出と高露出でそれぞれ撮影された画像を含み、
前記算出手段は、前記低露出で撮影された画像の前記合成比率を信号値の小さい領域では下げると共に信号値の大きい領域では上げ、前記高露出で撮影された画像の前記合成比率を信号値の小さい領域では上げると共に信号値の大きい領域では下げることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記算出手段は、前記適正露出で撮影された画像での輝度分布に基づいて、前記低露出で撮影された画像と前記高露出で撮影された画像のそれぞれの前記合成比率を調整することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記所定の回数は、前記複数の画像の撮影に用いられた前記異なる露出値の段数に応じて設定されることを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記所定の回数は、前記露出値の異なる画像が１枚ずつ重ねられて前記合成領域が作成されるように設定されることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記生成手段は、前記複数の画像のうちの最後の画像が、適正露出で撮影された画像であって白飛びおよび黒潰れのない画像である場合には、前記最後の画像を前記広角合成画像に含めることを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記検出手段は、前記複数の画像を撮影した撮像手段のレンズの焦点距離および収差量に基づいて、前記重複領域を補正することを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記生成手段は、前記複数の画像を撮影するときの撮像装置の動きの速度に応じて、前記所定の数を変更することを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
複数の異なる露出値での撮影を繰り返しながら連続的に撮影範囲を変えて撮影された複数の画像を取得する取得手段と、
前記取得手段が取得した複数の画像を、隣接する画像間において撮影された被写体が重複するように、露出値の異なる画像を１枚ずつ重ね合わせる重ね合わせ手段と、
前記重ね合わせ手段によって、露出値の異なる画像が１枚ずつ重なり合った領域で画像合成を行うことによって広角合成画像を生成する生成手段と、を備え、
前記重ね合わせ手段は、同じ露出値で撮影された画像に共通する被写体範囲が存在しても、該共通する被写体範囲を二重に重ね合わせることのないように前記同じ露出値で撮影された画像の重ね合わせを制限することを特徴とする画像処理装置。
【請求項１１】
複数の異なる露出値での撮影を繰り返しながら連続的に撮影範囲を変えて撮影された複数の画像を合成する画像処理方法であって、
前記複数の画像を取得する取得ステップと、
前記取得ステップで取得した前記複数の画像について、順次、隣接する画像間で被写体が重複する重複領域を検出する検出ステップと、
前記検出ステップで検出した前記重複領域を所定の回数を超えないように重複させた合成領域を作成する作成ステップと、
前記取得ステップで取得した前記複数の画像それぞれの前記合成領域での合成比率を前記複数の画像それぞれの撮影時の露出値と信号値とに基づいて算出する算出ステップと、
前記算出ステップが算出した前記合成比率を用いて前記作成ステップで作成された前記合成領域での画像合成を行うことにより広角合成画像を生成する生成ステップと、を有することを特徴とする画像処理方法。
【請求項１２】
請求項１１に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の画像から広角画像を合成する画像処理装置及び画像処理方法に関し、特に、広角画像を合成する際に白飛びや黒潰れの発生が抑制された良好な画質を得ることを可能にする技術に関する。
【背景技術】
【０００２】
近年、ビデオカメラ（テレビジョンカメラ）やスチルカメラ等の撮像装置には、撮像手段として、ＣＣＤセンサやＣＭＯＳセンサ等の固体撮像素子が広く用いられている。そして、固体撮像素子のダイナミックレンジ拡大やノイズの低減、手持ち撮影時の手ぶれの抑制、画角拡大等を目的として、同一シーンで複数の画像を撮影し、これら複数の画像を演算により合成する手法が提案されている。
【０００３】
例えば、撮像装置を動かして撮影範囲をずらしながら連続撮影を行い、得られた複数の画像のマッチング（位置合わせ）を行って、被写体が連続するように合成することで、広角画像を生成する手法が提案されている（特許文献１参照）。また、露出を交互に変えながら撮影を行い、得られた画像を合成してダイナミックレンジを拡大した画像を得る手法が提案されている（特許文献２参照）。
【０００４】
以下、このようにして複数の画像を画角が拡大するように合成する手法を「広角画像合成」と称呼し、また、広角画像合成により得られた画像を「広角合成画像」と称呼することとする。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−５８９３１号公報
【特許文献２】特開平１１−６５００４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載された技術では、撮影した複数の画像について、位置合わせ座標を特定し、特定した座標位置で画像を繋ぎ合わせることで、広角合成画像を生成している。そのため、非常に広大な画角を収める広角合成画像を生成することができるが、被写体のダイナミックレンジが広くなって、白飛びや黒潰れが含まれた画像になってしまう可能性がある。
【０００７】
一方、特許文献２では、同じ露出値で撮影した画像同士を繋ぎ合わせた広角合成画像を生成し、その後、露出値の異なる広角合成画像同士を合成している。この場合、広角画像合成を行う途中で作成される、同じ露出値の画像から生成した広角合成画像等の中間画像の記憶等に非常に多くのメモリを必要とする。その結果、メモリを多く持たない安価な画像処理装置では、画像合成速度が遅くなり、或いは、画像合成を実行できなくなるおそれがある。
【０００８】
本発明は、画像合成時の一時的な画像記憶に必要な記憶に必要なメモリ量を低減させると共に、白飛びや黒潰れの発生を抑制した広角合成画像の生成を可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る画像処理装置は、複数の異なる露出値での撮影を繰り返しながら連続的に撮影範囲を変えて撮影された複数の画像を取得する取得手段と、前記取得手段が取得した複数の画像について、隣接する画像間において被写体が重複する重複領域を検出する検出手段と、前記検出手段が検出した前記重複領域を所定の回数を超えないように重複させた合成領域を作成する作成手段と、前記取得手段が取得した前記複数の画像それぞれの前記合成領域での合成比率を、前記複数の画像それぞれの撮影時の露出値と信号値とに基づいて算出する算出手段と、前記算出手段が算出した前記合成比率で、前記作成手段が作成した合成領域での画像合成を行うことにより広角合成画像を生成する生成手段と、備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、広角合成画像を生成する際の中間画像の記憶に必要なメモリ量を低減させることができ、また、白飛びや黒潰れの発生を抑制した広角合成画像を生成することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るデジタルカメラの概略構成を示すブロック図である。
【図２】図１のデジタルカメラに対して設定される座標系を示す図である。
【図３】図１のデジタルカメラが備える画像処理部の構成を示すブロック図である。
【図４】図１のデジタルカメラで広角画像合成を行う場合の処理手順の一例を示すフローチャートである。
【図５】図４のステップＳ４０１のパンニング撮影の方法を模式的に示す図である。
【図６】図４のステップＳ４０１のパンニング撮影により得られる実際の撮影画像の例と、実際の撮影画像を補正して得られる補正画像の例と、補正画像から生成される広角合成画像の例を示す図である。
【図７】図４のステップＳ４０３の重複領域の特定方法を図６（ｂ）に示す補正画像を用いて説明する図である。
【図８】図４のステップＳ４０４の合成マップの作成処理の詳細なフローチャートである。
【図９】図８のステップＳ８０１の合成回数マップの作成手順を模式的に説明する図である。
【図１０】図４のステップＳ４０４の合成マップの作成処理で用いる低露出画像、適正露出画像、高露出画像の合成比率の例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、添付図面を参照して詳細に説明する。ここでは、本発明に係る画像処理装置として、所謂、デジタルカメラを取り上げることとする。但し、本発明に係る画像処理装置は、デジタルカメラに限定されるものではなく、例えば、カメラ（撮像手段）が取得した撮影画像を処理することができるものであればよく、例えば、パーソナルコンピュータ（ＰＣ）等であってもよい。つまり、撮像手段と画像処理手段とは、デジタルカメラのように一体であってもよいし、撮像手段とパーソナルコンピュータの組み合わせのように別体であってもよい。
【００１３】
撮像手段と画像処理手段とが一体である場合に、本発明に係る画像処理装置は、デジタルカメラやデジタルビデオカメ等の撮影に特化された機器に限定されず、例えば、カメラ機能を有する携帯通信端末やパーソナルコンピュータ、ゲーム機等であってもよい。また、撮像手段と画像処理手段とが別体である場合に、撮像手段から画像処理手段への撮影画像の送信は、無線通信か有線通信かを問わず、また、直接接続かネットワークを介した接続かも問わない。
【００１４】
＜デジタルカメラの概略構造＞
図１は、本発明の実施形態に係るデジタルカメラ１００の概略構成を示すブロック図である。デジタルカメラ１００は、システム制御部１０１（以下「制御部１０１」と記す）、ＲＯＭ１０２、ＲＡＭ１０３、光学系１０４、撮像部１０５、Ａ／Ｄ変換部１０６、画像処理部１０７、記憶媒体１０８、検出部１１０及び表示部１１１を備える。これら各ブロック間の通信は、バス１０９を介して行われる。
【００１５】
制御部１０１は、例えば、ＣＰＵであり、デジタルカメラ１００を構成する各ブロックの動作プログラムをＲＯＭ１０２より読み出し、ＲＡＭ１０３に展開することにより、各ブロックの動作を統括的に制御する。ＲＯＭ１０２は、書き換え可能な不揮発性メモリであり、デジタルカメラ１００を構成する各ブロックの動作プログラムや、各ブロックの動作に必要なパラメータ等を格納している。ＲＡＭ１０３は、書き換え可能な揮発性メモリであり、ＣＰＵの作業領域として用いられると共に、デジタルカメラ１００を構成する各ブロックの動作によって出力されたデータの一時的な記憶領域として用いられる。
【００１６】
光学系１０４は、被写体からの光を取り込み、撮像部１０５が備えるＣＣＤセンサ或いはＣＭＯＳセンサ等の撮像素子に光学像（被写体像）として結像させる。光学系１０４には、光学系１０４の開口径を調節することで撮影時の光量調節を行う絞りも含まれる。撮像部１０５が備える撮像素子は、光学像を光電変換し、アナログ電気信号をＡ／Ｄ変換部１０６へ出力する。Ａ／Ｄ変換部１０６は、撮像部１０５から供給されたアナログ電気信号をＡ／Ｄ変換し、生成したデジタル信号である画像データをＲＡＭ１０３に出力して記憶させる。
【００１７】
画像処理部１０７は、ＲＡＭ１０３に記憶されている画像データに対して、ホワイトバランス処理やガンマ補正処理等の必要な画像処理を施す。記憶媒体１０８は、例えば、着脱可能なメモリカード等であり、ＲＡＭ１０３に記憶されている画像処理部１０７で処理された画像の画像データや、Ａ／Ｄ変換部１０６でＡ／Ｄ変換されたデジタル信号（画像信号）等を記憶する。
【００１８】
検出部１１０は、周知のジャイロセンサや加速度センサ等から構成され、検出部１１０からの出力信号は制御部１０１へ送信される。制御部１０１は、検出部１１０から取得した出力信号に基づいて、デジタルカメラ１００の姿勢や動き（角度、加速度、移動量等）を検出する。
【００１９】
図２は、本実施形態において、デジタルカメラ１００に対して設定される座標系を示す図である。デジタルカメラ１００の光学系１０４の光軸方向をＺ方向、デジタルカメラ１００の本体部に、Ｚ軸と互いに直交するＸ軸とＹ軸を定める。検出部１１０から取得した出力信号に基づいて、制御部１０１は、図２に示す角度（α，β，γ）と位置（Ｘ，Ｙ，Ｚ）を算出し、また、デジタルカメラ１００の角度と位置とを基準値からの相対値として算出する。例えば、制御部１０１は、最初の撮影に同期した検出部１１０の検出結果を基準値として、角度（０°，０°，０°）及び位置（０，０，０）を定める。制御部１０１は、基準値を算出した後は、基準値からの相対的な移動量である相対値を算出することで、後述するパンニング撮影が想定した通りに行われているかを検出する。
【００２０】
表示部１１１は、画像や各種情報を表示する液晶ディスプレイ（ＬＣＤ）等の表示器と、表示器における画像表示を制御する表示制御回路とを含む。ＲＡＭ１０３に記憶された表示用画像データは、表示制御回路に含まれるＤ／Ａ変換部によってアナログ信号に変換されて表示器に表示される。
【００２１】
＜画像処理部の構成＞
図３は、画像処理部１０７の構成を示すブロック図である。画像処理部１０７は、重複領域抽出部３０１、合成マップ作成部３０２及び広角画像合成部３０３を有する。重複領域抽出部３０１は、隣接するＮ−１枚目の画像３１２とＮ枚目の画像３１３との間で被写体が重なる重複領域を、Ｎ−１回目の重複領域として特定する。ここで、“Ｎ”は２以上の整数であるとし、この定義は以下の説明において常に適用される。
【００２２】
合成マップ作成部３０２は、広角画像合成をＮ−１回行ったときの合成マップ３１１（詳細は後述する）と重複領域抽出部３０１から出力されたＮ回目の重複領域に基づいて、Ｎ回目の合成マップを算出する。広角画像合成部３０３は、画像合成をＮ−１回行った広角合成画像３１４とＮ枚目の画像３１３とを、合成マップ作成部３０２の出力結果に基づいて合成処理を行い、Ｎ回目の広角合成画像３１５を生成する。なお、１回目の合成マップと１回目の広角合成画像は、１回目の重複領域（１枚目と２枚目の撮影画像）に基づいて作成される。
【００２３】
＜第１実施形態＞
図４は、デジタルカメラ１００で広角画像合成を行う場合の処理手順の一例を示すフローチャートである。本実施形態では、白飛びや黒潰れを改善した広角合成画像を生成する処理について説明する。
【００２４】
図４のフローチャートに示す処理は、デジタルカメラ１００が備える操作部（不図示）が備えるレリーズボタンの押下等によって撮影指示が制御部１０１になされることで開始される。ここでは、撮影者がデジタルカメラ１００を構えた状態で、撮影者から見て水平方向で左から右に（図２でＹ軸回りに）回転させてパンニング撮影を行う、つまり、撮影範囲を変えて連続的に撮影を行い、得られた撮影画像を用いて広角画像合成を行うこととする。また、適正露出、低露出、高露出での３つの露出値の変更を繰り返して撮影を行い、得られた撮影画像を用いて広角画像合成を行う。なお、パンニング撮影の方向は、その他の方向、例えば、逆の水平方向（右から左へ）、垂直方向（下から上へ或いは上から下へ）であっても構わない。
【００２５】
図４のフローチャートに示す各処理は、制御部１０１がＲＯＭ１０２から読み出したプログラムをＲＡＭ１０３に展開し、デジタルカメラ１００を構成する各ユニットの動作を制御することによって実現される。
【００２６】
ステップＳ４０１において制御部１０１は、異なる３つの露出値でパンニング撮影を行う。例えば、評価測光を行って適正露出値を決定し、決定した適正露出値から所定段数での変更を行って低露出撮影用と高露出撮影用の各露出値を決定する。そして、制御部１０１は、撮影者に撮影方向を指示し、これにより撮影者は、制御部１０１に指示された方向にデジタルカメラ１００をパンニングしながら撮影を行う。このとき、適正露出値、低露出値、高露出値、適正露出値、低露出値、・・・の順序で撮影を行う。なお、ステップＳ４０１のパンニング撮影については、図５及び図６を参照して後述する。
【００２７】
このとき、制御部１０１は、検出部１１０からの出力信号に基づいてデジタルカメラ１００の姿勢や動きを検出し、検出結果に基づいて、デジタルカメラ１００により期待されるパンニング撮影が行われているか否かを判定する。例えば、制御部１０１は、検出部１１０が角速度或いは加速度を検出する場合、検出された数値を積分演算することにより、デジタルカメラ１００の角度と位置を算出する。
【００２８】
ステップＳ４０２において制御部１０１は、ステップＳ４０１のパンニング撮影で得られた撮影画像に対して、ステップＳ４０３〜Ｓ４０５の処理（広角画像合成）を行う撮影画像が残っているか否かを判定する。ＣＰＵ１０１は、撮影画像が残っていない場合（Ｓ４０２でＮＯ）、本処理を終了させ、撮影画像が残っている場合（Ｓ４０２でＹＥＳ）、処理をステップＳ４０３へ進める。
【００２９】
ステップＳ４０３において制御部１０１は、重複領域抽出部３０１により、ステップＳ４０１のパンニング撮影で得られた撮影画像について、隣接するＮ−１枚目とＮ枚目の撮影画像とで重なる領域をＮ−１回目の重複領域として特定する。なお、ステップＳ４０３〜Ｓ４０５の処理は、ステップＳ４０１のパンニング撮影により取得した撮影画像ではなく、撮影画像の信号レベルを補正した補正画像を用いて行われ、その詳細については、図６及び図７を参照して後述する。
【００３０】
ステップＳ４０４において制御部１０１は、合成マップ作成部３０２により、Ｎ−１回目の合成マップと、Ｎ回目の重複領域（Ｎ＋１枚目の補正画像）と、撮影画像の露出値毎に予め決められた合成比率テーブルとに基づいて、Ｎ回目の合成マップを作成する。なお、前述の通り、１回目の合成マップは、１回目の重複領域（１枚目と２枚目の撮影画像）に基づいて作成される。Ｎ回目の合成マップの作成方法の詳細については、図８乃至図１０を参照して後述する。
【００３１】
ステップＳ４０５において制御部１０１は、広角画像合成部３０３により、Ｎ−１回目の広角合成画像と、Ｎ回目の重複領域（Ｎ＋１枚目の補正画像）と、Ｎ回目の合成マップに基づいて、Ｎ回目の広角画像合成処理を行う。ステップＳ４０５の終了後に、制御部１０１は処理をステップＳ４０２へ戻す。制御部１０１は、ステップＳ４０２〜Ｓ４０５の処理を、パンニング撮影により得られた全ての撮影画像（の補正画像）に対して繰り返し行うことで、最終的な広角合成画像を生成する。
【００３２】
図５は、ステップＳ４０１のパンニング撮影を模式的に説明する図である。図５（ａ）に示されるように、デジタルカメラ１００を所定の方向に向けて撮影が開始され、撮影開始画像５０１が撮影される。デジタルカメラ１００の回転中心５０３を中心としてデジタルカメラ１００を回転方向５０４（図５において時計回り（図２のＹ軸回り）へ回転させながら所定のシャッタ速度で撮影を続け、撮影終了画像５０２が撮影されると、パンニング撮影は終了する。
【００３３】
図５（ｂ）に示されるように、撮影開始画像５０１と撮影終了画像５０２はそれぞれ、撮影余白領域を有する。これらの撮影余白領域は、最終的に出力される広角合成画像の画角には含まれない。よって、最終的に出力される広角合成画像の画角５０５は、撮影開始画像５０１において撮影余白領域を除いた領域からの撮影終了画像５０２において撮影余白領域を除いた領域までの範囲となる。
【００３４】
図６（ａ）は、ステップＳ４０１のパンニング撮影により得られる実際の画像例を示す図である。ここでは、被写体としての建築物に向かって、建築物の左側が余裕を持って写るように、建築物の左側に撮影余白領域を設けて撮影を開始し、建築物の右側が余裕をもって写るように建築物の右側に撮影余白領域を設けて撮影を終了する。
【００３５】
本実施形態では、図６（ａ）に示すように、７枚の撮影画像が実際に撮影されたものとする。適正露出画像６０１，６０４，６０７は、デジタルカメラ１００のＡＥ制御によって算出した適正露出値で撮影された画像である。低露出画像６０２，６０５は、適正露出値よりも低い露出値で撮影された画像である。高露出画像６０３，６０６は、適正露出値よりも高い露出値で撮影された画像である。このように、ステップＳ４０１のパンニング撮影では、３つの露出値を順次変更して撮影が繰り返し行われている。なお、以下の説明では、適正露出画像６０１，６０４，６０７、低露出画像６０２，６０５及び高露出画像６０３，６０６をまとめて、適宜、撮影画像６０１〜６０７と称呼する。
【００３６】
露出値の異なる撮影画像では、その露出差によって信号レベル（撮像素子からの出力信号レベル）が異なってしまう。そのため、パンニング撮影により得られた実際の撮影画像６０１〜６０７に対して、同じ被写体領域の信号レベルを揃える補正処理を行う。この補正方法には、露出値に比例したゲインを撮影画像６０１〜６０７の信号値（輝度値）に乗算することで明るさを合わせる方法や、ガンマ処理によって撮影画像の明るさを補正する方法等を用いることができ、特に限定されるものではない。
【００３７】
図６（ｂ）は、図６（ａ）に示す撮影画像６０１〜６０７に対して、明るさを揃える補正を行った後の補正画像６１１〜６１７を模式的に示している。また、図６（ｃ）は、最終的に生成される広角合成画像６２０の例を示しており、広角合成画像６２０は、図６（ｂ）に示す補正画像６１１〜６１７を用いて生成される。
【００３８】
ステップＳ４０３の隣接する撮影画像間の重複領域の特定処理について、図７を参照して説明する。ここで、隣接する撮影画像間の重複領域の特定には、図６（ａ）に示した実際の撮影画像６０１〜６０７ではなく、図６（ｂ）に示した補正画像６１１〜６１７を用いる。
【００３９】
図７は、撮影画像６０１〜６０７について互いに隣接する撮影画像間の重複領域を補正画像６１１〜６１７を用いて特定する方法を説明する図である。隣接する重複領域間の特定処理では、補正画像６１１〜６１７について、互いに隣接する補正画像において被写体の重なる領域を算出する。そこで、図７では、補正画像６１１を基準として、補正画像６１２〜６１７の移動量を横軸に取り、補正画像６１２〜６１７をそれぞれ、１つ前の補正画像に対して、被写体の同じ部分が重なるように位置合わせしている。
【００４０】
隣接する補正画像の位置合わせ方法には、一般的な画像位置合わせ手法を用いることができる。例えば、補正画像を任意サイズの小ブロックに分割し、小ブロック毎に画像信号（輝度等）のＳＡＤ（Sum of Absolute Difference）が最小となる対応点を算出し、動きベクトルを算出する方法等を用いることができる。
【００４１】
補正画像６１１，６１２の位置合わせ処理では、開始座標がＳＸ１、終了座標がＥＸ１となる１回目の重複領域７０１が特定される。同様に、補正画像６１２，６１３の位置合わせ処理では、開始座標がＳＸ２、終了座標がＥＸ２となる２回目の重複領域７０２が特定される。このように、順次、補正画像６１１〜６１７について、隣接した２枚の補正画像の位置合わせ処理によって移動量（座標）等の特徴量算出を行うことで、１〜６回目の重複領域７０１〜７０６を特定することができる。なお、ステップＳ４０３では、１〜６回目の重複領域７０１〜７０６の特定処理と同時に、位置合わせ処理を行った隣接する補正画像について、時間的に後の補正画像が前の補正画像の位置に合うように幾何学変換処理を行う。
【００４２】
次に、ステップＳ４０４の合成マップの作成処理について、図８乃至図１０を参照して説明する。図８は、ステップＳ４０４の合成マップの作成処理のフローチャートである。本実施形態では、低露出画像、適正露出画像、高露出画像の３枚の撮影画像の補正画像を同じ領域で合成することによってダイナミックレンジの拡大を実現する。そのため、同じ領域では２回までの合成が行われる。換言すれば、同じ領域では、３回以上の合成を行わない。
【００４３】
ステップＳ８０１において合成マップ作成部３０２は、合成回数マップを作成する。図９は、合成回数マップの作成手順を模式的に説明する図である。合成回数マップとは、複数の撮影画像を順次重ね合わせる各過程で、ある領域が何回合成されたかを示すものであり、合成回数マップの作成には、ステップＳ４０３で特定した図６（ｂ）に示す補正画像６１１〜６１７の重複領域７０１〜７０６が用いられる。なお、図９には、１〜３，６回目の合成回数マップ９０１〜９０３，９０６が示されており、４回目と５回目の合成回数マップについては図示を省略している。
【００４４】
合成回数マップの作成では、重複領域７０１〜７０６の重なる領域をカウントし、重なる回数を合成回数の値とする。例えば、１回目の合成回数マップ９０１は、過去の合成回数マップがないため、補正画像６１１，６２２の重複領域７０１に基づいて作成される。１回目の合成回数マップ９０１では、合成回数マップ９０１の領域ＳＸ１〜ＥＸ１では合成回数の値は「１」となり、領域ＳＸ１〜ＥＸ１以外の領域の合成回数の値は「ゼロ（０）」となる。
【００４５】
２回目以降の現在の合成回数マップの作成時に、前回に作成した合成回数マップに今回重ね合わせる重複領域と重なる領域がある場合には、その領域の合成回数の値をインクリメントする。例えば、図９（ｂ）に示す２回目の合成回数マップ９０２では、１回目の合成回数マップでの重複領域７０１と、今回合成する重複領域７０２の２つがある。従って、合成回数マップ９０２の領域ＳＸ２〜ＥＸ１の合成回数の値は「２」、領域ＥＸ１〜ＥＸ２の合成回数の値は「１」、領域ＥＸ２〜の合成回数の値は「０」となる。
【００４６】
ステップＳ８０２において合成マップ作成部３０２は、合成回数マップに所定の合成回数を超える領域か存在するか否かを判定する。本実施形態では、低露出画像、適正露出画像及び高露出画像を同じ領域で合成する必要があるため、同じ領域では２回の合成が必要になるため、所定の合成回数を２回とし、合成回数が２回となった領域を合成領域とする。よって、制御部１０１は、合成回数マップに合成回数が３回以上となる領域がある場合（Ｓ８０２でＹＥＳ）、処理をステップＳ８０３へ進め、３回以上となる領域がない場合（Ｓ８０２でＮＯ）、処理をステップＳ８０４へ進める。
【００４７】
ステップＳ８０３において合成マップ作成部３０２は、所定回数（＝２回）を合成限度回数に設定して、合成回数マップで合成回数が３回以上となる領域の合成回数を合成限度回数に変更し、更に、その領域を除いた領域を新たな合成領域として算出する。例えば、図９（ｃ）に示す３回目の合成回数マップ９０３には３つの重複領域７０１〜７０３があり、領域ＳＸ３〜ＥＸ１において重複領域７０１〜７０３の３つが重なっている。そのため、３回目の合成回数マップ９０３では、領域ＳＸ３〜ＥＸ１について、合成回数の値が「３」と算出されるところを、合成限度回数の「２」に変更し、領域ＳＸ３〜ＥＸ１を合成対象から除外する。これにより、領域ＳＸ１〜ＥＸ２の合成回数が限度合成回数の２回となる合成回数マップが作成される。
【００４８】
ステップＳ８０４において合成マップ作成部３０２は、ステップＳ８０３までの処理で求めた合成回数マップにおいて合成限度回数を超えなかった領域（合成領域）を合成する際の合成比率を算出し、合成マップを生成する。この合成マップの生成では、低露出画像、適正露出画像及び高露出画像でそれぞれ異なった合成比率を用いる。
【００４９】
図１０（ａ），（ｂ），（ｃ）はそれぞれ、低露出画像、適正露出画像、高露出画像の合成比率の例を示す図であり、これらはいずれも広角画像合成に用いる補正画像での信号値（輝度信号値）と合成比率との関係を示している。
【００５０】
例えば、低露出画像を合成する場合には、合成する低露出画像の補正画像の信号値から、図１０（ａ）の合成比率１００１を参照して、合成する画像領域の合成比率を決定し、合成マップを生成する。合成比率１００１は、信号値の小さい領域（画素）では合成比率を下げて、信号値の大きい領域（画素）では合成比率を上げるようにしている。これにより、広角合成画像に黒潰れが生じることを抑制することができる。
【００５１】
一方、同様に、適正露出画像を合成する場合には図１０（ｂ）の合成比率１００２を参照し、高露出画像を合成する場合には図１０（ｃ）の合成比率１００３を参照して、合成する画像領域の合成比率を決定し、合成マップを生成する。合成比率１００３は、信号値の小さい領域（画素）では合成比率を上げて、信号値の大きい領域（画素）では合成比率を下げるようにしている。これにより、広角合成画像に白飛びが生じることを抑制することができる。合成比率１００２は、概ね、合成比率１００１，１００３の中間的な特性に設定されている。
【００５２】
なお、合成比率１００１〜１００３は、図１０（ａ）〜（ｃ）に示されるものに限定されるものではない。例えば、適正露出画像の合成比率１００２については、低輝度側と高輝度側で合成比率を０とし、その中間で１００とするように調整してもよい。また、適正露出画像での輝度分布に基づいて、低露出画像と高露出画像のそれぞれの合成比率を調整するようにしてもよい。例えば、適正露出画像において輝度値の小さい領域が多い場合には、合成比率１００１の勾配部を更に高輝度側にシフトさせると共に、合成比率１００３の勾配部も高輝度側にシフトさせるように調整してもよい。
【００５３】
最終的な合成マップは、図９（ｄ）の６回目の合成回数マップ９０６に対して、合成比率が加味されたものとなる。なお、最終的な合成マップの上下左右端の領域は、重複領域の合成回数が所定回数（２回）に満たない可能性があるため、本実施形態では、撮影余白領域とする。その結果、最終的な広角合成画像６２０の画角は図７（ｄ）に示される領域ＳＸ２〜ＥＸ５で示されることになる。
【００５４】
ステップＳ４０５での広角画像合成部３０３による広角画像合成では、具体的には、Ｎ回目の合成マップに基づいて、Ｎ−１回目の広角画像合成を行った広角合成画像と、Ｎ回目の広角画像合成を行う撮影画像であるＮ＋１枚目の撮影画像とを合成する。Ｎ回目の広角合成画像は、Ｎ−１回目の広角合成画像、Ｎ回目の広角画像合成に用いる撮影画像、Ｎ回目の合成マップを用いて、下記合成式で算出される。
【００５５】
【数１】
0006537231.tif 000002
【００５６】
なお、（ｘ，ｙ）は、画像座標上の位置を示す。また、パンニング撮影により得られた撮影画像（補正画像）を合成しているため、片方の画像の領域が存在しない領域が発生し、その領域については、その領域が存在する画像から出力するように処理を行う。
【００５７】
以上の説明の通り、本実施形態によれば、適正露出を含む異なる複数の露出値で撮影した画像を合成することにより、黒潰れや白飛びを改善し、ダイナミックレンジを拡大した広角合成画像を生成することができる。また、撮影画像において重複する領域を順次合成しながら広角合成画像を生成するため、従来のように、予め露出値の異なる画像同士を合成した後に各合成画像を更に合成する手法よりも、画像合成に必要となるメモリ量を少なく抑えることができる。
【００５８】
＜第２実施形態＞
第１実施形態では、合成回数マップの作成における合成限度回数を２回、つまり、合成マップにおける撮影合成画像の合成回数の上限を２回としたが、合成回数の上限はこれに限定されず、より多い回数（３回以上）としてもよい。つまり、露出値の変更数を増やして撮影する画像の数を増やすにしたがって、より広いダイナミックレンジを実現して、白飛びや黒潰れを抑制した合成画像を得ることができる。そのため、低露出、適正露出、高露出の３枚（３段の露出段数）に限定せず、より多段の露出段数に設定して撮影を行って、広角画像合成を行ってもよい。その場合、画像の所定領域における合成回数（合成する画像の枚数）に応じて、合成回数の上限を決定すればよい。
【００５９】
例えば、合成回数の上限をＮｌｉｍ回とし、Ｎ回目の合成回数マップにおける隣接する画像間の重複領域の開始座標をＳＸ（Ｎ）、終了座標をＥＸ（Ｎ）とすると、合成回数が上限に達する領域が初めて発生するのは、Ｎｌｉｍ回目の合成時となる。そこで、Ｎａ回（１≦Ｎａ≦Ｎｌｉｍ）までの合成マップの作成では、隣接する画像間の重複領域ＳＸ（Ｎａ）〜ＥＸ（Ｎａ）で合成マップを更新する。そして、Ｎｂ回目（Ｎｂ＞Ｎｌｉｍ）以降の合成回数マップの作成では、隣接する画像間の重複領域に対してＥＸ（Ｎｂ−Ｎｌｉｍ）〜ＥＸ（Ｎｂ）の領域で合成回数マップを更新するように変更する。
【００６０】
例えば、合成回数の上限を３回とすると、合成回数が上限となる領域が初めて発生するのは３回目の合成マップの作成時である。よって、３回目の合成マップの作成まで領域ＳＸ（Ｎａ）〜ＥＸ（Ｎａ）（１≦Ｎａ≦３）で、順次、合成マップを更新する。４回目以降の合成マップの作成（Ｎｂ＞３）では、領域ＥＸ（Ｎｂ−３）〜ＥＸ（Ｎｂ）（Ｎｂ＞３）で、順次、合成マップを更新する。こうして、同じ領域を合成する合成回数の上限を変更しても、本発明に係る画像処理を行うことができる。
【００６１】
＜第３実施形態＞
上記第１実施形態では、隣接する撮影画像間の重複領域を、撮影画像全体での位置合わせ処理を行って求めた特徴量から特定した。ここで、更に、撮影画像全体の位置合わせ処理で求められた重複領域に対して、光学系１０４を構成するレンズの収差量や撮影時の焦点距離に応じて、重複領域を変更する処理を行ってもよい。
【００６２】
例えば、レンズの収差量や撮影時の焦点距離によって、撮影画像の中心から離れた画像の領域では、パンニング撮影を行った隣接画像間で位置合わせ処理を行っても、画像の歪みが原因で正しく位置が合わない可能性がある。そこで、位置合わせ処理で求められた特徴量からで算出された重複領域に対して、さらに撮影画像の歪の大きさに応じて重複領域を狭く設定する処理を行ってもよい。なお、逆に、歪補正や円筒変換等の広角合成画像の合成精度を向上させる処理を行った場合には、位置合わせ処理で求められた特徴量から算出された重複領域を、最大限使用可能な領域に設定することも可能である。
【００６３】
＜第４実施形態＞
上記第１実施形態では、撮影開始時と撮影終了時の撮影画像に、最終的に生成される広角合成画像に使用しない撮影余白領域を設定した。これに限らず、合成マップでの合成回数の上限に応じて、撮影余白領域を変更する処理を行ってもよい。合成限度回数が大きくなるほど、合成限度回数に到達するまでに合成する撮影画像が増えるため、広角画像合成に用いることができる画角が狭くなってしまう。そこで、合成限度回数が多い場合には撮影余白領域を広く制御することを行う。
【００６４】
＜第５実施形態＞
上記第１実施形態では、隣接する撮影画像について位置合わせ処理を行い、隣接する画像間の重複領域を特定した。しかし、これに限られず、デジタルカメラ１００のパンニング位置や角度を検出部１１０の検出結果を用いて特定して、撮影画像間の重複領域を求めるようにしてもよい。つまり、検出部１１０の検出信号から算出したデジタルカメラ１００の角度と位置を、基準値からの相対値として算出することで、隣接する撮影画像間の重複領域を特定することができる。この方法を用いることで、低コントラストや繰り返しパターンが含まれるような被写体を撮影した場合には、動きベクトル方式のような画像解析で重複領域を求める場合よりも、正しい重複領域を特定することができる。なお、画像解析により撮影画像間の重複領域を特定する処理と、検出部１１０の検出信号から撮影画像間の重複領域を特定する処理とを併用してもよい。例えば、画像解析により求めた撮影画像間の重複領域を、検出部１１０の検出信号を用いて補正するようにしてもよい。
【００６５】
＜第６実施形態＞
上記第１実施形態では、合成マップの合成限度回数は予め固定されているものとしたが、これに限られず、合成マップの合成限度回数を撮影時のパンニング速度に応じて変更する構成としてもよい。例えば、パンニング速度が速い場合には、所望する広角合成画像を構成する画角を構成するための撮影画像の枚数が少なくなるため、パンニング速度が速くなるにつれて、合成マップの合成限度回数を減らすように制御する処理を行う。
【００６６】
例えば、適正露出画像（露出補正が０段）を中心として±１段毎に順次露出を変更して、計５枚の撮影画像を撮影して広角合成画像を合成する場合を考える。この場合に、例えば、１枚の撮影画像の画角が９０度であるとすると、５枚の撮影画像で重複領域が存在するようにするためには、２２．５度よりも小さい回転角度毎に１回の撮影を行う必要がある。よって、２２．５度よりも大きい角度毎に１回の撮影を行う場合には、合成限度回数を減らす。例えば、１枚の撮影画像の画角を９０度として、３０度ずつずらして撮影を行うと、４枚目の撮影画像は１枚目の撮影画像と重複する領域がなくなるため、最大で２回（３枚）の合成回数とする。
【００６７】
また、パンニング速度が速いために隣接する撮影画像間に重複領域があるか否かを、検出部１１０からの検出信号を用いて検出し、重複領域がない場合には、警告を発し或いは広角画像合成の処理を中止するように構成してもよい。
【００６８】
＜第７実施形態＞
第１実施形態では、合成マップの作成における合成限度回数を２回として、合成回数が２回に達した合成領域のみから広角合成画像を生成した。しかし、これに限定されず、更に画角を広げるために、合成限度回数に達していない画像の領域（合成回数が０回又は１回の領域）を広角合成画像に付加してもよい。
【００６９】
この場合、合成限度回数に達していない画像の領域（付加する領域）の合成比率を、その画像の信号値（輝度値）に応じて調整することが好ましい。また、付加する画像の領域に白飛び又は黒潰れが含まれているか否かを判定し、白飛び又は黒潰れが含まれない場合に、広角合成画像に含まれない領域を広角合成画像に加える合成を行うようにすることが好ましい。なお、合成回数が０回の画像（例えば、最後に撮影された画像）の領域を付加える場合には、その画像としては、適正露出で撮影された画像を用いるようにする。
【００７０】
＜その他の実施形態＞
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。さらに、上述した各実施形態は本発明の一実施形態を示すものにすぎず、各実施形態を適宜組み合わせることも可能である。
【００７１】
本発明は以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【００７２】
１００    デジタルカメラ
１０１    システム制御部
１０２    ＲＯＭ
１０４    光学系
１０５    撮像部
１０７    画像処理部
１１０    検出部
９０１，９０２    １回目，２回目の合成回数マップ
９０３，９０６    ３回目，６回目の合成回数マップ
【図１】
0006537231.tif 000003
【図２】
0006537231.tif 000004
【図３】
0006537231.tif 000005
【図４】
0006537231.tif 000006
【図５】
0006537231.tif 000007
【図６】
0006537231.tif 000008
【図７】
0006537231.tif 000009
【図８】
0006537231.tif 000010
【図９】
0006537231.tif 000011
【図１０】
0006537231.tif 000012