(57)【特許請求の範囲】
【請求項１】
複数の画像を表示可能な第１の表示領域と、複数の画像を表示可能で前記第１の表示領域とは異なる第２の表示領域とを同一画面上に表示する表示手段と、
ユーザの指示によって前記第１の表示領域に表示されている画像から選択した複数枚の画像を前記第２の表示領域へと移動させる移動手段と、
前記第１の表示領域から前記第２の表示領域へと移動された複数の画像のオーバーラップ部分を検出する検出手段と、
前記検出手段によって検出されたオーバーラップ部分における対応点を抽出する対応点抽出手段と、
前記対応点抽出手段によって抽出された対応点に基づいて前記複数枚の画像をつなぎ合わせて１枚の画像を作成する合成処理手段と、
を備え、
前記検出手段は、前記移動手段によって移動させた複数枚の画像の枚数が所定の枚数未満である場合には、自動で画像のオーバーラップ部分を検出することを特徴とする画像合成装置。
【請求項２】
複数の画像を表示可能な第１の表示領域と、複数の画像を表示可能で前記第１の表示領域とは異なる第２の表示領域とを同一画面上に表示する表示手段と、
ユーザの指示によって前記第１の表示領域に表示されている画像から選択した複数枚の画像を前記第２の表示領域へと移動させる移動手段と、
前記第１の表示領域から前記第２の表示領域へと移動された複数の画像のオーバーラップ部分を検出する検出手段と、
前記検出手段によって検出されたオーバーラップ部分における対応点を抽出する対応点抽出手段と、
前記対応点抽出手段によって抽出された対応点に基づいて前記複数枚の画像をつなぎ合わせて１枚の画像を作成する合成処理手段と、
を備え、
前記移動手段は、所定の枚数以上の画像が入力されたとき、これらの画像を前記第２の表示領域上で移動させて各画像の相対位置を指定し、
前記検出手段は、前記指定された相対位置に基づいて前記オーバーラップ部分を検出することを特徴とする画像合成装置。
【請求項３】
前記検出手段は、前記移動手段によって前記第２の表示領域上で画像を重ね合わせて指定した各画像の位置情報から各画像のオーバーラップ部分を検出することを特徴とする請求項２記載の画像合成装置。
【請求項４】
前記複数枚の画像には、各画像が１セットの合成画像を示す識別情報が含まれており、前記検出手段及び前記合成処理手段は前記識別情報に基づいて処理を行うことを特徴とする請求項２記載の画像合成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像の一部がオーバーラップしている複数の画像をコンピュータ上で合成を行うパノラマ合成システム等に用いて好適な画像合成装置に関する。
【０００２】
【従来の技術】
画像の一部の辺がオーバーラップしている複数の画像をコンピュータ上で合成する処理を一般的にパノラマ合成と呼ぶ。これはワイドな被写体を撮影して一枚の画像にしたい、という要求からの処理といえる。また、電子カメラにおいては、銀塩カメラやスキャナと比較した短所として、解像度の低さ（画素数の少なさ）が指摘されている。この電子カメラで撮影された画像にとってのパノラマ画像合成は、ワイドな画像を撮るということだけでなく、高解像度な画像を撮る手段としても重要である。具体的には、一枚の紙の原稿や雑誌等を複数に分けて撮影し、スキャナ並みの高解像度データを取得したり、また風景を複数に分割してワイドで高解像度に撮影したりする場合に威力を発揮する。
【０００３】
パノラマ合成において、最も重要でかつ難しいのは、複数の画像のオーバーラップ位置を見つける処理である。これは言い換えると、２つの画像の中から同じ点（以降、対応点と呼ぶ）を探しだす処理である（以降、対応点抽出処理と呼ぶ）。対応点抽出処理の難しさ（エラーレート）は各々の画像によって異なる。オーバーラップしている領域内に、他の箇所にはないユニークな特徴形状が多数あるときは、対応点を間違えないで探すことができる。しかしオーバーラップ内の他の箇所にも、似たようなパターンが存在する場合は（例えば原稿中の文字等）、対応点を間違える場合が発生する。
【０００４】
そこで従来は、ユーザに対応する点を明示的に指定してもらい、その位置をもとに微調整をして合成を行うというのが一般的である。図２１に従来例を示す。まずユーザが合成したい複数の画像を指定すると、図２１のようなウインドウが開く。２枚の画像での対応するポイントをユーザが指定し、マーク２１ａ、２１ｂ、２２ａ、２２ｂをつける。処理としては、各々のマークの中心からごく近傍のパターンを調べて、両者が最も合致する位置関係を求め対応点とする。そしてこの対応点に基づいて合成のためのパラメータを求め，合成処理を行う。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記従来例においては、以下のような問題点がある。まず、ユーザが合成したい画像のセットを指示しなければならない。コンピュータ上で管理している画像の全枚数がそれほど多くないときは問題にはならないが、数千枚以上もの多くの画像を管理している場合は、見落とし等が発生する。また、ユーザが対応点のポイントをほぼ正確に指定しなければならず、これも作業の回数が増えるにつれてユーザの負担となる。
【０００６】
本発明は上記のような実情に鑑みて成されたもので、もっと簡単にパノラマ画像合成を行うことのできる画像合成装置を得ることを目的としている。
【０００７】
【課題を解決するための手段】
請求項１の発明による画像合成装置においては、複数の画像を表示可能な第１の表示領域と、複数の画像を表示可能で前記第１の表示領域とは異なる第２の表示領域とを同一画面上に表示する表示手段と、ユーザの指示によって前記第１の表示領域に表示されている画像から選択した複数枚の画像を前記第２の表示領域へと移動させる移動手段と、前記第１の表示領域から前記第２の表示領域へと移動された複数の画像のオーバーラップ部分を検出する検出手段と、前記検出手段によって検出されたオーバーラップ部分における対応点を抽出する対応点抽出手段と、前記対応点抽出手段によって抽出された対応点に基づいて前記複数枚の画像をつなぎ合わせて１枚の画像を作成する合成処理手段と、を備え、前記検出手段は、前記移動手段によって移動させた複数枚の画像の枚数が所定の枚数未満である場合には、自動で画像のオーバーラップ部分を検出することを特徴とする。
【０００８】
また、請求項２の発明による画像合成装置においては、複数の画像を表示可能な第１の表示領域と、複数の画像を表示可能で前記第１の表示領域とは異なる第２の表示領域とを同一画面上に表示する表示手段と、ユーザの指示によって前記第１の表示領域に表示されている画像から選択した複数枚の画像を前記第２の表示領域へと移動させる移動手段と、前記第１の表示領域から前記第２の表示領域へと移動された複数の画像のオーバーラップ部分を検出する検出手段と、前記検出手段によって検出されたオーバーラップ部分における対応点を抽出する対応点抽出手段と、前記対応点抽出手段によって抽出された対応点に基づいて前記複数枚の画像をつなぎ合わせて１枚の画像を作成する合成処理手段と、を備え、前記移動手段は、所定の枚数以上の画像が入力されたとき、これらの画像を前記第２の表示領域上で移動させて各画像の相対位置を指定し、前記検出手段は、前記指定された相対位置に基づいて前記オーバーラップ部分を検出することを特徴とする。
【０００９】
【作用】
請求項１の発明による画像合成装置によれば、複数の画像を表示可能な第１の表示領域と、複数の画像を表示可能で前記第１の表示領域とは異なる第２の表示領域とを同一画面上に表示し、ユーザの指示によって前記第１の表示領域に表示されている画像から選択した複数枚の画像を前記第２の表示領域へと移動させ、前記第１の表示領域から前記第２の表示領域へと移動された複数枚の画像が所定の枚数未満である場合には、自動でオーバーラップ部分を検出し、検出されたオーバーラップ部分における対応点を抽出し、抽出された対応点に基づいて前記複数枚の画像をつなぎ合わせて１枚の画像を作成する。
【００１０】
請求項２の発明による画像合成装置によれば、複数の画像を表示可能な第１の表示領域と、複数の画像を表示可能で前記第１の表示領域とは異なる第２の表示領域とを同一画面上に表示し、ユーザの指示によって前記第１の表示領域に表示されている画像から選択した複数枚の画像を前記第２の表示領域へと移動させ、前記第１の表示領域から前記第２の表示領域へと移動された複数枚の画像が所定の枚数以上である場合には、これら複数枚の画像を第２の表示領域上で移動させて各画像の相対位置を指定し、この相対位置に基づいて、オーバーラップ部分を検出し、検出されたオーバーラップ部分における対応点を抽出し、抽出された対応点に基づいて前記複数枚の画像をつなぎ合わせて１枚の画像を作成する。
【００１１】
【発明の実施の形態】
本実施の形態は、以下の手順により簡単で便利なパノラマ画像合成を行うものである。
（１）まず、電子カメラで画像を撮影する際に、ユーザは“パノラマ画像撮影モード”にカメラをセットしてから撮影を行う。このモードにより、撮影された画像の属性情報中に、１セットのパノラマ画像を示す識別子が自動的に記録される。
（２）そして、このカメラをコンピュータに接続して、カメラ内のメモリ中にある画像＋属性情報をコンピュータのＨＤにコピーする際に、アプリケーションソフトウェアを介してこの属性情報をチェックする。属性情報中にパノラマ画像撮影モードでの識別子が存在するものから自動的に１セットの画像を抽出する。
【００１２】
次にパノラマ画像合成処理に入る。画像合成においては、画像が２枚のときのみ完全自動で行う後述するフルオート合成を行う。３枚以上のときは、画像の上下左右の相対位置だけをユーザに指定してもらう後述するオート合成を行う。またこれらのフルオート合成、オート合成のチェック段階で対応点が十分求められなかったとき、またはユーザが対応点の検出に要する時間を省いてより短い時間で合成処理を行いたいときは、ユーザがだいたいのオーバーラップ位置を指定する後述するセミオート合成を行う。
【００１３】
（３）「フルオート合成」：上記（２）でパノラマ画像の１セットを抽出して、それが２枚だったときはフルオート合成処理に入る。２枚の合成位置としては、図３（ａ）〜（ｄ）に示すように上下左右の４通りが考えられる。そこでこの４つの場合の対応点を求める処理を行い、対応点が上下左右のうち最も多く求まったところを、正しい合成位置として合成する。このとき、４つのいずれの場合も、対応点の数が所定の量以下のときは、確実性が低いといえる。このときはフルオート合成処理を打ち切り、セミオート合成処理に移行する。このモードでのユーザの操作としては、画像をカメラからコンピュータ中へコピーする操作だけで、あとは自動でやってくれることになる。特殊な用途以外は通常は２枚合成がほとんどと考えられるので、この合成処理が行われる場合が最も多い。
【００１４】
（４）「オート合成」：上記（２）でパノラマ画像の１セットを抽出して、それが３枚以上だったときこのオート合成処理に入る。このオート合成では１セットの画像をウインドウに表示する。図４は４枚の画像を表示する場合を示す。ユーザはこれらの画像をｄｒａｇして配置を色々考え、上下、左右の位置関係のみを指示する。これに基づいて対応点抽出処理を行う。この結果、所定のレベル以上一致している対応点の数が所定の量以上のときは、正しい合成位置として合成する。そうでなければ確実性が低いので、オート合成処理を打ち切り、セミオート合成処理に移行する。
【００１５】
（５）「セミオート合成」：上記（３）（４）で対応点抽出の確実性が低かったとき、または対応点抽出に要する時間を節約してより早い合成結果を得たい場合は、このセミオート処理を行う。ユーザはこれらの画像をｄｒａｇして、図５に示すようにオーバーラップのだいたいの位置を指定する。この位置情報に基づいてオート処理でのときよりずっと狭い範囲で対応点抽出処理を行う。この結果最も一致する位置を求め、合成処理を行う。
【００１６】
上記（４）（５）の場合、ユーザは対応点抽出のための操作を行うが、どちらも画像をｄｒａｇするだけの操作であり、これは最も単純でかつ共通の操作であるので、ユーザの負担は小さい。また、（５）のセミオート合成のとき、画像をｄｒａｇしてだいたいの位置に合わせるだけなので、従来例のポイントを明示的に指定する操作よりもずっと簡単で楽である。
【００１７】
図２は本発明が実施されうるプラットフォームであるパーソナルコンピュータシステムの構成例を示している。図２において、３０１はコンピュータシステム本体、３０２はデータを表示するディスプレイ、３０３は代表的なポインティングデバイスであるマウス、３０４はマウスボタン、３０５はキーボードである。３０７はコンピュータに接続可能な電子カメラであり、これは３０６で示す双方向パラレルインターフェースやＳＣＳＩインターフェース等の、高速で画像転送可能な汎用インターフェースによって接続されている。
【００１８】
図１はソフトウェアとハードウェアとを含むパノラマ画像合成システムの構成を示す図である。図１において、５０９はハードウェアであり、ＣＰＵ５１８を有している。５０５はハードウェア５０９の上で動作するオペレーディングシステム（ＯＳ）であり、５０４はＯＳ５０５の上で動作するアプリケーションソフトウェアである。なお、ハードウェア５０９とＯＳ５０５を構成するブロックのうち、構成要素として当然含まれるが本発明の実施の形態を説明する上で直接必要としないブロックに関しては図示していない。そのような図示していないブロックの例としてハードウェアとしてはメモリ、ＯＳとしてはメモリ管理システム等がある。
【００１９】
図１において５１５はファイルやデータを物理的に格納するハードディスク、５０８はＯＳ５０５を構成するファイルシステムであり、アプリケーションソフトウェア５０４がハードウェア５０９を意識せずにファイルの入出力が行えるようにする機能がある。５１４はファイルシステム５０８がハードディスク５１５の読み書きを行うためのディスクＩＯインターフェースである。５０７はＯＳ５０５を構成する描画管理システムであり、アプリケーションソフトウェア５０４がハードウェア５０９を意識せずに描画が行えるようにする機能がある。
【００２０】
５１３は描画管理システム５０７がディスプレー３０２に描画を行うためのビデオインターフェースである。５０６はＯＳ５０５を構成する入力デバイス管理システムであり、アプリケーションソフトウェア５０４がハードウェア５０９を意識せずユーザの入力を受け取ることができるようにする機能がある。５１０は入力デバイス管理システム５０６がキーボード３０５の入力を受け取るためのキーボードインターフェース、５１２は入力デバイス管理システム５０６がマウス３０３からの入力を受け取ることができるようにするためのマウスインターフェースである。
【００２１】
さらに、電子カメラ３０７は、双方向インターフェースもしくはＳＣＳＩインターフェース等５１６に接続され、入力デバイス管理システム５０６を通して、画像データ等のやりとりを行うことができる。５０１は画像データ管理システムであり、５０２は画像データを属性情報もしくはユーザの入力によるキーワード等で管理するためのデータ管理部である。５０３は管理されている画像データを、その属性情報もしくはユーザの入力によるキーワード等で検索し表示するデータ表示部である。５１７はパノラマ画像合成システムであり、画像データ管理システム５０１からパノラマ撮影モードで撮影した画像を受け取り、パノラマ画像合成処理を行う。そして合成した結果の画像を画像データ管理システム５０１へ登録する。
【００２２】
図６はカメラ内の内蔵メモリに格納される画像データおよび属性情報のデータ構造を示す。まずメモリ内には画像管理テーブル８１が置かれ、対応する画像データ８２と属性情報８３とが参照される。画像データ８２は、カメラ独自のフォーマットデータ（ネィティブデータ）か、ＪＰＥＧ等の汎用フォーマットデータのいずれかで格納されている。ネィティブデータは、例えば、ＣＣＤから出力を単にＡ／Ｄして得られたデータ等である。一般的にネィティブデータは記録に要する時間が短いが、データサイズが大きく、ＪＰＥＧデータは、記録に要する時間はかかるが、データサイズを小さくできるという点が異なる。ユーザは撮影状況に応じてこれらのどちらかを選択して格納することになる。
【００２３】
属性情報８３の中には、ファイル名８４、フィルタタイプ８５、撮影日時８６、撮影モード８７が記録されている。ファイル名８４は、カメラが自動的に付けるユニークなファイル名である。フィルタタイプ８５は、ネィティブデータフォーマットなのかＪＰＥＧフォーマットなのか、あるいはカメラがサポートする他の汎用フォーマットなのかを示す。撮影日時８６は、カメラは内部にカレンダーとタイマとを持っており、カメラのシャッターボタンを押された時点の日時と時間が記録される。撮影モード８７は、カメラの有する数種類の撮影モードのうち撮影時に選択されているモードを示す。これが“パノラマ撮影モード”の場合は、さらに識別子８８が付加される。この識別子はパノラマ撮影モードにセットしたときにセットされるユニークな番号であるモードＩＤ８９とそのモードでの何枚目かを示すデータ９０とが格納される。従ってパノラマ撮影モードにおいて同じモードＩＤ８９を持つ複数の画像が１セットであるということになる。この図６の例では、風景を左右２枚の画像として撮影しているので、８９ａと８９ｂとは同じモードＩＤである。
以上のようにしてカメラ内に画像データ８２および属性情報８３が格納される。
【００２４】
図７はカメラ内のデータをパーソナルコンピュータへコピーするときの画面を示す。図１のカメラ３０７を汎用インターフェース３０６を介してコンピュータに接続し、画像データ管理システム５０２を起動する。画像データ管理システム５０２は、カメラ内のデータを図７のカメラカタログ９１と名前の付けられたウインドウに表示する。ここで９４は画像データの縮小画像（サムネール画像）、９５は属性情報中のファイル名、フィルタタイプ等である。属性情報のうちどこまで表示するかはユーザ指定で変更できる。９２はパーソナルコンピュータのハードディスク中に存在するユーザの画像データベースの一部を表示しているユーザカタログである。
【００２５】
ユーザはカメラカタログ９１中から画像を選択して（９３は選択されたことを表示する枠）ユーザカタログ９２にＤｒａｇ＆Ｄｒｏｐの操作を行うとコピーが行われる。このとき、コピーなのか（カメラ内にデータは残る）、移動なのか（カメラ内のデータは消去される）はユーザの指定でどちらにでも切り替えられる。このコピー操作の最中に、
・ネィティブデータを所定の汎用フォーマットに変換する。
・パノラマ撮影モードで撮影された画像があれば、それらの合成を行う。
【００２６】
以上の操作を自動的にその必要性を検知して実行する。図８にその際のユーザカタログ９１上でのデータ構造を示し、図９にフローチャートを示す。
まず図８の説明をする。まず画像データ管理システム５０８では、内部に格納している画像データについて固有のＩＤ番号を付けて管理している。それがデータ管理テーブル１１０８である。これは、データＩＤ１１０９と、それにリンクされている画像データ、属性情報との対応がとられる。このデータＩＤが管理の基本となる。画像データ管理システム５０２では、ユーザが任意の個数だけユーザカタログ９２を持つことができる。この一個のカタログごとに、カタログテーブル１１００を持つ。またカタログ内の画像データをユーザが複数の画像をひとつのグループとしてカテゴリー分けをする機能を有する。これによりひとつのカタログ内を階層化してデータを管理できる。
【００２７】
カタログテーブル１１００内には、このカタログに属する画像のデータＩＤ１１０１と、属するグループのグループＩＤ１１０２が保持される。そしてグループＩＤ１１０２はグループテーブル１１０３とリンクする。グループ属性テーブル１１０４は基本的にカタログテーブルと同じであり、このグループに属する画像のデータＩＤ、またはこのグループに属するグループＩＤを持つ。違いは頭にグループ属性データ１１０４を持つところが異なる。これにはグループ名１１０６、作成日時１１０７、グループタイプ１１１０が格納される。グループ名１１０６はユーザが付けた任意の名前がつく。パノラマ画像のセットとしてグループが作られたときは、このグループ名はデフォルトで“パノラマ画像”と付けられる。
【００２８】
作成日時は、このグループが作成されたときの日時が格納されている。グループタイプ１１１０は、ユーザが作成した場合は“ユーザ作成”、パノラマ画像のセットとしてグループが作られたときは、“パノラマ画像”と入っている。パノラマ画像のときは、さらに識別子とリンクしモードＩＤ８９ａが納められる。そして実際の画像データ、属性情報は図６の場合と同じ構造で格納され、これらはデータ管理テーブル１１０８から参照される。
【００２９】
次に図９の説明を行う。ステップ１０００で全てのコピーする画像データの処理が終了しない間において、ステップ１００１で、コピー操作の中でまず一個の画像データとそれに付随した属性情報とを取得する。ステップ１００２で、属性情報内のフィルタタイプ８５から、この画像データがネィティブデータかどうかを判断する。そうであればステップ１００３でデフォルトとして決まっている汎用フォーマット（ＪＰＥＧやＴＩＦＦ等）にネィティブデータを変換する。変換が終わったらフィルタタイプ８５も更新する。次にステップ１００４で、撮影モード８７を調べてパノラマ撮影モードで撮影された画であるかをチェックする。パノラマ画像でない場合は、ステップ１００８で通常の画像データとして登録する。具体的には図８でのデータ管理テーブル１１０８に固有のデータＩＤを付けて登録し、そのデータＩＤをカタログテーブル１１００に登録する。
【００３０】
パノラマ画像であるときは、このパノラマ画像用のグループがすでに作成済みかどうかをチェックする。これは図８のカタログテーブル１１００をたどっていって、グループＩＤのモードＩＤ８９ａが、画像のモードＩＤ８９ａと同じかどうかを見ることによって行われる。対応するグループがないときはグループを作成する。これはカタログテーブル１１００に新たにグループＩＤ１１０２を登録し、グループ名１１０６、作成日時１１０７、グループタイプ１１１０を作成する。グループタイプ１１１０には“パノラマ撮影”と記録され、画像の属性情報中のモードＩＤ８９ａが納められる。そしてステップ１００７で、このパノラマ画像データに固有のデータＩＤを付けて管理テーブル１１０８に登録し、そのデータＩＤ１１０５を登録する。
【００３１】
以上の一連の処理をコピーする画像全てに対して行う。全ての画像に対して処理が終わったならば、ステップ１００９に移る。ステップ１００９では、今までコピーしたものの中でパノラマ画像のグループが作られたかをチェックし、そうであればグループ内の画像を用いてステップ１０１０で後述するパノラマ画像合成処理を行う。そうでなければ処理を終了する。
【００３２】
図１０に上記ステップ１０１０のパノラマ画像合成処理のフローチャートを示す。まずステップ１２００でグループ内の画像が２枚か２枚より多いかをチェックする。２枚のときはステップ１２０２で後述するフルオート処理に入る。２枚より多いときはステップ１２０１で後述するオート合成処理に入る。このステップ１２０１、１２０２の処理は、ステップ１２０３、１２０４でその結果が成功か失敗かをチェックする。この成功か失敗かの判断は、画像同士の対応点が所定数以上見つけられたかどうかで判断する。従って、合成処理全体の中では対応点抽出処理の早い段階で判断を下すので、結果が失敗でもユーザがその結果を得るまで待つ時間は短くて済む。そして成功であれば処理は終了で、失敗であれば、ステップ１２０５で後述するセミオート処理を行う。
【００３３】
図１１にオート合成処理のユーザインターフェースを示す。まず画面上に上記ステップ１００９におけるパノラマ画像のグループに属する画像全てがウインドウに入る大きさにリサイズされて表示される。これをユーザが見て正しい順番にＤｒａｇして並べ替える。この図１１の例では、３枚の画像が表示され、同図（ａ）の下に位置している画像が本当は一番右になるので、右側にＤｒａｇすると、その位置から横に３つ並ぶ同図（ｂ）のようなパノラマであることを検知する。そしてウインドウに入りきるように再度リサイズされて表示される。
【００３４】
図１２にオート合成処理のフローチャートを示す。まずステップ１３０１で、ユーザが並べ替えた位置関係の情報を取得する。ステップ１３０２で一致する対応点を見つけるのにサーチする範囲を設定する。これを図１３で説明する。パノラマ画像として撮影するときのルールとして、最小１０％、最大５０％オーバーラップさせることと、それに直交する上下方向のずれをそれぞれ５％以下と決めると、必ずオーバーラップする範囲は図１３（ａ）の１５０４で示す範囲となる。またオーバーラップしている可能性のある範囲は図５（ｂ）の１５０５で示す範囲となる。上記範囲１５０４の中にあるポイント１５０３は上記のルールに従うと、サーチ範囲中の１５０５の中に対応する点があることになる。後述する対応点抽出処理では、このサーチ範囲１５０５に対してマッチングするかどうかを見ていくことになる。
【００３５】
再び図１２のフローチャートに戻ると、ステップ１３０２では、以上のサーチ範囲１５０５設定に用いるパラメータをセットする。ステップ１３０３では、対応点を抽出する処理を行う。この詳細については後述する。ステップ１３０４では、求まった対応点の数が所定値以上かどうかを判断し、所定値以下のときは十分対応点を自動で見つけることができなかったので、セミオート処理へ進む。所定値より多かったときは、ステップ１３０５の合成パラメータ処理へ進む。ここでは合成の際に用いる移動、拡大（縮小）、回転のパラメータを先の対応点の座標から求める。その詳細は後述する。ステップ１３０６ではこれらパラメータをもとに画像を合成する。その詳細も後述する。
【００３６】
図１４にフルオート処理のフローチャートを示す。まず、ステップ１６０１で対応点抽出のためのサーチ範囲であるマッチング範囲設定を行うが、これは上記ステップ１３０２と処理は同一である。次に４回対応点抽出処理を行う。フルオートの場合、枚数は２枚に限定しているので、考えられる位置関係は画像１と画像２が上下、下上、左右、右左の４通りである。そこでこの４つの場合について対応点抽出処理をして、それぞれ対応点として抽出できた数、対応点としての一致レベルの平均を保持する。これらの処理が、ステップ１６０２から１６０９までの処理である。そしてステップ１６１０で上記４つの場合について対応点が所定数以上の対応点を抽出できたものがあるかをチェックする。もし一つもなければセミオート処理へ進む。
【００３７】
抽出された対応点の数が所定数以上であれば、ステップ１６１１でその中で対応点としての一致レベルの平均が最も高いものを真の位置関係であるとする。通常の画像では、対応点が所定値以上の場合は４つのうちの一つだけになるはずだが、例えば原稿等を分割して撮った場合似たような字が並んでいて、正しくない位置関係のときでも所定値以上を対応点として抽出してしまう場合があり得る。そこでこのステップ１６１１では最もフィットしているもの（平均一致レベルが最も高いもの）を選択するようにする。ステップ１６１２の合成パラメータ処理、ステップ１６１３の画像合成処理は上記ステップ１３０５、１３０６と同一処理である。
【００３８】
図１５にセミーオート処理でのユーザインターフェースを示す。まず画面上に前記ステップ１００９でのパノラマ画像のグループに属する画像全てがウインドウに入る大きさにリサイズされて表示される。これをユーザが見てだいたいのオーバーラップ位置を合わせて重ね合わせる。重ね合うところは、画素単位でビットごとにＡＮＤ演算をして表示する。従って重なった部分は両方の画像が透けて見える。そしてウィンドウに入りきるように再度リサイズされて表示される。
【００３９】
以上の操作は、基本的にオート処理で操作と同一であり、ユーザの負担は少ない。違いはマウス等のポインティングデバイスで画像をＤｒａｇして離した位置を、位置関係の情報だけを使って並べ替えて表示する（オート処理）ことと位置の情報をそのまま使ってオーパーラップして表示する（セミオート処理）ことだけである。またＤｒａｇ中にも先のＡＮＤ演算で透けて見えるため、だいたいの位置を容易に合わすことができる。
【００４０】
図１６にセミオート処理でのフローチャートを示す。ここでの処理はオート処理のときとほとんど同一である。ステップ１７０１で、画像のユーザが合わせたオーバーラップ位置情報を取得する。ステップ１７０２でマッチング範囲を設定するが、ここでの範囲は、所定の範囲（想定されるユーザの合わせた位置の誤差範囲＋マージン）となる。従って、オート処理の時の範囲よりはずっと狭い範囲となり、計算時間の短縮と精度の向上が図られる。ステップ１７０３、１７０４、１７０５の対応点抽出処理、合成パラメータ設定処理、画像合成処理は、いずれもオート処理のときと同一である。
【００４１】
図１７に対応点抽出処理フローチャート、図１８にそれを図示したものを示す。図１８は、左と右の画像２枚の例を示す。画像の枚数が２枚より大きいときは、２枚の合成を何回か繰り返せばよいので処理としては基本的に同じである。まず、撮影時のルールにのっとり、テンプレートを設定する範囲２００５は、縦９０％横１０％の範囲に設定する。また、サーチする範囲は、対応する点が存在する可能性の範囲ということで、縦１００％、横５０％の範囲２００６に設定される。画像中の範囲２００５からエッジが所定値以上強い点を探し、そこを中心として縦、横ｎ画素の矩形をテンプレート画像として切り出す。このテンプレート画像２００３をサーチ範囲２００６範囲上に置いて画素単位でその差分をとる。この合計が最小となるところをサーチ範囲２００６上を１画素ずらして求める。サーチ範囲２００６上を全てサーチした結果の最小値が、所定値以下であれば、そのそのポイント同士（ｘ，ｙ）と（ｘ′，ｙ′）を対応点のペアとして保持する。
【００４２】
以上が処理の概要となるが、これを図１７のフローチャートに沿ってもう一度説明する。まずステップ１９０１でエッジ抽出画像を作成する。そしてステップ１９０２で、このエッジ抽出画像の中のテンプレートを設定する範囲２００５からエッジが所定値以上強いポイントを探す。そしてそのポイントがあれば、ステップ１９０３でそのポイントから縦横±ｎ画素ずつの矩形で画像を切り出しテンプレート画像とする。そのポイントの位置からステップ１９０４で右画像中のサーチ範囲を設定する。そしてステップ１９０５でサーチ範囲中の画像とテンプレート画像とを重ね合わせ、画素単位で画素値の差の絶対値をとりその合計を求める。その差分の合計値が、それまでの最小値かどうかをステップ１９０６でチェックし、そうであれば、ステップ１９０７で、そのサーチ範囲中のポイントの座標とその最小値とを保持する。
【００４３】
以上をサーチ範囲全てにおいて繰り返し、最も一致する（最小の差分を持つ）点を見けだす。ステップ１９０８でサーチ範囲全てにおいて行ったかチェックし、ステップ１９０９で、その結果求められた最小値が十分小さな値であるか（確かな対応点か）を、所定値Ｌと比較して判断する。所定値Ｌより小さかった場合は、ステップ１９１０で、対応点のリストにテンプレート画像を切り出したポイントの座標（ｘ，ｙ）と、最小値が求められたポイントの座標（ｘ′，ｙ′）と、その最小値の値とを登録する。以上をステップ１９１１でテンプレート設定範囲のエッジが所定値以上強いポイント全部に対して行い、終了したら対応点のリスト中の全ての最小値からその平均値を求め、これをステップ１９１２で一致レベル値として保持する。以上で対応点抽出処理を終了する。
【００４４】
次に、合成パラメータ設定処理について説明する。画像を２枚としたときに（２枚以上の合成の場合も２枚の合成の繰り返しなので、まずは２枚で考えてよい）、そのずれは、ｘ、ｙ方向の並進、回転、および拡大率の差で表すことができる。よって対応する点（ｘ，ｙ）、（ｘ′，ｙ′）は以下のように表せる。
【００４５】
【数１】
0003832894.tif 000002
【００４６】
ここで、θは回転角、Δｘおよびｙは並進、ｍは倍率を示す。従ってパラメータＡ、Ｂ、Ｃ、Ｄを求めることによりこの座標変換を表すことができる。先の対応点抽出処理では、対応点（ｘ，ｙ）、（ｘ′，ｙ′）の複数の組を取得した。これを最小自乗法を用いてパラメータＡ、Ｂ、Ｃ、Ｄを求める。
【００４７】
【数２】
0003832894.tif 000003
【００４８】
の条件で、
【００４９】
【数３】
0003832894.tif 000004
【００５０】
を満たすパラメータＡ、Ｂ、Ｃ、Ｄを求める。
ここで、
【００５１】
【数４】
0003832894.tif 000005
【００５２】
とすると、パラメータＡ、Ｂ、Ｃ、Ｄは次のように表すことができる。
【００５３】
【数５】
0003832894.tif 000006
【００５４】
このパラメータｐ1 からｐ8 を求め、上式に代入することにより、パラメータＡ、Ｂ、Ｃ、Ｄを算出する。
【００５５】
最後に、画像合成処理について説明する。すでに、パラメータＡ、Ｂ、Ｃ、Ｄは求められているので、次の式
ｘ′＝Ａｘ＋Ｂｙ＋Ｃ
ｙ′＝−Ｂｘ＋Ａｙ＋Ｄ
に代入すればよい。
【００５６】
図１９にこれを図示したものを示す。画像が左、右画像の場合、左画像の２倍の大きさを合成画像２１０３として確保する。ここに、まず左画像をそのままコピーしてくる。次に合成画像の残りの領域（ｘ，ｙ）について、上式から対応する（ｘ′，ｙ′）を求める。そして右画像の（ｘ′，ｙ′）の画素を（ｘ，ｙ）にコピーする。これを合成画像の残りの領域全てに対して行う。
【００５７】
図２０に同様の内容をフローチャートに示す。ステップＳ２２０１で、第１の画像（２０での左画像）の２倍の領域を合成画像領域として確保する。ステップＳ２２０２で、第１の画像をこの合成画像領域に単純にコピーする。ステップＳ２２０３で、合成画像の残りの領域（ｘ，ｙ）について、上式から対応する（ｘ′，ｙ′）を求める。ステップ２２０４で、（ｘ′，ｙ′）は第２の画像（図１９での右画像）内にあるかどうかをチェックし、あればステップＳ２２０５で（ｘ′，ｙ′）の画素を（ｘ，ｙ）にコピーする。以上を合成画像の残りの領域全てに対して繰り返し、処理は終了する。
以上によって、最終的なパノラマ合成画像を作成することができる。
【００５８】
本実施の形態によれば、まず、自動的にパノラマ画像として合成する画像のセットを抽出してくれる。これによりユーザが合成したい画像のセットを指示する必要がない。また、合成する画像のセットが２枚のときはフルオートで、２枚より多いときもユーザは位置関係を指示するだけ（オート）で合成処理を行うことができ、ユーザの負担は非常に軽いものとなっている。さらにフルオート、オートのときに十分な対応点を検出できなかったときには、セミオート処理に切り替え、この場合もユーザは画像をドラッグして重ね合わせた簡単な位置を指定するだけである。このセミオート処理に切り替わる場合は少ないし、またそうなっても非常に簡単な操作で行えるので、これもユーザの負担は軽いと言える。
【００５９】
【発明の効果】
以上のように本発明による画像形成装置によれば、ユーザは、第１の表示領域に表示されている画像をＤｒａｇ＆Ｄｒｏｐ等により第２の表示領域に移動させて合成したい複数の画像を表示することによって、合成する画像を確認しながら容易な操作で合成画像を得ることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態を示すブロック図である。
【図２】機器の構成例を示す構成図である。
【図３】フルオート処理のときに想定される２枚の画像の組み合わせを示す構成図である。
【図４】オート処理における相対的位置を指示するユーザインターフェースを示す構成図である。
【図５】セミオート処理におけるだいだいのオーバーラップ位置を指示するユーザインターフェースを示す構成図である。
【図６】カラメ内に記録された画像データの構成図である。
【図７】カメラ内の画像データをコンピュータ内へコピーする操作を示す構成図である。
【図８】コンピュータ内で管理するデータの構成図である。
【図９】カメラ内の画像データをコンピュータ内へコピーする際に行う処理のフローチャートである。
【図１０】パノラマ合成のフルオート、オート、セミオートの流れを示すフローチャートである。
【図１１】オート処理のユーザインターフェースを示す構成図である。
【図１２】オート処理のフローチャートである。
【図１３】合成時のマッチングが範囲を示す構成図である。
【図１４】フルオート処理のフローチャートである。
【図１５】セミオート処理のユーザインターフェースを示す構成図である。
【図１６】セミオート処理のフローチャートである。
【図１７】対応点抽出処理のフローチャートである。
【図１８】対応点抽出装置でのテンプレート画像とマッチング範囲を示す構成図である。
【図１９】合成処理を示す構成図である。
【図２０】合成処理のフローチャートである。
【図２１】従来の対応点指示を示す構成図である。
【符号の説明】
３０１  コンピュータシステム本体
３０２  ディスプレイ
３０３  マウス
３０５  キーボード
３０７  電子カメラ
５０４  アプリケーションソフトウェア
５０５  オペレーティングシステム
５１８  ＣＵＰ
【図１】
0003832894.tif 000007
【図２】
0003832894.tif 000008
【図３】
0003832894.tif 000009
【図４】
0003832894.tif 000010
【図５】
0003832894.tif 000011
【図６】
0003832894.tif 000012
【図７】
0003832894.tif 000013
【図８】
0003832894.tif 000014
【図９】
0003832894.tif 000015
【図１０】
0003832894.tif 000016
【図１１】
0003832894.tif 000017
【図１２】
0003832894.tif 000018
【図１３】
0003832894.tif 000019
【図１４】
0003832894.tif 000020
【図１５】
0003832894.tif 000021
【図１６】
0003832894.tif 000022
【図１７】
0003832894.tif 000023
【図１８】
0003832894.tif 000024
【図１９】
0003832894.tif 000025
【図２０】
0003832894.tif 000026
【図２１】
0003832894.tif 000027