(57)【要約】  ずれ量算出部は、順次入力されるフレーム画像と基準画像とのずれ量を算出する。例えば最初は、１番目のフレーム画像を最初の基準画像とし、２番目以降のフレーム画像と基準画像とのずれ量を算出する。そして、ずれ量が閾値（距離）を越えたときの入力フレーム画像を、パノラマ画像生成用画像として選択すると共に新たな基準画像とする。この処理を繰返すことで、複数のパノラマ画像生成用画像を選択して、これら選択画像を用いてパノラマ画像を生成する。
2008087721.tif 000002
【特許請求の範囲】
【請求項１】
動画像を用いてパノラマ画像を生成する画像合成装置であって、
第１の閾値を記憶する閾値記憶手段と、
前記動画像を構成する各フレーム画像を入力する毎に、該入力画像と基準画像とのずれ量を算出する第１のずれ量算出手段と、
前記算出したずれ量が前記第１の閾値を越えたときの前記入力画像を、合成用画像として選択する第１の画像選択手段と、
前記第１の画像選択手段が前記合成用画像を選択する毎に、該選択された合成用画像を新たな前記基準画像として記憶する基準画像更新手段と、
前記第１の画像選択手段が選択した各合成用画像を用いてパノラマ画像を生成する第１の画像合成手段と、
を有することを特徴とする画像合成装置。
【請求項２】
動画像を用いてパノラマ画像を生成する画像合成装置であって、
第１の閾値を記憶する閾値記憶手段と、
前記動画像を構成する各フレーム画像を入力する毎に、隣接する画像間のずれ量を算出する第２のずれ量算出手段と、
前記算出したずれ量を累積する累積ずれ量算出手段と、
前記累積ずれ量が前記第１の閾値を越えたときの前記入力画像を、合成用画像として選択する第２の画像選択手段と、
該第２の画像選択手段が選択した各合成用画像を用いてパノラマ画像を生成する第２の画像合成手段とを有し、
前記累積ずれ量算出手段は、前記第２の画像選択手段が前記合成用画像を選択する毎に、前記累積ずれ量をリセットすることを特徴とする画像合成装置。
【請求項３】
前記閾値記憶手段は、前記第１の閾値に代えて、所定の各方向毎に各々対応する複数種類の閾値を記憶し、
前記累積ずれ量算出手段が算出する累積ずれ量又は前記第１のずれ量算出手段が算出するずれ量に基づいて、前記動画像撮影の方向を判定し、該判定した方向に応じた閾値を前記閾値記憶手段から取得する方向判定手段を更に有し、
前記第１又は第２の画像選択手段は、該方向判定手段が取得した閾値を前記第１の閾値として用いて前記合成用画像の選択を行うことを特徴とする請求項１又は２記載の画像合成装置。
【請求項４】
前記第１のずれ量算出手段又は前記第２のずれ量算出手段による前記ずれ量算出は、前記各入力画像の縮小画像を用いておおまかなずれ量を算出するものであり、
前記第１又は第２の画像合成手段は、複数の前記合成用画像同士を合成することで前記パノラマ画像生成を行うものであり、該複数の合成用画像同士を合成する際には、隣合う合成用画像間の正確なずれ量を算出し、該算出した正確なずれ量を用いて該隣り合う合成用画像同士を合成することを特徴とする請求項１又は２記載の画像合成装置。
【請求項５】
前記入力画像と基準画像とのずれ量又は前記累積ずれ量が、前記第１の閾値を越えた場合、該入力画像の直前の入力画像を前記合成用画像として選択することを特徴とする請求項１又は２記載の画像合成装置。
【請求項６】
前記動画像の撮影開始直後からの初期処理として、第１番目の入力画像から順に隣接する画像間の異方向ずれ量を算出し、該異方向ずれ量が安定し始めたときの入力画像を、最初の前記合成用画像として選択・記憶することを特徴とする請求項２記載の画像合成装置。
【請求項７】
前記動画像の最初の画像又は最終画像は、無条件で前記合成用画像として選択することを特徴とする請求項１又は２記載の画像合成装置。
【請求項８】
前記第２の画像選択手段は、更に、前記ずれ量のベクトルの向きが９０度近く変化したときの前記入力画像を、前記合成用画像として選択することを特徴とする請求項２記載の画像合成装置。
【請求項９】
前記第２のずれ量算出手段が算出するずれ量のうち異方向ずれ量の値に応じて、前記閾値記憶手段に記憶されている第１の閾値の値を補正した補正閾値を算出して該算出した補正閾値を前記判定手段へ出力する閾値算出手段を更に有し、
該判定手段は前記閾値算出手段が算出した前記補正閾値を用いて前記判定を行うことを特徴とする請求項２記載の画像合成装置。
【請求項１０】
前記第１又は第２のずれ量算出手段は、更に、回転方向のずれ量を算出し、
前記閾値記憶手段は、更に、前記回転方向のずれ量に対応する第２の閾値を記憶し、
前記回転方向のずれ量に基づいて前記第２の閾値を補正する閾値補正手段を更に備え、
前記第１又は第２の画像選択手段は、更に、該閾値補正手段により補正された閾値を用いた合成用画像の選択を行うことを特徴とする請求項１又は２記載の画像合成装置。
【請求項１１】
前記第２のずれ量算出手段が算出する前記ずれ量を入力し、第１番目の入力画像から現在の入力画像までのずれ量の総和を求め、該ずれ量の総和が所定値に達したときに前記動画像の撮影を強制終了する撮影制御手段、
を更に有することを特徴とする請求項２記載の画像合成装置。
【請求項１２】
任意に指定される解像度とパノラマ角度と、予め設定されている１画像の画角とに基づいて、該指定された解像度とパノラマ角度とに応じた前記所定値を算出する所定値算出手段を更に有し、
前記撮影制御手段は該所定値算出手段が算出した所定値を用いることを特徴とする請求項１１記載の画像合成装置。
【請求項１３】
前記第１又は第２のずれ量算出手段が算出する前記ずれ量に基づいて隣接する画像間の撮影方向ずれ量を求め、該撮影方向ずれ量が０に成ったとき又は０に近い所定の閾値Ｓ未満になったときに、前記動画像の撮影を強制終了する撮影制御手段、
を更に有することを特徴とする請求項１又は２記載の画像合成装置。
【請求項１４】
前記第１又は第２のずれ量算出手段が算出する前記ずれ量に基づいて、撮影方向ずれ量が、正／負逆転し且つ予め設定される閾値Ｔを越える場合には、前記動画像の撮影を強制終了する撮影制御手段、
を更に有することを特徴とする請求項１又は２記載の画像合成装置。
【請求項１５】
前記閾値記憶手段には、更に、所定の各方向毎に各々対応して、フレームアウトに係わる許容値が記憶されており、
前記第１又は第２のずれ量算出手段が算出する前記ずれ量に基づいて異方向へのずれ量の総和を求め、異方向へのずれ量の総和が、該異方向に対応する前記許容値を越える場合には、前記動画像の撮影を強制終了する撮影制御手段、
を更に有することを特徴とする請求項３記載の画像合成装置。
【請求項１６】
前記第１の閾値は撮影方向に対応する閾値であり、前記閾値記憶手段は更に該撮影方向と直交する方向に対応する第２の閾値を記憶しており、
入力画像と最初の画像又は最初の基準画像との前記撮影方向と直交する方向へのずれ量を算出し、該算出したずれ量が前記第２の閾値を超える場合には報知を行う報知手段を更に有することを特徴とする請求項１又は２記載の画像合成装置。
【請求項１７】
前記第１の閾値は撮影方向に対応する閾値であり、前記閾値記憶手段は更に該撮影方向へのカメラの移動速度の上限又は下限に対応するずれ量である上限値又は下限値を記憶しており、
前記第２のずれ量算出手段が算出する前記隣接する画像間のずれ量、あるいは前記第１のずれ量算出手段が算出するずれ量に基づいて得られる隣接する画像間のずれ量が、上記下限値未満又は前記上限値以上となる場合には、報知を行う報知手段を更に有することを特徴とする請求項１又は２記載の画像合成装置。
【請求項１８】
前記第２のずれ量算出手段が算出する前記隣接する画像間のずれ量、あるいは前記第１のずれ量算出手段が算出するずれ量に基づいて得られる隣接する画像間のずれ量を、過去の所定数画像分保持する隣接画像間ずれ量保持手段と、
該過去の所定数画像分の隣接画像間ずれ量に基づいて閾値Ｖを算出する閾値算出手段と、
新たな入力画像に対して算出された前記隣接画像間ずれ量が前記閾値Ｖ以上である場合には、報知を行う報知手段を更に有することを特徴とする請求項１又は２記載の画像合成装置。
【請求項１９】
動画像を用いてパノラマ画像を生成するコンピュータに、
前記動画像を構成する各フレーム画像を入力する毎に、該入力画像と基準画像とのずれ量を算出する第１のずれ量算出機能と、
前記算出したずれ量が予め記憶されている閾値を越えたときの前記入力画像を、合成用画像として選択する第１の画像選択機能と、
前記第１の画像選択機能が前記合成用画像を選択する毎に、該選択された合成用画像を新たな前記基準画像として記憶する基準画像更新機能と、
前記第１の画像選択機能が選択した各合成用画像を用いてパノラマ画像を生成する第１の画像合成機能と、
を実現させる為のプログラム。
【請求項２０】
動画像を用いてパノラマ画像を生成する画像合成方法において、
前記動画像を構成する各フレーム画像を入力する毎に、該入力画像と基準画像とのずれ量を算出し、
前記算出したずれ量が予め記憶されている閾値を越えたときの前記入力画像を、合成用画像として選択し、
前記合成用画像を選択する毎に、該選択された合成用画像を新たな前記基準画像として記憶し、
前記選択された各合成用画像を用いてパノラマ画像を生成することを特徴とする画像合成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を合成してカメラの有する画素数より大きな静止画像を作成するパノラマ画像生成技術に関する。
【背景技術】
【０００２】
パノラマ化の概念は古く、銀塩写真の頃から航空写真などを重ね合わせて大判の画像を作成していた。デジカメ（ディジタルカメラ）でも同様に、静止画を１枚撮影し、その画像に一部分が重なるように２枚目を撮影し、さらにその一部分が重なるように３枚目を撮影し．．．と繰り返すことで、撮影した複数の静止画像に基づいてパノラマ画像を作成できる。【０００３】
このようなパノラマ画像作成機能は、現在、例えばNTT DoCoMo社製携帯電話F902iS等に搭載されている。しかし、任意の静止画像を撮影したあとに一部が重なるように位置合わせをして次の静止画像を撮影するのは、ユーザ操作としてはかなり難しい部類に入る。その為、カメラ等が撮影時にユーザに指示を出すことも提案されているが、それでも、正確に位置合わせして撮影することは難しいものである。【０００４】
そこで、従来、例えば特許文献１記載の発明のように、動画像を用いることで、ユーザが位置合わせを行うことなくパノラマ画像を生成することができる手法が提案されている。この従来技術では、ユーザは、位置合わせをすることなく、生成したいパノラマ画像の端から動画撮影を開始し、一方の端で動画撮影を終了するだけでよい。そして、撮影された動画像の各フレームを位置合わせした後に合成することでパノラマ画像を合成する。【０００５】
静止画を複数枚撮影する場合と比べ、動画像の場合、パノラマ撮影したい方向に体を動かすだけで連続シーンを撮影でき、画像間のずれ量もほぼ均一な為、上述した問題を解決できる。
【特許文献１】特開平１１−００４３９８号公報
【０００６】
上記特許文献１のように動画像を用いる手法では、動画像間の各フレームについて、フレーム間の動きベクトル（ずれ量）を算出し、ずれ量に合わせて合成することで、パノラマ画像を生成することができる。しかし、例えば１８０度のパノラマ画像を生成するために、３０fpsの動画像で３秒間撮影するとフレーム数は９０フレームになり、８９回のずれ量算出処理と合成処理が必要となる。つまり、位置合わせの為のユーザ操作は不要となるが、処理量が大幅に増大するという問題が発生する。【０００７】
本発明の課題は、動画像を用いてパノラマ画像を生成する技術において、動画像からパノラマ画像を作成する際、全フレームをパノラマ画像合成に用いるのではなく、特定のフレームのみを自動選択してパノラマ画像合成に用いることで、ユーザの位置合わせ操作無しに必要最低限のフレームからパノラマ画像を作成できるようにする画像合成装置、画像合成方法、プログラム等を提供することである。
【発明の開示】
【０００８】
本発明の画像合成装置は、動画像を用いてパノラマ画像を生成する画像合成装置であって、第１の閾値を記憶する閾値記憶手段と、前記動画像を構成する各フレーム画像を入力する毎に、該入力画像と基準画像とのずれ量を算出する第１のずれ量算出手段と、前記算出したずれ量が前記第１の閾値を越えたときの前記入力画像を、合成用画像として選択する第１の画像選択手段と、前記第１の画像選択手段が前記合成用画像を選択する毎に、該選択された合成用画像を新たな前記基準画像として記憶する基準画像更新手段と、前記第１の画像選択手段が選択した各合成用画像を用いてパノラマ画像を生成する第１の画像合成手段とを有する。
【０００９】
上記画像合成装置では、所定の閾値を用いることで、基準画像とのずれ量が所定値に達したフレーム画像を、パノラマ画像合成用の画像として選択すると共に、この選択した画像を新たな基準画像とすることで、順次、合成用画像を選択していく。この様にして適宜選択されたフレーム画像同士を合成することでパノラマ画像を生成するので、処理量が大幅に少なくて済み、高速にパノラマ画像を生成できる。勿論、動画像を用いるので、ユーザは、上記複数の静止画撮影の為の位置合わせ操作のような難易度の高い操作を行う必要なく、生成したパノラマ画像がおかしなものになる可能性も低くなる。
【００１０】
あるいは、本発明の画像合成装置は、動画像を用いてパノラマ画像を生成する画像合成装置であって、第１の閾値を記憶する閾値記憶手段と、前記動画像を構成する各フレーム画像を入力する毎に、隣接する画像間のずれ量を算出する第２のずれ量算出手段と、
前記算出したずれ量を累積する累積ずれ量算出手段と、前記累積ずれ量が前記第１の閾値を越えたときの前記入力画像を、合成用画像として選択する第２の画像選択手段と、
該第２の画像選択手段が選択した各合成用画像を用いてパノラマ画像を生成する第２の画像合成手段とを有し、前記累積ずれ量算出手段は、前記第２の画像選択手段が前記合成用画像を選択する毎に、前記累積ずれ量をリセットするように構成してもよい。
【００１１】
上記基準画像とのずれ量算出処理と同様の処理を実現する為に、隣接する画像間のずれ量を算出して、これを累積する処理を行う。隣接する画像間のずれ量算出処理の方が、より高速に処理を行える。
【００１２】
また、上記何れかの画像合成装置において、ユーザによる動画像撮影操作が不適切であることを検出すると、警告を発したり、撮影を強制終了することもできる。あるいは、自動的に適切な位置で撮影を終了させることもできる。また、撮影方向を自動的に判別して、撮影方向に応じた閾値を用いるようにすることもできる。また、合成用画像選択の為のずれ量算出処理は、フレーム画像の縮小画像を用いて行うことで、更に処理の高速化を図ることもできる。その他、より良好なパノラマ画像生成を実現させる為の、様々な補助機能を有することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施例の画像合成装置の機能ブロック図である。
【図２】第１の実施例の画像合成装置の処理フローチャート図である。
【図３】９０枚の合成処理でパノラマ画像を生成する例である。
【図４】４枚の合成処理のみでパノラマ画像を生成する例である。
【図５】第１の実施例の変形例の処理フローチャート図である。
【図６】第２の実施例の画像合成装置の機能ブロック図である。
【図７】第２の実施例の画像合成装置の処理フローチャート図である。
【図８】第３の実施例の画像合成装置の機能ブロック図である。
【図９】各向き毎に設定される画像合成距離の一例である。
【図１０】第３の実施例の画像合成装置の処理フローチャート図である。
【図１１】第４の実施例の画像合成装置の機能ブロック図である。
【図１２】第４の実施例の画像合成装置の処理フローチャート図である。
【図１３】第５の実施例の画像合成装置の機能ブロック図である。
【図１４】第５の実施例の画像合成装置の処理フローチャート図である。
【図１５】第６の実施例の画像合成装置の処理フローチャート図である。
【図１６】第７の実施例の画像合成装置の機能ブロック図である。
【図１７】第７の実施例の画像合成装置の処理フローチャート図である。
【図１８】第８の実施例の画像合成装置の機能ブロック図である。
【図１９】第８の実施例の画像合成装置の処理フローチャート図である。
【図２０】「かぎ型」にカメラを動かしたときのフレーム画像例である。
【図２１Ａ】撮影方向が異方向にずれていく例を示す図である。
【図２１Ｂ】撮影方向が異方向にずれていく例を示す図である。
【図２１Ｃ】撮影方向が異方向にずれていく例を示す図である。
【図２２】第９の実施例の画像合成装置の機能ブロック図である。
【図２３】第９の実施例の画像合成装置の処理フローチャート図である。
【図２４】距離算出部に設定されるデータの一例である。
【図２５】第１０の実施例の画像合成装置の機能ブロック図である。
【図２６】第１０の実施例の画像合成装置の処理フローチャート図である。
【図２７】距離保持部に記憶される設定データの一例である。
【図２８】ずれ量の総和について示す図である。
【図２９】第１１の実施例の画像合成装置の機能ブロック図である。
【図３０】第１１の実施例の画像合成装置の処理フローチャート図である。
【図３１】第１２の実施例の画像合成装置の処理フローチャート図である。
【図３２】第１３の実施例の画像合成装置の処理フローチャート図である。
【図３３】第１４の実施例の画像合成装置の処理フローチャート図である。
【図３４】第１５の実施例において予め登録されている設定データの一例である。
【図３５】第１５の実施例の画像合成装置の処理フローチャート図である。
【図３６】画像がフレームアウトする例である。
【図３７】第１６の実施例の画像合成装置の機能ブロック図である。
【図３８】第１６の実施例の画像合成装置の処理フローチャート図である。
【図３９】第１７の実施例の画像合成装置の機能ブロック図である。
【図４０】第１７の実施例の画像合成装置の処理フローチャート図である。
【図４１】第１８の実施例の画像合成装置の処理フローチャート図である。
【図４２】第１９の実施例の画像合成装置の処理フローチャート図である。
【図４３】画像合成装置を実現するコンピュータのハードウェア構成図である。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明の実施の形態について説明する。
尚、以下に説明する各実施例の画像合成装置は、例えば、ディジタルカメラ（但し、動画像撮影機能付き）やディジタルビデオカメラに搭載されている。この例に限らず、例えばノート型パソコン等に搭載されていてもよい（但し、撮影時にリアルタイムでパノラマ画像を生成する必要がある場合や、後述する撮影の強制終了や警告報知を行う形態では、画像撮影を行う機器（上記ディジタルカメラやディジタルビデオカメラ等）に搭載されている必要がある。従って、以下の説明では、画像合成装置は、ディジタルカメラやディジタルビデオカメラに搭載されているものとして説明する。【００１５】
図１は本発明の第１の実施例の画像合成装置の機能ブロック図であり、図２はその処理フローチャート図である。
図１に示す第１の実施例の画像合成装置１０は、基準画像保持部１１、ずれ量算出部１２、判定部１３、基準画像更新部１４、画像合成部１５、パノラマ画像保持部１６、及び距離保持部１７を有する。【００１６】
以下、図２のフローチャートも参照して、図１の各機能部による処理の一例について説明する。
まず、予め、ユーザ等が、上記ディジタルカメラの特定のボタン（不図示）を操作する等して、合成する画像間の向き（撮影方向；上下左右の何れか）と距離（画像合成距離）を設定する。但し、画像合成距離は、予めカメラメーカー側で設定しておいてもよい。また、向きについても、予めカメラメーカー側で設定しておいてもよい。【００１７】
画像合成距離は、例えば、撮影画像サイズの横幅の７５％（640x480画素の場合640x0.75=480画素）程度が１つの目安となる。すなわち、例えば、１フレームの横方向の画角が６０度のカメラで１８０度のパノラマ画像を生成する場合、フレームの幅をＦとし、重ね合わせの領域（以下、のりしろ領域と称する）の幅をフレームの幅の１／４とする場合、図４に示すように、のりしろ幅は１／４Ｆ、画像合成距離は３／４Ｆ（７５％）となる。ＶＧＡサイズの動画像でパノラマ生成する場合、横方向画素数は６４０画素なので、“画像合成距離＝640x0.75=480画素”となる。この設定内容は、距離保持部１７に保持される。上記の例では、メモリ上に向き「左から右」、距離「480画素」などの値を保持する。【００１８】
尚、画像合成距離は、後述する判定部１３による判定処理に用いる閾値である。
上記の通り、画像合成装置は、ディジタルカメラやディジタルビデオカメラに搭載されており、不図示の撮影装置によって撮影された動画像が、１フレームずつ（第１フレーム〜最終フレーム）、画像合成装置に入力される。【００１９】
画像合成装置１０は、動画撮影が開始されて第１フレームが入力されると、図２に示す処理を開始する。判定部１３は、基本的には後述するステップＳ４の判定を行い、判定結果としてＹＥＳ／ＮＯを基準画像更新部１４に対して出力するものであるが、処理開始直後は、判定部１３は無条件で判定結果「ＹＥＳ(基準画像更新)」を出力する。【００２０】
上記の通り１フレームずつ入力される各フレーム画像は、ずれ量算出部１２及び基準画像更新部１４に入力しており、基準画像更新部１４は、入力したフレーム画像を一時的に保持し、判定部１３からＹＥＳ出力された場合、この保持したフレーム画像を基準画像保持部１１及び画像合成部１５に対して出力する。基準画像保持部１１は、基準画像更新部１４が出力したフレーム画像を基準画像として更新・保持する。これより、上記第１フレームは、最初の基準画像として基準画像保持部１１に保持されることになる（ステップＳ１）。【００２１】
また、画像合成部１５は、基準画像更新部１４から上記フレーム画像が出力される毎に、後述するステップＳ６の処理、すなわち、このフレームとパノラマ画像保持部１６に保持されている画像（パノラマ画像）とを合成して、合成後のパノラマ画像を再びパノラマ画像保持部１６に保持させる処理を行う機能部であるが、第１フレーム処理の段階ではパノラマ画像保持部１６には何も格納されていないため、画像合成部１５は、第1フレームをそのまま最初のパノラマ画像としてパノラマ画像保持部１６に格納する（ステップＳ２）。【００２２】
その後、第２フレームから最終フレームまで、新たなフレーム画像が入力される毎に、ステップＳ３〜Ｓ７の処理を繰り返し実行する。
すなわち、まず、ずれ量算出部１２は、新たに入力されたフレーム画像（現フレーム画像と呼ぶ）と基準画像保持部１１に保持された基準画像とのずれ量を算出する（ステップＳ３）。【００２３】
ずれ量算出は、既存技術により行える。すなわち、ずれ量は、例えば、特徴点を抽出してその近傍位置に一致点を検索することで求めることができる（特徴点追跡により算出することができる）。すなわち、画像（例えば基準画像）内から特異な情報を持つ点（特徴点）を抽出し、該特徴点が次画像（例えば現フレーム画像）でどこに位置するかをパターンマッチング等で特徴点追跡し、座標間の差を動きベクトル（ずれ量）とする。既存の方法としては、KLT(Kanade-Lucas-Tomasi tracker)やモラベック・オペレータなどがある。これらの方法により、２画像間のずれ量を算出できる。【００２４】
判定部１３は、ずれ量算出部１２が算出したずれ量と距離保持部１７に保持してある距離（画像合成距離）とを比較する。判定部１３は、ずれ量＜距離の場合には「ＮＯ（更新無し）」を出力し（ステップＳ４，ＮＯ）、ずれ量≧距離の場合には「ＹＥＳ(基準画像更新)」を出力する（ステップＳ４，ＹＥＳ）。【００２５】
基準画像更新部１４は、判定部１３の判定がＮＯの場合、上記一時的に保持した現フレーム画像を破棄してステップＳ７へ進み、判定部１３の判定がＹＥＳの場合には、上述した通り、現フレーム画像を基準画像保持部１１及び画像合成部１５に対して出力する。これより、基準画像保持部１１は、この現フレーム画像を新たな基準画像として更新・保持する（ステップＳ５）。【００２６】
また、画像合成部１５は、上記ずれ量算出部１２が算出したずれ量も入力しており、判定部１３の判定がＹＥＳの場合には、現フレーム画像とパノラマ画像保持部１６に保持しているパノラマ画像（上記の通り最初は第１フレーム画像）とを、上記ずれ量算出部１２が算出したずれ量に応じて合成し、この新たなパノラマ画像をパノラマ画像保持部１６に格納する（ステップＳ６）。そして、ステップＳ７へ進む。【００２７】
ステップＳ７では、上記現フレームが最終フレームである場合（ステップＳ７，ＹＥＳ）本処理を終了し、そうでなければ（ステップＳ７，ＮＯ）ステップＳ３の処理に戻る。
以上説明したステップＳ３〜Ｓ７の処理を最終フレームまで繰り返すことで、パノラマ画像が作成できる。尚、最終フレームを入力したときは、第１フレームと同様、判定部１３は無条件で「ＹＥＳ(基準画像更新)」を出力してもよい。【００２８】
以上説明した処理を行うことで、従来では例えば図３に示すように９０枚の合成処理を行っていたのに対して、図４に示すように４枚の合成処理のみでパノラマ画像を生成できるようになり、処理量、処理時間、メモリ容量を大幅に削減できる。【００２９】
尚、図２に示す処理では、基準画像が更新される毎に画像合成を行っているが、このときには画像合成は行わずに、選択されたフレーム画像（基準画像更新部１４が出力したフレーム画像）をすべて保持し、全フレームの処理終了後に選択済み画像を一括して合成してもよい。図５に、この様な第１の実施例の変形例の処理フローチャートを示す。【００３０】
図５において、ステップＳ１１は上記画像合成距離や方向の設定のことである。また、ステップＳ１２、Ｓ１３は上記ステップＳ１，Ｓ２と同様の処理である。
そして、第２フレームから最終フレームまでの各フレーム画像入力毎に、ステップＳ１３〜１８の処理を繰り返し実行する。すなわち、第２フレーム以降、順次、フレーム画像を読み込み（ステップＳ１５）、この現フレーム画像と基準画像とのずれ量を算出し（ステップＳ１６）、「ずれ量＞画像合成距離」であれば（ステップＳ１７，ＹＥＳ）、この現フレーム画像をそのままパノラマ画像保持部１６に保存する（ステップＳ１８）。更に、上記ステップＳ５と同様、基準画像の更新も行う（ここでは、パノラマ画像保持部１６に新たに保存したフレーム画像を新たな基準画像とするが、実質的にステップＳ５と同様である）（ステップＳ１３）。そして、最終フレームが入力されたら（ステップＳ１４，ＹＥＳ）、この最終フレーム画像もパノラマ画像保持部１６に保存する（ステップＳ１９）。【００３１】
そして、上記ステップＳ１９の処理後、パノラマ画像保持部１６に保存したフレーム画像全てを用いて合成処理を行い、パノラマ画像を生成する（ステップＳ２０）。
次に、以下、第２の実施例について説明する。【００３２】
第２の実施例は第１の実施例の変形例に相当し、第１の実施例で算出したずれ量（基準画像とのずれ量）を、隣接するフレーム間のずれ量の累積値（累積ずれ量）として求める点で異なる。つまり、第１の実施例における「ずれ量」と第２の実施例における後述する「累積ずれ量」とは、実質的に同義である。【００３３】
第２の実施例では、現フレーム画像と基準画像とのずれ量ではなく、現フレーム画像と直前フレーム画像とのずれ量を算出し、このずれ量を累積していくことで、実質的に各基準画像からのずれ量を求める。特徴点追跡は、ずれ幅が小さいほど短時間で処理を終了できるので、現フレーム画像と基準画像とのずれ量算出処理と比較して、現フレーム画像と直前フレーム画像とのずれ量算出処理は、短時間で行え、またずれ量算出回数は変わらないので、全体として処理時間を短縮できる。尚、第１の実施例では合成に用いる画像を新たな基準画像としたが、本例では基準画像を保存しないので、合成用画像と呼ぶものとする（但し、上記の通り、累積ずれ量の形で「基準画像（＝合成用画像）とのずれ量」が算出されることには変わりはない）。【００３４】
図６に第２の実施例による画像合成装置２０の機能ブロック図を示し、図７にその処理フローチャート図を示す。
図６に示す画像合成装置２０は、距離保持部２１、直前フレーム保持部２２、ずれ量算出部２３、累積部２４、判定部２５、直前フレーム更新部２６、パノラマ画像保持部２７、及び画像合成部２８を有する。【００３５】
以下、図６に示す各機能部による処理機能について図７のフローチャート図も参照して説明する。
まず、距離保持部２１には、上記距離保持部１７と同様、予め任意の撮影方向や閾値（画像合成距離）が設定される（図７のステップＳ３１）。【００３６】
そして、動画撮影が開始されて第１フレームが入力されると、図７に示すステップＳ３２以降の処理を開始する。まず、各現フレーム画像は、ずれ量算出部２３、直前フレーム更新部２６、及び画像合成部２８に入力される。直前フレーム更新部２６は、入力された現フレーム画像を一時的に保持し、次のフレーム画像が入力される前に、保持したフレーム画像を直前フレーム保持部２２に渡して、直前フレーム画像として保持させる。つまり、直前フレーム保持部２２には、常に、現フレーム画像の１つ前のフレーム画像が格納される。【００３７】
ずれ量算出部２３は、入力される現フレーム画像とこの直前フレーム画像とを用いて、上述したずれ量算出部１２と同様の処理によりずれ量を算出するものであるが、第１フレームが入力された時点では未だ直前フレーム保持部２２に直前フレーム画像が記憶されていないので、処理は行われない。また、算出するずれ量は、現フレーム画像と基準画像とのずれ量ではなく、現フレーム画像と直前フレーム画像とのずれ量となる。【００３８】
累積部２４は、上記ずれ量算出部２３が算出するずれ量の累積値を算出・記憶する。この累積ずれ量は、上記第１の実施例における「現フレーム画像と基準画像とのずれ量」に相当する。従って、上記第１の実施例における基準画像更新時と同じタイミング、すなわち判定部２５の判定がＹＥＳとなったとき（現フレーム画像を、パノラマ合成用の画像として選択するとき）、基準画像更新に相当する処理を行う。すなわち、累積ずれ量を‘０’リセットする処理を行う。これによって、累積ずれ量は、新たなパノラマ合成用画像（基準画像に相当）とのずれ量を意味するものとなる。【００３９】
画像合成部２８には、上記現フレーム画像と、累積部２４が算出する累積ずれ量と、判定部２５による判定結果とが入力している。画像合成部２８は、基本的には、これら各入力に基づいて後述する画像合成に係わる処理を実行するが、処理開始直後に入力したフレーム、すなわち第１フレーム入力時に限っては、この第１フレームをそのままパノラマ画像としてパノラマ画像保持部２７に記憶させる（ステップＳ３２）。【００４０】
その後、最終フレームを入力してその処理を完了するまで（ステップＳ３４の判定がＹＥＳとなるまで）、入力する各フレーム画像毎に、ステップＳ３３〜Ｓ３８の処理を実行する。【００４１】
まず、直前フレーム更新部２６が、上記の通り、自己が保持している画像（最初は第１フレーム）を、直前フレーム画像として、直前フレーム保持部２２に保持させる（ステップＳ３３）。【００４２】
そして、次のフレーム画像（現フレーム）を読み込み（ステップＳ３５）、ずれ量算出部２３が、上述した通り、この現フレーム画像と上記直前フレーム画像とのずれ量（隣接するフレーム間のずれ量）を算出して、算出したずれ量を累積部２４に渡す。累積部２４は、このずれ量を、自己が保持している累積ずれ量に加算することで、新たな累積ずれ量を算出する（累積ずれ量＝ずれ量＋累積ずれ量）。そして、算出した累積ずれ量を保持すると共に判定部２５へ出力する（ステップＳ３６）。尚、処理開始直後には、累積ずれ量は初期値＝０にリセットされている。【００４３】
そして、判定部２５は、この累積ずれ量と、距離保持部２１に記憶されている閾値（画像合成距離）とを比較して、「累積ずれ量＞画像合成距離」であればＹＥＳ、「累積ずれ量≦画像合成距離」であればＮＯを、判定結果として画像合成部２８に出力する（ステップＳ３７）。【００４４】
画像合成部２８は、判定部２５によるステップＳ３７の判定結果がＮＯであれば何も処理を行わない（但し、直前フレーム更新部２６に更新を指示することで、ステップＳ３３の処理を行わせる）。画像合成部２８は、判定部２５によるステップＳ３７の判定結果がＹＥＳであれば、パノラマ画像保持部２７に保持されているパノラマ画像（最初は上記の通り、第１フレーム画像）と現フレーム画像とを、このときの累積ずれ量を用いて合成する処理を行う（ステップＳ３８）。この合成処理自体は、上記画像合成部１５と略同様である。そして、合成後のパノラマ画像をパノラマ画像保持部２７に格納する。その後、画像合成部２８は、直前フレーム更新部２６に更新を指示することで、ステップＳ３３の処理を行わせる。そして、次のフレーム画像があれば、これを読み込み（ステップＳ３５）、上述した処理が行われることになる。尚、最終フレーム画像に関しては、判定部２５による判定を行うことなく、無条件で、この最終フレーム画像を用いてステップＳ３８の画像合成処理が行われるようにしてもよい。【００４５】
また、図７には示していないが、判定部２５による判定結果がＹＥＳの場合、更に、累積部２４に保持している累積ずれ量を初期値＝０にリセットする。これは、上記の通り第１の実施例における基準画像を更新する処理に相当する。【００４６】
尚、上述した説明では、画像合成部２８は、合成すべき画像が決まる毎に（ステップＳ３７の判定がＹＥＳとなる毎に）合成処理を行っているが、これは一例であり、例えば上述した第１の実施例の変形例と同様に、逐一合成すること無く、合成すべき画像を全て保持しておき、全フレームの処理終了後にまとめて合成処理を実施してもよい。【００４７】
次に、以下、第３の実施例について説明する。
第３の実施例の画像合成装置３０では、上記第１又は第２の実施例の処理機能に加えて、更に、ユーザによる動画撮影の向きを判定して、この向きに応じた閾値（画像合成距離）を判定部に設定する機能が備えられる。上記第１又は第２の実施例では、撮影方向は、予め決められているか、ユーザが設定するものとしたが、本例では撮影方向を自動的に判別して、判別した撮影方向に応じた閾値を用いて判定処理（パノラマ合成用画像の選択処理）を実行するものである。【００４８】
図８に、第３の実施例の画像合成装置３０の機能ブロック図を示す。尚、図８には本手法を第２の実施例に適用した例を示すが、同様にして本手法は第１の実施例にも適用可能である。【００４９】
図８において、図６に示す第２の実施例の構成と略同一の構成には同一符号を付してある。すなわち、直前フレーム保持部２２、ずれ量算出部２３、累積部２４、判定部２５、直前フレーム更新部２６、パノラマ画像保持部２７、及び画像合成部２８に関しては、図６に示す第２の実施例の構成と略同様であり、ここでは特に説明しない。【００５０】
図１０には、画像合成装置３０の処理フローチャート図を示す。以下、図１０も参照して、図８に示す画像合成装置３０の処理機能について説明する。
図８における距離保持部３１には、予め、例えば図９に示すように、「下から上」（向き；上）、「上から下」（向き；下）、「左から右」（向き；右）、「右から左」（向き；左）という、上下左右それぞれの方向毎に、閾値（画像合成距離）が設定されている（図９に示す“距離”は上記画像合成距離のことである）。【００５１】
図９に示す“距離”は、（横方向（左右方向）距離、縦方向（上下方向）距離）で表され、ここでは、右方向、上方向の移動ベクトルを正とし、左方向、下方向の移動ベクトルを負として示している。また、図示の数値‘9999’は、その方向の距離は関知しないことを意味する。例えば、上記図４の例では撮影方向は右方向であるので、画像合成距離として（480,9999）が距離保持部１７、３１に設定されていたことになるが、この場合、縦方向距離が‘9999’であることから、判定部１３、２５は、縦方向については関知せず、横方向についてのみ、ステップＳ４、Ｓ３７等の判定を行うことになる。第１の実施例を例にすれば、ずれ量算出部１２が算出するずれ量は（横方向ずれ量、縦方向ずれ量）で表されるので、ステップＳ４の判定は「横方向ずれ量≧４８０？」を意味することになる。【００５２】
尚、上記の通り、左方向又は下方向の場合は負の値となる為、ステップＳ４の判定は厳密に言えば「正の方向の場合には“ずれ量≧距離？”、負の方向の場合には“ずれ量≦距離？”」となる。あるいは、絶対値を用いるようにしてもよい。これは本実施例、上記第２の実施例、後述する第４以降の実施例についても、同様である。また、“≧”は“＞”としてもよいし、その逆としてもよい。≦と＜に関しても同様である（「〜以上」と「〜を越える」、「〜以下」と「〜未満」とでは、実質的に違いはない）。【００５３】
また尚、図９に示す例において、左右方向に対応する“距離”（４８０）に対して上下方向に対応する“距離”（３６０）が小さいのは、通常、図３〜図４等に示すように、各フレームの横の長さが縦の長さよりも長いことに対応して画像合成距離が設定されているからである。【００５４】
そして、画像合成装置３０には、図８に示す距離選択部３２が更に備えられている。距離選択部３２は、累積部２４からずれ量又は累積ずれ量を入力して、これに基づいて向き（撮影方向）を判定して、判定した向きに応じた閾値（画像合成距離）を距離保持部３１から選択取得して判定部２５に渡す。判定部２５は、この閾値を用いて判定処理を行う。撮影方向の判定方法は、例えば単純に、まず、横方向と縦方向のどちらのずれ量（あるいは累積ずれ量）の絶対値が大きいかにより横／縦を判定し、更にずれ量（あるいは累積ずれ量）の値が正か負かにより左右又は上下を判定する。【００５５】
ここでは、累積ずれ量を用いるものとして説明する。累積ずれ量は、上記ずれ量の累積値であるので、（横方向累積ずれ量、縦方向累積ずれ量）で表される。例えば、もし、「横方向累積ずれ量の絶対値＞縦方向累積ずれ量の絶対値」で且つ横方向累積ずれ量が負の値であれば、撮影方向は左方向（左→右）と判定されることになる。【００５６】
上記距離選択部３２の処理は、たとえば、動画撮影開始後、最初の数フレーム〜十数フレームの累積ずれ量算出結果（任意に設定される特定フレームまでの累積ずれ量算出結果）に基づいて行い、その後は処理を行わないようにしてもよい。パノラマ画像撮影の場合、ユーザは、上下左右の何れかの方向を決めたならば、常にその方向で撮影を行うはずだからである。但し、この例に限らず、上記距離選択部３２の処理は、動画撮影開始時のみでなく動画像撮影中も随時実行するようにしてもよい。この場合、例えば、直前数フレーム分の向きと現フレームの向きを比較し、向きが変わった場合は新しい向きとそれに対応した距離を再設定する。あるいは、向きの判定結果を記憶しておき、随時、現フレームと直前数フレーム分の累積ずれ量に基づいて上記撮影方向判定を行い、この判定により得られる方向が、記憶してある方向と異なる場合には、この判定された方向を新たに記憶すると共にこの判定された方向に対応する（画像合成距離）を距離保持部３１から選択取得するようにしてもよい。【００５７】
上記距離選択部３２の処理の一例を説明する。まず、上記の通り、ずれ量算出部２３で算出されるずれ量は（横方向ずれ量、縦方向ずれ量）で表され、上記累積ずれ量は（横方向累積ずれ量、縦方向累積ずれ量）で表されるものとする。例えば、任意の複数のフレームによるずれ量がそれぞれ（ｘ１、ｙ１）、（ｘ２、ｙ２）、（ｘ３、ｙ３）であったならば、その累積ずれ量（Ｘ、Ｙ）は（ｘ１＋ｘ２＋ｘ３、ｙ１＋ｙ２＋ｙ３）となる。ここで、ユーザが手でカメラを動かす以上、一方向のみの移動は不可能であり、例えば縦方向に移動させた場合でも、横方向のずれが混在したずれ量となる。これより、距離選択部３２は、上記累積ずれ量（Ｘ、Ｙ）を入力すると、まず、その絶対値｜Ｘ｜と｜Ｙ｜とを比較して、どちらが大きいかにより、横方向か縦方向かを判定する。当然、｜Ｘ｜の方が大きければ横方向と判定し、｜Ｙ｜の方が大きければ縦方向と判定する。更に、大きい方の数値の正／負により、左右又は上下を判定する。｜Ｘ｜の方が大きい場合であってＸが負の値であれば、“左方向”と判定されることになる。【００５８】
図１０に示すフローチャートは、上記距離選択部３２の処理が、動画撮影開始時のみでなく動画像撮影中も随時実行される例に対応したものである。図示のステップＳ４２〜Ｓ４６の処理は、図７のステップＳ３２〜Ｓ３６の処理と略同様であり、特に説明しない。図示のステップＳ４８，Ｓ４９の処理も、基本的には図７のステップＳ３７、Ｓ３８の処理と同様である。但し、ステップＳ４８の処理の前にステップＳ４７の処理が加わっている為、ステップＳ４８の処理に用いられる閾値（画像合成距離）が変更されている可能性はある。【００５９】
ステップＳ４７の処理は、上述した距離選択部３２による向きの判定と、この判定した向きに応じた閾値の選択の処理であり、既に説明済みであるので、ここでは説明しない。但し、捕捉説明するならば、既に述べた理由により、動画撮影開始時から予め設定される特定フレームまでの累積ずれ量が算出されるまではステップＳ４７の処理は実行されない。従って、ステップＳ４８、Ｓ４９の処理も実行されない（未だ、閾値が存在しないので）。【００６０】
また、動画像撮影中の処理としては、途中で撮影向きが変わった場合でも、そのことが直ちに累積ずれ量に反映されるわけではないので、タイムラグが生じることになる。この点を考慮して、動画像撮影中のステップＳ４７の処理においては、距離選択部３２は、ずれ量算出部２３の算出したずれ量も入力して、このずれ量から判定した向きと（判定方法は上記累積ずれ量の場合と同様）、既に累積ずれ量に基づいて判定されている向きとが不一致となった場合には（但し、１回だけではなく、複数回連続して不一致と判定される場合とすることが望ましい）、向きが変わったものと判定して、新たな向きに応じた画像合成距離を距離保持部３１から取得して、判定部２５に再設定するようにしてもよい。【００６１】
また、累積ずれ量ではなくずれ量を用いて方向判定する場合には、例えば現フレームとその直前数〜十数フレームの各ずれ量を用いてそれぞれ方向判定を行い、多数決により撮影方向を判定してもよい。【００６２】
この様に、第３の実施例によれば、ユーザは作成するパノラマ画像の撮影方向を指定することなく、カメラ側で自動的に、ユーザがどの向きのパノラマ画像を撮影するつもりかを判別して、この判別した向きに応じた（画像合成の為の）閾値を設定できる。【００６３】
尚、上述した通り、本手法は第１の実施例にも適用可能であり、その場合には、特に図示／説明しないが、距離選択部は、上記累積ずれ量に代えて、ずれ量算出部１２が算出する「基準画像とのずれ量」を入力して、上述した処理を行うことになる。【００６４】
以下、第４の実施例について説明する。
第４の実施例では、ずれ量の算出処理を２工程で実施する。すなわち、合成用画像を選択するためのずれ量算出処理と画像合成するためのずれ量算出処理とをそれぞれ実行する。【００６５】
合成用画像を選択するためのずれ量算出は、高い精度は求められない。のりしろ領域が１〜２画素ずれても、パノラマ画像の品質に影響しないからである。しかし、画像合成時に合成用画像間のずれ量に誤差が生じた場合、画像間の断裂などパノラマ画像の品質に大きく影響を及ぼす。【００６６】
また、合成用画像選択のためのずれ量算出は各フレーム毎に実施する必要があるが、画像合成の為のずれ量算出は（選択した合成用画像枚数−１）回のみでよい。具体例として、例えば、３０fps、３秒の動画像では、合成用画像選択のためのずれ量算出は８９回実施する必要があるが、選択された合成用画像を用いた合成処理の為に行われるずれ量算出は３回でよい。【００６７】
以上述べたことから、第４の実施例では、合成用画像選択のためのずれ量算出処理では、入力フレーム画像の縮小画像を用いてずれ量を算出して、この算出したずれ量に縮小率の逆数を乗じることで元画像でのずれ量を求める等の、簡易的手法でずれ量を算出する。これにより処理を簡略化し、高速に合成用画像選択を行うことができる。【００６８】
一方、選択された合成用画像を用いてパノラマ画像を生成する為のずれ量算出処理では、縮小画像を用いることなく元の入力画像を用いてずれ量算出を行うので、簡易的手法に比べて正確にずれ量を算出できる。その際、合成用画像選択時に算出した累積ずれ量を初期値として、その近傍を探索してずれ量を求めるようにすることが望ましい。これにより、正確なずれ量算出の為の処理自体も高速に行うことができる。【００６９】
また、例えば、動画像撮影時にＭＰＥＧエンコーダを動作させ、ＭＰＥＧエンコーダが算出するフレーム間の移動ベクトルを、合成用画像選択のためのずれ量としてもよい。既存のデジカメはＭＰＥＧでの動画撮影機能を有しているため、追加のハードなしに合成用画像選択の為のずれ量算出を行うことができる。【００７０】
図１１に、第４の実施例の画像合成装置４０の機能ブロック図を示す。尚、図１１には第２の実施例に適用した例を示すが、同様にして第１の実施例にも適用可能である。
図１１に示す画像合成装置４０は、距離保持部４１、直前フレーム保持部４２、ずれ量算出部４３、累積部４４、判定部４５、直前フレーム更新部４６、パノラマ画像保持部４７、画像合成部４８、及びずれ量算出部４９を有する。ここでは、上記縮小画像を用いて合成用画像選択のためのずれ量算出処理を行う例の場合の構成を示す。この場合、距離保持部４１、直前フレーム保持部４２、累積部４４、判定部４５、及び直前フレーム更新部４６は、第２の実施例の場合と同様の処理機能であってよく、ずれ量算出部４３が、第２の実施例のずれ量算出部２３とは異なる処理機能となる。勿論、更にずれ量算出部４９を有する点は、第２の実施例とは異なる。【００７１】
図１２には、画像合成装置４０の処理フローチャート図を示す。以下、図１２も参照して、図１１に示す画像合成装置４０の処理機能について説明する。
ずれ量算出部４３は、直前フレーム保持部２２に保持されている直前フレームと、現フレームとを入力すると、まず、この直前フレームと現フレームの縮小画像を作成して、この各縮小画像を用いて上記特徴点追跡等によりずれ量を算出する。更に、算出したずれ量に縮小率の逆数を乗じて元画像でのずれ量を求め、求めたずれ量を累積部４４に渡す（図１２のステップＳ５６におけるずれ量算出）。累積部４４、判定部４５の処理自体は、上記累積部２４、判定部２５と同様であるが、判定部４５の判定結果は、ずれ量算出部４９に対して出力される。また、ずれ量算出部４９には、現フレーム画像と累積ずれ量も入力される。【００７２】
ずれ量算出部４９は、判定部４５の判定結果がＮＯであれば何も処理を行わない（但し、直前フレーム更新の指示は行う）。一方、判定結果がＹＥＳであれば、このとき入力している現フレーム画像及び累積ずれ量と、パノラマ画像保持部４７から取り出したパノラマ画像とを用いて、現フレーム画像とパノラマ画像とのずれ量を算出する（これは、今回選択された合成用画像と前回選択された合成用画像とのずれ量算出（隣合う合成用画像間のずれ量算出）と同義である）。このずれ量算出処理は、縮小画像を生成することなく原画像を用いて、正確なずれ量を算出するものである。但し、これだけでは上記ずれ量算出部２３によるずれ量算出処理と略同様であるが、本例では更に上記の通り、このときに入力される累積ずれ量を初期値として、その近傍を探索してずれ量を求めることで、高速に正確なずれ量を求めることができる（図１２のステップＳ５８）。【００７３】
そして、ずれ量算出部４９は、ステップＳ５８で求めたずれ量と、取得したパノラマ画像と現フレーム画像とを、画像合成部４８に渡す。これより、画像合成部４８は、上記画像合成部２８等と同様の処理によりパノラマ画像と現フレーム画像とを合成して新たなパノラマ画像を生成し、これをパノラマ画像保持部４７に格納する（図１２のステップＳ５９）。【００７４】
尚、図１２のステップＳ５１〜Ｓ５５、Ｓ５７の処理は、例えば図７のステップＳ３１〜Ｓ３５、Ｓ３７の処理と略同様であるので、特に説明しない。
尚、上記説明では、ずれ量算出部４３において各フレーム毎に逐一縮小率の逆数を乗じていたが、この例に限らず、縮小画像によるずれ量をそのまま累積部４４に渡して累積させ、パノラマ画像合成処理を行うときに、この累積ずれ量に縮小率の逆数を乗じるようにしてもよい（但し、この場合には、距離保持部４１に保持させる“距離”も、縮小画像に応じた値を設定する必要がある）。【００７５】
また、尚、ＭＰＥＧエンコーダを動作させる例の場合には、特に図示等しないが、例えば外部の不図示のＭＰＥＧエンコーダが算出するフレーム間の移動ベクトルを、累積部４４に入力させる構成とすればよい。【００７６】
次に、以下、第５の実施例について説明する。
第５の実施例では、合成用画像として選択する画像を、累積ずれ量（又は基準画像とのずれ量）が閾値（画像合成距離）を越えたときのフレーム画像ではなく、このフレーム画像の直前のフレーム画像とする。ユーザのカメラ操作が速いとき、閾値を越えたときのフレーム画像ではのりしろ領域が小さくなりすぎる可能性があるからである。のりしろ領域が小さいと画像合成用ずれ量算出のための特徴点抽出、追跡の精度が下がる。ある程度ののりしろ領域は必要とするため、第５の実施例では、上記の通り、累積ずれ量（又は基準画像とのずれ量）が閾値（画像合成距離）を越える直前のフレーム画像を、合成用画像として選択する。【００７７】
図１３に、第５の実施例の画像合成装置５０の機能ブロック図を示す。尚、図１３には第２の実施例に適用した例を示すが、第１の実施例にも適用可能である（但し、その場合には直前フレームを保持する構成を追加する必要がある）。【００７８】
図１３に示す画像合成装置５０は、距離保持部５１、直前フレーム保持部５２、ずれ量算出部５３、累積部５４、判定部５５、直前フレーム更新部５６、パノラマ画像保持部５７、画像合成部５８、及びずれ量算出部５９を有する。【００７９】
上記構成において、距離保持部５１、直前フレーム保持部５２、ずれ量算出部５３、判定部５５、及び直前フレーム更新部５６の処理機能は、図６に示す距離保持部２１〜直前フレーム更新部２６と略同様である。【００８０】
図１４には、画像合成装置５０の処理フローチャート図を示す。以下、図１４も参照して、図１３に示す画像合成装置５０の処理機能について説明する。
累積部５４は、累積部２４と同様に現フレームまでの累積ずれ量を算出して判定部５５に出力するが、更に、現フレームの直前のフレームまでの累積ずれ量算出結果を保持しており、これを画像合成部５８による合成処理に用いる。【００８１】
つまり、累積部５４は、例えば不図示の直前累積ずれ量保持部を有しており、現フレームが第ｍフレームである場合、例えば図１４のステップＳ６６で第ｍフレームまでの累積ずれ量Ｐｍを判定部５５に出力し、その後にステップＳ６３の処理に戻ったときに、累積ずれ量Ｐｍを直前累積ずれ量保持部に設定する。次の第ｍ＋１フレームが入力されたときに、累積ずれ量Ｐｍ＋１が算出され、仮に累積ずれ量Ｐｍ＋１が閾値を越えた場合には、判定部５５の判定結果はＹＥＳとなり、画像合成部５８による合成処理が行われることになるが、その際、画像合成部５８は、上記直前累積ずれ量保持部に保持されている累積ずれ量Ｐｍを用いて（すなわち現フレームの直前のフレームまでの累積ずれ量を用いて）合成処理を行う。また、合成処理に用いるフレームは、当然、現フレームの直前のフレーム（上記の例では第ｍフレーム）とする必要があるので、図１３に示す通り、画像合成部５８は、直前フレーム保持部５２に保持されている直前フレームを取得する。更に、パノラマ画像保持部５７に保持されているパノラマ画像を取得して、上記直前フレームまでの累積ずれ量を用いて、このパノラマ画像に上記直前フレーム画像を合成する処理を行い、合成結果（新たなパノラマ画像）をパノラマ画像保持部５７に格納する（図１４のステップＳ６８）。【００８２】
尚、図１４のステップＳ６１〜Ｓ６７の処理は、例えば図７のステップＳ３１〜Ｓ３７の処理と略同様であるので、特に説明しない。
次に、以下、第６の実施例について説明する。【００８３】
上述した第１〜第５の実施例では、第１フレーム画像は無条件でパノラマ画像保持部に保持させることで（つまり、無条件に合成用画像とすることで）、第１フレーム画像は必ずパノラマ画像として用いられるようにしていた。これにより、ユーザは、動画撮影ボタン（カメラのシャッター等）を押下したときの画像から始まるパノラマ画像を生成できる。【００８４】
しかしながら、その一方で、撮影開始直後は、シャッター押下等の動作に伴う手ぶれ等により、パノラマ撮影の為の動作が安定しない（例えば左右方向への撮影の際に上下にぶれる等）可能性がある。【００８５】
この様な状況を考慮して対応する為に、第６の実施例では、最初の合成用画像（パノラマ画像の一方の端とする画像）を、第１フレームではなく、第２フレーム以降の数〜十数程度の入力フレーム画像による直交方向ずれ量に基づいて決定する。この直交方向ずれ量とは、撮影方向と直交する方向におけるずれ量であり、後の説明では“異方向ずれ量”とも呼んでおり、例えば撮影方向が左右（横）方向であれば、直行方向は上下（縦）方向である。そして、この直交方向ずれ量が安定し始めたとき（例えば横方向パノラマ撮影時に上下方向のずれ量のぶれが収束したとき）に入力された現フレーム画像を、最初の合成用画像としてパノラマ画像保持部に格納することで、次以降の合成用画像との合成を高精度に行うことができる。【００８６】
図１５に、第６の実施例による画像合成装置の処理フローチャート図を示す。
尚、第６の実施例による画像合成装置の機能ブロック図は特に図示しないが、ここでは図６を参考にして説明すると（但し、当然、図６には示されない処理もある）、ずれ量算出部２３は、最初の合成用画像が選択・記憶されるまでは図１５に示すステップＳ７１の処理実行後ステップＳ７２〜Ｓ７６の処理を繰り返し実行して、ステップＳ７６の判定結果（ＹＥＳ／ＮＯ）を画像合成部２８に対して出力する。画像合成部２８は、この判定結果がＹＥＳのときの現フレーム画像を、最初の合成用画像としてパノラマ画像保持部２７に格納する。【００８７】
以上述べた初期処理以外の処理は、第２の実施例と同様である。すなわち、図１５に示すステップＳ７８〜Ｓ８３の処理は、図７のステップＳ３３〜Ｓ３８と略同様であり、特に説明しない。また、図１５では特に図示しないが、図７のステップＳ３１等と同様に、事前に画像合成距離の設定が行なわれている。【００８８】
図１５に示す処理では、動画撮影が開始されると、まず、変数ｉに初期値＝０を設定して（ステップＳ７１）、その後、上記の通り、最初の合成用画像が選択されるまで、ずれ量算出部が、ステップＳ７２〜Ｓ７６の処理を繰り返し実行する。ずれ量算出部は、第２フレーム画像から順に新たなフレーム画像を入力する毎に、この現フレーム画像と、直前フレーム保持部に保持されていた直前フレーム画像とのずれ量を算出する。このズレ量は、第３の実施例で説明したように（横方向ずれ量、縦方向ずれ量）で表され、ここでは、右方向、上方向のずれ量を正とし、左方向、下方向のずれ量を負としている。但し、ここでは、ユーザによる撮影方向を自動判別するものではなく、撮影方向は予め決まっている（あるいはユーザが指示する）ものとし、以下の説明では横方向（左右どちらでもよい）であるものとする。【００８９】
ずれ量算出部は、ステップＳ７２〜Ｓ７６の処理においては、累積部にずれ量を渡すことなく、撮影方向に対して直交方向のずれ量（直交方向ずれ量と呼ぶ；この例では縦方向ずれ量）を用いて、ステップＳ７３の処理を実行する。【００９０】
ステップＳ７３の処理では、下限＜直交方向ずれ量（本例では縦方向ずれ量）＜上限の条件が成立するか否かを判定する。つまり、撮影方向に対して直交方向のずれ量が、所定の範囲内に収まっているか否かを判定する。この下限、上限は、予め任意に設定される閾値であり、例えば下限、上限の絶対値は同じ値であり、下限が負の値、上限が正の値等とする。これは、上記の通り、上方向のずれ量を正とし、下方向のずれ量を負としているからであり、上限は上方向へのずれ量に対する閾値、下限は下方向へのずれ量に対する閾値を意味する。【００９１】
そして、下限＜直交方向ずれ量＜上限の条件を満たすならば（ステップＳ７３，ＹＥＳ）、上記変数ｉを＋１インクリメントし（ステップＳ７５）、更にこの変数ｉが閾値Ｑを越えるか否かを判定し（ステップＳ７６）、変数ｉ＞閾値Ｑであれば（ステップＳ７６，ＹＥＳ）、画像合成部に対して格納を指示する。画像合成部は、この指示を受けて、このときの現フレームを最初の合成用画像としてパノラマ画像保持部に格納する。一方、ずれ量算出部は、変数ｉの値が未だ閾値Ｑを越えない場合には（ステップＳ７６，ＮＯ）ステップＳ７２の処理に戻り、次の入力フレームに関してステップＳ７２以降の処理を実行する。【００９２】
また、上記ステップＳ７３の判定がＮＯの場合、変数ｉを初期値０にリセットして（ステップＳ７４）、ステップＳ７２に戻る。すなわち、閾値Ｑに相当する複数フレーム連続してステップＳ７３の判定がＹＥＳとならない限り、ステップＳ７６の判定がＹＥＳとなることはない。換言すれば、直交方向ずれ量が安定し始めたと見做せる状態になるまではステップＳ７６の判定はＹＥＳとはならない。【００９３】
閾値Ｑは例えば予め任意に設定される値であり（例えば、直交方向ずれ量が安定し始めたと見做せる状態に相当すると考えられる値）、例えば閾値Ｑ＝５が設定された場合、６回（６フレーム）連続してステップＳ７３の判定がＹＥＳとならない限り、ステップＳ７６の判定がＹＥＳとなることはない。例えば、第２〜第６フレームでステップＳ７３がＹＥＳとなっても、第７フレームでステップＳ７３がＮＯとなった場合、変数ｉは０にリセットされるので、第８フレームでステップＳ７３がＹＥＳとなっても、ステップＳ７６の判定はＮＯとなる。【００９４】
次に、以下、第７の実施例について説明する。
第７の実施例では、ユーザが動画撮影ボタンを離す、または再度動画撮影ボタンを押すなどの動画撮影終了時の操作に応じて、最終フレーム画像は、基準画像とのずれ量又は累積ずれ量に関係なく、最終の合成用画像として選択することで、ユーザが選択した最終フレームまでをパノラマ合成画像の終端として作成できる。【００９５】
図１６に第７の実施例の画像合成装置６０の機能ブロック図を示し、図１７にその処理フローチャート図を示す。ここでは、第２の実施例に適用した例を示すが、同様にして、第１の実施例にも適用可能である。【００９６】
図１６において図６に示す構成と同様の構成には同一符号を付してあり、その説明は省略する。図１７において図７の処理と同様の処理については同一のステップ番号を付しており、その説明は省略する。すなわち、図１６においては判定部２５に代えてずれ量／最終画像判定部６１が設けられている点で図６とは異なり、図１７においてはステップＳ３４に代えてステップＳ９１の処理があり、更にステップＳ９１の判定がＹＥＳの場合にステップＳ９２の処理を実行する点で図７とは異なる。【００９７】
ずれ量／最終画像判定部６１は、判定部２５と同様の処理を行うと共に、更にステップＳ９１の処理を行う。すなわち、現フレームが最終フレームであるか否かを判定する。現フレームが最終フレームであるか否かの判定方法は、既存技術で対応できる。例えば、外部の撮像部が、ユーザが動画撮影ボタンを離したことを検知するとこの検知信号を画像合成装置６０に通知してもよいし、このときの撮影フレームに最終フレームであることを示す情報を埋め込む等してもよい（図１６には示していないが、ずれ量／最終画像判定部６１には、現フレーム、あるいは上記通知信号が入力している）。【００９８】
ずれ量／最終画像判定部６１は、現フレームが最終フレームである場合には（ステップＳ９１，ＹＥＳ）、累積ずれ量に基づく判定は行わずに、画像合成部２８に対して判定結果ＹＥＳを通知する。これより、画像合成部２８は、現フレーム（最終フレーム）を用いてパノラマ画像合成処理を実行する（ステップＳ９２）。【００９９】
この様にして、最終フレーム画像は、必ず、パノラマ画像合成に用いられるので、完成したパノラマ画像には必ずユーザが選択した最終フレーム画像までが含まれる。
次に、以下、第８の実施例について説明する。【０１００】
第８の実施例では、第３の実施例と同様に、図９に示す各向き毎の閾値（画像合成距離）が設定されており、ユーザによる撮影方向を自動的に判別すると共に、撮影中に撮影方向が変わった場合には、これを判別して、新しい向きに応じた閾値（画像合成距離）を図９のテーブルを参照して再設定する。その際、本手法では、更に、向きが変わったときのフレームを合成用画像として選択してパノラマ画像合成処理を行うようにしている。これにより、例えばユーザがカメラを図２０に示すような「かぎ型」に動かしたとき、縦方向、横方向の任意の大きさのパノラマ画像を生成できる。【０１０１】
図１８に第８の実施例の画像合成装置７０の機能ブロック図を示し、図１９にその処理フローチャート図を示す。
図１８において図８に示す第３の実施例の構成と同様の構成には同一符号を付してあり、その説明は省略する。同様に、図１９において図１０の処理と同様の処理については同一のステップ番号を付しており、その説明は省略する。【０１０２】
図１８に示す通り、向き／ずれ量判定部７１のみが、図８とは異なっている。向き／ずれ量判定部７１は、図１９のステップＳ１０１，Ｓ４７の処理を実行する機能部であり、ステップＳ４６の処理後にステップＳ１０１を実行する点が図１０と異なっている。【０１０３】
尚、図１８には距離選択部３２が無いが、これは向き／ずれ量判定部７１が判定部２５の機能と距離選択部３２の機能を有しているからである。
ステップＳ１０１の処理では、ずれ量のベクトルが９０度近く変動した場合には（ステップＳ１０１，ＹＥＳ）、このときの現フレーム画像は無条件で合成用画像として選択する（画像合成部に対して判定結果ＹＥＳを出力する）。これにより、画像合成部は、ステップＳ４９の画像合成処理（パノラマ画像生成処理）を行う。【０１０４】
尚、累積部２４は、累積ずれ量だけでなくずれ量も、向き／ずれ量判定部７１に渡しており、向き／ずれ量判定部７１は、この今回のずれ量のベクトルと、前回のずれ量のベクトルとを比較して、両者のベクトルの向きが９０度近い（９０度を中心に所定のマージンが加えられた範囲内となった）場合には、ステップＳ１０１の判定をＹＥＳとする。また、特に図示しないが、向き／ずれ量判定部７１は、ステップＳ１０１の判定がＹＥＳの場合、更に、新たな撮影方向に対応する閾値を距離保持部３１から取得して設定する。【０１０５】
尚、上記“今回のずれ量”、“前回のずれ量”とは、例えば今回入力した現フレームを第ｍフレームとした場合、今回、ずれ量算出部によって算出されるずれ量は第ｍフレームと第ｍ−１フレームとのずれ量（横方向ずれ量、縦方向ずれ量）となり、これが今回のずれ量である。そして、第ｍ−１フレームと第ｍ−２フレームとのずれ量が、前回のずれ量となる。【０１０６】
尚、ステップＳ１０１の代わりに、ステップＳ４７の処理を行っても良い（但し、この場合には、９０度近い変化に限ることはできない）。
次に、以下、第９の実施例について説明する。【０１０７】
ずれ量がななめ方向であったときには、図２１Ａに示すように異方向（上述した、撮影方向と直交する方向）へのずれ量が小さい場合はともかく、異方向へのずれ量が大きい場合には、図２１Ｂに示すようにパノラマ画像が階段状になってしまう。【０１０８】
この問題に応じて第９の実施例では、ずれ量がななめ方向であったときは、異方向のずれ量（例えば横方向パノラマ画像生成のときの縦方向ずれ量）の値に応じて距離を小さくするようにすることで、図２１Ｃに示すように階段状の領域の面積を広めにとることができる。【０１０９】
図２２に第９の実施例の画像合成装置８０の機能ブロック図を示し、図２３にその処理フローチャート図を示す。
尚、図２２において図６に示す第２の実施例の構成と同様の構成には同一符号を付してあり、その説明は省略する。同様に、図２３において図７の処理と同様の処理については同一のステップ番号を付しており、その説明は省略する。【０１１０】
図示の通り、図２２においては距離算出部８１が加わっている点が図６とは異なり、図２３においてはステップＳ３６の処理の後に距離算出部８１によるステップＳ１１１の処理が実行され、ステップＳ３７の判定処理にはステップＳ１１１の処理によって算出された画像合成距離が用いられる点が図７とは異なる。【０１１１】
距離算出部８１によるステップＳ１１１の処理の一例について、図２４を参照して説明する。
距離算出部８１には、予め、図２４に示すずれ量８２と「異方向のずれ量と比率」８３とが設定・記憶される。ずれ量８２には、画像合成距離ＶＨが設定される(図示の例では撮影方向は横方向であるものとして、横方向に対応する画像合成距離ＶＨとして示しているが、勿論、この例に限らない)。画像合成距離ＶＨは例えば距離保持部２１から取得して設定する。【０１１２】
「異方向のずれ量と比率」８３には、異方向（図示の例では縦方向となる）へのずれ量に対する各閾値ＶＶ０、ＶＶ１と、これら各閾値に応じた比率ａ０、ａ１が設定されている。尚、閾値ＶＶ０、ＶＶ１は、例えば、ＶＶ０が下限値、ＶＶ１が上限値を意味する。また、比率ａ０、ａ１は、例えば１≧ａ０＞ａ１＞０の条件を満たす任意の値を設定すればよい。例えば比率ａ０を１にした場合、以下に説明する線形補間による画像合成距離ＶＨ’の算出式における「もし、ＶＹ＜ＶＶ０ならば、ＶＨ’＝ＶＨ×ａ０」は、異方向へのずれ量が非常に少ない（例えば、０を含む、０近辺の値）場合には画像合成距離はＶＨのままとすることを意味することになる。【０１１３】
距離算出部８１には、各フレーム毎に、累積部２４から、ずれ量算出部２３が算出したずれ量（横方向ずれ量、縦方向ずれ量）が渡されると、図２４に示す設定データを用いて上記画像合成距離ＶＨの補正値である画像合成距離ＶＨ’を算出して、これを判定部２５に渡す。判定部２５は、この画像合成距離ＶＨ’を用いてステップＳ３７の判定処理を行う。尚、図２４に示す設定データは、距離保持部２１が保持していてもよい。【０１１４】
ここでは、仮に、撮影方向は横方向である（従って異方向は縦方向）ものとして説明するが、勿論、撮影方向が縦方向である場合にも同様の処理を行えばよい。撮影方向が横方向である場合、上記ずれ量（横方向ずれ量、縦方向ずれ量）＝（ＶＸ、ＶＹ）であった場合、距離算出部８１は例えば以下の線形補間による処理によって画像合成距離ＶＨ’を算出する。
・もし、ＶＹ＜ＶＶ０ならば、ＶＨ’＝ＶＨ×ａ０
・もし、ＶＹ＞ＶＶ１ならば、ＶＨ’＝ＶＨ×ａ１
・もし、ＶＶ０＜ＶＹ＜ＶＶ１ならば、
ＶＨ’＝ＶＨ×｛（ＶＶ１−ＶＹ）×ａ０＋（ＶＹ−ＶＶ０）×ａ１｝／（ＶＶ１−ＶＶ０）【０１１５】
上記算出式は線形補間による一般的な式を用いるものなので、特に説明しないが、例えば、ａ０＝０．９、ａ１＝０．２に設定された場合には、画像合成距離ＶＨ’は、０．２ＶＨから０．９ＶＨまでの範囲内で変動することになる。【０１１６】
また、上記算出式は、異方向へのずれ量が正の値をとる方向（上記例では上方向）に対応する式であり、例えば上下両方向に対応する式とするならば、上記算出式におけるＶＹを“ＶＹの絶対値”に置き換えればよい。これは、後述する図２７で説明する算出式に関しても同様である。【０１１７】
勿論、上記線形補間による処理は一例であり、他の処理であってもよく、基本的には、異方向ずれ量が大きいほど判定部で用いる閾値（画像合成距離）が小さくなるようにする算出方法であればなんでも良い。【０１１８】
以上説明した処理を行うことで、異方向へのずれ量が大きい場合でも、図２１Ｂに示すようにパノラマ画像が階段状になってしまうことなく、図２１Ｃに示すように（異方向へのずれ量が大きい割には）比較的滑らかな形のパノラマ画像を生成できる。【０１１９】
次に、以下、第１０の実施例について説明する。
第１０の実施例では、ずれ量算出を、上下、左右方向の２軸だけでなく回転軸を含めた３軸で算出する。回転成分も含む画像のずれ量は、例えば、アフィン変換行列などがある。回転成分が大きいとき、画像が歪んでいる（画像内の位置によってずれ量が異なる）ため、ずれ量の小さい範囲で画像合成しないと画像合成時の画像間境界でギャップが発生する。【０１２０】
この様な問題に対応する為、第１０の実施例では、画像合成距離を、回転成分の有無、あるいは回転成分の大小に応じて変更する。
図２５に第１０の実施例の画像合成装置９０の機能ブロック図を示し、図２６にその処理フローチャート図を示す。【０１２１】
図２５に示す画像合成装置９０は、距離保持部９１、距離算出部９２、ずれ量算出部９３、判定部９４、基準画像保持部９５、基準画像更新部９６、画像合成部９７、及びパノラマ画像保持部９８を有する。【０１２２】
以下、上記各機能部の処理について、図２６のフローチャートも参照して説明する。
まず、距離保持部９１には、予め図２７に示す設定データ１００が設定・格納される（ステップＳ１２１）。【０１２３】
画像合成装置９０は、動画撮影が開始されその第１フレームが入力されると、図２６に示すステップＳ１２２以降の処理を開始する。
判定部９４は、基本的には後述するステップＳ１２８の判定を行い、判定結果としてＹＥＳ／ＮＯを基準画像更新部９６に対して出力するものであるが、処理開始直後は、判定部９４は無条件で判定結果「YES(基準画像更新)」を出力する。入力画像は１フレームずつ、ずれ量算出部９３及び基準画像更新部９６に入力しており、基準画像更新部９６は、入力した現フレーム画像を一時的に保持し、判定部９４からＹＥＳ出力された場合、この保持した現フレーム画像を基準画像保持部９５及び画像合成部９７に対して出力する。上記の通り、最初は第１フレームが出力されることになる。【０１２４】
画像合成部９７は、基準画像更新部９６から現フレーム画像が出力される毎に（つまり、合成用画像として選択されたフレーム画像が出力される毎に）、この現フレーム画像を用いてパノラマ画像合成を行うが、第１フレームに限ってはそのままパノラマ画像保持部９８に保存する（ステップＳ１２２）。基準画像保持部９５は、基準画像更新部９６から現フレーム画像が出力される毎に、このフレームを新たな基準画像として保持する。これより、上記第１フレームは、最初の基準画像として基準画像保持部９５に保持されることになる（ステップＳ１２３）。【０１２５】
尚、図２６に示すステップＳ１２３では、現フレーム画像を合成した新たなパノラマ画像を、新たな基準画像として保持している（上記説明と多少異なるが、これはどちらでもよいことである）。【０１２６】
そして、次の入力フレーム画像がある場合には（ステップＳ１２４，ＮＯ）、この次のフレーム画像を読み込んで（ステップＳ１２５）、ずれ量算出部９３が、この現フレーム画像と上記基準画像とのずれ量を算出する（ステップＳ１２６）。但し、本例では上記の通り、ずれ量算出は、上下、左右方向の２軸だけでなく回転軸を含めた３軸で算出する。そして、求めたずれ量を判定部９４に渡し、求めたずれ量のうち回転成分を（回転方向ずれ量）を距離算出部９２に渡す。距離算出部９２は、この回転成分を用い、上記距離保持部９１格納されている設定データ１００を参照して、画像合成距離を算出（補正）して、これを判定部９４に渡す（ステップＳ１２７）。ステップＳ１２７の詳細については、後に図２７を参照して説明する。【０１２７】
判定部９４は、距離算出部９２が算出した画像合成距離を用いて、「ずれ量＞画像合成距離」の条件が成立するか否かを判定し（ステップＳ１２８）、成立するならば（ステップＳ１２８，ＹＥＳ）、判定結果「YES(基準画像更新)」を基準画像更新部９６へ出力する。これより、上記の通り、画像合成部９７によるパノラマ画像合成処理が行われると共に（ステップＳ１２９）、基準画像保持部９５に現フレーム画像が新たな基準画像として格納される（ステップＳ１２３）。【０１２８】
尚、図２６において、上記ステップＳ１２２、Ｓ１２３、Ｓ１２９の処理を、図５のステップＳ１２、Ｓ１３、Ｓ１８の処理に置き換えたうえで、図５のステップＳ１９，Ｓ２０の処理を追加した形態としてもよい。換言すれば、図５の処理をベースにして、ステップＳ１１をステップＳ１２１の処理に置き換え、ステップＳ１６の処理の次にステップＳ１２７の処理を実行する形態としてもよい。パノラマ画像合成を、随時行うか、後で一括して行うかの違いに過ぎないからである。また、本手法は、第２の実施例に適用してもよい。【０１２９】
以下、上記ステップＳ１２７の処理の具体例について、図２７を参照して説明する。
図２７に示す設定データ１００は、ずれ量１０１と「回転方向のずれ量と比率」１０２とから成る。ずれ量１０１には、撮影方向へのずれ量に対する画像合成距離ＶＨ、異方向へのずれ量に対する画像合成距離ＶＶが格納される。「回転方向のずれ量と比率」１０２には、回転方向ずれ量に対する各閾値Ｖθ０、Ｖθ１と、これら各閾値に応じた上記ＶＨ、ＶＶに対する比率（Ｖθ０に応じてはａ０、ｂ０、Ｖθ１に応じてはａ１、ｂ１）が設定されている。これら各閾値と比率の設定の仕方は、図２４で説明した考え方と略同様であってよい。【０１３０】
そして、ここでは、上記ずれ量算出部９３から渡される回転成分（回転方向ずれ量）が、Ｖθであるとした場合、距離算出部９２は例えば以下の線形補間による処理によって上記判定部９４に渡すべき画像合成距離ＶＨ’、ＶＶ’を算出する。
・もし、Ｖθ＜Ｖθ０ならば、ＶＨ’＝ＶＨ×ａ０、ＶＶ’＝ＶＶ×ｂ０
・もし、Ｖθ＞Ｖθ１ならば、ＶＨ’＝ＶＨ×ａ１、ＶＶ’＝ＶＶ×ｂ１
・もし、Ｖθ０＜Ｖθ＜Ｖθ１ならば、
ＶＨ’＝ＶＨ×｛（Ｖθ１−Ｖθ）×ａ０＋（Ｖθ−Ｖθ０）×ａ１｝／（Ｖθ１−Ｖθ０）
ＶＶ’＝ＶＶ×｛（Ｖθ１−Ｖθ）×ｂ０＋（Ｖθ−Ｖθ０）×ｂ１｝／（Ｖθ１−Ｖθ０）【０１３１】
上記算出式は、基本的には図２４で説明した算出式と同様であり、異方向ずれ量ではなく回転方向ずれ量に基づいて、画像合成距離を補正する点が異なるだけである。また、上記算出式では、異方向ずれ量ではなく回転方向ずれ量に基づいて、ＶＨ、ＶＶの両方を補正しているが、通常は、どちらか一方（現在の撮影方向のもの）を補正すればよい。【０１３２】
以下、第１１の実施例について説明する。
第１１の実施例では、ずれ量の総和が一定値に達したときに、ユーザの操作に関係なく撮像を強制終了する。例えば、画角６０度のカメラで１８０度パノラマを撮影する場合、画像サイズの横幅×３がパノラマ画像の横幅で、４枚の画像で合成している。したがって、第１基準画像から最終基準画像までのずれ量の総和は（画像サイズの横幅×３−のりしろ領域幅×３）となる。ずれ量の総和がこの画素値になったときに（例えば図２８に示すＲ）動画撮影処理を終了することで、ユーザに撮影終了時のオペレーションをさせることなく撮影処理を自動的に停止でき、自動的に正確に１８０度パノラマ画像を生成できる。【０１３３】
図２９に第１１の実施例の画像合成装置１１０の機能ブロック図を示し、図３０にその処理フローチャート図を示す。
図２９に示す画像合成装置１１０は、カメラ制御部１１１、画像撮影部１１２、距離保持部１１３、距離算出部１１４、ずれ量算出部１１５、判定部１１６、基準画像保持部１１７、基準画像更新部１１８、画像合成部１１９、及びパノラマ画像保持部１２０を有する。【０１３４】
上記図２９に示す構成のうち、カメラ制御部１１１及び画像撮影部１１２以外の構成は、図２５に示す第１０の実施例の構成と同様と考えてよい。但し、本手法は３軸に限らず２軸であっても適用可能であり、ここでは、２軸を例にして説明する。従って、距離算出部１１４は除外して考えるものとし、図３０のフローチャートもこれに対応した処理を示すものとする。【０１３５】
図３０において図２６に示す処理と略同一の処理には同一ステップ番号を付すものとする。すなわち、図３０の処理においては、ステップＳ１２７の処理を行わない点を除いては図２６に示す処理と略同様であり、同一ステップ番号を付してある（但し、上記の通り、全体的に、３軸ではなく、２軸に対応する処理を行うものとする）。その意味では、図２６においても説明した主旨と同様の理由により、図３０の処理の代わりに、図５をベースにして、そのステップＳ１６の処理の次にステップＳ１３１の処理を実行する形態としてもよい。勿論、図２６の処理に基づき、そのステップＳ１２７の処理の後に本例のステップＳ１３１の処理を行っても良い。また、当然、本手法は、第２の実施例等にも適用可能である。【０１３６】
本説明における図３０の処理では、ステップＳ１２６の処理の次にステップＳ１３１の処理を行っている。詳しくは後述する。
図１や図２５においても、カメラ制御部１１１、画像撮影部１１２に相当する構成は存在している（省略して示しているだけである。これは他の実施例の機能ブロック図に関しても同様）。但し、第１の実施例等では、カメラ制御部はユーザの操作に従って画像撮影部を制御して撮像を行わせているのに対して、本例のカメラ制御部１１１では、図３０に示すステップＳ１３１の処理も行っており、これによりユーザの操作に係わらず画像撮影部を制御して撮像を終了させる場合がある。【０１３７】
以下、カメラ制御部１１１によるステップＳ１３１の処理について説明する。
図２９に示す通り、カメラ制御部１１１には、ずれ量算出部１１５が算出した各「基準画像とのずれ量」が入力しており、カメラ制御部１１１は、まず、この「基準画像とのずれ量」から「隣接するフレーム画像間のずれ量」を算出する。すなわち、今回入力した「基準画像とのずれ量」と前回入力した「基準画像とのずれ量」との差を求める（つまり、現フレームｍと基準画像とのずれ量Ａmと直前フレーム画像ｍ−１と基準画像とのずれ量Ａm−１との差；Ａm−Ａm−１）を求める。尚、本例は第１の実施例に適用した例であるが、第２の実施例に適用した場合には、例えば図６のずれ量算出部２３が算出するずれ量は、「隣接するフレーム画像間のずれ量」を意味するものであるので、この様な処理は必要ない。尚、基準画像が更新された直後のフレーム画像に関する「基準画像とのずれ量」は、そのまま、「隣接するフレーム画像間のずれ量」として扱う。【０１３８】
カメラ制御部１１１は、第１フレームから現フレームｍまでの「隣接するフレーム画像間のずれ量」の総和（Ａ１＋Ａ２＋Ａ３＋・・・Ａm−１＋Ａm）を求める（以下、単にずれ量の総和と記す）。この様に新たなずれ量が入力されて新たなずれ量の総和を算出する毎に、このずれ量の総和を、予め設定されている閾値Ｒと比較して、ずれ量の総和≦閾値Ｒであれば（ステップＳ１３１，ＮＯ）そのまま処理続行し、ずれ量の総和＞閾値Ｒとなったら（ステップＳ１３１，ＹＥＳ）、画像撮影部１１２に対して撮影終了を指示する。これにより、ユーザの操作に係わらず撮像処理が強制終了される。尚、閾値Ｒは、例えば図２８の例に示す程度の値とする。尚、図３０には示していないが、ステップＳ１３１の判定がＹＥＳとなり撮影終了させたときの最終フレーム画像を必ず用いてパノラマ画像を生成してもよい。【０１３９】
以下に説明する第１２の実施例〜第１５の実施例は、上述した第１１の実施例の他の実施形態である。すなわち、第１２の実施例〜第１５の実施例は、第１１の実施例と同様に、ユーザに撮影終了の操作を行わせることなく撮影を自動的に停止することを基本的な特徴としているが、各々異なる観点／目的に応じた特徴を有している。【０１４０】
まず、第１２の実施例について、図３１を参照して説明する。
第１２の実施例では、画素数ではなく１画像の画角を保持し、ユーザの設定内容に応じて画角から画素数（閾値Ｒに相当）を算出する。【０１４１】
図３１は、第１２の実施例の画像合成装置の処理フローチャート図である。尚、第１２の実施例の画像合成装置の機能ブロックは、図２９と同様であってよく、特に図示しない。【０１４２】
図３１において、図３０に示す処理と同様の処理については同一ステップ番号を付してあり、その説明は省略する。図示の通り、ステップＳ１２１、Ｓ１２２、Ｓ１２３、Ｓ１２４、Ｓ１２５、Ｓ１２６、Ｓ１２８、及びＳ１２９は、図３０に示す同一ステップ番号の処理と同様の処理である。本例では、初期処理として、ステップＳ１２１の処理以外に、ステップＳ１４１〜Ｓ１４３の処理を実行し、ステップＳ１３１の処理の代わりにステップＳ１４４の処理を行う点で、図３０に示す処理と異なる。但し、ステップＳ１４４の処理は、ステップＳ１３１の閾値Ｒの代わりにステップＳ１４３で決定したパノラマ画像の画素数を用いる点以外は、ステップＳ１３１の処理と略同様である（この場合、ずれ量は画素数の形式で算出される）（勿論、隣接するフレーム画像間のずれ量の算出、及びその総和の算出を行っている）。従って、以下、ステップＳ１４１〜Ｓ１４３の処理についてのみ説明する。【０１４３】
まず、予め、１フレーム画像の画角が設定されているものとする（ステップＳ１４１）。これは例えば図２８で説明した例では６０°である。
そして、撮影を行うエンドユーザ等が、撮影の際にカメラを操作して、解像度とパノラマ角度を指定する（ステップＳ１４２）。ステップＳ１４１、Ｓ１４２による設定／指定内容は、例えば、カメラ制御部１１１に入力される。カメラ制御部１１１は、これら設定／指定内容に応じたパノラマ画像の画素数を算出して記憶し、上記の通りステップＳ１４４の処理においてこのパノラマ画像の画素数を閾値として用いて、撮影を終了させるか否かの判定を行う。【０１４４】
上記ステップＳ１４１，Ｓ１４２による設定／指定内容が例えば以下の通りであるとする（この例では、撮影方向は横方向であると決まっているものとする）。
横方向画角  ＝  θ  （例；６０°）
カメラ解像度  ＝  Ｐｘ（例；横１２８０画素）
パノラマ角度  ＝  θＭＡＸ（例；３６０°）
すると、ステップＳ１４３によるパノラマ画像の画素数の算出式は以下の通りとなる。【０１４５】
パノラマ画素数  ＝  Ｐｘ×θＭＡＸ／θ
（例；１２８０×３６０／６０＝７６８０画素）
この様に、本例では、ユーザが指定するパノラマ角度等に応じて、適切なときに自動的に撮影を終了することができ、ユーザが指定するパノラマ角度のパノラマ画像を生成できる。【０１４６】
次に、以下、第１３の実施例について説明する。
第１３の実施例では、撮影方向のずれ量が０になったとき、あるいは０に近づいたときに動画像の撮影を終了する。これにより、ユーザがパノラマ撮影を終了させたいときは、終了させたいシーンでカメラの動きを止めれば、自動的にそこまでのパノラマ画像を生成することができる。シャッターを押すなどの手操作は、上下方向など、意図しない方向へのずれを生じさせる可能性があるため、最終画像の近辺でおかしな画像選択になってしまう場合がある。ユーザのボタン操作を無くすことで、最後までスムーズなカメラ移動で撮影を行うことが可能となる為、良好なパノラマ画像生成が可能となる。【０１４７】
図３２は、第１３の実施例の画像合成装置の処理フローチャート図である。尚、第１３の実施例の画像合成装置の機能ブロックは、図２９と同様であってよく、特に図示しない。【０１４８】
図３２において、図３０に示す処理と同様の処理については同一ステップ番号を付してあり、その説明は省略する。図示の通り、ステップＳ１２１、Ｓ１２２、Ｓ１２３、Ｓ１２４、Ｓ１２５、Ｓ１２６、Ｓ１２８、及びＳ１２９は、図３０に示す同一ステップ番号の処理と同様の処理である。図３２の処理では、図３０におけるステップＳ１３１の処理の代わりに、ステップＳ１５１の処理を行う。ステップＳ１５１の処理は例えばカメラ制御部１１１が行う。【０１４９】
ステップＳ１５１では、カメラ制御部１１１は、各フレーム入力毎に、ずれ量算出部１１５が算出した基準画像とのずれ量（撮影方向へのずれ量）を入力すると、まず、上述したステップＳ１３１と同様に、この「基準画像とのずれ量」から「隣接するフレーム画像間のずれ量（直前フレーム画像とのずれ量）」を算出する。本例の以下の説明における“ずれ量”とは、この「隣接するフレーム画像間のずれ量」を意味するものとする。尚、本手法は第２の実施例等にも適用可能であり、第２の実施例に適用した場合には、上述した通り、「隣接するフレーム画像間のずれ量」は既にずれ量算出部２３により求められている。【０１５０】
ステップＳ１５１では、上記算出したずれ量が０の場合又はこのずれ量が予め設定される閾値Ｓ未満の場合には（ずれ量＝０  ｏｒ  ずれ量＜閾値Ｓ）（ステップＳ１５１，ＹＥＳ）、画像撮影部１１２に対して撮影停止指令を出し、撮影を終了させる。第１１の実施例では、ずれ量の総和を算出してこれを閾値Ｒと比較していたが、本例では入力するずれ量そのものを閾値Ｓと比較している。当然、閾値Ｓは、閾値Ｒとは異なるものであり、例えば上述した「０に近づいたときに動画像の撮影を終了する」ことを実現する為に、０に近い任意の値が設定される。尚、ステップＳ１５１におけるずれ量、閾値は、その絶対値を用いても良い。【０１５１】
次に、第１４の実施例について説明する。
第１４の実施例では、ずれ量の向きがこれまでの向きと大きく異なるときに（例えば大きく反対方向になった場合）、その直前までのフレームでパノラマ画像を作成して撮影を自動停止させる。例えば何らかの原因でカメラが大きくぶれたときには、そのぶれ以降はユーザが意図したカメラ移動ではないと判断し、それまでの動画撮影からパノラマ画像を生成する。あるいは、例えばユーザが意図してパノラマ撮影を停止したい場合には、カメラを大きく別方向に振ることで、ボタン操作無しにパノラマ撮影を停止できる。【０１５２】
図３３は、第１４の実施例の画像合成装置の処理フローチャート図である。尚、第１４の実施例の画像合成装置の機能ブロックは、図２９と同様であってよく、特に図示しない。【０１５３】
図３３において、図３０に示す処理と同様の処理については同一ステップ番号を付してあり、その説明は省略する。図示の通り、ステップＳ１２１、Ｓ１２２、Ｓ１２３、Ｓ１２４、Ｓ１２５、Ｓ１２６、Ｓ１２８、及びＳ１２９は、図３０に示す同一ステップ番号の処理と同様の処理である。図３３の処理では、図３０におけるステップＳ１３１の処理の代わりに、ステップＳ１６１の処理を行う。ステップＳ１６１の処理は例えばカメラ制御部１１１が行う。【０１５４】
尚、図３３に示す処理は、ずれ量が正の値となる方向が撮影方向である場合（つまり、右方向又は上方向が撮影方向）の処理例を示してある。
ステップＳ１６１では、カメラ制御部１１１は、各フレーム入力毎に、ずれ量算出部１１５が算出したずれ量（撮影方向のずれ量）を入力すると、この撮影方向ずれ量が負（ずれ量＜０）の場合且つ予め設定される閾値Ｔを越える場合には（撮影方向ずれ量＜０  且つ  abs（撮影方向ずれ量）＞閾値Ｔ）（ステップＳ１６１，ＹＥＳ）、画像撮影部１１２に対して撮影停止指令を出し、撮影を終了させる。【０１５５】
例えば、撮影開始からずっと右方向で撮影していたのに、突然、左方向に変わった場合には、ずれ量（横方向ずれ量、縦方向ずれ量）のうち、横方向ずれ量が、正の値から負の値になる。そして、更に、この横方向ずれ量の絶対値がある程度以上大きければ（閾値Ｔを越える場合には）、ステップＳ１６１の判定がＹＥＳとなることになる。【０１５６】
また、図３３には示していないが、直前フレームを一時的に保持するようにしており、ステップＳ１６１の判定がＹＥＳのときの入力フレームの直前フレームを用いてパノラマ画像合成を行ったうえで、本処理を終了する。【０１５７】
尚、上記ａｂｓとは、よく知られているように、絶対値を求める関数であり、よって、上記ａｂｓ（ずれ量）はずれ量の絶対値を意味する。尚、上記ステップＳ１６１の判定処理は、例えば、「撮影方向ずれ量の正／負が逆転、且つabs（撮影方向ずれ量）＞閾値Ｔ」等としてもよい（撮影方向が上下左右何れの方向でも対応できる形）。【０１５８】
次に、以下、第１５の実施例について説明する。
例えば、横方向パノラマを作成する際に上下方向に大きくずれると、生成画像は図３６ようにフレームアウトしていってしまう。フレームアウトする前に処理を打ち切ることで、図３６のような画像にならずに途中までのパノラマ化を作成することができる。処理を打ち切る前にユーザに通知してもよい。【０１５９】
第１５の実施例では、予め図３４に示す設定データ１２０が登録されている。設定データ１２０において、図示の設定名１２１、向き１２２、及び距離１２３は、図９に示すものと同じであり、これに許容値１２４が加わっている。許容値１２４は、撮影方向に対して直交する方向（直交方向；異方向）が向き１２２である場合の、０を基準としたマージンである。例えば、撮影方向が横方向である場合、異方向は縦方向であるので、許容値１２４は±４０となり、後述するステップＳ１７１の処理ではこの±４０を用いて判定を行うことになる。尚、この例に限らず、例えば、許容値１２４は、撮影方向が向き１２２である場合の、０を基準としたマージンと考えても良い。第１５の実施例の機能ブロック図は特に図示しないが、例えば一例として、図８に示す画像合成装置３０と同様の構成をベースにして、更に、図２９と同様にしてカメラ制御部１１１と画像撮影部１１２が加わった構成等としてよいし、他の実施例の画像合成装置の構成をベースにしてカメラ制御部１１１と画像撮影部１１２が加わった構成等としてもよい。【０１６０】
図３５は、第１５の実施例の画像合成装置の処理フローチャート図である。
図３５において、図３０に示す処理と同様の処理については同一ステップ番号を付してあり、その説明は省略する。図示の通り、ステップＳ１２２、Ｓ１２３、Ｓ１２４、Ｓ１２５、Ｓ１２６、及びＳ１２９は、図３０に示す同一ステップ番号の処理と同様の処理である。【０１６１】
図３５の処理では、まず、予め、図３４に示す設定データ１２０（各向き毎に、画像合成距離と上記異方向マージン）が設定されている（ステップＳ１７０）。そして、パノラマ画像生成の為の動画撮影が開始されると、ステップＳ１２２〜Ｓ１２６の処理を行い、ステップＳ１２６で算出されたずれ量のうち異方向ずれ量を用いて、「abs（異方向ずれ量の総和）＞異方向マージン」の条件を満たすか否かを判定し（ステップＳ１７１）、「異方向ずれ量の総和の絶対値＞異方向マージン」であるならば（ステップＳ１７１、ＹＥＳ）、撮影を強制終了（中止）する。尚、異方向ずれ量の総和は、例えば現フレームと第１フレーム画像又は最初の基準画像との異方向ずれ量を意味するものとなる。【０１６２】
尚、上記ステップＳ１７１の判定では、絶対値を用いているが、図３４に示す例では許容値１２４は±４０等のように正・負両方に対応しているので、特に絶対値を用いなくてもよい（例えば、−４０〜＋４０の範囲内であればステップＳ１７１の判定はＮＯであり、それ以外はステップＳ１７１の判定はＹＥＳとする）。【０１６３】
一方、ステップＳ１７１の判定がＮＯならば、「撮影方向ずれ量＞画像合成距離」であるか否かを判定し（ステップＳ１７２）、ＹＥＳならば現フレームを用いてパノラマ画像合成処理を行う（ステップＳ１２９）。尚、上記異方向マージン及び画像合成距離は、設定データ１２０を参照して、撮影方向、その異方向に応じた距離１２３、許容値１２４が取得されるものである。撮影方向は、予め設定されていてもよいし、自動的に判別するものであってもよい。【０１６４】
次に、以下、第１６の実施例について説明する。
第１６の実施例では、ユーザによる撮影操作に問題があると判定した場合に、ユーザに警告を通知する。例えば横方向パノラマ化で上下方向にずれが大きいときは、例えば「上方向にずれていっています」ということを示すアイコンをディスプレイ上（デジカメの液晶ファインダ上）に表示する。勿論、表示ではなく音や光などによって通知してもよい（これらをまとめて、“報知する”と表現するものとする）。ここでは、一例として、表示を行う例について説明する。【０１６５】
図３７に、第１６の実施例の画像合成装置１３０の機能ブロック図を示す。
図３７において、図１に示す構成と略同様の構成（図示の基準画像保持部１１〜距離保持部１７）には同一符号を付してあり、説明は省略する。尚、これは、ここでの説明では回転成分は考慮しないことを示しているだけであり、これらは例えば図２９等の構成と略同様と考えても良い。図３７では、更に、カメラ１３２と撮影画像表示部１３１とが備えられる。カメラ１３２は、例えば図２９における“カメラ制御部１１１＋画像撮影部１１２”に相当する構成である。撮影画像表示部１３１は、例えば上記液晶ファインダとその表示制御部に相当する構成である（この例に限らないが、撮影中にユーザが通常見ている表示画面中に警告を表示させる必要がある）。【０１６６】
図３８に、第１６の実施例の画像合成装置１３０の処理フローチャート図を示す。
図３８において、図３０に示す処理と同様の処理については同一ステップ番号を付してあり、その説明は省略する。図示の通り、ステップＳ１２２、Ｓ１２３、Ｓ１２４、Ｓ１２５、Ｓ１２６、Ｓ１２８、及びＳ１２９は、図３０に示す同一ステップ番号の処理と同様の処理である。尚、図３８に示すフローは、撮影方向が横方向に決まっていることを前提にした処理である。この為に、図３８のステップＳ１２８の処理が図３０のステップＳ１２８の処理と多少表現が異なっているが、実質的に同じ処理なので、同一符号を付してある。尚、撮影方向が縦方向ならば、当然、図３８に示す“縦”と“横”を逆にした（縦→横、横→縦）内容の処理が行われることになる。【０１６７】
図３８において、まず、予め、画像合成距離が設定されると共に、縦方向ずれ量に対応する閾値Ｕが設定されている。この閾値Ｕは例えば撮影画像表示部１３１に記憶される。撮影画像表示部１３１には、図３７に示す通り、ずれ量算出部１２が算出したずれ量（横方向ずれ量、縦方向ずれ量）が入力しており、ステップＳ１６の処理によってずれ量が入力される毎に、縦方向ずれ量の総和（現フレーム画像と第１基準画像（例えば第１フレーム画像等）との縦方向ずれ量に相当する）を算出する。図２８等で説明した例では、撮影方向（横方向）のずれ量の総和を求めたが、同様にして、縦方向のずれ量の総和を求めればよい。【０１６８】
そして、「縦方向ずれ量の総和＞閾値Ｕ」の条件が成立するか否かを判定し（ステップＳ１８２）、成立する場合には（ステップＳ１８２，ＹＥＳ）、上記液晶ファインダ上等に警告を表示する（ステップＳ１８３）。尚、閾値Ｕの値は任意でよいが、本例の主旨を考えれば当然、図３３の閾値Ｔや図３５の異方向マージンよりは小さい値とすべきである。すなわち、撮影中止としなければならない事態になる前に、警告を発して、ユーザに操作の修正を促すようにする。また、尚、ステップＳ１８２の処理においては、“縦方向ずれ量の総和”の絶対値を用いるようにしてもよい（値が負となる方向（下方向）にも対応する為である）。【０１６９】
次に、以下、第１７の実施例について説明する。
第１７の実施例では、基準となるずれ量を保持し、この基準ずれ量と現在の隣接フレーム間ずれ量（現フレームと直前フレームとのずれ量）とを比較する。ユーザのカメラ移動が速すぎるとき、あるいは遅すぎるときに、それを検知してユーザに通知する。カメラ移動が速すぎるときは、動画といえども画素が横に流れるためパノラマ画像が横ににじんだような画像になってしまう。逆に遅すぎるときは、フレーム内に車や人などの動く物体があったときに基準画像間での被写体動き量が大きくなってしまい、たとえば、選択した各基準画像内すべてに同じ人が写っている（カメラの移動速度と歩く速度が近い場合）などの不自然な画になってしまう。カメラの移動速度には適切な速度範囲があり、この速度範囲から遅くても速くてもワーニングを表示するようにすることで、パノラマ化の成功率を高めることができる。【０１７０】
図３９に、第１７の実施例の画像合成装置１４０の機能ブロック図を示し、図４１にその処理フローチャート図を示す。
図３９において、図２２に示す構成と略同様の構成には同一符号を付してあり、説明は省略する。図示の通り、第１７の実施例の画像合成装置１４０は、図２２と同様の構成として、距離保持部２１、直前フレーム保持部２２、ずれ量算出部２３、累積部２４、判定部２５、直前フレーム更新部２６、パノラマ画像保持部２７、及び画像合成部２８を備える。図３９の構成では、更に、図３７に示すカメラ１３２と撮影画像表示部１３１とが備えられる。但し、ここでは、上記カメラ移動速度の適切／不適切の判定とワーニングの通知は、距離算出部１４１が行うものであり、撮影画像表示部１３１は単にワ−ニング表示を行う機能部に過ぎない。【０１７１】
距離算出部１４１は、図２２に示す距離算出部８１と同様の処理機能を備え、更に本例の特徴である図４０に示すステップＳ１９１、Ｓ１９２の処理を実行する処理機能も備える。すなわち、ずれ量算出部３２がステップＳ３６で算出したずれ量（現フレームと直前フレームとのずれ量；すなわち、隣接するフレーム間のずれ量）が、累積部２４を介して距離算出部１４１に入力されると、距離算出部１４１は、ステップＳ１９１、Ｓ１９２の処理を実行する。尚、図４０において、図２３に示す処理と同様の処理については同一ステップ番号を付してあり、その説明は省略する。【０１７２】
まず、距離算出部１４１には、予め、任意の範囲（上限、下限）が記憶されている。上述した通り、ユーザによるカメラの移動速度には、上限、下限があり、速度が上限より速い場合、速度が下限よりも遅い場合の何れの場合も、不適切な操作である。上記記憶されている上限、下限は、各々、上記カメラの移動速度の上限、下限に対応するずれ量（撮影方向ずれ量）である。各移動速度に応じたずれ量は、実機で試験することにより容易に求めることができるし、既知の計算により求めることもできる。【０１７３】
距離算出部１４１は、ステップＳ１９１の処理において、ずれ量算出部３２が算出したずれ量（現フレームと直前フレームとのずれ量であって撮影方向ずれ量）が、上記範囲内に収まっているか否かを判定し（“下限＜ずれ量＜上限”か否かを判定し）、ずれ量が範囲内であれば（ステップＳ１９１、ＹＥＳ）、そのまま処理を続行し（ステップＳ３７以降の処理に移り）、ずれ量が範囲外であれば（ステップＳ１９１、ＮＯ）、ユーザに対して警告を行う（ステップＳ１９２）。警告方法は、メッセージの表示、音声／ブザーによる警告等、様々であってよく、例えば、撮影画像表示部１３２に、「カメラ移動操作が早すぎる（又は遅すぎる）旨のメッセージを表示する。尚、当然、ステップＳ１９１の判定に用いるずれ量は、撮影方向ずれ量である。【０１７４】
尚、本例は、基準画像とのずれ量を求める形態に適用してもよく、その場合には、上記第１１の実施例で説明したように、基準画像とのずれ量に基づいて上記「隣接するフレーム画像間のずれ量」を算出する。すなわち、今回入力した「基準画像とのずれ量」と前回入力した「基準画像とのずれ量」との差を求める（つまり、現フレームｍと基準画像とのずれ量Ａmと直前フレーム画像ｍ−１と基準画像とのずれ量Ａm−１との差；Ａm−Ａm−１）を求める。【０１７５】
次に、以下、第１８の実施例について説明する。
第１８の実施例では、過去に算出したずれ量をいくつか保持しておき、その値と現在の隣接フレーム間のずれ量とを比較する。カメラの移動速度にムラがあるとき（速くなったり遅くなったり）するときも、一部分の画像がにじんでいたりする不自然な画像になってしまう。カメラの移動速度は均一であることが望ましいため、過去のずれ量と現在ずれ量とを比較して差が大きいときにワーニングを表示することで、パノラマ化の成功率を高めることができる。【０１７６】
図４１に、第１８の実施例の画像合成装置の処理フローチャート図を示す。
尚、第１８の実施例の画像合成装置の機能ブロック図は、特に図示しないが、例えば図３９と略同様であってよい。但し、距離算出部１４１の処理内容は、第１７の実施例とは異なる。すなわち、ステップＳ１９１、Ｓ１９２の処理の代わりに、図４１に示すステップＳ２０１〜Ｓ２０４の処理を実行する点で異なる。尚、図４１において図４０の処理と略同様の処理には同一ステップ番号を付してあり、その説明は省略する。従って、以下、ステップＳ２０１〜Ｓ２０４の処理についてのみ説明する。【０１７７】
まず、距離算出部１４１は、第１７の実施例の場合と同様、各フレーム入力毎にずれ量算出部２３が算出したずれ量（現フレームと直前フレームとのずれ量であって撮影方向ずれ量）を入力するが、本例の距離算出部１４１では過去の複数フレーム分のずれ量を記憶しておく。そして、最新のずれ量が入力されると、まず記憶してあるずれ量の中で最も古いずれ量を破棄して、代わりに最新のずれ量を記憶する（ステップＳ２０１）。尚、ステップＳ２０１の処理は後述するステップＳ２０３又はＳ２０４の処理後に行うようにしてもよい。【０１７８】
そして、記憶してある過去の複数フレーム分のずれ量から、閾値Ｖを算出する（ステップＳ２０２）。閾値Ｖの算出方法は、様々であってよく、一例として以下の例１、例２を挙げるが、他の方法であっても良い。
・例１；閾値Ｖ＝保持してある過去のずれ量のうちの最大値（但し、予め任意に設定される初期値より小さい場合には初期値を用いる）
・例２；閾値Ｖ＝保持してある過去のずれ量の標準偏差（２σ）以上、且つ上記初期値より大きいもの
そして、今回算出された最新のずれ量を上記閾値Ｖと比較して、最新ずれ量＞閾値Ｖであれば（ステップＳ２０３，ＹＥＳ）、ユーザに対して警告を通知する（ステップＳ２０４）。警告の通知方法は、第１７の実施例の場合と同様であってよい。【０１７９】
次に、以下、第１９の実施例について説明する。
第１９の実施例では、たとえば横方向パノラマ画像を作成するときに誤って縦方向にカメラを動かすなどの誤ったオペレーションを自動検知してユーザに通知することで、素早く誤りを察知し、正しいパノラマ化のためのカメラ移動を行うことが可能となる。【０１８０】
図４２に、第１９の実施例の画像合成装置の処理フローチャート図を示す。
尚、第１９の実施例の画像合成装置の機能ブロック図は、特に図示しないが、例えば図３９と略同様であってよい。但し、距離算出部１４１の処理内容は、第１７の実施例とは異なる。すなわち、ステップＳ１９１、Ｓ１９２の処理の代わりに、図４２に示すステップＳ２１１〜Ｓ２１２の処理を実行する点で異なる。尚、図４１において図４０の処理と略同様の処理には同一ステップ番号を付してあり、その説明は省略する（尚、図４２では、撮影方向が横方向に決まっていることを前提にした処理を示している為、多少表現が異なるステップもあるが、実質的に略同一の処理については同一符号を付してある）。【０１８１】
従って、以下、ステップＳ２１１〜Ｓ２１２の処理についてのみ説明する。
本例においても、上記第１８、第１８の実施例と同様、距離算出部１４１にずれ量が入力しているが、第１８、第１８の実施例とは異なり、撮影方向ではなく異方向のずれ量を用いて、ステップＳ２１１の処理を行う。上記の通りここでは撮影方向が横方向であるとしているので、今回の現フレームと直前フレームとの縦方向ずれ量を用いて、「縦方向ずれ量＜閾値Ｗ」であるか否かを判定し（ステップＳ２１１）、ＹＥＳであるならば、ユーザに対して警告を通知する（ステップＳ２１２）。警告の通知方法は、第１７の実施例の場合と同様であってよい。尚、閾値Ｗの設定値は任意でよいが、例えば一例としては、閾値Ｗのずれ量のずれが、複数フレーム（例えば５フレーム程度）連続した場合に図３６に示すフレームアウトが生じるような値等とする。【０１８２】
以上述べたように、本発明の基本的な特徴では、動画像からパノラマ画像を作成する際、全フレームをパノラマ合成に用いるのではなく、特定のフレームのみを自動選択することで、ユーザのオペレーション無しに必要最低限のフレームからパノラマ画像を作成できるため、高速、省メモリなどの効果がある。【０１８３】
尚、上記第３の実施例以降の各実施例の機能ブロック図、フローチャート図は、その実施例以前に説明した他の実施例のうちの１つをベースにしたものとなっているが、当然、これは一例を示しているに過ぎず、当該１つの他の実施例以外の他の実施例に適用することは可能である。また、既に多少説明してあるが、ａｂｓ（絶対値）を用いる判定は、必ずしも絶対値を用いる必要があるとは限らず、逆に、ａｂｓ（絶対値）を用いない判定は、必要に応じて絶対値を用いるようにしてもよい。【０１８４】
図４３に、上記画像合成装置のハードウェア構成を示す。
上記画像合成装置が例えばディジタルカメラに搭載されている場合には、このディジタルカメラのハードウェア構成は、例えば上記特許文献１における図１に示す構成等であってよい。本例の画像合成装置は、基本的には、ＣＰＵが、メモリ等に予め記憶されている所定のアプリケーションプログラムを読み出し・実行することにより実現される。その際、各種設定データを参照する場合もある。図４３では、この様な画像合成装置に係わるコンピュータのハードウェア構成のみを示すものとする。【０１８５】
図４３に示すコンピュータ２００は、ＣＰＵ２０１、メモリ２０２、入力装置２０３、出力装置２０４、記憶装置２０５、媒体駆動装置２０６、ネットワーク接続装置２０７等を有し、これらがバス２０８に接続された構成となっている。同図に示す構成は一例であり、これに限るものではない。【０１８６】
ＣＰＵ２０１は、当該コンピュータ２００全体を制御する中央処理装置である。
メモリ２０２は、プログラム実行、データ更新等の際に、記憶装置２０５（あるいは可搬型記録媒体２０９）に記憶されているプログラムあるいはデータを一時的に格納するＲＡＭ等のメモリである。ＣＰＵ２０１は、メモリ２０２に読み出したプログラム／データを用いて、上述してある各種処理（図１〜図４３に示す機能ブロック図の各機能部の処理やフローチャートの処理）を実行する。【０１８７】
記憶装置２０５は、例えばハードディスク装置、フラッシュメモリ等であり、上述してある各種処理（図１〜図４３に示す機能ブロック図の各機能部の処理やフローチャートの処理）をＣＰＵ２０１により実行させる為のプログラム／データ等が格納されている。例えば、図９や図２４、図２７、図３４に示す各種データや、ユーザ等が設定する撮影方向、画像合成距離等のデータが格納される。尚、これらプログラム／データは、可搬型記録媒体２０９に記録されていてもよい。【０１８８】
媒体駆動装置２０６は、可搬型記録媒体２０９に記憶されているプログラム／データ等を読み出す。可搬型記録媒体２０９は、例えば、メモリカード、ＣＤ−ＲＯＭ、ＤＶＤ等である。ネットワーク接続装置２０７は、ネットワークに接続して、外部の情報処理装置とプログラム／データ等の送受信を可能にする構成であり、上記各種処理をＣＰＵ２０１に実行させるプログラム／データは、ネットワーク接続装置２０７を介して外部の情報処理装置からダウンロードするものであってもよい。但し、媒体駆動装置２０６、ネットワーク接続装置２０７、可搬型記録媒体２０９は、無くてもよい。【０１８９】
入力装置２０３は、例えばディジタルカメラの各種ボタン（動画像撮影開始ボタン、各種設定／指示用ボタン等；不図示）である。出力装置２０４は例えば液晶ディスプレイ、ファインダ、ブザー、スピーカー等である。
【図１】
2008087721.tif 000003
【図２】
2008087721.tif 000004
【図３】
2008087721.tif 000005
【図４】
2008087721.tif 000006
【図５】
2008087721.tif 000007
【図６】
2008087721.tif 000008
【図７】
2008087721.tif 000009
【図８】
2008087721.tif 000010
【図９】
2008087721.tif 000011
【図１０】
2008087721.tif 000012
【図１１】
2008087721.tif 000013
【図１２】
2008087721.tif 000014
【図１３】
2008087721.tif 000015
【図１４】
2008087721.tif 000016
【図１５】
2008087721.tif 000017
【図１６】
2008087721.tif 000018
【図１７】
2008087721.tif 000019
【図１８】
2008087721.tif 000020
【図１９】
2008087721.tif 000021
【図２０】
2008087721.tif 000022
【図２１Ａ】
2008087721.tif 000023
【図２１Ｂ】
2008087721.tif 000024
【図２１Ｃ】
2008087721.tif 000025
【図２２】
2008087721.tif 000026
【図２３】
2008087721.tif 000027
【図２４】
2008087721.tif 000028
【図２５】
2008087721.tif 000029
【図２６】
2008087721.tif 000030
【図２７】
2008087721.tif 000031
【図２８】
2008087721.tif 000032
【図２９】
2008087721.tif 000033
【図３０】
2008087721.tif 000034
【図３１】
2008087721.tif 000035
【図３２】
2008087721.tif 000036
【図３３】
2008087721.tif 000037
【図３４】
2008087721.tif 000038
【図３５】
2008087721.tif 000039
【図３６】
2008087721.tif 000040
【図３７】
2008087721.tif 000041
【図３８】
2008087721.tif 000042
【図３９】
2008087721.tif 000043
【図４０】
2008087721.tif 000044
【図４１】
2008087721.tif 000045
【図４２】
2008087721.tif 000046
【図４３】
2008087721.tif 000047
【手続補正書】
【提出日】平成21年4月7日(2009.4.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
動画像を用いてパノラマ画像を生成する画像合成装置であって、
第１の閾値を記憶する閾値記憶手段と、
前記動画像を構成する各フレーム画像を入力する毎に、該入力画像と基準画像とのずれ量を算出する第１のずれ量算出手段と、
前記算出したずれ量が前記第１の閾値を越えたときの前記入力画像を、合成用画像として選択する第１の画像選択手段と、
前記第１の画像選択手段が前記合成用画像を選択する毎に、該選択された合成用画像を新たな前記基準画像として記憶する基準画像更新手段と、
前記第１の画像選択手段が選択した各合成用画像を用いてパノラマ画像を生成する第１の画像合成手段と、を有し、
前記閾値記憶手段は、さらに所定の各方向毎に各々対応する複数種類の閾値を記憶し、
前記第１のずれ量算出手段が算出するずれ量に基づいて、前記動画像撮影の方向を判定し、該判定した方向に応じた閾値を前記閾値記憶手段から取得する方向判定手段を更に有し、
前記第１の画像選択手段は、該方向判定手段が取得した閾値を前記第１の閾値として用いて前記合成用画像の選択を行うことを特徴とする画像合成装置。
【請求項２】
動画像を用いてパノラマ画像を生成する画像合成装置であって、
第１の閾値を記憶する閾値記憶手段と、
前記動画像を構成する各フレーム画像を入力する毎に、隣接する画像間のずれ量を算出する第２のずれ量算出手段と、
前記算出したずれ量を累積する累積ずれ量算出手段と、
前記累積ずれ量が前記第１の閾値を越えたときの前記入力画像を、合成用画像として選択する第２の画像選択手段と、
該第２の画像選択手段が選択した各合成用画像を用いてパノラマ画像を生成する第２の画像合成手段と、を有し、
前記累積ずれ量算出手段は、前記第２の画像選択手段が前記合成用画像を選択する毎に、前記累積ずれ量をリセットし、
前記閾値記憶手段は、さらに所定の各方向毎に各々対応する複数種類の閾値を記憶し、
前記累積ずれ量算出手段が算出する累積ずれ量に基づいて、前記動画像撮影の方向を判定し、該判定した方向に応じた閾値を前記閾値記憶手段から取得する方向判定手段を更に有し、
前記第２の画像選択手段は、該方向判定手段が取得した閾値を前記第１の閾値として用いて前記合成用画像の選択を行うことを特徴とする画像合成装置。
【請求項３】
前記第１のずれ量算出手段による前記ずれ量算出は、前記各入力画像の縮小画像を用いておおまかなずれ量を算出するものであり、
前記第１の画像合成手段は、複数の前記合成用画像同士を合成することで前記パノラマ画像生成を行うものであり、該複数の合成用画像同士を合成する際には、隣合う合成用画像間の正確なずれ量を算出し、該算出した正確なずれ量を用いて該隣り合う合成用画像同士を合成することを特徴とする請求項１記載の画像合成装置。
【請求項４】
前記入力画像と基準画像とのずれ量が、前記第１の閾値を越えた場合、該入力画像の直前の入力画像を前記合成用画像として選択することを特徴とする請求項１記載の画像合成装置。
【請求項５】
前記第２の画像選択手段は、更に、前記ずれ量のベクトルの向きが９０度近く変化したときの前記入力画像を、前記合成用画像として選択することを特徴とする請求項２記載の画像合成装置。
【請求項６】
前記第２のずれ量算出手段が算出するずれ量のうち異方向ずれ量の値に応じて、前記閾値記憶手段に記憶されている第１の閾値の値を補正した補正閾値を算出して該算出した補正閾値を前記方向判定手段へ出力する閾値算出手段を更に有し、
該方向判定手段は前記閾値算出手段が算出した前記補正閾値を用いて前記判定を行うことを特徴とする請求項２記載の画像合成装置。
【請求項７】
前記第１のずれ量算出手段は、更に、回転方向のずれ量を算出し、
前記閾値記憶手段は、更に、前記回転方向のずれ量に対応する第２の閾値を記憶し、
前記回転方向のずれ量に基づいて前記第２の閾値を補正する閾値補正手段を更に備え、
前記第１の画像選択手段は、更に、該閾値補正手段により補正された閾値を用いた合成用画像の選択を行うことを特徴とする請求項１記載の画像合成装置。
【請求項８】
前記第２のずれ量算出手段が算出する前記ずれ量を入力し、第１番目の入力画像から現在の入力画像までのずれ量の総和を求め、該ずれ量の総和が所定値に達したときに前記動画像の撮影を強制終了する撮影制御手段、
を更に有することを特徴とする請求項２記載の画像合成装置。
【請求項９】
任意に指定される解像度とパノラマ角度と、予め設定されている１画像の画角とに基づいて、該指定された解像度とパノラマ角度とに応じた前記所定値を算出する所定値算出手段を更に有し、
前記撮影制御手段は該所定値算出手段が算出した所定値を用いることを特徴とする請求項８記載の画像合成装置。
【請求項１０】
前記第１のずれ量算出手段が算出する前記ずれ量に基づいて隣接する画像間の撮影方向ずれ量を求め、該撮影方向ずれ量が０に成ったとき又は０に近い所定の閾値Ｓ未満になったときに、前記動画像の撮影を強制終了する撮影制御手段、
を更に有することを特徴とする請求項１記載の画像合成装置。
【請求項１１】
前記第１のずれ量算出手段が算出する前記ずれ量に基づいて、撮影方向ずれ量が、正／負逆転し且つ予め設定される閾値Ｔを越える場合には、前記動画像の撮影を強制終了する撮影制御手段、
を更に有することを特徴とする請求項１記載の画像合成装置。
【請求項１２】
前記閾値記憶手段には、更に、所定の各方向毎に各々対応して、フレームアウトに係わる許容値が記憶されており、
前記第１のずれ量算出手段が算出する前記ずれ量に基づいて異方向へのずれ量の総和を求め、異方向へのずれ量の総和が、該異方向に対応する前記許容値を越える場合には、前記動画像の撮影を強制終了する撮影制御手段、
を更に有することを特徴とする請求項１記載の画像合成装置。
【請求項１３】
前記第１の閾値は撮影方向に対応する閾値であり、前記閾値記憶手段は更に該撮影方向と直交する方向に対応する第２の閾値を記憶しており、
入力画像と最初の画像又は最初の基準画像との前記撮影方向と直交する方向へのずれ量を算出し、該算出したずれ量が前記第２の閾値を超える場合には報知を行う報知手段を更に有することを特徴とする請求項１記載の画像合成装置。
【請求項１４】
前記第１の閾値は撮影方向に対応する閾値であり、前記閾値記憶手段は更に該撮影方向へのカメラの移動速度の上限又は下限に対応するずれ量である上限値又は下限値を記憶しており、
前記第１のずれ量算出手段が算出するずれ量に基づいて得られる隣接する画像間のずれ量が、上記下限値未満又は前記上限値以上となる場合には、報知を行う報知手段を更に有することを特徴とする請求項１記載の画像合成装置。
【請求項１５】
前記第１のずれ量算出手段が算出するずれ量に基づいて得られる隣接する画像間のずれ量を、過去の所定数画像分保持する隣接画像間ずれ量保持手段と、
該過去の所定数画像分の隣接画像間ずれ量に基づいて閾値Ｖを算出する閾値算出手段と、
新たな入力画像に対して算出された前記隣接画像間ずれ量が前記閾値Ｖ以上である場合には、報知を行う報知手段を更に有することを特徴とする請求項１記載の画像合成装置。
【請求項１６】
動画像を用いてパノラマ画像を生成するために、コンピュータに、
前記動画像を構成する各フレーム画像を入力する毎に、該入力画像と基準画像とのずれ量を算出する第１のずれ量算出機能と、
前記算出したずれ量が予め記憶されている閾値を越えたときの前記入力画像を、合成用画像として選択する第１の画像選択機能と、
前記第１の画像選択機能が前記合成用画像を選択する毎に、該選択された合成用画像を新たな前記基準画像として記憶する基準画像更新機能と、
前記第１の画像選択機能が選択した各合成用画像を用いてパノラマ画像を生成する第１の画像合成機能と、
前記第１のずれ量算出機能が算出するずれ量に基づいて、前記動画像撮影の方向を判定し、所定の各方向毎に各々対応する複数種類の閾値を記憶する記憶部から該判定した方向に応じた閾値を取得する方向判定機能を実現させ、
前記第１の画像選択機能は、該方向判定機能が取得した閾値を予め記憶されている閾値として用いて前記合成用画像の選択を行うことを特徴とする、プログラム。
【請求項１７】
動画像を用いてパノラマ画像を生成する画像合成方法において、
前記動画像を構成する各フレーム画像を入力する毎に、該入力画像と基準画像とのずれ量を算出し、
前記算出したずれ量が予め記憶されている閾値を越えたときの前記入力画像を、合成用画像として選択し、
前記合成用画像を選択する毎に、該選択された合成用画像を新たな前記基準画像として記憶し、
前記選択された各合成用画像を用いてパノラマ画像を生成し、
前記算出したずれ量に基づいて、前記動画像撮影の方向を判定し、所定の各方向毎に各々対応する複数種類の閾値を記憶する記憶部から該判定した方向に応じた閾値を取得し、
該取得した閾値を予め記憶されている閾値として用いて、前記合成用画像を選択することを特徴とする画像合成方法。
【国際調査報告】
2008087721.tif 000048
2008087721.tif 000049
2008087721.tif 000050
2008087721.tif 000051