JP3832894B2 - 画像合成装置 - Google Patents
画像合成装置 Download PDFInfo
- Publication number
- JP3832894B2 JP3832894B2 JP13363996A JP13363996A JP3832894B2 JP 3832894 B2 JP3832894 B2 JP 3832894B2 JP 13363996 A JP13363996 A JP 13363996A JP 13363996 A JP13363996 A JP 13363996A JP 3832894 B2 JP3832894 B2 JP 3832894B2
- Authority
- JP
- Japan
- Prior art keywords
- images
- image
- display area
- displaying
- corresponding points
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Studio Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、画像の一部がオーバーラップしている複数の画像をコンピュータ上で合成を行うパノラマ合成システム等に用いて好適な画像合成装置に関する。
【0002】
【従来の技術】
画像の一部の辺がオーバーラップしている複数の画像をコンピュータ上で合成する処理を一般的にパノラマ合成と呼ぶ。これはワイドな被写体を撮影して一枚の画像にしたい、という要求からの処理といえる。また、電子カメラにおいては、銀塩カメラやスキャナと比較した短所として、解像度の低さ(画素数の少なさ)が指摘されている。この電子カメラで撮影された画像にとってのパノラマ画像合成は、ワイドな画像を撮るということだけでなく、高解像度な画像を撮る手段としても重要である。具体的には、一枚の紙の原稿や雑誌等を複数に分けて撮影し、スキャナ並みの高解像度データを取得したり、また風景を複数に分割してワイドで高解像度に撮影したりする場合に威力を発揮する。
【0003】
パノラマ合成において、最も重要でかつ難しいのは、複数の画像のオーバーラップ位置を見つける処理である。これは言い換えると、2つの画像の中から同じ点(以降、対応点と呼ぶ)を探しだす処理である(以降、対応点抽出処理と呼ぶ)。対応点抽出処理の難しさ(エラーレート)は各々の画像によって異なる。オーバーラップしている領域内に、他の箇所にはないユニークな特徴形状が多数あるときは、対応点を間違えないで探すことができる。しかしオーバーラップ内の他の箇所にも、似たようなパターンが存在する場合は(例えば原稿中の文字等)、対応点を間違える場合が発生する。
【0004】
そこで従来は、ユーザに対応する点を明示的に指定してもらい、その位置をもとに微調整をして合成を行うというのが一般的である。図21に従来例を示す。まずユーザが合成したい複数の画像を指定すると、図21のようなウインドウが開く。2枚の画像での対応するポイントをユーザが指定し、マーク21a、21b、22a、22bをつける。処理としては、各々のマークの中心からごく近傍のパターンを調べて、両者が最も合致する位置関係を求め対応点とする。そしてこの対応点に基づいて合成のためのパラメータを求め,合成処理を行う。
【0005】
【発明が解決しようとする課題】
しかしながら、上記従来例においては、以下のような問題点がある。まず、ユーザが合成したい画像のセットを指示しなければならない。コンピュータ上で管理している画像の全枚数がそれほど多くないときは問題にはならないが、数千枚以上もの多くの画像を管理している場合は、見落とし等が発生する。また、ユーザが対応点のポイントをほぼ正確に指定しなければならず、これも作業の回数が増えるにつれてユーザの負担となる。
【0006】
本発明は上記のような実情に鑑みて成されたもので、もっと簡単にパノラマ画像合成を行うことのできる画像合成装置を得ることを目的としている。
【0007】
【課題を解決するための手段】
請求項1の発明による画像合成装置においては、複数の画像を表示可能な第1の表示領域と、複数の画像を表示可能で前記第1の表示領域とは異なる第2の表示領域とを同一画面上に表示する表示手段と、ユーザの指示によって前記第1の表示領域に表示されている画像から選択した複数枚の画像を前記第2の表示領域へと移動させる移動手段と、前記第1の表示領域から前記第2の表示領域へと移動された複数の画像のオーバーラップ部分を検出する検出手段と、前記検出手段によって検出されたオーバーラップ部分における対応点を抽出する対応点抽出手段と、前記対応点抽出手段によって抽出された対応点に基づいて前記複数枚の画像をつなぎ合わせて1枚の画像を作成する合成処理手段と、を備え、前記検出手段は、前記移動手段によって移動させた複数枚の画像の枚数が所定の枚数未満である場合には、自動で画像のオーバーラップ部分を検出することを特徴とする。
【0008】
また、請求項2の発明による画像合成装置においては、複数の画像を表示可能な第1の表示領域と、複数の画像を表示可能で前記第1の表示領域とは異なる第2の表示領域とを同一画面上に表示する表示手段と、ユーザの指示によって前記第1の表示領域に表示されている画像から選択した複数枚の画像を前記第2の表示領域へと移動させる移動手段と、前記第1の表示領域から前記第2の表示領域へと移動された複数の画像のオーバーラップ部分を検出する検出手段と、前記検出手段によって検出されたオーバーラップ部分における対応点を抽出する対応点抽出手段と、前記対応点抽出手段によって抽出された対応点に基づいて前記複数枚の画像をつなぎ合わせて1枚の画像を作成する合成処理手段と、を備え、前記移動手段は、所定の枚数以上の画像が入力されたとき、これらの画像を前記第2の表示領域上で移動させて各画像の相対位置を指定し、前記検出手段は、前記指定された相対位置に基づいて前記オーバーラップ部分を検出することを特徴とする。
【0009】
【作用】
請求項1の発明による画像合成装置によれば、複数の画像を表示可能な第1の表示領域と、複数の画像を表示可能で前記第1の表示領域とは異なる第2の表示領域とを同一画面上に表示し、ユーザの指示によって前記第1の表示領域に表示されている画像から選択した複数枚の画像を前記第2の表示領域へと移動させ、前記第1の表示領域から前記第2の表示領域へと移動された複数枚の画像が所定の枚数未満である場合には、自動でオーバーラップ部分を検出し、検出されたオーバーラップ部分における対応点を抽出し、抽出された対応点に基づいて前記複数枚の画像をつなぎ合わせて1枚の画像を作成する。
【0010】
請求項2の発明による画像合成装置によれば、複数の画像を表示可能な第1の表示領域と、複数の画像を表示可能で前記第1の表示領域とは異なる第2の表示領域とを同一画面上に表示し、ユーザの指示によって前記第1の表示領域に表示されている画像から選択した複数枚の画像を前記第2の表示領域へと移動させ、前記第1の表示領域から前記第2の表示領域へと移動された複数枚の画像が所定の枚数以上である場合には、これら複数枚の画像を第2の表示領域上で移動させて各画像の相対位置を指定し、この相対位置に基づいて、オーバーラップ部分を検出し、検出されたオーバーラップ部分における対応点を抽出し、抽出された対応点に基づいて前記複数枚の画像をつなぎ合わせて1枚の画像を作成する。
【0011】
【発明の実施の形態】
本実施の形態は、以下の手順により簡単で便利なパノラマ画像合成を行うものである。
(1)まず、電子カメラで画像を撮影する際に、ユーザは“パノラマ画像撮影モード”にカメラをセットしてから撮影を行う。このモードにより、撮影された画像の属性情報中に、1セットのパノラマ画像を示す識別子が自動的に記録される。
(2)そして、このカメラをコンピュータに接続して、カメラ内のメモリ中にある画像+属性情報をコンピュータのHDにコピーする際に、アプリケーションソフトウェアを介してこの属性情報をチェックする。属性情報中にパノラマ画像撮影モードでの識別子が存在するものから自動的に1セットの画像を抽出する。
【0012】
次にパノラマ画像合成処理に入る。画像合成においては、画像が2枚のときのみ完全自動で行う後述するフルオート合成を行う。3枚以上のときは、画像の上下左右の相対位置だけをユーザに指定してもらう後述するオート合成を行う。またこれらのフルオート合成、オート合成のチェック段階で対応点が十分求められなかったとき、またはユーザが対応点の検出に要する時間を省いてより短い時間で合成処理を行いたいときは、ユーザがだいたいのオーバーラップ位置を指定する後述するセミオート合成を行う。
【0013】
(3)「フルオート合成」:上記(2)でパノラマ画像の1セットを抽出して、それが2枚だったときはフルオート合成処理に入る。2枚の合成位置としては、図3(a)〜(d)に示すように上下左右の4通りが考えられる。そこでこの4つの場合の対応点を求める処理を行い、対応点が上下左右のうち最も多く求まったところを、正しい合成位置として合成する。このとき、4つのいずれの場合も、対応点の数が所定の量以下のときは、確実性が低いといえる。このときはフルオート合成処理を打ち切り、セミオート合成処理に移行する。このモードでのユーザの操作としては、画像をカメラからコンピュータ中へコピーする操作だけで、あとは自動でやってくれることになる。特殊な用途以外は通常は2枚合成がほとんどと考えられるので、この合成処理が行われる場合が最も多い。
【0014】
(4)「オート合成」:上記(2)でパノラマ画像の1セットを抽出して、それが3枚以上だったときこのオート合成処理に入る。このオート合成では1セットの画像をウインドウに表示する。図4は4枚の画像を表示する場合を示す。ユーザはこれらの画像をdragして配置を色々考え、上下、左右の位置関係のみを指示する。これに基づいて対応点抽出処理を行う。この結果、所定のレベル以上一致している対応点の数が所定の量以上のときは、正しい合成位置として合成する。そうでなければ確実性が低いので、オート合成処理を打ち切り、セミオート合成処理に移行する。
【0015】
(5)「セミオート合成」:上記(3)(4)で対応点抽出の確実性が低かったとき、または対応点抽出に要する時間を節約してより早い合成結果を得たい場合は、このセミオート処理を行う。ユーザはこれらの画像をdragして、図5に示すようにオーバーラップのだいたいの位置を指定する。この位置情報に基づいてオート処理でのときよりずっと狭い範囲で対応点抽出処理を行う。この結果最も一致する位置を求め、合成処理を行う。
【0016】
上記(4)(5)の場合、ユーザは対応点抽出のための操作を行うが、どちらも画像をdragするだけの操作であり、これは最も単純でかつ共通の操作であるので、ユーザの負担は小さい。また、(5)のセミオート合成のとき、画像をdragしてだいたいの位置に合わせるだけなので、従来例のポイントを明示的に指定する操作よりもずっと簡単で楽である。
【0017】
図2は本発明が実施されうるプラットフォームであるパーソナルコンピュータシステムの構成例を示している。図2において、301はコンピュータシステム本体、302はデータを表示するディスプレイ、303は代表的なポインティングデバイスであるマウス、304はマウスボタン、305はキーボードである。307はコンピュータに接続可能な電子カメラであり、これは306で示す双方向パラレルインターフェースやSCSIインターフェース等の、高速で画像転送可能な汎用インターフェースによって接続されている。
【0018】
図1はソフトウェアとハードウェアとを含むパノラマ画像合成システムの構成を示す図である。図1において、509はハードウェアであり、CPU518を有している。505はハードウェア509の上で動作するオペレーディングシステム(OS)であり、504はOS505の上で動作するアプリケーションソフトウェアである。なお、ハードウェア509とOS505を構成するブロックのうち、構成要素として当然含まれるが本発明の実施の形態を説明する上で直接必要としないブロックに関しては図示していない。そのような図示していないブロックの例としてハードウェアとしてはメモリ、OSとしてはメモリ管理システム等がある。
【0019】
図1において515はファイルやデータを物理的に格納するハードディスク、508はOS505を構成するファイルシステムであり、アプリケーションソフトウェア504がハードウェア509を意識せずにファイルの入出力が行えるようにする機能がある。514はファイルシステム508がハードディスク515の読み書きを行うためのディスクIOインターフェースである。507はOS505を構成する描画管理システムであり、アプリケーションソフトウェア504がハードウェア509を意識せずに描画が行えるようにする機能がある。
【0020】
513は描画管理システム507がディスプレー302に描画を行うためのビデオインターフェースである。506はOS505を構成する入力デバイス管理システムであり、アプリケーションソフトウェア504がハードウェア509を意識せずユーザの入力を受け取ることができるようにする機能がある。510は入力デバイス管理システム506がキーボード305の入力を受け取るためのキーボードインターフェース、512は入力デバイス管理システム506がマウス303からの入力を受け取ることができるようにするためのマウスインターフェースである。
【0021】
さらに、電子カメラ307は、双方向インターフェースもしくはSCSIインターフェース等516に接続され、入力デバイス管理システム506を通して、画像データ等のやりとりを行うことができる。501は画像データ管理システムであり、502は画像データを属性情報もしくはユーザの入力によるキーワード等で管理するためのデータ管理部である。503は管理されている画像データを、その属性情報もしくはユーザの入力によるキーワード等で検索し表示するデータ表示部である。517はパノラマ画像合成システムであり、画像データ管理システム501からパノラマ撮影モードで撮影した画像を受け取り、パノラマ画像合成処理を行う。そして合成した結果の画像を画像データ管理システム501へ登録する。
【0022】
図6はカメラ内の内蔵メモリに格納される画像データおよび属性情報のデータ構造を示す。まずメモリ内には画像管理テーブル81が置かれ、対応する画像データ82と属性情報83とが参照される。画像データ82は、カメラ独自のフォーマットデータ(ネィティブデータ)か、JPEG等の汎用フォーマットデータのいずれかで格納されている。ネィティブデータは、例えば、CCDから出力を単にA/Dして得られたデータ等である。一般的にネィティブデータは記録に要する時間が短いが、データサイズが大きく、JPEGデータは、記録に要する時間はかかるが、データサイズを小さくできるという点が異なる。ユーザは撮影状況に応じてこれらのどちらかを選択して格納することになる。
【0023】
属性情報83の中には、ファイル名84、フィルタタイプ85、撮影日時86、撮影モード87が記録されている。ファイル名84は、カメラが自動的に付けるユニークなファイル名である。フィルタタイプ85は、ネィティブデータフォーマットなのかJPEGフォーマットなのか、あるいはカメラがサポートする他の汎用フォーマットなのかを示す。撮影日時86は、カメラは内部にカレンダーとタイマとを持っており、カメラのシャッターボタンを押された時点の日時と時間が記録される。撮影モード87は、カメラの有する数種類の撮影モードのうち撮影時に選択されているモードを示す。これが“パノラマ撮影モード”の場合は、さらに識別子88が付加される。この識別子はパノラマ撮影モードにセットしたときにセットされるユニークな番号であるモードID89とそのモードでの何枚目かを示すデータ90とが格納される。従ってパノラマ撮影モードにおいて同じモードID89を持つ複数の画像が1セットであるということになる。この図6の例では、風景を左右2枚の画像として撮影しているので、89aと89bとは同じモードIDである。
以上のようにしてカメラ内に画像データ82および属性情報83が格納される。
【0024】
図7はカメラ内のデータをパーソナルコンピュータへコピーするときの画面を示す。図1のカメラ307を汎用インターフェース306を介してコンピュータに接続し、画像データ管理システム502を起動する。画像データ管理システム502は、カメラ内のデータを図7のカメラカタログ91と名前の付けられたウインドウに表示する。ここで94は画像データの縮小画像(サムネール画像)、95は属性情報中のファイル名、フィルタタイプ等である。属性情報のうちどこまで表示するかはユーザ指定で変更できる。92はパーソナルコンピュータのハードディスク中に存在するユーザの画像データベースの一部を表示しているユーザカタログである。
【0025】
ユーザはカメラカタログ91中から画像を選択して(93は選択されたことを表示する枠)ユーザカタログ92にDrag&Dropの操作を行うとコピーが行われる。このとき、コピーなのか(カメラ内にデータは残る)、移動なのか(カメラ内のデータは消去される)はユーザの指定でどちらにでも切り替えられる。このコピー操作の最中に、
・ネィティブデータを所定の汎用フォーマットに変換する。
・パノラマ撮影モードで撮影された画像があれば、それらの合成を行う。
【0026】
以上の操作を自動的にその必要性を検知して実行する。図8にその際のユーザカタログ91上でのデータ構造を示し、図9にフローチャートを示す。
まず図8の説明をする。まず画像データ管理システム508では、内部に格納している画像データについて固有のID番号を付けて管理している。それがデータ管理テーブル1108である。これは、データID1109と、それにリンクされている画像データ、属性情報との対応がとられる。このデータIDが管理の基本となる。画像データ管理システム502では、ユーザが任意の個数だけユーザカタログ92を持つことができる。この一個のカタログごとに、カタログテーブル1100を持つ。またカタログ内の画像データをユーザが複数の画像をひとつのグループとしてカテゴリー分けをする機能を有する。これによりひとつのカタログ内を階層化してデータを管理できる。
【0027】
カタログテーブル1100内には、このカタログに属する画像のデータID1101と、属するグループのグループID1102が保持される。そしてグループID1102はグループテーブル1103とリンクする。グループ属性テーブル1104は基本的にカタログテーブルと同じであり、このグループに属する画像のデータID、またはこのグループに属するグループIDを持つ。違いは頭にグループ属性データ1104を持つところが異なる。これにはグループ名1106、作成日時1107、グループタイプ1110が格納される。グループ名1106はユーザが付けた任意の名前がつく。パノラマ画像のセットとしてグループが作られたときは、このグループ名はデフォルトで“パノラマ画像”と付けられる。
【0028】
作成日時は、このグループが作成されたときの日時が格納されている。グループタイプ1110は、ユーザが作成した場合は“ユーザ作成”、パノラマ画像のセットとしてグループが作られたときは、“パノラマ画像”と入っている。パノラマ画像のときは、さらに識別子とリンクしモードID89aが納められる。そして実際の画像データ、属性情報は図6の場合と同じ構造で格納され、これらはデータ管理テーブル1108から参照される。
【0029】
次に図9の説明を行う。ステップ1000で全てのコピーする画像データの処理が終了しない間において、ステップ1001で、コピー操作の中でまず一個の画像データとそれに付随した属性情報とを取得する。ステップ1002で、属性情報内のフィルタタイプ85から、この画像データがネィティブデータかどうかを判断する。そうであればステップ1003でデフォルトとして決まっている汎用フォーマット(JPEGやTIFF等)にネィティブデータを変換する。変換が終わったらフィルタタイプ85も更新する。次にステップ1004で、撮影モード87を調べてパノラマ撮影モードで撮影された画であるかをチェックする。パノラマ画像でない場合は、ステップ1008で通常の画像データとして登録する。具体的には図8でのデータ管理テーブル1108に固有のデータIDを付けて登録し、そのデータIDをカタログテーブル1100に登録する。
【0030】
パノラマ画像であるときは、このパノラマ画像用のグループがすでに作成済みかどうかをチェックする。これは図8のカタログテーブル1100をたどっていって、グループIDのモードID89aが、画像のモードID89aと同じかどうかを見ることによって行われる。対応するグループがないときはグループを作成する。これはカタログテーブル1100に新たにグループID1102を登録し、グループ名1106、作成日時1107、グループタイプ1110を作成する。グループタイプ1110には“パノラマ撮影”と記録され、画像の属性情報中のモードID89aが納められる。そしてステップ1007で、このパノラマ画像データに固有のデータIDを付けて管理テーブル1108に登録し、そのデータID1105を登録する。
【0031】
以上の一連の処理をコピーする画像全てに対して行う。全ての画像に対して処理が終わったならば、ステップ1009に移る。ステップ1009では、今までコピーしたものの中でパノラマ画像のグループが作られたかをチェックし、そうであればグループ内の画像を用いてステップ1010で後述するパノラマ画像合成処理を行う。そうでなければ処理を終了する。
【0032】
図10に上記ステップ1010のパノラマ画像合成処理のフローチャートを示す。まずステップ1200でグループ内の画像が2枚か2枚より多いかをチェックする。2枚のときはステップ1202で後述するフルオート処理に入る。2枚より多いときはステップ1201で後述するオート合成処理に入る。このステップ1201、1202の処理は、ステップ1203、1204でその結果が成功か失敗かをチェックする。この成功か失敗かの判断は、画像同士の対応点が所定数以上見つけられたかどうかで判断する。従って、合成処理全体の中では対応点抽出処理の早い段階で判断を下すので、結果が失敗でもユーザがその結果を得るまで待つ時間は短くて済む。そして成功であれば処理は終了で、失敗であれば、ステップ1205で後述するセミオート処理を行う。
【0033】
図11にオート合成処理のユーザインターフェースを示す。まず画面上に上記ステップ1009におけるパノラマ画像のグループに属する画像全てがウインドウに入る大きさにリサイズされて表示される。これをユーザが見て正しい順番にDragして並べ替える。この図11の例では、3枚の画像が表示され、同図(a)の下に位置している画像が本当は一番右になるので、右側にDragすると、その位置から横に3つ並ぶ同図(b)のようなパノラマであることを検知する。そしてウインドウに入りきるように再度リサイズされて表示される。
【0034】
図12にオート合成処理のフローチャートを示す。まずステップ1301で、ユーザが並べ替えた位置関係の情報を取得する。ステップ1302で一致する対応点を見つけるのにサーチする範囲を設定する。これを図13で説明する。パノラマ画像として撮影するときのルールとして、最小10%、最大50%オーバーラップさせることと、それに直交する上下方向のずれをそれぞれ5%以下と決めると、必ずオーバーラップする範囲は図13(a)の1504で示す範囲となる。またオーバーラップしている可能性のある範囲は図5(b)の1505で示す範囲となる。上記範囲1504の中にあるポイント1503は上記のルールに従うと、サーチ範囲中の1505の中に対応する点があることになる。後述する対応点抽出処理では、このサーチ範囲1505に対してマッチングするかどうかを見ていくことになる。
【0035】
再び図12のフローチャートに戻ると、ステップ1302では、以上のサーチ範囲1505設定に用いるパラメータをセットする。ステップ1303では、対応点を抽出する処理を行う。この詳細については後述する。ステップ1304では、求まった対応点の数が所定値以上かどうかを判断し、所定値以下のときは十分対応点を自動で見つけることができなかったので、セミオート処理へ進む。所定値より多かったときは、ステップ1305の合成パラメータ処理へ進む。ここでは合成の際に用いる移動、拡大(縮小)、回転のパラメータを先の対応点の座標から求める。その詳細は後述する。ステップ1306ではこれらパラメータをもとに画像を合成する。その詳細も後述する。
【0036】
図14にフルオート処理のフローチャートを示す。まず、ステップ1601で対応点抽出のためのサーチ範囲であるマッチング範囲設定を行うが、これは上記ステップ1302と処理は同一である。次に4回対応点抽出処理を行う。フルオートの場合、枚数は2枚に限定しているので、考えられる位置関係は画像1と画像2が上下、下上、左右、右左の4通りである。そこでこの4つの場合について対応点抽出処理をして、それぞれ対応点として抽出できた数、対応点としての一致レベルの平均を保持する。これらの処理が、ステップ1602から1609までの処理である。そしてステップ1610で上記4つの場合について対応点が所定数以上の対応点を抽出できたものがあるかをチェックする。もし一つもなければセミオート処理へ進む。
【0037】
抽出された対応点の数が所定数以上であれば、ステップ1611でその中で対応点としての一致レベルの平均が最も高いものを真の位置関係であるとする。通常の画像では、対応点が所定値以上の場合は4つのうちの一つだけになるはずだが、例えば原稿等を分割して撮った場合似たような字が並んでいて、正しくない位置関係のときでも所定値以上を対応点として抽出してしまう場合があり得る。そこでこのステップ1611では最もフィットしているもの(平均一致レベルが最も高いもの)を選択するようにする。ステップ1612の合成パラメータ処理、ステップ1613の画像合成処理は上記ステップ1305、1306と同一処理である。
【0038】
図15にセミーオート処理でのユーザインターフェースを示す。まず画面上に前記ステップ1009でのパノラマ画像のグループに属する画像全てがウインドウに入る大きさにリサイズされて表示される。これをユーザが見てだいたいのオーバーラップ位置を合わせて重ね合わせる。重ね合うところは、画素単位でビットごとにAND演算をして表示する。従って重なった部分は両方の画像が透けて見える。そしてウィンドウに入りきるように再度リサイズされて表示される。
【0039】
以上の操作は、基本的にオート処理で操作と同一であり、ユーザの負担は少ない。違いはマウス等のポインティングデバイスで画像をDragして離した位置を、位置関係の情報だけを使って並べ替えて表示する(オート処理)ことと位置の情報をそのまま使ってオーパーラップして表示する(セミオート処理)ことだけである。またDrag中にも先のAND演算で透けて見えるため、だいたいの位置を容易に合わすことができる。
【0040】
図16にセミオート処理でのフローチャートを示す。ここでの処理はオート処理のときとほとんど同一である。ステップ1701で、画像のユーザが合わせたオーバーラップ位置情報を取得する。ステップ1702でマッチング範囲を設定するが、ここでの範囲は、所定の範囲(想定されるユーザの合わせた位置の誤差範囲+マージン)となる。従って、オート処理の時の範囲よりはずっと狭い範囲となり、計算時間の短縮と精度の向上が図られる。ステップ1703、1704、1705の対応点抽出処理、合成パラメータ設定処理、画像合成処理は、いずれもオート処理のときと同一である。
【0041】
図17に対応点抽出処理フローチャート、図18にそれを図示したものを示す。図18は、左と右の画像2枚の例を示す。画像の枚数が2枚より大きいときは、2枚の合成を何回か繰り返せばよいので処理としては基本的に同じである。まず、撮影時のルールにのっとり、テンプレートを設定する範囲2005は、縦90%横10%の範囲に設定する。また、サーチする範囲は、対応する点が存在する可能性の範囲ということで、縦100%、横50%の範囲2006に設定される。画像中の範囲2005からエッジが所定値以上強い点を探し、そこを中心として縦、横n画素の矩形をテンプレート画像として切り出す。このテンプレート画像2003をサーチ範囲2006範囲上に置いて画素単位でその差分をとる。この合計が最小となるところをサーチ範囲2006上を1画素ずらして求める。サーチ範囲2006上を全てサーチした結果の最小値が、所定値以下であれば、そのそのポイント同士(x,y)と(x′,y′)を対応点のペアとして保持する。
【0042】
以上が処理の概要となるが、これを図17のフローチャートに沿ってもう一度説明する。まずステップ1901でエッジ抽出画像を作成する。そしてステップ1902で、このエッジ抽出画像の中のテンプレートを設定する範囲2005からエッジが所定値以上強いポイントを探す。そしてそのポイントがあれば、ステップ1903でそのポイントから縦横±n画素ずつの矩形で画像を切り出しテンプレート画像とする。そのポイントの位置からステップ1904で右画像中のサーチ範囲を設定する。そしてステップ1905でサーチ範囲中の画像とテンプレート画像とを重ね合わせ、画素単位で画素値の差の絶対値をとりその合計を求める。その差分の合計値が、それまでの最小値かどうかをステップ1906でチェックし、そうであれば、ステップ1907で、そのサーチ範囲中のポイントの座標とその最小値とを保持する。
【0043】
以上をサーチ範囲全てにおいて繰り返し、最も一致する(最小の差分を持つ)点を見けだす。ステップ1908でサーチ範囲全てにおいて行ったかチェックし、ステップ1909で、その結果求められた最小値が十分小さな値であるか(確かな対応点か)を、所定値Lと比較して判断する。所定値Lより小さかった場合は、ステップ1910で、対応点のリストにテンプレート画像を切り出したポイントの座標(x,y)と、最小値が求められたポイントの座標(x′,y′)と、その最小値の値とを登録する。以上をステップ1911でテンプレート設定範囲のエッジが所定値以上強いポイント全部に対して行い、終了したら対応点のリスト中の全ての最小値からその平均値を求め、これをステップ1912で一致レベル値として保持する。以上で対応点抽出処理を終了する。
【0044】
次に、合成パラメータ設定処理について説明する。画像を2枚としたときに(2枚以上の合成の場合も2枚の合成の繰り返しなので、まずは2枚で考えてよい)、そのずれは、x、y方向の並進、回転、および拡大率の差で表すことができる。よって対応する点(x,y)、(x′,y′)は以下のように表せる。
【0045】
【数1】
【0046】
ここで、θは回転角、Δxおよびyは並進、mは倍率を示す。従ってパラメータA、B、C、Dを求めることによりこの座標変換を表すことができる。先の対応点抽出処理では、対応点(x,y)、(x′,y′)の複数の組を取得した。これを最小自乗法を用いてパラメータA、B、C、Dを求める。
【0047】
【数2】
【0048】
の条件で、
【0049】
【数3】
【0050】
を満たすパラメータA、B、C、Dを求める。
ここで、
【0051】
【数4】
【0052】
とすると、パラメータA、B、C、Dは次のように表すことができる。
【0053】
【数5】
【0054】
このパラメータp1 からp8 を求め、上式に代入することにより、パラメータA、B、C、Dを算出する。
【0055】
最後に、画像合成処理について説明する。すでに、パラメータA、B、C、Dは求められているので、次の式
x′=Ax+By+C
y′=−Bx+Ay+D
に代入すればよい。
【0056】
図19にこれを図示したものを示す。画像が左、右画像の場合、左画像の2倍の大きさを合成画像2103として確保する。ここに、まず左画像をそのままコピーしてくる。次に合成画像の残りの領域(x,y)について、上式から対応する(x′,y′)を求める。そして右画像の(x′,y′)の画素を(x,y)にコピーする。これを合成画像の残りの領域全てに対して行う。
【0057】
図20に同様の内容をフローチャートに示す。ステップS2201で、第1の画像(20での左画像)の2倍の領域を合成画像領域として確保する。ステップS2202で、第1の画像をこの合成画像領域に単純にコピーする。ステップS2203で、合成画像の残りの領域(x,y)について、上式から対応する(x′,y′)を求める。ステップ2204で、(x′,y′)は第2の画像(図19での右画像)内にあるかどうかをチェックし、あればステップS2205で(x′,y′)の画素を(x,y)にコピーする。以上を合成画像の残りの領域全てに対して繰り返し、処理は終了する。
以上によって、最終的なパノラマ合成画像を作成することができる。
【0058】
本実施の形態によれば、まず、自動的にパノラマ画像として合成する画像のセットを抽出してくれる。これによりユーザが合成したい画像のセットを指示する必要がない。また、合成する画像のセットが2枚のときはフルオートで、2枚より多いときもユーザは位置関係を指示するだけ(オート)で合成処理を行うことができ、ユーザの負担は非常に軽いものとなっている。さらにフルオート、オートのときに十分な対応点を検出できなかったときには、セミオート処理に切り替え、この場合もユーザは画像をドラッグして重ね合わせた簡単な位置を指定するだけである。このセミオート処理に切り替わる場合は少ないし、またそうなっても非常に簡単な操作で行えるので、これもユーザの負担は軽いと言える。
【0059】
【発明の効果】
以上のように本発明による画像形成装置によれば、ユーザは、第1の表示領域に表示されている画像をDrag&Drop等により第2の表示領域に移動させて合成したい複数の画像を表示することによって、合成する画像を確認しながら容易な操作で合成画像を得ることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態を示すブロック図である。
【図2】機器の構成例を示す構成図である。
【図3】フルオート処理のときに想定される2枚の画像の組み合わせを示す構成図である。
【図4】オート処理における相対的位置を指示するユーザインターフェースを示す構成図である。
【図5】セミオート処理におけるだいだいのオーバーラップ位置を指示するユーザインターフェースを示す構成図である。
【図6】カラメ内に記録された画像データの構成図である。
【図7】カメラ内の画像データをコンピュータ内へコピーする操作を示す構成図である。
【図8】コンピュータ内で管理するデータの構成図である。
【図9】カメラ内の画像データをコンピュータ内へコピーする際に行う処理のフローチャートである。
【図10】パノラマ合成のフルオート、オート、セミオートの流れを示すフローチャートである。
【図11】オート処理のユーザインターフェースを示す構成図である。
【図12】オート処理のフローチャートである。
【図13】合成時のマッチングが範囲を示す構成図である。
【図14】フルオート処理のフローチャートである。
【図15】セミオート処理のユーザインターフェースを示す構成図である。
【図16】セミオート処理のフローチャートである。
【図17】対応点抽出処理のフローチャートである。
【図18】対応点抽出装置でのテンプレート画像とマッチング範囲を示す構成図である。
【図19】合成処理を示す構成図である。
【図20】合成処理のフローチャートである。
【図21】従来の対応点指示を示す構成図である。
【符号の説明】
301 コンピュータシステム本体
302 ディスプレイ
303 マウス
305 キーボード
307 電子カメラ
504 アプリケーションソフトウェア
505 オペレーティングシステム
518 CUP
Claims (4)
- 複数の画像を表示可能な第1の表示領域と、複数の画像を表示可能で前記第1の表示領域とは異なる第2の表示領域とを同一画面上に表示する表示手段と、
ユーザの指示によって前記第1の表示領域に表示されている画像から選択した複数枚の画像を前記第2の表示領域へと移動させる移動手段と、
前記第1の表示領域から前記第2の表示領域へと移動された複数の画像のオーバーラップ部分を検出する検出手段と、
前記検出手段によって検出されたオーバーラップ部分における対応点を抽出する対応点抽出手段と、
前記対応点抽出手段によって抽出された対応点に基づいて前記複数枚の画像をつなぎ合わせて1枚の画像を作成する合成処理手段と、
を備え、
前記検出手段は、前記移動手段によって移動させた複数枚の画像の枚数が所定の枚数未満である場合には、自動で画像のオーバーラップ部分を検出することを特徴とする画像合成装置。 - 複数の画像を表示可能な第1の表示領域と、複数の画像を表示可能で前記第1の表示領域とは異なる第2の表示領域とを同一画面上に表示する表示手段と、
ユーザの指示によって前記第1の表示領域に表示されている画像から選択した複数枚の画像を前記第2の表示領域へと移動させる移動手段と、
前記第1の表示領域から前記第2の表示領域へと移動された複数の画像のオーバーラップ部分を検出する検出手段と、
前記検出手段によって検出されたオーバーラップ部分における対応点を抽出する対応点抽出手段と、
前記対応点抽出手段によって抽出された対応点に基づいて前記複数枚の画像をつなぎ合わせて1枚の画像を作成する合成処理手段と、
を備え、
前記移動手段は、所定の枚数以上の画像が入力されたとき、これらの画像を前記第2の表示領域上で移動させて各画像の相対位置を指定し、
前記検出手段は、前記指定された相対位置に基づいて前記オーバーラップ部分を検出することを特徴とする画像合成装置。 - 前記検出手段は、前記移動手段によって前記第2の表示領域上で画像を重ね合わせて指定した各画像の位置情報から各画像のオーバーラップ部分を検出することを特徴とする請求項2記載の画像合成装置。
- 前記複数枚の画像には、各画像が1セットの合成画像を示す識別情報が含まれており、前記検出手段及び前記合成処理手段は前記識別情報に基づいて処理を行うことを特徴とする請求項2記載の画像合成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13363996A JP3832894B2 (ja) | 1996-05-28 | 1996-05-28 | 画像合成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13363996A JP3832894B2 (ja) | 1996-05-28 | 1996-05-28 | 画像合成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09322059A JPH09322059A (ja) | 1997-12-12 |
JP3832894B2 true JP3832894B2 (ja) | 2006-10-11 |
Family
ID=15109530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13363996A Expired - Fee Related JP3832894B2 (ja) | 1996-05-28 | 1996-05-28 | 画像合成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3832894B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3947290B2 (ja) * | 1998-01-19 | 2007-07-18 | オリンパス株式会社 | 画像合成処理装置および画像合成処理プログラムを記録した記録媒体 |
WO2005032125A1 (ja) * | 2003-09-26 | 2005-04-07 | Sharp Kabushiki Kaisha | パノラマ画像作成装置及びパノラマ画像撮影装置 |
JP2009151896A (ja) | 2007-12-21 | 2009-07-09 | Sony Corp | 画像処理装置、動画再生装置、これらにおける処理方法およびプログラム |
JP6397284B2 (ja) | 2014-09-16 | 2018-09-26 | キヤノン株式会社 | 画像処理装置、画像処理方法及びプログラム |
US20160239200A1 (en) * | 2015-02-16 | 2016-08-18 | Futurewei Technologies, Inc. | System and Method for Multi-Touch Gestures |
JP6745084B2 (ja) * | 2016-09-07 | 2020-08-26 | 柳井電機工業株式会社 | 太陽光発電装置の検査装置 |
-
1996
- 1996-05-28 JP JP13363996A patent/JP3832894B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH09322059A (ja) | 1997-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7085435B2 (en) | Image synthesization method | |
US8184130B2 (en) | Method and apparatus for image acquisition, organization, manipulation, and publication | |
JP3530653B2 (ja) | パノラマ画像合成装置 | |
US6593938B1 (en) | Image processing apparatus, method and computer-readable recording medium with program recorded thereon, for joining images together by using visible joining points and correcting image distortion easily | |
JP5478999B2 (ja) | 撮影装置 | |
JP2019067237A (ja) | 情報処理方法、情報処理装置およびプログラム | |
JP2018124781A (ja) | 情報処理装置、表示制御方法、及びプログラム | |
JP2001344591A (ja) | 画像管理・表示方法、および画像管理・表示装置、並びに記録媒体 | |
JP3832894B2 (ja) | 画像合成装置 | |
JP2002342743A (ja) | 画像処理装置及び画像処理方法 | |
JP2012019267A (ja) | 撮像装置とその制御方法、及びプログラム | |
JPH0991410A (ja) | パノラマ画像合成システム | |
JP3302236B2 (ja) | パノラマ画像合成装置とパノラマ画像の作成方法 | |
JP3241243B2 (ja) | パノラマ画像合成システム及びパノラマ画像合成方法 | |
JPH11212992A (ja) | 画像ファイリングシステムおよび画像ファイリングシステムを制御するプログラムを記録した記録媒体 | |
JP4142164B2 (ja) | 画像表示装置 | |
JP2007143017A (ja) | 画像ファイルの日時情報の修正 | |
JP2007259263A (ja) | 画像処理方法、画像処理装置、プログラム、および記憶媒体 | |
JP2004289706A (ja) | 画像処理方法および画像処理装置ならびにプログラム | |
JP4946332B2 (ja) | 情報処理プログラム、および情報処理装置 | |
JP3216037B2 (ja) | パノラマ画像合成システム | |
JP2004363831A (ja) | 動画像処理装置及び動画像処理方法 | |
JP2005217721A (ja) | 静止画像生成装置および生成方法 | |
JP7252501B2 (ja) | 情報処理装置、情報処理システム、情報処理方法及びプログラム | |
JP4227638B2 (ja) | 画像処理装置及び方法、並びにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040910 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040921 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041122 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050607 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050802 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20050810 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060418 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060615 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060711 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060718 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090728 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100728 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100728 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110728 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120728 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120728 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130728 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |