(57)【特許請求の範囲】
【請求項１】
撮像装置から撮影した画像を受信すると共に、要求信号を出力して上記画像を縮小した確認画像を受信する受信手段と、
上記受信手段が順次に受信した第１、第２の確認画像の相対位置を検出して保持する検出手段と、
上記第１、第２の確認画像と対応して受信した元の第１、第２の画像を上記検出保持した相対位置に基づいて合成処理する合成処理手段とを備えたことを特徴とする画像合成装置。
【請求項２】
上記第１、第２の確認画像を画面表示する表示手段を設けたことを特徴とする請求項１に記載の画像合成装置。
【請求項３】
上記合成処理手段は、上記相対位置から上記第１、第２の画像のオーバーラップ部分を検出し、この検出されたオーバーラップ部分に基づいて上記第１、第２の画像をつなぎ合わせて合成することを特徴とする請求項１に記載の画像合成装置。
【請求項４】
上記オーバーラップ部分が適正な範囲内にあるか否かを判断する判断手段を設けたことを特徴とする請求項３に記載の画像合成装置。
【請求項５】
上記判断手段の判断結果を使用者に知らせる報知手段を設けたことを特徴とする請求項４に記載の画像合成装置。
【請求項６】
上記合成処理手段は、上記相対位置に基づく上記オーバーラップ部分の検出を行った後、上記第１、第２の画像の特徴パターンの一致を検出し、この検出に基づいてより正確なオーバーラップ部分を再度検出することを特徴とする請求項３に記載の画像合成装置。
【請求項７】
被写体を撮影して画像を得る撮像手段と、上記画像を出力すると共に、要求信号に応じて上記画像を縮小した確認画像を作成して出力すると共に、元の画像を出力する信号処理手段とを有する撮像装置と、
上記要求信号を出力して上記撮像装置から上記確認画像を受信すると共に、上記撮影した画像を受信する受信手段と、上記受信手段が順次に受信した第１、第２の確認画像の相対位置を検出して保持する検出手段と、上記第１、第２の確認画像と対応して受信した元の第１、第２の画像を上記検出保持した相対位置に基づいて合成処理する合成処理手段とを有する画像合成装置とを備えたことを特徴とする画像合成システム。
【請求項８】
上記第１、第２の確認画像を画面表示する表示手段を設けたことを特徴とする請求項７に記載の画像合成システム。
【請求項９】
上記合成処理手段は、上記相対位置から上記第１、第２の画像のオーバーラップ部分を検出し、この検出されたオーバーラップ部分に基づいて上記第１、第２の画像をつなぎ合わせて合成することを特徴とする請求項７に記載の画像合成システム。
【請求項１０】
上記オーバーラップ部分が適正な範囲内にあるか否かを判断する判断手段を設けたことを特徴とする請求項９に記載の画像合成システム。
【請求項１１】
上記判断手段の判断結果を使用者に知らせる報知手段を設けたことを特徴とする請求項１０に記載の画像合成システム。
【請求項１２】
上記合成処理手段は、上記相対位置に基づく上記オーバーラップ部分の検出を行った後、上記第１、第２の画像の特徴パターンの一致を検出し、この検出に基づいてより正確なオーバーラップ部分を再度検出することを特徴とする請求項９に記載の画像合成システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子カメラが撮影したオーバーラップ部分を有する複数の画像をコンピュータ上でつなぎ合わせて１枚のパノラマ画像を得る場合等に用いて好適な画像合成装置及びこの装置を用いた画像合成システムに関するものである。
【０００２】
【従来の技術】
画像の一部がオーバーラップしている複数の画像をコンピュータ上で合成を行う処理を、一般的にパノラマ合成と呼ぶ。これは、ワイドな画像を撮影して一枚の画像にしたいという要求からの処理といえる。また電子カメラにおいては、銀塩カメラやスキャナと比較した短所として、解像度の低さ（画素数の少なさ）が指摘されている。この電子カメラで撮影された画像にとってのパノラマ画像合成は、ワイドな画像を撮るということだけでなく、高解像度な画像を得る手段としても重要である。具体的には一枚の紙の原稿や雑誌等を複数に分けて撮影し、スキャナ並みの高解像度データを取得したり、また風景を複数に分割してワイドで高解像度に撮影したりすることに威力を発揮する。
【０００３】
一方、電子カメラをパーソナルコンピュータと接続し、電子カメラからの画像をコンピュータに取り込むパノラマ合成システムもいくつか実現され、一般的な価格で提供されている。このとき、両者を接続しているパラレルＩ／ＦやシリアルＩ／Ｆ等の伝送路の制約で、フルサイズの画像をリアルタイムでコンピュータ上に取り込むのは難しい。従って、画像サイズを小さなサイズに縮小して、この縮小画像をリアルタイムに近い間隔でコンピュータ上に取り込み（以降，これを確認画像の取り込みと呼ぶ）、実際に撮影したいシーンのときに撮影ボタンを押すことで、フルサイズの静止画像を取得する。
【０００４】
【発明が解決しようとする課題】
複数の画像からパノラマ画像合成を行うときに、最も難しいのは両者の画像の対応する画素を見つける処理（以降、対応点抽出処理と呼ぶ）である。対応点が見つかれば、そこから両者の画像の相対位置（オーバーラップ位置）がわかるので合成を行うことができる。しかし、対応点の抽出処理には、画像中に特徴点が少ない場合や、画像の複数の場所に類似したパターンがある場合にはエラーを生じることがあり、完全に自動で実現するのは難しいのが現状である。
【０００５】
本発明は上記の問題を解決するために成されたものであり、撮像装置で撮像した複数の画像を用いて自動的にパノラマ画像の作成を行うことを目的としている。
【０００６】
【課題を解決するための手段】
本発明に係る画像合成装置は、撮像装置から撮影した画像を受信すると共に、要求信号を出力して上記画像を縮小した確認画像を受信する受信手段と、上記受信手段が順次に受信した第１、第２の確認画像の相対位置を検出して保持する検出手段と、上記第１、第２の確認画像と対応して受信した元の第１、第２の画像を上記検出保持した相対位置に基づいて合成処理する合成処理手段とを備えたことを特徴とする。
【０００７】
本発明に係る画像合成システムは、被写体を撮影して画像を得る撮像手段と、上記画像を出力すると共に、要求信号に応じて上記画像を縮小した確認画像を作成して出力すると共に、元の画像を出力する信号処理手段とを有する撮像装置と、上記要求信号を出力して上記撮像装置から上記確認画像を受信すると共に、上記撮影した画像を受信する受信手段と、上記受信手段が順次に受信した第１、第２の確認画像の相対位置を検出して保持する検出手段と、上記第１、第２の確認画像と対応して受信した元の第１、第２の画像を上記検出保持した相対位置に基づいて合成処理する合成処理手段とを有する画像合成装置とを備えたことを特徴とする。
【０００９】
【作用】
本発明に係る画像合成装置及び画像合成システムによれば、画像合成装置が撮像装置に要求して撮像した画像を縮小した第１、第２の確認画像を送ってもらい、それらの相対位置を検出し、検出された相対位置に基づいて元の各画像を取り込んで合成することができる。
【００１１】
【発明の実施の形態】
本実施の形態は、次の手順により、電子カメラからの画像をコンピュータに取り込んでパノラマ画像の作成を自動的に行うシステムである。最初に使用者は電子カメラに確認画像を要求し、これに応じて電子カメラは撮影した画像を縮小して確認画像を作成してコンピュータに送る。使用者は確認画像を見ながらコンピュータ画面上の撮影ボタンを押して第１の画像を取り込む。これに応じて電子カメラは撮影した第１の画像をコンピュータに送る。次に第１の画像にオーバーラップした第２の画像を得るために電子カメラの撮影箇所を移動していくが、これに伴って移動する確認画像のシフト方向とシフト量を検出し、第１の画像に対する相対位置の追跡を行う。そして、使用者が撮影ボタンを押した時点で第２の画像を取り込んで、第１の画像に対する相対位置を保持する。使用者が合成ボタンを押すことでパノラマ画像作成処理を開始し、上記相対位置情報を元にしてオーバーラップ位置を求め合成を行う。
【００１２】
このとき、第２の画像が撮影されるまでの間、第２の確認画像は、第１の縮小画像の表示に対する相対位置に表示することで、使用者にどれだけ、どの方向にカメラを動かせばよいかを明示していく。さらに、パノラマ画像合成に適したオーバーラップ位置になったときには、音や、表示で使用者に知らせる機構を持つ。逆に、パノラマ画像合成をするにはオーバーラップ範囲が狭すぎるときや、オーバーラップしていない状態になったときも、音や、表示で使用者に知らせる機構も持つ。
【００１３】
図１はパーソナルコンピュータに接続される電子カメラの概略構成ブロック図を示す。図１において、２００は撮影レンズ、２０２は絞り、２０４は絞り２０２を開閉する絞り駆動回路、２０６は撮像素子、２０８は撮像素子２０６の出力をデジタル信号に変換するＡ／Ｄ変換器、２１０は、バッファ・メモリ２１２を使用して、測光、測色及び圧縮などの信号処理を行うデジタル信号処理回路（ＤＳＰ）である。
【００１４】
２１４は撮影画像を最終的に記憶する大容量のメモリ装置であり、例えば、磁気ディスク駆動装置、光ディスク駆動装置、光磁気ディスク駆動装置、及びＥＥＰＲＯＭやバッテリバックアップされたＤＲＡＭなどからなる固体メモリ装置などからなる。固体メモリ装置としてはいわゆるメモリカードが該当する。本実施の形態では、メモリ装置２１４として、メモリ・カードを想定している。２１６はＤＳＰ２１０の出力とメモリ装置２１４とのインターフェースである。
【００１５】
２１８は、撮像素子２０６、Ａ／Ｄ変換器及びＤＳＰ２１０に、おのおのに必要なクロックや同期信号を供給する同期信号発生回路（ＳＳＧ）、２２０は全体を制御するシステム制御回路、２２２は電源電池、２２４は電源スイッチ、２２６はシステム制御回路の指令下に、各回路２０４〜２１８への電源供給を制御する電源制御回路である。
【００１６】
２２８はシャッタレリーズボタンの押し下げ操作により閉じるスイッチである。システム制御回路２２０はスイッチ２２８が閉じたことによって撮影（すなわち、撮像素子２０６の露光及び読み出しなど）を実行する。
２３２は双方向パラレルインターフェース、ＳＣＳＩインターフェースなどによって構成される外部Ｉ／Ｆであり、パーソナルコンピュータ２３４と接続される。
【００１７】
図２は画像を撮影する際のフローチャートである。スイッチ２２８がオンになると、絞り駆動回路２０４を介して絞り２０２を制御し（ステップ３０１）、撮像素子２０６を露光する（ステップ３０２）。バッファ・メモリ２１２に給電する（ステップ３０３）。撮像素子２０６の露光による電荷信号が読み出され、Ａ／Ｄ変換器２０８によりデジタル信号に変換され、ＤＳＰ２１０を介してバッファ・メモリ２１２に書き込まれる（ステップ３０４）。この時、ＤＳＰ２１０は、ガンマ補正及びニー補正を行い、ホワイトバランスを調整し所定圧縮方式で圧縮し、これらの処理をしたデジタルデータをバッファメモリ２１２に書き込む。そしてメモリ装置２１４及びインターフェース２１６に給電し、バッファメモリ２１２のデータをＤＳＰ２１０及びインターフェース２１６を介してメモリ装置２１４に転送する（ステップ３０５）。この転送の際に、データ圧縮を行ってもよい。
【００１８】
図３は本発明が実施されうるプラットフォームであるパーソナルコンピュータシステムの構成例を示す。図３において３０１はコンピュータシステム本体、３０２はデータを表示するディスプレー、３０３は代表的なポインティングデバイスであるマウス、３０４はマウスボタン、３０５はキーボードである。３０７はコンピュータに接続可能な電子カメラであり、これは３０６で示す双方向パラレルインターフェースやＳＣＳＩインターフェース等の、高速で画像転送可能な汎用インターフェースによって接続されると共に、三脚３０８に設置されている。
【００１９】
図４はソフトウェアとハードウェアを含むパノラマ画像合成システムの構成を示す図である。図４において、５０９はハードウェアであり、５０５はハードウェア５０９の上で動作するオペレーティングシステム（ＯＳ）であり、５０４はＯＳ５０５の上で動作するアプリケーションソフトウェアである。なおハードウェア５０９とＯＳ５０５を構成するブロックのうち構成用件として当然含まれるが本発明の実施の形態を説明する上で直接必要としないブロックに関しては図示していない。そのような図示していないブロックの例としてハードウェアとしてはＣＰＵ、メモリ、ＯＳとしてはメモリ管理システム等がある。
【００２０】
５１５はファイルやデータを物理的に格納するハードディスク、５０８はＯＳを構成するファイルシステムであり、アプリケーションソフトウェアがハードウェアを意識せずにファイルの入出力が行えるようにする機能がある。５１４はファイルシステム５０８がハードディスク５１５の読み書きを行うためのディスクＩＯインターフェースである。５０７はＯＳを構成する描画管理システムであり、アプリケーションソフトウェアがハードウェアを意識せずに描画が行えるようにする機能がある。
【００２１】
５１３は描画管理システム５０７がディスプレー３０２に描画を行うためのビデオインターフェースである。５０６はＯＳを構成する入力デバイス管理システムであり、アプリケーションソフトウェアがハードウェアを意識せずにユーザの入力を受け取ることができるようにする機能がある。５１０は入力デバイス管理システム５０６がキーボード３０５の入力を受け取るためのキーボードインターフェース、マウスインターフェース５１２は入力デバイス管理システム５０６がマウス３０３からの入力を受け取ることができるようにするためのマウスインターフェースである。
【００２２】
５１６は双方向インターフェースもしくはＳＣＳＩインターフェース等のインターフェースであり、電子カメラ３０７に接続され、入力デバイス管理システム５１０を通して画像データ等のやりとりを行うことができる。５０１は画像データ管理システムであり、５０２はカメラに対して縮小画像としての確認画像を要求したり、撮影画像を取り込んだりするカメラ制御手段である。５０３は確認画像の表示や、既にカメラから取り込んで管理している画像データの表示を行うデータ表示手段である。５１７はパノラマ画像合成システムであり、画像データ管理システム５０１から撮影した画像を受け取り、パノラマ画像合成処理を行い、合成した画像を画像データ管理システム５０１へ登録する。
【００２３】
次に図５に本システムにおけるコンピュータ画面上のユーザインターフェースを示し、一連の操作手順について概略説明する。最初に使用者は縮小された第１の確認画像２３０２を見ながら、コンピュータ画面上の撮影ボタン２３０４を押して第１の画像を撮影する。撮影された第１の画像２３０１は撮影画像表示画面２３０７に表示される。次に、第１の画像２３０１にオーバーラップした第２の画像を得るために三脚３０８を動かして電子カメラ３０７の撮影箇所を移動していくが、その間、撮影箇所の移動に伴って画面上を移動する確認画像のシフト方向とシフト量を検出し、第１の画像２３０１に対する相対位置の追跡を行う。この間第２の確認画像２３０３は、第１の確認画像２３０２の表示との相対位置に合わせて表示されることで、使用者にどれだけ、どの方向にカメラを動かせばよいかを明示する。そして使用者が撮影ボタン２３０４を押した時点で、第２の撮影画像を取り込んで撮影画像表示画面２３０７に表示し、第１の画像２３０１に対する相対位置を保持する。次に使用者が合成ボタン２３０５を押すことでパノラマ画像作成処理を開始し、上記相対位置情報に基づいてオーバーラップ位置を求め合成を行う。そして、その結果のパノラマ合成画像２３０６が撮影画像表示画面２３０７に表示される。尚、電子カメラ３０７を動かしているときに、パノラマ画像合成に適したオーバーラップ位置になった場合（図５の右側の確認画像２３０２、２３０３の状態）には、それを自動で検出し、音を出すか、各画像２３０２、２３０３の枠を明るく表示する等の方法により使用者に知らせる機構が設けられている。
【００２４】
図６に、本発明の全体の手順を示すフローチャートを示す。ステップ２４０１で、合成開始ボタン２３０５が押されたかのチェックを行い、押されたならば合成すべき複数の画像を既に取得しているかのチェックを行う。これがＮｏならば、ステップ２４０２で撮影ボタンが押されたかのチェックを行う。これがＮｏならば確認画像の取り込み手順に入る。
【００２５】
まずステップ２４０３で電子カメラ３０７に対して確認画像の取り込み要求を出す。ステップ２４０４で確認画像データが送られてくるまで待ち、送られてきたならばステップ２４０５で確認画像データを取得する。このとき既に取り込まれた第１の画像があるかどうかをステップ２４０６でチェックを行い、Ｎｏであればステップ２４０７で所定の場所に確認データの表示を行った後、またステップ２４０１に戻る。以上が初めて画像を取り込む以前の処理の流れとなる。
【００２６】
既に第１の画像がある場合には、ステップ２４０６からステップ２４０８に進み、第１の画像との相対位置を求める処理を行い、その結果の位置情報を保持する。この詳細については後述する。そしてステップ２４０９で上記位置情報に従って画像を表示するとともに、その位置がパノラマ合成を行う上で適正な位置かどうかのチェックを行う。これも詳細については後述する。以上で、第１の画像と第２の画像とが位置関係を明示しながら表示を行う処理の流れとなる。
【００２７】
次にステップ２４０２で撮影ボタン２３０４が押されたことを検知したときには、まず、ステップ２４１３でこの時点での相対位置情報を保持する。このときが初めての撮影画像の取り込み（第１の撮影画像の取り込み）であれば、相対位置情報は（０，０）であり、第２の撮影画像の取り込みであれば、ステップ２４０８で保持している位置情報を保持する。次にステップ２４１０で電子カメラ３０７に対して撮影画像の取り込みを要求を出す。ステップ２４１１で撮影画像データが送られてくるまで待ち、送られてきたならばステップ２４１２で撮影画像データを取得する。そしてステップ２４１４で撮影画像データを撮影画像表示画面２３０７に表示する。
【００２８】
２４０１でＹｅｓのときは、ステップ２４１５のパノラマ画像合成処理を行う。この詳細も後述する。そして、ステップ２４１６で結果の合成画像を撮影画像表示画面２３０７に表示する。
【００２９】
以上は合成する画像が２枚であることを前提に説明したが、それより多い枚数の場合も、確認画像の表示の部分（ステップ２４０８〜２４０９）と撮影画像の取り込み部分（ステップ２４１０〜２４１４）の繰り返しが増えるだけなので、以上と同様の手順で行うことができる。
【００３０】
図７に図６のステップ２４０８による第１の画像との相対位置を求める処理について、その詳細を説明するフローチャートを示し、図８にこの処理の動きを示す説明図を示す。まず図８について説明する。２５０１は既に撮影まで行われた第１の確認画像である。２５０２は前回の第２の確認画像であり、第１の確認画像２５０１の左上隅の座標を（０，０）としたときの相対位置（ｘ，ｙ）を保持している。
【００３１】
このとき、前回の確認画像２５０２から参照パターン２５０４を切り出す。この例では位置の異なる４つの参照パターン２５０４を切り出している。この各参照パターン２５０４が今回の確認画像２５０５上の各所定の範囲２５０６の中で最も一致する場所を探す。一致条件としては、例えばパターンの画素値との差分をとり、その総和の最も値の小さいところを一致した場所とみなす。この例ではパターンごとに４つの差分の総和の最小値が求められるが、その中で最小値が所定のしきい値よりも大きいときは信頼性に欠けるので除き、残りの場所情報から移動量（Δｘ，Δｙ）を求める。そして、先の相対位置（ｘ，ｙ）に（Δｘ，Δｙ）を加算することで、新たな相対位置（ｘ，ｙ）が求まる。この状態を今回の確認画像２６０７として示す。
【００３２】
次に図７のフローチャートに従って上記の内容を再度説明する。ステップ２６０１で前回の確認画像をメモリ上から取得する。第１の確認画像を撮影し終わた直後の時点では、前回の確認画像とは第１の確認画像のことになる。それ以外は、第２の確認画像の前回取得してある画像となる。ステップ２６０２で、この画像から参照パターンを複数切り出す。図８の例では４つの異なる位置の参照パターン２５０４を切り出すことにしている。次にステップ２６０３で今回の確認画像をメモリ上から取得し、ステップ２６０４で参照パターンが今回の確認画像のサーチ範囲の中で最も一致する場所を探す。ステップ２６０５で、一致した場所と参照パターンを切り出した場所の差から移動量（Δｘ，Δｙ）を求める。このステップ２６０４と２６０５のより詳細なフローチャートを図９に示す。
【００３３】
ステップ２７０１で変数ｍｉｎを十分大きな値で初期化する。ここでは、参照パターンの画素数に画素値の最大値２５５を掛けた値で初期化している。ステップ２７０２で、サーチ範囲のある部分と参照パターンとの間で対応する画素の差分の絶対値を取る。そしてこれらの総和を求め変数Ｓｕｍに代入する。ステップ２７０３でＳｕｍがｍｉｎより小さければ、Ｓｕｍをｍｉｎに代入し、サーチ範囲の中の参照した位置をとっておく。以上をサーチ範囲全ての部分に対して行うことにより、最終的にｍｉｎに最も一致したところの差分の総和とその位置とが保持されている。
【００３４】
ステップ２７０６でそのｍｉｎの値が所定値以下かどうかをチェックする。所定値以下であれば信頼できる結果であると判断する。ステップ２７０７で、第１の確認画像中の参照パターンの切り出した位置と、第２の確認画像中のサーチ範囲の中で求めた一致位置とから、この参照パターンにおける移動量（Δｘｎ，Δｙｎ）を求める。ステップ２７０６で所定値以上のときには信頼できない結果として、このときの移動量は以降で使わない。
【００３５】
以上の処理を全ての参照パターンについて繰り返す。それが終わたらステップ２７０９で有効な移動量（Δｘｎ，Δｙｎ）が少なくとも一つ以上あるかのチェックを行う。もしなければ移動量の算出は不可能となり、ステップ２７１１で全ての処理を打ち切る。この結果になる場合の原因は、電子カメラ３０７をパンするスピードが速すぎることが考えられる。以上の処理に要する時間から、カメラをパンするスピードに制約が生じる。従って使用者には対応できるスピード（ある程度ゆっくりのスピード）でカメラを動かして（パンして）もらわなければならない。
【００３６】
移動量（Δｘ，Δｙ）を求めるのに失敗したときには、カメラのパンが速すぎますという警告メッセージを出して全ての処理を終了する。ステップ２７０９で有効な移動量（Δｘｎ，Δｙｎ）が少なくとも一つ以上あったときには、ステップ２７１０で、これら（Δｘｎ，Δｙｎ）の平均を求め、この平均を今回の確認画像の移動量（Δｘ，Δｙ）とする。
【００３７】
再び図７に戻って説明すると、ステップ２６０６で、今までの移動量の値（ｘ，ｙ）に求めた（Δｘ，Δｙ）を加算して、新しい移動量（ｘ，ｙ）にする。そしてステップ２６０７で、今まで使用した前回の確認画像はもう不要なのでメモリ上から消去し、今回の確認画像は次回に前回の確認画像となるので、そのままメモリ上にとっておく。
【００３８】
以上で確認画像の追跡処理が終了する。確認画像は、例えば１６０×１２０画素程度の小さなサイズの画像である。これは、カメラのフレーミングを確認するための画像（カメラのファインダとしての画像）である。この理由から、できる限りリアルタイムに画像を送りたいが、カメラ側の負荷とカメラとパソコンをつなぐＩ／Ｆの転送レートの制約、さらにパソコン側の表示スピード等の問題により、フルサイズの画像を送出しパソコンがそれを受け取って表示するというのは難しい。そこで、リアルタイム性の方を重視することで、その分画像のサイズは小さくなる。しかし確認画像の移動量を検出するための上述した処理は高速で行う必要があるのて、画像のサイズが小さい方が望ましい。これは参照パターンのサイズを小さくでき、このパターンがサーチする範囲も狭くて済むからである。
【００３９】
図１０に第２の確認画像の表示とパノラマ合成をするのに適当な位置になっているのかのチェックを行うフローチャートを示す。ステップ２８０１ではその表示を行うが、第１の確認画像を固定した位置に表示して、第２の確認画像を移動量（ｘ，ｙ）だけずらして重ねて表示する。ステップ２８０２で、この移動量（ｘ，ｙ）はパノラマ画像としてふさわしい位置かどうかのチェックを行う。このときのふさわしいという基準は、後述する対応点抽出に必要なオーバーラップ量は確保して、かつできるだけワイドな画像を得る（つまりオーバーラップする量が少ない）という条件で判断する。本実施の形態では、画像の縦横各々の辺が１５％±５％以内におさまっているときにふさわしいと判断する。これを図１１に図示する。２９０１を第１の確認画像とすると、各々の辺が１５％±５％以内ということで、２９０２で示す第２の確認画像が２９０３で示す範囲内に収まるときにふさわしい位置と判断する。第２の確認画像２９０２で適当（ふさわしい）と判断されたときには、ステップ２８０３でピッという音と、ステップ２８０４で第１の確認画像と第２の確認画像の枠を明るい色で表示する。この音色や表示の方法は他の様々なものであってよい。
【００４０】
次に、ステップ２８０５で、逆にパノラマ合成ができない位置になっているかどうかのチェックを行う。パノラマ合成ができない位置とは、オーバーラップ量が小さすぎて後述する対応点抽出処理に不都合が生じる場合である。具体的には縦横どちらかの辺が１０％未満のオーバーラップ量となってしまったとき（もちろん、完全に離れてしまった場合も含める）に、パノラマ合成ができないと判断する。このときはステップ２８０６で、例えばピーッといった警告音を出す等、何らかの表示を行う。使用者はこれらの音や表示で、オーバーラップ量が狭すぎることを知り、もっとオーバーラップさせる方向にカメラを戻す操作を行うことになる。
【００４１】
以上で、第２の確認画像の表示と、パノラマ合成をするのに適当な位置になっているのかのチェックを行う処理が終了する。使用者はこのようにして第２の確認画像を見ながら適当な位置になるようカメラを動かし、図５の撮影ボタン２３０４を押すことで、第２の撮影画像を取り込む。そして合成ボタン２３０５を押すことでパノラマ画像の作成処理が開始する。
【００４２】
次に図６のステップ２４１５によるパノラマ画像合成処理について図１２のフローチャートと共により詳細な手順を説明する。
まずステップ１３０１で、前述の処理で求めた複数の画像の相対位置を取得する。この状態での相対位置には、誤差が含まれるので、より正確に一致するようにステップ１３０３の対応点を抽出する処理を行う。次にステップ１３０５の合成パラメータ処理へ進む。ここでは、合成の際に用いる移動、拡大（縮小）、回転のパラメータを、先の対応点の座標から求める。次にステップ１３０６ではこれらパラメータをもとに画像を合成する。
【００４３】
次に上述各ステップ１３０１、１３０３、１３０５、１３０６の詳細を説明する。
最初にステップ１３０１複数の画像の相対位置を取得する処理について説明する。図１３にフローチャートを示す。先に求めた移動量（ｘ，ｙ）は、確認画像における座標の相対位置であるので、これをフルサイズ画像での座標値に変換する必要がある。そこでステップ３００１で（フル画像のサイズ／確認画像のサイズ）によって拡大率ａを求める。そしてステップ３００２で（ｘ，ｙ）にこの拡大率ａを掛けることでフルサイズ画像での相対位置（Ｘ，Ｙ）を求める。
【００４４】
この時点で求められた第１の画像に対する第２の画像の相対位置（オーバーラップ位置）（Ｘ，Ｙ）は、確認画像の座標での相対位置（ｘ，ｙ）を拡大したことによる誤差を含んでいる。また実際は第２の画像は、第１の画像を撮影したときに対して多少傾いて撮影している可能性もある。しかし（ｘ，ｙ）では、この傾いた量の情報は含まれていない。そこで、上記相対位置（オーバーラップ位置）（Ｘ，Ｙ）は、だいたいの位置が定められたという意味となるので、次に説明する対応点抽出処理を用いてより正確に相対位置（オーバーラップ位置）を求めていく。
【００４５】
図１４に対応点抽出処理のフローチャートを示し、図１５にそれを図示したものを示す。図１５は、左と右の画像２枚の例を示す。画像の枚数が２枚より大きいときは２枚の合成を何回か繰り返せばよいので処理としては基本的に同じである。２００５、２００６で示すエリアは、先に求められた相対位置から算出されるオーバーラップするエリアである。画像中のエリア２００５からエッジが所定値以上強い点を探し、そこを中心として縦、横ｎ画素の矩形をテンプレート画像として切り出す。これをテンプレート画像２００３とする。
【００４６】
一方、右画像の対応するエリア２００６中には、テンプレート画像２００３に対応する部分が存在する。これを中心に所定量広げた範囲をサーチ範囲２００４とする。テンプレート画像２００３をサーチ範囲２００４上に置いて画素単位でその差分をとる。この合計が最小となるところをサーチ範囲上を１画素ずつずらして求める。サーチ範囲上を全てサーチした結果の最小値が、所定値以下であれば、そのポイント同士（ｘ，ｙ）と（ｘ′，ｙ′）を対応点のペアとして保持する。
【００４７】
以上が処理の概要となるが、これを図１４のフローチャートに沿ってもう一度説明する。まずステップ１９０１でエッジ抽出画像を作成する。そしてステップ１９０２で、このエッジ抽出画像の中のテンプレートを設定する範囲２００５からエッジが所定値以上強いポイントを探す。そしてそのポイントがあれば、ステップ１９０３でそのポイントから縦横±ｎ画素ずつの矩形で画像を切り出しテンプレート画像とする。次にステップ１９０４で、そのポイントの位置から、右画像中のサーチ範囲を設定する。そしてステップ１９０５で、サーチ範囲中の画像とテンプレート画像を重ね合わせ、画素単位で、画素値の差の絶対値をとりその合計を求める。次にステップ１９０６でこの差分合計値が、それまでの最小値かどうかをチェックし、そうであればステップ１９０７でそのサーチ範囲中のポイントの座標と、その最小値を保持する。
【００４８】
以上をサーチ範囲全てに繰り返す。そしてステップ１９０８でサーチ範囲全てについて処理したかをチェックし、ステップ１９０９でその結果求められた最小値が十分小さな値であるか（確かな対応点か）を、所定値Ｌと比較して判断する。所定値Ｌより小さかった場合は、ステップ１９１０で、対応点のリストにテンプレート画像を切り出したポイントの座標（ｘ，ｙ）と、最小値が求められたポイントの座標（ｘ′，ｙ′）と、その最小値の値を登録する。以上をステップ１９１１でテンプレート設定範囲全部に対して行い、対応点抽出処理を終了する。
【００４９】
次に、図１２のステップ１３０５の合成パラメータ設定処理について説明する。画像を２枚としたときに（２枚以上の合成の場合も２枚の合成の繰り返しなので、まずは２枚で考えてよい）、そのずれは、ｘ，ｙ方向の並進、回転、および拡大率の差で表すことができる。よって対応する点（ｘ，ｙ）、（ｘ′，ｙ′）は以下のように表せる。
【００５０】
【数１】
0003832895.tif 000002
【００５１】
ここで、θはＺ軸回りの回転角、Δｘ及びΔｙは並進、ｍは倍率を示す。
従ってパラメータＡ、Ｂ、Ｃ、Ｄを求めることにより、この座標変換を表すことができる。先の対応点抽出処理では、対応点（ｘ，ｙ）、（ｘ′，ｙ′）の複数の組を取得した。これを最小自乗法を用いて次のようにしてパラメータＡ、Ｂ、Ｃ、Ｄを求める。
ε＝Σ［｛（Ａｘ＋Ｂｙ＋ｃ）−ｘ′｝2 ＋｛（−Ｂｘ＋Ａｙ＋Ｄ）−ｙ′｝2 ］→ｍｉｎ                                            ………（２）
の条件で、
【００５２】
【数２】
0003832895.tif 000003
【００５３】
を満たすパラメータＡ、Ｂ、Ｃ、Ｄを求める。
ここで、
Ｐ1 ＝Σｘ2 ＋Σｙ2 
Ｐ2 ＝Σｘ
Ｐ3 ＝Σｙ
Ｐ4 ＝Σｘｘ′＋Σｙｙ′
Ｐ5 ＝Σｘｙ′−Σｘ′ｙ
Ｐ6 ＝Σｘ′
Ｐ7 ＝Σｙ′
Ｐ8 ＝ｎ（相対点の数）
とすると、パラメータＡ、Ｂ、Ｃ、Ｄは次のように表すことができる。
Ａ＝（Ｐ2 Ｐ6 ＋Ｐ3 Ｐ7 −Ｐ4 Ｐ8 ）／（Ｐ22＋Ｐ32−Ｐ1 Ｐ8 ）
Ｂ＝（Ｐ3 Ｐ6 −Ｐ2 Ｐ7 ＋Ｐ5 Ｐ8 ）／（Ｐ22＋Ｐ32−Ｐ1 Ｐ8 ）
Ｃ＝（Ｐ6 −Ｐ2 Ａ−Ｐ3 Ｂ）／Ｐ8 
Ｄ＝（Ｐ7 −Ｐ3 Ａ＋Ｐ2 Ｂ）／Ｐ8                     ………（４）
【００５４】
このパラメータＰ1 からＰ8 を求め、上式（４）に代入することによりパラメータＡ、Ｂ、Ｃ、Ｄを算出する。
【００５５】
最後に図１２のステップ１３０６画像合成処理について説明する。上記のようにしてすでにパラメータＡ、Ｂ、Ｃ、Ｄは求められているので、次式
ｘ′＝Ａｘ＋Ｂｙ＋Ｃ
ｙ′＝−Ｂｘ＋Ａｙ＋Ｄ                                ………（５）
に代入すればよい。
【００５６】
図１６にこれを図示したものを示す。画像が左、右画像の場合、左画像の２倍の大きさを合成画像２１０３として確保する。ここに、まず左画像をそのまコピーしてくる。次に、合成画像の残り領域（ｘ，ｙ）について、上式から対応する（ｘ′，ｙ′）を求める。そして右画像の（ｘ′，ｙ′）の画素を（ｘ，ｙ）にコピーする。これを合成画像の残りの領域全てに対して行う。
【００５７】
図１７に同様の内容をフローチャートに示す。ステップ２２０１で、第１の画像（図１６での左画像）の２倍の領域を合成画像領域として確保する。ステップ２２０２で、第１の画像をこの合成画像領域に単純にコピーする。ステップ２２０３で、合成画像の残りの領域（ｘ，ｙ）について、上式から対応する（ｘ′，ｙ′）を求める。ステップ２２０４で、（ｘ′，ｙ′）は第２の画像（図１６での右画像）内にあるかどうかをチェックし、あればステップ２２０５で（ｘ′，ｙ′）の画素を（ｘ，ｙ）にコピーする。以上をステップ２２０６で合成画像の残りの領域全てに対して繰り返し、処理は終了する。
以上により最終的なパノラマ合成画像を作成することができる。
【００５８】
【発明の効果】
以上詳述したように、本発明によれば、第１、第２の確認画像に基づいて元の２つの画像の相対位置を求めて各画像を合成する処理を確実に完全自動で行うことができる。
【００６０】
また、第１、第２の確認画像を画面表示することにより、使用者は確認画像を見ながら、各画像間のオーバーラップ量を確認しながら画像位置を適切に定めることができ、これにより、複数の画像が実はつながっていなかった等の失敗をすることなくパノラマ画像合成に必要な複数の画像を撮影できる。
【００６１】
さらに、パノラマ画像合成に適したオーバーラップ位置になったときに音や表示で使用者に知らせるようにすることにより簡単に適正な位置での画像撮影が可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態による電子カメラのブロック図である。
【図２】電子カメラの撮影時のフローチャートである。
【図３】本発明の実施の実施の形態による画像合成システムの構成図である。
【図４】本発明の実施の形態による画像合成のシステムのブロック図である。
【図５】本発明のユーザインターフェースを示す構成図である。
【図６】本システムの全体の制御の流れを示すフローチャートである。
【図７】カメラの動きに合わせて画像の相対位置を追跡する処理のフローチャートである。
【図８】カメラの動きに合わせて画像の相対位置を追跡する処理を説明する構成図である。
【図９】相対位置を算出する処理のフローチャートである。
【図１０】確認画像の表示と適正位置かをチェックする処理のフローチャートである。
【図１１】適正位置を説明する構成図である。
【図１２】パノラマ画像作成処理の全体の手順を示すフローチャートである。
【図１３】相対位置の座標変換を示すフローチャートである。
【図１４】対応点抽出処理のフローチャートである。
【図１５】対応点抽出処理でのテンプレート画像とマッチング範囲を示す構成図である。
【図１６】合成処理を示した構成図である。
【図１７】合成処理のフローチャートである。
【符号の説明】
２０６  撮像素子
２１０  ＤＳＰ
２１２  バッファメモリ
２１４  メモリ装置
２２０  システム制御回路
２３２  外部Ｉ／Ｆ
３０１  コンピュータシステム本体
３０２  ディスプレー
３０３  マウス
３０５  キーボード
３０６  汎用インターフェース
３０７  電子カメラ
５０４  アプリケーションソフトウェア
５０５  オペレーティングシステム
２３０１  第１画像
２３０２  第１の確認画像
２３０３  第２の確認画像
２３０４  撮影ボタン
２３０５  合成ボタン
２５０４  参照パターン
【図１】
0003832895.tif 000004
【図２】
0003832895.tif 000005
【図３】
0003832895.tif 000006
【図４】
0003832895.tif 000007
【図５】
0003832895.tif 000008
【図６】
0003832895.tif 000009
【図７】
0003832895.tif 000010
【図８】
0003832895.tif 000011
【図９】
0003832895.tif 000012
【図１０】
0003832895.tif 000013
【図１１】
0003832895.tif 000014
【図１２】
0003832895.tif 000015
【図１３】
0003832895.tif 000016
【図１４】
0003832895.tif 000017
【図１５】
0003832895.tif 000018
【図１６】
0003832895.tif 000019
【図１７】
0003832895.tif 000020