(57)【特許請求の範囲】
【請求項１】
複数の画像を取得する画像取得手段と、
前記画像取得手段が取得した複数の画像に示されている移動被写体を検出する移動被写体検出手段と、
前記複数の画像を前記移動被写体検出手段が検出した移動被写体以外の部分で位置合わせして合成した場合に前記移動被写体の重なりが生じるか否かを判別する重なり判別手段と、
前記重なり判別手段によって前記移動被写体の重なりが生じないと判別された画像を合成してパノラマ画像を生成するパノラマ画像生成手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
複数の画像を合成してパノラマ画像を生成する画像処理装置において、
一の方向に移動する移動被写体が示された一連の画像を取得する画像取得手段と、
前記画像取得手段が取得した画像のうちの連続する画像間の移動量を算出する画像移動量算出手段と、
前記一連の画像のそれぞれに示されている前記移動被写体を特定する被写体特定手段と、
前記画像移動量算出手段が算出した画像間の移動量と、前記被写体特定手段が特定した各画像に示されている前記移動被写体とに基づいて、前記一連の画像に示されている前記移動被写体が画像の合成によって重ならないために必要となる画像の移動量を算出する必要移動量算出手段と、
前記画像移動量算出手段が算出した画像間の移動量と、前記必要移動量算出手段が算出した必要移動量とに基づいて、前記一連の画像のそれぞれについて合成対象画像であるか否かを判別する合成対象判別手段と、
前記合成対象判別手段によって判別された合成対象画像を合成してパノラマ画像を生成する画像合成手段と、
を備えることを特徴とする画像処理装置。
【請求項３】
前記必要移動量算出手段は、前記一連の画像のうちの最初の画像と前記合成対象判別手段が判別した前記合成対象画像のそれぞれで前記被写体特定手段が特定した移動被写体に基づいて、前記必要移動量を算出する、
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記画像移動量算出手段は、前記一連の画像のうちの最初の画像から前記画像合成手段が合成をおこなった画像までの各画像と、前記画像合成手段が合成をおこなった画像間の各画像と、について算出した画像間の移動量を加算し、
前記合成対象判別手段は、前記画像移動量算出手段による加算後の前記移動量が、前記必要移動量算出手段が算出した必要移動量より大きい場合、前記各画像の最後の画像が合成対象画像であると判別する、
ことを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記必要移動量算出手段は、前記被写体特定手段が特定した前記移動被写体の位置と大きさに基づいて、前記必要移動量を算出する、
ことを特徴とする請求項２乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記画像移動量算出手段は、前記一連の画像のうちの最初の画像から前記画像合成手段が合成をおこなった画像までの各画像と、前記画像合成手段が合成をおこなった画像間の各画像と、について算出した前記画像間の移動量を加算し、
前記画像合成手段は、前記画像移動量算出手段による加算後の前記移動量に基づいて、前記最初の画像から前記合成対象判別手段が判別した合成対象画像までの移動量を算出し、該算出した移動量に基づいて前記合成対象画像を合成する、
ことを特徴とする請求項２乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
一の方向に移動する移動被写体を連続的に撮像し、該移動被写体を示した一連の撮像画像を取得する撮像画像取得手段と、
前記撮像画像取得手段が取得した撮像画像のうちの連続する画像間の移動量を算出する画像移動量算出手段と、
前記一連の撮像画像のそれぞれに示されている前記移動被写体を特定する被写体特定手段と、
前記画像移動量算出手段が算出した撮像画像間の移動量と、前記被写体特定手段が特定した各画像に示されている前記移動被写体とに基づいて、前記一連の撮像画像に示されている前記移動被写体が画像の合成によって重ならないために必要となる撮像画像の移動量を算出する必要移動量算出手段と、
前記画像移動量算出手段が算出した撮像画像間の移動量と、前記必要移動量算出手段が算出した必要移動量とに基づいて、前記一連の撮像画像のそれぞれについて合成対象画像であるか否かを判別する合成対象判別手段と、
前記合成対象判別手段が判別した合成対象画像を合成してパノラマ画像を生成するパノラマ画像生成手段と、
を備えることを特徴とする撮像装置。
【請求項８】
前記撮像装置は、デジタルスチルカメラであり、
前記撮像画像取得手段は、連写によって前記一連の撮像画像を取得する、
ことを特徴とする請求項７に記載の撮像装置。
【請求項９】
複数の画像を合成してパノラマ画像を生成するための画像処理方法であって、
一の方向に移動する移動被写体が示された一連の画像を取得する画像取得ステップと、
前記画像取得ステップで取得した画像のうちの連続する画像間の移動量を算出する画像移動量算出ステップと、
前記一連の画像のそれぞれに示されている前記移動被写体を特定する被写体特定ステップと、
前記画像移動量算出ステップで算出した画像間の移動量と、前記被写体特定ステップで特定した各画像に示されている前記移動被写体とに基づいて、前記一連の画像に示されている前記移動被写体が画像の合成によって重ならないために必要となる画像の移動量を算出する必要移動量算出ステップと、
前記画像移動量算出ステップで算出した画像間の移動量と、前記必要移動量算出ステップで算出した必要移動量とに基づいて、前記一連の画像のそれぞれについて合成対象画像であるか否かを判別する合成対象判別ステップと、
前記合成対象判別ステップで判別された合成対象画像を合成してパノラマ画像を生成する画像合成ステップと、
を含むことを特徴とする画像処理方法。
【請求項１０】
コンピュータに、
一の方向に移動する移動被写体が示された一連の画像を取得する画像取得機能と、
前記画像取得機能によって取得した画像のうちの連続する画像間の移動量を算出する画像移動量算出機能と、
前記一連の画像のそれぞれに示されている前記移動被写体を特定する被写体特定機能と、
前記画像移動量算出機能によって算出した画像間の移動量と、前記被写体特定機能によって特定した各画像に示されている前記移動被写体とに基づいて、前記一連の画像に示されている前記移動被写体が画像の合成によって重ならないために必要となる画像の移動量を算出する必要移動量算出機能と、
前記画像移動量算出機能によって算出した画像間の移動量と、前記必要移動量算出機能によって算出した必要移動量とに基づいて、前記一連の画像のそれぞれについて合成対象画像であるか否かを判別する合成対象判別機能と、
前記合成対象判別機能によって判別された合成対象画像を合成してパノラマ画像を生成する画像合成機能と、
を実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、撮像装置、画像処理方法、および、プログラムに関し、特に、パノラマ画像の生成に好適な画像処理装置、撮像装置、画像処理方法、および、プログラムに関する。
【背景技術】
【０００２】
デジタルカメラなどで撮像した複数の画像を合成してパノラマ画像を生成する手法がある（例えば、特許文献１）。このようなパノラマ画像では、通常よりも広い画角となる画像とすることができるので、例えば、広範囲の風景などを１つの画像として表現することができる。
【特許文献１】特開２０００−３２２５６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、パノラマ画像を生成する従来の手法では、風景などといった静止している被写体を対象としており、移動する被写体をその中に写し込むことは考慮されていない。
【０００４】
つまり、デジタルスチルカメラなどでパノラマ画像を生成する場合、所望する範囲が写るよう、カメラの向きを変えながら複数回撮影することになるが、このようなカメラの向きを変える動きに合わせて移動する被写体（移動被写体）がある場合、従来の手法では、静止している被写体のみを基準に合成してパノラマ画像を生成するので、その中に写り込んでいる移動被写体が重なって現れてしまうことがある。
【０００５】
したがって、意図的に移動被写体を取り込むことで、より効果的な画像表現を狙ったパノラマ画像を生成したい場合には、例えば、人手による画像処理作業などをおこなわなければ、移動被写体が重ならずに表現される画像を得ることができなかった。このような画像処理作業は、通常、高度なスキルやテクニックが要求されるので、効果的な画像表現を目的とするパノラマ画像を容易に生成することはできなかった。
【０００６】
本発明は、上記実状に鑑みてなされたものであり、より効果的な画像表現を容易に実現できる画像処理装置、撮像装置、画像処理方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の第１の観点にかかる画像処理装置は、
複数の画像を取得する画像取得手段と、
前記画像取得手段が取得した複数の画像に示されている移動被写体を検出する移動被写体検出手段と、
前記複数の画像を前記移動被写体検出手段が検出した移動被写体以外の部分で位置合わせして合成した場合に前記移動被写体の重なりが生じるか否かを判別する重なり判別手段と、
前記重なり判別手段によって前記移動被写体の重なりが生じないと判別された画像を合成してパノラマ画像を生成するパノラマ画像生成手段と、
を備えることを特徴とする。
【０００８】
上記目的を達成するため、本発明の第２の観点にかかる画像処理装置は、
複数の画像を合成してパノラマ画像を生成する画像処理装置において、
一の方向に移動する移動被写体が示された一連の画像を取得する画像取得手段と、
前記画像取得手段が取得した画像のうちの連続する画像間の移動量を算出する画像移動量算出手段と、
前記一連の画像のそれぞれに示されている前記移動被写体を特定する被写体特定手段と、
前記画像移動量算出手段が算出した画像間の移動量と、前記被写体特定手段が特定した各画像に示されている前記移動被写体とに基づいて、前記一連の画像に示されている前記移動被写体が画像の合成によって重ならないために必要となる画像の移動量を算出する必要移動量算出手段と、
前記画像移動量算出手段が算出した画像間の移動量と、前記必要移動量算出手段が算出した必要移動量とに基づいて、前記一連の画像のそれぞれについて合成対象画像であるか否かを判別する合成対象判別手段と、
前記合成対象判別手段によって判別された合成対象画像を合成してパノラマ画像を生成する画像合成手段と、
を備えることを特徴とする。
【０００９】
上記画像処理装置において、
前記必要移動量算出手段は、前記一連の画像のうちの最初の画像と前記合成対象判別手段が判別した前記合成対象画像のそれぞれで前記被写体特定手段が特定した移動被写体に基づいて、前記必要移動量を算出することが望ましい。
【００１０】
上記画像処理装置において、
前記画像移動量算出手段は、前記一連の画像のうちの最初の画像から前記画像合成手段が合成をおこなった画像までの各画像と、前記画像合成手段が合成をおこなった画像間の各画像と、について算出した画像間の移動量を加算し、
前記合成対象判別手段は、前記画像移動量算出手段による加算後の前記移動量が、前記必要移動量算出手段が算出した必要移動量より大きい場合、前記各画像の最後の画像が合成対象画像であると判別することが望ましい。
【００１１】
上記画像処理装置において、
前記必要移動量算出手段は、前記被写体特定手段が特定した前記移動被写体の位置と大きさに基づいて、前記必要移動量を算出することが望ましい。
【００１２】
上記画像処理装置において、
前記画像移動量算出手段は、前記一連の画像のうちの最初の画像から前記画像合成手段が合成をおこなった画像までの各画像と、前記画像合成手段が合成をおこなった画像間の各画像と、について算出した前記画像間の移動量を加算し、
前記画像合成手段は、前記画像移動量算出手段による加算後の前記移動量に基づいて、前記最初の画像から前記合成対象判別手段が判別した合成対象画像までの移動量を算出し、該算出した移動量に基づいて前記合成対象画像を合成することが望ましい。
【００１３】
上記目的を達成するため、本発明の第３の観点にかかる撮像装置は、
一の方向に移動する移動被写体を連続的に撮像し、該移動被写体を示した一連の撮像画像を取得する撮像画像取得手段と、
前記撮像画像取得手段が取得した撮像画像のうちの連続する画像間の移動量を算出する画像移動量算出手段と、
前記一連の撮像画像のそれぞれに示されている前記移動被写体を特定する被写体特定手段と、
前記画像移動量算出手段が算出した撮像画像間の移動量と、前記被写体特定手段が特定した各画像に示されている前記移動被写体とに基づいて、前記一連の撮像画像に示されている前記移動被写体が画像の合成によって重ならないために必要となる撮像画像の移動量を算出する必要移動量算出手段と、
前記画像移動量算出手段が算出した撮像画像間の移動量と、前記必要移動量算出手段が算出した必要移動量とに基づいて、前記一連の撮像画像のそれぞれについて合成対象画像であるか否かを判別する合成対象判別手段と、
前記合成対象判別手段が判別した合成対象画像を合成してパノラマ画像を生成するパノラマ画像生成手段と、
を備えることを特徴とする。
【００１４】
上記撮像装置は、デジタルスチルカメラとすることができ、この場合、
前記撮像画像取得手段は、連写によって前記一連の撮像画像を取得することが望ましい。
【００１５】
上記目的を達成するため、本発明の第４の観点にかかる画像処理方法は、
複数の画像を合成してパノラマ画像を生成するための画像処理方法であって、
一の方向に移動する移動被写体が示された一連の画像を取得する画像取得ステップと、
前記画像取得ステップで取得した画像のうちの連続する画像間の移動量を算出する画像移動量算出ステップと、
前記一連の画像のそれぞれに示されている前記移動被写体を特定する被写体特定ステップと、
前記画像移動量算出ステップで算出した画像間の移動量と、前記被写体特定ステップで特定した各画像に示されている前記移動被写体とに基づいて、前記一連の画像に示されている前記移動被写体が画像の合成によって重ならないために必要となる画像の移動量を算出する必要移動量算出ステップと、
前記画像移動量算出ステップで算出した画像間の移動量と、前記必要移動量算出ステップで算出した必要移動量とに基づいて、前記一連の画像のそれぞれについて合成対象画像であるか否かを判別する合成対象判別ステップと、
前記合成対象判別ステップで判別された合成対象画像を合成してパノラマ画像を生成する画像合成ステップと、
を含むことを特徴とする。
【００１６】
上記目的を達成するため、本発明の第５の観点にかかるプログラムは、
コンピュータに、
一の方向に移動する移動被写体が示された一連の画像を取得する画像取得機能と、
前記画像取得機能によって取得した画像のうちの連続する画像間の移動量を算出する画像移動量算出機能と、
前記一連の画像のそれぞれに示されている前記移動被写体を特定する被写体特定機能と、
前記画像移動量算出機能によって算出した画像間の移動量と、前記被写体特定機能によって特定した各画像に示されている前記移動被写体とに基づいて、前記一連の画像に示されている前記移動被写体が画像の合成によって重ならないために必要となる画像の移動量を算出する必要移動量算出機能と、
前記画像移動量算出機能によって算出した画像間の移動量と、前記必要移動量算出機能によって算出した必要移動量とに基づいて、前記一連の画像のそれぞれについて合成対象画像であるか否かを判別する合成対象判別機能と、
前記合成対象判別機能によって判別された合成対象画像を合成してパノラマ画像を生成する画像合成機能と、
を実現させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、より効果的な画像表現を容易に実現することができる。
【発明を実施するための最良の形態】
【００１８】
本発明にかかる実施形態を、図面を参照して以下に説明する。本実施形態では、本発明をデジタルスチルカメラ（以下、デジタルカメラ）によって実現した場合を例示する。本実施形態にかかるデジタルカメラ１は、一般的なデジタルスチルカメラが備える機能の他に、いわゆる連写機能を備えているものとする。また、撮像した複数の画像を合成してパノラマ画像を生成する機能を備えているものとする。
【００１９】
図１は、本発明の実施形態にかかるデジタルカメラ１の構成を示すブロック図である。本実施形態にかかるデジタルカメラ１の概略的構成は、図示するように、撮像部１００、データ処理部２００、インタフェース（Ｉ／Ｆ）部３００、などである。
【００２０】
撮像部１００は、デジタルカメラ１の撮像動作をおこなう部分であり、図示するように、光学装置１１０やイメージセンサ部１２０などから構成されている。
【００２１】
光学装置１１０は、例えば、レンズ、絞り機構、シャッタ機構、などを含み、撮像にかかる光学的動作をおこなう。すなわち、光学装置１１０の動作により、入射光が集光されるとともに、焦点距離、絞り、シャッタスピードなどといった、画角やピント、露出などにかかる光学的要素の調整がなされる。なお、光学装置１１０に含まれるシャッタ機構はいわゆる機械式のシャッタ装置であり、イメージセンサによってシャッタ動作をおこなう場合には、光学装置１１０にシャッタ機構が含まれていなくてもよい。
【００２２】
イメージセンサ部１２０は、光学装置１１０によって集光された入射光に応じた電気信号を生成する、例えば、ＣＣＤ（Charge Coupled Device：電荷結合素子）やＣＭＯＳ（Complementally Metal Oxide Semiconductor：相補型金属酸化物半導体）などのイメージセンサから構成される。イメージセンサ部１２０は、光電変換をおこなうことで、受光に応じた電気信号を発生してデータ処理部２００に出力する。なお、デジタルカメラ１のビューファインダとして、液晶画面やＥＶＦ（Electronic View Finder）などが用いられる場合、イメージセンサ部１２０が低解像度の画像信号を常時出力することで、いわゆるライブビュー画像がファインダ画面に表示されるものとする。
【００２３】
データ処理部２００は、撮像部１００による撮像動作によって生成された電気信号を処理し、撮像画像を示すデジタルデータを生成するとともに、撮像画像に対する画像処理などをおこなう。図１に示すように、データ処理部２００は、制御部２１０、画像処理部２２０、画像メモリ２３０、画像出力部２４０、記憶部２５０、外部記憶部２６０、などから構成される。
【００２４】
制御部２１０は、例えば、ＣＰＵ（Central Processing Unit：中央演算処理装置）やＲＡＭ（Random Access Memory）などから構成され、後述する記憶部２５０などに格納されているプログラムを実行することで、デジタルカメラ１の各部を制御する。また、本実施形態では、所定のプログラムを実行することで、後述する各処理にかかる機能が制御部２１０によって実現される。
【００２５】
画像処理部２２０は、例えば、ＡＤＣ（Analog-Digital Converter：アナログ−デジタル変換器）、バッファメモリ、画像処理用のプロセッサ（いわゆる、画像処理エンジン）などから構成され、撮像部１００によって生成された電気信号に基づいて、撮像画像を示すデジタルデータを生成する。
【００２６】
すなわち、イメージセンサ部１２０から出力されたアナログ電気信号をＡＤＣがデジタル信号に変換して順次バッファメモリに格納すると、画像処理エンジンがバッファされたデジタルデータに対し、いわゆる現像処理などをおこなうことで、画質の調整やデータ圧縮などをおこなう。なお、画像処理部２２０のバッファメモリは、デジタルカメラ１のもつ連写機能を実現するに十分な記憶容量を有しているものとする。本実施形態では、例えば、秒間数コマ程度以上の連写をおこなうのに十分なバッファメモリであるものとする。
【００２７】
画像メモリ２３０は、例えば、ＲＡＭやフラッシュメモリなどの記憶装置から構成され、画像処理部２２０によって生成された撮像画像データや、制御部２１０によって処理される画像データなどを一時的に格納する。
【００２８】
画像出力部２４０は、例えば、ＲＧＢ信号の生成回路などから構成され、画像メモリ２３０に格納された画像データを表示画面などに出力する。
【００２９】
記憶部２５０は、例えば、ＲＯＭ（Read Only Memory）やフラッシュメモリなどの記憶装置から構成され、デジタルカメラ１の動作に必要なプログラムやデータなどを格納する。本実施形態では、制御部２１０などが実行する動作プログラムなどが記憶部２５０に格納されているものとする。
【００３０】
外部記憶部２６０は、例えば、メモリカードなどといった、デジタルカメラ１に着脱可能な記憶装置から構成され、デジタルカメラ１で撮像した画像データなどを格納する。
【００３１】
インタフェース部３００は、デジタルカメラ１とその使用者あるいは外部装置とのインタフェースにかかる構成であり、図１に示すように、表示部３１０、外部インタフェース（Ｉ／Ｆ）部３２０、操作部３３０、などから構成される。
【００３２】
表示部３１０は、例えば、液晶表示装置などから構成され、デジタルカメラ１を操作するために必要な種々の画面や、撮影時のライブビュー画像、撮像画像、などを表示出力する。本実施形態では、画像出力部２４０からの画像信号（ＲＧＢ信号）などに基づいて撮像画像等の表示出力がおこなわれる。
【００３３】
外部インタフェース部３２０は、例えば、ＵＳＢ（Universal Serial Bus）コネクタやビデオ出力端子などから構成され、外部のコンピュータ装置への画像データの出力や、外部のモニタ装置への撮像画像の表示出力などをおこなう。
【００３４】
操作部３３０は、デジタルカメラ１の外面上に構成されている各種ボタンなどによって構成され、デジタルカメラ１の使用者による操作に応じた入力信号を生成して制御部２１０に入力する。操作部３３０を構成するボタンとして、例えば、シャッタ動作を指示するためのシャッタボタンや、デジタルカメラ１のもつ動作モードを指定するためのモードボタン、各種設定をおこなうための十字キーや機能ボタン、などが含まれているものとする。
【００３５】
ここで、データ処理部２００の画像メモリ２３０についての詳細を、図２を参照して説明する。本実施形態にかかる画像メモリ２３０は、図２に示すような記憶領域を有している。図示するように、画像メモリ２３０には、撮像画像記憶領域２３０ａ、処理画像記憶領域２３０ｂ、合成画像記憶領域２３０ｃ、などの記憶領域が用意され、各記憶領域に応じた画像データが格納される。
【００３６】
撮像画像記憶領域２３０ａは、画像処理部２２０によって生成された撮像画像毎の画像データを一時的に格納するための記憶領域である。
【００３７】
処理画像記憶領域２３０ｂは、撮像画像記憶領域２３０ａに格納された撮像画像を用いて処理（詳細後述）をおこなう場合に、対象となる画像データを一時的に格納するための記憶領域である。
【００３８】
合成画像記憶領域２３０ｃは、後述する処理によって合成された画像（パノラマ画像）を一時的に格納するための記憶領域である。
【００３９】
また、上述したように、記憶部２５０に格納されている動作プログラムを制御部２１０が実行することで、本発明にかかる処理が実現されるが、この場合に制御部２１０によって実現される機能を、図３を参照して説明する。
【００４０】
図３は、本発明の実施形態にかかる機能を実行する際に制御部２１０によって実現される機能を示した機能ブロック図である。なお、図３に示す機能は、デジタルカメラ１の連写機能によって撮像された複数の画像を用いてパノラマ画像を生成する際に必要となる機能を示すものである。
【００４１】
ここで、本実施形態では、移動する被写体（以下、「移動被写体」とする）を連写によって撮影して得られる撮像画像を用いて、同一の移動被写体が複数含まれているパノラマ画像（以下、「連写パノラマ画像」とする）を生成するものする。このような連写パノラマ画像を生成するための撮影モード（以下、「連写パノラマモード」とする）がデジタルカメラ１に用意されているものとする。
【００４２】
すなわち、このような連写パノラマモードで撮像をおこなう際、制御部２１０によって図３に示すような機能が実現される。図示するように、制御部２１０は、インタフェース処理部２１１、撮像制御部２１２、画像位置検出部２１３、被写体特定部２１４、合成対象判別部２１５、画像合成部２１６、出力処理部２１７、などとして機能する。
【００４３】
インタフェース処理部２１１は、操作部３３０からの入力信号を受け付けるとともに、デジタルカメラ１の使用者に示す各種画面を生成して表示部３１０に出力する。
【００４４】
撮像制御部２１２は、インタフェース処理部２１１を介した操作部３３０からの入力に応じて撮像部１００を制御することで撮像動作を実行させる。本実施形態では、連写パノラマモードでの撮像に必要な連写動作を撮像部１００におこなわせる。ここで、本実施形態にかかるデジタルカメラ１で連写をおこなう場合、シャッタボタンが押下され続けている間、連続的に撮像動作がおこなわれるものとする。よって、撮像制御部２１２は、操作部３３０からの入力信号に基づき、シャッタボタンが押下されつづけている期間、撮像部１００に連続的な撮像動作をおこなわせる。
【００４５】
このような動作によっておこなわれる連写パノラマモードでの連写について、図４を参照して説明する。本実施形態にかかる連写パノラマモードでは、上述したように移動被写体を連写する。この移動被写体の例を、図４（ａ）および図４（ｂ）に示す。ここでは、例えば、歩行する人物などといった移動被写体ＭＶを連写によって撮像する場合を示す。この場合、一定の方向に移動する移動被写体ＭＶを連写によって撮像するものとする。本実施形態では、移動被写体ＭＶが、図４（ａ）に示す位置から矢印で示す方向に移動し、図４（ｂ）に示す位置まで移動する場面、すなわち、水平方向（右から左）に移動する場面を、連写によって撮像することを想定する。
【００４６】
ここで、図４（ａ）および図４（ｂ）に示すように、移動被写体ＭＶの背景として、静止被写体ＳＴ（ＳＴ１〜ＳＴ６）があるものとし、これら静止被写体より手前の位置で、移動被写体ＭＶが水平方向に移動する場面を連写によって撮像する。この場合、図４（ｃ）に示すように、デジタルカメラ１で移動被写体ＭＶを追いながら連写する。すなわち、移動被写体ＭＶが図４（ａ）に示す位置のところでシャッタボタンの押下を開始し、移動被写体ＭＶの移動に合わせてデジタルカメラ１をパンニングしながらシャッタボタンを押下し続け、移動被写体ＭＶが図４（ｂ）に示す位置まで移動したところでシャッタボタンの押下を終了する。
【００４７】
このような連写によって得られる撮像画像の例を図５に示す。ここでは、連写開始から４枚目までの撮像画像の例を示す。本実施形態では、連写開始時の最初の画像（フレーム）をf(0)とし、以降、撮像された時系列順にf(1)、f(2)、…、f(n)というフレーム番号が割り当てられるものとする。連写終了時の撮像画像のフレーム番号をmaxとすると、連写パノラマモードでの１回の連写動作によってf(0)〜f(max)の一連の撮像画像（以下、「連写画像」とする）が得られることになる。
【００４８】
上述したように、連写パノラマモードでの撮像では、移動被写体ＭＶを追いながら連写しているので、図５に示すように、連写画像のいずれにも移動被写体ＭＶが含まれているものとする。さらに、連続する画像のそれぞれには、パノラマ画像を生成する際の特徴点となる共通の静止被写体ＳＴが写り込むよう撮像されるものとする。図５の例では、画像f(0)と画像f(1)には静止被写体ＳＴ１とＳＴ２が、画像f(1)と画像f(2)には静止被写体ＳＴ１とＳＴ２が、画像f(2)と画像f(3)には静止被写体ＳＴ２が、いずれも共通の被写体（特徴点）として含まれている。
【００４９】
本実施形態では、このような連写画像から、図６に示すような連写パノラマ画像ＰＮを生成する。ここでのパノラマ画像とは、連写画像を横方向に合成することで、通常の撮像画像よりも横方向に長い画像としたものである。例えば、デジタルカメラ１によって撮像される画像１枚の画像サイズを図５に示すようなＰｘ×Ｐｙ（Ｐｘ＞Ｐｙ）とした場合、パノラマ画像の横方向のサイズは、Ｐｘ×ｍ（ｍ＞１）となる。
【００５０】
ここで、図６は、図４（ａ）〜図４（ｃ）で例示した場面の連写撮像から生成される連写パノラマ画像ＰＮの例を示すものであり、図示するように、１枚の連写パノラマ画像ＰＮの中に、静止被写体ＳＴ（ＳＴ１〜ＳＴ６）のすべてが写り込んでいるとともに、移動被写体ＭＶが複数箇所において写り込んでいるものである。本実施形態では、後述する処理をおこなうことで、図６に示すような、移動被写体ＭＶが重ならずに表された連写パノラマ画像ＰＮを生成する。
【００５１】
すなわち、図３に示す画像位置検出部２１３、被写体特定部２１４、合成対象判別部２１５、画像合成部２１６、出力処理部２１７は、連写によって撮像した画像から、図６に示すような連写パノラマ画像ＰＮを生成するための処理をおこなう機能である。以下、図３を参照してこれらの機能を説明する。
【００５２】
画像位置検出部２１３は、連写画像の中から、連続する２つの画像を比較することで、画像間で被写体が動いた分の移動方向と移動量を示す移動ベクトル（動きベクトル）を算出する。この場合、例えば、動画像の圧縮などで採用されているフレーム間差分符号化と同様の処理をおこなうことで、２つの画像間の移動ベクトルを算出する。ここでは、例えば、ブロックマッチング法や木探索法などのマッチング手法を用いて２画像間の特徴点のマッチングをとることで、連続する画像間の移動ベクトルを算出する。
【００５３】
被写体特定部２１４は、連写画像のそれぞれに現れている移動被写体ＭＶを特定する。ここでは、連続する２つの画像間でのブロックマッチングをおこなうことで、移動被写体ＭＶを特定する。上述したように、連写画像には、移動被写体ＭＶとともに静止被写体ＳＴが写り込んでいるので、連続する２つの画像間において、同一の静止被写体ＳＴが存在している場合、そのような静止被写体ＳＴを特徴点として２つの画像の位置合わせをおこなってブロックマッチングをおこなうと、静止被写体ＳＴの部分ではマッチングするが、移動被写体ＭＶの部分についてはマッチングしないことになる。このようなマッチングしない領域（マッチングエラー領域）に基づいて、当該画像における移動被写体ＭＶの位置などを特定する。
【００５４】
合成対象判別部２１５は、連写画像のそれぞれについて、図６に示すような、移動被写体ＭＶが重ならずに表された連写パノラマ画像ＰＮを生成するための合成対象となるか判別する。本実施形態では、連写開始時に得られた最初の撮像画像f(0)（以下、「原点画像f(0)」とする）に、以降の撮像で得られた撮像画像を合成していくことで、連写パノラマ画像ＰＮを生成するものとする。合成対象判別部２１５は、f(1)以降の撮像画像それぞれについて、移動被写体ＭＶの重なりが生じない画像であるか否かを判別する。
【００５５】
ここでは、画像位置検出部２１３によって算出された移動ベクトルと、被写体特定部２１４によって特定された移動被写体ＭＶに基づいて、対象画像に示されている移動被写体ＭＶが、それより前の撮像画像に示されている移動被写体ＭＶと重なるか否かを判別する。この場合、被写体特定部２１４によって求められる移動被写体ＭＶの位置などに基づいて、合成により移動被写体ＭＶが重ならないために必要な移動量を求め、画像間のズレ量である移動ベクトルが、求めた必要移動量を超える画像であれば、その画像を合成しても移動被写体ＭＶが重ならないことになる。合成対象判別部２１５は、このような画像を合成対象として判別する。
【００５６】
画像合成部２１６は、合成対象判別部２１５によって判別された合成対象画像を、原点画像f(0)から順次横方向に合成する処理をおこなう。この場合、連写撮像前に予め設定された移動方向（移動被写体ＭＶの移動方向＝デジタルカメラ１のパンニング方向）に基づき、原点画像f(0)の左右いずれかの方向に合成対象画像を合成する。ここでの画像合成においては、例えば、既知のパノラマ画像生成手法と同様の方法で合成をおこなうものとし、特徴点となる静止被写体ＳＴを基準に位置合わせをおこなった上で、上下方向のトリミングをすることで、図６に示すような連写パノラマ画像ＰＮを生成する。
【００５７】
出力処理部２１７は、画像合成部２１６によって生成された連写パノラマ画像ＰＮの出力を制御する。ここでは、操作部３３０からの入力信号に基づき、デジタルカメラ１の使用者が指定した方法で連写パノラマ画像ＰＮを出力する。この場合、例えば、表示部３１０への表示出力の他、記憶部２５０や外部記憶部２６０への記録、外部インタフェース部３２０を介した外部装置などへの出力をおこなう。
【００５８】
以上が連写パノラマモードでの動作時に制御部２１０によって実現される機能である。なお、本実施形態では、制御部２１０がプログラムを実行することによる論理的処理で上述した各機能が実現されるものとするが、これらの機能を、例えば、ＡＳＩＣ（Application Specific Integrated Circuit：特定用途向け集積回路）などのハードウェアによって構成してもよい。この場合、図３に示した機能のうち、画像処理にかかる機能については、画像処理部２２０によって実現されてもよい。
【００５９】
以上説明したデジタルカメラ１の構成は、本発明を実現するために必要な構成であり、デジタルカメラとしての基本機能や種々の付加機能に用いられる構成は必要に応じて備えられているものとする。
【００６０】
このような構成のデジタルカメラ１による動作を以下に説明する。ここでは、上述した連写パノラマモードで撮像をおこなう際のデジタルカメラ１の動作を説明する。連写パノラマモードが選択された際にデジタルカメラ１で実行される「連写パノラマ撮像処理」を、図７に示すフローチャートを参照して説明する。この連写パノラマ撮像処理は、デジタルカメラ１の使用者が操作部３３０のモードボタンを操作することで、連写パノラマモードが選択されたことを契機に開始されるものとする。
【００６１】
処理が開始されると、インタフェース処理部２１１が、連写パノラマ撮像の撮像方向を設定するための設定画面を生成して表示部３１０に表示する（ステップＳ１０１）。ここでは、図４（ａ）〜図４（ｃ）で示したように、水平方向に移動する移動被写体ＭＶを追いながら連写するので、移動被写体ＭＶの移動方向（すなわち、それを追いながら撮像するデジタルカメラ１のパンニング方向）をデジタルカメラ１の使用者に指定させるための設定画面が表示される。
【００６２】
デジタルカメラ１の使用者は、ステップＳ１０１で表示された設定画面に従い、操作部３３０を操作することで移動方向を入力する。ここでは、例えば、操作部３３０に含まれる十字キーによって、上下左右の４方向のうちのいずれかを指定する。図４の例では、移動被写体ＭＶが右から左へ移動するので、移動方向として「左」を指定する。このような操作に応じた入力信号が操作部３３０から制御部２１０に入力されると、生成する連写パノラマ画像の設定情報として、例えば、処理画像記憶領域２３０ｂに格納する（ステップＳ１０２）。
【００６３】
以下、ここで指定された移動方向を方向Ｄとし、方向Ｄとは反対の方向を方向Ｄ’とする。上述のように移動方向として「左」が指定された場合、方向Ｄは画像に向かって左側方向を示し、方向Ｄ’は画像に向かって右側方向を示すことになる。
【００６４】
連写パノラマ撮像の設定をおこなうと、デジタルカメラ１の使用者は、所望する被写体を撮影する。ここでは、図４（ａ）〜図４（ｃ）に示したように、移動被写体ＭＶを追いながら連写する。すなわち、デジタルカメラ１の使用者は、移動被写体ＭＶが図４（ａ）に示す位置のときに、光学装置１１０のレンズを移動被写体ＭＶに向け、操作部３３０に含まれるシャッタボタンを押下する。この場合、シャッタボタンの押下に応じた入力信号が操作部３３０から制御部２１０に入力されるので、撮像制御部２１２は、シャッタボタンが押下されたと判別する（ステップＳ１０３：Ｙｅｓ）。
【００６５】
シャッタボタンの押下開始を判別すると、撮像制御部２１２は、撮像部１００の各部を制御して連写撮像を開始する（ステップＳ１０４）。上述したように、本実施形態にかかるデジタルカメラ１の連写機能においては、シャッタボタンが押下されている間、連続して撮像動作をおこなう。よって、デジタルカメラ１の使用者は、移動被写体ＭＶが図４（ｂ）に示す位置に移動するまでシャッタボタンを押下し続ける。この間、操作部３３０からは、シャッタボタンの押下に応じた入力信号が制御部２１０に入力され続ける。
【００６６】
撮像制御部２１２は、シャッタボタン押下の信号入力が継続している間、撮像部１００に連続撮像動作を指示する。これにより、複数の撮像画像（連写画像）が得られ、画像処理部２２０による現像処理などを経て撮像画像記憶領域２３０ａに順次格納される（ステップＳ１０５）。このような撮像動作は、シャッタボタンが押下されている間、繰り返しおこなわれる（ステップＳ１０６：Ｎｏ）。
【００６７】
所望する連写撮影を終了すると、デジタルカメラ１の使用者は、シャッタボタンの押下を終了する。この場合、シャッタボタンの押下に応じた操作部３３０から制御部２１０への信号入力も終了するので、撮像制御部２１２はシャッタボタンの押下が終了したと判別する（ステップＳ１０６：Ｙｅｓ）。この場合、撮像制御部２１２は、撮像部１００を制御し、連写撮像動作を終了させるとともに、連写パノラマモードでの連写撮像が終了したことをインタフェース処理部２１１に通知する。
【００６８】
撮像制御部２１２からの通知に応じて、インタフェース処理部２１１は、今回の連写撮影で得られた撮像画像でパノラマ画像を生成するかデジタルカメラ１の使用者に確認するための確認画面を生成して表示部３１０に表示する（ステップＳ１０７）。ここでは、例えば、パノラマ画像を生成するか問い合わせるメッセージとともに、問い合わせに対する返答となる選択肢などが表示される。デジタルカメラ１の使用者は、操作部３３０の機能ボタンなどを操作することで、パノラマ画像の生成要否を指示する。
【００６９】
この場合において、インタフェース処理部２１１は、連写画像を表示部３１０に順次表示することで、使用者に確認させるようにしてもよい。つまり、図６に示すような連写パノラマ画像ＰＮを生成するためには、上述したように、連写画像のいずれにも移動被写体ＭＶが含まれるとともに、連続する画像のそれぞれに共通の静止被写体ＳＴが含まれている必要がある。よって、撮像された連写画像がこのような条件を満たしているか、各画像を表示して使用者に確認させ、パノラマ画像の生成をおこなうか判断させることが望ましい。なお、連写画像の確認において条件に合致しない画像がある場合は、当該画像を随時削除できるようにしてもよい。
【００７０】
また、連写パノラマモードでの連写撮像においては、移動被写体ＭＶを追いつつ、連続する画像間で共通の静止被写体ＳＴが写り込むよう撮影する必要があるので、このような撮影が実現できる連写速度であることが望ましい。例えば、秒間１〜２コマ程度といった比較的低速な連写速度であれば、連写パノラマ画像の生成に必要な連写画像を確実に得るための撮影をおこなうことができる。
【００７１】
ここで、パノラマ画像の生成をおこなわない旨の指示が入力された場合（ステップＳ１０８：Ｎｏ）、本処理を終了する。この場合、撮像画像記憶領域２３０ａに格納した連写画像の画像データを、例えば、外部記憶部２６０などに格納することで通常の連写撮像とする。
【００７２】
一方、パノラマ画像の生成をおこなう旨の指示が入力された場合（ステップＳ１０８：Ｙｅｓ）、撮像制御部２１２は、その旨を画像位置検出部２１３に通知する。画像位置検出部２１３は、撮像制御部２１２からの通知に応じて、今回の得られた連写画像（図５）から連写パノラマ画像ＰＮ（図６）を生成するための「連写パノラマ画像生成処理」を実行する（ステップＳ２００）。この連写パノラマ画像生成処理を、図８に示すフローチャートを参照して説明する。
【００７３】
処理が開始されると、画像位置検出部２１３は、連写画像が格納されている撮像画像記憶領域２３０ａにアクセスし、今回の撮像によって格納された連写画像を取得し、処理対象データとして処理画像記憶領域２３０ｂにコピーする。ここでは、１回の連写動作によって得られた複数の画像であるf(0)〜f(max)が取得される（ステップＳ２０１）。
【００７４】
処理対象となる画像データを取得すると、画像位置検出部２１３は、処理をおこなうためのカウンタなどの初期化をおこなう。ここでは、処理対象画像を指定するためのフレームカウンタｎと、連写パノラマ画像ＰＮの生成にかかる画像合成の状態を示す連結カウンタnowの初期化をおこなう（ステップＳ２０２）。
【００７５】
ここでは、双方のカウンタ値を「０」に設定することで初期化をおこなう。フレームカウンタｎの初期化により、最初に処理する画像として画像f(0)（原点画像）が指定されるようにする。
【００７６】
また、連結カウンタnowは、処理開始時と、画像合成がおこなわれた後に初期化され「０」が設定されるものである。連結カウンタnowは、その値が０か０以外であるかが参照されるもので、０以外となっているときは、処理対象としている画像に示されている移動被写体ＭＶが、それ以前の撮像画像に示されている移動被写体ＭＶと重なるため、当該処理対象画像が合成対象から除外されている状態を示すものとする。
【００７７】
このようにしてカウンタの初期化をおこなうと、画像位置検出部２１３は、ステップＳ２０１で処理画像記憶領域２３０ｂに格納した連写画像f(0)〜f(max)のうち、現在のフレームカウンタ値で指定されるf(n)とf(n+1)の２つの画像を取得し、ブロックマッチングなどの差分検出によって、画像間の移動ベクトルN(n+1)を算出する（ステップＳ２０３）。処理開始直後においては、ステップＳ２０２でフレームカウンタ値が初期化されているので、図９（ａ）に示すように、画像f(0)と、その次に撮像された撮像画像f(1)との間の移動ベクトルN(1)を算出する。
【００７８】
ここでは、図９（ａ）に示すように、２つの画像の双方に存在する共通部分（特徴点）で位置合わせをした際の画像間のズレ量を示すベクトル（移動ベクトルＮ）を算出する。本実施形態では、移動被写体ＭＶを追いながら連写しているが、上述したように、特徴点となる静止被写体ＳＴも写り込んでいるので、２つの画像の双方に写り込んでいる静止被写体ＳＴ同士が重なるように位置合わせをおこなう。図９（ａ）の例では、画像f(0)と画像f(1)の双方に、静止被写体ＳＴ１とＳＴ２が写り込んでいるので、これらの特徴点が重なるよう画像f(0)と画像f(1)とを位置合わせして移動ベクトルを算出する。
【００７９】
なお、本実施形態では、連写によって複数の撮像画像が取得されているので、本処理の後段においてフレームカウンタｎを＋１ずつカウントアップすることで、各画像において次の画像との移動ベクトルＮを順次算出していく。本実施形態では、このように算出される複数の移動ベクトルＮを、移動ベクトルN(n+1)と表すことにする。すなわち、図９（ａ）に示すように、ｎ＝０のときは、画像f(0)とf(1)との移動ベクトルは移動ベクトルN(1)となり、図９（ｂ）に示すように、処理画像のフレーム番号が増加する毎に、移動ベクトルN(2)、移動ベクトルN(3)…、となる。
【００８０】
このようにして、フレームカウンタで指定された撮像画像と、その次に撮像された画像との間で移動ベクトルを算出すると、画像位置検出部２１３は、現在の連結カウンタnowが示す値が「０」であるか否かを判別する（ステップＳ２０４）。ここでは、ステップＳ２０２で連結カウンタnowが初期化されているので、カウンタ値は「０」となる（ステップＳ２０４：Ｙｅｓ）。
【００８１】
このように、そのときの連結カウンタnowが「０」である場合、画像位置検出部２１３はその旨を被写体特定部２１４に通知する。被写体特定部２１４は、画像位置検出部２１３からの通知に応じて、移動被写体ＭＶが重ならないために必要な移動量を算出するための「必要移動量算出処理」を実行する（ステップＳ３００）。
【００８２】
この必要移動量算出処理では、現在対象としている２つの画像間のブロックマッチングにより、移動被写体ＭＶの画像上での位置などを求めることで、画像f(n)に以降の画像を合成するときに、移動被写体ＭＶが重ならないために必要な移動被写体ＭＶの横方向（ｘ方向）の移動量（必要移動量Ｍｘ）を算出する。このような必要移動量Ｍｘを算出する処理の詳細は後述する。
【００８３】
ステップＳ３００の必要移動量算出処理において必要移動量Ｍｘを算出すると、被写体特定部２１４は、その旨を合成対象判別部２１５に通知する。合成対象判別部２１５は、被写体特定部２１４からの通知に応じて、連結ベクトルＡの更新をおこなう（ステップＳ２０５）。
【００８４】
この連結ベクトルＡは、ステップＳ２０３で算出した画像間の移動ベクトルＮを加算したものであり、処理開始直後においては、この連結ベクトルＡは初期化され「０」となっているものとする。そして、連結ベクトルＡの更新は、そのときの連結カウンタnowの値に応じておこなわれる。上述したように、連結カウンタnowは、そのカウンタ値が「０」であるか「０以外」であるかが参照されるものである。連結ベクトルＡの更新においては、連結カウンタnowが「０」の場合は、ステップＳ２０３で算出した移動ベクトルN(n+1)が代入される。一方、連結カウンタnowが「０以外」の場合は、それまでの連結ベクトルＡに、そのときに算出された移動ベクトルN(n+1)を加算したものになる。今回、ステップＳ２０２で連結カウンタnowが初期化されているので、連結ベクトルＡには、ステップＳ２０３で算出した移動ベクトルN(1)が代入される。
【００８５】
連結ベクトルＡを更新すると、合成対象判別部２１５は、更新後の連結ベクトルＡの横方向（ｘ方向）成分であるベクトルＡｘを求め、ステップＳ３００で算出した必要移動量Ｍｘ（詳細後述）よりも大きいか否かを判別することで、対象としている２つの画像のうちの画像f(n+1)が合成対象となるか否かを判別する（ステップＳ２０６）。
【００８６】
この判別動作を、図１０を参照して説明する。ここでは、画像f(0)と画像f(1)を対象としている場合を例示する。以下、画像f(n)に示されている移動被写体ＭＶを「移動被写体ＭＶｎ」とする。なお、理解を容易にするため、画像f(0)と画像f(1)とを共通部分で位置合わせて合成した場合、移動被写体ＭＶ０と移動被写体ＭＶ１とは重なってしまうものとする。
【００８７】
つまり、図１０（ａ）に示すように、画像f(0)と画像f(1)とを、共通する特徴点である静止被写体ＳＴ１とＳＴ２で位置合わせした場合、移動被写体ＭＶ０とＭＶ１は図示するように重なる。このように画像f(0)と画像f(1)とを位置合わせした状態で、移動被写体ＭＶ０と重ならない位置となる移動被写体ＭＶのダミーＭＶＤを図１０（ｂ）に示す。本実施形態では、移動被写体ＭＶが方向Ｄ（すなわち、左）に移動する場面を撮像しているので、移動被写体ＭＶ０の左側で重ならない位置に次の移動被写体ＭＶがあればよいことになる。よって、移動被写体ＭＶ０の位置や大きさなどからダミーＭＶＤに相当する位置までの横方向（ｘ方向）の移動量を必要移動量Ｍｘとすることができる。
【００８８】
ここで、上述したように、画像f(0)と画像f(1)とのズレ量は、移動ベクトルN(1)である。そして、今回はフレームカウンタｎが０のときであるので、ステップＳ２０５で更新された連結ベクトルＡは、移動ベクトルN(1)ということになる。ここで、本実施形態では、横方向（水平方向）に移動する移動被写体ＭＶを追いながら連写した画像を用いて、図６に示すような、移動被写体ＭＶが重ならない連写パノラマ画像ＰＮを生成することとしているので、画像f(0)に対する画像f(1)の横方向のズレ量が、必要移動量Ｍｘより大きければ、画像f(1)を画像f(0)に合成しても、移動被写体ＭＶ０とＭＶ１は重ならないことになる。よって、画像間の２次元方向のズレ量を示している移動ベクトルN(1)、すなわち連結ベクトルＡの横方向（ｘ方向）成分を示すベクトルＡｘと、必要移動量Ｍｘを比較することで、移動被写体ＭＶが重なるか否かを判別することができる。
【００８９】
画像f(0)と画像f(1)の場合では、図１０（ｂ）に示すように、画像間の横方向のズレ量であるＡｘが必要移動量Ｍｘより小さいため、画像f(1)を画像f(0)に合成すると、移動被写体ＭＶが重なると判別することができる。このような、移動被写体ＭＶが重なってしまう画像は合成対象から除外する。すなわち、合成対象判別部２１５は、現在対象としている画像f(n)と画像f(n+1)との間の横方向のズレ量であるベクトルＡｘと、ステップＳ３００で算出された必要移動量Ｍｘとを比較し、Ａｘ＜Ｍｘとなる場合、画像f(n+1)を合成対象から除外する（ステップＳ２０６：Ｎｏ）。
【００９０】
このように、画像f(n+1)が合成対象ではない場合、合成対象判別部２１５は、連結カウンタnowを＋１カウントアップする（ステップＳ２１４）。ここでは、ステップＳ２０２において連結カウンタnowに「０」が設定されているので、現在の連結カウンタnowのカウンタ値は「１」となる。
【００９１】
この場合、合成対象判別部２１５は、フレームカウンタｎを＋１カウントアップし、次のフレームを指定する（ステップＳ２１１）。ここで、更新後のフレームカウンタｎが最終画像を示すmaxでなければ（ステップＳ２１２：Ｎｏ）、ステップＳ２０３に戻り、画像位置検出部２１３が、新たに指定された画像についての移動ベクトルを算出する。
【００９２】
この２巡目の処理においては、フレームカウンタｎが「１」となるので、画像f(1)と画像f(2)との間のズレ量である移動ベクトルN(2)が求められることになる（図９（ｂ）参照）。ここで、画像f(1)は合成対象ではなかったため、ステップＳ２１４において連結カウンタnowが「１」となっている。つまり、連結カウンタnowが「０」以外の値となっているので（ステップＳ２０４：Ｎｏ）、必要移動量Ｍｘを算出するためのステップＳ３００は実行しない。これは、直近の画像（画像f(1)）を合成対象としなかったので、現在の画像f(n+1)である画像f(2)が、原点画像f(0)への合成対象となるか判別するためである。つまり、必要移動量Ｍｘは、合成の基準となる画像（この場合、画像f(0)）における移動被写体ＭＶに基づいて求めることとしている。
【００９３】
ステップＳ３００の処理をスキップした場合、合成対象判別部２１５は、連結ベクトルＡの更新をおこなう（ステップＳ２０５）。ここでは、連結カウンタnowの値に応じて連結ベクトルＡの更新をおこなう。つまり、直近の画像が合成対象ではない場合、ステップＳ２１４でのカウントアップにより連結カウンタnowは０以外の値となるが、この場合、これまでの連結ベクトルＡにステップＳ２０３で算出した移動ベクトルを加算したものが新たな連結ベクトルＡとなる。つまり、図１０（ｄ）に示すように、これまでの連結ベクトルＡが移動ベクトルN(1)であったので、これにステップＳ２０３で算出した移動ベクトルN(2)を加算した結果を新たな連結ベクトルＡとする。
【００９４】
このように連結ベクトルＡを更新すると、合成対象判別部２１５は、更新後の連結ベクトルＡに基づいて、画像f(n+1)（この場合、画像f(2)）が合成対象であるか否かを判別する（ステップＳ２０６）。ここでの判別動作を、図１０（ｃ）を参照して説明する。
【００９５】
上述したように、直近の画像f(1)は合成対象ではなかったため、原点画像f(0)への合成はおこなわれていない状態である。このような場合、現在対象としている画像f(n+1)（すなわち、画像f(2)）が原点画像f(0)に対する合成対象となるか否かを判別することになる。よって、ここでは、原点画像f(0)から画像f(2)までのズレ量に基づき、画像f(2)を画像f(0)に合成した場合、画像f(2)の移動被写体ＭＶ２が原点画像f(0)の移動被写体ＭＶ０に重ならないか判別する。
【００９６】
この場合、ステップＳ２０５で更新した連結ベクトルＡが、原点画像f(0)から画像f(2)までのズレ量を示した２次元ベクトルであるので、この連結ベクトルＡの横方向（ｘ方向）成分であるベクトルＡｘと、ステップＳ３００で算出された必要移動量Ｍｘを比較することで、移動被写体ＭＶが重なるか否かを判別する。
【００９７】
ここでは、図１０（ｃ）に示すように、原点画像f(0)から画像f(2)までの横方向（ｘ方向）のズレ量であるベクトルＡｘが、必要移動量Ｍｘより大きいので、合成対象判別部２１５は、画像f(2)は合成対象であると判別する（ステップＳ２０６：Ｙｅｓ）。
【００９８】
この場合、合成対象判別部２１５は、原点移動ベクトルＴの更新をおこなう（ステップＳ２０７）。この原点移動ベクトルＴは、原点画像f(0)と合成対象画像とのズレ量を示す２次元ベクトルである。ここで、原点移動ベクトルＴは、処理開始時に初期化され「０」となっているものとする。ステップＳ２０７の処理が初回である場合、図１０（ｃ）に示すように、連結ベクトルＡが原点画像f(0)から合成対象となった画像f(2)までのズレ量を示しているので、連結ベクトルＡが原点移動ベクトルＴとして代入されることになる（図１０（ｄ）参照）。一方、原点移動ベクトルＴの更新が２回目以降である場合は、ステップＳ２０５で更新された連結ベクトルＡにそれまでの原点移動ベクトルＴを加算したものに更新する。
【００９９】
原点移動ベクトルＴの更新をおこなうと、合成対象判別部２１５は、合成対象を画像合成部２１６に通知して合成処理を指示する。ここでは、画像f(2)が合成対象となっているので、原点画像f(0)に画像f(2)を合成することになる。この場合、画像合成部２１６はまず、処理画像記憶領域２３０ｂにアクセスし、原点画像f(0)を合成画像記憶領域２３０ｃにコピーするとともに、合成によって拡張される画像サイズに応じた座標領域を設定する。この場合、予め設定されている方向Ｄに基づいて、拡張する座標領域を設定する。ここでは、方向Ｄとして「左」が指定されているので、画像合成部２１６は、図１１（ａ）に示すように、原点画像f(0)の右端が、全体の座標領域の右端に位置するよう座標を設定する。
【０１００】
この場合、原点画像f(0)のｘ座標は右端を原点とし、左方向に座標値が増加する設定とする。また、ｙ座標については、画像の縦サイズの中点を原点とする。つまり、図１１（ａ）に示すように、原点（０，０）から左方向にＰｘ分離れた位置が画像f(0)の左端となり、原点（０，０）から上方向に＋Ｐｙ／２分離れた位置が画像f(0)の上端となり、原点（０，０）から下方向に−Ｐｙ／２分離れた位置が画像f(0)の下端となる。
【０１０１】
なお、方向Ｄが「右」である場合は、原点画像f(0)の左端が、全体の座標領域の左端に位置するようにし、原点画像f(0)の左端を原点として右方向に座標値が増加するようなｘ座標を設定する。また、横方向に合成して連写パノラマ画像ＰＮを生成するので、ｙ座標の設定については、方向Ｄが「左」の場合と同様とする。
【０１０２】
このような基準座標を設定すると、画像合成部２１６は、合成用に拡張する領域の座標を設定する。この場合、画像合成部２１６は、ステップＳ２０７で更新された原点移動ベクトルＴに基づいて拡張する座標を設定する。ここでは、原点移動ベクトルＴのｘ方向ベクトルＴｘとｙ方向ベクトルＴｙのそれぞれを求め、ｘ座標については、原点画像f(0)の左端（Ｐｘ）から＋側にＴｘ分拡張する。ｙ座標については、ｙ座標原点（ｘ，０）からＴｙ分拡張する。なお、ｙ座標については、合成対象画像が上下のいずれに移動したかによって＋値と−値のいずれかをとるものとする。
【０１０３】
このようにして、合成画像記憶領域２３０ｃ上に展開した座標空間において、図１１（ｂ）に示すように、合成対象画像に対応した矩形の拡張座標領域ＥＭが設定される。画像合成部２１６は、このようにして座標空間を拡張すると、合成対象である画像f(n+1)を処理画像記憶領域２３０ｂから取得する。そして、拡張した座標空間で画像f(0)と合成するため、取得した画像f(n+1)の座標値を、原点移動ベクトルＴで補正する（ステップＳ２０８）。
【０１０４】
ここで、原点移動ベクトルＴは、原点画像f(0)から合成対象画像f(n+1)までの移動量であるので、画像f(n+1)の座標を原点移動ベクトルＴで補正することで、それぞれの画像に共通の静止被写体（特徴点）が一致するよう座標空間上に合成対象画像f(n+1)を展開することができる。この場合、取得した画像f(n+1)についての初期座標を、上述した原点画像f(0)の場合と同様に設定する。すなわち、画像の右端をｘ座標の原点とし、ｙ方向サイズの中点となる位置をｙ座標の原点とする。このような初期座標を画像f(n+1)に設定した上で、原点移動ベクトルＴで座標値を補正する。
【０１０５】
補正された画像f(n+1)のｘ座標によって示される画像の左端部は、拡張した座標空間の左端でのｘ座標と一致するようになる。同様に、ｙ座標についても、画像の上端と座標空間の上端、もしくは、画像の下端と座標空間の下端とが一致するようになる。画像合成部２１６は、このように補正した座標値に基づいて画像f(n+1)を合成画像記憶領域２３０ｃ上の座標空間に展開することで、原点画像f(0)に合成する（ステップＳ２０９）。
【０１０６】
原点画像f(0)に画像f(2)を合成した場合の例を図１２（ａ）に示す。図示するように、矩形の拡張座標空間ＥＭ内に、原点画像f(0)と画像f(2)とが合成され、それぞれについての移動被写体ＭＶ０とＭＶ２が一つの画像内に示されることになる。
【０１０７】
このようにして、合成対象であると判別された画像を原点画像f(0)に合成すると、画像合成部２１６は、その旨を画像位置検出部２１３に通知する。画像位置検出部２１３は、画像合成部２１６からの通知に応じて、連結カウンタnowをリセットする（ステップＳ２１０）。すなわち、合成がおこなわれる毎に、連結カウンタnowがリセットされる。ここでは、連結カウンタnowのカウンタ値を「０」にリセットして初期化する。
【０１０８】
画像位置検出部２１３は、フレームカウンタｎをさらに＋１カウントアップし（ステップＳ２１１）、最終画像でなければ（ステップＳ２１２：Ｎｏ）、新たに指定された２つの画像についてステップＳ２０３以降の処理をおこなう。ここで、直近の画像を合成したことによってステップＳ２１０で連結カウンタnowをリセットしているので、現在のカウンタ値は「０」である（ステップＳ２０４：Ｙｅｓ）。この場合、移動被写体ＭＶが重ならないための必要移動量Ｍｘの算出が、被写体特定部２１４によって再度おこなわれる（ステップＳ３００）。
【０１０９】
ここで、原点画像f(0)に画像f(2)を合成した後のフレームカウンタｎは「２」となるので、現在処理対象としている画像は画像f(2)と画像f(3)となる。この場合、ステップＳ３００での必要移動量Ｍｘの算出は、直近に合成された画像f(2)の移動被写体ＭＶ２についておこなわれることになる。つまり、画像合成がおこなわれる毎に、合成した画像における移動被写体ＭＶで必要移動量Ｍｘを求めることになる。これは、連写速度と移動被写体ＭＶの移動速度とは必ずしも一定の関係とはならないので、移動被写体ＭＶが重ならないための必要移動量Ｍｘも一定ではないからである。よって、合成をおこなう都度、最後に合成した画像における移動被写体ＭＶに基づいた必要移動量Ｍｘの算出をおこなう。
【０１１０】
このようにして被写体特定部２１４が新たに必要移動量Ｍｘを算出すると、被写体特定部２１４はその旨を合成対象判別部２１５に通知する。合成対象判別部２１５は、被写体特定部２１４からの通知に応じて、連結ベクトルＡの更新をおこなう（ステップＳ２０５）。ここでは、連結カウンタnowの値に応じて、連結ベクトルＡの更新をおこなう。直近の画像を合成した場合、ステップＳ２１０で連結カウンタnowを初期化しているので、現在のカウンタ値は「０」である。この場合、合成対象判別部２１５は、ステップＳ２０３で算出した移動ベクトルN(n+1)を連結ベクトルＡとする。
【０１１１】
このように、連結カウンタnowの値が「０」であるか「０以外」であるかに応じて、連結ベクトルＡの更新方法を異ならせることにより、合成対象と判別された画像の合成がおこなわれる毎に連結ベクトルＡがリセットされることになる。すなわち、合成がされた場合は、その合成された画像と次以降の画像とのズレ量である移動ベクトルＮの加算値を連結ベクトルＡとすることで、合成された画像の移動被写体ＭＶと重ならない移動被写体ＭＶが含まれている画像であるかが判別されるようになる。
【０１１２】
合成対象判別部２１５は、このようにして更新した連結ベクトルＡの横方向（ｘ方向）成分であるベクトルＡｘと、ステップＳ３００で算出された必要移動量Ｍｘとを比較することで、処理対象としている画像f(n+1)が合成対象であるか否かを判別する（ステップＳ２０６）。
【０１１３】
画像f(n+1)が合成対象である場合（ステップＳ２０６：Ｙｅｓ）、合成対象判別部２１５は、原点移動ベクトルＴの更新をおこなう（ステップＳ２０７）。ここでは、これまでの原点移動ベクトルＴに、ステップＳ２０５で更新した連結ベクトルＡを加算したものを新たな原点移動ベクトルＴとする。
【０１１４】
ここで、原点画像f(0)に画像f(2)が合成された場合において、現在のフレームカウンタｎが「２」であり、このときの画像f(n+1)である画像f(3)が合成対象であると判別されたとすると、これまでの原点移動ベクトルＴは、原点画像f(0)から画像f(2)までのズレ量を示したベクトル（すなわち、移動ベクトルN(1)＋移動ベクトルN(2)）である。よって、このような原点移動ベクトルＴに、ステップＳ２０５で更新した連結ベクトルＡ（すなわち、移動ベクトルN(3)）を加算したものが、新たな原点移動ベクトルＴとなる。
【０１１５】
つまり、更新された原点移動ベクトルＴは、原点画像f(0)と画像f(3)とのズレ量を示した２次元ベクトルとなる。この場合、図１２（ａ）に示したような、合成画像記憶領域２３０ｃに展開している座標空間を、原点画像f(0)の原点（０，０）から原点移動ベクトルＴ分さらに拡張することで、図１２（ａ）に示している合成画像にさらに画像f(3)を合成するために必要な座標空間を設定することができる。
【０１１６】
この場合、画像f(3)についての初期座標を原点移動ベクトルＴで補正することで（ステップＳ２０８）、原点画像f(0)を基準とした座標に基づいて、画像f(3)（画像f(n+1)）を合成することができる（ステップＳ２０９）。
【０１１７】
なお、今回指定された画像f(n+1)が合成対象でない場合（ステップＳ２０６：Ｎｏ）、連結カウンタnowが＋１カウントアップされ「０以外」となる（ステップＳ２１４）。
【０１１８】
以上のような処理を、フレームカウンタｎが最終画像を示すまで繰り返しおこなわれることで（ステップＳ２１１、ステップＳ２１２：Ｎｏ）、得られた連写画像のそれぞれに示されている移動被写体ＭＶが重なることのない画像を順次判別して原点画像f(0)に合成する。この場合、図１２（ｂ）に示すように、矩形の座標空間ＥＭが、合成する画像に応じて順次拡張され、その中に合成対象画像が順次合成される。
【０１１９】
ここで、水平方向に移動する移動被写体ＭＶを追いながら連写することで、横方向に長いパノラマ画像を生成することにしているので、パノラマ画像とするために特徴点（静止被写体）で位置合わせをしながら合成すると、各画像間の上下位置は、図１２（ｂ）に示すようにズレが生じる。ここで、合成のための座標空間ＥＭは矩形としているので、図１２（ｂ）で斜線によって示すように、上下部分に画像のない領域（無画像領域）が生じる。よって、座標空間ＥＭ上で合成した画像をそのまま完成画像としてしまうと、不規則な無画像領域があるため整った画像とはならない。
【０１２０】
よって、最終画像f(max)についての処理を終了すると（ステップＳ２１２：Ｙｅｓ）、画像合成部２１６は、合成した画像の上下方向をトリミングすることで、完成画像である連写パノラマ画像ＰＮを生成する（ステップＳ２１３）。ここでは、図１２（ｂ）に示したような無画像領域を除外できる上下幅（図中の点線間）を特定してトリミングすることで、図１２（ｃ）に示すような連写パノラマ画像ＰＮを生成する。
【０１２１】
このようにして連写パノラマ画像ＰＮを生成すると、画像合成部２１６は、その旨を出力処理部２１７に通知する。この場合、図７に示す連写パノラマ撮像処理のフローに戻り、出力処理部２１７は、所定の出力確認画面を生成して表示部３１０に表示出力する（ステップＳ１０９）。
【０１２２】
ここでは、例えば、生成された連写パノラマ画像ＰＮとともに、連写パノラマ画像ＰＮの出力方法をデジタルカメラ１の使用者に選択させる画面を生成して表示部３１０に表示する。出力方法として、例えば、メモリカード（外部記憶部２６０）への保存や、外部装置への表示出力、などが選択可能に表示される。
【０１２３】
デジタルカメラ１の使用者は、操作部３３０を操作し、所望する出力方法を選択する。出力処理部２１７は、使用者によって選択された出力方法に応じて、合成画像記憶領域２３０ｃに展開されている連写パノラマ画像ＰＮのデータを処理することで出力し（ステップＳ１１０）、処理を終了する。
【０１２４】
以上説明したように、水平方向に移動する移動被写体ＭＶを、デジタルカメラ１で追いながら連写撮像すると、移動被写体ＭＶが重なることのない画像のみを合成して連写パノラマ画像ＰＮを生成する。
【０１２５】
このような、移動被写体ＭＶが重ならない画像を判別するために必要となる必要移動量Ｍｘは、上述したように、図８に示した連写パノラマ画像生成処理のステップＳ３００で実行された「必要移動量算出処理」によって算出される。この必要移動量算出処理を、図１３に示すフローチャートを参照して説明する。ここでは、図８に示した連写パノラマ画像生成処理のステップＳ２０２において、フレームカウンタｎとして「０」が指定され、これにより画像f(0)と画像f(1)が処理対象となっている場合を例に説明する。
【０１２６】
処理が開始されると、被写体特定部２１４は、処理対象となっている画像f(n)と画像f(n+1)の位置合わせをおこなうため、連写パノラマ画像生成処理（図８）のステップＳ２０３で算出した移動ベクトルN(n+1)で画像f(n)を補正する（ステップＳ３０１）。つまり、図１４（ａ）に示すように、画像f(0)を移動ベクトルN(1)で補正することで、画像f(0)と画像f(1)のそれぞれに共通する特徴点（静止被写体ＳＴ１とＳＴ２）が重なるよう位置合わせされる。
【０１２７】
処理対象画像の位置合わせをおこなうと、被写体特定部２１４は、２つの画像間でのブロックマッチングをおこなうためのブロックb(k)（調査ブロック）を設定する（ステップＳ３０２）。ここでは、設定されるブロック数をkとし、その最大値をmaxとする。これにより、ブロックb(0)〜ブロックb(max)が設定される。この場合、例えば、移動ベクトルＮで補正した画像f(n)と画像f(n+1)との重なる部分にブロックb(k)を設定する。ここでは、図１４（ｂ）に示すように、画像f(0)と画像f(1)が重なる部分にブロックb(k)を設定する。
【０１２８】
このような調査ブロックを設定すると、被写体特定部２１４は、ブロック番号を指定するブロックカウンタｋに０を設定することで初期化する（ステップＳ３０３）。これにより、最初のマッチング調査に用いられるブロックとしてブロックk(0)が指定される。
【０１２９】
被写体特定部２１４は、画像f(n)と画像f(n+1)それぞれから、ブロックb(k)の位置に対応する画素情報を取得してマッチングをとり、そのマッチング率bm(k)を算出する（ステップＳ３０４）。ここでは、それぞれの画素値の類似度などに基づいてマッチング率bm(k)を算出する。
【０１３０】
指定したブロックb(k)におけるマッチング率bm(k)を算出すると、被写体特定部２１４は、そのマッチング率bm(k)と予め規定されている必要マッチング率mbとを比較し、マッチング率bm(k)が必要マッチング率mb以下であるか否かを判別する（ステップＳ３０５）。この必要マッチング率mbは、比較している画素同士が同じ画像を示しているか判別するための閾値であり、既知のブロックマッチング手法などに基づいて予め規定されているものである。
【０１３１】
すなわち、算出したマッチング率bm(k)が必要マッチング率mb以下である場合（ステップＳ３０５：Ｙｅｓ）、その位置においては、画像f(n)と画像f(n+1)でマッチングがとれないことになる。この場合、被写体特定部２１４は、そのブロックb(k)をエラーブロックb(er)とし、例えば、処理画像記憶領域２３０ｂに記録する（ステップＳ３０６）。なお、算出したマッチング率bm(k)が必要マッチング率mbより大きい場合（ステップＳ３０６：Ｎｏ）は、マッチングがとれていることになる。よって、そのブロックb(k)はエラーブロックではないので記録しない。
【０１３２】
ブロックb(k)についてこのようなマッチング処理をおこなうと、被写体特定部２１４は、ブロックカウンタｋを＋１カウントアップする（ステップＳ３０７）。そして、上述したようなブロック毎のマッチングを最終ブロックb(max)までおこなう（ステップＳ３０８：Ｎｏ）。
【０１３３】
ここで、画像f(0)と画像f(1)とでは、上述したように、移動被写体ＭＶが重なっている。このような画像間でブロックマッチングをおこなった場合、静止被写体ＳＴなどの共通の被写体部分（特徴点）ではマッチングがとれることになるが、それぞれの画像に示されている移動被写体ＭＶの位置は画像毎に異なっているので、マッチングがとれず、エラーブロックとして記録されていることになる。
【０１３４】
ここで、記録されたエラーブロックb(er)を画像f(0)について当てはめると、図１５（ａ）に示すようになる。つまり、画像f(0)に示されている移動被写体ＭＶ０の部分と、位置合わせをして重ねたときの画像f(1)に示されている移動被写体ＭＶ１に対応する位置が、エラーブロックb(er)となる。ここで、画像f(0)では、移動被写体ＭＶ０が実際に示されているので、画像f(0)においては、図１５（ｂ）に示すような移動被写体ＭＶ０を示す画素がエラーブロックb(er)の位置に存在する。
【０１３５】
一方、移動被写体ＭＶ１は画像f(0)に含まれているものではなく、画像f(1)に含まれているものであるから、画像f(0)上で移動被写体ＭＶ１の形状で現れたエラーブロックb(er)に対応する画像f(0)の画素は、移動被写体ＭＶ１を構成するものではない。この部分に対応する画像f(0)の画素は、背景となる部分を示しているものになる。よって、エラーブロックb(er)に対応する画像f(0)の画素は、移動被写体ＭＶ０を示すものと、背景部分を示すもので構成されていることになる。
【０１３６】
したがって、画像f(0)上のエラーブロックb(er)に対応する画素値に基づき、例えば、コントラストの違いなどをみることで、移動被写体ＭＶ０を示す部分とそれ以外の部分とを峻別することができる。よって、被写体特定部２１４は、エラーブロックb(er)に対応する画像f(n)上の画素値を取得し（ステップＳ３０９）、取得した画素値に基づいて移動被写体ＭＶｎを特定する（ステップＳ３１０）。
【０１３７】
つまり、図１５（ｃ）に示すように、画像f(0)で示されている移動被写体ＭＶ０を構成している画素を特定することができる。ここで、本処理によって求める必要移動量Ｍｘは、この画像に次以降の画像を合成した場合に、その画像に示されている移動被写体ＭＶが、特定された移動被写体ＭＶｎと重ならないために必要な移動量を示すものである。よって、少なくとも、特定された移動被写体ＭＶの横方向のサイズ分以上の移動がある画像であれば、合成しても移動被写体ＭＶ同士が重ならないことになる。したがって、被写体特定部２１４は、特定された移動被写体ＭＶの横方向のサイズを必要移動量Ｍｘとし（ステップＳ３１１）、処理を終了する。
【０１３８】
そして、このように求められた必要移動量Ｍｘと、連結ベクトルＡの横方向成分であるベクトルＡｘとの比較により、合成対象画像であるか判別されるのである。
【０１３９】
以上説明したように、本発明を上記実施形態の如く適用することで、移動する被写体が重ならずに示されるパノラマ画像を生成することができるので、パノラマ画角の背景と動きのある被写体とを１つの画像で表すことができ、より効果的な画像表現を実現することができる。
【０１４０】
この場合において、基準となる最初の画像（原点画像）とその次の画像とに示される移動被写体から必要移動量を算出し、原点画像からの移動量が必要移動量より大きい画像を原点画像に合成する。そして、以降は、合成をおこなう毎に、合成した画像とその次の画像とに示される移動被写体から必要移動量を算出し、最後に合成した画像からの移動量が必要移動量より大きい画像を順次合成する。これにより、移動被写体が重なることのないパノラマ画像を確実に生成することができる。また、すべての画像について必要移動量を求める必要がないので、処理量を軽減することができ、パノラマ画像の生成にかかる処理時間を短縮することができる。
【０１４１】
このように原点画像や最後に合成した画像で必要移動量を算出する際、その画像内で特定される移動被写体の位置と大きさから必要移動量を算出しているので、移動被写体の動きや変化に応じた適切な必要移動量を求めることができ、移動被写体が重なることのないパノラマ画像を確実に生成することができる。
【０１４２】
また、合成対象画像を合成する際は、最初の画像（原点画像）から当該画像までの移動量（ズレ量）に基づいて、原点画像を基準に順次合成するので、ズレなどのないパノラマ画像を生成することができる。
【０１４３】
また、以上のような動作をおこなう画像処理機能を備えた撮像装置として本発明を実現することで、撮像をおこなったその場で上述したようなパノラマ画像を生成することができる。
【０１４４】
このような撮像装置を、上記実施形態で示したようなデジタルスチルカメラで実現した場合、移動する移動被写体の撮像を、デジタルスチルカメラの連写機能によって得ることができる。したがって、連写機能を備えるデジタルスチルカメラであれば、特別な装置を要することなく、撮影したその場で効果的な画像表現を実現することができる。
【０１４５】
上記実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【０１４６】
上記実施形態では、本発明をデジタルスチルカメラに適用した場合を例示したが、上記実施形態におけるデータ処理部２００にかかる構成や機能を実現することができるのであれば、本発明を実現する形態はデジタルスチルカメラに限られるものではない。
【０１４７】
すなわち、上記実施形態におけるデータ処理部２００は、本発明にかかる画像処理装置を実現したものであるので、上述したデータ処理部２００と同様の構成や機能を、例えば、コンピュータによる制御で動作する装置によって実現することでも、移動被写体が重なることのないパノラマ画像を生成することができる。
【０１４８】
この場合、本発明にかかる画像処理装置として必要な構成や機能を予め備えている装置として実現できることはもとより、例えば、パーソナルコンピュータなどの汎用装置によって実現することもできる。すなわち、上記実施形態における制御部２１０によって実現された機能と同様の機能を、当該装置を制御するコンピュータ装置で実現するためのプログラムを適用し、当該コンピュータ装置が上記各処理と同様の処理を実行することでも、上記実施形態と同様の効果を得ることができる。
【０１４９】
また、上記実施形態では、本発明にかかる撮像装置をデジタルスチルカメラ（デジタルカメラ１）で実現した場合を例示したが、一の方向に移動する移動被写体を示した一連の画像を得られるのであれば、本発明にかかる撮像装置は、デジタルスチルカメラに限られるものではない。すなわち、コンピュータによる画像処理がおこなえるデジタルデータによって撮像画像が得られるのであれば、動画像を撮像する撮像装置（例えば、デジタルビデオカメラや、動画像撮像機能を有するデジタルスチルカメラや携帯電話など）であってもよい。動画像をデジタルデータで撮像する撮像装置においても、連続したフレーム画像によって動画像が構成されるので、上記実施形態で示した処理と同様の処理をおこなうことで、移動被写体が重なることのないパノラマ画像を生成することができる。
【０１５０】
また、本発明にかかる撮像装置を、上記実施形態で示したデジタルカメラ１の構成や機能と同様の機能を予め備えている撮像装置として実現できることはもとより、既存のデジタルスチルカメラやデジタルビデオカメラ、および、これらと同様の機能を有する種々の装置によって実現されてもよい。この場合も、上記実施形態の制御部２１０によって実現された機能と同様の機能を、当該装置を制御するコンピュータ装置が実現するためのプログラムを適用し、当該コンピュータ装置が上記各処理と同様の処理を実行することでも、上記実施形態と同様の効果を得ることができる。
【０１５１】
このような、本発明にかかるプログラムを適用する方法は任意であり、例えば、ＣＤ−ＲＯＭやメモリカードなどといった記録媒体に格納して適用できる他、インターネットなどの通信媒体を介して適用することができる。
【０１５２】
なお、上記実施形態では、画像内の移動被写体を特定する際、連続する画像間のブロックマッチングによって特定することとしたが、対象画像内での移動被写体の大きさや位置を特定できるのであれば、その方法はブロックマッチングに限らず任意である。
【０１５３】
例えば、対象とする移動被写体が人物であれば、デジタルスチルカメラなどで採用されている顔認識機能と同様の動作によって移動被写体を特定するようにしてもよい。
【０１５４】
その他、例えば、パノラマ画像を生成する前に最初のフレーム画像などを表示することで、所望する移動被写体を撮影者等に指定させるようにしてもよい。この場合、画像上で指定された位置において、例えば、リージョングローイングなどといった画像範囲を特定する手法を実行し、移動被写体を示す画像部分の特徴を認識して記憶する。そして、必要移動量を算出する画像において、記憶した特徴が現れている部分を移動被写体として特定してもよい。
【０１５５】
また、上記実施形態では、水平方向に移動する移動被写体を撮像する場合を例示したが、一の方向（一定方向）に移動する対象であれば本発明にかかる移動被写体とすることができ、移動被写体の移動方向は水平方向に限られるものではない。例えば、下から上や上から下などといった、上下の一方向に移動するものを移動被写体として撮像してもよい。この場合は、撮像画像を上下方向に合成すればよい。つまり、パノラマ画像の生成に必要となる撮像方向と一致する方向であれば、移動被写体の移動方向は任意である。なお、パノラマ画像を生成するために設定される方向は、撮像装置を正位置にて撮像する場合における撮像画角内での方向に基づくものである。スチルカメラの場合、縦位置（正位置±９０°）にして撮像することがあるが、この場合、移動被写体自体は水平方向に移動していても、撮影前に指定する移動方向や撮像画像の合成方向などは上下方向（縦方向）ということになる。
【図面の簡単な説明】
【０１５６】
【図１】本発明の実施形態にかかるデジタルカメラの構成を示すブロック図である。
【図２】図１に示す画像メモリを構成する記憶領域を示す図である。
【図３】図１に示す制御部によって実現される機能を示す機能ブロック図である。
【図４】本発明の実施形態にかかる連写動作を説明するための図であり、（ａ）および（ｂ）は被写体の例を示し、（ｃ）は被写体とデジタルカメラの動きの例を示す。
【図５】本発明の実施形態にかかるデジタルカメラの連写によって得られる画像の例を示す図である。
【図６】本発明の実施形態にかかるデジタルカメラによって生成される連写パノラマ画像の例を示す図である。
【図７】本発明の実施形態にかかる「連写パノラマ撮像処理」を説明するためのフローチャートである。
【図８】図７に示す連写パノラマ撮像処理で実行される「連写パノラマ画像生成処理」を説明するためのフローチャートである。
【図９】図８に示す連写パノラマ画像生成処理における動作を説明するための図であり、（ａ）および（ｂ）は、連続する撮像画像間の移動ベクトルを求める動作の概念を示す。
【図１０】図８に示す連写パノラマ画像生成処理における動作を説明するための図であり、（ａ）〜（ｃ）は、画像が合成対象であるか判別する動作の概念を示し、（ｄ）は、判別に用いられる連結ベクトルの概念を示す。
【図１１】図８に示す連写パノラマ画像生成処理における動作を説明するための図であり、（ａ）および（ｂ）は、合成対象の画像を原点画像に合成する動作の概念を示す。
【図１２】図８に示す連写パノラマ画像生成処理における動作を説明するための図であり、（ａ）および（ｂ）は、合成後の画像の例を示し、（ｃ）は、トリミングによって生成された連写パノラマ画像の例を示す。
【図１３】図８に示す連写パノラマ画像生成処理で実行される「必要移動量算出処理」を説明するためのフローチャートである。
【図１４】図１３に示す必要移動量算出処理における動作を説明するための図であり、（ａ）は、対象画像の位置合わせ動作の概念を示し、（ｂ）は、対象画像に設定される調査ブロックの例を示す。
【図１５】図１３に示す必要移動量算出処理における動作を説明するための図であり、（ａ）は、エラーブロックの例を示し、（ｂ）は、移動被写体を特定する動作の概念を示し、（ｃ）は、必要移動量を算出する動作の概念を示す。
【符号の説明】
【０１５７】
１…デジタルカメラ、１００…撮像部、１１０…光学装置、１２０…イメージセンサ部、２００…データ処理部、２１０…制御部、２１１…インタフェース処理部、２１２…撮像制御部、２１３…画像位置検出部、２１４…被写体特定部、２１５…合成対象判別部、２１６…画像合成部、２１７…出力処理部、２２０…画像処理部、２３０…画像メモリ、２３０ａ…撮像画像記憶領域、２３０ｂ…処理画像記憶領域、
２３０ｃ…合成画像記憶領域、２４０…画像出力部、２５０…記憶部、２６０…外部記憶部、３００…インタフェース部、３１０…表示部、３２０…外部インタフェース部、３３０…操作部、ＭＶ…移動被写体、ＳＴ…静止被写体、ＰＮ…連写パノラマ画像
【図１】
0004877154.tif 000002
【図２】
0004877154.tif 000003
【図３】
0004877154.tif 000004
【図４】
0004877154.tif 000005
【図５】
0004877154.tif 000006
【図６】
0004877154.tif 000007
【図７】
0004877154.tif 000008
【図８】
0004877154.tif 000009
【図９】
0004877154.tif 000010
【図１０】
0004877154.tif 000011
【図１１】
0004877154.tif 000012
【図１２】
0004877154.tif 000013
【図１３】
0004877154.tif 000014
【図１４】
0004877154.tif 000015
【図１５】
0004877154.tif 000016