(57)【特許請求の範囲】
【請求項１】
第１の画像と当該第１の画像の合成対象である第２の画像とを取得する取得手段と、
前記取得手段により取得された第１の画像と第２の画像とに基づいて、当該第２の画像との画像合成の基準となる前記第１の画像内の経路を探索する経路探索手段と、
前記経路探索手段により探索された経路における前記第１の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段と、
前記範囲探索手段により探索された画素の範囲に基づき、前記第２の画像に対する前記第１の画像の透過度を設定する透過度設定手段と、
前記透過度設定手段により設定された透過度に基づいて、前記第１の画像と前記第２の画像とを合成する合成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記取得手段により取得された第１の画像と第２の画像とから、前記第１の画像内の各注目画素と第１の画像及び前記第２の画像の少なくとも何れかにおける当該各注目画素に関連する画素との類似度を示すエネルギーを算出するエネルギー算出手段を更に備え、
前記経路探索手段は、前記エネルギー算出手段により算出された各注目画素のエネルギーに基づいて、前記画像合成の基準となる前記第１の画像内の経路を探索することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記経路探索手段は、前記エネルギー算出手段により算出された各注目画素のエネルギーが最小となる経路を前記画像合成の基準となる経路として探索することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記エネルギー算出手段により算出された注目画素毎のエネルギーの２次元平面上の分布をエネルギーマップとして生成するエネルギーマップ生成手段を更に備え、
前記範囲探索手段は、前記エネルギーマップ生成手段により生成されたエネルギーマップに基づいて、前記画像合成の基準となる前記範囲を探索することを特徴とする請求項２又は３に記載の画像処理装置。
【請求項５】
前記範囲探索手段は、前記経路探索手段により探索された経路における画素と前記経路と直交方向における当該画素以外の画素のエネルギーとの差分が所定の平坦度合いである範囲を前記類似する値を有する画素の範囲として探索することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記範囲探索手段により探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定手段を更に備え、
前記透過度設定手段は、前記ブレンド幅決定手段により決定されたブレンド幅に基づき、前記第２の画像に対する前記第１の画像の透過度を設定することを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項７】
前記透過度設定手段による透過度を設定するためのマップを生成するマップ生成手段を更に備え、
前記透過度設定手段は、前記マップ生成手段により生成されるマップに対応した透過度を設定することを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記マップ生成手段は、前記経路探索手段により探索された経路を起点として、所定方向に向かって、前記透過度が変化するマップを生成することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記合成手段は、前記第１の画像及び前記第２の画像の一部同士を合成することで広角画像のデータを生成することを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
画像処理装置が実行する画像処理方法であって、
第１の画像と当該第１の画像の合成対象である第２の画像とを取得する取得ステップと、
前記取得ステップにより取得された第１の画像と当該第１の画像の合成対象である第２の画像とに基づいて、当該第２の画像との画像合成の基準となる前記第１の画像内の経路を探索する経路探索ステップと、
前記経路探索ステップにて探索された経路における前記第１の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索ステップと、
前記範囲探索ステップにて探索された画素の範囲に基づき、前記第２の画像に対する前記第１の画像の透過度を設定する透過度設定ステップと、
前記透過度設定ステップにて設定された透過度に基づいて、前記第１の画像と前記第２の画像とを合成する合成ステップと、
を含むことを特徴とする画像処理方法。
【請求項１１】
コンピュータを、
第１の画像と当該第１の画像の合成対象である第２の画像とを取得する取得手段、
前記取得手段により取得された第１の画像と当該第１の画像の合成対象である第２の画像とに基づいて、当該第２の画像との画像合成の基準となる前記第１の画像内の経路を探索する経路探索手段、
前記経路探索手段により探索された経路における前記第１の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段、
前記範囲探索手段により探索された画素の範囲に基づき、前記第２の画像に対する前記第１の画像の透過度を設定する透過度設定手段、
前記透過度設定手段により設定された透過度に基づいて、前記第１の画像と前記第２の画像とを合成する合成手段、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来より、連続して撮影された複数の画像の同一の特徴点が一致するように、当該複数の画像のデータを合成することによって、パノラマ画像等の広角画像のデータを生成する技術が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２８２１００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、一般に、複数の画像同士で、シェーディングによる影響や、シャッタ釦の押下タイミングや、撮像素子の露光のタイミング等の撮像条件を完全に一致させることは困難である。このため、複数の画像のデータを合成して１枚の広角画像のデータを生成する場合、合成後の広角画像のデータは、複数の画像の各々の撮像条件の相違による露出値の差の影響を受ける。
また、撮像装置を２次元に動かしながら複数の画像を撮像し、これら複数の画像のデータを合成して広角画像のデータを生成する場合がある。この場合、上記特許文献１の合成の技術を応用しても、生成された広角画像のデータは、複数の画像同士で各々露出値が異なるため、特徴点の位置合わせが正確に行えず、画像の繋ぎ合わせの部分に輝度ムラ等が生じる場合があった。このため、合成後の広角画像が表示されると鑑賞者は違和感を覚えてしまうという虞がある。
【０００５】
本発明は、このような状況に鑑みてなされたものであり、合成後の広角画像の繋ぎ合わせの部分の違和感を低減することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の一態様の画像処理装置は、
第１の画像と当該第１の画像の合成対象である第２の画像とを取得する取得手段と、
前記取得手段により取得された第１の画像と第２の画像とに基づいて、当該第２の画像との画像合成の基準となる前記第１の画像内の経路を探索する経路探索手段と、
前記経路探索手段により探索された経路における前記第１の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段と、
前記範囲探索手段により探索された画素の範囲に基づき、前記第２の画像に対する前記第１の画像の透過度を設定する透過度設定手段と、
前記透過度設定手段により設定された透過度に基づいて、前記第１の画像と前記第２の画像とを合成する合成手段と
を備えたことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係る撮像装置のハードウェアの構成を示すブロック図である。
【図２】ワイド画像のデータの生成手法の一例を示す模式図である。
【図３】撮像装置のワイド画像合成処理の概略を示す模式図である。
【図４】ワイド画像合成処理における垂直方向合成処理の概略を示す模式図である。
【図５】図１の撮像装置の機能的構成のうち、ワイド画像合成処理を実行するための機能的構成を示す機能ブロック図である。
【図６】エネルギーマップ生成部におけるエネルギーマップの生成手法の一例を示す模式図である。
【図７】エネルギー最小経路探索部におけるエネルギー最小経路を探索する手法の一例を示す模式図である。
【図８】範囲探索部のエネルギー最小経路における一の画像のデータ内の各注目画素の値と類似する値を有する画素の範囲を探索する手法の一例を示す模式図である。
【図９】αブレンド幅決定部におけるブレンド幅を決定する手法の一例を示す模式図である。
【図１０】αブレンドマップ生成部におけるαブレンドマップを生成する手法の一例を示す模式図である。
【図１１】撮像装置が実行するワイド画像合成処理の流れを説明するフローチャートである。
【図１２】撮像装置が実行する垂直方向合成処理の流れを説明するフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、画像処理装置の一例として撮像装置１について、図面を用いて説明する。
【００１０】
図１は、本発明の一実施形態に係る撮像装置１のハードウェアの構成を示すブロック図である。
撮像装置１は、例えばデジタルカメラして構成される。
【００１１】
撮像装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３と、画像処理部１４と、バス１５と、入出力インターフェース１６と、撮像部１７と、加速度センサ１８、入力部１９と、出力部２０と、記憶部２１と、通信部２２と、ドライブ２３と、を備えている。
【００１２】
ＣＰＵ１１は、ＲＯＭ１２に記録されているプログラム、又は、記憶部２１からＲＡＭ１３にロードされたプログラムに従って各種の処理を実行する。
【００１３】
ＲＡＭ１３には、ＣＰＵ１１が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【００１４】
画像処理部１４は、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）や、ＶＲＡＭ（Ｖｉｄｅｏ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等から構成されており、ＣＰＵ１１と協働して、画像のデータに対して各種画像処理を施す。
【００１５】
ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３及び画像処理部１４は、バス１５を介して相互に接続されている。このバス１５にはまた、入出力インターフェース１６も接続されている。入出力インターフェース１６には、撮像部１７、加速度センサ１８、入力部１９、出力部２０、記憶部２１、通信部２２及びドライブ２３が接続されている。
【００１６】
撮像部１７は、図示はしないが、光学レンズ部と、イメージセンサと、を備えている。
【００１７】
光学レンズ部は、被写体を撮像するために、光を集光するレンズ、例えばフォーカスレンズやズームレンズ等で構成される。
フォーカスレンズは、イメージセンサの受光面に被写体像を結像させるレンズである。ズームレンズは、焦点距離を一定の範囲で自在に変化させるレンズである。
光学レンズ部にはまた、必要に応じて、焦点、露出、ホワイトバランス等の設定パラメータを調整する周辺回路が設けられる。
【００１８】
イメージセンサは、光電変換素子や、ＡＦＥ（Ａｎａｌｏｇ  Ｆｒｏｎｔ  Ｅｎｄ）等から構成される。
光電変換素子は、例えばＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）型の光電変換素子等から構成される。光電変換素子には、光学レンズ部から被写体像が入射される。そこで、光電変換素子は、被写体像を光電変換（撮像）して画像信号を一定時間蓄積し、蓄積した画像信号をアナログ信号としてＡＦＥに順次供給する。
ＡＦＥは、このアナログの画像信号に対して、Ａ／Ｄ（Ａｎａｌｏｇ／Ｄｉｇｉｔａｌ）変換処理等の各種信号処理を実行する。各種信号処理によって、ディジタル信号が生成され、撮像部１７の出力信号として出力される。
【００１９】
ここで、１回の撮像動作により、撮像部１７から出力される出力信号を、以下、「フレーム画像のデータ」と呼ぶ。即ち、連写動作とは複数回の撮像動作の繰り返しであることから、連写動作により、複数のフレーム画像のデータが撮像部１７から出力される。
本実施形態では、フレーム画像として、アスペクト比（横縦比）が４：３のノーマル画像が採用されている。
【００２０】
加速度センサ１８は、撮像装置１の速度や加速度を検出可能に構成される。
入力部１９は、各種釦等で構成され、ユーザの指示操作に応じて各種情報を入力する。
出力部２０は、ディスプレイやスピーカ等で構成され、画像や音声を出力する。本実施形態の出力部２０には、ノーマル画像を画面全体に表示できるように、アスペクト比（横縦比）が４：３のディスプレイが設けられている。
【００２１】
記憶部２１は、ハードディスク或いはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、各種画像のデータを記憶する。
通信部２２は、インターネットを含むネットワークを介して他の装置（図示せず）との間で行う通信を制御する。
【００２２】
ドライブ２３には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア３１が適宜装着される。ドライブ２３によってリムーバブルメディア３１から読み出されたプログラムは、必要に応じて記憶部２１にインストールされる。また、リムーバブルメディア３１は、記憶部２１に記憶されている画像のデータ等の各種データも、記憶部２１と同様に記憶することができる。
【００２３】
このような構成を有する撮像装置１は、ワイド画像合成処理を実行することができる。
本実施形態において、「ワイド画像合成処理」とは、撮像部１７に連写動作をさせ、その結果得られる複数枚のフレーム画像のデータを合成することによって複数枚のパノラマ画像のデータを生成し、これらの生成した複数枚のパノラマ画像のデータを合成することによってワイド画像を生成するまでの一連の処理である。
【００２４】
ここで、ワイド画像合成処理の理解を容易なものとすべく、ワイド画像合成処理の概要を説明する。ワイド画像合成処理の概要の説明では、先ず、図２を参照して、撮像装置１におけるワイド画像のデータの生成手法の概略について説明し、次に、図３を参照して、撮像装置１におけるワイド画像合成処理の概略について説明し、図４を参照して、ワイド画像合成処理における垂直方向合成処理の概略について説明する。
【００２５】
図２は、ワイド画像のデータの生成手法の一例を示す模式図である。
図２においては、ユーザが建物をワイド画像として撮像する場合の例が図示されている。本実施形態において、左側から右側又は右側から左側への方向は「水平方向」と呼び、上側から下側又は下側から上側への方向は「垂直方向」と呼ぶ。また、本実施形態において、複数枚のフレーム画像のデータを水平方向に合成することによって生成する画像を「パノラマ画像」と呼び、複数枚のパノラマ画像のデータを垂直方向に合成することによって生成する広角画像を「ワイド画像」をと呼ぶ。
【００２６】
本実施形態では、撮像装置１の動作モードとして、ノーマル画像を撮像するモード（以下、「ノーマルモード」と呼ぶ）と、ワイド画像を撮像するモード（以下、「ワイドモード」と呼ぶ）とが存在する。
そこで、ユーザは、入力部１９に対して所定の操作をすることで、撮像装置１の動作モードをワイドモードに切り替える。
【００２７】
次に、ユーザは、撮像装置１を保持した状態で、入力部１９の図示せぬシャッタスイッチを下限まで押下する操作（以下、「全押し操作」と呼ぶ）をする。これにより、ワイド画像合成処理が開始される。撮像装置１は、撮像部１７の連写動作を開始させる。
【００２８】
次に、ユーザは、シャッタスイッチの全押し操作を維持した状態で、まず、図２中上側において、左側から右側の方向に撮像装置１を移動させ、次に、同図中下側に撮像装置１を移動させてから、右側から左側の方向に撮像装置１を移動させる。
【００２９】
撮像装置１は、移動中、加速度センサ１８の検出結果に基づいて移動量を検出し、その移動量が所定量に達する毎に、撮像部１７に被写体を撮像させ、その結果得られるフレーム画像のデータを記憶していくことを繰り返す。
具体的には本例では、撮像装置１は、撮像の開始位置（全押し操作を開始した位置）からの水平方向の移動量が所定量に達すると、１回目の撮像を行い、第１フレーム画像のデータを記憶する。
更に、撮像装置１は、１回目の撮像位置からの移動量が所定量に達すると、２回目の撮像を行い、第２フレーム画像のデータを記憶する。
更に、撮像装置１は、２回目の撮像位置からの移動量が所定量に達すると、３回目の撮像を行い、第３フレーム画像のデータを記憶する。
その後、撮像装置１は、所定量以上の垂直方向の移動を検出すると、水平方向の移動量の総量（全押し操作を開始した位置からの累計移動量）を記憶する。
【００３０】
そして、次に、撮像装置１は、所定量以上の垂直方向の移動を検出した位置からの水平方向の移動量が所定量に達すると、４回目の撮像を行い、第４フレーム画像のデータを記憶する。
更に、撮像装置１は、４回目の撮像位置からの移動量が所定量に達すると、５回目の撮像を行い、第５フレーム画像のデータを記憶する。
更に、撮像装置１は、５回目の撮像位置からの移動量が所定量に達すると、６回目の撮像を行い、第６フレーム画像のデータを記憶する。
その後、撮像装置１は、所定量以上の垂直方向の移動を検出する前の移動量と同量の移動を検出すると、撮像部１７の連写動作を終了させる。
すると、撮像装置１は、記憶した第１乃至第６のフレーム画像のデータに対してワイド画像合成処理を行い、ワイド画像のデータを生成する。
【００３１】
図３は、撮像装置１のワイド画像合成処理の概略を示す模式図である。
撮像装置１は、パノラマ画像データ生成処理により、記憶した第１乃至第３のフレーム画像のデータを撮像順に合成することによって、上側パノラマ画像のデータを生成する。
また、撮像装置１は、パノラマ画像データ生成処理により、記憶した第４乃至第６のフレーム画像のデータを撮像順に合成することによって、下側パノラマ画像のデータを生成する。
そして、撮像装置１は、垂直方向合成処理により、上側パノラマ画像のデータと下側パノラマ画像のデータとを合成し、ワイド画像のデータを生成する。
【００３２】
図４は、ワイド画像合成処理における垂直方向合成処理の概略を示す模式図である。
撮像装置１は、垂直方向合成処理において、上側パノラマ画像のデータと下側パノラマ画像のデータとからエネルギーマップを生成する。本実施形態において、「エネルギーマップ」は、次のように生成される。即ち、上側パノラマ画像のデータについて、上側パノラマ画像内の特定の画素（注目画素）と他の画素との類似度及び下側パノラマ画像内の当該注目画素に対応した位置の画素（対応画素）と他の画素との類似度が算出される。そして、これら類似度に基づいて、エネルギーが画素毎に算出される。算出された画素毎のエネルギーが、２次元平面上の分布を表した「エネルギーマップ」であり、後述するαブレンドマップの生成に用いられる。また、本実施形態において、「エネルギー」は、画素が類似するほど小さい値となり、画素が類似しないほど大きい値となる。
ここで、「注目画素」とは、処理対象として注目すべき画素であり、処理対象のパノラマ画像（例えば本実施形態では上側パノラマ画像）を構成する各画素がいわゆるラスター順に順次設定される。
【００３３】
次に、撮像装置１は、エネルギーマップを分析し、αブレンドマップを生成する。本実施形態において、「αブレンドマップ」は、上側パノラマ画像のデータと下側パノラマ画像のデータとを合成する際における、上側パノラマ画像のデータに対する下側パノラマ画像のデータの透過度を設定するものであり、フレーム画像と同一解像度であって、透過度を画素値として有する各画素から構成される画像（画素毎の透過度の２次元平面上の分布）である。
例えば、上側パノラマ画像のデータに下側パノラマ画像のデータを重ねる場合におけるαブレンドマップの機能を以下説明する。
なお、以下の説明において、説明便宜のため、透過度を０〜１００の数値で説明する。
透過度が０とは、合成する際に、上側パノラマ画像のデータに対して、下側パノラマ画像のデータがそのまま適用されることを示す。
透過度が１００とは、合成する際に、上側パノラマ画像のデータに対して、下側パノラマ画像のデータが全く適用されないことを示す。
透過度が０と１００との間の値であれば、合成する際に、その値に応じて、上側パノラマ画像のデータと下側パノラマ画像のデータとがブレンドされることを示す。「その値に応じて」とは、例えば、０に近い値であれば、上側パノラマ画像のデータの要素より、下側パノラマ画像のデータの要素が多くブレンドされる。また、１００に近い値であれば、下側パノラマ画像のデータの要素より、上側パノラマ画像のデータの要素が多くブレンドされる。
【００３４】
図４のαブレンドマップにおいて、黒色部分Ｂは透過度が０であり、ハッチング部分Ｇは透過度が０と１００との間の値であり、白色部分Ｗは透過度が１００である。
撮像装置１は、このαブレンドマップを用いて、上側パノラマ画像のデータと下側パノラマ画像のデータを合成し、ワイド画像のデータを生成する。
これにより、ワイド画像のデータは、黒色部分Ｂに下側パノラマ画像のデータがそのまま適用され、ハッチング部分Ｇに上側パノラマ画像のデータと下側パノラマ画像のデータとがブレンドされたデータが適用され、白色部分Ｗに上側パノラマ画像のデータがそのまま適用されたデータとなる。
【００３５】
次に、図５を参照して、このようなワイド画像合成処理を実行するための撮像装置１の機能的構成について説明する。
図５は、図１の撮像装置１の機能的構成のうち、ワイド画像合成処理を実行するための機能的構成を示す機能ブロック図である。
【００３６】
撮像装置１がワイド画像合成処理を実行する場合には、ＣＰＵ１１において撮像制御部（合成制御部）４０が機能し、当該撮像制御部４０の制御の下に、画像処理部１４において、パノラマ画像データ生成部５０と、取得部５１と、エネルギー算出部５２と、エネルギーマップ生成部５３と、エネルギー最小経路探索部５４と、範囲探索部５５と、αブレンド幅決定部５６と、αブレンドマップ生成部５７と、透過度設定部５８と、合成部５９と、が機能する。
【００３７】
撮像制御部４０は、撮像部１７の撮像のタイミングを制御する。
具体的には、ワイドモードの状態で、ユーザが、撮像装置１を保持したまま全押し操作をすると、ワイド画像合成処理が開始する。即ち、撮像制御部４０は、撮像部１７の連写動作を開始させる。
その後、ユーザは、入力部１９のシャッタスイッチの全押し操作を維持した状態で、水平方向の例えば被写体の左側から右側に撮像装置１を移動させる。次に、ユーザは、シャッタスイッチの全押し操作を維持した状態で、垂直方向の例えば被写体の上側から下側に撮像装置１を移動させる。次に、ユーザは、シャッタスイッチの全押し操作を維持した状態で、水平方向の例えば被写体の右側から左側に撮像装置１を移動させる。
【００３８】
撮像制御部４０は、加速度センサ１８の検出結果に基づいて、全押し操作が維持されている間、撮像装置１の水平方向の移動量が一定量に達する毎に、撮像部１７に撮像させ、その結果得られるフレーム画像のデータを記憶部２１のフレームバッファに一時的に記憶していくことを繰り返す。
また、撮像制御部４０は、撮像装置１の所定量以上の垂直方向の移動を検出すると、水平方向の総移動量（全押し操作を開始した位置からの累計移動量）を記憶する。
その後、撮像制御部４０は、撮像装置１の垂直方向の移動後、水平方向の総移動量が記憶した総移動量（垂直方向の移動を検出する前の移動量の総量）に達すると、撮像制御部４０は、撮像部１７の連写動作を終了させる。
【００３９】
パノラマ画像データ生成部５０は、撮像部１７によって撮像され、フレームバッファに一時的に記憶されたフレーム画像のデータを撮像順に合成することによってパノラマ画像のデータを生成する。
詳細には、パノラマ画像データ生成部５０は、シャッタスイッチの全押し操作されてから、撮像装置１の垂直方向の移動を検出されるまでの間に撮像された複数のフレーム画像のデータを取得する。パノラマ画像データ生成部５０は、これらのフレーム画像のデータを合成し、１枚のパノラマ画像のデータ（例えば、図３に示す上側パノラマ画像のデータ）を生成する。
また、パノラマ画像データ生成部５０は、撮像装置１の垂直方向の移動を検出後、撮像部１７の連写動作が終了されるまでの間に撮像された複数のフレーム画像のデータを取得する。パノラマ画像データ生成部５０は、これらのフレーム画像のデータを水平方向に合成し、１枚のパノラマ画像のデータ（例えば、図３に示す下側パノラマ画像のデータ）を生成する。
【００４０】
以下に説明する画像処理部１４における取得部５１、エネルギー算出部５２、エネルギーマップ生成部５３、エネルギー最小経路探索部５４、範囲探索部５５、αブレンド幅決定部５６、αブレンドマップ生成部５７、透過度設定部５８及び合成部５９は、撮像装置１がパノラマ画像データ生成部５０により生成した複数のパノラマ画像のデータを垂直方向に合成する処理を実行するための機能的構成である。
【００４１】
取得部５１は、パノラマ画像データ生成部５０が生成した複数のパノラマ画像のデータを取得する。
【００４２】
エネルギー算出部５２は、取得部５１が取得した複数のパノラマ画像のデータにおける一の画像のデータと当該一の画像の合成対象である他の画像のデータとに基づいて、一の画像のデータ内の注目画素に対応したエネルギーを夫々算出する。
具体的には、エネルギー算出部５２は、取得部５１が取得した複数のパノラマ画像のデータにおける合成対象となる２つの画像のデータ（例えば、図３に示す上側パノラマ画像のデータ及び下側パノラマ画像のデータ）のうち、一方の画像のデータ（例えば、上側パノラマ画像のデータ）について、一方の画像（例えば、上側パノラマ画像）内の注目画素と他の画素との類似度及び他方の画像（例えば、下側パノラマ画像）内の他の画素と注目画素との類似度に基づいてエネルギーを画素毎に求める。
【００４３】
エネルギーマップ生成部５３は、エネルギー算出部５２により算出された注目画素毎のエネルギーの２次元平面上の分布をエネルギーマップとして生成する。
図６は、エネルギーマップ生成部５３におけるエネルギーマップの生成手法の一例を示す模式図である。
図６（ａ）は、上側パノラマ画像のデータの一部を示している。
図６（ｂ）は、下側パノラマ画像のデータの一部を示している。
図６（ｃ）は、（ａ）に示す上側パノラマ画像のデータと（ｂ）に示す下側パノラマ画像のデータ間における注目画素とその周辺画素との類似度をエネルギーとして表したエネルギーマップの一部を示している。
また、図６及び後述する図７〜１０は、夫々Ｘ（水平方向）及びＹ（垂直方向）に配列された複数のグリッドが示されている。各グリッドは、１つの画素を示す。
エネルギーマップ生成部５３は、（ｃ）に示すように、図６（ｃ）中左側から右側に向かって順次各画素のエネルギーを算出し、エネルギーマップを生成する。
【００４４】
エネルギーマップ生成部５３が、エネルギーマップの生成において、各画素のエネルギーを算出する手法の一例を説明する。
エネルギーマップ生成部５３は、（ｃ）に示すエネルギーＥを以下のように算出する。
エネルギーマップ生成部５３は、（ａ）に示す上側パノラマ画像の注目画素（座標（ｘ，ｙ））と、この注目画素と周辺に隣接する画素（座標（ｘ＋ｎ，ｙ＋ｍ））との類似度に基づき、類似度エネルギーＥｏを算出する。
例えば、周辺画素には、図６のように周辺の一部の画素のみを用いても良い。
【００４５】
また、エネルギーマップ生成部５３は、（ｂ）に示す下側パノラマ画像のデータにおける、上側パノラマ画像の注目画素の配置位置と対応する位置に配置されている対応注目画素（座標（ｘ，ｙ））と、この対応注目画素と水平方向に隣接する画素（座標（ｘ＋ｎ，ｙ＋ｍ））との類似度に基づき、対応類似度エネルギーＥｃを算出する。
例えば、周辺画素には、図６のように周辺の一部の画素のみを用いても良い。
【００４６】
更に、エネルギーマップ生成部５３は、（ｃ）に示すエネルギーマップにおいて、既にエネルギーを算出した画素のうち、今回エネルギーＥを算出する画素の前の列で当該画素に隣接する画素（隣接画素）と、この隣接画素の上下の画素とのエネルギーうち、最も小さいエネルギーＥｍｉｎを算出する。なお、本実施形態では、エネルギーマップ生成部５３は、前の列の３つの画素のうちから、最も小さいエネルギーＥｍｉｎを算出するがこれに限られない。例えば、下側パノラマ画像のデータと上側パノラマ画像のデータとの特性に応じて、前の列の５つの画素のうちから、最も小さいエネルギーＥｍｉｎを算出することもできる。
エネルギーマップ生成部５３は、算出した類似度エネルギーＥｏ、対応類似度エネルギーＥｃ及びエネルギーＥｍｉｎに基づき、エネルギーＥを算出する。
ここで、本実施例において、上側パノラマ画像の注目画素を基準としてＥｏ、Ｅｃ、Ｅｍｉｎを算出することによりエネルギーＥを求めたが、下側パノラマ画像の注目画素を基準としてＥｏ、Ｅｃ、Ｅｍｉｎを算出することによりエネルギーＥを求めても良い。
【００４７】
図５に戻って、エネルギー最小経路探索部５４は、エネルギーマップ生成部５３が生成したエネルギーマップの水平方向において、エネルギーが最小となるエネルギー最小経路を探索する。
図７は、エネルギー最小経路探索部５４におけるエネルギー最小経路を探索する手法の一例を示す模式図である。
図７には、エネルギーマップ生成部５３が生成したエネルギーマップが示されている。
【００４８】
エネルギー最小経路探索部５４は、エネルギー算出部５２により夫々算出された注目画素のデータのエネルギーが最小となる経路を探索する。詳細には、エネルギー最小経路探索部５４は、Ｘ方向（水平方向）において、エネルギーマップ生成部５３によりエネルギーマップが生成された方向と反対方向に向かってエネルギー最小経路を探索していく。即ち、エネルギーマップにおいて、エネルギーマップ生成部５３が最後にエネルギーを算出した列から、最初にエネルギーを算出した列に向かってエネルギー最小経路を探索していく。
具体的には、エネルギー最小経路探索部５４は、エネルギーマップ生成部５３が最後にエネルギーを算出した列において、最もエネルギーが小さい画素を探索する。次に、エネルギー最小経路探索部５４は、探索した画素と隣接する画素と、この隣接する画素の上下の画素とのエネルギーうち、最もエネルギーが小さい画素を探索する。エネルギー最小経路探索部５４は、同様の探索をエネルギーマップ生成部５３が最初にエネルギーを算出した列まで行うことで、エネルギー最小経路Ｒを探索する。
また、エネルギー最小経路Ｒの探索は、上述の方法に限らず、例えば、グラフカット技術により行っても良い。なお、グラフカット技術に関しては、例えば、”Interactive  Digital  Photomontage”  A.  Agarwala  et  al.  ACM  SIGGRAPH,  2004に開示されているため、本実施例において詳細には説明しない。
【００４９】
図５に戻って、範囲探索部５５は、エネルギー最小経路探索部５４により探索されたエネルギー最小経路における一の画像のデータ内の各注目画素の値と類似する値を有する画素の範囲を探索する。また、範囲探索部５５は、エネルギーマップ生成部５３により生成されたエネルギーマップの所定方向と直交する方向において、エネルギーが最小となる経路を探索する。
図８は、範囲探索部５５のエネルギー最小経路における一の画像のデータ内の各注目画素の値と類似する値を有する画素の範囲を探索する手法の一例を示す模式図である。
図８には、エネルギーマップ生成部５３が生成したエネルギーマップと、このエネルギーマップにおいて、エネルギー最小経路探索部５４が探索したエネルギー最小経路Ｒが示されている。
【００５０】
範囲探索部５５は、エネルギーマップのＹ方向（垂直方向）に向かって、エネルギー最小経路Ｒにおける各画素のエネルギーとエネルギーの差分が所定の平坦度合いである画素を探索する。範囲探索部５５は、エネルギー最小経路Ｒにおける各画素の夫々について、所定の平坦度合いである画素を探索することで、所定の平坦度合いである範囲Ｒ’を探索する。本実施形態において「所定の平坦度合い」とは、例えば、エネルギー最小経路Ｒにおける各画素のエネルギーとエネルギーの差分が所定値以内であることを呼ぶ。また、「エネルギーの差分」は、例えば、画素における輝度値の差の絶対値の他、色相値や色差値の相違を用いることができる。
つまり、範囲探索部５５は、エネルギー最小経路Ｒにおける各画素の値（輝度値色相値、色差値等）と類似した（所定値以内に収まる）値を有する画素の幅を範囲Ｒ’として探索する。
【００５１】
また、範囲探索部５５は、重み付けをして、所定の平坦度合いである範囲を探索することもできる。「重み付け」は、例えば、エネルギー最小経路Ｒにおける各画素のエネルギーの大きさに応じた値や、エネルギー最小経路Ｒからの距離に応じた値を、実際のエネルギーの差分に乗じたり、加算したりすることにより行うことができる。
【００５２】
図５に戻って、αブレンド幅決定部５６は、範囲探索部５５により探索された画素の範囲に基づき、エネルギー最小経路を起点とするブレンド幅を決定する。詳細には、αブレンド幅決定部５６は、エネルギーマップの所定方向において、エネルギー最小経路探索部５４により探索された経路とエネルギーとの差分が所定の平坦度合いである範囲を類似する値を有する画素の範囲として探索し、ブレンド幅を決定する。
図９は、αブレンド幅決定部５６におけるブレンド幅を決定する手法の一例を示す模式図である。
図９には、エネルギーマップ生成部５３が生成したエネルギーマップと、このエネルギーマップにおいて、エネルギー最小経路探索部５４が探索したエネルギー最小経路Ｒと範囲探索部５５が探索した所定の平坦度合いである範囲Ｒ’が示されている。
【００５３】
αブレンド幅決定部５６は、エネルギー最小経路Ｒを一端とするαブレンド幅の他端となるαブレンド幅終点経路Ｒ’’を算出する。
具体的には、αブレンド幅決定部５６は、エネルギー最小経路Ｒの始点となる画素と、複数のパノラマ画像のデータを合成する方向、即ち、Ｙ方向（垂直方向）において隣接する画素をαブレンド幅終点経路Ｒ’’の始点とする。αブレンド幅決定部５６は、この始点となる画素の周辺の画素からエネルギー最小経路Ｒと同方向に、αブレンド幅終点経路Ｒ’’を形成する画素を探索する。αブレンド幅決定部５６は、同様の手法で、エネルギー最小経路Ｒと同方向に、探索した画素の周辺の画素から順次αブレンド幅終点経路Ｒ’’を形成する画素を探索する。αブレンド幅決定部５６は、αブレンド幅終点経路Ｒ’’を形成する画素を、例えば、エネルギーマップの所定の列におけるエネルギー最小経路Ｒと所定の平坦度合いである範囲Ｒ’の画素のエネルギーの大きさに基づき探索する。
【００５４】
また、αブレンド幅決定部５６は、重み付けをして、ブレンド幅を決定することもできる。「重み付け」は、例えば、エネルギー最小経路Ｒにおける各画素のエネルギーの大きさに応じた値や、エネルギー最小経路Ｒからの距離に応じた値を、エネルギーマップの所定の列におけるエネルギー最小経路Ｒと所定の平坦度合いである範囲Ｒ’の画素のエネルギーの差分に乗じたり、加算したりすることにより行うことができる。
また、「重み付け」は、例えば、撮像装置１における撮影条件に応じた値を、エネルギーマップの所定の列におけるエネルギー最小経路Ｒと所定の平坦度合いである範囲Ｒ’の画素のエネルギーに乗じたり、加算したりすることにより行うことができる。ここで、「撮影条件」とは、例えば、撮像時にフラッシュが使用されたか否か等である。
【００５５】
図５に戻って、αブレンドマップ生成部５７は、αブレンド幅決定部５６が決定したブレンド幅に基づき、上側パノラマ画像に対する下側パノラマ画像の透過度を設定するαブレンドマップを生成する。
図１０は、αブレンドマップ生成部５７におけるαブレンドマップを生成する手法の一例を示す模式図である。
図１０には、αブレンドマップ生成部５７が生成したαブレンドマップに、説明に用いる、エネルギー最小経路探索部５４が探索したエネルギー最小経路Ｒと、αブレンド幅決定部５６が算出したαブレンド幅終点経路Ｒ’’と、が示されている。
【００５６】
αブレンドマップ生成部５７は、画素の各列において、エネルギー最小経路Ｒを形成する画素から、Ｘ方向（垂直方向）に向かって、αブレンド幅終点経路Ｒ’’を形成する画素までの間で、透過度が変化するαブレンドマップを生成する。
具体的には、αブレンドマップ生成部５７は、画素の列毎に、エネルギー最小経路Ｒを形成する画素とαブレンド幅終点経路Ｒ’’を形成する画素との間で、透過度が０から１００に変化するブレンドマップを生成する。即ち、透過度の変化の度合いは、エネルギー最小経路Ｒを形成する画素とαブレンド幅終点経路Ｒ’’を形成する画素との距離により異なる。
【００５７】
図５に戻って、透過度設定部５８は、αブレンドマップ生成部５７により生成されたマップに対応した透過度を設定する。即ち、透過度設定部５８は、αブレンド幅決定部５６により決定されたブレンド幅に基づき、上側パノラマ画像に対する下側パノラマ画像の透過度を設定する。
【００５８】
合成部５９は、αブレンドマップ生成部５７が生成したαブレンドマップを用いて、即ち、αブレンド幅決定部５６により決定されたブレンド幅と透過度設定部５８により設定された透過度とに基づいて、上側パノラマ画像と下側パノラマ画像の各データを垂直方向に合成し、ワイド画像のデータを生成する（図４参照）。
【００５９】
次に、このような図５の機能的構成を有する図１の撮像装置１が実行する処理のうち、ワイド画像合成処理の流れについて図１１を用いて説明する。
図１１は、撮像装置１が実行するワイド画像合成処理の流れを説明するフローチャートである。
【００６０】
ワイド画像合成処理は、本実施形態においては、撮像装置１の動作モードがワイドモードに切り替えられた後、ユーザが入力部１９の図示せぬシャッタスイッチを全押し操作して、撮像の指示をしたことを契機として開始される。
【００６１】
ステップＳ１において、パノラマ画像データ生成部５０は、撮像部１７に撮像され、フレームバッファに一時的に記憶されたフレーム画像のデータを撮像順に合成することによってパノラマ画像のデータを生成する。
【００６２】
ステップＳ２において、合成制御部４０は、所定の条件を満たしたか否かを判定し、所定の条件を満たしたと判定した場合はステップＳ３に処理を移し、所定の条件を満たしていないと判定した場合はステップＳ１に処理を戻す。本実施形態において「所定の条件」とは、撮像装置１が水平方向に移動され、その後、垂直方向に移動され、更に水平方向に移動されることによって、２枚のパノラマ画像のデータが生成されていることである。
【００６３】
ステップＳ３において、画像処理部１４における取得部５１、エネルギー算出部５２、エネルギーマップ生成部５３、エネルギー最小経路探索部５４、範囲探索部５５、αブレンド幅決定部５６、αブレンドマップ生成部５７、透過度設定部５８及び合成部５９は、協働して垂直方向合成処理を実行する。詳しくは後述するが、垂直方向合成処理において、取得部５１、エネルギー算出部５２、エネルギーマップ生成部５３、エネルギー最小経路探索部５４、範囲探索部５５、αブレンド幅決定部５６、αブレンドマップ生成部５７、透過度設定部５８及び合成部５９は、ステップＳ１でパノラマ画像データ生成部５０が生成したパノラマ画像のデータを合成し、ワイド画像のデータを生成する。
【００６４】
ステップＳ４において、合成制御部４０は、ステップＳ３で生成されたワイド画像のデータをリムーバブルメディア３１に記憶する。
【００６５】
次に、図１２を参照して、図１１に示すワイド画像合成処理のうち、垂直方向合成処理について説明する。
図１２は、撮像装置１が実行する垂直方向合成処理の流れを説明するフローチャートである。
【００６６】
ステップＳ３１において、取得部５１は、ステップＳ１でパノラマ画像データ生成部５０が生成した複数のパノラマ画像のデータ（例えば、図３に示す上側パノラマ画像のデータ及び下側パノラマ画像のデータ）を取得する。
【００６７】
ステップＳ３２において、エネルギー算出部５２は、ステップＳ３１で取得部５１が取得した複数のパノラマ画像における上側パノラマ画像のデータと下側パノラマ画像のデータとに基づいて、上側パノラマ画像のデータ内の注目画素に対応したエネルギーを夫々算出する。そして、エネルギーマップ生成部５３は、エネルギー算出部５２により算出された注目画素毎のエネルギーの２次元平面上の分布をエネルギーマップ（図６参照）として生成する。
【００６８】
ステップＳ３３において、エネルギー最小経路探索部５４は、ステップＳ３２でエネルギー算出部５２により夫々算出された注目画素のデータのエネルギーが最小となる経路を探索する。詳細には、エネルギー最小経路探索部５４は、ステップＳ３２でエネルギーマップ生成部５３が生成したエネルギーマップの水平方向において、エネルギーが最小となるエネルギー最小経路Ｒ（図７参照）を探索する。
【００６９】
ステップＳ３４において、範囲探索部５５は、ステップＳ３３でエネルギー最小経路探索部５４により探索されたエネルギー最小経路における一の画像のデータ内の各注目画素の値と類似する値を有する画素の範囲を探索する。詳細には、範囲探索部５５は、エネルギーマップの垂直方向（複数のパノラマ画像のデータを合成する方向）において、ステップＳ３３でエネルギー最小経路探索部５４が探索したエネルギー最小経路Ｒとエネルギーの差分が所定の平坦度合いである範囲Ｒ’（図８参照）を探索する。
【００７０】
ステップＳ３５において、αブレンド幅決定部５６は、ステップＳ３４で範囲探索部５５により探索された画素の範囲に基づき、エネルギー最小経路を起点とするブレンド幅を決定する。詳細には、αブレンド幅決定部５６は、ステップＳ３４で範囲探索部５５が探索した所定の平坦度合いである範囲Ｒ’に基づき、ステップＳ３３でエネルギー最小経路探索部５４が探索したエネルギー最小経路Ｒを起点とするブレンド幅（図９参照）を決定する。図９では、例えば、Ｒ’’は、ＲとＲ’のほぼ中間位置であり、この場合、αブレンド幅決定部５６は、ＲとＲ’’の間の画素分をブレンド幅として決定する。
【００７１】
ステップＳ３６において、αブレンドマップ生成部５７は、ステップＳ３５でαブレンド幅決定部５６が決定したブレンド幅に基づき、上側パノラマ画像に対する下側パノラマ画像の透過度を設定するαブレンドマップ（図１０参照）を生成する。透過度設定部５８は、αブレンドマップ生成部５７により生成されたαブレンドマップに対応した透過度を設定する。
【００７２】
ステップＳ３７において、合成部５９は、ステップＳ３６でαブレンドマップ生成部５７が生成したαブレンドマップを用いて、即ち、ステップＳ３５でαブレンド幅決定部５６により決定されたブレンド幅とステップＳ３６で透過度設定部５８により設定された透過度とに基づいて、上側パノラマ画像と下側パノラマ画像の各データを垂直方向に合成し、ワイド画像のデータを生成する（図４参照）。
【００７３】
以上説明したように、本実施形態の撮像装置１は、画像処理部１４において、エネルギー算出部５２、エネルギーマップ生成部５３、エネルギー最小経路探索部５４、範囲探索部５５、αブレンド幅決定部５６、αブレンドマップ生成部５７、透過度設定部５８及び合成部５９、を備える。
撮像装置１は、複数の画像のデータを所定方向に合成してワイド画像のデータを生成する画像処理装置である。
エネルギー算出部５２は、複数の画像のデータにおける一の画像と当該一の画像の合成対象である他の画像とに基づいて、一の画像内の注目画素に対応したエネルギーを夫々算出する。
エネルギー最小経路探索部５４は、エネルギー算出部５２により夫々算出された注目画素のエネルギーが最小となるエネルギー最小経路Ｒを探索する。
範囲探索部５５は、エネルギー最小経路探索部５４により探索されたエネルギー最小経路Ｒにおける一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する。
αブレンド幅決定部５６は、範囲探索部５５により探索された画素の範囲に基づき、エネルギー最小経路を起点とするブレンド幅を決定する。
透過度設定部５８は、αブレンド幅決定部５６により決定されたブレンド幅に基づき、他の画像に対する一の画像の透過度を設定する。
合成部５９は、ブレンド幅と透過度設定部５８により設定された透過度とに基づいて、一の画像と他の画像とを合成する。
【００７４】
これにより、合成対象である他の画像とに基づいて、一の画像内の注目画素に対応したエネルギーから、複数の画像のデータの繋ぎ合わせ部分となるエネルギー最小経路を探索できる。そして、このエネルギー最小経路を起点としたブレンド幅における、一方の画像に対する他方の画像の透過度を設定し、複数の画像のデータを合成できる。
したがって、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【００７５】
エネルギーマップ生成部５３は、エネルギー算出部５２により算出された注目画素毎のエネルギーの２次元平面上の分布をエネルギーマップとして生成する。
範囲探索部５５は、エネルギーマップ生成部５３により生成されたエネルギーマップの所定方向と直交する方向において、エネルギーが最小となる経路を探索する。
【００７６】
これにより、エネルギーマップから、複数の画像のデータの繋ぎ合わせ部分となるエネルギー最小経路を探索できる。そして、このエネルギー最小経路を起点としたブレンド幅における、一方の画像に対する他方の画像の透過度を設定し、複数の画像のデータを合成できる。
したがって、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【００７７】
αブレンド幅決定部５６は、エネルギーマップの所定方向において、エネルギー最小経路探索部５４により探索されたエネルギー最小経路Ｒとエネルギーとの差分が所定の平坦度合いである範囲を類似する値を有する画素の範囲として探索する。
【００７８】
これにより、エネルギー最小経路とエネルギーとの差分が所定の平坦度合いである範囲をブレンド幅に決定できる。
したがって、所定の平坦度合いの範囲でブレンド幅に決定することで、合成後の広角画像の繋ぎ合わせの部分の違和感を更に低減できる。
【００７９】
αブレンドマップ生成部５７は、透過度設定部５８による透過度を設定するためのαブレンドマップを生成する。
透過度設定部５８は、αブレンドマップ生成部５７により生成されるαブレンドマップに対応した透過度を設定する。
これにより、αブレンドマップに対応した透過度を設定し、複数の画像のデータを合成できる。
したがって、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【００８０】
αブレンドマップ生成部５７は、αブレンドマップ生成部５７は、エネルギー最小経路Ｒを起点として、複数の画像のデータの合成方向に向かって、透過度が変化するブレンドマップを生成する。
したがって、ブレンドマップのブレンド幅における透過度を変化させることで、合成後の広角画像の繋ぎ合わせの部分の違和感を更に低減できる。
【００８１】
また、撮像装置１は、複数の画像のデータの少なくとも一部を垂直方向に合成してワイド画像のデータを生成するので、複数の画像のデータを垂直方向に合成した場合に、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【００８２】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【００８３】
例えば、上述の実施形態においては、撮像装置１を水平方向に移動させ、その後、垂直方向に移動させ、更に水平方向に移動させることによって、２枚のパノラマ画像のデータを生成しているが、これに限られない。例えば、撮像装置１を水平方向に移動させ、垂直方向に移動させ、更に水平方向に移動させ、その後、更に垂直方向に移動させ、水平方向に移動させることによって、３枚のパノラマ画像のデータを生成してもよい。同様に、撮像装置１をｎ回（ｎは整数）の垂直移動を挟んで、ｎ＋１回の水平方向への移動を行うことで、ｎ＋１枚のパノラマ画像のデータを生成してもよい。
【００８４】
また、上述の実施形態において、エネルギー算出部５２、エネルギーマップ生成部５３、エネルギー最小経路探索部５４、範囲探索部５５、αブレンド幅決定部５６、αブレンドマップ生成部５７、透過度設定部５８及び合成部５９は、撮像装置１がパノラマ画像データ生成部５０により生成した複数のパノラマ画像のデータを垂直方向に合成する処理を実行するための機能的構成として、説明しているが、特にこれに限られない。例えば、エネルギー算出部５２、エネルギーマップ生成部５３、エネルギー最小経路探索部５４、範囲探索部５５、αブレンド幅決定部５６、αブレンドマップ生成部５７、透過度設定部５８及び合成部５９は、複数の画像のデータを水平方向に合成する処理を実行するための機能的構成としてもよい。
【００８５】
この場合、エネルギー算出部５２は、垂直方向に向かって順次各画素のエネルギーを算出し、エネルギーマップ生成部５３は、エネルギー算出部５２が算出したエネルギーによりエネルギーマップを生成する。
エネルギー最小経路探索部５４は、垂直方向において、エネルギーマップ生成部５３によりエネルギーマップが生成された方向と反対方向に向かってエネルギー最小経路を探索していく。
範囲探索部５５は、エネルギーマップの水平方向（複数のパノラマ画像のデータを合成する方向）において、エネルギー最小経路探索部５４が探索したエネルギー最小経路とエネルギーの差分が所定の平坦度合いである範囲を探索する。
αブレンド幅決定部５６は、エネルギー最小経路と同方向（垂直方向）に、αブレンド幅終点経路を形成する画素を探索し、ブレンド幅を決定する。
αブレンドマップ生成部５７は、αブレンド幅決定部５６が決定したブレンド幅に基づき、例えば、右側の画像に対する左側の画像の透過度を設定するαブレンドマップを生成する。
透過度設定部５８は、αブレンドマップ生成部５７により生成されたαブレンドマップにより透過度を設定する。
合成部５９は、ブレンド幅と透過度設定部５８により設定された透過度とに基づいて、右側の画像と左側の画像の各データを水平方向に合成し、ワイド画像のデータを生成する。
【００８６】
また、上述の実施形態では、本発明が適用される撮像装置１は、デジタルカメラを例として説明したが、特にこれに限定されない。
例えば、本発明は、表示制御機能を有する電子機器一般に適用することができる。具体的には、例えば、本発明は、ノート型のパーソナルコンピュータ、プリンタ、テレビジョン受像機、ビデオカメラ、携帯型ナビゲーション装置、携帯電話機、ポータブルゲーム機等に適用可能である。
【００８７】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
換言すると、図５の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が撮像装置１に備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に図５の例に限定されない。例えば、ＣＰＵ１１において機能する機能ブロックを、画像処理部１４において機能するようにしてもよいし、逆に、画像処理部１４において機能する機能ブロックを、ＣＰＵ１１において機能するようにしてもよい。
また、１つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【００８８】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであってもよい。
【００８９】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布される図１のリムーバブルメディア３１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。リムーバブルメディア３１は、例えば、磁気ディスク（フロッピディスクを含む）、光ディスク、又は光磁気ディスク等により構成される。光ディスクは、例えば、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等により構成される。光磁気ディスクは、ＭＤ（Ｍｉｎｉ−Ｄｉｓｋ）等により構成される。また、装置本体に予め組み込まれた状態でユーザに提供される記録媒体は、例えば、プログラムが記録されている図１のＲＯＭ１２や、図１の記憶部２１に含まれるハードディスク等で構成される。
【００９０】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
【００９１】
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、更に、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００９２】
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［付記１］
複数の画像を所定方向に合成して広角画像を生成する画像処理装置であって、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出手段と、
前記エネルギー算出手段により夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索手段と、
前記エネルギー最小経路探索手段により探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段と、
前記範囲探索手段により探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定手段と、
前記ブレンド幅決定手段により決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定手段と、
前記ブレンド幅と前記透過度設定手段により設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成手段と
を備えることを特徴とする画像処理装置。
［付記２］
前記エネルギー算出手段により算出された注目画素毎のエネルギーの２次元平面上の分布をエネルギーマップとして生成するエネルギーマップ生成手段を更に備え、
前記範囲探索手段は、前記エネルギーマップ生成手段により生成されたエネルギーマップの前記所定方向と直交する方向において、前記エネルギーが最小となる経路を探索することを特徴とする付記１記載の画像処理装置。
［付記３］
前記ブレンド幅決定手段は、前記エネルギーマップの前記所定方向において、前記エネルギー最小経路探索手段により探索された経路と前記エネルギーとの差分が所定の平坦度合いである範囲を前記類似する値を有する画素の範囲として探索することを特徴とする付記２記載の画像処理装置。
［付記４］
前記透過度設定手段による透過度を設定するためのマップを生成するマップ生成手段を更に備え、
前記透過度設定手段は、前記マップ生成手段により生成されるマップに対応した透過度を設定することを特徴とする付記１乃至３のいずれか記載の画像処理装置。
［付記５］
前記マップ生成手段は、前記エネルギー最小経路探索手段により探索された経路を起点として、前記所定方向に向かって、前記透過度が変化するマップを生成することを特徴とする付記４記載の画像処理装置。
［付記６］
前記所定方向は垂直方向であり、前記複数の画像のデータの少なくとも一部を垂直方向に合成して前記広角画像のデータを生成することを特徴とする付記１乃至５のいずれか記載の画像処理装置。
［付記７］
複数の画像のデータを所定方向に合成して広角画像のデータを生成する画像処理装置が実行する画像処理方法であって、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出ステップと、
前記エネルギー算出ステップにて夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索ステップと、
前記エネルギー最小経路探索ステップにて探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索ステップと、
前記範囲探索ステップにて探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定ステップと、
前記ブレンド幅決定ステップにて決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定ステップと、
前記ブレンド幅と前記透過度設定ステップにて設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成ステップと、
を含むことを特徴とする画像処理方法。
［付記８］
複数の画像のデータを所定方向に合成して広角画像のデータを生成する画像処理装置を制御するコンピュータを、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出手段と、
前記エネルギー算出手段により夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索手段、
前記エネルギー最小経路探索手段により探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段、
前記範囲探索手段により探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定手段、
前記ブレンド幅決定手段により決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定手段、
前記ブレンド幅と前記透過度設定手段により設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成手段、
として機能させることを特徴とするプログラム。
【符号の説明】
【００９３】
１・・・撮像装置、１１・・・ＣＰＵ、１２・・・ＲＯＭ、１３・・・ＲＡＭ、１４・・・画像処理部、１５・・・パス、１６・・・入出力インターフェース、１７・・・撮像部、１８・・・加速度センサ、１９・・・入力部、２０・・・出力部２０、２１・・・記憶部、２２・・・通信部、２３・・・ドライブ、３１・・・リムーバブルメディア、４０・・・撮像制御部（合成制御部）、５０・・・パノラマ画像データ生成部、５１・・・取得部、５２・・・エネルギー算出部、５３・・・エネルギーマップ作成部、５４・・・エネルギー最小経路探索部、５５・・・範囲探索部、５６・・・αブレンド幅決定部、５７・・・αブレンドマップ作成部、５８・・・合成部
【図１】
0005754312.tif 000002
【図２】
0005754312.tif 000003
【図３】
0005754312.tif 000004
【図４】
0005754312.tif 000005
【図５】
0005754312.tif 000006
【図６】
0005754312.tif 000007
【図７】
0005754312.tif 000008
【図８】
0005754312.tif 000009
【図９】
0005754312.tif 000010
【図１０】
0005754312.tif 000011
【図１１】
0005754312.tif 000012
【図１２】
0005754312.tif 000013