(57)【要約】      （修正有）【課題】  撮影画像など動画像から取得された対象画像の合成に際して、画像ステッチ部分に移動している対象があっても、その対象の画像がボケたり二重になったりしない画像処理技術を提供する。【解決手段】  複数の対象画像（フレーム画像）をつなぎ合わせる際、複数のフレーム画像の相対的な位置関係を判別し、重ね合わされる複数のフレーム画像を特定し、特定された複数のフレーム画像における画像の重なり部分を、重なり合うフレーム画像の各々において同じ領域を区画する１以上のブロックに分割する。この各ブロックについて、ブロックに存在する被写体の動きを判定し、被写体が所定以上動いたと判断されたブロックについては、重ね合わされる複数のフレーム画像のうちの一つのフレーム画像を用い、その他のブロックについては、重ね合わされる複数のフレーム画像を用いて、前記静止画像の生成を行う。この結果、重ね合わせ部のぼけは防止される。【選択図】  図１
2005157847.tif 000002
【特許請求の範囲】
【請求項１】
動画像などから取得された複数の画像である対象画像をつなぎ合わせて、該対象画像の一つより大きな静止画像を生成する画像処理装置であって、
前記複数の対象画像の相対的な位置関係を判別し、重ね合わされる複数の対象画像を特定する画像特定部と、
該特定された複数の対象画像における画像の重なり部分を、重なり合う対象画像の各々において同じ領域を区画する１以上のブロックに分割するブロック分割部と、
前記各ブロックについて、該ブロックに存在する被写体の動きを判定する動き判定部と、
前記動き判定部により被写体が所定以上動いたと判断されたブロックについては、前記重ね合わされる複数の対象画像のうちの一つの対象画像を用い、その他のブロックについては、前記重ね合わされる複数の対象画像を用いて、前記静止画像の生成を行う静止画像生成部と、
を備えた画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記ブロック分割部は、
重ね合わされる複数の対象画像の一つを縦横に分割し、Ｍ画素×Ｎ画素（Ｍ，Ｎは２以上の整数）の大きさを有する複数のブロックを取得する第１分割部と、
前記複数の対象画像のうち、前記一つの対象画像以外の対象画像を、前記一つの対象画像の前記ブロックの位置に合わせて分割することで、前記同じ領域を区画するブロックを取得する第２分割部と、
を備え、
前記静止画像生成部は、前記第２分割部により分割された対象画像において生じ得るＭ画素×Ｎ画素以下の大きさの余剰ブロックについては、前記静止画像の生成に用いない余剰ブロック排除部を備えた
画像処理装置。
【請求項３】
請求項１または２に記載の画像処理装置であって、
前記動き判定部は、前記ブロック内の所定の画素が有する画素値を用いて、前記被写体の動きを判定する画像処理装置。
【請求項４】
動画像などから取得された複数の対象画像をつなぎ合わせて、該対象画像の一つより大きな静止画像を生成する画像処理方法であって、
前記複数の対象画像の相対的な位置関係を判別し、重ね合わされる複数の対象画像を特定する工程と、
該特定された複数の対象画像における画像の重なり部分を、重なり合う対象画像の各々において同じ領域を区画する１以上のブロックに分割する工程と、
前記各ブロックについて、該ブロックに存在する被写体の動きを判定する工程と、
前記動き判定部により被写体が所定以上動いたと判断されたブロックについては、前記重ね合わされる複数の対象画像のうちの一つの対象画像を用い、その他のブロックについては、前記重ね合わされる複数の対象画像を用いて、前記静止画像の生成を行う工程と、
を備えた画像処理方法。
【請求項５】
動画像などから取得された複数の対象画像をつなぎ合わせて、該対象画像の一つより大きな静止画像を生成する画像処理プログラムであって、
前記複数の対象画像の相対的な位置関係を判別し、重ね合わされる複数の対象画像を特定する機能と、
該特定された複数の対象画像における画像の重なり部分を、重なり合う対象画像の各々において同じ領域を区画する１以上のブロックに分割する機能と、
前記各ブロックについて、該ブロックに存在する被写体の動きを判定する機能と、
前記動き判定部により被写体が所定以上動いたと判断されたブロックについては、前記重ね合わされる複数の対象画像のうちの一つの対象画像を用い、その他のブロックについては、前記重ね合わされる複数の対象画像を用いて、前記静止画像の生成を行う機能と、
をコンピュータに実現させる画像処理プログラム。
【請求項６】
請求項５に記載の画像処理プログラムを記録した媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動画像などから取得された複数の対象画像をつなぎ合わせて、一つの対象画像より大きな静止画像を生成する画像処理技術に関する。
【背景技術】
【０００２】
撮影画像を重ねてパノラマ画像を生成する技術は従来から知られている（例えば、特許文献１および特許文献２）。
【０００３】
【特許文献１】特許公報  第２５５５０４１号
【特許文献２】特開２００３−９１４４号公報
【０００４】
これらの公報には、撮影した複数の画像から画像データ間の重なりを抽出してパノラマ画像を生成する方法や装置が開示されている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このような画像生成方法の場合、パノラマ画像の生成に使われる撮影画像を繋ぎ合わせる部分（以下、ステッチ部分という）に、例えば自動車など撮影時に移動している対象が撮影されていると、ステッチ部分では複数の静止画像を重ねるため、画像の一部に大きなズレが存在し、合成後の画像の一部がボケたり二重になったりしてしまうという問題があった。
【０００６】
本発明はこのような問題を解決するためになされたもので、撮影画像など動画像から取得された対象画像の合成に際して、画像ステッチ部分に移動している対象があっても、その対象の画像がボケたり二重になったりしない画像処理技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成する本発明の画像処理装置は、動画像などから取得された複数の対象画像をつなぎ合わせて、該対象画像の一つより大きな静止画像を生成する画像処理装置であって、前記複数の対象画像の相対的な位置関係を判別し、重ね合わされる複数の対象画像を特定する画像特定部と、該特定された複数の対象画像における画像の重なり部分を、重なり合う対象画像の各々において同じ領域を区画する１以上のブロックに分割するブロック分割部と、前記各ブロックについて、該ブロックに存在する被写体の動きを判定する動き判定部と、前記動き判定部により被写体が所定以上動いたと判断されたブロックについては、前記重ね合わされる複数の対象画像のうちの一つの対象画像を用い、その他のブロックについては、前記重ね合わされる複数の対象画像を用いて、前記静止画像の生成を行う静止画像生成部と、を備えたことを要旨とする。
【０００８】
かかる画像処理装置によれば、つなぎ合わせる対象画像の重なり部分をブロックに分割し、ブロック毎に被写体の動きを判定する。そして、被写体が動いたと判定したブロックについては、複数の対象画像のうちの一つの対象画像で静止画像を生成するため、ボケたり２重になることがない。
【０００９】
また、本発明でのブロック分割部は、重ね合わされる複数の対象画像の一つを縦横に分割し、Ｍ画素×Ｎ画素（Ｍ，Ｎは２以上の整数）の大きさを有する複数のブロックを取得する第１分割部と、前記複数の対象画像のうち、前記一つの対象画像以外の対象画像を、前記一つの対象画像の前記ブロックの位置に合わせて分割することで、前記同じ領域を区画するブロックを取得する第２分割部とを備え、前記静止画像生成部は、前記第２分割部により分割された対象画像において生じ得るＭ画素×Ｎ画素以下の大きさの余剰ブロックについては、前記静止画像の生成に用いない余剰ブロック排除部を備えたものとしてもよい。こうすれば、重ね合わせる複数の対象画像を、それぞれ同じ領域を有するブロック同士で被写体の動きを判定できる。
【００１０】
ここでブロック内に存在する被写体の動きを、前記ブロック内の所定の画素が有する画素値を用いて判定するものとしてもよい。こうすれば、ブロックの被写体の動きを、画素を単位数としたブロックの移動量として算出できる。
【００１１】
また、本発明を画像処理方法と捉えることもできる。すなわち、動画像などから取得された複数の対象画像をつなぎ合わせて、該対象画像の一つより大きな静止画像を生成する画像処理方法であって、前記複数の対象画像の相対的な位置関係を判別し、重ね合わされる複数の対象画像を特定する工程と、該特定された複数の対象画像における画像の重なり部分を、重なり合う対象画像の各々において同じ領域を区画する１以上のブロックに分割する工程と、前記各ブロックについて、該ブロックに存在する被写体の動きを判定する工程と、前記動き判定部により被写体が所定以上動いたと判断されたブロックについては、前記重ね合わされる複数の対象画像のうちの一つの対象画像を用い、その他のブロックについては、前記重ね合わされる複数の対象画像を用いて、前記静止画像の生成を行う工程と、を備えたことを要旨とする。
【００１２】
また本発明は、コンピュータプログラムおよびそのプログラムを記録した記録媒体としても捉えることができる。記録媒体としてはフレキシブルディスクやＣＤ−ＲＯＭ、ＩＣカード、パンチカードなど、コンピュータが読み取り可能な種々の媒体を利用できる。
【発明を実施するための最良の形態】
【００１３】
次に、本発明の実施の形態を実施例に基づいて説明する。図１は本発明の一実施例としての画像処理装置の概略構成を示す説明図である。この画像処理装置は、汎用のコンピュータを用いて構成され、コンピュータ１００に情報を入力する装置としてのキーボード１１０およびマウス１２０と、情報を出力する装置としてのディスプレイ１３０およびプリンタ１８０とを備えている。またコンピュータ１００に動画像を入力する装置として、デジタルビデオカメラ１６０およびＣＤ−Ｒ／ＲＷドライブ１４０、ＤＶＤ−Ｒ／ＲＷドライブ１５０を備えている。その他、必要に応じて、動画像を記憶した記憶媒体からデータを読み出すことが可能な駆動装置を備えることもできる。
【００１４】
コンピュータ１００は、所定のオペレーティングシステムの下で、複数の対象画像をつなぎ合わせて静止画像を生成するためのアプリケーションプログラムを実行することにより、画像処理装置として機能する。特に図１に示したように、このアプリケーションプログラムが実行されることにより、画像特定部１０４、ブロック分割部１０５、動き判定部１０６、静止画像生成部１０７として機能する。本実施例では、以下、こうした対象画像を動画像から取得された画像であることから、「フレーム画像」と呼ぶ。
【００１５】
各部はそれぞれ以下の処理を司る。画像特定部１０４は、コンピュータ１００に入力した動画像からキャプチャして取得したフレーム画像の相対位置算出と複数のフレーム画像を特定する。ブロック分割部１０５は、フレーム画像のステッチ部分をブロック画像に分割し、動き判定部１０６に渡す。動き判定部１０６は、分割されたブロック毎にフレーム画像の被写体の動きを判定する。静止画像生成部１０７は、各部の処理結果から所定のフレーム画像を使用してフレーム画像の一つより大きい静止画像（以降、単に「静止画像」と呼ぶ）を生成する。
【００１６】
次に、本実施例の画像処理装置が行う処理を、図２のフローチャートにより説明する。図２に示した処理が開始されると、まず、ユーザーからの指示に基づき、動画像から取得した複数のフレーム画像について、静止画像を生成するためのフレーム画像Ａとフレーム画像Ｂを、キーボード１１０などを使って選択する処理が行われる（ステップＳ２００）。次に、このフレーム画像Ａとフレーム画像Ｂについて相対位置を算出する（ステップＳ２１０）。  
【００１７】
相対位置の算出処理を図３にて説明する。図３（ａ）と図３（ｂ）は、ユーザーによって選択されたフレーム画像Ａとフレーム画像Ｂをそれぞれ示している。この例は、夕日を背景とする山の風景を左右方向にパンした画像を想定したものである。相対位置関係は、このようなパンによって得られた２枚の画像を想定した場合、両者の間には回転ズレはないことから、並進ベクトルとして求めることができる。
【００１８】
並進ベクトルは、横方向と縦方向の画素数で表現することができ、画像のパターンマッチングや特徴点追跡といった周知の処理技術によって生成することが可能である。こうして生成された並進ベクトルから算出した相対位置データが、横方向の画素数Ｘｂ、縦方向の画素数Ｙｂであれば、フレーム画像Ａの画面左上隅を基準点（０，０）とした時、フレーム画像Ｂの画面左上隅は座標（Ｘｂ，Ｙｂ）となる。この状態を図３（ｃ）に示す。こうして、フレーム画像Ａに対するフレーム画像Ｂの相対位置を算出する。
【００１９】
また、フレーム画像Ａとフレーム画像Ｂとの間で、回転や画像倍率が異なる場合は、例えばオプティカルフロー推定とパターンマッチングの組み合わせによって相対位置を算出することができる。オプティカルフロー推定には、種々の手法があり、たとえばグラディエント（ｇｒａｄｉｅｎｔ−ｂａｓｅｄ）法は、観測するフレーム画像間において対象の輝度が不変であるという仮定の下に、画像中における対象の濃度分布の空間勾配と時間勾配の関係を利用して撮影装置を基準とした被写体の移動を推定する。このオプティカルフロー推定の結果に基づいて、大まかに画像の並進移動や回転、ズーム倍率の変化を推定するとともに、この推定結果に基づいてフレーム画像Ａとフレーム画像Ｂとの間でパターンマッチングを行うことによって相対位置を算出する。
【００２０】
次に、フレーム画像Ａとフレーム画像Ｂを相対位置にて重ねた状態で、フレーム画像Ａとフレーム画像Ｂとの重なり部分、すなわちステッチ部分（図３（ｃ）破線枠の内側部分）をブロックに分割する（ステップＳ２２０）。図４（ａ）に、フレーム画像Ａとフレーム画像Ｂを分割した状態の一部を例示する。分割は、まずフレーム画像Ａを、縦横とも所定の整数（横Ｓ、縦Ｔ）にて分割する。分割数は、縦横とも８分割から１６分割の範囲が好ましい。分割数は、多くすればステッチ部分の画像は滑らかになるが、ステッチ処理は遅くなるため、滑らかさと処理速度とから決めることが望ましい。もとより、ユーザーが指定するものとしてもよい。
【００２１】
その後、フレーム画像Ｂを、そのステッチ部分がフレーム画像Ａの分割線と重なる分割線でブロックに分割する。図４（ａ）で示したように、フレーム画像Ｂは、オフセット値ｍｘ、ｍｙの位置からステッチ部分を分割することになる。ｍｘおよびｍｙは、フレーム画像Ａに対するフレーム画像Ｂの相対位置（Ｘｂ，Ｙｂ）と、フレーム画像Ａの分割数によって決まる分割間隔の長さ（縦ＢＨと横ＢＷ）とから、次式によって決まる。
ｍｘ＝Ｓ・ＢＷ−Ｘｂ  （Ｓ：整数、０≦ｍｘ＜ＢＷ）・・・（１）
ｍｙ＝Ｔ・ＢＨ−Ｙｂ  （Ｔ：整数、０≦ｍｙ＜ＢＨ）・・・（２）
図４（ａ）から明らかなように、オフセット値ｍｘとｍｙによって、フレーム画像Ｂには、フレーム画像Ａとブロック全体が重なるブロック（図４（ａ）中、そのブロックの一つを斜線で示す）と重ならない状態のブロックができる。
【００２２】
本実施例では、フレーム画像Ａを基準として考え、フレーム画像Ａを整数分割する分割線でステッチ部分をブロックに分割したが、フレーム画像Ｂを基準として整数分割する分割線でステッチ部分をブロックに分割しても何ら差し支えない。この場合、オフセット値をフレーム画像Ａに設けてフレーム画像Ａをフレーム画像Ｂに合わせて分割する。
【００２３】
次に、フレーム画像Ａとフレーム画像Ｂとのステッチ部分について、それぞれ分割したブロック毎に以下の処理を行う。まず着目したブロックについて、その全体が重なっているかを判定し（ステップＳ２３０）、全体が重ならないブロックの場合（ステップＳ２３０：ＮＯ）、静止画像生成時に一方のブロックを使用する（ステップＳ２６０）。本実施例では、上述したように、フレーム画像Ａを基準としてブロック分割しているため、全体が重ならないブロックでは、必然的にフレーム画像Ａのブロックを一つのブロックとして使用する。全体が重なるブロックの場合（ステップＳ２３０：ＹＥＳ）、そのブロックにおける被写体の動きをブロックマッチングによりブロックの移動量として算出する（ステップＳ２４０）。
【００２４】
ブロックマッチングによるブロックの移動量の算出処理（ステップＳ２４０）について、図５のフローチャートを用いて説明する。ブロックマッチングは、全体が重なるブロックについて、そのブロック間の相対的な位置をずらしていき、ずらした各々の位置で、重なる全ての画素同士の画素値差分を計算し、その値が最小になるときのブロック間の相対位置を、ブロックの移動量として求める方法である。
【００２５】
この処理が開始されると、まず、ブロックマッチングに使用する画素を設定するため、着目しているブロック自体を縦横とも整数（横Ｐ、縦Ｑ）に分割する（ステップＳ２４１）。この状態を図４（ｂ）に例示する。図４（ａ）に示した全体が重なるブロック（斜線部分）と関係付けて例示した。図４（ｂ）では、フレーム画像ＡのブロックＡＫと、フレーム画像ＢのブロックＢＫを、説明のため離して図示しているが、実際には重なっている。ブロックＡＫおよびブロックＢＫの分割は、縦横とも８分割から１６分割の範囲で、等分に分割するのが好ましい。
【００２６】
分割数は、多くすれば、ブロックの移動量を細かく算出できるため、後述する被写体の動き判定の精度は良くなるが、判定処理は遅くなる。したがって、精度と処理速度とから決めるのが望ましい。もとより、ユーザーが指定するものとしてもよい。
【００２７】
ここで、ブロックＡＫおよびブロックＢＫともに、分割した縦横の分割線の交点、つまり格子点に存在する画素（以降、「格子点画素」と呼ぶ）を、ブロックマッチング用の画素として設定する（ステップＳ２４２）。格子点上に画素が存在しない場合は、常に格子点の右下の画素とするなど所定のルールで決めるようにすれば良い。図４（ｂ）は、縦横とも８等分に分割した状態を示し、この場合の格子点画素は、ブロック外周部分を含めて合計８１点（画素）となる。
【００２８】
次に、ブロックＡＫとブロックＢＫを相対的にずらして、重なる全ての格子点画素の画素値差分の最小値を求める処理を行う（ステップＳ２４４〜Ｓ２４５）ため、その準備として、まず相対的な最大ずらし量、すなわち縦および横方向にそれぞれ最大何格子点移動するかを設定する（ステップＳ２４３）。
【００２９】
最大ずらし量は、ブロックＡＫとブロックＢＫをその量で重ねて生成した静止画像について、明らかにユーザーがボケたり２重になったと認識する量として通常設定される。具体的には、フレーム画像Ａまたはフレーム画像Ｂの解像度すなわち画面サイズに対する画素数から、最大ずらし量を何格子点分とするか決定すればよい。こうすれば、設定する最大ずらし量を超えた移動領域では、明らかに重ね合わせた画像はボケたり２重になるため、格子点画素について画素値の差分計算（後述する）を行う必要がなく、したがって計算負荷を軽減できる。
【００３０】
こうして設定した最大ずらし量の範囲内で、ブロックＡＫとブロックＢＫを一格子点ずつ相対的に移動し、全てのずらし位置において、ブロックＡＫとブロックＢＫの重なった全ての格子点画素の画素値差分（絶対値）を計算する（ステップＳ２４４）。
【００３１】
各ブロックの格子点画素の画素値（以降、単に「格子点画素値」と呼ぶ）について図４（ｂ）により説明する。図に示したように、各ブロック画面左上隅を原点（０，０）とし、画面横右方向を＋Ｘ、画面縦下方向を＋Ｙとすると、ブロックＡＫおよびブロックＢＫの各格子点画素値は、それぞれＡＫＧ（Ｘ，Ｙ）、ＢＫＧ（Ｘ，Ｙ）と表される。ここで、格子点画素値ＡＫＧおよびＢＫＧは、格子点画素が保有する画素の輝度値とする。格子点画素がＲ、Ｇ、Ｂで表される画素データを有している場合は、周知の計算式により輝度値に変換すればよい。もとより、格子点画素値としてＲＧＢ全てを用いても差し支えない。
【００３２】
次に、ブロックＡＫを基準として、ブロックＢＫを画面横（Ｘ）方向にｍ格子点分、画面縦（Ｙ）方向にｎ格子点分ずらした場合、重なった格子点において、ブロックＢＫの格子点画素値をＢＫＧ（ｉ，ｊ）と表すと、ブロックＡＫの格子点画素値はＡＫＧ（ｉ＋ｍ，ｊ＋ｎ）となる。図６は、ブロックＢＫを、ブロックＡＫに対して画面右方向に３格子分（ｍ＝＋３）、画面下方向に２格子分（ｎ＝＋２）移動した状態を示し、例えばｉ＝１、ｊ＝１の位置において、格子点画素値ＡＫＧ（４，３）を有するブロックＡＫの格子点画素と、格子点画素値ＢＫＧ（１，１）を有するブロックＢＫの格子点画素とが重なることを一例として示している。
【００３３】
ずらし位置が画面横（Ｘ）へｍ格子点、画面縦（Ｙ）へｎ格子点であるとき、重なるすべての格子点画素値の差分ＤＩＦは次式よりもとめられる。
ＤＩＦ（ｍ，ｎ）＝Σ｜ＡＫＧ（ｉ＋ｍ，ｊ＋ｎ）−ＢＫＧ（ｉ，ｊ）｜・・・（３）
ここで、ｉの値は、０≦ｉ≦Ｐ−ｍ（０≦ｍのとき）、−ｍ≦ｉ≦Ｐ（ｍ＜０のとき）を満たす整数値の範囲で、またｊの値は、０≦ｊ≦Ｑ−ｎ（０≦ｎのとき）、−ｎ≦ｊ≦Ｑ（ｎ＜０のとき）を満たす整数値の範囲で、それぞれ変更する。Ｐ、Ｑは、それぞれブロックＡＫ（ブロックＢＫ）の横の分割数、縦の分割数である。そして、変更したｉ、ｊすべての値について格子点画素値の差分を絶対値計算して合計しＤＩＦ（ｍ，ｎ）を算出する。図６の例では、破線丸印にて示したブロックＡＫとブロックＢＫの重なる格子点画素４２個の格子点画素値がＤＩＦ（ｍ，ｎ）の計算対象に該当する。この計算の結果が、ずらし位置（ｍ、ｎ）における格子点画素値の差分ＤＩＦである。
【００３４】
次に、式（３）の計算を、前の処理ステップＳ２４３（図５）にて設定した最大ずらし量の全ての範囲で、格子点を一つずつずらしながら行う。例えば、最大ずらし量が左右に４格子点分、上下に３格子点分設定されている場合は、ｍを±４、ｎを±３の範囲内の整数値で一つずつ変更し、式（３）の計算をそれぞれ行う。ｍ、ｎが取り得るすべての数値にてＤＩＦを計算し、処理ステップＳ２４４を終了する。
【００３５】
処理ステップＳ２４４の計算結果から、画素値の差分ＤＩＦが最小になる縦横のずらし位置を抽出する（ステップＳ２４５）。その後、抽出された縦横のずらし位置、すなわち移動した格子点の数から、ブロックＡＫとブロックＢＫ間の移動量を計算する（ステップＳ２４６）。移動量ＢＶは、画素値の差分ＤＩＦが最小になるときの横の格子点移動数の絶対値をｍｓ、縦の格子点移動数の絶対値をｎｓとし、ブロックＡＫ（ブロックＢＫ）の分割数の横をＰ、縦をＱ、またブロックＡＫ（ブロックＢＫ）の横の長さ（画素数）をＢＷ、縦の長さ（画素数）をＢＨとすると、次式から求められる。
ＢＶ＝｛（ｍｓ×ＢＷ／Ｐ）２＋（ｎｓ×ＢＨ／Ｑ）２｝１／２  ・・・（４）
式（４）にて計算した結果が、ブロック間の移動量ＢＶである。
【００３６】
図７にブロックマッチングによって算出した移動量ＢＶを例示する。図７は、画面の斜面上を右から左に自動車が走っていることを想定して描いた模式図である。図７（ａ）はブロックＡＫの画像を、図７（ｂ）はブロックＢＫの画像を示しており、自動車が移動した状態を示している。図７の例では、ブロックＡＫとブロックＢＫとのブロックマッチングを行うと、ブロックの画像が背景を考慮しない単純な線画であると仮定した場合、自動車が重なる状態で画素値の差分ＤＩＦが最小の状態となる。これを図７（ｃ）に示した。この状態でのブロックＡＫとブロックＢＫの移動量ＢＶは、式（４）により求められる。以上の計算を行い、ブロックマッチングによるブロックの移動量の算出処理を終了し、次の処理ステップＳ２５０（図２）へ戻る。
【００３７】
処理ステップＳ２５０では、移動量ＢＶを、予め用意した判定値と比較し、ブロックＡＫとブロックＢＫについて動き判定を行う。この場合の判定値は、ブロックを重ねたとき、画像がボケたり２重にならない移動量（画素数）とすることが好ましい。具体的には、フレーム画像Ａまたはフレーム画像Ｂの解像度すなわち画面サイズに対する画素数から、判定値を何格子点分（または何画素分）とするか決定すればよい。移動量ＢＶが判定値より大きい場合、ブロックＡＫとブロックＢＫ間で被写体は「動いた」と判定する。また、前述したように、処理ステップＳ２４３では、明らかに画像がボケたり２重になる範囲を最大ずらし量として設定してあるため、最大ずらし量の範囲内にＤＩＦの最小値が存在しない場合、つまり設定した最大ずらし量の位置でＤＩＦが最小値になる場合は、同様に被写体は「動いた」と判定する。
【００３８】
こうして処理ステップＳ２５０にてブロックの被写体の動き判定処理を行った後、被写体が動いている場合は（ステップＳ２５０：ＹＥＳ）、一つのブロックを使用し（ステップＳ２６０）、ブロックが動いていない場合は（ステップＳ２５０：ＮＯ）、２つのブロックを使用して（ステップＳ２７０）、ブロック毎に静止画像を生成する（ステップＳ２８０）。
【００３９】
本実施例では、一つのブロックを使用する場合、上述したように、全体が重ならないブロックでは、フレーム画像ＡのブロックＡＫを使用する。したがって動いたブロックについても、連続する画像を持つフレーム画像ＡのブロックＡＫを使用することが好ましい。もとより、フレーム画像Ｂを基準としてブロック分割した場合は、フレーム画像ＢのブロックＢＫを使用することが好ましい。あるいは、使用する一つのブロックを、ステッチ部分の端部に位置するブロックについては、隣り合う同一のフレーム画像のブロックを使用するものとしてもよい。こうすれば、ステッチ部分の端部に移動する被写体が移っている場合は、連続するフレーム画像を使用するため、移動する被写体の歪を少なくすることができる。
【００４０】
こうして、フレーム画像Ａとフレーム画像Ｂとのステッチ部分について、分割された全てのブロックについて終了したかを判定し（ステップＳ２９０）、終了していない場合（ステップＳ２９０：ＮＯ）、ブロックの被写体の動き判定を繰り返してブロック毎に使用するフレーム画像を決定し、静止画像を生成してすべての処理を終了する（ステップＳ２９０：ＹＥＳ）。
【００４１】
このように生成処理した静止画像を図８に例示する。図８（ａ）はフレーム画像Ａを、図８（ｂ）はフレーム画像Ｂを示している。図８の画像には、図７で例示したような画面の斜面上を右から左に移動する自動車が写っている。この場合、生成した静止画像を図８（ｃ）に例示する。静止画像生成時、自動車が写っているブロックでは、被写体が動いたブロックと判定されるためフレーム画像Ａのみ使用し、フレーム画像Ｂは用いない。したがって、フレーム画像Ｂの自動車ＪＢ（図８（ｄ）：破線）は写らず、生成される静止画像はボケたり２重にならない。
【００４２】
上述したように、本実施例の処理方法によれば、ステッチ部分をブロックに分割し、被写体が動いたと判定したブロックについては一つの画像を用い、被写体が動いていないと判定したブロックについては複数のフレーム画像を用いて画像を生成するため、ボケたり２重になったりせず、かつ画像歪の少ない静止画像を生成できる。なお、２枚以上の複数のフレーム画像がステッチ部分に存在する場合は、複数のフレーム画像のうち２枚に着目して本実施例の処理方法を行い、その後残りのフレーム画像から一枚ずつ選択して同様な処理を繰りかえして行えばよい。
【００４３】
以上、本発明の実施の形態について一実施例により説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることは勿論である。例えば、本実施例での処理ステップＳ２８０（図２）において、静止画像の生成に使用するフレーム画像を一旦ブロック毎にマークし、すべてのブロックについて被写体の動き判定が終了したあと、マークされたフレーム画像を用いてステッチ部分の繋ぎ合わせをまとめて行い、静止画像を生成するものとしても良い。こうすれば、静止画像の生成処理を一括で行うことができ処理負荷が軽減される。また、ブロックマッチングに使用する画素を格子点画素とせず、全画素を用いてブロックの移動量を算出するものとしてもよい。こうすれば、画素値差分の計算処理の負荷は増えるが、ブロックの移動量を１画素単位で算出できる。
【００４４】
また、本実施例では、フレーム画像Ａとフレーム画像Ｂとのステッチ部分をブロック分割する際、フレーム画像Ａないしフレーム画像Ｂの一方を整数分割した。したがって上述したようにステッチ部分には、全体が重なるブロックと全体が重ならないブロックができたが、変形例として、ステッチ部分を全て全体が重なるブロックになるよう整数分割するものとしてもよい。なお、本実施例では、重ね合わせの対象となる複数の画像は動画像から抽出したフレーム画像としたが、相対的な位置関係が判別可能なレベルの画像であれば、どのような画像でも、対象画像として扱うことができる。例えば、コマ撮り写真のような時系列の順番に並んだ複数の画像、あるいはデジタルスチルカメラなどで撮像された複数の静止画像などであっても用いることができる。
【００４５】
本変形例を図９にて説明する。フレーム画像Ａの左上隅を原点（０，０）、フレーム画像Ｂの左上隅を（Ｘｂ，Ｙｂ）としたとき、フレーム画像Ａ（フレーム画像Ｂ）の画面の横の長さＡＬ、縦の長さＡＴとすれば、ステッチ部分の横の長さＳＷと縦の長さＳＨは次式で求まる。
ＳＷ＝ＡＬ−Ｘｂ・・・（５）
ＳＨ＝ＡＴ−Ｙｂ・・・（６）
式（５）、（６）による算出値ＳＷ、ＳＨを、それぞれ整数分割する。分割に際しては、分割したときの分割間隔（画素数）が、本実施例で説明したフレーム画像Ａのブロック分割の間隔に等しいか近い値になるよう分割数を決定する。これは、本実施例と同様、ブロック分割数を多くすればステッチ部分の画像は滑らかになるが、ステッチ処理は遅くなるためである。
【００４６】
図９から明らかなように、本変形例によれば、分割数を算出する処理は増えるが、ステッチ部分を、すべて全体が重なるブロックに分割できる。この結果、ステッチ部分の全ブロックで被写体の動き判定を行うことができる。また、静止画像の生成に際しても、ステッチ部分全体に関し、動きのないブロックについてはフレーム画像Ａのブロックとフレーム画像Ｂのブロックを用いることができる。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施例としての概略構成図。
【図２】本実施例での画像ステッチ装置の処理フローチャート。
【図３】本実施例で、フレーム画像の相対位置の算出についての説明図。
【図４】ステッチ部分の画像のブロック分割についての説明図。
【図５】ブロックの移動量算出処理を説明する処理フローチャート。
【図６】ブロックの動き判定処理で、差分計算を行う格子点画素値についての説明図。
【図７】ブロックの移動量の算出についての説明図。
【図８】本実施例で、生成する静止画像についての説明図。
【図９】本実施例の変形例で、ステッチ部分の分割についての説明図。
【符号の説明】
【００４８】
１００…コンピュータ
１０４…画像特定部
１０５…ブロック分割部
１０６…動き判定部
１０７…静止画像生成部
１１０…キーボード
１２０…マウス
１３０…ディスプレイ
１４０…ＣＤ−Ｒ／ＲＷドライブ
１５０…ＤＶＤ−Ｒ／ＲＷドライブ
１６０…デジタルビデオカメラ
１８０…プリンタ
ＡＫ…フレーム画像Ａのブロック
ＢＫ…フレーム画像Ｂのブロック
【図１】
2005157847.tif 000003
【図２】
2005157847.tif 000004
【図３】
2005157847.tif 000005
【図４】
2005157847.tif 000006
【図５】
2005157847.tif 000007
【図６】
2005157847.tif 000008
【図７】
2005157847.tif 000009
【図８】
2005157847.tif 000010
【図９】
2005157847.tif 000011