(57)【要約】【課題】  パノラマ画像の合成を、簡単な操作によって行なうことができるようにして、作業性の向上を図る。【解決手段】  パノラマ画像の作成に用いる画像データＤｐｉの数ｎから、パノラマ画像が取り得る可能性のある配列が、候補配列として求められる（図中ａ〜ｄ）。複数の画像データＤｐｉは、撮影した画像の一部が重複するように、主撮影方向である横方向に撮影範囲を移動させながら撮影したものである。複数の画像データＤｐｉを、その撮影の順序に従って各候補配列の形に合成したときの正否が、主撮影方向に直交する縦方向における隣接する２つの画像データの接続可能性Ｓから判定される。接続可能性Ｓが高いと判定された候補配列は正配列として決定され、複数の画像データＤｐｉは、正配列ＭＭとなるように、撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成される。【選択図】        図７
2006099497.tif 000002
【特許請求の範囲】
【請求項１】
画像の一部が重複するように、縦、横のいずれか一方を主撮影方向として撮影範囲を移動させながら撮影した複数の画像データをつなぎ合わせることにより、複数の画像を合成したパノラマ画像を作成するパノラマ画像合成装置であって、
前記複数の画像データを取り込む画像取込手段と、
前記複数の画像データについての前記撮影の順序を認識する撮影順序認識手段と、
前記複数の画像データの数をカウントする画像数カウント手段と、
前記画像数カウント手段により得られた数で取り得る画像データの配列を、候補配列として求める候補配列算出手段と、
前記画像取込手段により取り込んだ複数の画像データを、前記撮影の順序に従って前記各候補配列の形に合成したときの正否を、前記縦、横のうちの主撮影方向と相違する側の方向における隣接する２つの画像データの接続可能性から判定する判定手段と、
前記判定手段により正しいと判定された前記候補配列を、前記パノラマ画像を構成する正配列と決定して、前記画像取込手段により取り込んだ複数の画像データを、前記正配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成する画像合成手段と
を備えるパノラマ画像合成装置。
【請求項２】
請求項１に記載のパノラマ画像合成装置であって、
前記画像合成手段は、
前記画像取込手段により取り込んだ複数の画像データを、前記正配列となるように、前記撮影の順序に従って並べて、表示装置に表示する正配列表示手段と、
操作者からの操作指令を受けて、パノラマ画像の作成の実行を指令する実行指令手段と、
前記実行指令手段により実行の指令がなされたときに、前記合成を実行する手段と
を備えるパノラマ画像合成装置。
【請求項３】
請求項１に記載のパノラマ画像合成装置であって、
前記画像合成手段は、
前記画像取込手段により取り込んだ複数の画像データを、前記正配列となるように、前記撮影の順序に従って並べて、表示装置に表示する正配列表示手段と、
前記合成を実行するに際して、隣接する画像データ間でつなぎ合わせが可能かを判定するつなぎ合わせ判定手段と、
前記つなぎ合わせ判定手段によりつなぎ合わせが不可能である画像データ間が存在すると判定されたときに、前記正配列表示手段により表示される画像データの並びにおける前記つなぎ合わせが不可能であると判定された画像データ間に、つなぎ合わせが不可能である旨を示すマークを表示するエラーマーク表示手段と
を備えるパノラマ画像合成装置。
【請求項４】
請求項１ないし３のいずれかに記載のパノラマ画像合成装置であって、
前記撮影順序認識手段は、前記画像データに付属された撮影日時のデータに基づいて撮影の順序を認識する構成である、
パノラマ画像合成装置。
【請求項５】
請求項１ないし３のいずれかに記載のパノラマ画像合成装置であって、
前記撮影順序認識手段は、前記撮影を行なう撮影装置への画像データの格納順に対応したデータファイル名を認識する構成である、
パノラマ画像合成装置。
【請求項６】
画像の一部が重複するように、縦、横のいずれか一方を主撮影方向として撮影範囲を移動させながら撮影した複数の画像データをつなぎ合わせることにより、複数の画像を合成したパノラマ画像を作成するパノラマ画像合成装置であって、
前記複数の画像データを取り込む画像取込手段と、
前記複数の画像データについての前記撮影の順序を認識する撮影順序認識手段と、
前記複数の画像データの中から、前記縦、横のうちの主撮影方向と相違する側の方向において正当につなぎ合わされる２つの画像データを検索して、該２つの画像データについての前記撮影の順序に基づいて、前記パノラマ画像を構成する画像データの配列を求める画像配列算出手段と、
前記画像取込手段により取り込んだ複数の画像データを、前記画像配列算出手段により求められた画像データの配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成する画像合成手段と
を備えるパノラマ画像合成装置。
【請求項７】
請求項６に記載のパノラマ画像合成装置であって、
前記複数の画像データの数をカウントする画像数カウント手段を備え、
前記画像配列算出手段は、
前記２つの画像データについての前記撮影の順序に加えて、前記画像数カウント手段で得られた画像データの数に基づいて、前記パノラマ画像を構成する画像データの配列を求める構成である、
パノラマ画像合成装置。
【請求項８】
画像の一部が重複するように、縦、横のいずれか一方を主撮影方向として撮影範囲を移動させながら撮影した複数の画像データをつなぎ合わせることにより、複数の画像を合成したパノラマ画像を作成するパノラマ画像合成方法であって、
（ａ）前記複数の画像データを取り込む行程と、
（ｂ）前記複数の画像データについての前記撮影の順序を認識する行程と、
（ｃ）前記複数の画像データの数をカウントする行程と、
（ｄ）前記行程（ｃ）により得られた数で取り得る画像データの配列を、候補配列として求める行程と、
（ｅ）前記行程（ａ）により取り込んだ複数の画像データを、前記撮影の順序に従って前記各候補配列の形に合成したときの正否を、前記縦、横のうちの主撮影方向と相違する側の方向における隣接する２つの画像データの接続可能性から判定する行程と、
（ｆ）前記行程（ｅ）により正しいと判定された前記候補配列を、前記パノラマ画像を構成する正配列と決定して、前記行程（ａ）により取り込んだ複数の画像データを、前記正配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成する行程と
を備えるパノラマ画像合成方法。
【請求項９】
画像の一部が重複するように、縦、横のいずれか一方を主撮影方向として撮影範囲を移動させながら撮影した複数の画像データをつなぎ合わせることにより、複数の画像を合成したパノラマ画像を作成するパノラマ画像合成方法であって、
（ａ）前記複数の画像データを取り込む行程と、
（ｂ）前記複数の画像データについての前記撮影の順序を認識する行程と、
（ｃ）前記複数の画像データの中から、前記縦、横のうちの主撮影方向と相違する側の方向において正当につなぎ合わされる２つの画像データを検索して、該２つの画像データについての前記撮影の順序に基づいて、前記パノラマ画像を構成する画像データの配列を求める行程と、
（ｄ）前記行程（ａ）により取り込んだ複数の画像データを、前記行程（ｃ）により求められた画像データの配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成する行程と
を備えるパノラマ画像合成方法。
【請求項１０】
画像の一部が重複するように、縦、横のいずれか一方を主撮影方向として撮影範囲を移動させながら撮影した複数の画像データをつなぎ合わせることにより、複数の画像を合成したパノラマ画像を作成するためのコンピュータプログラムであって、
（ａ）前記複数の画像データを取り込む機能と、
（ｂ）前記複数の画像データについての前記撮影の順序を認識する機能と、
（ｃ）前記複数の画像データの数をカウントする機能と、
（ｄ）前記機能（ｃ）により得られた数で取り得る画像データの配列を、候補配列として求める機能と、
（ｅ）前記機能（ａ）により取り込んだ複数の画像データを、前記撮影の順序に従って前記各候補配列の形に合成したときの正否を、前記縦、横のうちの主撮影方向と相違する側の方向における隣接する２つの画像データの接続可能性から判定する機能と、
（ｆ）前記機能（ｅ）により正しいと判定された前記候補配列を、前記パノラマ画像を構成する正配列と決定して、前記機能（ａ）により取り込んだ複数の画像データを、前記正配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成する機能と
をコンピュータに実現させるためのコンピュータプログラム。
【請求項１１】
請求項１０に記載のコンピュータプログラムであって、
前記機能（ｆ）は、
（ｆ−１）前記機能（ａ）により取り込んだ複数の画像データを、前記正配列となるように、前記撮影の順序に従って並べて、表示装置に表示する機能と、
（ｆ−２）操作者からの操作指令を受けて、パノラマ画像の作成の実行を指令する機能と、
（ｆ−３）前記（ｆ−２）により実行の指令がなされたときに、前記合成を実行する機能と
を備えるコンピュータプログラム。
【請求項１２】
請求項１０に記載のコンピュータプログラムであって、
前記機能（ｆ）は、
（ｆ−１）前記機能（ａ）により取り込んだ複数の画像データを、前記正配列となるように、前記撮影の順序に従って並べて、表示装置に表示する機能と、
（ｆ−２）前記合成を実行するに際して、隣接する画像データ間でつなぎ合わせが可能かを判定する機能と、
（ｆ−３）前記機能（ｆ−２）によりつなぎ合わせが不可能である画像データ間が存在すると判定されたときに、前記（ｆ−１）により表示される画像データの並びにおける前記つなぎ合わせが不可能であると判定された画像データ間に、つなぎ合わせが不可能である旨を示すマークを表示する機能と
を備えるコンピュータプログラム。
【請求項１３】
画像の一部が重複するように、縦、横のいずれか一方を主撮影方向として撮影範囲を移動させながら撮影した複数の画像データをつなぎ合わせることにより、複数の画像を合成したパノラマ画像を作成するためのコンピュータプログラムであって、
（ａ）前記複数の画像データを取り込む機能と、
（ｂ）前記複数の画像データについての前記撮影の順序を認識する機能と、
（ｃ）前記複数の画像データの中から、前記縦、横のうちの主撮影方向と相違する側の方向において正当につなぎ合わされる２つの画像データを検索して、該２つの画像データについての前記撮影の順序に基づいて、前記パノラマ画像を構成する画像データの配列を求める機能と、
（ｄ）前記機能（ａ）により取り込んだ複数の画像データを、前記機能（ｃ）により求められた画像データの配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成する機能と
をコンピュータに実現させるためのコンピュータプログラム。
【請求項１４】
請求項１０ないし１３のいずれかに記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の一部が重複するように撮影した複数の画像データをつなぎ合わせて、複数の画像を合成したパノラマ画像を作成する技術に関する。
【背景技術】
【０００２】
近年、デジタルカメラ（デジタルスチールカメラ）とパーソナルコンピュータの普及に伴い、デジタルカメラで撮影した画像データをパーソナルコンピュータを用いて様々に処理することが可能となっている。様々な処理の一つとして、デジタルカメラで撮影した複数の画像データを基にパノラマ画像を合成するパノラマ画像合成処理がある。
【０００３】
このパノラマ画像合成処理では、デジタルカメラにより画像の一部が重複するように被写体像を複数に分割して撮影し、得られた複数の画像に対し、隣接する画像データ間のつなぎを合わせて（共通する部分を重ね合わせて）パノラマ画像を生成する。このようなパノラマ画像合成処理の内容は、例えば特許文献１に開示されている。
【０００４】
【特許文献１】特開２０００−９０２３２号公報
【０００５】
ところで、上記技術では、複数の画像データをどのような配列で並べるかを、操作者が一々指定してあげなければならなかった。例えば、複数の画像データのサムネールの一覧を表示して、操作者は、ドラッグ＆ドロップでサムネールを一つずつ横一列の直線状、縦一列の直線状、あるいは縦横複数のタイル状に組み合わせることで、配列を指定していた。このために、操作者は多くの手操作を要し、作業性が悪いという問題があった。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の解決しようとする課題は、パノラマ画像の合成を、簡単な操作によって行なうことができるようにして、作業性の向上を図ることにある。
【課題を解決するための手段】
【０００７】
前述した課題の少なくとも一部を解決するための手段として、以下に示す構成をとった。
【０００８】
本発明の第１のパノラマ画像合成装置は、
画像の一部が重複するように、縦、横のいずれか一方を主撮影方向として撮影範囲を移動させながら撮影した複数の画像データをつなぎ合わせることにより、複数の画像を合成したパノラマ画像を作成するパノラマ画像合成装置であって、
前記複数の画像データを取り込む画像取込手段と、
前記複数の画像データについての前記撮影の順序を認識する撮影順序認識手段と、
前記複数の画像データの数をカウントする画像数カウント手段と、
前記画像数カウント手段により得られた数で取り得る画像データの配列を、候補配列として求める候補配列算出手段と、
前記画像取込手段により取り込んだ複数の画像データを、前記撮影の順序に従って前記各候補配列の形に合成したときの正否を、前記縦、横のうちの主撮影方向と相違する側の方向における隣接する２つの画像データの接続可能性から判定する判定手段と、
前記判定手段により正しいと判定された前記候補配列を、前記パノラマ画像を構成する正配列と決定して、前記画像取込手段により取り込んだ複数の画像データを、前記正配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成する画像合成手段と
を備えることを要旨としている。
【０００９】
ここで、画像データの配列とは、横一列の並び、縦一列の並び、および、縦横複数のタイル状の全体が矩形となった並びのいずれかが該当する。
【００１０】
上記構成のパノラマ画像合成装置によれば、パノラマ画像の作成に用いる画像データの数から、パノラマ画像が取り得る可能性のある画像データの配列が、候補配列として求められる。複数の画像データは、画像の一部が重複するように、縦、横のいずれか一方を主撮影方向として撮影範囲を移動させながら撮影したものである。判定手段では、複数の画像データを、その撮影の順序に従って各候補配列の形に合成したときの正否を、前記縦、横のうちの主撮影方向と相違する側の方向における隣接する２つの画像データの接続可能性から判定している。判定手段により正しいと判定された候補配列を正配列と決定して、複数の画像データを、正配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成する。
【００１１】
このために、複数の画像データをどのような配列で並べるかを、操作者が一々指定しなくても、パノラマ画像を構成する配列が、画像データの接続可能性から自動的に決定される。したがって、操作者による操作の手数を減らして、作業性の向上を図ることができる。
【００１２】
前記画像合成手段は、前記画像取込手段により取り込んだ複数の画像データを、前記正配列となるように、前記撮影の順序に従って並べて、表示装置に表示する正配列表示手段と、操作者からの操作指令を受けて、パノラマ画像の作成の実行を指令する実行指令手段と、前記実行指令手段により実行の指令がなされたときに、前記合成を実行する手段とを備える構成としてもよい。
【００１３】
この構成によれば、自動的に決定された配列が正しいかどうかを、操作者が視認することができることから、パノラマ画像を誤った配列で合成してしまう失敗を回避することができる。
【００１４】
また、前記画像合成手段は、前記画像取込手段により取り込んだ複数の画像データを、前記正配列となるように、前記撮影の順序に従って並べて、表示装置に表示する正配列表示手段と、前記合成を実行するに際して、隣接する画像データ間でつなぎ合わせが可能かを判定するつなぎ合わせ判定手段と、前記つなぎ合わせ判定手段によりつなぎ合わせが不可能である画像データ間が存在すると判定されたときに、前記正配列表示手段により表示される画像データの並びにおける前記つなぎ合わせが不可能であると判定された画像データ間に、つなぎ合わせが不可能である旨を示すマークを表示するエラーマーク表示手段とを備える構成としてもよい。
【００１５】
この構成によれば、自動的に配列を決定する際に、２つの画像データの間でつなぎ合わせが不可能であると判定された場合に、そのつなぎ合わせが不可能となった部分を、マークによって操作者に知らせることができる。
【００１６】
前記撮影順序認識手段は、前記画像データに付属された撮影日時のデータに基づいて撮影の順序を認識する構成とすることができる。この構成によれば、パノラマ画像の作成に用いる画像データを撮影の順序に容易に並べることができる。
【００１７】
また、前記撮影順序認識手段は、前記撮影を行なう撮影装置への画像データの格納順に対応したデータファイル名を認識する構成とすることができる。この構成によっても、パノラマ画像の作成に用いる画像データを撮影の順序に容易に並べることができる。
【００１８】
本発明の第２のパノラマ画像合成装置は、
画像の一部が重複するように、縦、横のいずれか一方を主撮影方向として撮影範囲を移動させながら撮影した複数の画像データをつなぎ合わせることにより、複数の画像を合成したパノラマ画像を作成するパノラマ画像合成装置であって、
前記複数の画像データを取り込む画像取込手段と、
前記複数の画像データについての前記撮影の順序を認識する撮影順序認識手段と、
前記複数の画像データの中から、前記縦、横のうちの主撮影方向と相違する側の方向において正当につなぎ合わされる２つの画像データを検索して、該２つの画像データについての前記撮影の順序に基づいて、前記パノラマ画像を構成する画像データの配列を求める画像配列算出手段と、
前記画像取込手段により取り込んだ複数の画像データを、前記画像配列算出手段により求められた画像データの配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成する画像合成手段と
を備えることを要旨としている。
【００１９】
上記構成のパノラマ画像合成装置によれば、パノラマ画像の作成に用いる複数の画像データは、画像の一部が重複するように、縦、横のいずれか一方を主撮影方向として撮影範囲を移動させながら撮影したものである。そして、複数の画像データの中から、前記縦、横のうちの主撮影方向と相違する側の方向において正当につなぎ合わされる２つの画像データを検索して、その画像データについての前記撮影の順序に基づいて、パノラマ画像を構成する画像データの配列を求める。その後、複数の画像データを、その求めた配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成する。
【００２０】
このために、複数の画像データをどのような配列で並べるかを、操作者が一々指定しなくても、パノラマ画像を構成する配列が、画像データのつながりから自動的に決定される。したがって、操作者による操作の手数を減らして、作業性の向上を図ることができる。
【００２１】
上記第２のパノラマ画像合成装置において、前記複数の画像データの数をカウントする画像数カウント手段を備え、前記画像配列算出手段は、前記２つの画像データについての前記撮影の順序に加えて、前記画像数カウント手段で得られた画像データの数に基づいて、前記パノラマ画像を構成する画像データの配列を求める構成とすることができる。
【００２２】
この構成によれば、画像データの配列を求めるに際して、画像データの数を基にすることから、画像データの配列の主撮影方向の数だけでなく、主撮影方向と相違する側の方向における数も求めることができる。
【００２３】
本発明の第１のパノラマ画像合成方法は、
画像の一部が重複するように、縦、横のいずれか一方を主撮影方向として撮影範囲を移動させながら撮影した複数の画像データをつなぎ合わせることにより、複数の画像を合成したパノラマ画像を作成するパノラマ画像合成方法であって、
（ａ）前記複数の画像データを取り込む行程と、
（ｂ）前記複数の画像データについての前記撮影の順序を認識する行程と、
（ｃ）前記複数の画像データの数をカウントする行程と、
（ｄ）前記行程（ｃ）により得られた数で取り得る画像データの配列を、候補配列として求める行程と、
（ｅ）前記行程（ａ）により取り込んだ複数の画像データを、前記撮影の順序に従って前記各候補配列の形に合成したときの正否を、前記縦、横のうちの主撮影方向と相違する側の方向における隣接する２つの画像データの接続可能性から判定する行程と、
（ｆ）前記行程（ｅ）により正しいと判定された前記候補配列を、前記パノラマ画像を構成する正配列と決定して、前記行程（ａ）により取り込んだ複数の画像データを、前記正配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成する行程と
を備えることを要旨としている。
【００２４】
本発明の第１のコンピュータプログラムは、
画像の一部が重複するように、縦、横のいずれか一方を主撮影方向として撮影範囲を移動させながら撮影した複数の画像データをつなぎ合わせることにより、複数の画像を合成したパノラマ画像を作成するためのコンピュータプログラムであって、
（ａ）前記複数の画像データを取り込む機能と、
（ｂ）前記複数の画像データについての前記撮影の順序を認識する機能と、
（ｃ）前記複数の画像データの数をカウントする機能と、
（ｄ）前記機能（ｃ）により得られた数で取り得る画像データの配列を、候補配列として求める機能と、
（ｅ）前記機能（ａ）により取り込んだ複数の画像データを、前記撮影の順序に従って前記各候補配列の形に合成したときの正否を、前記縦、横のうちの主撮影方向と相違する側の方向における隣接する２つの画像データの接続可能性から判定する機能と、
（ｆ）前記機能（ｅ）により正しいと判定された前記候補配列を、前記パノラマ画像を構成する正配列と決定して、前記機能（ａ）により取り込んだ複数の画像データを、前記正配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成する機能と
をコンピュータに実現させるためのコンピュータプログラムである。
【００２５】
本発明の第１のパノラマ画像合成方法および第１のコンピュータプログラムによっても、本発明の第１のパノラマ画像合成装置と同様に、パノラマ画像の合成を簡単な操作によって行なうことができ、作業性に優れているという効果を奏する。
【００２６】
本発明の第２のパノラマ画像合成方法は、
画像の一部が重複するように、縦、横のいずれか一方を主撮影方向として撮影範囲を移動させながら撮影した複数の画像データをつなぎ合わせることにより、複数の画像を合成したパノラマ画像を作成するパノラマ画像合成方法であって、
（ａ）前記複数の画像データを取り込む行程と、
（ｂ）前記複数の画像データについての前記撮影の順序を認識する行程と、
（ｃ）前記複数の画像データの中から、前記縦、横のうちの主撮影方向と相違する側の方向において正当につなぎ合わされる２つの画像データを検索して、該２つの画像データについての前記撮影の順序に基づいて、前記パノラマ画像を構成する画像データの配列を求める行程と、
（ｄ）前記行程（ａ）により取り込んだ複数の画像データを、前記行程（ｃ）により求められた画像データの配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成する行程と
を備えることを要旨としている。
【００２７】
本発明の第２のコンピュータプログラムは、
画像の一部が重複するように、縦、横のいずれか一方を主撮影方向として撮影範囲を移動させながら撮影した複数の画像データをつなぎ合わせることにより、複数の画像を合成したパノラマ画像を作成するためのコンピュータプログラムであって、
（ａ）前記複数の画像データを取り込む機能と、
（ｂ）前記複数の画像データについての前記撮影の順序を認識する機能と、
（ｃ）前記複数の画像データの中から、前記縦、横のうちの主撮影方向と相違する側の方向において正当につなぎ合わされる２つの画像データを検索して、該２つの画像データについての前記撮影の順序に基づいて、前記パノラマ画像を構成する画像データの配列を求める機能と、
（ｄ）前記機能（ａ）により取り込んだ複数の画像データを、前記機能（ｃ）により求められた画像データの配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成する機能と
をコンピュータに実現させるためのコンピュータプログラムである。
【００２８】
本発明の第２のパノラマ画像合成方法および第２のコンピュータプログラムによっても、本発明の第２のパノラマ画像合成装置と同様に、パノラマ画像の合成を簡単な操作によって行なうことができ、作業性に優れているという効果を奏する。
【００２９】
本発明の記録媒体は、本発明の第１または第２のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体を特徴としている。この記録媒体は、この発明の各コンピュータプログラムと同様な作用・効果を有している。
【００３０】
本発明は、以下のような他の態様も含んでいる。その第１の態様は、この発明のコンピュータプログラムを通信経路を介して供給するプログラム供給装置としての態様である。この第１の態様では、コンピュータプログラムをコンピュータネットワーク上のサーバなどに置き、通信経路を介して、必要なプログラムをコンピュータにダウンロードし、これを実行することで、上記の方法や装置を実現することができる。
【発明を実施するための最良の形態】
【００３１】
本発明を実施するための最良の形態を実施例に基づき説明する。この実施例を、次の順序に従って説明する。
１．第１実施例：
Ａ．装置の構成：
Ｂ．コンピュータ処理：
Ｂ−１．処理の全体：
Ｂ−２．つなぎ合わせ処理：
Ｃ．作用・効果：
２．第２実施例：
３．他の実施形態：
【００３２】
１．第１実施例：
Ａ．装置の構成：
図１は、本発明の第１実施例を適用するコンピュータシステムの概略構成を示す説明図である。この実施例のコンピュータシステムは、本発明のパノラマ画像合成装置を構成するパーソナルコンピュータ１０を中心に備え、その周辺装置として、ディスプレイ２０とキーボード２２とマウス２４を備える。さらに、パーソナルコンピュータ１０には、デジタルカメラ２６とＣＤドライブ２８とプリンタ２９が接続されている。マウス２４は、トラックボール、トラックパッド、タブレット等の他のポインティングデバイスに換えることができる。
【００３３】
パーソナルコンピュータ１０は、中央演算処理装置としてのＣＰＵ１１を中心にバス１２により相互に接続されたメモリ１３、表示画像メモリ１４、ハードディスクドライブ１５、入力制御ユニット１６、表示制御ユニット１７、出力制御ユニット１８等を備える。メモリ１３は、各種データ等を記憶するもので、ＣＰＵ１１の作業領域となる。表示画像メモリ１４は、ディスプレイ２０に表示する画像の画像データを一旦記憶するメモリである。
【００３４】
ハードディスクドライブ１５は、パノラマ画像合成装置のソフトウェアとしてのコンピュータプログラムＰｒを記憶する。また、ハードディスクドライブ１５には、パノラマ画像合成に用いる複数の画像データＤｐｉ（ｉ＝１〜ｎで、ｎは正の整数）が記憶されている。画像データＤｐｉは、デジタルカメラ２６によって撮影した撮影画像の画像データであり、ハードディスクドライブ１５の所定の領域（例えば、ホルダ）に格納されている。撮影画像は、カラー画像である。
【００３５】
図２は、デジタルカメラ２６によって撮影された複数の撮影画像の一例を示す説明図である。図示するように、複数の撮影画像は、撮影した画像の一部が重複するように、被写体としての風景を２行、３列の合計６枚に分割して撮影したものである。すなわち、複数の撮影画像Ｐ１〜Ｐ６は、撮影した画像の一部が重複するように、撮影範囲を左上から、上段の中央、右上、左下、下段の中央、右下と移動させながらそれぞれ撮影したものである。
【００３６】
換言するなら、複数の撮影画像は、画像の一部が重複するように、撮影範囲を左上から主撮影方向である右方向に順に移動して、右端に至ると、副撮影方向である下方向に一つ移動して、同様に、左端から主撮影方向である右方向に順に移動する。こうして、主撮影方向への撮影範囲の移動を繰り返して、複数の撮影画像の撮影を行なう（以下、この撮影の方式を「主撮影方向方式」と呼ぶ）。なお、複数の撮影画像は、必ずしも縦横複数のタイル状に撮影する必要はなく、横一列に撮影してもよいし、縦一列に撮影してもよい。なお、上記複数の撮影画像Ｐ１〜Ｐ６は、画像データＤｐ１〜Ｄｐ６として、ハードディスクドライブ１５に格納される（図１参照）。
【００３７】
図１に戻り、入力制御ユニット１６は、キーボード２２やマウス２４から入力操作を取り込み、デジタルカメラ２６から画像データを取り込み、ＣＤドライブ２８からデータを取り込む制御ユニットである。表示制御ユニット１７は、ディスプレイ２０への信号出力を制御する制御ユニットである。出力制御ユニット１８は、プリンタ２９への印刷を制御する制御ユニットである。
【００３８】
コンピュータプログラムＰｒは、もともとは、記録媒体としてのＣＤ−ＲＯＭ（図示せず）に記憶されている。そのＣＤ−ＲＯＭをＣＤドライブ２８にセットして、所定のインストールプログラムを起動することで、コンピュータプログラムＰｒをＣＤ−ＲＯＭから読み出してハードディスクドライブ１５にインストールすることができる。このコンピュータプログラムＰｒをＣＰＵ１１が実行することにより、本発明のパノラマ画像合成装置の各種構成要件は実現される。
【００３９】
図１では、各種構成要件が、ＣＰＵ１１の内部で実現される機能のブロックによって示されている。すなわち、ＣＰＵ１１は、画像取込部３１、撮影順序認識部３２、画像数カウント部３３、候補配列算出部３４、判定部３５および画像合成部３６を機能として備える。
【００４０】
なお、コンピュータプログラムＰｒは、ＣＤ−ＲＯＭに替えて、フレキシブルディスク、光磁気ディスク、ＩＣカード等の他の携帯型記録媒体（可搬型記録媒体）に格納された構成として、これらから提供されたものとすることができる。また、このコンピュータプログラムＰｒは、外部のネットワークに接続される特定のサーバから、ネットワークを介して提供されたものとすることもできる。上記ネットワークとしては、インターネットであってもよく、特定のホームページからダウンロードして得たコンピュータプログラムであってもよい。あるいは、電子メールの添付ファイルの形態で供給されたコンピュータプログラムであってもよい。
【００４１】
Ｂ．コンピュータ処理：
Ｂ−１．処理の全体：
パーソナルコンピュータ１０のＣＰＵ１１でコンピュータプログラムＰｒを実行することで、上述した画像取込部３１、撮影順序認識部３２、画像数カウント部３３、候補配列算出部３４、判定部３５および画像合成部３６を実現している。このコンピュータプログラムＰｒに従う制御処理について、以下詳細に説明する。
【００４２】
図３は、この制御処理の全体的な流れを示すフローチャートである。このルーチンは、コンピュータプログラムＰｒを起動させる旨の指示がなされたときに、実行開始される。図示するように、処理が開始されると、ＣＰＵ１１は、まず、アプリケーションウィンドウＷＤをＣＲＴディスプレイ１２に表示する処理を行なう（ステップＳ１００）。
【００４３】
図４は、このアプリケーションウィンドウＷＤを示す説明図である。図示するように、アプリケーションウィンドウＷＤの左側の処理メニュー欄ＭＮには、「入力」、「合成」、「印刷」、「出力」の４種類のボタンＢＴ１、ＢＴ２、ＢＴ３、ＢＴ４が、下方に向かって順に並んでおり、操作者は、これらボタンＢＴ１〜ＢＴ４を順にマウス２４によりクリックしていくことで、ＣＲＴディスプレイ１２の画面上で、デジタルカメラ２６で撮影した画像を１枚のパノラマ画像に合成して出力する作業を進めていくことができる。すなわち、図３に示すように、ＣＰＵ１１は、ステップ１００の実行後、ボタンＢＴ１〜ＢＴ４がマウス２４によりクリックされる操作指令を取り込んで、その操作指令に対応した入力処理、パノラマ画像合成処理、印刷処理、出力処理を順に実行する（ステップＳ２００、Ｓ３００、Ｓ４００、Ｓ５００）。
【００４４】
ステップＳ２００で実行される入力処理は、パノラマ画像合成に用いる複数の画像データを取り込むもので、ここでは、デジタルカメラ２６によって撮影されてハードディスクドライブ１５に格納された前述した画像データＤｐｉ（画像データＤｐ１〜Ｄｐ６）を取り込む。この画像データＤｐｉの取り込み作業は、図４に示されるアプリケーションウィンドウＷＤのメニューバーＢＲ１に設けられた「ファイル」のボタンＢＴ１１が、マウス２４によりクリックされる操作指令を受けて、ファイル名を指定されることで１画像データ毎に行なわれる。なお、フォルダ等を指定することで複数の画像データを一括して取り込む構成としてもよい。また、ハードディスクドライブ１５を一旦経由することなしに、デジタルカメラ２６から直接取り込む構成とすることもできる。
【００４５】
上記のようにして取り込まれた複数の画像データＤｐ１〜Ｄｐ６は、メモリ１３の所定のエリアに格納されるが、それとともに、図４に示すように、アプリケーションウィンドウＷＤの作業フィールドＦＤＷに表示される。なお、画像データＤｐ１〜Ｄｐ６のメモリ１３への格納の際には、各画像データＤｐ１〜Ｄｐ６に付属されたタグ情報の「撮影日時」のデータを読み出して、このデータから各画像データＤｐ１〜Ｄｐ６の撮影の順序を求めて、この撮影順序を示すデータ（撮影順序データ）をメモリ１３に併せて記憶する。撮影順序データの一例としては、画像データＤｐ１〜Ｄｐ６のファイル名を撮影順序に従って順に並べた構成である。作業フィールドＦＤＷに表示される各画像データＤｐ１〜Ｄｐ６は、撮影順序データに従う順番で、左上から右方向に、右端に至ると行を替えて、左から右方向へと表示される。このステップＳ２００で実行される入力処理（上記撮影順序データを記憶する処理を含む）が、画像取込部３１（図１）および撮影順序認識部３２（図１）に対応する。
【００４６】
ステップＳ３００で実行されるパノラマ画像合成は、ステップＳ２００で入力した複数の画像データＤｐ１〜Ｄｐ６をつなぎ合わせて１枚のパノラマ画像を合成するものであり、詳細については後述する。なお、ここで作成されたパノラマ画像のデータＰＤは、ＨＤＤ４２に格納される。
【００４７】
ステップＳ４００で実行される印刷処理は、ステップＳ３００で作成されたパノラマ画像データＰＤを、印刷コマンドとしてプリンタドライバに出力するものである。この印刷の処理は、周知の構成であり、ここでは詳しく説明はしないが、これによって画像データＤｐ１〜Ｄｐ６をつなぎ合わせたパノラマ画像を表わすパノラマ画像データＰＤがプリンタ２９から印刷されることになる。
【００４８】
ステップＳ５００で実行される出力処理は、ステップＳ３００で作成されたパノラマ画像データＰＤを、外部機器に出力するものである。これによって上記パノラマ画像データＰＤが所望の外部機器に出力されることになる。
【００４９】
Ｂ−２．パノラマ画像合成処理：
ステップＳ３００で実行されるパノラマ画像合成処理について、以下詳細に説明する。図５ないし図６は、このパノラマ画像合成処理を示すフローチャートである。このルーチンに処理が移行すると、図示するように、ＣＰＵ１１は、まず、ステップＳ２００の入力処理で取り込んだ画像データＤｐｉの数ｎをカウントする処理を行なう（ステップＳ３１０）。例えば、図２に示した例では、数ｎは６となる。なお、図示はしないが、ここで数ｎが１である場合には、画像合成は不要であるとして、このパノラマ画像合成処理を終了する。
【００５０】
次いで、ＣＰＵ１１は、前記画像データＤｐｉの数ｎで取り得る画像データの配列を、候補配列Ｍとして算出する処理を行なう（ステップＳ３２０）。図７は、画像データＤｐｉの数ｎが６の場合に取り得る候補配列Ｍの一覧を示す説明図である。図中の（ａ）は、横一列の候補配列（以下、「６×１の候補配列」とも呼ぶ）であり、（ｂ）は、横方向に２つで縦方向に３つの候補配列（以下、「２×３の候補配列」とも呼ぶ）であり、（ｃ）は、横方向に３つで縦方向に２つの候補配列（以下、「３×２の候補配列」とも呼ぶ）であり、（ｄ）は、縦一列の候補配列（以下、「１×６の候補配列」とも呼ぶ）である。
【００５１】
図５に戻り、ＣＰＵ１１は、ステップＳ３２０の実行後、ステップＳ３２０で得られた複数の候補配列Ｍの中から、作成したいパノラマ画像を構成するのに正しい配列（以下、「正配列」と呼ぶ）を決定する正配列判定処理を実行する（ステップＳ３３０）。
【００５２】
図８は、正配列判定処理の詳細を示すフローチャートである。図示するように、ＣＰＵ１１は、この正配列判定処理に処理が移行すると、まず、変数ＸＳに値０を代入する処理を行なう（ステップＳ３３１）。次いで、ＣＰＵ１１は、ステップＳ３２０で得られた複数の候補配列Ｍのうちの一つを読み出す（ステップＳ３３２）。
【００５３】
続いて、ＣＰＵ１１は、ステップＳ２００で取り込んだ複数の画像データＤｐｉを、同じくステップＳ２００で記憶した撮影順序データの順序に従って、ステップＳ３３２で読み出した候補配列Ｍの形に組み合わせたときに、その候補配列Ｍの第１列目に含まれる複数の画像データのうちの隣接する２つの画像データの間の接続可能性Ｓを算出する処理を行なう（ステップＳ３３３）。
【００５４】
具体的には、ステップＳ２００で取り込んだ複数の画像データＤｐ１、Ｄｐ２、Ｄｐ３、Ｄｐ４、Ｄｐ５、Ｄｐ６が、この順序で撮影されたものであるとすると、ステップＳ３３２で読み出した候補配列Ｍが、「２×３の候補配列」である場合には、まず、図７の（ｂ）に示すように、画像データＤｐ１〜Ｄｐ６を並べる。次いで、第１列目に含まれる画像データＤｐ１，Ｄｐ３，Ｄｐ５のうちの隣接する２画像データの間、すなわち、画像データＤｐ１とＤｐ３との間と，画像データＤｐ３とＤｐ５との間の各接続可能性Ｓ１、Ｓ２を算出する。そうして、接続可能性Ｓ１、Ｓ２の平均値を求めて、この平均値を「２×３の候補配列」の接続可能性Ｓとして記憶する。
【００５５】
また、ステップＳ３３２で読み出した候補配列Ｍが、「３×２の候補配列」である場合には、まず、図７の（ｃ）に示すように、画像データＤｐ１〜Ｄｐ６を並べる。次いで、第１列目に含まれる２つの画像データＤｐ１，Ｄｐ４の間の接続可能性を算出して、この接続可能性を「３×２の候補配列」の接続可能性Ｓとして記憶する。
【００５６】
ステップＳ３３２で読み出した候補配列Ｍが、「１×６の候補配列」である場合には、まず、図７の（ｄ）に示すように、画像データＤｐ１〜Ｄｐ６を並べる。次いで、第１列目に含まれる画像データＤｐ１〜Ｄｐ６のうちの隣接する２画像データの間、すなわち、画像データＤｐ１とＤｐ２との間と，画像データＤｐ２とＤｐ３の間と、画像データＤｐ３とＤｐ４との間と，画像データＤｐ４とＤｐ５の間と、画像データＤｐ５とＤｐ６との間の各接続可能性Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５を算出する。そうして、接続可能性Ｓ１〜Ｓ５の平均値を求めて、この平均値を「１×６の候補配列」の接続可能性Ｓとして記憶する。
【００５７】
なお、ステップＳ３３２で読み出した候補配列Ｍが、「６×１の候補配列」である場合には、第１列目に含まれる画像データは２つないことから、接続可能性Ｓは値０として記憶する。
【００５８】
２つの画像データの間の接続可能性の算出は、２つの画像の位置関係を求める画像位置関係演算プログラムを用いて行なわれる。画像位置関係演算プログラムは、このパノラマ画像合成のソフトウェアに内蔵されているものであり、次のようなものである。
【００５９】
画像位置関係演算プログラムは、基本的には次の手順で構成されているものである。
（１）２つの画像データがどの方向で重複しているかを示すデータを外部から受け取る。
（２）入力された２つの画像をグレイスケールにそれぞれ変換する。
（３）上記グレイスケールの画像上でコーナーとなっているポイントを複数（例えば、１００〜２００）取得する。
（４）一方の画像のポイントについて、他方の画像で対応する可能性のあるポイントを上記（１）で取得した方向を考慮に入れて調べる。具体的には、上記方向を考慮した上で、一方の画像の各ポイントと、他方の画像の各ポイントとの全ての組み合わせについて、局所相互相関度を計算して、その計算値が、所定の閾値よりも大きい局所相互相関度となったポイントの組み合わせをマッチングする可能性の組み合わせとする。
【００６０】
（５）上記ポイントの組み合わせが１対１になるように処理する。あるポイント同士が正しい組み合わせであるとすれば、その近くにある回りのポイントも正しい組み合わせとなる可能性が高い。この特徴を利用して、あるポイントの組み合わせのマッチング度を周囲のポイントがどれだけ指示しているかから、正しいポイントの組み合わせを求める。
【００６１】
ステップＳ３３３では、実際には、２つの画像データの接続の方向を上から下への縦方向として指定した上で、上記（５）で得られた正しいポイントの組み合わせの数が、上記（３）で取得したポイントの総数に対してどれだけの割合があるかを計算して、その割合を接続可能性として算出している。
【００６２】
なお、上記画像位置関係演算プログラムでは、上記（１）に示したように、接続の方向を入力するようになっているが、これは処理速度の向上のためであり、上記（１）を不要とする構成とすることができる。この場合には、画像位置関係演算プログラムは、求めた接続可能性とともに、２画像の接続の方向を出力するようにすればよい。
【００６３】
図８に戻って、ＣＰＵ１１は、その後、ステップＳ３３４に処理を進めて、ステップＳ３３３で得られた接続可能性Ｓが、ステップＳ３３１で値０にセットした変数ＸＳよりも大きいか否かを判別する。ここで、接続可能性Ｓが変数ＸＳより大きいと判定された場合には、ＣＰＵ１１は、その接続可能性Ｓを変数ＸＳに代入するとともに、このときの候補配列Ｍを正配列ＭＭとして記憶する（ステップＳ３３５、Ｓ３３６）。その後、ＣＰＵ１１は、ステップＳ３３７に処理を進める。なお、ステップＳ３３４で、接続可能性Ｓが変数ＸＳ以下であると判定された場合には、ＣＰＵ１１は、ステップＳ３３５、Ｓ３３６の処理を実行することなく、ステップＳ３３７に処理を進める。
【００６４】
ステップＳ３３７では、ＣＰＵ１１は、ステップＳ３２０で得られた全ての候補配列ＭについてステップＳ３３２ないしＳ３３６の処理を終了したか否かを判定する。ここで未だ全て終了していないと判定されると、ステップＳ３３２に処理を戻して、次の候補配列Ｍを読み出して、この読み出した候補配列ＭについてのステップＳ３３２ないしＳ３３６の処理を実行する。一方、ステップＳ３３７で、全て終了したと判別されると、ステップＳ３３８に処理を進める。
【００６５】
ステップＳ３３８では、ＣＰＵ１１は、変数ＸＳが、所定値Ｓ０（例えば５０％）以下であるか否かを判別する。ここで、所定値Ｓ０以下であると判別された場合には、ステップＳ３３６で記憶された正配列ＭＭを、横一列の配列に変更する（ステップＳ３３９）。ステップＳ３３９の実行後、「リターン」に抜けて、この正配列判定処理を一旦終了する。一方、変数ＸＳが所定値Ｓ０を超えると判別された場合には、ステップＳ３３９を実行することなく、「リターン」に抜けて、この正配列判定処理を一旦終了する。
【００６６】
すなわち、以上のように構成された正配列判定処理によれば、候補配列Ｍが、縦一列の配列または縦横複数のタイル状の配列である場合には、最も接続可能性Ｓの高い候補配列Ｍが選択され、このときの接続可能性Ｓが所定値Ｓ０（５０％）を超える場合には、その選択された候補配列Ｍが、正配列ＭＭとして記憶される。一方、接続可能性Ｓが所定値Ｓ０以下である場合には、横一列の候補配列Ｍが、正配列ＭＭとして記憶される。
【００６７】
図５に戻り、ステップＳ３３０の正配列判定処理の実行後、次いで、ＣＰＵ１１は、ステップＳ２００の入力処理で取り込んだ画像データＤｐｉを、同じくステップＳ２００で記憶した撮影順序に従って、ステップＳ３３０で求めた正配列に並べて表示する処理を行なう（ステップＳ３４０）。
【００６８】
図９は、合成処理用のダイアログボックスＤＢ１を示す説明図である。図示するように、このダイアログボックスＤＢ１の左半分には、画像データＤｐｉを正配列に並べた様子を表示する配列表示フィールドＦＤ１が設けられ、右半分には、合成結果を表示する合成結果表示フィールドＦＤ２が設けられている。配列表示フィールドＦＤ１の下方には、［作成］ボタンＢＴ２１が設けられ、合成結果表示フィールドＦＤ２の下方には、［終了］ボタンＢＴ２２が設けられている。
【００６９】
配列表示フィールドＦＤ１には、矩形のブロックがタイル状に表示されている。図５のステップＳ３４０では、ステップＳ３３０で求めた正配列と対応する複数のブロックに対して、ステップＳ２００でメモリ１３に記憶された撮影順序データの順序に従って画像データＤｐｉをそれぞれ表示する。なお、この実施例においては、前提条件として、前述した主撮影方向方式で撮影がなされているという条件があることから、正配列に画像データＤｐｉを並べる際にも、この主撮影方向方式と同様な順序で並べられる。すなわち、左上から右方向に順に移動して、右端に至ると下方向に一つ移動して、左端から右方向に順に移動するというに、右方向への移動を繰り返してタイル状に画像データＤｐｉは並べられる。この結果、図２の例示の場合には、配列表示フィールドＦＤ１の左上（第１行、第１列目）のブロックに画像データＤｐ１が、第１行、第２列目のブロックに画像データＤｐ２が、第１行、第３列目のブロックに画像データＤｐ３が、第２行、第１列目のブロックに画像データＤｐ４が、第２行、第２列目のブロックに画像データＤｐ５が、第２行、第３列目のブロックに画像データＤｐ６がそれぞれ表示される。
【００７０】
図５に戻り、ステップＳ３４０の実行後、ＣＰＵ１１は、ダイアログボックスＤＢ１に備えられた［作成］ボタンＢＴ２１が、操作者によるマウス２４の操作によりクリックされたか否かを判別する（ステップＳ３５０）。ここで、クリックされていないと判別されると、ステップＳ３５０の処理を繰り返して、操作者によるクリックがなされるのを待つ。ステップＳ３５０で、クリックされたと判別されると、ＣＰＵ１１は、変数ｉに値１を代入する処理を行ない（ステップＳ３６０）、その後、図６のステップＳ３７０に処理を進める。
【００７１】
図７に示すように、ステップＳ３７０では、ステップＳ２００でメモリ１３に記憶された撮影順序データを参照して、撮影順序が変数ｉで定まるｉ番目の画像データＤｐｉを読み出す処理を行なう。
【００７２】
続いて、ＣＰＵ１１は、ステップＳ２７０で読み出した画像データＤｐｉを、ステップＳ３３０で求めた正配列におけるｉ番目の位置に配置して、隣接画像との間をつなぎ合わせる処理を行なう。ここで言う「正配列におけるｉ番目の位置」というのは、前述した主撮影方向方式に従う順位である。図２に示した例では、左上（第１行−第１列目）、第１行−第２列目、第１行−第３列目、第２行−第１列目、第２行−第２列目、第２行−第３列目という順に順位が定められている。「隣接画像との間」というのは、これまでに配置してきたｉ−１番目までの画像の中の隣接する画像との間を言う。
【００７３】
つなぎ合わせの処理は、画像位置関係演算プログラムを用いて２つの画像の位置関係を求めて、この位置関係から重複する部分を重ね合わせることで、２つの画像が自然なつながりで接続されるように合成する。この合成結果は、メモリ１３に一時的に格納され、この時点では、ディスプレイ２０への表示はない。
【００７４】
次いで、ＣＰＵ１１は、ステップＳ３８０での画像のつなぎ合わせの処理でエラーが発生したか否かを判定する（ステップＳ３９０）。詳細には、つなぎ合わせの処理を行なうに際して、画像位置関係演算プログラムで２つの画像の位置関係が対応しないと判定されたとき、すなわち前述したように求められる接続可能性が、所定の閾値を下回ると判定されたときは、その２つの画像のつなぎ合わせは不可能であるとして、処理結果を"エラー"と出力する。ステップＳ３９０では、"エラー"の処理結果を受けると、そのエラーが発生した２つの画像データの間に、つなぎ合わせが不可能である旨を示すマークＭＫを表示する処理を行なう（ステップＳ３９１）。
【００７５】
図１０は、２つの画像データの間でつなぎ合わせが不可能であった旨を示すマークＭＫの一例を示す説明図である。図示するように、このマークＭＫは、「×」印である。画像データＤｐ４とＤｐ５との間のつなぎ合わせが不可能であったとして「×」印のマークＭＫが表示される。操作者は、２つの画像の間に「×」印のマークＭＫを発見することで、両者の画像は自動的にうまくつなぎ合わせることができないことを知ることができる。なお、このマークＭＫが表示されたときには、図示するように、配列表示フィールドＦＤ１の下方に［特徴点指定］ボタンＢＴ２３が現われる。
【００７６】
その後、ＣＰＵ１１は、［特徴点指定］ボタンＢＴ２３が、操作者によるマウス２４の操作によりクリックされたか否かを判別する（ステップＳ３９２）。ここで、クリックされていないと判別されると、ステップＳ３９２の処理を繰り返して、操作者によるクリックがなされるのを待つ。ステップＳ３９２で、クリックされたと判別されると、キーボード２２とマウス２４からの操作者による入力操作に従って、前記エラーが発生した２つの画像データに対して、両者をつなぎ合わせる特徴点を指定する処理を行なう（ステップＳ３９３）。
【００７７】
図１１は、特徴点指定用のダイアログボックスＤＢ２を示す説明図である。このダイアログボックスＤＢ２は、合成処理用のダイアログボックスＤＢ１に設けられた［特徴点指定］ボタンＢＴ２３が、クリックされるのを受けて表示される。図示するように、このダイアログボックスＤＢ２の左半分には、エラーが発生した２つの画像データの内の一方側の画像データを表示する第１画像表示フィールドＦＤ１１が、右半分には、エラーが発生した２つの画像データの内の他方側の画像データを表示する第２画像表示フィールドＦＤ１２がそれぞれ表示される。
【００７８】
図示するように、第１画像表示フィールドＦＤ１１に表示された一方側の画像（第１画像）のうちの重複部分Ｗ１に、所定の特徴点Ｘ１を、操作者はマウス２４によりクリックすることで指定して、次いで、この指定した特徴点に対応する特徴点Ｘ２を、第２画像表示フィールドＦＤ１２に表示された他方側の画像（第２画像）のうちの重複部分Ｗに、操作者はマウス２４によりクリックすることで指定する。特徴点Ｘ１，Ｘ２は、各画像における共通する部位（図示の例では、家屋の屋根の左端部）であり、操作者による視認によりその位置が決定される。両画像に指定された特徴点Ｘ１，Ｘ２は１対１で対応される。この特徴点Ｘ１，Ｘ２の組合せを、図示はしていないが複数箇所（例えば４箇所）にわたって行なう。
【００７９】
図６に戻って、ステップＳ３９３の実行後、ＣＰＵ１１は、ステップＳ３９３で指定した両画像における複数組の特徴点Ｘ１，Ｘ２の間の対応関係から、両画像をつなぎ合わせる処理を行なう（ステップＳ３９４）。詳細には、特徴点Ｘ１，Ｘ２が組毎にそれぞれ一致するように両画像を重ね合わせることで、両画像が自然なつながりで接続されるように合成する。なお、ステップＳ３９３で、特徴点の指定が不可能であった場合等、両画像のつなぎ合わせが不可能と操作者により判断された場合には、ステップＳ３９５で接続不能と判定されて、ステップＳ３９６に処理を進める。ステップＳ３９６では、ＣＰＵ１１は、「接続不能」である旨を、合成処理用のダイアログボックスＤＢ１（図９参照）の合成結果表示フィールドＦＤ２に表示する。
【００８０】
一方、ステップＳ３９０で、画像のつなぎ合わせの処理がエラーでないと判定された場合、または、ステップＳ３９５で、操作者によるつなぎ合わせが不可能でないと判定された場合には、ＣＰＵ１１は、変数ｉを値１だけインクリメントして（ステップＳ３９７）、その変数ｉが、画像データＤｐｉの数ｎより大きいか否かを判定する（ステップＳ３９８）。
【００８１】
ステップＳ３９８で、変数ｉが数ｎ以下であると判定された場合には、ステップＳ２００で入力した全ての画像データＤｐ１〜Ｄｐｎについての合成が未だ終わっていないとして、ステップＳ３７０に処理を戻して、ステップＳ３７０ないしＳ３９７の処理を繰り返し実行する。一方、ステップＳ３９８で、変数ｉが数ｎを上回ると判定された場合には、全ての画像データＤｐ１〜Ｄｐｎについての合成が終了したとして、メモリ１３に格納された全ての画像データＤｐ１〜Ｄｐｎの合成結果をパノラマ画像として、合成処理用のダイアログボックスＤＢ１の合成結果表示フィールドＦＤ２に表示する（ステップＳ３９９）。
【００８２】
図１２は、合成して得られたパノラマ画像の表示を行なう合成処理用のダイアログボックスＤＢ１を示す説明図である。図示するように、配列表示フィールドＦＤ１に表示した配列の画像データＤｐｉを合成した合成結果がパノラマ画像として、合成結果表示フィールドＦＤ２に表示される。
【００８３】
ステップＳ３９６またはＳ３９９の実行後、「リターン」に抜けて、このパノラマ画像合成処理を一旦終了する。
【００８４】
以上のように構成されたパノラマ画像合成処理のステップＳ３１０が画像数カウント部３３（図１）に、ステップＳ３２０が候補配列算出部３４（図１）に、ステップＳ３３０が判定部３５（図１）に、ステップＳ３６０ないしＳ３９９が画像合成部３６（図１）にそれぞれ対応する。
【００８５】
Ｃ．作用・効果：
以上のように構成されたこの実施例のコンピュータシステムによれば、パノラマ画像の作成に用いる画像データＤｐｉの数ｎから、パノラマ画像が取り得る可能性のある配列が、候補配列Ｍとして求められる。複数の画像データＤｐｉは、撮影した画像の一部が重複するように、主撮影方向である横方向に撮影範囲を移動させながら撮影したものである。複数の画像データＤｐｉを、その撮影の順序に従って各候補配列Ｍの形に合成したときの正否が、主撮影方向に直交する縦方向における隣接する２つの画像データの接続可能性Ｓから判定される。接続可能性Ｓが高いと判定された候補配列Ｍは正配列ＭＭとして決定され、複数の画像データＤｐｉは、正配列ＭＭとなるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成される。
【００８６】
このために、複数の画像データＤｐｉをどのような配列で並べるかを、操作者が一々指定しなくても、パノラマ画像を構成する配列が、画像データの接続可能性から自動的に決定される。したがって、操作者による操作の手数を減らして、作業性の向上を図ることができる。
【００８７】
また、この実施例では、パノラマ画像を合成するに先立ち、正配列判定処理で自動的に決定された正配列をダイアログボックスＤＢ１の配列表示フィールドＦＤ１に表示するように構成されている。このために、自動的に決定された配列が正しいかどうかを、操作者が視認することができることから、パノラマ画像を誤った配列で合成してしまう失敗を回避することができる。
【００８８】
２．第２実施例：
本発明の第２実施例について次に説明する。この第２実施例のコンピュータシステムは、第１実施例のコンピュータシステムと比較して、パーソナルコンピュータ１０のＣＰＵ１１にて実行されるパノラマ画像合成処理（第１実施例では、図５〜図６で示したもの）の構成が相違し、その他のソフトウェア構成やハードウェア構成については同一の構成を備える。したがって、第１実施例と同一の構成については同一の符号を用いて以下の説明を行なうことにする。
【００８９】
図１３は、第２実施例におけるパノラマ画像合成処理の詳細を示すフローチャートである。このパノラマ画像合成処理に処理が移行すると、図示するように、ＣＰＵ１１は、まず、ステップＳ２００の入力処理で取り込んだ画像データＤｐｉの数ｎをカウントする処理を行なう（ステップＳ５１０）。この処理は、第１実施例のステップＳ３１０と同一である。
【００９０】
次いで、ＣＰＵ１１は、変数ｉに値２を代入する処理を行ない（ステップＳ５２０）、その後、ステップＳ２００でメモリ１３に記憶された撮影順序データを参照して、撮影順序が変数ｉで定まるｉ番目の画像データＤｐｉを読み出す処理を行なう（ステップＳ５３０）。ステップＳ５３０の処理は、第１実施例のステップＳ５３０と同一である。
【００９１】
その後、ＣＰＵ１１は、ステップＳ５３０で読み出した画像データＤｐｉと、前回のステップＳ５３０の実行時に読み出したｉ―１番目の画像データＤｐｉ−１との接続可能性Ｓａを算出する処理を行なう（ステップＳ５４０）。２つの画像データの間の接続可能性の算出は、第１実施例と同様に、画像位置関係演算プログラムを用いて行なわれる。このとき、２つの画像データの接続の方向を左から右への横方向として指定した上で接続可能性を求める。この算出した接続可能性Ｓａが、予め定めた閾値である所定値Ｓ０（例えば、５０％）を上回るか否かを判別する（ステップＳ５５０）。
【００９２】
ステップＳ５５０で、接続可能性Ｓａが所定値Ｓ０を上回ると判別された場合には、撮影順序が連続する２つの画像データＤｐｉ，Ｄｐｉ−１の間でのつなぎ合わせが可能であるとして、ＣＰＵ１１は、ステップＳ５６０に処理を進める。ステップＳ５６０では、変数ｉを値１だけインクリメントして、その変数ｉが、画像データＤｐｉの数ｎより大きいか否かを判定して（ステップＳ５７０）、変数ｉが数ｎ以下であると判定された場合には、ステップＳ５３０に処理を戻して、ステップＳ５３０ないしＳ５６０の処理を繰り返し実行する。
【００９３】
一方、ステップＳ５７０で、変数ｉが数ｎを上回ると判定された場合には、全ての画像データＤｐ１〜Ｄｐｎについて隣接する画像データ間のつなぎ合わせが可能であるとして、パノラマ画像を構成する正配列ＭＭは、横一列の配列であると判定する（ステップＳ５８０）。
【００９４】
ステップＳ５５０で、接続可能性Ｓａが所定値Ｓ０以下であるあると判別された場合には、撮影順序が連続する２つの画像データＤｐｉ，Ｄｐｉ−１の間でのつなぎ合わせが不可能であるとして、ＣＰＵ１１は、ステップＳ５９０に処理を進める。ステップＳ５９０では、ステップＳ５３０で読み出した画像データＤｐｉと、配列の左上（第１行、第１列目）の画像データＤｐ１との接続可能性Ｓｂを算出する処理を行なう。２つの画像データの間の接続可能性の算出は、ステップＳ５４０と同様に、画像位置関係演算プログラムを用いて行なわれる。このとき、２つの画像データの接続の方向を上から下への縦方向として指定した上で接続可能性を求める。この算出した接続可能性Ｓｂが、所定値Ｓ０（例えば、５０％）を上回るか否かを判別する（ステップＳ６００）。
【００９５】
ステップＳ６００で、接続可能性Ｓｂが所定値Ｓ０を上回ると判別された場合には、画像データＤｐｉと左上の画像データＤｐ１との間でつなぎ合わせが可能であるとして、ＣＰＵ１１は、ステップＳ６１０に処理を進める。図１４に示すように、画像データＤｐｉが、一つ前に読み出した画像データＤｐｉ−１との間でつなぎ合わせが不可能であり、第１番目に読み出した配列の左上の画像データＤｐ１との間でつなぎ合わせが可能であると言うことは、この画像データＤｐｉで行が変更になったことが判る。
【００９６】
したがって、ステップＳ６１０では、ＣＰＵ１１は、正配列ＭＭの列数ａを、変数ｉから値１だけ引いて求める。図１４の例では、列数ａは値３となる。その後、ＣＰＵ１１は、画像データＤｐｉの数ｎを列数ａで割ることで、正配列ＭＭの行数ｂを求める（ステップＳ６２０）。ＣＰＵ１１は、ステップＳ５８０またはＳ６２０の実行後、第１実施例と同一のステップＳ３４０ないしＳ３９８の処理を実行して、このルーチンの処理を一旦終了する。
【００９７】
一方、ステップＳ６００で、接続可能性Ｓｂが所定値Ｓ０以下であると判別された場合には、画像データＤｐｉと左上の画像データＤｐ１との間でつなぎ合わせが不可能であり、かつステップＳ５５０でも、撮影順序が連続する２つの画像データＤｐｉ，Ｄｐｉ−１の間でのつなぎ合わせが不可能であるということから、接続可能性ＳａまたはＳｂの判定に誤りがあったとして、エラー処理を行なう（ステップＳ６３０）。エラー処理としては、エラーである旨を操作者に報知する等の処理がなされる。
【００９８】
以上のように構成されたこの第２実施例のコンピュータシステムによれば、パノラマ画像の作成に用いる複数の画像データＤｐｉの中から、縦、横のうちの主撮影方向と相違する側の方向（この実施例では、縦方向）において正当につなぎ合わされる左上の画像データＤｐ１と第４番目の画像データＤｐ４を検索して、その画像データについての撮影順序における各順位に基づいて、パノラマ画像を構成する画像データの横方向の配列（列数ａ）が求められる。そうして、画像データＤｐｉの数ｎとに基づいて、縦方向の配列（行数ｂ）についても求められる。その後、複数の画像データＤｐｉは、ａ×ｂの配列となるように、前記撮影の順序に従って、隣接する画像データ間のつなぎを合わせつつ合成される。
【００９９】
このために、第１実施例と同様に、複数の画像データＤｐｉをどのような配列で並べるかを、操作者が一々指定しなくても、パノラマ画像を構成する配列が、画像データの接続可能性から自動的に決定される。したがって、操作者による操作の手数を減らして、作業性の向上を図ることができる。
【０１００】
なお、この第２実施例の第１の変形例として、横方向の配列（列数ａ）だけを求めて、縦方向の配列（行数ｂ）については求めない構成とすることもできる。この構成によっても、画像を合成する際に、左上から前述した主撮影方向方式によって画像データを順につなぎ合わせていけば、行数ｂを必ずしも算出しなくても全ての画像データの合成が可能である。
【０１０１】
また、この第２実施例では、第１列目における第１行目と第２行目の間の画像データのつながりに基づいて、配列を求めていたが、これに換えて、第１列目における第２行目と第３行目の間の画像データのつながりに基づいて、配列を求める構成とすることもできる。同様に、第１列目の他の箇所の隣接する２つの画像データのつながりをみる構成としてもよいし、あるいは、他の列に換えることもできる。
【０１０２】
３．他の実施形態：
なお、この発明は上記の第１、第２実施例や変形例に限られるものではなく、本発明の要旨を逸脱しない範囲において種々なる態様にて実施することが可能であり、例えば次のような変形も可能である。
【０１０３】
（１）前記第１、第２実施例では、前提条件として、被写体を前述した主撮影方向方式の撮影順序で撮影を行なっており、この順序に一致させた順序で、複数の画像データのつなぎ合わせを行なっている。図１５は、そのつなぎ合わせの順序を示すものである。これに対して、他の実施形態として、撮影の前提条件を変更して、図１６に示すように、画像データのつなぎ合わせの順序を様々に変えることができる。
【０１０４】
図１６の（ａ）は、つなぎ合わせる画像を、左上から右方向に順に移動して、右端に至ると、副撮影方向である下方向に一つ移動して、右端から左方向に移動する。こうして、一筆書きの蛇行状となる順序でつなぎ合わせを行なう構成とすることもできる。もちろん、前提条件として、被写体を撮影する順序は、つなぎ合わせの順序と一致させて蛇行状とする必要がある。
【０１０５】
なお、前記第１、第２実施例や上記他の実施形態では、主撮影方向は、横方向となっているが、これに換えて、主撮影方向を縦方向とすることもできる。すなわち、図１６の（ｂ）に示すように、つなぎ合わせる画像を、左上から主撮影方向である下方向に順に移動して、下端に至ると、副撮影方向である右方向に一つ移動して、同様に、上端から主撮影方向である下方向に順に移動するという順序でつなぎ合わせる構成とすることもできる。
【０１０６】
また、図１６の（ｃ）に示すように、つなぎ合わせる画像を、左上から下方向に順に移動して、下端に至ると、副撮影方向である右方向に一つ移動して、下端から上方向に移動するという蛇行状の順序でつなぎ合わせる構成とすることもできる。なお、図１６の（ｂ）の例も（ｃ）の例も、被写体を撮影する順序は、つなぎ合わせの順序と一致させる必要がある。
【０１０７】
（２）前記第１、第２実施例や変形例では、撮影順序認識手段として、各画像データに付属されたタグ情報の「撮影日時」のデータに従って、撮影の順序を認識するように構成していたが、これに替えて、デジタルカメラ２６の記憶媒体への格納順に対応したデータファイル名に従って撮影の順序を認識する構成としてもよい。また、撮影順序を示すデータをメモリ１３に記憶するように構成されていたが、これに換えて、撮影順序データをメモリ１３に記憶することなしに、画像データを記憶媒体から読み出す際に一々、各画像データに付属された「撮影日時」のデータを見て撮影順序を認識して、読み出す画像データを定める構成とすることもできる。
【０１０８】
（３）前記実施例では、パノラマ画像を作成するために用いる画像データＤｐｉは、デジタルカメラ２６により撮影したものとしたが、これに替えて、カラースキャナ等を用いて獲得した銀塩写真の画像データであってもよい。要は、なんらかの撮影装置（例えば、静止画の撮影機能を持ったビデオカメラ）で撮影して得られた撮影画像を獲得する構成であれば、どのような構成であってもよい。例えば、ＨＤＤ１５等の記憶装置に予め用意したものに換えて、ネットワークを介して外部から取り込んだものであってもよい。また、必ずしもカラーの画像データである必要もなく、白黒の画像データに適用することもできる。
【０１０９】
本発明の参考例として次の構成を開示することもできる。すなわち、この構成は、パノラマ画像を作成するために用いる全ての画像データＤｐｉから抽出した２つの画像データの全ての組合せについて、両画像データの接続可能性を検出して、接続可能性の高いもの同士をつなぎあわせることで、最終的に正しい配列に合成して、パノラマ画像を作成するというものである。この構成によれば、高速のコンピュータ装置を用いることで、複数の画像データから自動的にパノラマ画像を作成することができる。翻って、前述してきた本発明の第１、第２実施例や変形例では、家庭に普及しているようなパーソナルコンピュータであっても、パノラマ画像を簡単な操作によって作成することができる。
【図面の簡単な説明】
【０１１０】
【図１】本発明の第１実施例を適用するコンピュータシステムの概略構成を示す説明図である。
【図２】デジタルカメラ２６によって撮影された複数の撮影画像Ｐ１〜Ｐ６の一例を示す説明図である。
【図３】コンピュータプログラムに従う制御処理の全体的な流れを示すフローチャートである。
【図４】アプリケーションウィンドウＷＤを示す説明図である。
【図５】パノラマ画像合成処理の前半部分を示すフローチャートである。
【図６】パノラマ画像合成処理の後半部分を示すフローチャートである。
【図７】画像データＤｐｉの数ｎが６の場合に取り得る候補配列の一覧を示す説明図である。
【図８】正配列判定処理の詳細を示すフローチャートである。
【図９】合成処理用のダイアログボックスＤＢ１を示す説明図である。
【図１０】２つの画像データの間でつなぎ合わせが不可能であった旨を示すマークＭＫの一例を示す説明図である。
【図１１】特徴点指定用のダイアログボックスＤＢ２を示す説明図である。
【図１２】合成して得られたパノラマ画像の表示を行なう合成処理用のダイアログボックスＤＢ１を示す説明図である。
【図１３】第２実施例におけるパノラマ画像合成処理の詳細を示すフローチャートである。
【図１４】上記パノラマ画像合成処理の内容を示す説明図である。
【図１５】第１、第２実施例における画像データのつなぎ合わせの順序を示す説明図である。
【図１６】他の実施形態における画像データのつなぎ合わせの順序を示す説明図である。
【符号の説明】
【０１１１】
１０...パーソナルコンピュータ
１１...ＣＰＵ
１２...バス
１３...メモリ
１４...表示画像メモリ
１５...ハードディスクドライブ
１６...入力制御ユニット
１７...表示制御ユニット
１８...出力制御ユニット
２０...ディスプレイ
２２...キーボード
２４...マウス
２６...デジタルカメラ
２８...ＣＤドライブ
２９...プリンタ
３１...画像取込部
３２...撮影順序認識部
３３...画像数カウント部
３４...候補配列算出部
３５...判定部
３６...画像合成部
Ｄｐ１〜Ｄｐ６...画像データ
Ｍ...候補配列
ＭＭ...正配列
Ｐｒ...コンピュータプログラム
Ｓ...接続可能性
ＷＤ...アプリケーションウィンドウ
ＤＢ１...合成処理用のダイアログボックス
ＦＤ１...配列表示フィールド
ＦＤ２...合成結果表示フィールド
ＢＴ２１...［作成］ボタン
ＢＴ２２...［終了］ボタン
ＢＴ２３...［特徴点指定］ボタン
ＤＢ２...特徴点指定用のダイアログボックス
【図１】
2006099497.tif 000003
【図２】
2006099497.tif 000004
【図３】
2006099497.tif 000005
【図４】
2006099497.tif 000006
【図５】
2006099497.tif 000007
【図６】
2006099497.tif 000008
【図７】
2006099497.tif 000009
【図８】
2006099497.tif 000010
【図９】
2006099497.tif 000011
【図１０】
2006099497.tif 000012
【図１１】
2006099497.tif 000013
【図１２】
2006099497.tif 000014
【図１３】
2006099497.tif 000015
【図１４】
2006099497.tif 000016
【図１５】
2006099497.tif 000017
【図１６】
2006099497.tif 000018