(57)【要約】【課題】複数の画像からパノラマ画像として切り出すべき切り出し領域を高さ方向が最大となるように自動的に決定する。【解決手段】第１の角度Ｓ’を有する帯状領域のうち、複数の画像の左下および右下の頂点からなる第１の点群よりも上側に存在し、かつ複数の画像の左上および右上の頂点からなる第２の点群よりも下側に存在するという条件を満たす最大の広さを有する第１の帯状領域を選択する（ＳＴ１５，ＳＴ１６）。この第１の帯状領域と接する第１の点群の中の第１の点、この第１の帯状領域と接する第２の点群の中の第２の点、および第１の角度に基づいて、第１の角度Ｓ’の新たな候補を選択する（ＳＴ１７，ＳＴ１４）。第１の帯状領域の選択および第１の角度の新たな候補の選択を繰り返し行うことにより、第１の点群よりも上側に存在し、かつ第２の点群よりも下側に存在するという条件を満たす高さ方向が最大の帯状領域、従って切り出し領域を決定できる。【選択図】図１３
2010146043.tif 000002
【特許請求の範囲】
【請求項１】
第１の点群および第２の点群が並んで存在する方向を第１の方向とし、この第１の方向と直交する第２の方向に対して第１の角度を有する帯状領域のうち、上記第１の点群よりも上記第１の方向の一の側に存在し、かつ、第２の点群よりも上記第１の方向の他の側に存在するという条件を満たす最大の高さを有する第１の帯状領域を選択する帯状領域選択部と、
上記第１の帯状領域と接する上記第１の点群の中の第１の点、上記第１の帯状領域と接する上記第２の点群の中の第２の点、および上記第１の角度の関係に基づいて、上記第１の角度よりも大きい角度または上記第１の角度よりも小さい角度の中から上記第１の角度の候補を選択する角度選択部と、
上記帯状領域選択部による上記第１の帯状領域の選択と上記角度選択部による上記第１の角度の候補選択とが繰り返されるように制御し、最終的に上記帯状領域選択部で選択された上記第１の帯状領域を処理結果とする制御部
を備える情報処理装置。
【請求項２】
上記処理結果としての上記第１の帯状領域から選択された、上記第１の点群および上記第２の点群に挟まれた矩形領域の切り出しを行う領域切り出し部をさらに備える
請求項１に記載の情報処理装置。
【請求項３】
上記第１の点群は撮像位置を水平方向に順次ずらして撮像された複数の画像の左下位置および右下位置により構成され、上記第２の点群は上記複数の画像の左上位置および右上位置により構成される
請求項１に記載の情報処理装置。
【請求項４】
第１の点群および第２の点群が並んで存在する方向を第１の方向とし、この第１の方向と直交する第２の方向に対して第１の角度を有する帯状領域のうち、上記第１の点群よりも上記第１の方向の一の側に存在し、かつ、第２の点群よりも上記第１の方向の他の側に存在するという条件を満たす最大の高さを有する第１の帯状領域を選択する帯状領域選択ステップと、
上記第１の帯状領域と接する上記第１の点群の中の第１の点、上記第１の帯状領域と接する上記第２の点群の中の第２の点、および上記第１の角度の関係に基づいて、上記第１の角度よりも大きい角度または上記第１の角度よりも小さい角度の中から上記第１の角度の候補を選択する角度選択ステップとを有し、
上記帯状領域選択ステップと上記角度選択ステップを繰り返し行って、最終的に上記帯状領域選択ステップで選択された上記第１の帯状領域を処理結果とする
情報処理方法。
【請求項５】
コンピュータを、
第１の点群および第２の点群が並んで存在する方向を第１の方向とし、この第１の方向と直交する第２の方向に対して第１の角度を有する帯状領域のうち、上記第１の点群よりも上記第１の方向の一の側に存在し、かつ、第２の点群よりも上記第１の方向の他の側に存在するという条件を満たす最大の高さを有する第１の帯状領域を選択する帯状領域選択手段と、
上記第１の帯状領域と接する上記第１の点群の中の第１の点、上記第１の帯状領域と接する上記第２の点群の中の第２の点、および上記第１の角度の関係に基づいて、上記第１の角度よりも大きい角度または上記第１の角度よりも小さい角度の中から上記第１の角度の候補を選択する角度選択手段と、
上記帯状領域選択手段による上記第１の帯状領域の選択と上記角度選択手段による上記第１の角度の候補選択とが繰り返されるように制御し、最終的に上記帯状領域選択部で選択された上記第１の帯状領域を処理結果とする制御手段
として機能させるプログラム。
【請求項６】
撮像位置を水平方向に順次ずらして撮像された複数の画像から帯状領域を求める情報処理部と、
上記複数の画像から上記情報処理部で求められた帯状領域から選択された、上記第１の点群および上記第２の点群に挟まれた矩形領域を切り出す領域切り出し部を備え、
上記情報処理部は、
水平方向に対して第１の角度を有する帯状領域のうち、上記複数の画像の左下位置および右下位置により構成される第１の点群よりも上側に存在し、かつ上記複数の画像の左上位置および右上位置により構成される第２の点群よりも下側に存在するという条件を満たす最大の高さを有する第１の帯状領域を選択する帯状領域選択部と、
上記第１の帯状領域と接する上記第１の点群の中の第１の点、上記第１の帯状領域と接する上記第２の点群の中の第２の点、および上記第１の角度の関係に基づいて、上記第１の角度よりも大きい角度または上記第１の角度よりも小さい角度の中から上記第１の角度の候補を選択する角度選択部と、
上記帯状領域選択部による上記第１の帯状領域の選択と上記角度選択部による上記第１の角度の候補選択とが繰り返されるように制御し、最終的に上記帯状領域選択部で選択された上記第１の帯状領域を処理結果とする制御部を有する
画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置、情報処理方法、プログラムおよび画像処理装置に関する。特に、第１の点群よりも上側に存在し、かつ第２の点群よりも下側に存在するという条件を満たす高さが最大の帯状矩形領域を決定するための情報処理装置等に関する。
【背景技術】
【０００２】
従来、特許文献１等には、パンしながら連写した複数の画像から１枚のパノラマ画像を生成することが提案されている。複数の画像の垂直方向位置が不揃いの場合、当該複数の画像からパノラマ画像を生成する際に、パノラマ画像として切り出すべき切り出し領域（矩形領域）を確定させる必要がある。従来、この切り出し領域に関しては、ユーザが手作業で指定することが行われている。
【０００３】
ここで、切り出し領域の指定について、具体例を挙げて説明する。例えば、図１９に示すように建物Ｂ１〜Ｂ４が存在する風景をパンしながら、図２０に示すように５枚の画像Ｐ１〜Ｐ５を撮像し、これら５枚の画像Ｐ１〜Ｐ５からら１枚のパノラマ画像を作成する場合を考える。
【０００４】
図２１に斜線を付して示す領域Ａ１は、ユーザが指定した切り出し領域の一例を示している。また、図２２に斜線を付して示す領域Ａ２は、ユーザが指定した切り出し領域の他の例を示している。パノラマ画像の場合には、幅よりも高さが重要である。したがって、図２１に示す領域Ａ１より、図２２に示す領域Ａ２を指定した方がよい。図２３は、図２２の領域Ａ２を切り出し領域として、５枚の画像Ｐ１〜Ｐ５から切り出したパノラマ画像ＰＮを示している。
【０００５】
また、図２４に示す領域Ａ３は、ユーザが指定した切り出し領域のさらに他の例を示している。この場合、斜線を付して示した領域の画素データが存在しないので、画素値を確定させることができず、処理不能となるので、好ましくない。
【特許文献１】特開２０００−２９９８０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、パノラマ画像の場合には、幅よりも高さが重要である。そのため、高さが最大となるように切り出し領域を選びたい。上述したように、従来、切り出し領域はユーザにより手作業で指定されている。そのため、切り出し領域の決定に時間がかかり過ぎ、またユーザにより指定された切り出し領域の高さが最大となっているという保証もなかった。
【０００７】
この発明の目的は、例えば、複数の画像からパノラマ画像として切り出すべき切り出し領域を高さが最大となるように自動的に決定することにある。
【課題を解決するための手段】
【０００８】
この発明の概念は、
第１の点群および第２の点群が並んで存在する方向を第１の方向とし、この第１の方向と直交する第２の方向に対して第１の角度を有する帯状領域のうち、上記第１の点群よりも上記第１の方向の一の側に存在し、かつ、第２の点群よりも上記第１の方向の他の側に存在するという条件を満たす最大の幅を有する第１の帯状領域を選択する帯状領域選択部と、
上記第１の帯状領域と接する上記第１の点群の中の第１の点、上記第１の帯状領域と接する上記第２の点群の中の第２の点、および上記第１の角度の関係に基づいて、上記第１の角度よりも大きい角度または上記第１の角度よりも小さい角度の中から上記第１の角度の候補を選択する角度選択部と、
上記帯状領域選択部による上記第１の帯状領域の選択と上記角度選択部による上記第１の角度の候補選択とが繰り返されるように制御し、最終的に上記帯状領域選択部で選択された上記第１の帯状領域を処理結果とする制御部
を備える情報処理装置にある。
【０００９】
この発明において、第１の点群および第２の点群が並んで存在する方向が第１の方向とされる。例えば、第１の点群は撮像位置を水平方向に順次ずらして撮像された複数の画像の左下位置および右下位置により構成され、第２の点群はこの複数の画像の左上位置および右上位置により構成される。この場合、第１の方向は、垂直方向となる。
【００１０】
帯状領域選択部により、第１の方向と直交する第２の方向に対して第１の角度を有する帯状領域のうち、第１の点群よりも第１の方向の一の側に存在し、かつ、第２の点群よりも第１の方向の他の側に存在するという条件を満たす最大の高さを有する第１の帯状領域が選択される。
【００１１】
上述したように、第１の点群が複数の画像の左下位置および右下位置により構成され、第２の点群が複数の画像の左上位置および右上位置により構成される場合には、帯状領域選択部により、水平方向に対して第１の角度を有する帯状領域のうち、第１の点群よりも上側に存在し、かつ、第２の点群よりも下側に存在するという条件を満たす最大の高さを有する第１の帯状領域が選択される。
【００１２】
また、角度選択部により、１の帯状領域と接する第１の点群の中の第１の点、第１の帯状領域と接する第２の点群の中の第２の点、および第１の角度の関係に基づいて、第１の角度よりも大きい角度または第１の角度よりも小さい角度の中から第１の角度の候補が選択される。
【００１３】
例えば、第１の点、第２の点および第１の角度との関係において、第１の角度を現在よりも大きな角度とした場合に第１の帯状領域の高さが小さくなるときには、現在の第１の角度よりも小さな角度の中から第１の角度の候補が選択される。逆に、例えば、第１の点、第２の点および第１の角度との関係において、第１の角度を現在よりも小さな角度とした場合に第１の帯状領域の高さが小さくなるときには、現在の第１の角度よりも大きな角度の中から第１の角度の候補が選択される。
【００１４】
制御部により、帯状領域選択部による第１の帯状領域の選択と角度選択部による第１の角度の候補選択とが繰り返されるように制御され、最終的に帯状領域選択部で選択された第１の帯状領域が処理結果とされる。これにより、第１の点群よりも上側に存在し、かつ第２の点群よりも下側に存在するという条件を満たす高さが最大の帯状領域が自動的に決定される。上述したように、第１の点群が複数の画像の左下位置および右下位置により構成され、第２の点群が複数の画像の左上位置および右上位置により構成される場合には、複数の画像からパノラマ画像として切り出すべき切り出し領域（矩形領域）を選択するための帯状領域が、高さ方向が最大となるように自動的に決定される。
【００１５】
この発明において、例えば、処理結果としての第１の帯状領域から選択された、第１の点群および第２の点群に挟まれた矩形領域の切り出しを行う領域切り出し部をさらに備えるようにしてもよい。この場合、第１の点群よりも上側に存在し、かつ第２の点群よりも下側に存在するという条件を満たす高さが最大の矩形領域の切り出しを行うことができる。例えば、撮像位置を水平方向に順次ずらして撮像された複数の画像から高さが最大の矩形領域を切り出して、良好なパノラマ画像を得ることができる。
【発明の効果】
【００１６】
この発明によれば、第１の角度を有する帯状領域のうち、第１の点群よりも上側に存在し、かつ第２の点群よりも下側に存在するという条件を満たす最大の高さを有する第１の帯状領域を選択し、この第１の帯状領域と接する第１の点群の中の第１の点、この第１の帯状領域と接する第２の点群の中の第２の点、および第１の角度に基づいて、第１の角度の新たな候補を選択し、上述の第１の帯状領域の選択および第１の角度の新たな候補の選択を繰り返し行うものであり、第１の点群よりも上側に存在し、かつ第２の点群よりも下側に存在するという条件を満たす高さが最大の帯状領域を決定できる。
【発明を実施するための最良の形態】
【００１７】
以下、発明を実施するための最良の形態（以下、「実施の形態」とする）について説明する。なお、説明は以下の順序で行う。
１．実施の形態
２．変形例
【００１８】
＜１．実施の形態＞
［デジタルカメラの構成例］
図１は、実施の形態としてのデジタルカメラ１００の構成例を示している。このデジタルカメラ１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read OnlyMemory）１０２、ＲＡＭ（Random Access Memory）１０３、ユーザ操作部１０４を有している。また、デジタルカメラ１００は、撮像素子１１１、撮像信号処理部１１２、Ａ／Ｄ(Analog/Digital)変換部１１３、デジタル信号処理部（ＤＳＰ：DigitalSignal Processor）１１４、記録再生部１１５および表示部１１７を有している。
【００１９】
ＣＰＵ１０１は、デジタルカメラ１００の各部を制御する。ＲＯＭ１０２は、ＣＰＵ１０１の制御プログラム等を記憶している。ＲＡＭ１０３は、ＣＰＵ１０１の制御処理に必要なデータの一時記憶等に用いられる。ＣＰＵ１０１は、ＲＯＭ１０２から読み出したプログラムやデータをＲＡＭ１０３上に展開してプログラムを起動し、デジタルカメラ１００の各部を制御する。
【００２０】
ユーザ操作部１０４は、ユーザインタフェースを構成し、バス１０５を介してＣＰＵ１０１に接続されている。この入力デバイス１０４は、撮像装置１００の図示しない筐体面に配置されたキー、ボタン、ダイヤル等で構成される。ＣＰＵ１０１は、入力デバイス１０４からバス１０５を介して入力される情報の解析を行って、ユーザの操作に対応した制御を行う。
【００２１】
撮像部１１１は、被写体を撮像して、この被写体に対応した撮像信号を出力する。この撮像部１１１は、Ｃ−ＭＯＳ(Complementary Metal Oxide Semiconductor）撮像素子、あるいはＣＣＤ(Charge Coupled Device)撮像素子により構成される。撮像信号処理部１１２は、撮像部１１１から出力される撮像信号（アナログ信号）に対し、サンプルホールドおよび利得制御等の処理を行う。
【００２２】
Ａ／Ｄ変換部１１３は、撮像信号処理部１１２から出力される撮像画像信号をアナログ信号からデジタル信号に変換する。デジタフ信号処理部１１４は、Ａ／Ｄ変換部１１３から供給される撮像画像信号に対して画像処理を行う。ここでいう画像処理は、ホワイトバランス処理、ガンマ補正処理などである。これら処理は、全ての汎用デジタルカメラで行われる処理なので、その詳細を省略する。
【００２３】
この実施の形態において、デジタル信号処理部１１４は、さらに、パノラマ画像生成処理を行うパノラマ画像生成部１２０を備えている。このパノラマ画像生成処理は、パンしながら連写した複数の画像、つまり撮像位置を水平方向に順次ずらして撮像された複数の画像から１枚のパノラマ画像を生成する処理である。このパノラマ画像の生成処理の詳細については、後述する。
【００２４】
デジタル信号処理部１１４は、処理後の画像データを、表示部１１７および記録再生部１１５に転送する。記録再生部１１５は、主にフラッシュメモリからなる着脱自在な記録媒体１１６に、ユーザのシャッター操作に対応した静止画像データを書き込み、あるいは、この記録媒体から静止画像データを読み出す。表示部１１７は、例えば、デジタルカメラ１００の筐体背面等に設けられるＬＣＤ（Liquid Crystal Display）等の表示パネルで構成される。この表示部１１７は、撮影した画像、記録再生部１１５で記録媒体１１６から読み出した画像、さらには、ユーザに対する各種情報等を表示する。
【００２５】
次に、図１に示すデジタルカメラ１００の動作について説明する。デジタルカメラ１００は、記録モード時には、以下の動作をする。撮像部１１１で撮像処理が行われて得られた撮像画像信号は、撮像信号処理部１１２に供給され、サンプルホールドおよび利得制御等の処理が行われる。そして、撮像信号処理部１１２から出力される撮像画像信号は、Ａ／Ｄ変換部１１３でアナログ信号からデジタル信号に変換されて、デジタル信号処理部１１４に供給される。デジタル信号処理部１１４では、Ａ／Ｄ変換部１１３から供給される撮像画像信号に対して、ホワイトバランス処理、ガンマ補正処理などの画像信号処理が行われる。
【００２６】
デジタル信号処理部１１４で処理されて得られた画像データは、表示部１１７に転送される。これにより、表示部１１７には撮像画像が表示され、モニタリング状態となる。このモニタリング状態において、ユーザがユーザ操作部１０４でシャッター操作を行うと、ＣＰＵ１０１によりデジタル信号処理部１１４および記録再生部１１５が制御され、記録媒体１１６にシャッター操作に対応した静止画像データが書き込まれる。この場合、パンしながら、つまり撮像位置を水平方向に順次ずらしながら、ユーザがシャッター操作を行うことで、パノラマ画像の生成に使用される複数の画像の静止画像データが、記録媒体１１６に書き込まれる。
【００２７】
また、デジタルカメラ１００は、再生モード時には、以下の動作をする。すなわち、記録再生部１１５では、記録媒体１１６から、ユーザのユーザ操作部１０４の操作によって選択された静止画像データが読み出される。この静止画像データは、記録再生部１１５からデジタル信号処理部１１４を介して表示部１１７に供給される。これにより、表示部１１７には、再生画像が表示される。
【００２８】
［パノラマ画像の生成処理］
次に、パノラマ画像の生成処理について説明する。パノラマ画像は、ＣＰＵ１０１の制御の下、デジタル信号処理部１１４内のパノラマ画像生成部１２０において生成される。図２のフローチャートは、パノラマ画像生成部１２０におけるパノラマ画像の生成処理の処理手順を示している。
【００２９】
ユーザがユーザ操作部１０４を操作してパノラマ画像の生成を指示すると、パノラマ画像生成部１２０は、ステップＳＴ１において、パノラマ画像の生成処理を開始する。なお、ユーザは、パノラマ画像の生成を指示する際に、パノラマ画像の生成に使用される複数の画像を、例えば記録媒体１１６に記録されている静止画像データファイルを選択する等して指定する。
【００３０】
次に、パノラマ画像生成部１２０は、ステップＳＴ２において、パノラマ画像の生成に使用される複数の画像を入力する。この場合、パノラマ画像生成部１２０は、記録再生部１１５を通じて、記録媒体１１６から当該複数の画像の静止画像データを読み出し、図示しない、例えば、ＳＤＲＡＭ等の半導体メモリで構成されるメモリ部に一時的に格納する。
【００３１】
次に、パノラマ画像生成部１２０は、ステップＳＴ３において、複数の画像の位置合わせを行う。この場合、パノラマ画像生成部１２０は、画像同士の相関を見ることで、位置合わせを行う。画像同士の相関を見る手法としては、詳細説明は書略するが、従来周知のブロックマッチング法等の手法がある。
【００３２】
図３は、複数の画像の位置合わせの処理により、それらの位置が確定した状態を示している。この例は、上述の図２０に示す５枚の画像Ｐ１〜Ｐ５に対して位置合わせを行った場合について示している。位置合わせの処理により、画像Ｐ１〜Ｐ５の左下の位置（Ｘ０，Ｙ０）〜（Ｘ４，Ｙ４）が確定される。なお、ここでは、横軸をＸ軸、縦軸をＹ軸、画像Ｐ１の左下の位置（Ｘ０，Ｙ０）を原点（０，０）としている。また、画像間の位置関係は、平行移動成分のみであり、回転成分はないものとする。
【００３３】
次に、パノラマ画像生成部１２０は、ステップＳＴ４において、出力画像領域、すなわち、複数の画像のうちパノラマ画像として切り出すべき切り出し領域の確定を行う。この場合、切り出し領域として、例えば、図４に斜線を付して示す領域ＡＲのように、矩形領域の確定が行われる。この実施の形態においては、この矩形領域は、高さ方向が最大となるように自動的に決定される。切り出し領域の確定処理の詳細については後述する。
【００３４】
次に、パノラマ画像生成部１２０は、ステップＳＴ５において、複数の画像から切り出し領域の画像を切り出すために、ステップＳＴ４で確定された切り出し領域（図４の切り出し領域ＡＲ参照）の各位置における画素の値を決定する。この場合、切り出し領域において注目している位置と同じ位置にある、各画像の画素の値が、該注目位置における画素の値とされる。なお、注目位置に複数の画像の画素が対応しているときには、いずれかの画像の画素の値が用いられるか、あるいは、複数の画像の画素の値の平均値が用いられる。
【００３５】
次に、パノラマ画像生成部１２０は、ステップＳＴ６において、ステップＳＴ５で画素値が確定された切り出し領域の画像を、出力画像（パノラマ画像）として出力する。この場合、パノラマ画像生成部１２０は、この出力画像の静止画像データを、記録再生部１１５を通じて、記録媒体１１６に書き込む。なお、この場合、この出力画像の静止画像データは表示部１１７に供給され、表示部１１７に、生成されたパノラマ画像が表示される。これにより、ユーザは、生成されたパノラマ画像の確認が可能となる。
【００３６】
パノラマ画像生成部１２０は、ステップＳＴ６の処理の後、ステップＳＴ７において、
パノラマ画像を生成する一連の処理を終了する。
【００３７】
［切り出し領域の確定処理］
次に、上述のパノラマ画像生成部１２０における切り出し領域の確定処理の詳細を説明する。パノラマ画像の場合には、幅よりも高さ方向が重要である。そのため、パノラマ画像生成部１２０では、上述したように、切り出し領域として、高さ方向が最大となる矩形領域を確定することが行われる。
【００３８】
図５には、各画像Ｐ１〜Ｐ５の左下および右下の頂点を白四角で、左上および右上の頂点を黒四角で示している。これら点の位置は、上述の図２のステップＳＴ３の複数の画像の位置合わせ処理により各画像Ｐ１〜Ｐ５の左下の位置（Ｘ０，Ｙ０）〜（Ｘ４，Ｙ４）が確定されることで、確定される。例えば、画像Ｐ１の各頂点の位置は、以下のように確定される（図５参照）。ここで、画像の水平画素幅をｗｈ、垂直画素幅をｗｖとする。
【００３９】
画像Ｐ１の左下の頂点の位置は（Ｘ０，Ｙ０）となる。また、画像Ｐ１の左上の頂点の位置は（Ｘ０，Ｙ０＋ｗｖ）となる。また、画像Ｐ１の右下の頂点の位置は（Ｘ０＋ｗｈ，Ｙ０）となる。さらに、画像Ｐ１の右上の頂点の位置は（Ｘ０＋ｗｈ，Ｙ０＋ｗｖ）となる。画像Ｐ２〜Ｐ５の各頂点の位置についても、同様に確定される。
【００４０】
高さ方向が最大となる矩形領域を選ぶということは、白四角よりも上側で、かつ、黒四角よりも下側に存在する矩形領域の中で、高さが最大となる矩形領域を選ぶという問題と同等である。この問題を一般化すると、図６に示すように、与えられた点群８００（白四角）よりも上側で、かつ、与えられた点群８０１（黒四角）よりも下側に存在する矩形領域の中で高さ（Ｈ）が最大となる矩形領域を選ぶという問題になる。なお、図６においては、矩形領域の底辺（左下頂点と右下頂点を結ぶ辺）を実線で、矩形領域の上辺（左上頂点と右上頂点を結ぶ辺）を一点鎖線で示している。
【００４１】
この問題を、図７を用いて、さらに正確に述べる。すなわち、２次元（Ｘ，Ｙ）平面上に、第１の点群８００（図７の白四角で表示）と、第２の点群８０１（図７の黒四角で表示）が与えられているとする。第１の点群８００よりも上側で、かつ、第２の点群８０１よりも下側に存在する矩形領域の中で高さＨが最大となる矩形領域（図７の９００）を選ぶには、どのようにすればよいか、という問題である。
【００４２】
もちろん、以下の第１の条件および第２の条件の下においてである。第１の条件は、第１の点群８００（図７の白四角で表示）の中の一番左側の点（Ｘ座標の値が一番小さい点）を含み、かつ、Ｙ軸に平行な直線（図７の９０１）よりも矩形領域は右側に存在すること、である。第２の条件は、第１の点群８００（図７の白四角で表示）の中の一番右側の点（Ｘ座標の値が一番大きい点）を含み、かつ、Ｙ軸に平行な直線（図９の９０２）よりも矩形領域は左側に存在する、ということである。
【００４３】
なお、各画像の左辺および右辺はＹ軸に並行であるので、第１の点群８００の中の一番左側の点を第２の点群８０１の中の一番左側の点と置き換え、第１の点群８００の中の一番右側の点を第２の点群８０１の中の一番右側の点と置き換えても同じである。
【００４４】
また、矩形領域を求めるということは、図７に示したように、矩形領域の左下の頂点の位置（すなわち、切り出し領域オフセットベクトル）（Xos,Yos）、切り出し領域の傾き角度Ｓ、切り出し領域の幅Ｗ、切り出し領域の高さＨを求めるということである。ここで、幅Ｗとは、左下頂点と右下頂点の距離（底辺の長さ）、または、左上頂点と右上頂点の距離（上辺の長さ）である。高さＨとは、左下頂点と左上頂点の距離（左辺の長さ）、または、右下頂点と右上頂点の距離（右辺の長さ）である。傾き角度Ｓとは、Ｘ軸と底辺（または上辺）なす角度であり、底辺がＸ軸と平行であれば０度、底辺が右下がりの場合にはマイナス、底辺が右上がりであればプラスとなる。図７では、傾き角度Ｓがマイナスの例を示している。
【００４５】
［切り出し領域の確定処理で使用する法則］
ここで、切り出し領域の確定処理の処理手順を説明する前に、今回発見した重要な法則について説明する。
【００４６】
角度Ｓ’をある任意の値に決める。ただし、−９０度＜Ｓ’＜９０度とする。このとき、２次元ＸＹ空間上に与えられた第２の点群の中の１点と接し（１点を含み）、角度がＳ’である直線の中で一番Ｙ軸切片の値が小さいものを求める。このときの第２の点群の中のその点をＰｂ、その直線をＬｂ、Ｙ軸切片の値をＹｂとする。さらに、その２次元ＸＹ空間上に与えられた第１の点群の中の１点と接し（１点を含み）、角度がＳ’である直線の中で一番Ｙ軸切片の値が大きいものを求める。このときの第１の点群の中のその点をＰａ、その直線をＬａ、Ｙ軸切片の値をＹａとする。
【００４７】
直線Ｌａと直線Ｌｂの「方向を加味した距離」をＨ（Ｓ’）とする。ただし、「方向を加味した距離」とは、Ｙａ≦Ｙｂの場合は、２直線ＬａとＬｂのユークリッド距離（０または正の値）と定義し、Ｙａ＞Ｙｂの場合は、２直線ＬａとＬｂのユークリッド距離を（−１）倍した値（負の値）と定義する。ＨはＳ’に依存するので明示的にＨ（Ｓ’）と記す。Ｐａを始点、Ｐｂを終点とするベクトルの方向とＸ軸のなす角度をＰ（Ｐの取りうる範囲は−１８０度＜Ｐ≦１８０度）とする。
【００４８】
例えば、図８に示すように、Ｐａを始点、Ｐｂを終点とするベクトルＢabがＸ軸の正の方向である場合にはＰ＝０度、このベクトルＢabがＹ軸の正の方向である場合にはＰ＝９0度、このベクトルＢabがＹ軸の負の方向である場合にはＰ＝−９０度である。また、ＰａとＰｂが一致する場合は、このベクトルＢabはゼロベクトルとなるが、便宜的にＰ＝−９０度とする。
【００４９】
「法則１」：
Ｐ＝−９０度の場合には、任意のＳ”（−９０度＜Ｓ”＜９０度）について、Ｈ（Ｓ”）≦０である。
「法則２」：
−９０度＜Ｐ＜（Ｓ’＋９０）度の場合には、Ｓ’＜Ｓ”となる任意のＳ”（−９０度＜Ｓ”＜９０度）に対して、Ｈ（Ｓ”）＜Ｈ（Ｓ’）である。
「法則３」：
Ｐ＝Ｓ’＋９０度の場合には、任意のＳ”（−９０度＜Ｓ”＜９０度）について、Ｈ（Ｓ”）≦Ｈ（Ｓ’）である。
「法則４」：
「−１８０度＜Ｐ＜−９０度」あるいは「（Ｓ’＋９０）度＜Ｐ≦１８０度」の場合には、Ｓ”＜Ｓ’となる任意のＳ”（−９０度＜Ｓ”＜９０度）に対して、Ｈ（Ｓ”）＜Ｈ（Ｓ’）である。
【００５０】
これらの法則が成立することを、図９〜図１１を用いて説明する。図９は、法則１の場合の例を示している。０度＜Ｓ’＜９０度で、かつ、Ｐ＝−９０度の場合である。この場合、直線ＬａおよびＬｂの傾き角度Ｓ’に依らずに、Ｈ（Ｓ’）が負になることは明らかである。図１０は、法則２の場合の例を示している。０度＜Ｓ’＜９０度で、かつ、Ｓ’＜Ｐ＜（Ｓ’＋９０）度の場合である。この場合、直線ＬａおよびＬｂの傾き角度Ｓ’を大きくすれば、Ｈ（Ｓ’）が小さくなることは明らかである。
【００５１】
図１１は、法則３の場合の例を示している。０度＜Ｓ’＜９０度で、かつ、Ｐ＝（Ｓ’＋９０）度の場合である。この場合、直線ＬａおよびＬｂの傾き角度Ｓ’を大きくあるいは小さくすれば、Ｈ（Ｓ’）が小さくなることは明らかである。図１２は、法則４の場合の例を示している。０度＜Ｓ’＜９０度で、かつ、（Ｓ’＋９０）度＜Ｐ≦１８０度の場合である。この場合、直線ＬａおよびＬｂの傾き角度Ｓ’を小さくすれば、Ｈ（Ｓ’）が小さくなることは明らかである。
【００５２】
他の場合も、同様に考えれば、上述の法則１〜４が成立していることは明らかである。
なお、今回解こうとしている問題において、「Ｘ軸と底辺のなす角度はＳ’」という限定条件を付ければ、上述のＬａおよびＬｂが、それぞれ、求める矩形領域の底辺と上辺になっていることは明らかである。
【００５３】
［切り出し領域の確定処理の処理手順］
パノラマ画像生成部１２０における切り出し領域の確定処理（図２のステップＳＴ４の処理）の処理手順を説明する。図１３〜図１５のフローチャートは、その処理手順を示している。
【００５４】
パノラマ画像生成部１２０は、ステップＳＴ１１において、処理を開始する。そして、パノラマ画像生成部１２０は、ステップＳＴ１２において、入力画像、つまりパノラマ画像の生成に使用される複数の画像の４隅の位置情報を入力する。この複数の画像の四隅の位置情報は、上述したように、複数の画像の位置合わせにより、各画像の位置が確定されるとき、同時に確定されている（図２のステップＳＴ３）。
【００５５】
次に、パノラマ画像生成部１２０は、ステップＳＴ１３において、考慮すべき傾き角度の設定を行う。通常、ユーザは傾けて撮影することはないので、傾き角度は、±６０度の範囲を考えれば十分である。ステップＳＴ１３においては、ｍｉｎＳ＝−６０度、ｍａｘＳ＝６０度とされる。このｍｉｎＳとｍａｘＳは、切り出し領域（矩形領域）の高さを最大とするためのその傾き角度の探索範囲であり、以降の処理で更新されて、狭まっていく。
【００５６】
パノラマ画像生成部１２０は、ステップＳＴ１３の処理の後、ステップＳＴ１４〜ステップＳＴ１７の繰り返し処理に移る。パノラマ画像生成部１２０は、ステップＳＴ１４〜ステップＳＴ１７の処理を所定回数、この実施の形態においては１０回だけ繰り返し、その後に、ステップＳＴ１８の処理に移る。後述するように、１回の処理で、傾き角度の探索範囲（ｍｉｎＳ以上、ｍａｘＳ以下の範囲）が半分に狭められるので、１０回の繰り返しにより、切り出し領域（矩形領域）の高さを最大とするためのその傾き角度は、以下の精度で求まる。精度を上げたい場合には、繰り返し処理の回数を増やせばよい。
【００５７】
｛（ステップＳＴ１３で設定されたｍａｘＳ）−（ステップＳＴ１３で設定されたｍｉｎＳ）｝÷（２の１０乗）＝（１２０÷１０２４）度
【００５８】
パノラマ画像生成部１２０は、ステップＳＴ１４において、現在探索範囲として指定されている範囲の中央の値｛（ｍａｘＳ＋ｍｉｎＳ）÷２｝を調査するために、Ｓ’＝（ｍａxS＋ｍｉｎＳ）÷２とする。そして、パノラマ画像生成部１２０は、ステップＳＴ１５の処理に移る。
【００５９】
このステップＳＴ１５において、パノラマ画像生成部１２０は、第２の点群（各入力画像の左上の頂点および右上の頂点の集合）の中の１点と接し（１点を含み）、傾き角度がＳ’である直線の中で一番Ｙ軸切片の値が小さいものを求める。具体的には、パノラマ画像生成部１２０は、第２の点群のすべての点において、その点を通り傾き角度Ｓ’の直線を求め、Ｙ軸切片の値を計算する。そして、パノラマ画像生成部１２０は、これらＹ軸切片の値の中で一番小さいものを求めればよい。このときの点群の中のその点をＰｂ、Ｙ軸切片の値をＹｂとする。そして、パノラマ画像生成部１２０は、ステップＳＴ１６の処理に移る。
【００６０】
このステップＳＴ１６において、パノラマ画像生成部１２０は、第１の点群（各入力画像の左下の頂点および右下の頂点の集合）の中の１点と接し（１点を含み）、角度がＳ’である直線の中で一番Ｙ軸切片の値が大きいものを求める。具体的には、パノラマ画像生成部１２０は、第１の点群のすべての点において、その点を通り角度Ｓ’の直線を求め、Ｙ軸切片の値を計算する。そして、パノラマ画像生成部１２０は、これらＹ軸切片の値の中で一番大きいものを求めればよい。このときの点群の中のその点をＰａ、Ｙ軸切片の値をＹａとする。そして、パノラマ画像生成部１２０は、ステップＳＴ１７に進む。上述のステップＳＴ１５およびステップＳＴ１６の処理により、角度Ｓ’を有する帯状領域のうち、第１の点群よりも上側に存在し、かつ第２の点群よりも下側に存在するという条件を満たす最大の高さを有する帯状領域が選択される。
【００６１】
パノラマ画像生成部１２０は、ステップＳＴ１７において、Ｐａを始点、Ｐｂを終点とするベクトルの方向（Ｘ軸となす角度Ｐ）が、−９０≦Ｐ≦Ｓ’＋９０の範囲内にある場合には、ｍａｘＳ＝Ｓ’とする。それ以外（すなわち、−１８０＜Ｐ＜−９０またはＳ’＋９０＜Ｐ≦１８０）であれば、ｍｉｎＳ＝Ｓ’とする。これにより、ｍａｘＳまたはｍｉｎＳのいずれかが更新され、次に探索する範囲は半分になる。
【００６２】
パノラマ画像生成部１２０は、ステップＳＴ１７の処理の後、ステップＳＴ１４〜ステップＳＴ１７の一連の処理が規定の回数である１０回行われた場合には、ステップＳＴ１８に進み、規定回数未満であれば、ステップＳＴ１４に戻る。上述のステップＳＴ１７およびステップＳＴ１４の処理により、ステップＳＴ１５およびステップＳＴ１６の処理で選択された帯状領域と接する第１の点群の中の第１の点Ｐａ、この帯状領域と接する第２の点群の中の第２の点Ｐｂ、および角度Ｓ’に基づいて、この角度Ｓ’の新たな候補が選択される。ステップＳＴ１５およびステップＳＴ１６による帯状領域の選択およびステップＳＴ１７およびステップＳＴ１４による角度Ｓ’の新たな候補の選択が繰り返えされることにより、第１の点群よりも上側に存在し、かつ第２の点群よりも下側に存在するという条件を満たす高さ方向が最大の帯状領域が決定される。
【００６３】
さて、パノラマ画像生成部１２０は、ステップＳＴ１７で探索範囲を狭めているが、この狭め方の妥当性は、先に述べた法則から明らかである。すなわち、Ｐが「法則２」に当てはまる場合には、Ｓ’よりも大きい値を探索することは無意味であるので、ｍａｘＳ＝Ｓ’とすることで、以降ではＳ’よりも大きい値は探索範囲から除外している。同様に、Ｐが「法則４」に当てはまる場合には、Ｓ’よりも小さい値を探索することは無意味であるので、ｍｉｎＳ＝Ｓ’とすることで、以降ではＳ’よりも小さい値は探索範囲から除外している。
【００６４】
また、Ｐが「法則１」に当てはまる場合（Ｐ＝−９０度）には、切り出し領域（矩形領域）の傾き角度をどのように設定しても、Ｈ（Ｓ’）が正とはならないので、切り出し領域（矩形領域）は求まらないことになる（与えられた問題の解は存在しない）。Ｐ＝−９０度のときは、例外処理をしてもよい。しかし、この実施の形態においては、処理の一貫性のため、とりあえず、ｍａｘＳ＝Ｓ’として、ステップＳＴ１４〜ステップＳＴ１７の繰り返し処理を規定回数行わせ、その後で、「切り出し領域（矩形領域）は求まらない」という判定をさせることにしている。
【００６５】
また、Ｐが「法則３」に当てはまる場合（Ｐ＝（Ｓ’＋９０）度）には、現在のＳ’の時にＨ（Ｓ’）が最大となるので、求めるべき傾き角度は現在のＳ’である。この時点で求めるべき傾き角度は求まっている。しかし、この実施の形態においては、処理の一貫性のため、とりあえず、ｍａｘＳ＝Ｓ’として、ステップＳＴ１４〜ステップＳＴ１７の繰り返し処理を規定回数行わせている。
【００６６】
ステップＳＴ１８に到達した時点で、探索範囲は十分に狭められており、求める傾き角度は、この時点におけるｍｉｎＳとｍａｘＳの間にある。そこで、Ｓ＝（ｍｉｎＳ＋ｍａｘＳ）÷２とすれば、Ｓは、十分な精度で、求めるべき傾き角度を表現している。パノラマ画像生成部１２０は、ステップＳＴ１８において、Ｓ＝（ｍｉｎＳ＋ｍａｘＳS）÷２として、第１の点群よりも上側に存在し、かつ第２の点群よりも下側に存在するという条件を満たす最大の高さを有する帯状領域、従って切り出し領域の傾き角度Ｓを決定する。
【００６７】
次に、パノラマ画像生成部１２０は、ステップＳＴ１９において、ＹａとＹｂの値を評価する。Ｙａは求める矩形領域の底辺を含む直線のＹ軸切片であり、Ｙｂは求める矩形領域の上辺を含む直線のＹ軸切片である。したがって、Ｙｂ＞Ｙａでない限り、矩形領域は存在しない（与えられた問題の解は存在しない）。そこで、パノラマ画像生成部１２０は、ステップＳＴ１９において、Ｙｂ≦Ｙａであるか否かを判定する。
【００６８】
Ｙｂ≦Ｙａであるとき、パノラマ画像生成部１２０は、ステップＳＴ２０の処理に移る。このステップＳＴ２０において、パノラマ画像生成部１２０は、矩形領域は存在しないので、矩形領域を切り出すことは不可能であるとして、切り出し領域の確定処理を強制終了する。そして、パノラマ画像生成部１２０は、ステップＳＴ２９において、一連の処理を終了する。
【００６９】
一方、ステップＳＴ１９でＹｂ≦Ｙａでないとき、つまりＹｂ＞Ｙａであるとき、パノラマ画像生成部１２０は、矩形領域を切り出すことは可能であるとして、ステップＳＴ２１の処理に移る。ここで、求める矩形領域の傾き角度Ｓが０度以上である場合と、０度未満である場合とでは、処理内容が違う。そこで、パノラマ画像生成部１２０は、ステップＳＴ２１において、０≦Ｓである否か判定する。
【００７０】
０≦Ｓでないとき、つまり０＞Ｓであるとき、パノラマ画像生成部１２０は、ステップＳＴ２２の処理に進む。この場合、傾き角度Ｓは負であるので、求める矩形領域ＡＲは、図１６に示すような状態にある。図中で、一点鎖線は複数の入力画像の左端の中で一番左側にあるものを示し、二点鎖線は複数の入力画像の右端の中で一番右側にあるものを示している。一点鎖線と二点鎖線で囲まれた、傾き角度Ｓの最大矩形領域が、求めるべき矩形領域ＡＲである。
【００７１】
パノラマ画像生成部１２０は、ステップＳＴ２２において、「第１の点群の中でＸ座標の値が一番小さい点を含み、かつ、Ｙ軸に平行な直線」と、「Ｙ軸切片の値がＹａで、かつ、Ｘ軸との傾き角度がＳである直線」との交点を求める。この交点を、図１６に示すように、（Ｘa0，Ｙa0）とする。そして、パノラマ画像生成部１２０は、ステップＳＴ２３の処理に移る。
【００７２】
このステップＳＴ２３において、パノラマ画像生成部１２０は、「第１の点群の中でＸ座標の値が一番大きい点を含み、かつ、Ｙ軸に平行な直線」と、「Ｙ軸切片の値がＹｂで、かつ、Ｘ軸との傾き角度がＳである直線」との交点を求める。この交点を、図１６に示すように、（Ｘa1，Ｙa1）とする。そして、パノラマ画像生成部１２０は、ステップＳＴ２４の処理に移る。
【００７３】
このステップＳＴ２４において、パノラマ画像生成部１２０は、（Ｘa0，Ｙa0）を左下頂点、（Ｘa1，Ｙa1）を右上頂点とし、底辺のＸ軸との傾き角度がＳとなる矩形領域を求める。この矩形領域が、求める矩形領域ＡＲである。パノラマ画像生成部１２０は、ステップＳＴ２４の処理の後、ステップＳＴ２８の処理に移る。
【００７４】
また、ステップＳＴ２１で０≦Ｓであるとき、パノラマ画像生成部１２０は、ステップＳＴ２５の処理に進む。この場合、傾き角度Ｓは０または正であるので、求める矩形領域ＡＲは、図１７に示すような状態にある。図中で、一点鎖線は複数の入力画像の左端の中で一番左側にあるものを示し、二点鎖線は複数の入力画像の右端の中で一番右側にあるものを示している。一点鎖線と二点鎖線で囲まれた、傾き角度Ｓの最大矩形領域が、求めるべき矩形領域ＡＲである。
【００７５】
パノラマ画像生成部１２０は、ステップＳＴ２５において、「第１の点群の中でＸ座標の値が一番小さい点を含み、かつ、Ｙ軸に平行な直線」と、「Ｙ軸切片の値がＹｂで、かつ、Ｘ軸との傾き角度がＳである直線」との交点を求める。この交点を、図１７に示すように、（Ｘa2，Ｙa2）とする。そして、パノラマ画像生成部１２０は、ステップＳＴ２６の処理に移る。
【００７６】
このステップＳＴ２６において、パノラマ画像生成部１２０は、「第１の点群の中でＸ座標の値が一番大きい点を含み、かつ、Ｙ軸に平行な直線」と、「Ｙ軸切片の値がＹａで、かつ、Ｘ軸との傾き角度がＳである直線」との交点を求める。この交点を、図１７に示すように、（Ｘa3，Ｙa3）とする。そして、パノラマ画像生成部１２０は、ステップＳＴ２７の処理に移る。
【００７７】
このステップＳＴ２７において、パノラマ画像生成部１２０は、（Ｘa2，Ｙa2）を左上頂点、（Ｘa3，Ｙa3）を右下頂点とし、底辺のＸ軸との傾き角度がＳとなる矩形領域を求める。この矩形領域が、求める矩形領域ＡＲである。パノラマ画像生成部１２０は、ステップＳＴ２７の処理の後、ステップＳＴ２８の処理に移る。
【００７８】
ステップＳＴ２８に到達した時点で、切り出し領域として求める矩形領域ＡＲが求まっている。そこで、このステップＳＴ２８において、パノラマ画像生成部１２０は、この矩形領域ＡＲの情報を出力する。
【００７９】
すなわち、パノラマ画像生成部１２０は、Ｓを切り出し領域の傾き角度として出力し、求まった矩形領域の左下頂点の座標を切り出し領域オフセットベクトル（Ｘｏｓ，Ｙｏｓ）として出力する。また、パノラマ画像生成部１２０は、求まった矩形領域の幅（底辺の長さ）を、切り出し領域の幅Ｗとして出力し、求まった矩形領域の高さ（左辺の長さ）を、切り出し領域の高さＨとして出力する。
【００８０】
パノラマ画像生成部１２０は、ステップＳＴ２８の処理の後、ステップＳＴ２９において、一連の処理を終了する。
【００８１】
以上説明したように、図１に示すデジタルカメラ１００において、デジタル信号処理部１１４のパノラマ画像生成部１２０では、複数の画像からパノラマ画像として切り出すべき切り出し領域（矩形領域）は、以下のように自動的に決定される。すなわち、パノラマ画像生成部１２０では、第１の点群（複数の画像の左下位置および右下位置）よりも上側に存在し、かつ第２の点群（複数の画像の左上位置および右上位置）よりも下側に存在するという条件を満たす高さが最大の矩形領域に決定される。
【００８２】
したがって、パノラマ画像生成部１２０では、複数の画像から高さが最大の矩形領域が切り出されてパノラマ画像が生成されるために、常に良好なパノラマ画像を得ることができる。また、その場合、切り出し領域は自動的に決定されるため、ユーザが手作業で行っていた場合のように時間がかかり過ぎるということもなく、短時間でパノラマ画像を得ることができる。
【００８３】
＜２．変形例＞
なお、上述実施の形態においては、ＣＰＵ１０１の制御の下、デジタルカメラ１００のデジタル信号処理部１１４内のパノラマ画像生成部１２０で複数の画像からパノラマ画像が生成される例を示した。しかし、デジタルカメラで撮像された複数の画像を、コンピュータ装置に送って、このコンピュータ装置内でパノラマ画像を生成することも可能である。この場合、詳細説明は省略するが、コンピュータ装置内でも、上述したパノラマ画像生成部１２０における処理と同様の処理により、切り出し領域（矩形領域）が自動的に決定されることで、パノラマ画像を良好に生成できる。
【００８４】
図１８は、パノラマ画像の生成に使用されるコンピュータ装置２００の構成例を示している。
【００８５】
このコンピュータ装置２００は、ＣＰＵ（Central Processing Unit）１１、メモリ１２、ディスプレイコントローラ１３、入力機器インターフェース１４、ネットワークインターフェース１５を有している。また、このコンピュータ装置２００は、外部機器インターフェース１６およびデジタルカメラインターフェース１８を有している。これらは、バス１７に接続されている。
【００８６】
ディスプレイ１９は、ディスプレイコントローラ１３を介してバス１７に接続されている。キーボード（ＫＢＤ）２０およびマウス２１は、入力機器インターフェース１４を介してバス１７に接続されている。また、ハードディスクドライブ（ＨＤＤ）２２およびメディアドライブ２３は、外部機器インターフェース１６を介してバス１７に接続されている。デジタルカメラは、デジタルカメラインターフェース１８を介してバス１７に接続されている。また、コンピュータ装置２００は、ネットワークインターフェース１５を介して、インターネット等のネットワークに接続される。
【００８７】
ＣＰＵ１１は、コンピュータ装置２００のメイン・コントローラである。このＣＰＵ１１は、オペレーティング・システム（ＯＳ）の制御下で、各種のアプリケーションを実行する。ＣＰＵ１１は、例えば、デジタルカメラから一度ハードディスクドライブ２２にダウンロードされた画像を処理するアプリケーション・プログラムを実行することができる。アプリケーション・プログラムの中には、上述したパノラマ画像生成処理を行う一連の処理プログラムがインプリメントされている。ＣＰＵ１１は、バス１７によって他の機器類と相互接続されている。
【００８８】
メモリ１２は、ＣＰＵ１１において実行されるプログラム・コードを格納し、また実行中の作業データを一時保管するために使用される記憶装置である。メモリ１２は、例えば、ＲＯＭなどの不揮発性メモリおよびＤＲＡＭなどの揮発性メモリの双方を含む構成とされている。
【００８９】
ディスプレイコントローラ１３は、ＣＰＵ１１が発行する描画命令を実際に処理するための専用コントローラである。ディスプレイコントローラ１３において処理された描画データは、例えばフレーム・バッファ（図示しない）に一旦書き込まれた後、ディスプレイ１９によって画面出力される。例えば、ハードディスクドライブ２２から読み出された画像はディスプレイ１９で画面表示されて、ユーザは見て楽しむことができる。
【００９０】
入力機器インターフェース１４は、キーボード２０やマウス２１などのユーザ入力機器をコンピュータ装置２００に接続するための装置である。ユーザは、キーボード２０やマウス２１を介して、画像を再生するためのコマンドなどを入力することができる。
【００９１】
ネットワーク・インターフェース１５は、Ｅｔｈｅｒｎｅｔ（登録商標）などの所定の通信プロトコルに従って、コンピュータ装置２００を、ＬＡＮ（Local Area Network）などの局所的ネットワーク、さらにはインターネットのような広域ネットワークに接続する。
【００９２】
ネットワーク上では、複数のホスト端末やサーバー（図示しない）がトランスペアレントな状態で接続され、分散コンピューティング環境が構築されている。ネットワーク上では、ソフトウェア・プログラムやデータ・コンテンツなどの配信サービスを行うことができる。例えば、他人が撮影した画像が保存されている他のサーバーから画像データを、ネットワーク経由でハードディスクドライブ２２へダウンロードすることができる。
【００９３】
デジタルカメラインターフェース１８は、デジタルカメラから供給される画像をシステム１８００内に取り込むための装置である。外部機器インターフェース１６は、ハードディスクドライブ２２、メディアドライブ２３などの外部装置を、コンピュータ装置２００に接続するための装置である。
【００９４】
ハードディスクドライブ２２は、従来周知のように、記憶担体としての磁気ディスクを固定的に搭載した外部記憶装置であり、記憶容量やデータ転送速度などの点で他の外部記憶装置よりも優れている。また、このハードディスクドライブ２２は、ランダムアクセスも可能である。ソフトウェア・プログラムを実行可能な状態でハードディスクドライブ２２上に置くことをプログラムのシステムへの「インストール」と呼ぶ。通常、ハードディスクドライブ２２には、ＣＰＵ１１が実行すべきオペレーティング・システムのプログラム・コードや、アプリケーション・プログラム、デバイス・ドライバなどが不揮発的に格納されている。例えば、上述したパノラマ画像生成処理を行う一連の処理プログラムを、ハードディスクドライブ２２上にインストールすることができる。
【００９５】
メディア・ドライブ２３は、ＣＤ（Compact Disc）、ＭＯ（Magneto-Optical disc）、ＤＶＤ（Digital VersatileDisc）などの可搬型メディアを装填して、そのデータ記録面にアクセスするための装置である。可搬型メディアは、主として、ソフトウェア・プログラムやデータ・ファイルなどをコンピュータ可読形式のデータとしてバックアップすることや、これらをシステム間で移動（すなわち販売・流通・配布を含む）する目的で使用される。画像の処理を行うためのアプリケーション・プログラムを、これら可搬型メディアを利用して複数の機器間で物理的に流通・配布することができる。
【００９６】
また、上述実施の形態において、第１の点群は撮像位置を水平方向に順次ずらして撮像された複数の画像の左下位置および右下位置により構成され、第２の点群はその複数の画像の左上位置および右上位置により構成される例を示した。つまり、上述の実施の形態では、第１の点群および第２の点群が並んで存在する第１の方向は垂直方向であり、切り出し領域としての矩形領域の傾き角度の基準となる第２の方向は水平方向であった。
【００９７】
しかし、第１の点群および第２の点群が並んで存在する第１の方向は垂直方向に限定されるものではない。例えば、この発明は、撮像位置を垂直方向に順次ずらして撮像された複数の画像からパノラマ画像を生成する場合にも適用できる。その場合には、第１の点群は複数の画像の左上位置および左下位置により構成され、第２の点群はその複数の画像の右上位置および右下位置により構成され、第１の点群および第２の点群が並んで存在する第１の方向は水平方向となる。
【産業上の利用可能性】
【００９８】
この発明は、第１の点群よりも上側に存在し、かつ第２の点群よりも下側に存在するという条件を満たす高さが最大の帯状領域を決定できるものであり、例えば、パンしながら連写した複数の画像から１枚のパノラマ画像を生成する際に適用できる。
【図面の簡単な説明】
【００９９】
【図１】この発明の実施の形態としてのデジタルカメラの構成例を示すブロック図である。
【図２】パノラマ画像生成部におけるパノラマ画像の生成処理の処理手順を示すフローチャートである。
【図３】複数の画像の位置合わせ処理により、それらの位置が確定した状態を示す図である。
【図４】複数の画像からパノラマ画像を生成する際に切り出し領域として確定される矩形領域の一例を示す図である。
【図５】パノラマ画像を生成する際に使用される複数の画像Ｐ１〜Ｐ５の左下および右下の頂点を白四角で、左上および右上の頂点を黒四角で示した図である。
【図６】高さ方向が最大となる矩形領域を選ぶということが、白四角よりも上側で、かつ、黒四角よりも下側に存在する矩形領域の中で、高さが最大となる矩形領域を選ぶという問題と同等であることを説明するための図である。
【図７】与えられた点群（白四角）よりも上側で、かつ、与えられた点群（黒四角）よりも下側に存在する矩形領域の中で高さ（Ｈ）が最大となる矩形領域を選ぶという問題を説明するための図である。
【図８】矩形領域と接する第１の点群の点Ｐａを始点、矩形領域と接する第２の点群の点Ｐｂを終点とするベクトルの方向とＸ軸のなす角度Ｐを説明するための図である。
【図９】法則１の場合の例（０度＜Ｓ’＜９０度で、かつ、Ｐ＝−９０度の場合）を示す図である。
【図１０】法則２の場合の例（０度＜Ｓ’＜９０度で、かつ、Ｓ’＜Ｐ＜（Ｓ’＋９０）度の場合）を示す図である。
【図１１】法則３の場合の例（０度＜Ｓ’＜９０度で、かつ、Ｐ＝（Ｓ’＋９０）度の場合）を示す図である。
【図１２】法則４の場合の例（０度＜Ｓ’＜９０度で、かつ、（Ｓ’＋９０）度＜Ｐ≦１８０度の場合）を示す図である。
【図１３】パノラマ画像生成部における切り出し領域の確定処理の処理手順を説明するためのフローチャート（１／３）である。
【図１４】パノラマ画像生成部における切り出し領域の確定処理の処理手順を説明するためのフローチャート（２／３）である。
【図１５】パノラマ画像生成部における切り出し領域の確定処理の処理手順を説明するためのフローチャート（３／３）である。
【図１６】傾き角度Ｓが負である場合に、求める矩形領域ＡＲの状態を示す図である。
【図１７】傾き角度Ｓが正である場合に、求める矩形領域ＡＲの状態を示す図である。
【図１８】パノラマ画像の生成に使用されるコンピュータ装置の構成例を示すブロック図である。
【図１９】建物Ｂ１〜Ｂ４が存在する風景の一例を示す図である。
【図２０】風景をパンしながら撮像して得られた複数の画像の一例を示す図である。
【図２１】複数の画像からパノラマ画像を生成するために、ユーザが指定した切り出し領域（矩形領域）の一例を示す図である
【図２２】複数の画像からパノラマ画像を生成するために、ユーザが指定した切り出し領域の他の例を示す図である。
【図２３】複数の画像から切り出されたパノラマ画像の一例を示す図である。
【図２４】複数の画像からパノラマ画像を生成するために、ユーザが指定した切り出し領域の他の例を示す図である。
【符号の説明】
【０１００】
１００・・・デジタルカメラ
１０１・・・ＣＰＵ
１０２・・・ＲＯＭ
１０３・・・ＲＡＭ
１０４・・・ユーザ操作部
１１１・・・撮像部
１１２・・・撮像信号処理部、
１１３・・・Ａ／Ｄ変換部
１１４・・・デジタル信号処理部
１１５・・・記録再生部
１１６・・・記録媒体
１１７・・・表示部
１２０・・・パノラマ画像生成部
２００・・・コンピュータ装置
８００・・・複数の画像の左下および右下の頂点からなる第１の点群
８０１・・・複数の画像の左上および右上の頂点からなる第２の点群
９００・・・第１の点群よりも上側で、かつ、第２の点群よりも下側に存在する矩形領域の中で高さＨが最大となる矩形領域
９０１・・・第１の点群の中の一番左側の点（Ｘ座標の値が一番小さい点）を含み、かつ、Ｙ軸に平行な直線
９０２・・・第１の点群の中の一番右側の点（Ｘ座標の値が一番大きい点）を含み、かつ、Ｙ軸に平行な直線
【図１】
2010146043.tif 000003
【図２】
2010146043.tif 000004
【図３】
2010146043.tif 000005
【図４】
2010146043.tif 000006
【図５】
2010146043.tif 000007
【図６】
2010146043.tif 000008
【図７】
2010146043.tif 000009
【図８】
2010146043.tif 000010
【図９】
2010146043.tif 000011
【図１０】
2010146043.tif 000012
【図１１】
2010146043.tif 000013
【図１２】
2010146043.tif 000014
【図１３】
2010146043.tif 000015
【図１４】
2010146043.tif 000016
【図１５】
2010146043.tif 000017
【図１６】
2010146043.tif 000018
【図１７】
2010146043.tif 000019
【図１８】
2010146043.tif 000020
【図１９】
2010146043.tif 000021
【図２０】
2010146043.tif 000022
【図２１】
2010146043.tif 000023
【図２２】
2010146043.tif 000024
【図２３】
2010146043.tif 000025
【図２４】
2010146043.tif 000026