(57)【特許請求の範囲】
【請求項１】
被写体が複数に分割して撮影された部分画像であって、隣接して撮影された２つの部分画像が被写体の同一箇所を撮影した重なり領域を有している複数の部分画像を用いて、隣接して撮影された２つの部分画像の対それぞれに対して、重なり領域が一致するように２つの部分画像を並べ、２つの部分画像それぞれの画像重心の位置間の距離を自然長として有する仮想バネを生成する第１ステップと、
隣接する部分画像同士の位置関係が撮影された時の位置関係と対応するように、複数の部分画像それぞれが配置された状態で、隣接する２つの部分画像それぞれの画像重心間を仮想バネで接続したバネモデルを生成する第２ステップと、
画像重心に接続する仮想バネの長さと自然長との差に基づく仮想バネの復元力が働いた画像重心の運動を計算して、全ての仮想バネの復元力が釣り合った状態おける画像重心の位置である平衡位置を求める第３ステップと、
隣接して撮影された２つの部分画像をそれぞれの画像重心が平衡位置に位置するように並べて、一の部分画像の画像重心を始点とし、一の部分画像と隣接する他の部分画像の画像重心を終点とする第１位置ベクトルと、隣接して撮影された２つの部分画像を重なり領域が一致するように並べて、一の部分画像の画像重心の位置を始点とし、一の部分画像と隣接する他の部分画像の画像重心の位置を終点とする第２位置ベクトルと、の差である差ベクトルを求め、差ベクトルに基づいて、一の部分画像を変形する第４ステップと、
複数の部分画像それぞれを、画像重心が平衡位置に位置するように配置して、合成画像を生成する第５ステップと、
を備える方法。
【請求項２】
第２位置ベクトルと一の部分画像の端との交点の位置を求め、
交点の位置を、第２ベクトルの始点と交点との間の距離と第２位置ベクトルの大きさとの比と差ベクトルの大きさとの積の分だけ、差ベクトルの方向に移動させるように、一の部分画像を変形する請求項１に記載の方法。
【請求項３】
バネモデルは、全ての仮想モデルのバネ定数が同じである請求項１又は２に記載の方法。
【請求項４】
バネモデルは、全ての画像重心の質量が同じである請求項１〜３の何れか一項に記載の方法。
【請求項５】
部分画像の数は４つ以上である請求項１〜４の何れか一項に記載の方法。
【請求項６】
被写体が複数に分割して撮影された部分画像であって、隣接して撮影された２つの部分画像が被写体の同一箇所を撮影した重なり領域を有している複数の部分画像を用いて、隣接して撮影された２つの部分画像の対それぞれに対して、重なり領域が一致するように２つの部分画像を並べ、２つの部分画像それぞれの画像重心の位置間の距離を自然長として有する仮想バネを生成する第１ステップと、
隣接する部分画像同士の位置関係が撮影された時の位置関係と対応するように、複数の部分画像それぞれが配置された状態で、隣接する２つの部分画像それぞれの画像重心間を仮想バネで接続したバネモデルを生成する第２ステップと、
画像重心に接続する仮想バネの長さと自然長との差に基づく仮想バネの復元力が働いた画像重心の運動を計算して、全ての仮想バネの復元力が釣り合った状態おける画像重心の位置である平衡位置を求める第３ステップと、
隣接して撮影された２つの部分画像をそれぞれの画像重心が平衡位置に位置するように並べて、一の部分画像の画像重心を始点とし、一の部分画像と隣接する他の部分画像の画像重心を終点とする第１位置ベクトルと、隣接して撮影された２つの部分画像を重なり領域が一致するように並べて、一の部分画像の画像重心の位置を始点とし、一の部分画像と隣接する他の部分画像の画像重心の位置を終点とする第２位置ベクトルと、の差である差ベクトルを求め、差ベクトルに基づいて、一の部分画像を変形する第４ステップと、
複数の部分画像それぞれを、画像重心が平衡位置に位置するように配置して、合成画像を生成する第５ステップと、
がコンピュータによって実行される方法。
【請求項７】
被写体が複数に分割して撮影された部分画像であって、隣接して撮影された２つの部分画像が被写体の同一箇所を撮影した重なり領域を有している複数の部分画像を用いて、隣接して撮影された２つの部分画像の対それぞれに対して、重なり領域が一致するように２つの部分画像を並べ、２つの部分画像それぞれの画像重心の位置間の距離を自然長として有する仮想バネを生成する第１ステップと、
隣接する部分画像同士の位置関係が撮影された時の位置関係と対応するように、複数の部分画像それぞれが配置された状態で、隣接する２つの部分画像それぞれの画像重心間を仮想バネで接続したバネモデルを生成する第２ステップと、
画像重心に接続する仮想バネの長さと自然長との差に基づく仮想バネの復元力が働いた画像重心の運動を計算して、全ての仮想バネの復元力が釣り合った状態おける画像重心の位置である平衡位置を求める第３ステップと、
隣接して撮影された２つの部分画像をそれぞれの画像重心が平衡位置に位置するように並べて、一の部分画像の画像重心を始点とし、一の部分画像と隣接する他の部分画像の画像重心を終点とする第１位置ベクトルと、隣接して撮影された２つの部分画像を重なり領域が一致するように並べて、一の部分画像の画像重心の位置を始点とし、一の部分画像と隣接する他の部分画像の画像重心の位置を終点とする第２位置ベクトルと、の差である差ベクトルを求め、差ベクトルに基づいて、一の部分画像を変形する第４ステップと、
複数の部分画像それぞれを、画像重心が平衡位置に位置するように配置して、合成画像を生成する第５ステップと、
をコンピュータに実行させるプログラム。
【請求項８】
被写体が複数に分割して撮影された部分画像であって、隣接して撮影された２つの部分画像が被写体の同一箇所を撮影した重なり領域を有している複数の部分画像を記憶する記憶部と、
複数の部分画像を記憶部から読み出して、
隣接して撮影された２つの部分画像の対それぞれに対して、重なり領域が一致するように２つの部分画像を並べ、２つの部分画像それぞれの画像重心の位置間の距離を自然長として有する仮想バネを生成し、
隣接する部分画像同士の位置関係が撮影された時の位置関係と対応するように、複数の部分画像それぞれが配置された状態で、隣接する２つの部分画像それぞれの画像重心間を仮想バネで接続したバネモデルを生成し、
画像重心に接続する仮想バネの長さと自然長との差に基づく仮想バネの復元力が働いた画像重心の運動を計算して、全ての仮想バネの復元力が釣り合った状態おける画像重心の位置である平衡位置を求め、
隣接して撮影された２つの部分画像をそれぞれの画像重心が平衡位置に位置するように並べて、一の部分画像の画像重心を始点とし、一の部分画像と隣接する他の部分画像の画像重心を終点とする第１位置ベクトルと、隣接して撮影された２つの部分画像を重なり領域が一致するように並べて、一の部分画像の画像重心の位置を始点とし、一の部分画像と隣接する他の部分画像の画像重心の位置を終点とする第２位置ベクトルと、の差である差ベクトルを求め、差ベクトルに基づいて、一の部分画像を変形し、
複数の部分画像それぞれを、画像重心が平衡位置に位置するように配置して、合成画像を生成する、演算部と、
合成画像を出力する出力部と、
を備える画像合成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を合成する方法、画像を合成するプログラム及び画像合成装置に関する。
【背景技術】
【０００２】
従来、被写体を複数に分割して撮影し、撮影された部分画像を合成して、合成画像を生成することが行われている。
【０００３】
合成画像を生成することにより、広い視野角を有し、解像度の高い画像を得ることができる。
【０００４】
通常、隣接して撮影された２つの部分画像は、被写体の同一箇所を撮影した重なり領域を有している。合成画像を生成する際には、それぞれの重なり領域が一致するように２つの部分画像を並べ、隣接する部分画像同士の位置関係が撮影された時の位置関係と対応するように、複数の部分画像それぞれを配置する。
【０００５】
図１は、従来の例により部分画像を合成することを説明する図である。
【０００６】
図１では、図示しない被写体が、４つの部分画像Ａ１〜Ａ４に分割して撮影されている。隣接して撮影された２つの部分画像は、被写体の同一箇所を撮影した重なり領域を有している。
【０００７】
部分画像Ａ１と部分画像Ａ２とは、それぞれの重なり領域Ｖ１２が一致するように並べられる。ここで、部分画像Ａ１の画像重心Ｇ１を始点とし、部分画像Ａ２の画像重心Ｇ２を終点とするベクトルを位置ベクトルＰ１２と呼ぶ。
【０００８】
重なり領域Ｖ１２は、部分画像Ａ１の領域であって、部分画像Ａ２の対応する領域と一致する領域である。同様に、重なり領域Ｖ１２は、部分画像Ａ２の領域であって、部分画像Ａ１の対応する領域と一致する領域である。重なり領域Ｖ１２は、例えば、２つの部分画像の特徴量を比較する評価関数が最大の一致度を示す領域として求めることができる。また、部分画像の特徴量としては、例えば、画像中のエッジを用いることができる。
【０００９】
同様に、部分画像Ａ２と部分画像Ａ４とは、重なり領域Ｖ２４が一致するように並べられる。ここで、部分画像Ａ２の画像重心Ｇ２を始点とし、部分画像Ａ４の画像重心Ｇ４を終点とするベクトルを位置ベクトルＰ２４と呼ぶ。
【００１０】
同様に、部分画像Ａ１と部分画像Ａ３とは、重なり領域Ｖ１３が一致するように並べられる。ここで、部分画像Ａ１の画像重心Ｇ１を始点とし、部分画像Ａ３の画像重心Ｇ３を終点とするベクトルを位置ベクトルＰ１３と呼ぶ。
【００１１】
更に、部分画像Ａ３と部分画像Ａ４とは、重なり領域Ｖ３４が一致するように並べられる。ここで、部分画像Ａ３の画像重心Ｇ３を始点とし、部分画像Ａ４の画像重心Ｇ４を終点とするベクトルを位置ベクトルＰ３４と呼ぶ。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】国際公開第２００５／０２４７２３号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上述した位置ベクトルＰ１２と位置ベクトルＰ２４とを合成した合成ベクトルの終点である部分画像Ａ４の画像重心Ｇ４の位置Ｐ４は、位置ベクトルＰ１３と位置ベクトルＰ３４とを合成した合成ベクトルの終点である部分画像Ａ４の画像重心Ｇ４の位置Ｑ４とは異なる場合がある。
【００１４】
これは、評価関数を用いて重なり領域を求める際に、誤差が生じるためである。例えば、部分画像Ａ１の領域であって部分画像Ａ２の対応する領域と一致する領域と、部分画像Ａ２の領域であって部分画像Ａ１の対応する領域と一致する領域とは、被写体の同一箇所を撮影した画像領域ではあるものの、両者の間で、画素の輝度又は色度が完全に一致しているとは限らない。そのため、重なり領域Ｖ１２は、真実の重なり領域とは異なっている場合がある。
【００１５】
従って、複数の部分画像を合成して合成画像を生成する際には、ズレが生じる問題が起こり得る。
【００１６】
そこで、本明細書では、合成画像のズレを低減する画像を合成する方法を提供することを目的とする。
【００１７】
また、本明細書では、上述した問題を解決するために、合成画像のズレを低減する画像を合成するプログラムを提供することを目的とする。
【００１８】
更に、本明細書では、上述した問題を解決するために、合成画像のズレを低減する画像合成装置を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本明細書に開示する画像を合成する方法によれば、被写体が複数に分割して撮影された部分画像であって、隣接して撮影された２つの部分画像が被写体の同一箇所を撮影した重なり領域を有している複数の部分画像を用いて、隣接して撮影された２つの部分画像の対それぞれに対して、重なり領域が一致するように２つの部分画像を並べ、２つの部分画像それぞれの画像重心の位置間の距離を自然長として有する仮想バネを生成する第１ステップと、隣接する部分画像同士の位置関係が撮影された時の位置関係と対応するように、複数の部分画像それぞれが配置された状態で、隣接する２つの部分画像それぞれの画像重心間を仮想バネで接続したバネモデルを生成する第２ステップと、画像重心に接続する仮想バネの長さと自然長との差に基づく仮想バネの復元力が働いた画像重心の運動を計算して、全ての仮想バネの復元力が釣り合った状態おける画像重心の位置である平衡位置を求める第３ステップと、複数の部分画像それぞれを、画像重心が平衡位置に位置するように配置して、合成画像を生成する第４ステップと、を備える。
【００２０】
また、本明細書に開示する画像を合成する方法によれば、被写体が複数に分割して撮影された部分画像であって、隣接して撮影された２つの部分画像が被写体の同一箇所を撮影した重なり領域を有している複数の部分画像を用いて、隣接して撮影された２つの部分画像の対それぞれに対して、重なり領域が一致するように２つの部分画像を並べ、２つの部分画像それぞれの画像重心の位置間の距離を自然長として有する仮想バネを生成する第１ステップと、隣接する部分画像同士の位置関係が撮影された時の位置関係と対応するように、複数の部分画像それぞれが配置された状態で、隣接する２つの部分画像それぞれの画像重心間を仮想バネで接続したバネモデルを生成する第２ステップと、画像重心に接続する仮想バネの長さと自然長との差に基づく仮想バネの復元力が働いた画像重心の運動を計算して、全ての仮想バネの復元力が釣り合った状態おける画像重心の位置である平衡位置を求める第３ステップと、複数の部分画像それぞれを、画像重心が平衡位置に位置するように配置して、合成画像を生成する第４ステップと、がコンピュータによって実行される。
【００２１】
また、本明細書に開示する画像を合成するプログラムによれば、被写体が複数に分割して撮影された部分画像であって、隣接して撮影された２つの部分画像が被写体の同一箇所を撮影した重なり領域を有している複数の部分画像を用いて、隣接して撮影された２つの部分画像の対それぞれに対して、重なり領域が一致するように２つの部分画像を並べ、２つの部分画像それぞれの画像重心の位置間の距離を自然長として有する仮想バネを生成する第１ステップと、隣接する部分画像同士の位置関係が撮影された時の位置関係と対応するように、複数の部分画像それぞれが配置された状態で、隣接する２つの部分画像それぞれの画像重心間を仮想バネで接続したバネモデルを生成する第２ステップと、画像重心に接続する仮想バネの長さと自然長との差に基づく仮想バネの復元力が働いた画像重心の運動を計算して、全ての仮想バネの復元力が釣り合った状態おける画像重心の位置である平衡位置を求める第３ステップと、複数の部分画像それぞれを、画像重心が平衡位置に位置するように配置して、合成画像を生成する第４ステップと、をコンピュータに実行させる。
【００２２】
更に、本明細書に開示する画像合成装置によれば、被写体が複数に分割して撮影された部分画像であって、隣接して撮影された２つの部分画像が被写体の同一箇所を撮影した重なり領域を有している複数の部分画像を記憶する記憶部と、複数の部分画像を記憶部から読み出して、隣接して撮影された２つの部分画像の対それぞれに対して、重なり領域が一致するように２つの部分画像を並べ、２つの部分画像それぞれの画像重心の位置間の距離を自然長として有する仮想バネを生成し、隣接する部分画像同士の位置関係が撮影された時の位置関係と対応するように、複数の部分画像それぞれが配置された状態で、隣接する２つの部分画像それぞれの画像重心間を仮想バネで接続したバネモデルを生成し、画像重心に接続する仮想バネの長さと自然長との差に基づく仮想バネの復元力が働いた画像重心の運動を計算して、全ての仮想バネの復元力が釣り合った状態おける画像重心の位置である平衡位置を求め、複数の部分画像それぞれを、画像重心が平衡位置に位置するように配置して、合成画像を生成する、演算部と、合成画像を出力する出力部と、を備える。
【発明の効果】
【００２３】
上述した本明細書に開示する画像を合成する方法によれば、合成画像のズレを低減できる。
【００２４】
また、上述した本明細書に開示する画像を合成するプログラムによれば、合成画像のズレを低減できる。
【００２５】
更に、上述した本明細書に開示する画像合成装置によれば、合成画像のズレを低減できる。
【図面の簡単な説明】
【００２６】
【図１】従来の例により部分画像を合成することを説明する図である。
【図２】本明細書に開示する画像合成装置を示すブロック図である。
【図３】本明細書に開示する画像合成装置によって合成される複数の部分画像を示す図である。
【図４】画像合成装置の動作を説明するフローチャート（その１）である。
【図５】ステップＳ１０を説明する図である。
【図６】ステップＳ１２を説明する図である。
【図７】バネモデルを示す図である。
【図８】画像合成装置の動作を説明するフローチャート（その２）である。
【図９】ステップＳ２２及びＳ２４を説明する図である。
【図１０】２つの部分画像それぞれを、画像重心が平衡位置に位置するように配置して、合成画像を作成することを説明する図である。
【図１１】画像合成装置の動作を説明するフローチャート（その３）である。
【図１２】部分画像の補正を説明する図（その１）である。
【図１３】部分画像の補正を説明する図（その２）である。
【図１４】部分画像の補正を説明する図（その３）である。
【図１５】部分画像の補正を説明する図（その４）である。
【図１６】部分画像の補正を説明する図（その５）である。
【図１７】部分画像の補正を説明する図（その６）である。
【発明を実施するための形態】
【００２７】
以下、本明細書で開示する画像合成装置の好ましい一実施形態を、図を参照して説明する。但し、本発明の技術範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【００２８】
図２は、本明細書に開示する画像合成装置を示すブロック図である。
【００２９】
本実施形態の画像合成装置１０（以下、単に装置１０ともいう）は、複数の部分画像及び所定のプログラムを記憶する記憶部１２と、記憶部１２に記憶された所定のプログラムを実行し、記憶部１２に記憶された複数の部分画像に基づいて、合成画像を生成する演算部１１と、を備える。
【００３０】
また、装置１０は、生成した合成画像を表示する表示部１３及び生成した合成画像を出力するプリンタ等の出力部１５を備える。なお、出力部１５は、表示部１３の機能を有していても良い。
【００３１】
また、装置１０は、キーボード又はマウス等の入力部１４と、ネットワーク等の外部と通信するための通信部１６とを備える。
【００３２】
装置１０は、例えば、サーバ又はパーソナルコンピュータ等のコンピュータ、若しくはステートマシン等を用いて構成され得る。
【００３３】
図３は、本明細書に開示する画像合成装置によって合成される複数の部分画像を示す図である。
【００３４】
複数の部分画像Ａ１〜Ａｎは、被写体Ｂが複数に分割して撮影されたものである。複数の部分画像Ａ１〜Ａｎは、例えば、アレイカメラを用いて撮影され得る。隣接して撮影された２つの部分画像それぞれは、被写体Ｂの同一箇所を撮影した重なり領域Ｖを有している。本実施形態では、部分画像の数は、４つ以上ある。
【００３５】
例えば、部分画像Ａｉは、左及び上及び右及び下に隣接する部分画像それぞれと重なり領域Ｖを有する。
【００３６】
次に、装置１０の動作の好ましい実施形態を、図面を参照して、以下に説明する
【００３７】
図４は、画像合成装置の動作を説明するフローチャート（その１）である。
【００３８】
装置１０は、演算部１１が、記憶部１２に記憶された所定のプログラムを実行することにより、各ステップの処理を行う。
【００３９】
まず、ステップＳ１０において、記憶部１２に記憶された複数の部分画像Ａ１〜Ａｎが読み出され、隣接して撮影された２つの部分画像の対それぞれに対して、重なり領域Ｖが一致するように２つの部分画像を並べられる。
【００４０】
図５は、隣接して撮影された２つの部分画像Ａｉ，Ａｊが、それぞれの重なり領域Ｖが一致するように並べられた状態を示している。
【００４１】
例えば、重なり領域Ｖは、部分画像Ａｉの領域であって、部分画像Ａｊの対応する領域と一致する領域である。同様に、重なり領域Ｖは、部分画像Ａｊの領域であって、部分画像Ａｉの対応する領域と一致する領域である。重なり領域Ｖは、例えば、２つの部分画像の特徴量を比較する評価関数が最大の一致度を示す領域として求めることができる。また、部分画像の特徴量としては、例えば、画像中のエッジを用いることができる。
【００４２】
ここで、部分画像Ａｉの画像重心Ｇｉを始点とし、部分画像Ａｊの画像重心Ｇｊを終点とするベクトルを最適位置ベクトルＰｉｊと呼ぶ。
【００４３】
そして、２つの部分画像Ａｉ、Ａｊそれぞれの画像重心の位置間の距離Ｌを自然長として有する仮想バネＳを生成する。仮想バネＳのバネ定数をｋとする。距離Ｌは、最適位置ベクトルＰｉｊの大きさに相当する。
【００４４】
仮想バネＳは、隣接して撮影された２つの部分画像の対それぞれに対して生成される。
【００４５】
次に、ステップＳ１２において、隣接する部分画像同士の位置関係が撮影された時の位置関係と対応するように、複数の部分画像それぞれを配置された状態に配置する。
【００４６】
図６は、隣接する部分画像同士の位置関係が撮影された時の位置関係と対応するように、複数の部分画像それぞれが配置された状態の一例を示す。
【００４７】
複数の部分画像Ａ１〜Ａｎは、基準座標Ｓ１上に配置される。基準座標Ｓ１は、原点Ｏ１及びｘ１軸及びｙ１軸を有する。
【００４８】
まず、複数の部分画像Ａ１〜Ａｎの内、合成画像の一番上の行を構成する部分画像が、隣接する２つの部分画像の重なり領域が一致するように並べられる。図６に示す例では、部分画像Ａ１と部分画像Ａ２とが、重なり領域Ｖ１２が一致するように並べられる。また、部分画像Ａ２と部分画像Ａ３とが、重なり領域Ｖ２３が一致するように並べられる。以下、同様にして、合成画像の一番上の行を構成する部分画像が並べられる。
【００４９】
次に、合成画像の一番上の行を構成する部分画像それぞれと、その下に隣接する部分画像とが、２つの部分画像の重なり領域が一致するように並べられる。図６に示す例では、部分画像Ａ１と部分画像Ａｋとが、重なり領域Ｖ１ｋが一致するように並べられる。また、部分画像Ａ２と部分画像Ａｋ＋１とが、重なり領域Ｖ２ｋ＋１が一致するように並べられる。
【００５０】
以下、同様にして、合成画像の一番上の行を構成する部分画像から、合成画像の一番下の行を構成する部分画像まで、基準座標Ｓ１上に配置される。
【００５１】
基準座標Ｓ１上では、部分画像の位置は、基準座標を用いて表される。例えば、部分画像Ａｉの画像重心Ｇｉは、基準座標Ｓ１上の位置Ｃｉで表される。位置Ｃｉは、座標ｘ１及びｙ１によって定められる。
【００５２】
また、各部分画像は、部分画像内の位置を示す部分座標Ｓ２を有している。部分座標Ｓ２は、原点Ｏ２及びｘ２軸及びｙ２軸を有する。原点Ｏ２としては、例えば、部分画像が矩形であれば、部分画像の左上の頂点とすることができる。部分画像内の位置は、この部分座標Ｓ２を用いて表すことできる。
【００５３】
なお、図６に示す部分画像の配置は一例である。複数の部分画像は、隣接する部分画像同士の位置関係が撮影された時の位置関係と対応するように配置されていれば、図６とは異なるように配置されても良い。例えば、一の部分画像と、この一の部分画像と隣接する他の部分画像とを離して配置しても良い。但し、隣接する画像同士を重なるように配置することが、後述する計算時間を短くする上で好ましい。
【００５４】
そして、隣接する２つの部分画像それぞれの画像重心間を仮想バネＳで接続したバネモデルを生成する。
【００５５】
図７は、バネモデルを示す図である。
【００５６】
隣接する部分画像の画像重心同士が仮想バネＳによって結合されて、バネモデルが生成される。このバネモデルでは、部分画像の画像重心が質量ｍを有する質点とみなされる。隣接する部分画像の画像重心同士は、ステップＳ１０で生成された自然長を有する仮想バネによって結合される。
【００５７】
この時、各画像重心の位置は、図６に示すように、各部分画像が基準座標Ｓ１上に配置された位置によって定まる。
【００５８】
例えば、部分画像Ａ１の画像重心Ｇ１の基準座標Ｓ１上の位置はＣ１である。部分画像Ａ２の画像重心Ｇ２の基準座標Ｓ１上の位置はＣ２である。同様にして、部分画像Ａｉの画像重心Ｇｉの基準座標Ｓ１上の位置はＣｉである。また、部分画像Ａｎの画像重心Ｇｎの基準座標Ｓ１上の位置はＣｎである。
【００５９】
ここで、画像重心Ｇｉの位置Ｃｉと、隣接する画像重心Ｇｊの位置Ｃｊとの間の距離は、仮想バネＳの自然長であるとは限らない。部分画像Ａｉと部分画像Ａｊとは、互いの重なり領域が一致するように配置されているわけではないからである。
【００６０】
本実施形態のバネモデルは、全ての仮想モデルＳのバネ定数ｋが同じである。また、本実施形態のバネモデルは、全ての画像重心の質量が同じである。
【００６１】
なお、バネ定数又は質量の値を変えて、部分画像に重み付けを加えても良い。部分画像に重み付けを加えることにより、例えば、後述する計算時間を短くすることができる。
【００６２】
次に、ステップＳ１４において、画像重心に接続する仮想バネの長さと自然長との差に基づく仮想バネの復元力が働いた画像重心の運動を計算して、全ての仮想バネの復元力が釣り合った状態おける画像重心の位置である平衡位置を求める。
【００６３】
図８は、画像合成装置の動作を説明するフローチャート（その２）である。図８は、ステップＳ１４の詳細な処理を示す。
【００６４】
上述したように、仮想バネＳによって結合される２つの画像重心間の距離は、仮想バネＳの自然長であるとは限らない。そして、２つの画像重心間の距離が、自然長とは異なる場合には、２つの画像重心間には、仮想バネＳによる復元力が働く。復元力が働いた画像重心は、運動して位置が変化する。そこで、ステップＳ２０とステップＳ３４との間では、全ての仮想バネの復元力が釣り合った状態になるまで、全ての部分画像Ａ１〜Ａｎに対して、画像重心の運動が計算される。
【００６５】
まず、ステップＳ２２において、部分画像Ａｉの画像重心Ｇｉと隣接する部分画像Ａｊの画像重心Ｇｊとの間の最適位置ベクトルＰｉｊ（図５参照）と、現在の画像重心Ｇｉと画像重心Ｇｊとの間の位置ベクトルＣｉｊとに基づいて、画像重心Ｇｉに働く力ベクトルｆｉｊが求められる。
【００６６】
図９に示すように、位置ベクトルＣｉｊは、画像重心Ｇｉの位置Ｃｉを始点とし、画像重心Ｇｊの位置Ｃｊを終点とする位置ベクトルである。
【００６７】
図９に示す例では、画像重心Ｇｉは、画像重心Ｇｉの左及び上及び右及び下に隣接する画像重心Ｇｊ１，Ｇｊ２，Ｇｊ３，Ｇｊ４それぞれと仮想バネＳによって結合されている。なお、画像重心Ｇｉと結合する４つの仮想バネＳの自然長は、同じとは限らない。
【００６８】
このように、画像重心Ｇｉと、各画像重心Ｇｊｍ（ｍは１〜４の整数）との間には、以下の復元力ベクトルｆｉｊｍが働く。
ｆｉｊｍ＝ｋ（Ｐｉｊｍ−Ｃｉｊｍ）
【００６９】
従って、画像重心Ｇｉには、４つの復元力ベクトルの合力ベクトルＦｉが働く。
【００７０】
次に、ステップＳ２４において、画像重心Ｇｉに生じる合力ベクトルＦｉの大きさを求める。
【００７１】
次に、ステップＳ２６において、合力ベクトルＦｉの大きさが閾値以下であるか否かが判断される。合力ベクトルＦｉの大きさが閾値以下であれば、画像重心Ｇｉに対する復元力が釣り合った状態にあるので、画像重心Ｇｉの位置は平衡位置Ｏｉにあると判断されて、ステップＳ３２の後に進む。
【００７２】
一方、合力ベクトルＦｉの大きさが閾値よりも大きければ、ステップＳ２８に進む。
【００７３】
次に、ステップＳ２８において、合力ベクトルＦｉから画像重心Ｇｉの加速度ベクトルαｉを求める。
【００７４】
次に、ステップＳ３０において、加速度ベクトルから画像重心Ｇｉの速度ベクトルｖｉを求める。速度ベクトルｖｉは、現在の画像重心Ｇｉの速度ベクトルｖｉｔと加速度ベクトルαｉとを用いて、以下の式で求められる。
ｖｉｔ＋１＝ｖｉｔ＋Δｔ・αｉ
ここで、速度ベクトルｖｉｔ＋１は、現在の画像重心Ｇｉの速度ベクトルｖｉｔに対して、時間Δｔ後の速度ベクトルである。
【００７５】
次に、ステップＳ３２において、速度ベクトルから画像重心Ｇｉの位置ベクトルｃｉを求める。位置ベクトルｃｉは、現在の画像重心Ｇｉの位置ベクトルｃｉｔと速度ベクトルｖｉとを用いて、以下の式で求められる。
ｃｉｔ＋１＝ｃｉｔ＋Δｔ・ｖｉ
ここで、位置ベクトルｃｉｔ＋１は、現在の画像重心Ｇｉの位置ベクトルｃｉｔに対して、時間Δｔ後の位置ベクトルである。
【００７６】
ステップＳ２２〜Ｓ３２の処理は、全ての部分画像に対して、ステップＳ２６の判断がＹｅｓになるまで繰り返して行われる。例えば、１つの部分画像において、ステップＳ２６の判断がＮｏであれば、再び、全ての部分画像に対して、ステップＳ２２〜Ｓ３２の処理がなされる。
【００７７】
このようにして、ステップＳ２０〜Ｓ３０の処理により、全ての仮想バネの復元力が釣り合った状態おける画像重心Ｇ１〜Ｇｎの位置である平衡位置Ｏ１〜Ｏｎが求められる。ここで、平衡位置Ｏ１〜Ｏｎは、基準座標Ｓ１上において、位置ベクトルｃ１〜ｃｎの終点の位置である。そして、ステップＳ１６に進む。
【００７８】
次に、ステップＳ１６において、複数の部分画像Ａ１〜Ａｎそれぞれを、画像重心Ｇ１〜Ｇｎが平衡位置Ｏ１〜Ｏｎに位置するように、基準座標Ｓ１上に配置して、合成画像が生成される。
【００７９】
上述したように、装置１０は、全ての仮想バネの復元力が釣り合うように、画像重心Ｇ１〜Ｇｎの位置を平衡位置Ｏ１〜Ｏｎに移動させることにより、合成画像に生じる局所的なズレを、合成画像の全体に分散させて、ズレが局所的に集中して生じることを回避する。
【００８０】
図１０は、２つの部分画像それぞれを、画像重心が平衡位置に位置するように配置して、合成画像を作成することを説明する図である。
【００８１】
部分画像Ａｊｏは、部分画像Ａｊを隣接する部分画像Ａｉに対して、画像重心Ｇｊが平衡位置Ｏｊに位置するように基準座標Ｓ１上に配置したものである。ここで、部分画像Ａｉは、画像重心Ｇｉが平衡位置Ｏｉに位置するように基準座標Ｓ１上に配置されている。平衡位置Ｏｉ（Ｇｉ）を始点とし、平衡位置Ｏｊを終点とする位置ベクトルを、以下、平衡位置ベクトルＯｉｊとも呼ぶ。このように、部分画像Ａ１〜Ａｎそれぞれが、画像重心Ｇ１〜Ｇｎが平衡位置Ｏ１〜Ｏｎに位置するように基準座標Ｓ１上に配置されて、合成画像が生成される。
【００８２】
また、図１０において、部分画像Ａｊｐは、部分画像Ａｊを隣接する部分画像Ａｉに対して、重なり領域Ｖｐが一致するように、基準座標Ｓ１上に配置したものである。最適位置ベクトルＰｉｊは、平衡位置Ｏｉ（Ｇｉ）を始点とし、画像重心Ｇｊを終点とする位置ベクトルである。
【００８３】
そして、図１０に示すように、画像重心Ｇｉと平衡位置Ｏｉとを一致させた時、平衡位置ベクトルＯｉｊと最適位置ベクトルＰｉｊとは一致しない場合がある。
【００８４】
そして、部分画像Ａｉと部分画像Ａｊｏとの重なり領域Ｖｏでは、部分画像Ａｉと部分画像Ａｊｐとの重なり領域Ｖｐよりも、画像のズレが大きくなる可能性がある。
【００８５】
このように、合成画像に生じる局所的なズレを、合成画像の全体に分散させることにより、一方では、重なり領域Ｖｏのように、合成画像には、画像のズレが大きくなる領域が生じるおそれがある。
【００８６】
そこで、装置１０は、部分画像を補正することにより、重なり領域Ｖｏで生じ得るズレを低減する。そして、装置１０は、この補正された部分画像を用いて、合成画像を生成する。
【００８７】
次に、装置１０が部分画像を補正する処理を、図面を参照して、以下に説明する。
【００８８】
図１１は、画像合成装置の動作を説明するフローチャート（その３）である。
【００８９】
まず、ステップＳ４０において、図１２に示すように、隣接して撮影された２つの部分画像Ａｉ、Ａｊをそれぞれの画像重心Ｇｉ、Ｇｊが平衡位置Ｏｉ、Ｏｊに位置するように基準座標Ｓ１上に並べる。そして、部分画像Ａｉの画像重心Ｇｉを始点とし、部分画像と隣接する部分画像Ａｊの画像重心Ｇｊを終点とする平衡位置ベクトルＯｉｊを求める。ここで、部分画像Ａｊｏは、部分画像Ａｊを隣接する部分画像Ａｉに対して画像重心Ｇｊが平衡位置Ｏｊに位置するように基準座標Ｓ１上に配置したものである。
【００９０】
また、隣接して撮影された２つの部分画像Ａｉ、Ａｊを重なり領域Ｖｐが一致するように基準座標Ｓ１上に並べる。そして、部分画像Ａｉの画像重心Ｇｉの位置を始点とし、部分画像Ａｉと隣接する部分画像Ａｊの画像重心Ｇｊの位置を終点とする最適位置ベクトルＰｉｊを求める。ここで、部分画像Ａｊｐは、部分画像Ａｊを隣接する部分画像Ａｉに対して重なり領域Ｖｐが一致するように、基準座標Ｓ１上に配置したものである。
【００９１】
そして、平衡位置ベクトルＯｉｊと最適位置ベクトルＰｉｊとの差である差ベクトルＤを求める。
【００９２】
次に、ステップＳ４２において、図１２に示すように、最適位置ベクトルＰｉｊと部分画像Ａｉの端との交点Ｘｌの位置を求める。交点Ｘｌは、矩形の部分画像Ａｉを構成する４つ辺の内の左の部分画像Ａｊ側の辺と、最適位置ベクトルＰｉｊとが交差する点である。
【００９３】
次に、ステップＳ４４において、図１２に示すように、交点Ｘｌの位置を、最適位置ベクトルＰｉｊの始点Ｇｉと交点Ｘｌとの間の距離Ｌ１と最適位置ベクトルＰｉｊの大きさＬ２との比と差ベクトルＤの大きさとの積（Ｌ１／Ｌ２・|Ｄ|）の分だけ、差ベクトルの方向に移動させて、補正された交点Ｘｌｏを得る。
【００９４】
交点Ｘｌを始点とし、補正された交点Ｘｌｏを終点とする位置ベクトルを位置ベクトルＥｌと呼ぶ。
【００９５】
以上により、部分画像Ａｉを、左に隣接する部分画像Ａｊ（以下、左に隣接する部分画像Ｌともいう）に対して補正するための補正された交点Ｘｌｏが得られた。
【００９６】
図１３に示すように、同様にして、部分画像Ａｉを、上に隣接する部分画像Ｔに対して補正するための補正された交点Ｘｔｏを得る。交点Ｘｔを始点とし、補正された交点Ｘｔｏを終点とする位置ベクトルを位置ベクトルＥｔと呼ぶ。
【００９７】
また、同様にして、部分画像Ａｉを、右に隣接する部分画像Ｒに対して補正するための補正された交点Ｘｒｏを得る。交点Ｘｒを始点とし、補正された交点Ｘｒｏを終点とする位置ベクトルを位置ベクトルＥｒと呼ぶ。
【００９８】
更に、同様にして、部分画像Ａｉを、下に隣接する部分画像Ｂに対して補正するための補正された交点Ｘｂｏを得る。交点Ｘｂを始点とし、補正された交点Ｘｂｏを終点とする位置ベクトルを位置ベクトルＥｂと呼ぶ。
【００９９】
また、矩形の部分画像Ａｉの左上の頂点Ｘｔｌを始点として、位置ベクトルＥｌ及びＥｔの合成ベクトルＥｔｌを配置した時の終点を、補正された頂点Ｘｔｌｏと呼ぶ。
【０１００】
また、矩形の部分画像Ａｉの右上の頂点Ｘｔｒを始点として、位置ベクトルＥｔ及びＥｒの合成ベクトルＥｔｒを配置した時の終点を、補正された頂点Ｘｔｒｏと呼ぶ。
【０１０１】
また、矩形の部分画像Ａｉの右下の頂点Ｘｂｒを始点として、位置ベクトルＥｒ及びＥｂの合成ベクトルＥｂｒを配置した時の終点を、補正された頂点Ｘｂｒｏと呼ぶ。
【０１０２】
更に、矩形の部分画像Ａｉの左下の頂点Ｘｂｌを始点として、位置ベクトルＥｂ及びＥｌの合成ベクトルＥｂｌを配置した時の終点を、補正された頂点Ｘｂｌｏと呼ぶ。
【０１０３】
そして、図１４に示すように、補正された頂点Ｘｔｌｏ，Ｘｔｒｏ，Ｘｂｒｏ，Ｘｂｌｏ及び補正された交点Ｘｌｏ，Ｘｔｏ，Ｘｒｏ，Ｘｂｏを結んで、部分画像Ａｉを変形して、補正された部分画像Ｈｉが得られる。
【０１０４】
次に、補正された部分画像Ｈｉについて、画像重心Ｇｉと補正された頂点Ｘｔｌｏと補正された交点Ｘｌｏ，Ｘｔｏとで囲まれたポリゴンｈｔｌと、画像重心Ｇｉと補正された頂点Ｘｔｒｏと補正された交点Ｘｔｏ，Ｘｒｏとで囲まれたポリゴンｈｔｒと、画像重心Ｇｉと補正された頂点Ｘｂｒｏと補正された交点Ｘｒｏ，Ｘｂｏとで囲まれたポリゴンｈｂｒと、画像重心Ｇｉと補正された頂点Ｘｂｌｏと補正された交点Ｘｂｏ，Ｘｌｏとで囲まれたポリゴンｈｂｌと、を生成する。
【０１０５】
この段階において、補正された部分画像Ｈｉは、画像重心Ｇｉと、補正された頂点Ｘｔｌｏ，Ｘｔｒｏ，Ｘｂｒｏ，Ｘｂｌｏ及び補正された交点Ｘｌｏ，Ｘｔｏ，Ｘｒｏ，Ｘｂｏとで構成されるポリゴンが生成されているが、各ポリゴン内にはまだ画素は埋め込まれていない。
【０１０６】
上述した部分画像の補正は、全ての部分画像に対して行われる。
【０１０７】
ここで、複数の部分画像Ａ１〜Ａｎの内、合成画像の一番上の行を構成する部分画像に対する補正を、図１５を参照して、以下に説明する。
【０１０８】
図１５において、部分画像Ａ１を変形させて補正された部分画像Ｈ１は、複数の部分画像の内で左上の角に位置する画像である。補正された部分画像Ｈ１は、左上に位置するポリゴンｈ１ｔｌと、右上に位置するポリゴンｈ１ｔｒと、右下に位置するポリゴンｈ１ｂｒと、左下に位置するポリゴンｈ１ｂｌとを有する。
【０１０９】
左上に位置するポリゴンｈ１ｔｌは、補正前の部分画像Ａ１に対して左及び上に隣接する部分画像がないので、補正はされておらず、部分画像Ａ１の対応する領域の形状を有している。
【０１１０】
右上に位置するポリゴンｈ１ｔｒは、補正前の部分画像Ａ１に対して右に隣接する部分画像Ｒとの関係で、図１２で説明したのと同様に、平衡位置ベクトル及び最適位置ベクトルを用いて、交点及び頂点の位置が補正されて生成される。
【０１１１】
右下に位置するポリゴンｈ１ｂｒは、補正前の部分画像Ａ１に対して右に隣接する部分画像Ｒ及び下に隣接する部分画像Ｂとの関係で、図１２で説明したのと同様に、平衡位置ベクトル及び最適位置ベクトルを用いて、交点及び頂点の位置が補正されて生成される。
【０１１２】
左下に位置するポリゴンｈ１ｂｌは、補正前の部分画像Ａ１に対して下に隣接する部分画像Ｂとの関係で、図１２で説明したのと同様に、平衡位置ベクトル及び最適位置ベクトルを用いて、交点及び頂点の位置が補正されて生成される。
【０１１３】
次に、合成画像の一番上の行を構成する部分画像であり、左右に隣接する部分画像を有する部分画像Ａｋを変形させて補正された部分画像Ｈｋの説明を以下に行う。
【０１１４】
補正された部分画像Ｈｋは、左上に位置するポリゴンｈｋｔｌと、右上に位置するポリゴンｈｋｔｒと、右下に位置するポリゴンｈｋｂｒと、左下に位置するポリゴンｈｋｂｌとを有する。
【０１１５】
左上に位置するポリゴンｈｋｔｌは、補正前の部分画像Ａｋに対して左に隣接する部分画像Ｌとの関係で、図１２で説明したのと同様に、平衡位置ベクトル及び最適位置ベクトルを用いて、交点及び頂点の位置が補正されて生成される。
【０１１６】
右上に位置するポリゴンｈｋｔｒは、補正前の部分画像Ａｋに対して右に隣接する部分画像Ｒとの関係で、図１２で説明したのと同様に、平衡位置ベクトル及び最適位置ベクトルを用いて、交点及び頂点の位置が補正されて生成される。
【０１１７】
右下に位置するポリゴンｈｋｂｒは、補正前の部分画像Ａｋに対して右に隣接する部分画像Ｒ及び下に隣接する部分画像Ｂとの関係で、図１２で説明したのと同様に、平衡位置ベクトル及び最適位置ベクトルを用いて、交点及び頂点の位置が補正されて生成される。
【０１１８】
左下に位置するポリゴンｈｋｂｌは、補正前の部分画像Ａｋに対して左に隣接する部分画像Ｌ及び下に隣接する部分画像Ｂとの関係で、図１２で説明したのと同様に、平衡位置ベクトル及び最適位置ベクトルを用いて、交点及び頂点の位置が補正されて生成される。
【０１１９】
合成画像の一番下の行を構成する部分画像、一番左の列を構成する部分画像及び一番右の列を構成する部分画像に対しても、上述したのと同様に、隣接する画像との関係で、平衡位置ベクトル及び最適位置ベクトルを用いて、交点及び頂点の位置が補正されて、補正された部分画像が生成される。
【０１２０】
次に、補正された部分画像Ｈｉに対して、各ポリゴン内に画素を埋め込む処理を、図１６及び図１７を参照して、以下に説明する。
【０１２１】
まず、図１６に示すように、補正された部分画像Ｈｉに対して、各ポリゴンが所定数のメッシュに分割される。
【０１２２】
図１６に示す例では、補正された部分画像Ｈｉは、左上に位置するポリゴンｈｔｌと、右上に位置するポリゴンｈｔｒと、右下に位置するポリゴンｈｂｒと、左下に位置するポリゴンｈｂｌとを有する。
【０１２３】
左上に位置するポリゴンｈｔｌは、各辺が４つに等間隔に分割されて、４×４のメッシュに分割されている。図示はしないが、他の３つのポリゴンも、同様に４×４のメッシュに分割される。なお、ポリゴンの分割は、４×４以外の数に分割しても良い。
【０１２４】
次に、図１７に示すように、部分画像Ｈｉの補正前の部分画像Ａｉに対して、画像重心Ｇｉと頂点Ｘｔｌと交点Ｘｌ，Ｘｔとで囲まれたポリゴンａｔｌと、画像重心Ｇｉと頂点Ｘｔｒと交点Ｘｔ，Ｘｒとで囲まれたポリゴンａｔｒと、画像重心Ｇｉと頂点Ｘｂｒと交点Ｘｒ，Ｘｂとで囲まれたポリゴンａｂｒと、画像重心Ｇｉと頂点Ｘｂｌと交点Ｘｂ，Ｘｌとで囲まれたポリゴンａｂｌと、を生成する。
【０１２５】
そして、部分画像Ａｉに対して、各ポリゴンが、補正された部分画像Ｈｉと同様に、所定数のメッシュに分割される。
【０１２６】
図１７に示す例では、左上に位置するポリゴンａｔｌは、補正された部分画像Ｈｉのポリゴンｈｔｌと同様に、各辺が４つに等間隔に分割されて、４×４のメッシュに分割される。図示はしないが、補正された部分画像Ｈｉの他の３つのポリゴンも、同様に４×４のメッシュに分割される。
【０１２７】
そして、ポリゴンａｔｌの各メッシュの画素が、公知の技術を用いて、ポリゴンｈｔｌの対応するメッシュに対して、補間しながら貼り付けられる。
【０１２８】
図１７に示す例では、ポリゴンａｔｌのメッシュａｚの画素が、ポリゴンｈｔｌの対応するメッシュｈｚに対して、補間しながら貼り付けられる。同様にして、ポリゴンａｔｌの各メッシュの画素が、ポリゴンｈｔｌの対応するメッシュに対して、補間しながら貼り付けられる。
【０１２９】
同様にして、補正された部分画像Ｈｉの他の３つのポリゴンの各メッシュに対しても、部分画像Ａｉの対応するポリゴンのメッシュの画素が補間しながら貼り付けられる。
【０１３０】
このようにして、補正された部分画像Ｈｉに対して、画素が埋め込まれる。
【０１３１】
上述したのと同様の処理は、全ての補正された部分画像に対して行われる。
【０１３２】
そして、補正された部分画像Ｈ１〜Ｈｎそれぞれを、画像重心Ｇ１〜Ｇｎが平衡位置Ｏ１〜Ｏｎに位置するように基準座標Ｓ１上に配置して、合成画像が生成される。
【０１３３】
上述した本実施形態の画像合成装置によれば、画像のズレを低減した合成画像が得られる。
【０１３４】
本発明では、上述した実施形態の画像を合成する方法、画像を合成するプログラム及び画像合成装置は、本発明の趣旨を逸脱しない限り適宜変更が可能である。
【０１３５】
例えば、上述した実施形態では、矩形の部分画像を用いていたが、部分画像は、矩形でなくても良い。例えば、部分画像が、湾曲面を撮影したものである場合、部分画像の歪みを平面に展開するように補正して、この補正された部分画像を用いて、合成画像を生成することが好ましい。この場合、部分画像の歪みを平面に展開するように補正された部分画像は矩形ではなくなる。このように補正された部分画像を用いて、合成画像を生成しても良い。
【符号の説明】
【０１３６】
１０    画像合成装置
１１    演算部
１２    記憶部
１３    表示部
１４    入力部
１５    出力部
１６    通信部
Ａ１〜Ａｎ    部分画像
Ｈ１〜Ｈｎ    補正された部分画像
Ｂ    被写体
Ｖ    重なり領域
Ｇｉ    部分画像ｉの画像重心
ｍ    画像重心の質量
Ｓ    仮想バネ
ｋ    バネ定数
Ｐｉｊ    最適位置ベクトル
Ｃｉｊ    位置ベクトル
Ｏｉｊ    平衡位置ベクトル
Ｏｉ    部分画像ｉの画像重心の平衡位置
Ｄ    差ベクトル
【図１】
0005925042.tif 000002
【図２】
0005925042.tif 000003
【図３】
0005925042.tif 000004
【図４】
0005925042.tif 000005
【図５】
0005925042.tif 000006
【図６】
0005925042.tif 000007
【図７】
0005925042.tif 000008
【図８】
0005925042.tif 000009
【図９】
0005925042.tif 000010
【図１０】
0005925042.tif 000011
【図１１】
0005925042.tif 000012
【図１２】
0005925042.tif 000013
【図１３】
0005925042.tif 000014
【図１４】
0005925042.tif 000015
【図１５】
0005925042.tif 000016
【図１６】
0005925042.tif 000017
【図１７】
0005925042.tif 000018