(57)【特許請求の範囲】
【請求項１】
複数の画像を取得する取得手段と、
前記取得手段により取得された画像同士で共通する所定の領域内における特徴点の移動ベクトルを算出する移動ベクトル算出手段と、
前記移動ベクトル算出手段により算出された移動ベクトルに基づいて、前記画像同士の共通の領域内における特定の位置を広角画像の生成の際の画像の合成における位置合わせを行うための位置として推定する推定手段と、
前記推定手段により推定された特定の位置を基準として、前記所定の領域内における前記画像同士で対応する画素の位置を所定方向に所定の範囲内でずらしながら、当該所定の領域内における前記画像同士の差分値を複数回算出する算出手段と、
前記算出手段により算出された複数の差分値に基づいて、前記特定の位置を調整する調整手段と、
前記調整手段により調整された特定の位置に基づいて、前記画像同士を合成する合成手段と
を備えたことを特徴とする画像処理装置。
【請求項２】
前記算出手段は、前記調整手段により調整された特定の位置を基準として、前記所定の領域内における前記画像同士で対応する画素の位置を前記所定の範囲よりも狭い範囲内で前記所定方向にずらしながら、前記所定の領域内における前記画像間の差分値を複数回算出し、
前記調整手段は、更に、前記算出手段に算出された複数の差分値に基づいて、前記特定の位置を再度調整する請求項１に記載の画像処理装置。
【請求項３】
前記算出手段は、更に、前記所定の領域内における前記画像同士で対応する画素の位置を前記所定の方向として上下方向に前記所定の範囲内で所定のドット数ずつずらしながら、当該所定の領域内における前記画像同士の差分値を複数回算出する請求項１又は２に記載の画像処理装置。
【請求項４】
前記算出手段は、更に、前記所定の方向として上下方向に前記所定の領域内における前記画像同士で対応する画素の位置を前記所定の範囲内より狭い範囲内で前記所定のドット数未満のドット数ずつずらしながら、前記所定の領域内における前記画像同士の差分値を複数回算出する請求項１から３の何れか１項に記載の画像処理装置。
【請求項５】
前記算出手段により算出された差分値が閾値以上か否かを判定する判定手段と、
前記判定手段により前記差分値が閾値以上であると判定されると、前記差分値に重み付けをする重み付け手段とを備え、
前記調整手段は、前記重み付け手段により重み付けされた差分値に基づいて、前記特定の位置を調整する請求項１から４の何れか１項に記載の画像処理装置。
【請求項６】
前記調整手段は、前記算出手段により算出された差分値が最小となる位置に前記特定の位置を調整することを特徴とする請求項１から５の何れか１項に記載の画像処理装置。
【請求項７】
前記合成手段は、更に、前記画像同士を合成することにより、パノラマ画像を生成することを特徴とする請求項１から６の何れか１項に記載の画像処理装置。
【請求項８】
前記算出手段は、前記画像同士で対応する画素の位置が前記所定の領域内の所定方向に所定の範囲内で所定の量ずらされる毎に、当該所定の領域内における前記画像同士の差分値を算出することを特徴とする請求項１から７の何れか１項に記載の画像処理装置。
【請求項９】
前記算出手段は、前記所定の領域が変化するように前記画像同士で対応する画素の位置をずらしながら、前記差分値を算出することを特徴とする請求項１から８の何れか１項に記載の画像処理装置。
【請求項１０】
撮像手段を更に備え、
前記取得手段は、前記撮像手段により所定時間毎に順次撮像された画像を取得することを特徴とする請求項１から９の何れか１項に記載の画像処理装置。
【請求項１１】
複数の画像を取得する取得ステップと、
前記取得ステップにより取得された画像同士で共通する所定の領域内における特徴点の移動ベクトルを算出するベクトル算出ステップと、
前記ベクトル算出ステップにより算出された移動ベクトルに基づいて、前記画像同士の共通の領域内における特定の位置を広角画像の生成の際の画像の合成における位置合わせを行うための位置として推定する推定ステップと、
前記推定ステップにより推定された特定の位置を基準として、前記所定の領域内における前記画像同士で対応する画素の位置を所定方向に所定の範囲内でずらしながら、当該所定の領域内における前記画像同士の差分値を複数回算出する算出ステップと、
前記算出ステップにより算出された複数の差分値に基づいて、前記特定の位置を調整する調整ステップと、
前記調整ステップにより調整された特定の位置に基づいて、前記画像同士を合成する合成ステップと
を含むことを特徴とする画像処理方法。
【請求項１２】
コンピュータを、
複数の画像を取得する取得手段、
前記取得手段により取得された画像同士で共通する所定の領域内における特徴点の移動ベクトルを算出するベクトル算出手段、
前記ベクトル算出手段により算出された移動ベクトルに基づいて、前記画像同士の共通の領域内における特定の位置を広角画像の生成の際の画像の合成における位置合わせを行うための位置として推定する推定手段、
前記推定手段により推定された特定の位置を基準として、前記所定の領域内における前記画像同士で対応する画素の位置を所定方向に所定の範囲内でずらしながら、当該所定の領域内における前記画像同士の差分値を複数回算出する算出手段、
前記算出手段により算出された複数の差分値に基づいて、前記特定の位置を調整する調整手段、
前記調整手段により調整された特定の位置に基づいて、前記画像同士を合成する合成手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広角画像を生成可能な画像処理装置及び画像処理方法並びにプログラムに関する。
【背景技術】
【０００２】
デジタルカメラや、撮像機能を有する携帯電話等においては、撮像画角の限界はレンズの焦点距離、撮像素子のサイズ等、装置本体が備えるハードスペックに依存している。
したがって、パノラマ撮像等、ハードスペックを超えるような広角画像を取得する場合は、一定方向に撮像装置を動かしながら連写し、得られた複数の画像を合成することで広角画像を生成する技術がある（例えば、特許文献１参照）。
【０００３】
上述のパノラマ撮像を実現するためには、ユーザは、例えば、シャッタスイッチを押下操作した状態を維持しながら、自身の体を軸にして、デジタルカメラを垂直方向にほぼ固定したまま水平方向に回転させるように移動させる。
すると、デジタルカメラは、その間に複数回の撮像処理を実行し、当該複数回の撮像処理の各々の結果得られた複数の画像（以下、「撮像画像」と呼ぶ）の画像データを横方向（水平方向）に合成することによって、パノラマ画像の画像データを生成する。
特許文献１には、複数回の撮像処理の毎に撮像画像における特徴点を検出し、隣接する２枚の撮像画像の特徴点同士が一致するように、複数の撮像画像の画像データを横方向に合成することによって、パノラマ画像の画像データを生成する手法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２８２１００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の手法を採用した場合、単に特徴点の位置合わせだけを利用して隣接する２枚の撮像画像の画像データを合成しているので、その合成位置の精度が充分に得られない場合があった。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、広角画像の生成の際の画像データの合成における位置合わせの精度向上を目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一態様の画像処理装置は、複数の画像を取得する取得手段と、前記取得手段により取得された画像同士で共通する所定の領域内における特徴点の移動ベクトルを算出する移動ベクトル算出手段と、前記移動ベクトル算出手段により算出された移動ベクトルに基づいて、前記画像同士の共通の領域内における特定の位置を広角画像の生成の際の画像の合成における位置合わせを行うための位置として推定する推定手段と、前記推定手段により推定された特定の位置を基準として、前記所定の領域内における前記画像同士で対応する画素の位置を所定方向に所定の範囲内でずらしながら、当該所定の領域内における前記画像同士の差分値を複数回算出する算出手段と、前記算出手段により算出された複数の差分値に基づいて、前記特定の位置を調整する調整手段と、前記調整手段により調整された特定の位置に基づいて、前記画像同士を合成する合成手段とを備えたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、画像を合成する際の位置合わせの精度を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明に係る撮像装置の一実施形態としてのデジタルカメラのハードウェア構成を示すブロック図である。
【図２】図１のデジタルカメラが、撮像処理を実行するための機能的構成を示す機能ブロック図である。
【図３】図２のデジタルカメラの動作モードとして、通常撮像モードとパノラマ撮像モードとが夫々選択された場合における撮像操作を説明する図である。
【図４】図３に示すパノラマ撮像モードによって生成されるパノラマ画像の一例を示す図である。
【図５】図２のデジタルカメラが合成位置を推定する手法を説明する図である。
【図６】図２のデジタルカメラが合成位置を推定する手法を説明する図である。
【図７】図２のデジタルカメラが実行する撮像処理の流れの一例を示すフローチャートである。
【図８】図７の撮像処理のうち、パノラマ撮像処理の詳細な流れを示すフローチャートである。
【図９】図８のパノラマ撮像処理のうち、パノラマ合成処理の詳細な流れを示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明に係る実施形態について説明する。
図１は、本発明に係る画像処理装置の一実施形態としてのデジタルカメラ１のハードウェア構成を示すブロック図である。
デジタルカメラ１は、ＣＰＵ(Central  Processing  Unit)１１と、ＲＯＭ(Read  Only  Memory)１２と、ＲＡＭ(Random  Access  Memory)１３と、バス１４と、光学系１５と、撮像部１６と、画像処理部１７と、記憶部１８と、表示部１９と、操作部２０と、通信部２１と、角速度センサ２２と、ドライブ２３と、を備えている。
【００１１】
ＣＰＵ１１は、ＲＯＭ１２に記憶されているプログラム、又は記憶部１８からＲＡＭ１３にロードされたプログラムに従って、各種の処理を実行する。
ＲＯＭ１２はまた、ＣＰＵ１１が各種の処理を実行する上において必要なデータ等も適宜記憶している。
【００１２】
例えば、本実施形態では、後述する図２の撮像制御部５１乃至生成部５８の各機能を実現するプログラムが、ＲＯＭ１２や記憶部１８に記憶されている。したがって、ＣＰＵ１１が、これらのプログラムに従った処理を実行することで、後述する図２の撮像制御部５１乃至生成部５８の各機能を実現することができる。
なお、後述する図２の撮像制御部５１乃至生成部５８の各機能のうち少なくとも一部を、画像処理部１７に移譲することも可能である。
【００１３】
ＣＰＵ１１、ＲＯＭ１２、及びＲＡＭ１３は、バス１４を介して相互に接続されている。このバス１４にはまた、光学系１５、撮像部１６、画像処理部１７、記憶部１８、表示部１９、操作部２０、通信部２１、角速度センサ２２、及びドライブ２３が接続されている。
【００１４】
光学系１５は、被写体を撮影するために、光を集光するレンズ、例えばフォーカスレンズやズームレンズ等で構成される。フォーカスレンズは、撮像部１６の撮像素子の受光面に被写体像を結像させるレンズである。ズームレンズは、焦点距離を一定の範囲で自在に変化させるレンズである。光学系１５にはまた、必要に応じて、焦点や、露出等を調整する周辺装置が設けられる。
【００１５】
撮像部１６は、光電変換素子やAFE(Analog  Front  End)等から構成されている。光電変換素子は、例えばCCD（Charge  Coupled  Device）やCMOS（Complementary  Metal  Oxide  Semiconductor）型の光電変換素子から構成される。光電変換素子は、一定時間毎に、その間に入射されて蓄積された被写体像の光信号を光電変換（撮像）して、その結果得られるアナログの電気信号をAFEに順次供給する。
AFEは、当該アナログの電気信号に対して、A/D(Analog/Digital)変換処理等の各種信号処理を施し、その結果得られるデジタル信号を、撮像部１６の出力信号として出力する。
なお、以下、撮像部１６の出力信号を、「撮像画像の画像データ」と呼ぶ。したがって、撮像部１６からは撮像画像の画像データが出力されて、画像処理部１７等に適宜供給される。
【００１６】
画像処理部１７は、ＤＳＰ(Digital  Signal  Processor)や、ＶＲＡＭ(Video  Random  Access  Memory)等から構成されている。
画像処理部１７は、ＣＰＵ１１と協働して、撮像部１６から入力される撮像画像の画像データに対して、ノイズ低減、ホワイトバランス、手ぶれ補正等の画像処理を施す。
ここで、以下、特に断りのない限り、「画像データ」とは、撮像部１６から一定時間毎に入力される撮像画像の画像データ、又は、当該画像データが加工等されたものを呼ぶ。即ち、本実施形態では、当該画像データが処理単位として採用されている。
【００１７】
記憶部１８は、ＤＲＡＭ(Dynamic  Random  Access  Memory)等で構成され、画像処理部１７から出力された画像データや、後述するパノラマ途中画像の画像データ等を一時的に記憶する。また、記憶部１８は、各種画像処理に必要な各種データ等も記憶する。
【００１８】
表示部１９は、例えばＬＣＤ（Liquid  Crystal  Device：液晶表示装置）やＬＣＤ駆動部からなるフラット・ディスプレイ・パネルとして構成されている。表示部１９は、記憶部１８等から供給される画像データにより表現される画像、例えば後述するライブビュー画像を画像データ単位で表示する。
【００１９】
操作部２０は、シャッタスイッチ４１の他、図示はしないが、電源スイッチ、撮像モードスイッチ、再生スイッチ等の複数のスイッチを有している。操作部２０は、これらの複数のスイッチのうち所定のスイッチが押下操作されると、当該所定のスイッチに割り当てられている指令をＣＰＵ１１に供給する。
【００２０】
通信部２１は、インターネットを含むネットワークを介する、図示せぬ他の装置との間の通信を制御する。
【００２１】
角速度センサ２２は、ジャイロ等からなり、デジタルカメラ１の角度変位量を検出し、検出結果を示すデジタル信号（以下、単に「角度変位量」と呼ぶ）をＣＰＵ１１に供給する。なお、角速度センサ２２は、必要に応じて方位センサの機能も発揮するものとする。
【００２２】
ドライブ２３には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなるリムーバブルメディア３１が適宜装着される。そして、リムーバブルメディア３１から読み出されたプログラムが、必要に応じて記憶部１８にインストールされる。また、リムーバブルメディア３１は、記憶部１８に記憶されている画像データ等の各種データも、記憶部１８と同様に記憶することができる。
【００２３】
図２は、図１のデジタルカメラ１が実行する処理のうち、被写体を撮像し、その結果得られる撮像画像の画像データをリムーバブルメディア３１に記録するまでの一連の処理（以下、「撮像処理」と呼ぶ）を実行するための機能的構成を示す機能ブロック図である。
【００２４】
図２に示すように、ＣＰＵ１１は、撮像制御部５１と、取得部５２、推定部５３と、算出部５４と、判定部５５と、重み付け部５６と、調整部５７と、生成部５８と、を備える。
なお、上述したように、撮像制御部５１乃至生成部５８の各機能は、本実施形態のようにＣＰＵ１１に搭載されている必要は特になく、これらの各機能のうち少なくとも一部を、画像処理部１７に移譲させることも可能である。
撮像制御部５１は、撮像処理の実行全体を制御する。例えば、撮像制御部５１は、デジタルカメラ１の動作モードとして、通常撮像モードと、パノラマ撮像モードとを選択的に切り替えて、切り替え後の動作モードに従った処理を実行することができる。
パノラマ撮像モードになると、取得部５２乃至生成部５８が、撮像制御部５１の制御の下で動作する。
【００２５】
ここで、撮像制御部５１乃至生成部５８の理解を容易にすべく、それらの機能的構成の説明の前に、図３及び図４を適宜参照して、パノラマ撮像モードについて詳しく説明する。
【００２６】
図３は、図１のデジタルカメラ１の動作モードとして、通常撮像モードとパノラマ撮像モードとが夫々選択された場合における撮像操作を説明する図である。
詳細には、図３（Ａ）は、通常撮像モードでの撮像操作を説明する図である。図３（Ｂ）は、パノラマ撮像モードでの撮像操作を説明する図である。
図３（Ａ）及び図３（Ｂ）の夫々において、デジタルカメラ１の奥にある絵は、デジタルカメラ１の被写体を含む実世界の様子を示している。また、図３（Ｂ）に示す縦の点線は、デジタルカメラ１の移動方向の各位置ａ、ｂ、ｃを示している。デジタルカメラ１の移動方向とは、ユーザが、自身の体を軸にしてデジタルカメラ１の撮像方向（角度）を変化させた場合における、デジタルカメラ１の光軸が移動する方向をいう。
【００２７】
通常撮像モードとは、デジタルカメラ１の画角に対応するサイズ（解像度）の画像を、撮像する場合の動作モードをいう。
通常撮像モードでは、図３（Ａ）に示すように、ユーザは、デジタルカメラ１を固定させた状態で、操作部２０のシャッタスイッチ４１を下限まで押下する。なお、このように、シャッタスイッチ４１を下限まで押下する操作を、以下、「全押し操作」又は単に「全押し」と呼ぶ。
撮像制御部５１は、全押し操作がなされた直後に画像処理部１７から出力された画像データを、記録対象としてリムーバブルメディア３１に記録させるまでの一連の処理の実行を制御する。
以下、このように、通常撮像モードにおいて撮像制御部５１の制御により実行される一連の処理を、「通常撮像処理」と呼ぶ。
【００２８】
一方、パノラマ撮像モードとは、パノラマ画像を撮像する場合の動作モードをいう。
パノラマ撮像モードでは、図３（Ｂ）に示すように、ユーザは、シャッタスイッチ４１の全押し操作を維持した状態で、デジタルカメラ１を同図中黒矢印の方向に移動させる。
撮像制御部５１は、全押し操作が維持されている間、取得部５２乃至生成部５８を制御して、角速度センサ２２からの角度変位量が一定値に達する毎に、その直後に画像処理部１７から出力された画像データを記憶部１８に一時的に記憶していくことを繰り返す。
その後、ユーザは、全押し操作を解除する操作、即ちシャッタスイッチ４１から指等を離す操作（以下、このような操作を「リリース操作」と呼ぶ）をすることで、パノラマ撮像の終了を指示する。
撮像制御部５１は、取得部５２乃至生成部５８を制御して、パノラマ撮像の終了が指示されると、これまでに記憶部１８に記憶された複数の画像データを、記憶された順番で水平方向に合成することによって、パノラマ画像の画像データを生成する。
そして、撮像制御部５１は、生成部５８等を制御して、パノラマ画像の画像データを、記録対象としてリムーバブルメディア３１に記録させる。
このように、撮像制御部５１は、パノラマ撮像モードにおいて、取得部５２乃至生成部５８を制御して、パノラマ画像の画像データを生成し、それを記録対象としてリムーバブルメディア３１に記録させるまでの一連の処理を制御する。
以下、このように、パノラマ撮像モードにおいて撮像制御部５１の制御により実行される一連の処理を「パノラマ撮像処理」と呼ぶ。
【００２９】
図４は、図３に示すパノラマ撮像モードにおいて、取得部５２乃至生成部５８により生成されたパノラマ画像の画像データを示している。
即ち、パノラマ撮像モードにおいて、図３（Ｂ）に示すような撮像操作が行われると、撮像制御部５１の制御の下、取得部５２乃至生成部５８により、図４に示すようなパノラマ画像Ｐ３の画像データが生成され、リムーバブルメディア３１に記録される。
【００３０】
取得部５２乃至生成部５８は、撮像制御部５１の制御の下、次のような処理を実行する。
取得部５２は、デジタルカメラ１が所定量だけ移動する毎に（角度変位量が一定値になる毎）に、撮像制御部５１から発行される取得指令を受けて、画像処理部１７から連続的に撮像された画像の画像データを順次取得する。
【００３１】
推定部５３は、取得部５２により順次取得された画像データ夫々における、空間方向に隣接する画像データ同士を合成する場合に、隣接する画像データと接触又は重なる各々の領域（いわゆる貼り付け部分又はノリシロ部分と呼ばれる領域であって、以下、「合成部分」と呼ぶ）内で合成すべき合成位置を推定する。ここで、隣接する画像データとは、パノラマ撮像中に、Ｋ回目（Ｋは１以上の整数値）の撮像により得られた撮像画像の画像データと、同パノラマ撮像中に、Ｋ＋１回目の撮像により得られた撮像画像の画像データとをいう。
【００３２】
図５は、推定部５３が合成位置を推定する手法を説明する図である。
図５において、画像データＦａは、上記Ｋ回目の画像データを示している。画像データＦｂは、上記Ｋ＋１回目の画像データを示している。即ち、画像データＦａが得られた次の回に、画像データＦｂが得られたことになる。
図５において、斜線でハッチングした部分は、他の部分と比べ、輝度値が低いことを示している。
【００３３】
図５に示すように、推定部５３は、画像データＦａと画像データＦｂとが重さなる各々の合成部分Ｆａｍ，Ｆｂｍを検出し、当該合成部分Ｆａｂ，Ｆｂｍ内で合成位置を推定する。
ここで、合成部分は、画像データを構成する各画素のうち、線、又は長方形を構成する画素の集合体になる。ここで、合成部分の長手方向を「長さ方向」と呼び、長さ方向と直交する方向を「幅方向」と呼ぶ。本実施形態では、複数の画像データは水平方向（図５中Ｘ座標方向）に合成されるので、合成部分の長さ方向は垂直方向（図５中Ｙ座標方向）であるものとし、合成部分の幅方向は水平方向（図５中Ｘ座標方向）とする。また、本実施形態では、合成部分Ｆａｍ，Ｆｂｍの幅方向の長さは、３ドットとしているが、特に限定されず、任意の長さとすることができる。
【００３４】
ここで、合成部分Ｆａｍ，Ｆｂｍの検出手法は、特に限定されず、画像データＦａと画像データＦｂとを画像処理により比較する手法等任意の手法を採用することができる。
ただし、本実施形態では、上述したように、デジタルカメラ１が所定量だけ移動する毎（角度変位量が一定値になる毎）に１回の画像データの取得が行われる。したがって、当該所定量（角度変位量の一定値）に基づいて合成部分Ｆａｍ，Ｆｂｍを推定することができる。そこで、本実施形態では、当該所定量（角度変位量の一定値）に基づいて推定された部分を、合成部分Ｆａｍ，Ｆｂｍとするといった手法が採用されている。
そして、推定部５３は、本実施形態ではＨａｒｒｉｓのコーナー検出法により、合成部分Ｆａｍ，Ｆｂｍの各々における特徴点（画素）の移動ベクトルを算出することにより、合成位置を推定する。
【００３５】
図６は、推定部５３が合成位置を推定する手法を説明する図である。
算出部５４は、所定の領域内である合成部分Ｆａｍ，Ｆｂｍ内で所定方向である垂直方向に画素をずらしながら、当該合成部分Ｆａｍ，Ｆｂｍ内における画像データ同士の画素の輝度値の差を算出する。
図６（ａ）は、図５中の画像データＦａ内の合成部分Ｆａｍのうち、幅１ドットの部分の輝度値を示す。
図６（ｂ）は、図５中の画像データＦｂ内の合成部分Ｆｂｍのうち、幅１ドットの部分の輝度値を示す。
図６（ａ）及び（ｂ）中において、Ｙ座標は図５のものと同一であり、画像データの垂直方向を示している。
図６（ａ）及び（ｂ）から、図５中の点線で囲んだ部分Ｌの輝度値は、図５中の他の部分と比べ低いことがわかる。
【００３６】
図６（ｃ）は、算出部５４により算出された、図５（ａ）の合成部分Ｆａｍにおける幅１ドットの輝度値と、図５（ｂ）の合成部分Ｆｂｍの幅１ドットの輝度値との差分の絶対値（以下、「画素値の差」とも呼ぶ）を示す。
判定部５５は、算出部５４により算出された画素値の差が閾値（図６中の点線）以上か否かを判定し、画素値の差が閾値以上である部分Ｐを抽出する。
【００３７】
図６（ｄ）は、図５中の部分Ｐに重み付けした画素値の差を示す。
重み付け部５６は、判定部５５により画素値の差が閾値以上であると判定された部分Ｐに重み付けをする。具体的には、重み付け部５６は、部分Ｐの画素値の差ｄを２倍にするように重み付けをする。重み付け部５６は、重み付け後の画素値の差の総和（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｔｅ  Ｄｉｆｆｅｒｅｎｃｅ  以下、「ＳＡＤ」とも呼ぶ）を算出する。
なお、本実施形態において、合成部分における２つの画像データの類似度合いを算出する手法として、ＳＡＤを採用しているが、特にこれに限定されず、例えば、差分二乗和等を採用することもできる。
また、本実施形態において、合成部分における２つの画像データの類似度合いを算出するための画素値として輝度値を採用しているが、特にこれに限定されず、色差や色相を採用することもできる。
【００３８】
以上の手法により、算出部５４は、推定部５３により推定された合成位置を基準として、合成部分Ｆａｍ，Ｆｂｍを、上下方向（図５及び６中のＹ座標方向）に、所定のドット数（例えば、１ドット）の間隔を空けて、１ドットずつずらしながら１６通り（上下合計３２通り）の画素値の差を算出する。重み付け部５６は、判定部５５の判定結果に基づき、画素値の差が閾値以上である部分Ｐを重み付けした上で、３２通りの重み付け後のＳＡＤを算出する。
このように、所定のドット数の間隔を空けて、画素値の差を算出することで、合成部分における上下方向により広い範囲でＳＡＤを算出できる。
調整部５７は、重み付け部５６による重み付け後の画素値の差の３２通りＳＡＤの値のうち、最小値のＳＡＤの値となる画像データ同士の位置を合成位置候補とするように調整する。
【００３９】
そして、算出部５４は、調整部５７により調整された合成位置候補を基準として、合成部分Ｆａｍ，Ｆｂｍを、上下方向（図５及び６中のＹ座標方向）に１ドットずつずらしながら更に１６通り（上下合計３２通り）のＳＡＤを算出する。算出部５４は、合成部分Ｆａｂの幅（例えば、３ドット）に応じた重み付けをしてＳＡＤを算出する。この重み付けは、例えば、合成部分Ｆａｂの幅方向３ドット分の画素値の差を合成する手法を採用できる。
【００４０】
調整部５７は、重み付け部５６による重み付け後の画素値の差の３２通りＳＡＤの値のうち、最小値のＳＡＤの値となる位置を合成位置となるように調整する。
このように、算出部５４は、画素値の差を２回算出することになる。即ち、算出部５４は、１回目として、所定のドット数の間隔を空けて、１ドットずつずらしながら画素値の差を算出し、２回目として、所定のドット数の間隔を空けずに、１ドットずつずらしながら画素値の差を算出する。これにより、１回目は合成部分における上下方向により広い範囲で画素値の差を算出することができるので、ある程度確からしい位置に合成位置を絞り込み、２回目は絞り込んだ位置を基準として詳細に画素値の差を算出することで、より正確な合成位置を調整できる。
また、本実施形態においては、合成部分Ｆａｍ，Ｆｂｍの重複領域全てについて上下方向に所定のドット数ずらしながらＳＡＤを算出していったが、合成部分Ｆａｍ，Ｆｂｍの重複領域の一部についてＳＡＤを算出するようにしてもよい。つまり、ＳＡＤを算出する際に、上下方向にずれる最大のドット数分の領域（所定のドット数ずらしながらＳＡＤを算出する過程で、合成部分Ｆａｍ，Ｆｂｍが重ならなくなる領域）を予めＳＡＤの算出候補から外しておくことで、ＳＡＤを算出するための重複領域のドット数を一定に保つようにしてもよい。
このようにすることで、ＳＡＤが最小値となる合成位置の推定・調整がより正確なものとなる。
【００４１】
生成部５８は、撮像制御部５１の制御により、調整部５７により調整された合成位置に基づいて、隣接する画像データ同士を合成し、パノラマ画像の画像データを生成する。
取得部５２乃至生成部５８は、以上の処理により、これまでに取得された複数の画像データを、記憶された順番で水平方向に合成することによって、パノラマ画像の画像データを生成する。
【００４２】
以上、図２乃至図６を参照して、本発明が適用されるデジタルカメラ１の機能的構成について説明した。
次に、図７を参照して、このような機能的構成を有するデジタルカメラ１が実行する撮像処理について説明する。
【００４３】
図７は、撮像処理の流れの一例を示すフローチャートである。
本実施形態では、撮像処理は、デジタルカメラ１の図示せぬ電源がオン状態になると開始する。
【００４４】
ステップＳ１において、図２の撮像制御部５１は、操作検出処理及び初期設定処理を実行する。
操作検出処理とは、操作部２０の各スイッチの状態を検出する処理をいう。撮像制御部５１は、操作検出処理を実行することにより、動作モードとして、通常撮像モードが設定されているのか、それともパノラマ撮像モードが設定されているのかを検出することができる。
また、本実施形態の初期設定処理の１つとして、角度変位量の一定値と、角度変位量の最大限界である角度変位閾値（例えば、３６０度）とを設定する処理が採用されている。
具体的には、角度変位量の一定値と、角度変位量の最大限界である角度変位閾値（例えば、３６０度）は、図１のＲＯＭ１２に予め記憶されており、ＲＯＭ１２から読み出されてＲＡＭ１３に書き込まれることで設定される。なお、角度変位量の一定値は、後述する図８のステップＳ３５の判定処理で用いられる。一方、角度変位量の最大限界である角度変位閾値（例えば、３６０度）は、同図のステップＳ４４の判定処理で用いられる。
また、本実施形態では、後述する図８のステップＳ３４，Ｓ３９等に示すように、角速度センサ２２によって検出された角度変位量は累積加算されて、その累積加算値としての累積角度変位量や総合角度変位量（両者の違いは後述する）がＲＡＭ１３に格納される。そこで、これらの累積角度変位量や総合角度変位量を０にリセットする処理が、本実施形態の初期設定処理の１つとして採用されている。なお、累積角度変位量は、後述する図８のステップＳ３５の判定処理で、上述した一定値と比較される。一方、総合角度変位量は、後述する図８のステップＳ４４の判定処理で、上述した角度変位閾値と比較される。
更にまた、本実施形態の初期設定処理の１つとして、エラーフラグを０にリセットする処理が採用されている。エラーフラグとは、パノラマ撮像処理中にエラーが発生した時に１にセットされるフラグをいう（後述する図８のステップＳ４３参照）。
【００４５】
ステップＳ２において、撮像制御部５１は、ライブビュー撮像処理及びライブビュー表示処理を開始する。
即ち、撮像制御部５１は、撮像部１６や画像処理部１７を制御して、撮像部１６による撮像動作を継続させる。そして、撮像制御部５１は、撮像部１６による撮像動作が継続されている間、当該撮像部１６を介して画像処理部１７から順次出力される画像データを、メモリ（本実施形態では記憶部１８）に一時的に記憶させる。このような撮像制御部５１による一連の制御処理が、ここでいう「ライブビュー撮像処理」である。
また、撮像制御部５１は、ライブビュー撮像時にメモリ（本実施形態では記憶部１８）に一時的に記録された各画像データを順次読み出して、各画像データに対応する画像を表示部１９に順次表示させる。このような撮像制御部５１による一連の制御処理が、ここでいう「ライブビュー表示処理」である。なお、ライブビュー表示処理により表示部１９に順次表示されている画像を、以下、「ライブビュー画像」と呼ぶ。
【００４６】
ステップＳ３において、撮像制御部５１は、シャッタスイッチ４１が半押しされたか否かを判定する。
ここで、半押しとは、操作部２０のシャッタスイッチ４１の途中（下限に至らない所定の位置）まで押下する操作をいい、以下、「半押し操作」とも適宜呼ぶ。
シャッタスイッチ４１が半押しされていない場合、ステップＳ３においてＮＯであると判定されて、処理はステップＳ１２に進む。
【００４７】
ステップＳ１２において、撮像制御部５１は、処理の終了指示がなされたか否かを判別する。
処理の終了指示は、特に限定されないが、本実施形態では、デジタルカメラ１の図示せぬ電源がオフ状態になった旨の通知が採用されているものとする。
したがって、本実施形態では電源がオフ状態になりその旨が撮像制御部５１に通知されると、ステップＳ１２においてＹＥＳであると判定されて、撮像処理全体が終了となる。
これに対して、電源がオン状態の場合には、電源がオフ状態になった旨の通知はなされないので、ステップＳ１２においてＮＯであると判定され、処理はステップＳ２に戻され、それ以降の処理が繰り返される。即ち、本実施形態では電源がオン状態を維持している限り、シャッタスイッチ４１が半押しされるまでの間、ステップＳ３：ＮＯ及びステップＳ１２：ＮＯのループ処理が繰り返し実行されて、撮像処理は待機状態となる。
【００４８】
このライブビュー表示処理中に、シャッタスイッチ４１が半押しされると、ステップＳ３においてＹＥＳであると判定されて、処理はステップＳ４に進む。
【００４９】
ステップＳ４において、撮像制御部５１は、撮像部１６を制御して、いわゆるＡＦ（Ａｕｔｏ  Ｆｏｃｕｓ）処理を実行する。
【００５０】
ステップＳ５において、撮像制御部５１は、シャッタスイッチ４１が全押しされたか否かを判定する。
シャッタスイッチ４１が全押しされない場合には、ステップＳ５においてＮＯであると判定される。この場合には、処理はステップＳ４に戻され、それ以降の処理が繰り返される。即ち、本実施形態では、シャッタスイッチ４１が全押しされるまでの間、ステップＳ４、及びステップＳ５：ＮＯのループ処理が繰り返し実行されて、ＡＦ処理がその都度実行される。
【００５１】
その後、シャッタスイッチ４１が全押しされると、ステップＳ５においてＹＥＳであると判定されて、処理はステップＳ６に進む。
ステップＳ６において、撮像制御部５１は、現在設定されている撮像モードがパノラマ撮像モードであるか否かを判定する。
パノラマ撮像モードでない場合、即ち通常撮像モードが現在設定されている場合、ステップＳ６においてＮＯであると判定され、処理はステップＳ７に進む。
ステップＳ７において、撮像制御部５１は、上述した通常撮像処理を実行する。
即ち、全押し操作がなされた直後に画像処理部１７から出力された１つの画像データが、記録対象としてリムーバブルメディア３１に記録される。これにより、ステップＳ７の通常撮像処理が終了して、処理はステップＳ１２に進む。なお、ステップＳ１２以降の処理については上述したので、ここではその説明は省略する。
【００５２】
これに対して、パノラマ撮像モードが現在設定されている場合、ステップＳ６においてＹＥＳであると判定されて、処理はステップＳ８に進む。
ステップＳ８において、撮像制御部５１は、上述したパノラマ撮像処理を実行する。
パノラマ撮像処理の詳細については図８を参照して後述するが、原則として、パノラマ画像の画像データが生成されて、記録対象としてリムーバブルメディア３１に記録される。これにより、ステップＳ８のパノラマ撮像処理が終了して、処理はステップＳ９に進む。
【００５３】
ステップＳ９において、撮像制御部５１は、エラーフラグは１であるか否かを判定する。
詳細については、図８を参照して後述するが、パノラマ画像の画像データが記録対象としてリムーバブルメディア３１に記録されて、ステップＳ８のパノラマ撮像処理が適正に終了すると、エラーフラグは０になっている。このような場合には、ステップＳ９においてＮＯであると判定されて、処理はステップＳ１２に進む。なお、ステップＳ１２以降の処理は上述したので、ここではその説明は省略する。
これに対して、ステップＳ８のパノラマ撮像処理中に何らかのエラーが発生すると、当該パノラマ撮像処理は不適正に終了する。このような場合には、エラーフラグは１になっているため、ステップＳ９においてＹＥＳであると判定されて、処理はステップＳ１０に進む。
【００５４】
ステップＳ１０において、撮像制御部５１は、エラーの内容を表示部１９に表示する。表示されるエラーの内容の具体例については、後述する。
ステップＳ１１において、撮像制御部５１は、パノラマ撮像モードを解除し、エラーフラグを０にリセットする。
その後、処理はステップＳ１に戻され、それ以降の処理が繰り返される。即ち、撮像制御部５１は、ユーザによる次の新たな撮像操作に備える。
【００５５】
以上、図７を参照して、撮像処理の流れについて説明した。
次に、図８を参照して、図７の撮像処理のうち、ステップＳ８のパノラマ撮像処理の詳細な流れについて説明する。
図８は、パノラマ撮像処理の詳細な流れを説明するフローチャートである。
上述したように、パノラマ撮像モードの状態でシャッタスイッチ４１が全押しされると、図７のステップＳ５及びＳ６においてＹＥＳと判定され、処理はステップＳ８に進み、パノラマ撮像処理として次のような処理が実行される。
【００５６】
即ち、図８のステップＳ３１において、撮像制御部５１は、角速度センサ２２から角度変位量を取得する。
【００５７】
ステップＳ３２において、撮像制御部５１は、ステップＳ３１の処理で取得した角度変位量が０より大きいか否かを判定する。
ユーザがデジタルカメラ１を移動させていない状態では、角度変位量は０になるため、ステップＳ３２においてＮＯであると判定され、処理は、ステップＳ３３に進む。
【００５８】
ステップＳ３３において、撮像制御部５１は、角度変位量０の継続が所定時間経過したか否かを判定する。所定時間としては、例えば、ユーザがシャッタスイッチ４１を全押ししてから、デジタルカメラ１の移動を開始するまでに必要な時間よりも長い適当な時間を採用することができる。
所定時間が経過していない場合には、ステップＳ３３においてＮＯであると判定され、処理はステップＳ３１に戻され、それ以降の処理が繰り返される。即ち、ユーザがデジタルカメラ１を移動させていない状態の継続時間が所定時間より短い場合には、撮像制御部５１は、ステップＳ３１乃至ステップＳ３３：ＮＯのループ処理を繰り返し実行することで、パノラマ撮像処理を待機状態にする。
【００５９】
この待機状態中に、ユーザが、デジタルカメラ１を移動させると、角速度センサ２２から取得される角度変位量は０よりも大きな値になる。このような場合には、ステップＳ３２においてＹＥＳであると判定されて、処理はステップＳ３４に進む。
【００６０】
ステップＳ３４において、撮像制御部５１は、これまでの累積角度変位量に対して、ステップＳ３１の処理で取得した角度変位量を加算することによって、累積角度変位量を更新する（更新される累積角度変位量＝これまでの累積角度変位量＋角度変位量）。即ち、ＲＡＭ１３に累積角度変位量として格納される値が更新される。
【００６１】
累積角度変位量とは、このように角度変位量が累積加算された値であり、デジタルカメラ１の移動量を示している。
ここで、本実施形態では、ユーザがデジタルカメラ１を一定量移動させる度に、パノラマ途中画像の画像データ生成用の１つの画像データ（合成対象）が、画像処理部１７から取得部５２に供給されるものとする。
これを実現すべく、デジタルカメラ１の移動量としての「一定量」に対応する累積角度変位量が、図７のステップＳ１の初期設定処理により「一定値」として予め与えられている。
即ち、本実施形態では、累積角度変位量が一定値に達する毎に、１つの画像データ（合成対象）が画像処理部１７から取得部５２に供給されると共に、累積角度変位量が０にリセットされる。
このような一連の処理が、次のステップＳ３５以降の処理として実行される。
【００６２】
即ち、ステップＳ３５において、撮像制御部５１は、累積角度変位量が一定値に達したか否かを判定する。
累積角度変位量が一定値に達していない場合には、ステップＳ３５においてＮＯであると判定され、処理はステップＳ３１に戻され、それ以降の処理が繰り返される。即ち、ユーザがデジタルカメラ１を一定量移動させることによって、累積角度変位量が一定値に達しない限り、撮像制御部５１は、ステップＳ３１乃至Ｓ３５のループ処理を繰り返し実行する。
その後、ユーザがデジタルカメラ１を一定量移動させることによって、累積角度変位量が一定値に達したときは、ステップＳ３５においてＹＥＳであると判定されて、処理はステップＳ３６に進む。
【００６３】
ステップＳ３６において、撮像制御部５１は、パノラマ合成処理を実行する。
パノラマ合成処理の詳細については図９を参照して後述するが、取得部５２から画像データ（合成対象）を取得し、この画像データを合成し、パノラマ途中画像の画像データを生成する。
パノラマ途中画像とは、パノラマ撮像モードが選択されている状態で全押し操作がなされた場合、生成予定のパノラマ画像のうち、現在までに撮像された領域を示す画像をいう。
【００６４】
ステップＳ３９において、撮像制御部５１は、これまでの総合角度変位量に対して、現在の累積角度変位量（＝略一定値）を加算することによって、総合角度変位量を更新する（更新される総合角度変位量＝これまでの総合角度変位量＋累積角度変位量）。即ち、ＲＡＭ１３に総合角度変位量として格納される値が更新される。
【００６５】
ステップＳ４０において、撮像制御部５１は、累積角度変位量を０にリセットする。即ち、ＲＡＭ１３に累積角度変位量として格納される値が０に更新される。
【００６６】
このように、累積角度変位量は、１つの画像データ（合成対象）が画像処理部１７から取得部５２に供給されるタイミング、即ち取得指令の発行タイミングを制御するために用いられる。よって、累積角度変位量は、一定に達して取得指令が発行される毎に０にリセットされる。
したがって、撮像制御部５１は、累積角度変位量を用いても、パノラマ撮像処理が開始されてから現在までにデジタルカメラ１がどこまで移動したのかを認識することができない。
そこで、このような認識を可能にすべく、本実施形態では、累積角度変位量とは別に、総合角度変位量が採用されている。
即ち、総合角度変位量とは、角度変位量が累積加算された値であるが、一定量に達しても０にリセットされずに、パノラマ撮像処理が終了するまでの間（詳細には後述するステップＳ４６の処理が実行されるまでの間）累積加算され続ける値である。
【００６７】
このようにして、ステップＳ３９の処理で総合角度変位量が更新されると共に、ステップＳ４０の処理で累積角度変位量が０にリセットされると、処理はステップＳ４１に進む。
【００６８】
ステップＳ４１において、撮像制御部５１は、リリース操作が行われたか否かを判定する。
リリース操作が行われていない場合、即ち、ユーザによるシャッタスイッチ４１の全押しが継続されている場合には、ステップＳ４１においてＮＯであると判定されて、処理はステップＳ４２に進む。
【００６９】
ステップＳ４２において、撮像制御部５１は、画像取得のエラーが発生したか否かを判定する。
画像取得のエラーについては、特に限定されないが、例えば、本実施形態では、デジタルカメラ１が斜め方向、上下方向、又は逆方向に一定量以上移動したことがエラーとして採用されている。
【００７０】
画像取得にエラーが発生していない場合には、ステップＳ４２においてＮＯであると判定され、処理はステップＳ４４に進む。
ステップＳ４４において、撮像制御部５１は、総合角度変位量が角度変位閾値を超えたか否かを判別する。
上述したように、総合角度変位量とは、パノラマ撮像処理が開始されてから（全押し操作がなされてから）、ステップＳ４４の処理が実行される時点までの角度変位量の累積加算値である。
ここで、本実施形態では、パノラマ撮像中にユーザがデジタルカメラ１を移動させることが可能な最大移動量が予め決定されている。このようなデジタルカメラ１の移動量としての「最大移動量」に対応する総合角度変位量が、図７のステップＳ１の初期設定処理により「角度変位閾値」として予め与えられている。
このように、本実施形態では、総合角度変位量が角度変位閾値に達したことは、デジタルカメラ１が最大移動量だけ移動したことを意味する。
したがって、総合角度変位量が角度変位閾値に達していない場合、即ちデジタルカメラ１の移動量が最大移動量まで達していない場合、ユーザはデジタルカメラ１をまだ移動し続けることができるので、ステップＳ４４においてＮＯであると判定されて、処理はステップＳ３１に戻され、それ以降の処理が繰り返される。
即ち、角度変位量０の継続が所定時間経過すること（デジタルカメラ１が所定時間移動しないこと）もエラーの１つに含めると、エラーが発生しない状態で、全押し操作が継続されている限り、ステップＳ３１乃至Ｓ４４：ＮＯのループ処理が繰り返し実行される。
【００７１】
その後、エラーが発生しない状態で、リリース操作がなされるか（ステップＳ４１の処理でＹＥＳであると判定されるか）又はデジタルカメラ１が最大移動量まで移動した（ステップＳ４４の処理でＹＥＳであると判定された）場合、処理はステップＳ４５に進む。
ステップＳ４５において、撮像制御部５１は、取得部５２を介して、パノラマ画像の画像データを生成し、記録対象の画像データとしてリムーバブルメディア３１に記録させる。
なお、本実施形態では、画像データが取得される毎に、パノラマ途中画像の画像データが生成されているので、ステップＳ４５の処理時点で生成されているパノラマ途中画像の画像データが、最終的なパノラマ画像の画像データとして採用される。
【００７２】
そして、ステップＳ４６において、撮像制御部５１は、総合角度変位量を０にリセットする。
これにより、パノラマ撮像処理は適正に終了する。即ち、図７のステップＳ８の処理は適正に終了して、次のステップＳ９の処理でＮＯであると判定される。なお、ステップＳ９の処理でＮＯであると判定された後の処理については、上述したので、ここではその説明は省略する。
【００７３】
なお、上述の一連の処理中に何らかのエラーが発生した場合、即ち、ステップＳ３３の処理でＹＥＳであると判定されるか、又は、ステップＳ４２の処理でＹＥＳであると判定された場合、処理はステップＳ４３に進む。
ステップＳ４３において、撮像制御部５１は、エラーフラグを１にセットする。
この場合、ステップＳ４５の処理は実行されずに、即ち、パノラマ画像の画像データは記録されずに、パノラマ撮像処理は不適正に終了する。
即ち、図７のステップＳ８の処理は不適正に終了して、次のステップＳ９の処理でＹＥＳであると判定されて、ステップＳ１０の処理でエラーの内容が表示される。
この場合のエラー内容の表示は、上述したように特に限定されないが、例えば、「画像取得に失敗しました」や「時間オーバーです」等のメッセージ表示を採用することができる。
【００７４】
以上、図８を参照して、パノラマ撮像処理の流れについて説明した。
次に、図９を参照して、図８のパノラマ撮像処理のうち、ステップＳ３６のパノラマ合成処理の詳細な流れについて説明する。
【００７５】
図９は、パノラマ合成処理の詳細な流れを説明するフローチャートである。
上述したように、ユーザがデジタルカメラ１を一定量移動させることによって、累積角度変位量が一定値に達すると、図８のステップＳ３５においてＹＥＳと判定され、処理はステップＳ３６に進み、パノラマ合成処理として次のような処理が実行される。
【００７６】
即ち、図９のステップＳ５１において、取得部５２は、撮像制御部５１の制御の下、連続的に撮像された画像の画像データを画像処理部１７から順次取得する。
ステップＳ５２において、推定部５３は、ステップＳ５１で取得された画像データ夫々における、隣接する画像データ同士の合成部分内で生成部５８により合成すべき合成位置を推定する。
ステップＳ５３において、算出部５４は、ステップＳ５２で推定された合成位置を基準として、上下方向に、所定のドット数の間隔を空けて、１ドットずつずらしながら１６通り（上下合計３２通り）の画素値の差を算出する。
ステップＳ５４において、判定部５５は、ステップＳ５３で算出された画素値の差が閾値以上か否かを判定し、画素値の差が閾値以上である部分を抽出する。
ステップＳ５５において、重み付け部５６は、ステップＳ５５で画素値の差が閾値以上であると判定された部分に重み付けをした３２通りのＳＡＤを算出する。
ステップＳ５６において、調整部５７は、ステップＳ５５で算出された３２通りのＳＡＤの値から最も値が最小となるものを合成位置候補として調整する。
ステップＳ５７において、算出部５４は、ステップＳ５６で調整された合成位置候補を基準として、上下方向に１ドットずつずらしながら更に１６通り（上下合計３２通り）のＳＡＤを算出する。
ステップＳ５８において、調整部５７は、ステップＳ５７で算出された３２通りのＳＡＤの値から最も値が最小となるものを合成位置として調整する。
ステップＳ５９において、生成部５８は、撮像制御部５１の制御により、ステップＳ５８で調整された合成位置に基づいて、隣接する画像データ同士を合成し、パノラマ途中画像の画像データを生成する。
【００７７】
本実施形態によれば、以下の作用効果を奏する。
本実施形態のデジタルカメラ１は、取得部５２が連続的に撮像された画像を順次取得し、生成部５８が取得部５２により順次取得された画像データを合成する。
そして、推定部５３は、取得部５２により順次取得された画像データ夫々における、隣接する画像データ同士の合成部分内で生成部５８により合成位置を推定し、算出部５４は、推定部５３により推定された合成位置を基準として、合成部分内で所定方向に画素データをずらしながら、当該合成部分内における画像データ同士の画素値のＳＡＤを算出し、調整部５７は、算出部５４により算出された合成部分内の画素値のＳＡＤの値が最小となる画像データ同士の位置が合成位置となるように調整し、生成部５８は、調整部５７により調整された合成位置に基づいて、隣接する画像データ同士を合成し、パノラマ画像の画像データを生成する。
これにより、隣接する画像データ同士の合成において、隣接する画像データ同士の合成部分内で合成位置を推定してから、更に、合成部分内で画素値のＳＡＤの値が最小となる合成位置、即ち、隣接する画像データ同士において画像データのエッジ部分が揃っている合成位置に調整して合成できる。
したがって、画像を合成する際の位置合わせの精度を向上させることができる。
また、本実施形態は、予め推定部５３が合成位置を推定した後に、算出部５４が垂直方向に所定のドット数分だけ画素データをずらしながらＳＡＤの値を算出して、調整部５７が最小のＳＡＤの値となる位置が合成位置となるように調整するようにしたため、例えば、合成部分内の全ての画素データの分について垂直方向に画素データをずらしながらＳＡＤの値を算出し、最小のＳＡＤの値となる位置が合成位置となるように設定するよりもデジタルカメラ１の処理負担を軽くすることができる。
【００７８】
また、本実施形態のデジタルカメラ１の判定部５５は、算出部５４により算出された画素値の差が閾値以上か否かを判定し、重み付け部５６は、判定部５５により画素値の差が閾値以上であると判定されると、画素値の差に重み付けをし、調整部５７は、重み付け部５６により重み付けされた画素値の差に基づいて、合成位置を調整する。
これにより、画素値の差が閾値以上となる、即ち、隣接する画像データ同士において、画像データのエッジ部分がずれた合成位置の候補を、ＳＡＤの値が最小となる合成位置の候補からしやすくなるので、画像データのエッジ部分が揃っている位置に合成位置を調整しやすくなる。また、図６には図示しなかったが、合成部分Ｆａｍ，Ｆｂｍの画素を輝度値に変換したときに当該輝度値にノイズが発生したとしても、画素値の差（隣接する画像同士の輝度値の差分の絶対値）が閾値以上であるものに重み付けしてＳＡＤの値を算出することにしたので、輝度値の変換時における多少のノイズに影響されることなく合成位置の調整ができる。
【００７９】
また、本実施形態のデジタルカメラ１の取得部５２は、撮像部１６により所定時間毎に順次撮像された画像を取得する。
これにより、撮像部１６で撮像しながら、取得された画像データを順次合成位置を調整して合成できる。
【００８０】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【００８１】
例えば、上述の実施形態においては、撮像部１６による撮像動作中にパノラマ合成処理を行っているが、特にこれに限定されず、撮像部１６による撮像動作が終了し、パノラマ画像の画像データを生成するための全ての画像データが取得された後にパノラマ合成処理を行ってもよい。
【００８２】
また、上述の実施形態においては、角速度センサ２２によってデジタルカメラ１の角度変位量を検出する構成としたが、角度変位量を検出する手法は、特にこれに限定されず、例えば、ライブビュー画像を解析し、画像同士のモーションベクトルによってデジタルカメラ１の角度変位量を検出する手法を採用してもよい。
【００８３】
また、上述の実施形態においては、パノラマ途中画像及びパノラマ画像は、横長の構成としたが、特にこれに限定されず、デジタルカメラ１の移動方向に則した方向に長くなる構成、例えば縦長の構成としてもよいし、生成する画像はパノラマ画像に限らず、複数の画像を合成することにより、１つの画像の画角よりも画角が広い広角画像を生成するものであればよい。
【００８４】
また、上述の実施形態では、本発明が適用される画像処理装置は、デジタルカメラ１として構成される例として説明した。
しかしながら、本発明は、特にこれに限定されず、パノラマ画像の生成が可能になる機能を有する電子機器一般に適用することができ、例えば、本発明は、携帯型パーソナルコンピュータ、携帯型ナビゲーション装置、ポータブルゲーム機等に幅広く適用可能である。
【００８５】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
【００８６】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、画像処理装置又は当該画像処理装置を制御するコンピュータ等にネットワークや記録媒体からインストールされる。ここで、コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。或いはまた、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであってもよい。
【００８７】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布されるリムーバブルメディア３１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。リムーバブルメディア３１は、例えば、磁気ディスク（フロッピディスクを含む）、光ディスク、光磁気ディスク等により構成される。また、装置本体に予め組み込まれた状態でユーザに提供される記録媒体は、例えば、プログラムが記録されているＲＯＭ１２や記憶部１８に含まれるハードディスク等で構成される。
【００８８】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
【００８９】
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［付記１］
連続的に撮像された画像を順次取得する取得手段と、
前記取得手段により順次取得された画像夫々における、隣接する画像同士の所定の領域内で合成すべき位置を推定する推定手段と、
前記推定手段により推定された合成すべき位置を基準として、前記所定の領域内で所定方向に画素をずらしながら、当該所定の領域内における前記画像同士の画素値の差を算出する算出手段と、
前記算出手段により算出された画素値の差が最小となる前記画像同士の位置を前記合成すべき位置となるように調整する調整手段と、
前記調整手段により調整された合成すべき位置に基づいて、前記隣接する画像同士を合成し、広角画像を生成する生成手段と
を備えたことを特徴とする画像処理装置。
［付記２］
前記算出手段により算出された画素値の差が閾値以上か否かを判定する判定手段と、
前記判定手段により前記画素値の差が閾値以上であると判定されると、前記画素値の差に重み付けをする重み付け手段とを備え、
前記調整手段は、前記重み付け手段により重み付けされた画素値の差に基づいて、前記合成すべき位置を調整することを特徴とする付記１記載の画像処理装置。
［付記３］
撮像手段を更に備え、
前記取得手段は、前記撮像手段により所定時間毎に順次撮像された画像を取得することを特徴とする付記１又は２記載の画像処理装置。
［付記４］
連続的に撮像された画像を順次取得する取得ステップと、
前記取得ステップにより順次取得された画像夫々における、隣接する画像同士の所定の領域内で合成すべき位置を推定する推定ステップと、
前記推定ステップにより推定した合成すべき位置を基準として、前記所定の領域内で所定方向に画素をずらしながら、当該所定の領域内における前記画像同士の画素値の差を算出する算出ステップと、
前記算出ステップにより算出した画素値の差が最小となる前記画像同士の位置を前記合成すべき位置となるように調整する調整ステップと、
前記調整ステップにより調整した合成すべき位置に基づいて、前記隣接する画像同士を合成し、広角画像を生成する生成ステップと
を含むことを特徴とする画像処理方法。
［付記５］
コンピュータを、
連続的に撮像された画像を順次取得する取得手段、
前記取得手段により順次取得された画像夫々における、隣接する画像同士の所定の領域内で合成すべき位置を推定する推定手段、
前記推定手段により推定された合成すべき位置を基準として、所定方向に画素をずらしながら、前記所定の領域内における前記画像同士の画素値の差を算出する算出手段、
前記算出手段により算出された前記所定の領域内の画素値の差が最小となる前記画像同士の位置に前記合成すべき位置を調整する調整手段、
前記調整手段により調整された合成すべき位置に基づいて、前記隣接する画像同士を合成し、広角画像を生成する生成手段
として機能させることを特徴とするプログラム。
【符号の説明】
【００９０】
１…デジタルカメラ、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１５…光学系、１６…撮像部、１７…画像処理部、１８…記憶部、１９…表示部、２０…操作部、２１…通信部、２２…角速度センサ、２３…ドライブ、３１…リムーバブルメディア、４１…シャッタスイッチ、５１…撮像制御部、５２…取得部、５３…推定部、５４…算出部、５５…判定部、５６…重み付け部、５７…調整部、５８…合成部
【図１】
0005729237.tif 000002
【図２】
0005729237.tif 000003
【図３】
0005729237.tif 000004
【図４】
0005729237.tif 000005
【図５】
0005729237.tif 000006
【図６】
0005729237.tif 000007
【図７】
0005729237.tif 000008
【図８】
0005729237.tif 000009
【図９】
0005729237.tif 000010