(57)【特許請求の範囲】
【請求項１】
撮像手段を所定の方向に動かしながら連続撮影された複数の画像のそれぞれから所定の領域を切り抜く切り抜き手段と、
前記切り抜き手段により切り抜かれた複数の領域の隣り合う画像間の位置ずれを検出する検出手段と、
前記検出手段により検出された前記画像間の位置ずれから前記複数の領域の画像毎に画像合成時に必要な回転成分を算出する算出手段を備え、
前記検出手段により検出された前記画像間の位置ずれを、前記回転成分が所定の閾値よりも大きい場合には前記所定の閾値に従う回転角度で補正し、前記回転成分が前記所定の閾値以下の場合には該回転成分に従う回転角度で補正する補正手段と、
前記補正手段により位置ずれが補正された前記複数の領域の画像を撮影順に合成することにより広角画像を生成する合成手段と、を備えることを特徴とする画像処理装置。
【請求項２】
前記検出手段は、前記複数の領域の隣り合う画像間の比較により前記画像間の位置ずれを表す動きベクトルを検出し、
前記算出手段は、前記動きベクトルに基づき前記回転成分を算出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記検出手段は、前記撮像手段の角速度情報と姿勢情報の少なくとも１つを検出するセンサを有し、前記角速度情報と前記姿勢情報の少なくとも１つから前記画像間の位置ずれを検出することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記所定の閾値を設定する設定手段を備え、
前記設定手段は、前記複数の画像の連続撮影中に前記検出手段が検出した角速度情報と姿勢情報の少なくとも１つに基づいて前記所定の閾値を設定することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記設定手段は、前記連続撮影中に前記検出手段が検出した角速度情報と姿勢情報の少なくとも１つに基づいて前記所定の閾値を変更することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記所定の閾値を設定する設定手段と、
前記撮像手段の傾き情報を検出するセンサと、を備え、
前記設定手段は、前記連続撮影の開始直前の前記傾き情報に基づいて前記所定の閾値を設定することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項７】
前記所定の閾値を設定する設定手段を備え、
前記設定手段は、前記検出手段が検出した前記画像間の位置ずれに基づいて前記複数の画像の連続撮影中に前記所定の閾値を設定することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項８】
前記設定手段は、前記連続撮影中に前記検出手段が検出した前記画像間の位置ずれに基づいて前記所定の閾値を変更することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
画像処理装置の制御方法であって、
撮像手段を所定の方向に動かしながら連続撮影された複数の画像のそれぞれから所定の領域を切り抜く切り抜きステップと、
前記切り抜きステップで切り抜かれた複数の領域の隣り合う画像間の位置ずれを検出する検出ステップと、
前記検出ステップで検出された位置ずれから前記複数の領域の画像毎に画像合成時に必要な回転成分を算出する算出ステップと、
前記検出ステップで検出された前記画像間の位置ずれを、前記回転成分が所定の閾値よりも大きい場合には前記所定の閾値に従う回転角度で補正し、前記回転成分が前記所定の閾値以下の場合には該回転成分に従う回転角度で補正する補正ステップと、
前記補正ステップで位置ずれが補正された前記複数の領域の画像を撮影順に合成することにより広角画像を生成する合成ステップと、を有することを特徴とする画像処理装置の制御方法。
【請求項１０】
画像処理装置のコンピュータを、
撮像手段を所定の方向に動かしながら連続撮影された複数の画像のそれぞれから所定の領域を切り抜く切り抜き手段と、
前記切り抜き手段により切り抜かれた複数の領域の隣り合う画像間の位置ずれを検出する検出手段と、
前記検出手段により検出された前記画像間の位置ずれから前記複数の領域の画像毎に画像合成時に必要な回転成分を算出する算出ステップと、
前記検出手段により検出された前記画像間の位置ずれを、前記回転成分が所定の閾値よりも大きい場合には前記所定の閾値に従う回転角度で補正し、前記回転成分が前記所定の閾値以下の場合には該回転成分に従う回転角度で補正する補正手段と、
前記補正手段により位置ずれが補正された前記複数の領域の画像を撮影順に合成することにより広角画像を生成する合成手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理装置の制御方法及びプログラムに関し、特に、撮像装置を用いたパンニング撮影等によって撮影された複数の静止画から広角画像（以下「パノラマ画像」という）を合成する画像処理技術に関する。
【背景技術】
【０００２】
撮像装置をパンニングさせながら静止画を連続撮影し、得られた複数の静止画からパノラマ画像を合成する手法が提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５１１５７３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１に記載された技術では、撮影された複数の画像の１枚目を基準としてパノラマ画像を合成する。そのため、例えば、撮像装置が若干下方に傾いたあおり状態で連続撮影が行われていると、パノラマ画像の長手方向に向かって合成された画像が下がって行ってしまう。この場合、パノラマ画像として利用可能な画像領域が狭くなってしまい、パノラマ撮影を行っているにもかかわらず画角が狭くなってしまい、また、不自然な画像になってしまうという問題が生じる。
【０００５】
本発明は、撮像装置をパンニングさせながら撮影した複数の画像から、より自然なパノラマ画像を合成することができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る画像処理装置は、撮像手段を所定の方向に動かしながら連続撮影された複数の画像のそれぞれから所定の領域を切り抜く切り抜き手段と、前記切り抜き手段により切り抜かれた複数の領域の隣り合う画像間の位置ずれを検出する検出手段と、前記検出手段により検出された前記画像間の位置ずれから前記複数の領域の画像毎に画像合成時に必要な回転成分を算出する算出手段を備え、前記検出手段により検出された前記画像間の位置ずれを、前記回転成分が所定の閾値よりも大きい場合には前記所定の閾値に従う回転角度で補正し、前記回転成分が前記所定の閾値以下の場合には該回転成分に従う回転角度で補正する補正手段と、前記補正手段により位置ずれが補正された前記複数の領域の画像を撮影順に合成することにより広角画像を生成する合成手段と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、撮像装置を動かしながら撮影した複数の画像から、より自然なパノラマ画像を合成することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係る画像処理装置の一例であるデジタルカメラの概略構成を示す背面斜視図である。
【図２】図１に示すデジタルカメラのハードウェア構成を示すブロック図である。
【図３】図１に示すデジタルカメラをパンニングさせる方向と撮影画像の画像データから切り抜く切り抜き領域との関係を説明する図である。
【図４】図１に示すデジタルカメラによるパノラマ画像の合成処理の流れと画像データとの対応関係を説明する図である。
【図５】従来例に係るパノラマ画像の合成方法を説明する図である。
【図６】実施例に係るパノラマ画像の合成方法を説明する図である。
【図７】本実施例に係るパノラマ画像の合成処理のフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、添付図面を参照して詳細に説明する。
【００１０】
図１は、本発明の実施形態に係る画像処理装置の一例であるデジタルカメラ１００の概略構成を示す背面斜視図である。
【００１１】
デジタルカメラ１００の背面には、画像や各種の情報を表示する表示部１０１と、ユーザによる各種操作を受け付ける各種スイッチやボタン等の操作部材からなる操作部１０２が設けられている。また、デジタルカメラ１００の背面には、撮影モード等を切り替えるモード切替スイッチ１０４と、回転操作可能なコントローラホイール１０３が設けられている。デジタルカメラ１００の上面には、撮影指示を行うシャッタボタン１２１と、デジタルカメラ１００の電源のオン／オフを切り替える電源スイッチ１２２と、被写体に対して閃光を照射するストロボ１４１が設けられている。
【００１２】
デジタルカメラ１００は、接続ケーブル１１１及びコネクタ１１２を介して外部装置と接続可能であり、外部装置に画像データ（静止画データ、動画データ）等を出力することができる。デジタルカメラ１００の下面には、蓋１３１により開閉可能な記憶媒体スロット（不図示）が設けられており、記憶媒体スロットに対してメモリカード等の記憶媒体１３０を挿抜することができるようになっている。
【００１３】
記憶媒体スロットに格納された記憶媒体１３０は、デジタルカメラ１００のシステム制御部２１０（図２参照）と通信可能である。なお、記憶媒体１３０は、記憶媒体スロットに対して挿抜可能なメモリカード等に限定されるものではなく、ＤＶＤ−ＲＷディスク等の光学ディスクやハードディスク等の磁気ディスクであってもよく、更に、デジタルカメラ１００の本体に内蔵されていてもよい。
【００１４】
図２は、デジタルカメラ１００のハードウェア構成を示すブロック図である。デジタルカメラ１００は、バリア２０１、撮影レンズ２０２、シャッタ２０３及び撮像部２０４を備える。バリア２０１は、撮像光学系を覆うことにより、撮像光学系の汚れや破損を防止する。撮影レンズ２０２は、ズームレンズ、フォーカスレンズを含むレンズ群により構成されており、撮像光学系を構成する。シャッタ２０３は、絞り機能を備え、撮像部２０４に対する露光量を調節する。撮像部２０４は、光学像を電気信号（アナログ信号）に変換する撮像素子であり、例えば、ＲＧＢの画素が規則的に配置されたベイヤー配列構造を有するＣＣＤセンサやＣＭＯＳセンサ等のイメージセンサである。なお、シャッタ２０３は、機械式シャッタであってもよいし、撮像素子のリセットタイミングの制御によって蓄積時間を制御する電子シャッタであってもよい。
【００１５】
デジタルカメラ１００は、Ａ／Ｄ変換器２０５、画像処理部２０６、メモリ制御部２０７、Ｄ／Ａ変換器２０８、メモリ２０９及びシステム制御部２１０を備える。撮像部２０４からＡ／Ｄ変換器２０５へアナログ信号が出力され、Ａ／Ｄ変換器２０５は、取得したアナログ信号をデジタル信号からなる画像データに変換して、画像処理部２０６又はメモリ制御部２０７へ出力する。
【００１６】
画像処理部２０６は、Ａ／Ｄ変換器２０５から取得した画像データ又はメモリ制御部２０７から取得したデータに対して、画素補間やシェーディング補正等の補正処理、ホワイトバランス処理、γ補正処理、色変換処理等を行う。また、画像処理部２０６は、画像の切り出しや変倍処理を行うことで電子ズーム機能を実現する。更に、画像処理部２０６は撮像した画像の画像データを用いて所定の演算処理を行い、こうして得られた演算結果に基づいてシステム制御部２１０が露光制御や測距制御を行う。例えば、システム制御部２１０により、ＴＴＬ（スルー・ザ・レンズ）方式のＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、ＥＦ（ストロボプリ発光）処理が行われる。画像処理部２０６は、撮像した画像の画像データを用いて所定の演算処理を行い、得られた演算結果を用いて、システム制御部２１０はＴＴＬ方式のＡＷＢ（オートホワイトバランス）処理を行う。
【００１７】
画像処理部２０６は、複数の画像からパノラマ画像を合成する画像合成処理回路を有する。画像合成処理回路は、単純な加算合成や加算平均合成だけでなく、合成対象の画像データの各領域において最も明るい値又は暗い値を持つ画素を選択して１枚の画像データを生成する比較明合成や比較暗合成等の処理を行うことができる。なお、画像合成処理回路は、画像処理部２０６とは別の画像合成部として構成されていてもよいし、システム制御部２１０が画像合成処理回路の機能を担う構成であってもよい。
【００１８】
Ａ／Ｄ変換器２０５から出力される画像データは、画像処理部２０６及びメモリ制御部２０７を介して、或いは、メモリ制御部２０７を介して、メモリ２０９に書き込まれる。メモリ２０９は、表示部１０１に表示する画像データを格納する画像表示用メモリ（ビデオメモリ）を兼ねている。メモリ２０９は、所定枚数の静止画像、パノラマ画像（広角画像）、所定時間の動画像、音声データ等を格納することができる十分な記憶容量を備えている。なお、メモリ２０９は、システム制御部２１０が不揮発性メモリ２１１から読み出したプログラム等を展開する作業領域として用いることもできる。
【００１９】
メモリ２０９に格納されている画像表示用データ（デジタルデータ）は、Ｄ／Ａ変換器２０８に送信される。Ｄ／Ａ変換器２０８は、受信したデジタルデータをアナログ信号に変換して表示部１０１に供給し、これにより、表示部１０１に画像が表示される。表示部１０１は、液晶ディスプレイ又は有機ＥＬディスプレイ等の表示装置であり、Ｄ／Ａ変換器２０８からのアナログ信号に基づいて画像を表示する。表示部１０１における画像表示のオン／オフは、システム制御部２１０によって切り替えられ、画像表示をオフにすることで電力消費を低減させることができる。なお、撮像部２０４からＡ／Ｄ変換器２０５を通じてメモリ２０９に蓄積されるデジタル信号をＤ／Ａ変換器２０８によりアナログ信号に変換して表示部１０１に逐次表示することにより、スルー画像を表示する電子ビューファインダ機能を実現することができる。
【００２０】
デジタルカメラ１００は、不揮発性メモリ２１１、システムタイマ２１２、システムメモリ２１３、検出部２１５及びストロボ制御部２１７を備える。不揮発性メモリ２１１は、電気的に消去や記憶が可能なメモリ（例えば、ＥＥＰＲＯＭ等）であり、システム制御部２１０が実行するプログラムや動作用の定数等を格納する。また、不揮発性メモリ２１１は、システム情報を記憶する領域やユーザ設定情報を記憶する領域を有しており、システム制御部２１０は、デジタルカメラ１００の起動時に不揮発性メモリ２１１に記憶された種々の情報や設定を読み出して復元する。
【００２１】
システム制御部２１０は、ＣＰＵを備え、不揮発性メモリ２１１に記憶されている各種のプログラムコードを実行することにより、デジタルカメラ１００の全体的な動作を制御する。なお、システム制御部２１０が不揮発性メモリ２１１から読み出したプログラムや動作用の定数、変数等は、システムメモリ２１３上に展開される。システムメモリ２１３には、ＲＡＭが用いられる。更に、システム制御部２１０は、メモリ２０９やＤ／Ａ変換器２０８、表示部１０１等を制御することにより、表示制御を行う。システムタイマ２１２は、各種の制御に用いる時間や内蔵された時計の時間を計測する。ストロボ制御部２１７は、被写体の明るさに応じて、ストロボ１４１の発光を制御する。検出部２１５は、ジャイロやセンサを含み、デジタルカメラ１００の角速度情報、姿勢情報等を取得する。なお、角速度情報は、デジタルカメラ１００によるパンニング撮影時の角速度及び角加速度の情報を含む。また、姿勢情報は、水平方向に対するデジタルカメラ１００の傾き等の情報を含む。
【００２２】
図２に示される表示部１０１、操作部１０２、コントローラホイール１０３、シャッタボタン１２１、モード切替スイッチ１０４、電源スイッチ１２２及びストロボ１４１は、図１を参照して説明したものと同じである。
【００２３】
操作部１０２を構成する各種の操作部材は、例えば、表示部１０１に表示される種々の機能アイコンの選択に用いられ、所定の機能アイコンが選択されることにより、場面毎に機能が割り当てられる。即ち、操作部１０２の各操作部材は、各種の機能ボタンとして作用する。機能ボタンとしては、例えば、終了ボタン、戻るボタン、画像送りボタン、ジャンプボタン、絞込みボタン、属性変更ボタン、ＤＩＳＰボタン等が挙げられる。例えば、メニューボタンが押下されると、各種の設定を行うためのメニュー画面が表示部１０１に表示される。ユーザは、表示部１０１に表示されたメニュー画面と、上下左右の４方向ボタンやＳＥＴボタンとを用いて、直感的に設定操作を行うことができる。
【００２４】
回転操作が可能な操作部材であるコントローラホイール１０３は、４方向ボタンと共に選択項目を指定するとき等に使用される。コントローラホイール１０３を回転操作すると、操作量（回転角度や回転回数等）に応じた電気的なパルス信号が発生する。システム制御部２１０は、このパルス信号を解析して、デジタルカメラ１００の各部を制御する。
【００２５】
シャッタボタン１２１は、第１スイッチＳＷ１と第２スイッチＳＷ２を有する。第１スイッチＳＷ１は、シャッタボタン１２１の操作途中の半押し状態でオンとなり、これにより、撮影準備を指示する信号がシステム制御部２１０に送信される。システム制御部２１０は、第１スイッチＳＷ１がオンになった信号を受信すると、ＡＦ処理、ＡＥ処理、ＡＷＢ処理、ＥＦ処理等の動作を開始する。第２スイッチＳＷ２は、シャッタボタン１２１の操作が完了する全押し状態でオンとなり、これにより、撮影開始を指示する信号がシステム制御部２１０に送信される。システム制御部２１０は、第２スイッチＳＷ２がオンになった信号を受信すると、撮像部２０４からの信号読み出しから記憶媒体１３０への画像データの書き込みまでの一連の撮影動作を行う。
【００２６】
モード切替スイッチ１０４は、デジタルカメラ１００の動作モードを、静止画撮影モード、動画撮影モード、再生モード等の各種モードの間で切り替えるためのスイッチである。静止画撮影モードは、オート撮影モード等の他に、パンニング撮影によりパノラマ画像を合成するパノラマ画像合成モードを含む。
【００２７】
デジタルカメラ１００は、電源部２１４及び電源制御部２１８を備える。電源部２１４は、アルカリ電池やリチウム電池等の一次電池、ＮｉＣｄ電池やＮｉＭＨ電池、Ｌｉ電池等の二次電池、或いは、ＡＣアダプタ等であり、電源制御部２１８へ電力を供給する。電源制御部２１８は、電源部２１４における電池の装着の有無、電池の種類、電池残量等を検出し、その検出結果及びシステム制御部２１０の指示に基づいて、必要な電圧を必要な期間、記憶媒体１３０を含む各部へ供給する。
【００２８】
デジタルカメラ１００は、記憶媒体１３０が記憶媒体スロット（不図示）に装着された際に、記憶媒体１３０とシステム制御部２１０との間の通信を可能にするための記憶媒体Ｉ／Ｆ２１６を備える。記憶媒体１３０の詳細については、図１を参照して既に説明しているため、ここでの説明を省略する。
【００２９】
次に、パンニング撮影方法と、複数の撮影画像からパノラマ画像を合成する方法について説明する。最初に、パノラマ画像を合成するために撮影画像の画像データから所定の領域を切り抜く処理について説明する。
【００３０】
図３は、デジタルカメラ１００をパンニングさせる方向と画像データから切り抜く切り抜き領域との関係を説明する図である。図３（ａ）は、撮像部２０４が有する撮像素子（イメージセンサ）の有効画像領域を示しており、“Ｗｖ”は水平方向の有効画素数であり、“Ｈｖ”は垂直方向の有効画素数である。図３（ｂ）は、撮影画像の画像データから切り抜いた切り抜き領域を示しており、“Ｗｃｒｏｐ”は水平方向の切り抜き画素数であり、“Ｈｃｒｏｐ”は垂直方向の切り抜き画素数である。
【００３１】
図３（ｃ）は、矢印で示す水平方向にデジタルカメラ１００をパンニングさせて撮影を行った場合の画像データに対する切り抜き領域を示す図である。図３（ｃ）においてハッチングにて示した領域Ｓ１が画像データからの切り抜き領域を示しており、水平方向の画像データの切り抜きは“Ｗｖ＞Ｗｃｒｏｐ”とし、垂直方向の画像データの切り抜きは“Ｈｖ＝Ｈｃｒｏｐ”とする。図３（ｄ）は、矢印で示す鉛直方向にデジタルカメラ１００をパンニングさせて撮影を行った場合の画像データに対する切り抜き領域を示す図である。図３（ｄ）においてハッチングにて示した領域Ｓ２が画像データの切り抜き領域を示しており、水平方向の画像データの切り抜きは“Ｗｖ＝Ｗｃｒｏｐ”とし、垂直方向の画像データの切り抜きは“Ｈｖ＞Ｈｃｒｏｐ”とする。
【００３２】
撮影画像の画像データの切り抜き領域は、画像データ毎に異なるようにしてもよい。また、パンニング開始時とパンニング終了時の画像データについては、画角を広くするために切り抜き領域を広くしてもよい。画像データの切り抜き領域の決定方法は、例えば、撮影直後のデジタルカメラ１００の角度と１フレーム前のデジタルカメラ１００の角度との差等により決定することができる。パノラマ画像の合成処理に必要な画像データのみを切り抜いて保存することにより、メモリ２０９の記憶容量を節約することができる。
【００３３】
次に、パノラマ画像の合成方法について説明する。システム制御部２１０は、パンニング撮影時に切り抜かれて保存された画像データをメモリ２０９から読み出し、読み出した画像データに対応する画像間の位置ずれを検出する。位置ずれ検出は、切り抜き領域を任意のサイズの小ブロックに分割し、小ブロック毎に輝度のＳＡＤ（Sum of Absolute Difference）が最小となる対応点を算出して動きベクトルを算出する方法等により行うことができる。なお、動きベクトルの算出は、検出部２１５によって検出される角速度情報や姿勢情報等を用いて行ってもよい。続いて、システム制御部２１０は、隣り合う切り抜き領域の画像間で求めた動きベクトルに基づいて、切り抜き領域の画像間の位置ずれを補正し、切り抜き領域の画像間の重複部を加重加算等により合成する。
【００３４】
図４は、パノラマ画像の合成処理の流れと画像データとの対応関係を説明する図である。図４（ａ）〜（ｆ）において、ドットハッチングされた領域は、被写界にある並木を模式的に表した領域であり、斜線ハッチングされた領域は、画像データの切り抜き領域を表している。図４（ａ）は、シャッタボタン１２１の第１スイッチＳＷ１がオンされた状態を示しており、ユーザは、合成しようとしているパノラマ画像の略中央で、ピント合わせを行っていることを示している。図４（ｂ）は、シャッタボタン１２１の第２スイッチＳＷ２がオンされた位置を示しており、合成しようとしているパノラマ画像の一方の端に被写界を設定している。図４（ｃ）は、合成しようとしているパノラマ画像の他方の端に向けてデジタルカメラ１００をパンニングさせながら、第１の撮影条件で連続撮影を行っている状態を模式的に示している。図４（ｄ）は、デジタルカメラ１００をパンニングさせながら、第２の撮影条件（例えば、ストロボ１４１を発光させる撮影条件）で撮影を行った状態を示している。図４（ｅ）は、設定された角度までデジタルカメラ１００のパンニングが行われ、連続撮影が終了した状態を示している。図４（ｆ）は、撮影された複数の画像（静止画）から合成されたパノラマ画像を示している。
【００３５】
ここで、図５及び図６を参照して、デジタルカメラ１００の光軸が水平となる正位置に対して若干下方に傾いたあおり状態でデジタルカメラ１００のパンニングが行われたときのパノラマ画像の合成方法の従来例と実施例について説明する。
【００３６】
図５は、従来例に係るパノラマ画像の合成方法を説明する図である。第１スイッチＳＷ１がオンされて撮影が開始され、第２スイッチＳＷ２がオンされて１枚目の画像が撮影される。図５（ａ）は１枚目の画像を表しており、模式的に表した木５０１は、画面中心からずれた位置にあり、この場合、少し傾いて撮影される。
【００３７】
続いてデジタルカメラ１００を、図示右方向へパンニングさせながら２枚目の画像を撮影する。図５（ｂ）は２枚目の画像を表しており、木５０１は画面中心から更にずれて、１枚目の画像と比較して、更に傾いて撮影される。同様にして、３枚目の画像を撮影する。図５（ｃ）は３枚目の画像を表しており、木５０１は更に画面端に近付き、更に傾いて撮影される。
【００３８】
こうして撮影された３枚の画像から、図３を参照して説明した通りにパノラマ画像に合成する場合、従来技術では、木５０１の部分に基づいて各画像の位置ずれの検出を行う。図５（ｄ）は、１〜３枚目の画像を従来例に係る合成方法により合成した状態を模式的に示している。撮影画像は、撮影順に下側に大きく傾いて合成されてしまうため、不自然な合成画像となってしまう。実施例では、この問題を解決する。
【００３９】
図６は、実施例に係るパノラマ画像の合成方法を説明する図である。デジタルカメラ１００による撮影は、図５を参照して説明した撮影条件と同じ条件で行われているものとする。よって、図６（ａ）に示す１枚目の画像は、図５（ａ）に示す１枚目の画像と同じであり、図６（ｂ）に示す２枚目の画像は図５（ｂ）に示す２枚目の画像と同じであり、図６（ｃ）に示す３枚目の画像は図５（ｃ）に示す３枚目の画像と同じである。但し、本実施例では、１枚目の画像撮影と同時に、システム制御部２１０は、検出部２１５からデジタルカメラ１００の姿勢情報の１つとしての傾き情報を取得する。
【００４０】
図６（ｄ）は、１〜３枚目の画像を本実施例に係る合成方法により合成した状態を模式的に示している。本実施例では、撮影された画像間の比較により求めた動きベクトルから、画像毎に画像合成時に必要な回転成分の大きさを算出する。なお、回転成分の大きさの算出には、撮影開始時に検出部２１５を通して取得したデジタルカメラ１００の角速度情報と姿勢情報の少なくとも一方の情報を用いることもできる。回転成分の算出は、例えば、システム制御部２１０により実行される。そして、画像処理部２０６は、算出された回転成分に対して所定の閾値を設けて位置ずれを補正しながら画像を合成する。これにより、画像の回転を抑制することができ、画像が順番に下側に傾いて合成されることを緩和することができるため、より広い画角で自然なパノラマ画像を合成することができる。
【００４１】
図７は、本実施例に係るパノラマ画像の合成処理のフローチャートである。本実施例に係るパノラマ画像の合成処理は、ユーザが、モード切替スイッチ１０４でパノラマ画像合成モードを選択した場合に実行される。図７の各ステップの処理は、システム制御部２１０が、不揮発性メモリ２１１から読み出した所定のプログラムをシステムメモリ２１３上に展開し、デジタルカメラ１００を構成する各部の動作や処理を制御することによって実現される。
【００４２】
ステップＳ７００においてシステム制御部２１０は、操作部１０２が操作されたことによってパンニング条件設定ボタンが押下されたか否か判定する。なお、パンニング条件設定ボタンは、操作部１０２により実現される機能ボタンの１つである。システム制御部２１０は、パンニング条件設定ボタンが押下された場合（Ｓ７００でＹＥＳ）、処理をステップＳ７０１へ進め、パンニング条件設定ボタンが押下されない場合（Ｓ７００でＮＯ）、処理をステップＳ７０２へ進める。
【００４３】
システム制御部２１０は、ステップＳ７０１においてユーザによるパンニング撮影の撮影条件（パンニングの方向や角度等）の変更を受け付け、受け付けた条件を不揮発性メモリ２１１に記憶し、その後、処理をステップＳ７０２へ進める。なお、パンニング条件設定ボタンが押下されなかった場合であって、パンニング撮影を始めて行う場合には、デフォルト設定条件が適用される。
【００４４】
ステップＳ７０２においてシステム制御部２１０は、シャッタボタン１２１の第１スイッチＳＷ１がオンした否かを判定する。システム制御部２１０は、第１スイッチＳＷ１がオンした場合（Ｓ７０２でＹＥＳ）、処理をステップＳ７０３へ進め、第１スイッチＳＷ１がオンしていない場合（Ｓ７０２でＮＯ）、処理をステップＳ７０１へ戻す。
【００４５】
ステップＳ７０３においてシステム制御部２１０は、検出部２１５によりデジタルカメラ１００の姿勢検出処理を行い、検出結果（傾き情報）をシステムメモリ２１３（又はメモリ２０９）に保存する。続くステップＳ７０４においてシステム制御部２１０は、ＡＥ処理とＡＦ処理を行う。続くステップＳ７０５においてシステム制御部２１０は、ステップＳ７０４でのＡＥ処理結果に基づき撮影条件（露出、撮影感度、ＷＢ等）を決定する。なお、後のステップＳ７０８では、ステップＳ７０４のＡＦ処理で被写体にフォーカスを合わせたときのレンズ位置に撮影レンズ２０２が保持された状態で撮影が行われる。
【００４６】
続いて、ステップＳ７０６においてシステム制御部２１０は、第１スイッチＳＷ１が押されたときのデジタルカメラ１００の位置をパンニング撮影時のデジタルカメラ１００の基準角度としてシステムメモリ２１３（又はメモリ２０９）に記憶する。なお、デジタルカメラ１００の基準角度は、パンニングの方向と、パンニングの方向と直交する方向の各方向について保存される。
【００４７】
次に、ステップＳ７０７においてシステム制御部２１０は、第２スイッチＳＷ２がオンしたか否かを判定する。システム制御部２１０は、第２スイッチＳＷ２がオンした場合（Ｓ７０７でＹＥＳ）、処理をステップＳ７０８へ進め、第２スイッチＳＷ２がオンしない場合（Ｓ７０７でＮＯ）、ステップＳ７０７の判定を繰り返す（第２スイッチＳＷ２がオンするのを待つ）。
【００４８】
ステップＳ７０８においてシステム制御部２１０は、デジタルカメラ１００の各部を制御して撮影処理（１画像の撮影）を実行する。そして、ステップＳ７０９においてシステム制御部２１０は、設定されたパンニング条件で撮影された画像データを画像処理部２０６によりパンニングの方向に応じて短冊状に切り抜き、逐次、合成することによりパノラマ画像を合成する。このとき、各回の撮影が行われる度に、前回までの撮影によって得られた合成画像の端部に、今回の撮影で得られた画像から切り抜いた短冊状の切り抜き領域の画像を付加するように合成することにより、パノラマ画像を合成していく。
【００４９】
その際、図６を参照して説明したように位置ずれを補正して画像合成を行う。具体的には、画像間の比較により求めた動きベクトルから算出した切り抜き領域の画像の回転成分が予め定められた閾値以下の場合、その回転成分に従う回転角度で新たな切り抜き領域の画像を現時点までの合成画像に付加する画像合成を行う。一方、切り抜き領域の画像の回転成分が予め定められた閾値よりも大きい場合には、閾値に従う回転角度で新たな切り抜き領域の画像を現時点までの合成画像に付加する画像合成を行う。こうして合成されるパノラマ画像の画像データは、メモリ２０９に保存される。
【００５０】
なお、閾値は、撮影開始直前のデジタルカメラ１００の姿勢情報（傾き情報）に基づいて設定してもよいし、連続撮影の途中に算出される動きベクトル或いは検出される角速度情報や姿勢情報に基づいて設定するようにしてもよい。また、連続撮影中に、動きベクトル或いは角速度情報や姿勢情報に基づいて、例えば、画像フレーム毎に閾値を変更する構成としてもよいし、逆に、一度設定された閾値は連続撮影中に変更しない構成としてもよい。閾値の設定は、システム制御部２１０によって行われる。
【００５１】
続いて、ステップＳ７１０においてシステム制御部２１０は、デジタルカメラ１００のパンニングの方向における角度（以下「カメラ角度」という）を検出する。そして、ステップＳ７１１においてシステム制御部２１０は、検出したカメラ角度が、パンニング終了角度であるか否かを判定する。システム制御部２１０は、カメラ角度がパンニング終了角度である場合（Ｓ７１１でＹＥＳ）、本処理を終了させ、カメラ角度がパンニング終了角度でない場合（Ｓ７１１でＮＯ）、処理をステップＳ７１２へ進める。なお、ステップＳ７１１の判定がＹＥＳとなることで、所望するパノラマ画像が得られたことになる。
【００５２】
ステップＳ７１２においてシステム制御部２１０は、ステップＳ７１１で検出したカメラ角度からパンニングが終了されたか否かを判定する。ステップＳ７１２の判定は、パンニングの方向と同じ方向と、パンニングの方向と直交する方向の各方向について行われる。具体的には、パンニングの方向と同じ方向の判定は、撮影直後のデジタルカメラ１００の角度と１フレーム前のデジタルカメラ１００の角度とを比較し、パンニングの方向に角度が増加しているか否かを判定することにより行う。その結果、パンニングの方向に角度が増加していない場合には、パンニング終了と判定される。また、パンニングの方向と直交する方向の判定は、デジタルカメラ１００の基準角度（ステップＳ７０６で検出）と撮影直後のデジタルカメラ１００の角度を比較し、角度の差分が予め決められた値よりも大きいか否かを判定することにより行う。その結果、角度の差分が予め決められた値よりも大きい場合に、パンニング終了と判定される。
【００５３】
システム制御部２１０は、パンニングが終了されたと判定した場合（Ｓ７１２でＹＥＳ）、処理をステップＳ７１３へ進め、ステップＳ７１３において表示部１０１に撮影が失敗したことを示す通知を表示する。ステップＳ７１３により、本処理は終了となる。システム制御部２１０は、パンニングが終了されていないと判定した場合（Ｓ７１２でＮＯ）、処理をステップＳ７０８へ戻す。これにより、ステップＳ７０８〜Ｓ７１２の処理が撮影終了まで繰り返されることで、パンニング撮影での連続撮影が行われる。
【００５４】
なお、ステップＳ７１２においてパンニングが終了されたと判定された場合に、本実施例では、終了前までに生成された合成画像の画像データがメモリ２０９に保存されて、パンニング撮影は終了となる。但し、これに限定されず、パンニング終了角度までパンニングしていない場合において、予め定められた他の条件に合致した場合には、それまでに生成された合成画像の画像データをメモリ２０９に保存して、パンニング撮影を終了するようにしてもよい。また、ステップＳ７１２においてパンニングが終了されたと判定された場合に、それまでに生成された合成画像の画像データは破棄されるようにしてもよい。
【００５５】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。例えば、上記実施形態では、デジタルカメラ１００のパンニングによるパノラマ画像の合成処理について説明したが、これと同様の処理方法により、デジタルカメラ１００のティルティング（チルト動作）によるパノラマ画像の合成処理を行うことができる。
【００５６】
また、本発明に係る画像処理装置として、デジタルカメラ１００を取り上げたが、これに限定されず、カメラ機能を有する各種の電子機器（デジタルビデオカメラ、携帯電話、パーソナルコンピュータ、ゲーム機等）であってもよい。また、本発明に係る画像処理装置は、必ずしも撮像手段を内蔵している必要はなく、外部接続された撮像手段（カメラ）から撮影画像を取得することができる構成となっていてもよく、接続手段は有線であるか無線であるかを問わない。更に、撮像手段のパンニング又はティルティングによって撮影された複数の画像が、撮影時の撮像手段の角速度情報や傾き情報を付帯していれば、これら複数の画像から図６及び図７を参照して説明したパノラマ画像の合成を行うことができる。
【００５７】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５８】
１００    デジタルカメラ
１０２    操作部
１０４    モード切替スイッチ
２０４    撮像部
２０６    画像処理部
２１０    システム制御部
２１５    検出部
【図１】
0006604831.tif 000002
【図２】
0006604831.tif 000003
【図３】
0006604831.tif 000004
【図４】
0006604831.tif 000005
【図５】
0006604831.tif 000006
【図６】
0006604831.tif 000007
【図７】
0006604831.tif 000008