画像処理装置及び画像処理方法、並びにプログラム
【課題】合成後の広角画像の繋ぎ合わせの部分の違和感を低減する。
【解決手段】撮像装置1は、複数の画像のデータを所定方向に合成してワイド画像のデータを生成し、エネルギー算出部52は、複数の画像のデータにおける一の画像と当該一の画像の合成対象である他の画像とに基づいて、一の画像内の注目画素に対応したエネルギーを夫々算出する。エネルギー最小経路探索部54と、注目画素のエネルギーが最小となるエネルギー最小経路Rを探索する。範囲探索部55は、エネルギー最小経路Rにおける一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する。αブレンド幅決定部56は、エネルギー最小経路を起点とするブレンド幅を決定する。透過度設定部58は、ブレンド幅に基づき、他の画像に対する一の画像の透過度を設定する。合成部59は、ブレンド幅と透過度とに基づいて、一の画像と他の画像とを合成する。
【解決手段】撮像装置1は、複数の画像のデータを所定方向に合成してワイド画像のデータを生成し、エネルギー算出部52は、複数の画像のデータにおける一の画像と当該一の画像の合成対象である他の画像とに基づいて、一の画像内の注目画素に対応したエネルギーを夫々算出する。エネルギー最小経路探索部54と、注目画素のエネルギーが最小となるエネルギー最小経路Rを探索する。範囲探索部55は、エネルギー最小経路Rにおける一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する。αブレンド幅決定部56は、エネルギー最小経路を起点とするブレンド幅を決定する。透過度設定部58は、ブレンド幅に基づき、他の画像に対する一の画像の透過度を設定する。合成部59は、ブレンド幅と透過度とに基づいて、一の画像と他の画像とを合成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
従来より、連続して撮影された複数の画像の同一の特徴点が一致するように、当該複数の画像のデータを合成することによって、パノラマ画像等の広角画像のデータを生成する技術が知られている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平11−282100号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、一般に、複数の画像同士で、シェーディングによる影響や、シャッタ釦の押下タイミングや、撮像素子の露光のタイミング等の撮像条件を完全に一致させることは困難である。このため、複数の画像のデータを合成して1枚の広角画像のデータを生成する場合、合成後の広角画像のデータは、複数の画像の各々の撮像条件の相違による露出値の差の影響を受ける。
また、撮像装置を2次元に動かしながら複数の画像を撮像し、これら複数の画像のデータを合成して広角画像のデータを生成する場合がある。この場合、上記特許文献1の合成の技術を応用しても、生成された広角画像のデータは、複数の画像同士で各々露出値が異なるため、特徴点の位置合わせが正確に行えず、画像の繋ぎ合わせの部分に輝度ムラ等が生じる場合があった。このため、合成後の広角画像が表示されると鑑賞者は違和感を覚えてしまうという虞がある。
【0005】
本発明は、このような状況に鑑みてなされたものであり、合成後の広角画像の繋ぎ合わせの部分の違和感を低減することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明の一態様の画像処理装置は、
複数の画像を所定方向に合成して広角画像を生成する画像処理装置であって、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出手段と、
前記エネルギー算出手段により夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索手段と、
前記エネルギー最小経路探索手段により探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段と、
前記範囲探索手段により探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定手段と、
前記ブレンド幅決定手段により決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定手段と、
前記ブレンド幅と前記透過度設定手段により設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成手段と
を備えたことを特徴とする。
【発明の効果】
【0007】
本発明によれば、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【図面の簡単な説明】
【0008】
【図1】本発明の一実施形態に係る撮像装置のハードウェアの構成を示すブロック図である。
【図2】ワイド画像のデータの生成手法の一例を示す模式図である。
【図3】撮像装置のワイド画像合成処理の概略を示す模式図である。
【図4】ワイド画像合成処理における垂直方向合成処理の概略を示す模式図である。
【図5】図1の撮像装置の機能的構成のうち、ワイド画像合成処理を実行するための機能的構成を示す機能ブロック図である。
【図6】エネルギーマップ生成部におけるエネルギーマップの生成手法の一例を示す模式図である。
【図7】エネルギー最小経路探索部におけるエネルギー最小経路を探索する手法の一例を示す模式図である。
【図8】範囲探索部のエネルギー最小経路における一の画像のデータ内の各注目画素の値と類似する値を有する画素の範囲を探索する手法の一例を示す模式図である。
【図9】αブレンド幅決定部におけるブレンド幅を決定する手法の一例を示す模式図である。
【図10】αブレンドマップ生成部におけるαブレンドマップを生成する手法の一例を示す模式図である。
【図11】撮像装置が実行するワイド画像合成処理の流れを説明するフローチャートである。
【図12】撮像装置が実行する垂直方向合成処理の流れを説明するフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、画像処理装置の一例として撮像装置1について、図面を用いて説明する。
【0010】
図1は、本発明の一実施形態に係る撮像装置1のハードウェアの構成を示すブロック図である。
撮像装置1は、例えばデジタルカメラして構成される。
【0011】
撮像装置1は、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、画像処理部14と、バス15と、入出力インターフェース16と、撮像部17と、加速度センサ18、入力部19と、出力部20と、記憶部21と、通信部22と、ドライブ23と、を備えている。
【0012】
CPU11は、ROM12に記録されているプログラム、又は、記憶部21からRAM13にロードされたプログラムに従って各種の処理を実行する。
【0013】
RAM13には、CPU11が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【0014】
画像処理部14は、DSP(Digital Signal Processor)や、VRAM(Video Random Access Memory)等から構成されており、CPU11と協働して、画像のデータに対して各種画像処理を施す。
【0015】
CPU11、ROM12、RAM13及び画像処理部14は、バス15を介して相互に接続されている。このバス15にはまた、入出力インターフェース16も接続されている。入出力インターフェース16には、撮像部17、加速度センサ18、入力部19、出力部20、記憶部21、通信部22及びドライブ23が接続されている。
【0016】
撮像部17は、図示はしないが、光学レンズ部と、イメージセンサと、を備えている。
【0017】
光学レンズ部は、被写体を撮像するために、光を集光するレンズ、例えばフォーカスレンズやズームレンズ等で構成される。
フォーカスレンズは、イメージセンサの受光面に被写体像を結像させるレンズである。ズームレンズは、焦点距離を一定の範囲で自在に変化させるレンズである。
光学レンズ部にはまた、必要に応じて、焦点、露出、ホワイトバランス等の設定パラメータを調整する周辺回路が設けられる。
【0018】
イメージセンサは、光電変換素子や、AFE(Analog Front End)等から構成される。
光電変換素子は、例えばCMOS(Complementary Metal Oxide Semiconductor)型の光電変換素子等から構成される。光電変換素子には、光学レンズ部から被写体像が入射される。そこで、光電変換素子は、被写体像を光電変換(撮像)して画像信号を一定時間蓄積し、蓄積した画像信号をアナログ信号としてAFEに順次供給する。
AFEは、このアナログの画像信号に対して、A/D(Analog/Digital)変換処理等の各種信号処理を実行する。各種信号処理によって、ディジタル信号が生成され、撮像部17の出力信号として出力される。
【0019】
ここで、1回の撮像動作により、撮像部17から出力される出力信号を、以下、「フレーム画像のデータ」と呼ぶ。即ち、連写動作とは複数回の撮像動作の繰り返しであることから、連写動作により、複数のフレーム画像のデータが撮像部17から出力される。
本実施形態では、フレーム画像として、アスペクト比(横縦比)が4:3のノーマル画像が採用されている。
【0020】
加速度センサ18は、撮像装置1の速度や加速度を検出可能に構成される。
入力部19は、各種釦等で構成され、ユーザの指示操作に応じて各種情報を入力する。
出力部20は、ディスプレイやスピーカ等で構成され、画像や音声を出力する。本実施形態の出力部20には、ノーマル画像を画面全体に表示できるように、アスペクト比(横縦比)が4:3のディスプレイが設けられている。
【0021】
記憶部21は、ハードディスク或いはDRAM(Dynamic Random Access Memory)等で構成され、各種画像のデータを記憶する。
通信部22は、インターネットを含むネットワークを介して他の装置(図示せず)との間で行う通信を制御する。
【0022】
ドライブ23には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア31が適宜装着される。ドライブ23によってリムーバブルメディア31から読み出されたプログラムは、必要に応じて記憶部21にインストールされる。また、リムーバブルメディア31は、記憶部21に記憶されている画像のデータ等の各種データも、記憶部21と同様に記憶することができる。
【0023】
このような構成を有する撮像装置1は、ワイド画像合成処理を実行することができる。
本実施形態において、「ワイド画像合成処理」とは、撮像部17に連写動作をさせ、その結果得られる複数枚のフレーム画像のデータを合成することによって複数枚のパノラマ画像のデータを生成し、これらの生成した複数枚のパノラマ画像のデータを合成することによってワイド画像を生成するまでの一連の処理である。
【0024】
ここで、ワイド画像合成処理の理解を容易なものとすべく、ワイド画像合成処理の概要を説明する。ワイド画像合成処理の概要の説明では、先ず、図2を参照して、撮像装置1におけるワイド画像のデータの生成手法の概略について説明し、次に、図3を参照して、撮像装置1におけるワイド画像合成処理の概略について説明し、図4を参照して、ワイド画像合成処理における垂直方向合成処理の概略について説明する。
【0025】
図2は、ワイド画像のデータの生成手法の一例を示す模式図である。
図2においては、ユーザが建物をワイド画像として撮像する場合の例が図示されている。本実施形態において、左側から右側又は右側から左側への方向は「水平方向」と呼び、上側から下側又は下側から上側への方向は「垂直方向」と呼ぶ。また、本実施形態において、複数枚のフレーム画像のデータを水平方向に合成することによって生成する画像を「パノラマ画像」と呼び、複数枚のパノラマ画像のデータを垂直方向に合成することによって生成する広角画像を「ワイド画像」をと呼ぶ。
【0026】
本実施形態では、撮像装置1の動作モードとして、ノーマル画像を撮像するモード(以下、「ノーマルモード」と呼ぶ)と、ワイド画像を撮像するモード(以下、「ワイドモード」と呼ぶ)とが存在する。
そこで、ユーザは、入力部19に対して所定の操作をすることで、撮像装置1の動作モードをワイドモードに切り替える。
【0027】
次に、ユーザは、撮像装置1を保持した状態で、入力部19の図示せぬシャッタスイッチを下限まで押下する操作(以下、「全押し操作」と呼ぶ)をする。これにより、ワイド画像合成処理が開始される。撮像装置1は、撮像部17の連写動作を開始させる。
【0028】
次に、ユーザは、シャッタスイッチの全押し操作を維持した状態で、まず、図2中上側において、左側から右側の方向に撮像装置1を移動させ、次に、同図中下側に撮像装置1を移動させてから、右側から左側の方向に撮像装置1を移動させる。
【0029】
撮像装置1は、移動中、加速度センサ18の検出結果に基づいて移動量を検出し、その移動量が所定量に達する毎に、撮像部17に被写体を撮像させ、その結果得られるフレーム画像のデータを記憶していくことを繰り返す。
具体的には本例では、撮像装置1は、撮像の開始位置(全押し操作を開始した位置)からの水平方向の移動量が所定量に達すると、1回目の撮像を行い、第1フレーム画像のデータを記憶する。
更に、撮像装置1は、1回目の撮像位置からの移動量が所定量に達すると、2回目の撮像を行い、第2フレーム画像のデータを記憶する。
更に、撮像装置1は、2回目の撮像位置からの移動量が所定量に達すると、3回目の撮像を行い、第3フレーム画像のデータを記憶する。
その後、撮像装置1は、所定量以上の垂直方向の移動を検出すると、水平方向の移動量の総量(全押し操作を開始した位置からの累計移動量)を記憶する。
【0030】
そして、次に、撮像装置1は、所定量以上の垂直方向の移動を検出した位置からの水平方向の移動量が所定量に達すると、4回目の撮像を行い、第4フレーム画像のデータを記憶する。
更に、撮像装置1は、4回目の撮像位置からの移動量が所定量に達すると、5回目の撮像を行い、第5フレーム画像のデータを記憶する。
更に、撮像装置1は、5回目の撮像位置からの移動量が所定量に達すると、6回目の撮像を行い、第6フレーム画像のデータを記憶する。
その後、撮像装置1は、所定量以上の垂直方向の移動を検出する前の移動量と同量の移動を検出すると、撮像部17の連写動作を終了させる。
すると、撮像装置1は、記憶した第1乃至第6のフレーム画像のデータに対してワイド画像合成処理を行い、ワイド画像のデータを生成する。
【0031】
図3は、撮像装置1のワイド画像合成処理の概略を示す模式図である。
撮像装置1は、パノラマ画像データ生成処理により、記憶した第1乃至第3のフレーム画像のデータを撮像順に合成することによって、上側パノラマ画像のデータを生成する。
また、撮像装置1は、パノラマ画像データ生成処理により、記憶した第4乃至第6のフレーム画像のデータを撮像順に合成することによって、下側パノラマ画像のデータを生成する。
そして、撮像装置1は、垂直方向合成処理により、上側パノラマ画像のデータと下側パノラマ画像のデータとを合成し、ワイド画像のデータを生成する。
【0032】
図4は、ワイド画像合成処理における垂直方向合成処理の概略を示す模式図である。
撮像装置1は、垂直方向合成処理において、上側パノラマ画像のデータと下側パノラマ画像のデータとからエネルギーマップを生成する。本実施形態において、「エネルギーマップ」は、次のように生成される。即ち、上側パノラマ画像のデータについて、上側パノラマ画像内の特定の画素(注目画素)と他の画素との類似度及び下側パノラマ画像内の当該注目画素に対応した位置の画素(対応画素)と他の画素との類似度が算出される。そして、これら類似度に基づいて、エネルギーが画素毎に算出される。算出された画素毎のエネルギーが、2次元平面上の分布を表した「エネルギーマップ」であり、後述するαブレンドマップの生成に用いられる。また、本実施形態において、「エネルギー」は、画素が類似するほど小さい値となり、画素が類似しないほど大きい値となる。
ここで、「注目画素」とは、処理対象として注目すべき画素であり、処理対象のパノラマ画像(例えば本実施形態では上側パノラマ画像)を構成する各画素がいわゆるラスター順に順次設定される。
【0033】
次に、撮像装置1は、エネルギーマップを分析し、αブレンドマップを生成する。本実施形態において、「αブレンドマップ」は、上側パノラマ画像のデータと下側パノラマ画像のデータとを合成する際における、上側パノラマ画像のデータに対する下側パノラマ画像のデータの透過度を設定するものであり、フレーム画像と同一解像度であって、透過度を画素値として有する各画素から構成される画像(画素毎の透過度の2次元平面上の分布)である。
例えば、上側パノラマ画像のデータに下側パノラマ画像のデータを重ねる場合におけるαブレンドマップの機能を以下説明する。
なお、以下の説明において、説明便宜のため、透過度を0〜100の数値で説明する。
透過度が0とは、合成する際に、上側パノラマ画像のデータに対して、下側パノラマ画像のデータがそのまま適用されることを示す。
透過度が100とは、合成する際に、上側パノラマ画像のデータに対して、下側パノラマ画像のデータが全く適用されないことを示す。
透過度が0と100との間の値であれば、合成する際に、その値に応じて、上側パノラマ画像のデータと下側パノラマ画像のデータとがブレンドされることを示す。「その値に応じて」とは、例えば、0に近い値であれば、上側パノラマ画像のデータの要素より、下側パノラマ画像のデータの要素が多くブレンドされる。また、100に近い値であれば、下側パノラマ画像のデータの要素より、上側パノラマ画像のデータの要素が多くブレンドされる。
【0034】
図4のαブレンドマップにおいて、黒色部分Bは透過度が0であり、ハッチング部分Gは透過度が0と100との間の値であり、白色部分Wは透過度が100である。
撮像装置1は、このαブレンドマップを用いて、上側パノラマ画像のデータと下側パノラマ画像のデータを合成し、ワイド画像のデータを生成する。
これにより、ワイド画像のデータは、黒色部分Bに下側パノラマ画像のデータがそのまま適用され、ハッチング部分Gに上側パノラマ画像のデータと下側パノラマ画像のデータとがブレンドされたデータが適用され、白色部分Wに上側パノラマ画像のデータがそのまま適用されたデータとなる。
【0035】
次に、図5を参照して、このようなワイド画像合成処理を実行するための撮像装置1の機能的構成について説明する。
図5は、図1の撮像装置1の機能的構成のうち、ワイド画像合成処理を実行するための機能的構成を示す機能ブロック図である。
【0036】
撮像装置1がワイド画像合成処理を実行する場合には、CPU11において撮像制御部(合成制御部)40が機能し、当該撮像制御部40の制御の下に、画像処理部14において、パノラマ画像データ生成部50と、取得部51と、エネルギー算出部52と、エネルギーマップ生成部53と、エネルギー最小経路探索部54と、範囲探索部55と、αブレンド幅決定部56と、αブレンドマップ生成部57と、透過度設定部58と、合成部59と、が機能する。
【0037】
撮像制御部40は、撮像部17の撮像のタイミングを制御する。
具体的には、ワイドモードの状態で、ユーザが、撮像装置1を保持したまま全押し操作をすると、ワイド画像合成処理が開始する。即ち、撮像制御部40は、撮像部17の連写動作を開始させる。
その後、ユーザは、入力部19のシャッタスイッチの全押し操作を維持した状態で、水平方向の例えば被写体の左側から右側に撮像装置1を移動させる。次に、ユーザは、シャッタスイッチの全押し操作を維持した状態で、垂直方向の例えば被写体の上側から下側に撮像装置1を移動させる。次に、ユーザは、シャッタスイッチの全押し操作を維持した状態で、水平方向の例えば被写体の右側から左側に撮像装置1を移動させる。
【0038】
撮像制御部40は、加速度センサ18の検出結果に基づいて、全押し操作が維持されている間、撮像装置1の水平方向の移動量が一定量に達する毎に、撮像部17に撮像させ、その結果得られるフレーム画像のデータを記憶部21のフレームバッファに一時的に記憶していくことを繰り返す。
また、撮像制御部40は、撮像装置1の所定量以上の垂直方向の移動を検出すると、水平方向の総移動量(全押し操作を開始した位置からの累計移動量)を記憶する。
その後、撮像制御部40は、撮像装置1の垂直方向の移動後、水平方向の総移動量が記憶した総移動量(垂直方向の移動を検出する前の移動量の総量)に達すると、撮像制御部40は、撮像部17の連写動作を終了させる。
【0039】
パノラマ画像データ生成部50は、撮像部17によって撮像され、フレームバッファに一時的に記憶されたフレーム画像のデータを撮像順に合成することによってパノラマ画像のデータを生成する。
詳細には、パノラマ画像データ生成部50は、シャッタスイッチの全押し操作されてから、撮像装置1の垂直方向の移動を検出されるまでの間に撮像された複数のフレーム画像のデータを取得する。パノラマ画像データ生成部50は、これらのフレーム画像のデータを合成し、1枚のパノラマ画像のデータ(例えば、図3に示す上側パノラマ画像のデータ)を生成する。
また、パノラマ画像データ生成部50は、撮像装置1の垂直方向の移動を検出後、撮像部17の連写動作が終了されるまでの間に撮像された複数のフレーム画像のデータを取得する。パノラマ画像データ生成部50は、これらのフレーム画像のデータを水平方向に合成し、1枚のパノラマ画像のデータ(例えば、図3に示す下側パノラマ画像のデータ)を生成する。
【0040】
以下に説明する画像処理部14における取得部51、エネルギー算出部52、エネルギーマップ生成部53、エネルギー最小経路探索部54、範囲探索部55、αブレンド幅決定部56、αブレンドマップ生成部57、透過度設定部58及び合成部59は、撮像装置1がパノラマ画像データ生成部50により生成した複数のパノラマ画像のデータを垂直方向に合成する処理を実行するための機能的構成である。
【0041】
取得部51は、パノラマ画像データ生成部50が生成した複数のパノラマ画像のデータを取得する。
【0042】
エネルギー算出部52は、取得部51が取得した複数のパノラマ画像のデータにおける一の画像のデータと当該一の画像の合成対象である他の画像のデータとに基づいて、一の画像のデータ内の注目画素に対応したエネルギーを夫々算出する。
具体的には、エネルギー算出部52は、取得部51が取得した複数のパノラマ画像のデータにおける合成対象となる2つの画像のデータ(例えば、図3に示す上側パノラマ画像のデータ及び下側パノラマ画像のデータ)のうち、一方の画像のデータ(例えば、上側パノラマ画像のデータ)について、一方の画像(例えば、上側パノラマ画像)内の注目画素と他の画素との類似度及び他方の画像(例えば、下側パノラマ画像)内の他の画素と注目画素との類似度に基づいてエネルギーを画素毎に求める。
【0043】
エネルギーマップ生成部53は、エネルギー算出部52により算出された注目画素毎のエネルギーの2次元平面上の分布をエネルギーマップとして生成する。
図6は、エネルギーマップ生成部53におけるエネルギーマップの生成手法の一例を示す模式図である。
図6(a)は、上側パノラマ画像のデータの一部を示している。
図6(b)は、下側パノラマ画像のデータの一部を示している。
図6(c)は、(a)に示す上側パノラマ画像のデータと(b)に示す下側パノラマ画像のデータ間における注目画素とその周辺画素との類似度をエネルギーとして表したエネルギーマップの一部を示している。
また、図6及び後述する図7〜10は、夫々X(水平方向)及びY(垂直方向)に配列された複数のグリッドが示されている。各グリッドは、1つの画素を示す。
エネルギーマップ生成部53は、(c)に示すように、図6(c)中左側から右側に向かって順次各画素のエネルギーを算出し、エネルギーマップを生成する。
【0044】
エネルギーマップ生成部53が、エネルギーマップの生成において、各画素のエネルギーを算出する手法の一例を説明する。
エネルギーマップ生成部53は、(c)に示すエネルギーEを以下のように算出する。
エネルギーマップ生成部53は、(a)に示す上側パノラマ画像の注目画素(座標(x,y))と、この注目画素と周辺に隣接する画素(座標(x+n,y+m))との類似度に基づき、類似度エネルギーEoを算出する。
例えば、周辺画素には、図6のように周辺の一部の画素のみを用いても良い。
【0045】
また、エネルギーマップ生成部53は、(b)に示す下側パノラマ画像のデータにおける、上側パノラマ画像の注目画素の配置位置と対応する位置に配置されている対応注目画素(座標(x,y))と、この対応注目画素と水平方向に隣接する画素(座標(x+n,y+m))との類似度に基づき、対応類似度エネルギーEcを算出する。
例えば、周辺画素には、図6のように周辺の一部の画素のみを用いても良い。
【0046】
更に、エネルギーマップ生成部53は、(c)に示すエネルギーマップにおいて、既にエネルギーを算出した画素のうち、今回エネルギーEを算出する画素の前の列で当該画素に隣接する画素(隣接画素)と、この隣接画素の上下の画素とのエネルギーうち、最も小さいエネルギーEminを算出する。なお、本実施形態では、エネルギーマップ生成部53は、前の列の3つの画素のうちから、最も小さいエネルギーEminを算出するがこれに限られない。例えば、下側パノラマ画像のデータと上側パノラマ画像のデータとの特性に応じて、前の列の5つの画素のうちから、最も小さいエネルギーEminを算出することもできる。
エネルギーマップ生成部53は、算出した類似度エネルギーEo、対応類似度エネルギーEc及びエネルギーEminに基づき、エネルギーEを算出する。
ここで、本実施例において、上側パノラマ画像の注目画素を基準としてEo、Ec、Eminを算出することによりエネルギーEを求めたが、下側パノラマ画像の注目画素を基準としてEo、Ec、Eminを算出することによりエネルギーEを求めても良い。
【0047】
図5に戻って、エネルギー最小経路探索部54は、エネルギーマップ生成部53が生成したエネルギーマップの水平方向において、エネルギーが最小となるエネルギー最小経路を探索する。
図7は、エネルギー最小経路探索部54におけるエネルギー最小経路を探索する手法の一例を示す模式図である。
図7には、エネルギーマップ生成部53が生成したエネルギーマップが示されている。
【0048】
エネルギー最小経路探索部54は、エネルギー算出部52により夫々算出された注目画素のデータのエネルギーが最小となる経路を探索する。詳細には、エネルギー最小経路探索部54は、X方向(水平方向)において、エネルギーマップ生成部53によりエネルギーマップが生成された方向と反対方向に向かってエネルギー最小経路を探索していく。即ち、エネルギーマップにおいて、エネルギーマップ生成部53が最後にエネルギーを算出した列から、最初にエネルギーを算出した列に向かってエネルギー最小経路を探索していく。
具体的には、エネルギー最小経路探索部54は、エネルギーマップ生成部53が最後にエネルギーを算出した列において、最もエネルギーが小さい画素を探索する。次に、エネルギー最小経路探索部54は、探索した画素と隣接する画素と、この隣接する画素の上下の画素とのエネルギーうち、最もエネルギーが小さい画素を探索する。エネルギー最小経路探索部54は、同様の探索をエネルギーマップ生成部53が最初にエネルギーを算出した列まで行うことで、エネルギー最小経路Rを探索する。
また、エネルギー最小経路Rの探索は、上述の方法に限らず、例えば、グラフカット技術により行っても良い。なお、グラフカット技術に関しては、例えば、”Interactive Digital Photomontage” A. Agarwala et al. ACM SIGGRAPH, 2004に開示されているため、本実施例において詳細には説明しない。
【0049】
図5に戻って、範囲探索部55は、エネルギー最小経路探索部54により探索されたエネルギー最小経路における一の画像のデータ内の各注目画素の値と類似する値を有する画素の範囲を探索する。また、範囲探索部55は、エネルギーマップ生成部53により生成されたエネルギーマップの所定方向と直交する方向において、エネルギーが最小となる経路を探索する。
図8は、範囲探索部55のエネルギー最小経路における一の画像のデータ内の各注目画素の値と類似する値を有する画素の範囲を探索する手法の一例を示す模式図である。
図8には、エネルギーマップ生成部53が生成したエネルギーマップと、このエネルギーマップにおいて、エネルギー最小経路探索部54が探索したエネルギー最小経路Rが示されている。
【0050】
範囲探索部55は、エネルギーマップのY方向(垂直方向)に向かって、エネルギー最小経路Rにおける各画素のエネルギーとエネルギーの差分が所定の平坦度合いである画素を探索する。範囲探索部55は、エネルギー最小経路Rにおける各画素の夫々について、所定の平坦度合いである画素を探索することで、所定の平坦度合いである範囲R’を探索する。本実施形態において「所定の平坦度合い」とは、例えば、エネルギー最小経路Rにおける各画素のエネルギーとエネルギーの差分が所定値以内であることを呼ぶ。また、「エネルギーの差分」は、例えば、画素における輝度値の差の絶対値の他、色相値や色差値の相違を用いることができる。
つまり、範囲探索部55は、エネルギー最小経路Rにおける各画素の値(輝度値色相値、色差値等)と類似した(所定値以内に収まる)値を有する画素の幅を範囲R’として探索する。
【0051】
また、範囲探索部55は、重み付けをして、所定の平坦度合いである範囲を探索することもできる。「重み付け」は、例えば、エネルギー最小経路Rにおける各画素のエネルギーの大きさに応じた値や、エネルギー最小経路Rからの距離に応じた値を、実際のエネルギーの差分に乗じたり、加算したりすることにより行うことができる。
【0052】
図5に戻って、αブレンド幅決定部56は、範囲探索部55により探索された画素の範囲に基づき、エネルギー最小経路を起点とするブレンド幅を決定する。詳細には、αブレンド幅決定部56は、エネルギーマップの所定方向において、エネルギー最小経路探索部54により探索された経路とエネルギーとの差分が所定の平坦度合いである範囲を類似する値を有する画素の範囲として探索し、ブレンド幅を決定する。
図9は、αブレンド幅決定部56におけるブレンド幅を決定する手法の一例を示す模式図である。
図9には、エネルギーマップ生成部53が生成したエネルギーマップと、このエネルギーマップにおいて、エネルギー最小経路探索部54が探索したエネルギー最小経路Rと範囲探索部55が探索した所定の平坦度合いである範囲R’が示されている。
【0053】
αブレンド幅決定部56は、エネルギー最小経路Rを一端とするαブレンド幅の他端となるαブレンド幅終点経路R’’を算出する。
具体的には、αブレンド幅決定部56は、エネルギー最小経路Rの始点となる画素と、複数のパノラマ画像のデータを合成する方向、即ち、Y方向(垂直方向)において隣接する画素をαブレンド幅終点経路R’’の始点とする。αブレンド幅決定部56は、この始点となる画素の周辺の画素からエネルギー最小経路Rと同方向に、αブレンド幅終点経路R’’を形成する画素を探索する。αブレンド幅決定部56は、同様の手法で、エネルギー最小経路Rと同方向に、探索した画素の周辺の画素から順次αブレンド幅終点経路R’’を形成する画素を探索する。αブレンド幅決定部56は、αブレンド幅終点経路R’’を形成する画素を、例えば、エネルギーマップの所定の列におけるエネルギー最小経路Rと所定の平坦度合いである範囲R’の画素のエネルギーの大きさに基づき探索する。
【0054】
また、αブレンド幅決定部56は、重み付けをして、ブレンド幅を決定することもできる。「重み付け」は、例えば、エネルギー最小経路Rにおける各画素のエネルギーの大きさに応じた値や、エネルギー最小経路Rからの距離に応じた値を、エネルギーマップの所定の列におけるエネルギー最小経路Rと所定の平坦度合いである範囲R’の画素のエネルギーの差分に乗じたり、加算したりすることにより行うことができる。
また、「重み付け」は、例えば、撮像装置1における撮影条件に応じた値を、エネルギーマップの所定の列におけるエネルギー最小経路Rと所定の平坦度合いである範囲R’の画素のエネルギーに乗じたり、加算したりすることにより行うことができる。ここで、「撮影条件」とは、例えば、撮像時にフラッシュが使用されたか否か等である。
【0055】
図5に戻って、αブレンドマップ生成部57は、αブレンド幅決定部56が決定したブレンド幅に基づき、上側パノラマ画像に対する下側パノラマ画像の透過度を設定するαブレンドマップを生成する。
図10は、αブレンドマップ生成部57におけるαブレンドマップを生成する手法の一例を示す模式図である。
図10には、αブレンドマップ生成部57が生成したαブレンドマップに、説明に用いる、エネルギー最小経路探索部54が探索したエネルギー最小経路Rと、αブレンド幅決定部56が算出したαブレンド幅終点経路R’’と、が示されている。
【0056】
αブレンドマップ生成部57は、画素の各列において、エネルギー最小経路Rを形成する画素から、X方向(垂直方向)に向かって、αブレンド幅終点経路R’’を形成する画素までの間で、透過度が変化するαブレンドマップを生成する。
具体的には、αブレンドマップ生成部57は、画素の列毎に、エネルギー最小経路Rを形成する画素とαブレンド幅終点経路R’’を形成する画素との間で、透過度が0から100に変化するブレンドマップを生成する。即ち、透過度の変化の度合いは、エネルギー最小経路Rを形成する画素とαブレンド幅終点経路R’’を形成する画素との距離により異なる。
【0057】
図5に戻って、透過度設定部58は、αブレンドマップ生成部57により生成されたマップに対応した透過度を設定する。即ち、透過度設定部58は、αブレンド幅決定部56により決定されたブレンド幅に基づき、上側パノラマ画像に対する下側パノラマ画像の透過度を設定する。
【0058】
合成部59は、αブレンドマップ生成部57が生成したαブレンドマップを用いて、即ち、αブレンド幅決定部56により決定されたブレンド幅と透過度設定部58により設定された透過度とに基づいて、上側パノラマ画像と下側パノラマ画像の各データを垂直方向に合成し、ワイド画像のデータを生成する(図4参照)。
【0059】
次に、このような図5の機能的構成を有する図1の撮像装置1が実行する処理のうち、ワイド画像合成処理の流れについて図11を用いて説明する。
図11は、撮像装置1が実行するワイド画像合成処理の流れを説明するフローチャートである。
【0060】
ワイド画像合成処理は、本実施形態においては、撮像装置1の動作モードがワイドモードに切り替えられた後、ユーザが入力部19の図示せぬシャッタスイッチを全押し操作して、撮像の指示をしたことを契機として開始される。
【0061】
ステップS1において、パノラマ画像データ生成部50は、撮像部17に撮像され、フレームバッファに一時的に記憶されたフレーム画像のデータを撮像順に合成することによってパノラマ画像のデータを生成する。
【0062】
ステップS2において、合成制御部40は、所定の条件を満たしたか否かを判定し、所定の条件を満たしたと判定した場合はステップS3に処理を移し、所定の条件を満たしていないと判定した場合はステップS1に処理を戻す。本実施形態において「所定の条件」とは、撮像装置1が水平方向に移動され、その後、垂直方向に移動され、更に水平方向に移動されることによって、2枚のパノラマ画像のデータが生成されていることである。
【0063】
ステップS3において、画像処理部14における取得部51、エネルギー算出部52、エネルギーマップ生成部53、エネルギー最小経路探索部54、範囲探索部55、αブレンド幅決定部56、αブレンドマップ生成部57、透過度設定部58及び合成部59は、協働して垂直方向合成処理を実行する。詳しくは後述するが、垂直方向合成処理において、取得部51、エネルギー算出部52、エネルギーマップ生成部53、エネルギー最小経路探索部54、範囲探索部55、αブレンド幅決定部56、αブレンドマップ生成部57、透過度設定部58及び合成部59は、ステップS1でパノラマ画像データ生成部50が生成したパノラマ画像のデータを合成し、ワイド画像のデータを生成する。
【0064】
ステップS4において、合成制御部40は、ステップS3で生成されたワイド画像のデータをリムーバブルメディア31に記憶する。
【0065】
次に、図12を参照して、図11に示すワイド画像合成処理のうち、垂直方向合成処理について説明する。
図12は、撮像装置1が実行する垂直方向合成処理の流れを説明するフローチャートである。
【0066】
ステップS31において、取得部51は、ステップS1でパノラマ画像データ生成部50が生成した複数のパノラマ画像のデータ(例えば、図3に示す上側パノラマ画像のデータ及び下側パノラマ画像のデータ)を取得する。
【0067】
ステップS32において、エネルギー算出部52は、ステップS31で取得部51が取得した複数のパノラマ画像における上側パノラマ画像のデータと下側パノラマ画像のデータとに基づいて、上側パノラマ画像のデータ内の注目画素に対応したエネルギーを夫々算出する。そして、エネルギーマップ生成部53は、エネルギー算出部52により算出された注目画素毎のエネルギーの2次元平面上の分布をエネルギーマップ(図6参照)として生成する。
【0068】
ステップS33において、エネルギー最小経路探索部54は、ステップS32でエネルギー算出部52により夫々算出された注目画素のデータのエネルギーが最小となる経路を探索する。詳細には、エネルギー最小経路探索部54は、ステップS32でエネルギーマップ生成部53が生成したエネルギーマップの水平方向において、エネルギーが最小となるエネルギー最小経路R(図7参照)を探索する。
【0069】
ステップS34において、範囲探索部55は、ステップS33でエネルギー最小経路探索部54により探索されたエネルギー最小経路における一の画像のデータ内の各注目画素の値と類似する値を有する画素の範囲を探索する。詳細には、範囲探索部55は、エネルギーマップの垂直方向(複数のパノラマ画像のデータを合成する方向)において、ステップS33でエネルギー最小経路探索部54が探索したエネルギー最小経路Rとエネルギーの差分が所定の平坦度合いである範囲R’(図8参照)を探索する。
【0070】
ステップS35において、αブレンド幅決定部56は、ステップS34で範囲探索部55により探索された画素の範囲に基づき、エネルギー最小経路を起点とするブレンド幅を決定する。詳細には、αブレンド幅決定部56は、ステップS34で範囲探索部55が探索した所定の平坦度合いである範囲R’に基づき、ステップS33でエネルギー最小経路探索部54が探索したエネルギー最小経路Rを起点とするブレンド幅(図9参照)を決定する。図9では、例えば、R’’は、RとR’のほぼ中間位置であり、この場合、αブレンド幅決定部56は、RとR’’の間の画素分をブレンド幅として決定する。
【0071】
ステップS36において、αブレンドマップ生成部57は、ステップS35でαブレンド幅決定部56が決定したブレンド幅に基づき、上側パノラマ画像に対する下側パノラマ画像の透過度を設定するαブレンドマップ(図10参照)を生成する。透過度設定部58は、αブレンドマップ生成部57により生成されたαブレンドマップに対応した透過度を設定する。
【0072】
ステップS37において、合成部59は、ステップS36でαブレンドマップ生成部57が生成したαブレンドマップを用いて、即ち、ステップS35でαブレンド幅決定部56により決定されたブレンド幅とステップS36で透過度設定部58により設定された透過度とに基づいて、上側パノラマ画像と下側パノラマ画像の各データを垂直方向に合成し、ワイド画像のデータを生成する(図4参照)。
【0073】
以上説明したように、本実施形態の撮像装置1は、画像処理部14において、エネルギー算出部52、エネルギーマップ生成部53、エネルギー最小経路探索部54、範囲探索部55、αブレンド幅決定部56、αブレンドマップ生成部57、透過度設定部58及び合成部59、を備える。
撮像装置1は、複数の画像のデータを所定方向に合成してワイド画像のデータを生成する画像処理装置である。
エネルギー算出部52は、複数の画像のデータにおける一の画像と当該一の画像の合成対象である他の画像とに基づいて、一の画像内の注目画素に対応したエネルギーを夫々算出する。
エネルギー最小経路探索部54は、エネルギー算出部52により夫々算出された注目画素のエネルギーが最小となるエネルギー最小経路Rを探索する。
範囲探索部55は、エネルギー最小経路探索部54により探索されたエネルギー最小経路Rにおける一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する。
αブレンド幅決定部56は、範囲探索部55により探索された画素の範囲に基づき、エネルギー最小経路を起点とするブレンド幅を決定する。
透過度設定部58は、αブレンド幅決定部56により決定されたブレンド幅に基づき、他の画像に対する一の画像の透過度を設定する。
合成部59は、ブレンド幅と透過度設定部58により設定された透過度とに基づいて、一の画像と他の画像とを合成する。
【0074】
これにより、合成対象である他の画像とに基づいて、一の画像内の注目画素に対応したエネルギーから、複数の画像のデータの繋ぎ合わせ部分となるエネルギー最小経路を探索できる。そして、このエネルギー最小経路を起点としたブレンド幅における、一方の画像に対する他方の画像の透過度を設定し、複数の画像のデータを合成できる。
したがって、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【0075】
エネルギーマップ生成部53は、エネルギー算出部52により算出された注目画素毎のエネルギーの2次元平面上の分布をエネルギーマップとして生成する。
範囲探索部55は、エネルギーマップ生成部53により生成されたエネルギーマップの所定方向と直交する方向において、エネルギーが最小となる経路を探索する。
【0076】
これにより、エネルギーマップから、複数の画像のデータの繋ぎ合わせ部分となるエネルギー最小経路を探索できる。そして、このエネルギー最小経路を起点としたブレンド幅における、一方の画像に対する他方の画像の透過度を設定し、複数の画像のデータを合成できる。
したがって、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【0077】
αブレンド幅決定部56は、エネルギーマップの所定方向において、エネルギー最小経路探索部54により探索されたエネルギー最小経路Rとエネルギーとの差分が所定の平坦度合いである範囲を類似する値を有する画素の範囲として探索する。
【0078】
これにより、エネルギー最小経路とエネルギーとの差分が所定の平坦度合いである範囲をブレンド幅に決定できる。
したがって、所定の平坦度合いの範囲でブレンド幅に決定することで、合成後の広角画像の繋ぎ合わせの部分の違和感を更に低減できる。
【0079】
αブレンドマップ生成部57は、透過度設定部58による透過度を設定するためのαブレンドマップを生成する。
透過度設定部58は、αブレンドマップ生成部57により生成されるαブレンドマップに対応した透過度を設定する。
これにより、αブレンドマップに対応した透過度を設定し、複数の画像のデータを合成できる。
したがって、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【0080】
αブレンドマップ生成部57は、αブレンドマップ生成部57は、エネルギー最小経路Rを起点として、複数の画像のデータの合成方向に向かって、透過度が変化するブレンドマップを生成する。
したがって、ブレンドマップのブレンド幅における透過度を変化させることで、合成後の広角画像の繋ぎ合わせの部分の違和感を更に低減できる。
【0081】
また、撮像装置1は、複数の画像のデータの少なくとも一部を垂直方向に合成してワイド画像のデータを生成するので、複数の画像のデータを垂直方向に合成した場合に、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【0082】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【0083】
例えば、上述の実施形態においては、撮像装置1を水平方向に移動させ、その後、垂直方向に移動させ、更に水平方向に移動させることによって、2枚のパノラマ画像のデータを生成しているが、これに限られない。例えば、撮像装置1を水平方向に移動させ、垂直方向に移動させ、更に水平方向に移動させ、その後、更に垂直方向に移動させ、水平方向に移動させることによって、3枚のパノラマ画像のデータを生成してもよい。同様に、撮像装置1をn回(nは整数)の垂直移動を挟んで、n+1回の水平方向への移動を行うことで、n+1枚のパノラマ画像のデータを生成してもよい。
【0084】
また、上述の実施形態において、エネルギー算出部52、エネルギーマップ生成部53、エネルギー最小経路探索部54、範囲探索部55、αブレンド幅決定部56、αブレンドマップ生成部57、透過度設定部58及び合成部59は、撮像装置1がパノラマ画像データ生成部50により生成した複数のパノラマ画像のデータを垂直方向に合成する処理を実行するための機能的構成として、説明しているが、特にこれに限られない。例えば、エネルギー算出部52、エネルギーマップ生成部53、エネルギー最小経路探索部54、範囲探索部55、αブレンド幅決定部56、αブレンドマップ生成部57、透過度設定部58及び合成部59は、複数の画像のデータを水平方向に合成する処理を実行するための機能的構成としてもよい。
【0085】
この場合、エネルギー算出部52は、垂直方向に向かって順次各画素のエネルギーを算出し、エネルギーマップ生成部53は、エネルギー算出部52が算出したエネルギーによりエネルギーマップを生成する。
エネルギー最小経路探索部54は、垂直方向において、エネルギーマップ生成部53によりエネルギーマップが生成された方向と反対方向に向かってエネルギー最小経路を探索していく。
範囲探索部55は、エネルギーマップの水平方向(複数のパノラマ画像のデータを合成する方向)において、エネルギー最小経路探索部54が探索したエネルギー最小経路とエネルギーの差分が所定の平坦度合いである範囲を探索する。
αブレンド幅決定部56は、エネルギー最小経路と同方向(垂直方向)に、αブレンド幅終点経路を形成する画素を探索し、ブレンド幅を決定する。
αブレンドマップ生成部57は、αブレンド幅決定部56が決定したブレンド幅に基づき、例えば、右側の画像に対する左側の画像の透過度を設定するαブレンドマップを生成する。
透過度設定部58は、αブレンドマップ生成部57により生成されたαブレンドマップにより透過度を設定する。
合成部59は、ブレンド幅と透過度設定部58により設定された透過度とに基づいて、右側の画像と左側の画像の各データを水平方向に合成し、ワイド画像のデータを生成する。
【0086】
また、上述の実施形態では、本発明が適用される撮像装置1は、デジタルカメラを例として説明したが、特にこれに限定されない。
例えば、本発明は、表示制御機能を有する電子機器一般に適用することができる。具体的には、例えば、本発明は、ノート型のパーソナルコンピュータ、プリンタ、テレビジョン受像機、ビデオカメラ、携帯型ナビゲーション装置、携帯電話機、ポータブルゲーム機等に適用可能である。
【0087】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
換言すると、図5の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が撮像装置1に備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に図5の例に限定されない。例えば、CPU11において機能する機能ブロックを、画像処理部14において機能するようにしてもよいし、逆に、画像処理部14において機能する機能ブロックを、CPU11において機能するようにしてもよい。
また、1つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【0088】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであってもよい。
【0089】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布される図1のリムーバブルメディア31により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。リムーバブルメディア31は、例えば、磁気ディスク(フロッピディスクを含む)、光ディスク、又は光磁気ディスク等により構成される。光ディスクは、例えば、CD−ROM(Compact Disk−Read Only Memory),DVD(Digital Versatile Disk)等により構成される。光磁気ディスクは、MD(Mini−Disk)等により構成される。また、装置本体に予め組み込まれた状態でユーザに提供される記録媒体は、例えば、プログラムが記録されている図1のROM12や、図1の記憶部21に含まれるハードディスク等で構成される。
【0090】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
【0091】
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、更に、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0092】
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[付記1]
複数の画像を所定方向に合成して広角画像を生成する画像処理装置であって、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出手段と、
前記エネルギー算出手段により夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索手段と、
前記エネルギー最小経路探索手段により探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段と、
前記範囲探索手段により探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定手段と、
前記ブレンド幅決定手段により決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定手段と、
前記ブレンド幅と前記透過度設定手段により設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成手段と
を備えることを特徴とする画像処理装置。
[付記2]
前記エネルギー算出手段により算出された注目画素毎のエネルギーの2次元平面上の分布をエネルギーマップとして生成するエネルギーマップ生成手段を更に備え、
前記範囲探索手段は、前記エネルギーマップ生成手段により生成されたエネルギーマップの前記所定方向と直交する方向において、前記エネルギーが最小となる経路を探索することを特徴とする付記1記載の画像処理装置。
[付記3]
前記ブレンド幅決定手段は、前記エネルギーマップの前記所定方向において、前記エネルギー最小経路探索手段により探索された経路と前記エネルギーとの差分が所定の平坦度合いである範囲を前記類似する値を有する画素の範囲として探索することを特徴とする付記2記載の画像処理装置。
[付記4]
前記透過度設定手段による透過度を設定するためのマップを生成するマップ生成手段を更に備え、
前記透過度設定手段は、前記マップ生成手段により生成されるマップに対応した透過度を設定することを特徴とする付記1乃至3のいずれか記載の画像処理装置。
[付記5]
前記マップ生成手段は、前記エネルギー最小経路探索手段により探索された経路を起点として、前記所定方向に向かって、前記透過度が変化するマップを生成することを特徴とする付記4記載の画像処理装置。
[付記6]
前記所定方向は垂直方向であり、前記複数の画像のデータの少なくとも一部を垂直方向に合成して前記広角画像のデータを生成することを特徴とする付記1乃至5のいずれか記載の画像処理装置。
[付記7]
複数の画像のデータを所定方向に合成して広角画像のデータを生成する画像処理装置が実行する画像処理方法であって、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出ステップと、
前記エネルギー算出ステップにて夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索ステップと、
前記エネルギー最小経路探索ステップにて探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索ステップと、
前記範囲探索ステップにて探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定ステップと、
前記ブレンド幅決定ステップにて決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定ステップと、
前記ブレンド幅と前記透過度設定ステップにて設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成ステップと、
を含むことを特徴とする画像処理方法。
[付記8]
複数の画像のデータを所定方向に合成して広角画像のデータを生成する画像処理装置を制御するコンピュータを、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出手段と、
前記エネルギー算出手段により夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索手段、
前記エネルギー最小経路探索手段により探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段、
前記範囲探索手段により探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定手段、
前記ブレンド幅決定手段により決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定手段、
前記ブレンド幅と前記透過度設定手段により設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成手段、
として機能させることを特徴とするプログラム。
【符号の説明】
【0093】
1・・・撮像装置、11・・・CPU、12・・・ROM、13・・・RAM、14・・・画像処理部、15・・・パス、16・・・入出力インターフェース、17・・・撮像部、18・・・加速度センサ、19・・・入力部、20・・・出力部20、21・・・記憶部、22・・・通信部、23・・・ドライブ、31・・・リムーバブルメディア、40・・・撮像制御部(合成制御部)、50・・・パノラマ画像データ生成部、51・・・取得部、52・・・エネルギー算出部、53・・・エネルギーマップ作成部、54・・・エネルギー最小経路探索部、55・・・範囲探索部、56・・・αブレンド幅決定部、57・・・αブレンドマップ作成部、58・・・合成部
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
従来より、連続して撮影された複数の画像の同一の特徴点が一致するように、当該複数の画像のデータを合成することによって、パノラマ画像等の広角画像のデータを生成する技術が知られている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平11−282100号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、一般に、複数の画像同士で、シェーディングによる影響や、シャッタ釦の押下タイミングや、撮像素子の露光のタイミング等の撮像条件を完全に一致させることは困難である。このため、複数の画像のデータを合成して1枚の広角画像のデータを生成する場合、合成後の広角画像のデータは、複数の画像の各々の撮像条件の相違による露出値の差の影響を受ける。
また、撮像装置を2次元に動かしながら複数の画像を撮像し、これら複数の画像のデータを合成して広角画像のデータを生成する場合がある。この場合、上記特許文献1の合成の技術を応用しても、生成された広角画像のデータは、複数の画像同士で各々露出値が異なるため、特徴点の位置合わせが正確に行えず、画像の繋ぎ合わせの部分に輝度ムラ等が生じる場合があった。このため、合成後の広角画像が表示されると鑑賞者は違和感を覚えてしまうという虞がある。
【0005】
本発明は、このような状況に鑑みてなされたものであり、合成後の広角画像の繋ぎ合わせの部分の違和感を低減することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明の一態様の画像処理装置は、
複数の画像を所定方向に合成して広角画像を生成する画像処理装置であって、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出手段と、
前記エネルギー算出手段により夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索手段と、
前記エネルギー最小経路探索手段により探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段と、
前記範囲探索手段により探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定手段と、
前記ブレンド幅決定手段により決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定手段と、
前記ブレンド幅と前記透過度設定手段により設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成手段と
を備えたことを特徴とする。
【発明の効果】
【0007】
本発明によれば、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【図面の簡単な説明】
【0008】
【図1】本発明の一実施形態に係る撮像装置のハードウェアの構成を示すブロック図である。
【図2】ワイド画像のデータの生成手法の一例を示す模式図である。
【図3】撮像装置のワイド画像合成処理の概略を示す模式図である。
【図4】ワイド画像合成処理における垂直方向合成処理の概略を示す模式図である。
【図5】図1の撮像装置の機能的構成のうち、ワイド画像合成処理を実行するための機能的構成を示す機能ブロック図である。
【図6】エネルギーマップ生成部におけるエネルギーマップの生成手法の一例を示す模式図である。
【図7】エネルギー最小経路探索部におけるエネルギー最小経路を探索する手法の一例を示す模式図である。
【図8】範囲探索部のエネルギー最小経路における一の画像のデータ内の各注目画素の値と類似する値を有する画素の範囲を探索する手法の一例を示す模式図である。
【図9】αブレンド幅決定部におけるブレンド幅を決定する手法の一例を示す模式図である。
【図10】αブレンドマップ生成部におけるαブレンドマップを生成する手法の一例を示す模式図である。
【図11】撮像装置が実行するワイド画像合成処理の流れを説明するフローチャートである。
【図12】撮像装置が実行する垂直方向合成処理の流れを説明するフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、画像処理装置の一例として撮像装置1について、図面を用いて説明する。
【0010】
図1は、本発明の一実施形態に係る撮像装置1のハードウェアの構成を示すブロック図である。
撮像装置1は、例えばデジタルカメラして構成される。
【0011】
撮像装置1は、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、画像処理部14と、バス15と、入出力インターフェース16と、撮像部17と、加速度センサ18、入力部19と、出力部20と、記憶部21と、通信部22と、ドライブ23と、を備えている。
【0012】
CPU11は、ROM12に記録されているプログラム、又は、記憶部21からRAM13にロードされたプログラムに従って各種の処理を実行する。
【0013】
RAM13には、CPU11が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【0014】
画像処理部14は、DSP(Digital Signal Processor)や、VRAM(Video Random Access Memory)等から構成されており、CPU11と協働して、画像のデータに対して各種画像処理を施す。
【0015】
CPU11、ROM12、RAM13及び画像処理部14は、バス15を介して相互に接続されている。このバス15にはまた、入出力インターフェース16も接続されている。入出力インターフェース16には、撮像部17、加速度センサ18、入力部19、出力部20、記憶部21、通信部22及びドライブ23が接続されている。
【0016】
撮像部17は、図示はしないが、光学レンズ部と、イメージセンサと、を備えている。
【0017】
光学レンズ部は、被写体を撮像するために、光を集光するレンズ、例えばフォーカスレンズやズームレンズ等で構成される。
フォーカスレンズは、イメージセンサの受光面に被写体像を結像させるレンズである。ズームレンズは、焦点距離を一定の範囲で自在に変化させるレンズである。
光学レンズ部にはまた、必要に応じて、焦点、露出、ホワイトバランス等の設定パラメータを調整する周辺回路が設けられる。
【0018】
イメージセンサは、光電変換素子や、AFE(Analog Front End)等から構成される。
光電変換素子は、例えばCMOS(Complementary Metal Oxide Semiconductor)型の光電変換素子等から構成される。光電変換素子には、光学レンズ部から被写体像が入射される。そこで、光電変換素子は、被写体像を光電変換(撮像)して画像信号を一定時間蓄積し、蓄積した画像信号をアナログ信号としてAFEに順次供給する。
AFEは、このアナログの画像信号に対して、A/D(Analog/Digital)変換処理等の各種信号処理を実行する。各種信号処理によって、ディジタル信号が生成され、撮像部17の出力信号として出力される。
【0019】
ここで、1回の撮像動作により、撮像部17から出力される出力信号を、以下、「フレーム画像のデータ」と呼ぶ。即ち、連写動作とは複数回の撮像動作の繰り返しであることから、連写動作により、複数のフレーム画像のデータが撮像部17から出力される。
本実施形態では、フレーム画像として、アスペクト比(横縦比)が4:3のノーマル画像が採用されている。
【0020】
加速度センサ18は、撮像装置1の速度や加速度を検出可能に構成される。
入力部19は、各種釦等で構成され、ユーザの指示操作に応じて各種情報を入力する。
出力部20は、ディスプレイやスピーカ等で構成され、画像や音声を出力する。本実施形態の出力部20には、ノーマル画像を画面全体に表示できるように、アスペクト比(横縦比)が4:3のディスプレイが設けられている。
【0021】
記憶部21は、ハードディスク或いはDRAM(Dynamic Random Access Memory)等で構成され、各種画像のデータを記憶する。
通信部22は、インターネットを含むネットワークを介して他の装置(図示せず)との間で行う通信を制御する。
【0022】
ドライブ23には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア31が適宜装着される。ドライブ23によってリムーバブルメディア31から読み出されたプログラムは、必要に応じて記憶部21にインストールされる。また、リムーバブルメディア31は、記憶部21に記憶されている画像のデータ等の各種データも、記憶部21と同様に記憶することができる。
【0023】
このような構成を有する撮像装置1は、ワイド画像合成処理を実行することができる。
本実施形態において、「ワイド画像合成処理」とは、撮像部17に連写動作をさせ、その結果得られる複数枚のフレーム画像のデータを合成することによって複数枚のパノラマ画像のデータを生成し、これらの生成した複数枚のパノラマ画像のデータを合成することによってワイド画像を生成するまでの一連の処理である。
【0024】
ここで、ワイド画像合成処理の理解を容易なものとすべく、ワイド画像合成処理の概要を説明する。ワイド画像合成処理の概要の説明では、先ず、図2を参照して、撮像装置1におけるワイド画像のデータの生成手法の概略について説明し、次に、図3を参照して、撮像装置1におけるワイド画像合成処理の概略について説明し、図4を参照して、ワイド画像合成処理における垂直方向合成処理の概略について説明する。
【0025】
図2は、ワイド画像のデータの生成手法の一例を示す模式図である。
図2においては、ユーザが建物をワイド画像として撮像する場合の例が図示されている。本実施形態において、左側から右側又は右側から左側への方向は「水平方向」と呼び、上側から下側又は下側から上側への方向は「垂直方向」と呼ぶ。また、本実施形態において、複数枚のフレーム画像のデータを水平方向に合成することによって生成する画像を「パノラマ画像」と呼び、複数枚のパノラマ画像のデータを垂直方向に合成することによって生成する広角画像を「ワイド画像」をと呼ぶ。
【0026】
本実施形態では、撮像装置1の動作モードとして、ノーマル画像を撮像するモード(以下、「ノーマルモード」と呼ぶ)と、ワイド画像を撮像するモード(以下、「ワイドモード」と呼ぶ)とが存在する。
そこで、ユーザは、入力部19に対して所定の操作をすることで、撮像装置1の動作モードをワイドモードに切り替える。
【0027】
次に、ユーザは、撮像装置1を保持した状態で、入力部19の図示せぬシャッタスイッチを下限まで押下する操作(以下、「全押し操作」と呼ぶ)をする。これにより、ワイド画像合成処理が開始される。撮像装置1は、撮像部17の連写動作を開始させる。
【0028】
次に、ユーザは、シャッタスイッチの全押し操作を維持した状態で、まず、図2中上側において、左側から右側の方向に撮像装置1を移動させ、次に、同図中下側に撮像装置1を移動させてから、右側から左側の方向に撮像装置1を移動させる。
【0029】
撮像装置1は、移動中、加速度センサ18の検出結果に基づいて移動量を検出し、その移動量が所定量に達する毎に、撮像部17に被写体を撮像させ、その結果得られるフレーム画像のデータを記憶していくことを繰り返す。
具体的には本例では、撮像装置1は、撮像の開始位置(全押し操作を開始した位置)からの水平方向の移動量が所定量に達すると、1回目の撮像を行い、第1フレーム画像のデータを記憶する。
更に、撮像装置1は、1回目の撮像位置からの移動量が所定量に達すると、2回目の撮像を行い、第2フレーム画像のデータを記憶する。
更に、撮像装置1は、2回目の撮像位置からの移動量が所定量に達すると、3回目の撮像を行い、第3フレーム画像のデータを記憶する。
その後、撮像装置1は、所定量以上の垂直方向の移動を検出すると、水平方向の移動量の総量(全押し操作を開始した位置からの累計移動量)を記憶する。
【0030】
そして、次に、撮像装置1は、所定量以上の垂直方向の移動を検出した位置からの水平方向の移動量が所定量に達すると、4回目の撮像を行い、第4フレーム画像のデータを記憶する。
更に、撮像装置1は、4回目の撮像位置からの移動量が所定量に達すると、5回目の撮像を行い、第5フレーム画像のデータを記憶する。
更に、撮像装置1は、5回目の撮像位置からの移動量が所定量に達すると、6回目の撮像を行い、第6フレーム画像のデータを記憶する。
その後、撮像装置1は、所定量以上の垂直方向の移動を検出する前の移動量と同量の移動を検出すると、撮像部17の連写動作を終了させる。
すると、撮像装置1は、記憶した第1乃至第6のフレーム画像のデータに対してワイド画像合成処理を行い、ワイド画像のデータを生成する。
【0031】
図3は、撮像装置1のワイド画像合成処理の概略を示す模式図である。
撮像装置1は、パノラマ画像データ生成処理により、記憶した第1乃至第3のフレーム画像のデータを撮像順に合成することによって、上側パノラマ画像のデータを生成する。
また、撮像装置1は、パノラマ画像データ生成処理により、記憶した第4乃至第6のフレーム画像のデータを撮像順に合成することによって、下側パノラマ画像のデータを生成する。
そして、撮像装置1は、垂直方向合成処理により、上側パノラマ画像のデータと下側パノラマ画像のデータとを合成し、ワイド画像のデータを生成する。
【0032】
図4は、ワイド画像合成処理における垂直方向合成処理の概略を示す模式図である。
撮像装置1は、垂直方向合成処理において、上側パノラマ画像のデータと下側パノラマ画像のデータとからエネルギーマップを生成する。本実施形態において、「エネルギーマップ」は、次のように生成される。即ち、上側パノラマ画像のデータについて、上側パノラマ画像内の特定の画素(注目画素)と他の画素との類似度及び下側パノラマ画像内の当該注目画素に対応した位置の画素(対応画素)と他の画素との類似度が算出される。そして、これら類似度に基づいて、エネルギーが画素毎に算出される。算出された画素毎のエネルギーが、2次元平面上の分布を表した「エネルギーマップ」であり、後述するαブレンドマップの生成に用いられる。また、本実施形態において、「エネルギー」は、画素が類似するほど小さい値となり、画素が類似しないほど大きい値となる。
ここで、「注目画素」とは、処理対象として注目すべき画素であり、処理対象のパノラマ画像(例えば本実施形態では上側パノラマ画像)を構成する各画素がいわゆるラスター順に順次設定される。
【0033】
次に、撮像装置1は、エネルギーマップを分析し、αブレンドマップを生成する。本実施形態において、「αブレンドマップ」は、上側パノラマ画像のデータと下側パノラマ画像のデータとを合成する際における、上側パノラマ画像のデータに対する下側パノラマ画像のデータの透過度を設定するものであり、フレーム画像と同一解像度であって、透過度を画素値として有する各画素から構成される画像(画素毎の透過度の2次元平面上の分布)である。
例えば、上側パノラマ画像のデータに下側パノラマ画像のデータを重ねる場合におけるαブレンドマップの機能を以下説明する。
なお、以下の説明において、説明便宜のため、透過度を0〜100の数値で説明する。
透過度が0とは、合成する際に、上側パノラマ画像のデータに対して、下側パノラマ画像のデータがそのまま適用されることを示す。
透過度が100とは、合成する際に、上側パノラマ画像のデータに対して、下側パノラマ画像のデータが全く適用されないことを示す。
透過度が0と100との間の値であれば、合成する際に、その値に応じて、上側パノラマ画像のデータと下側パノラマ画像のデータとがブレンドされることを示す。「その値に応じて」とは、例えば、0に近い値であれば、上側パノラマ画像のデータの要素より、下側パノラマ画像のデータの要素が多くブレンドされる。また、100に近い値であれば、下側パノラマ画像のデータの要素より、上側パノラマ画像のデータの要素が多くブレンドされる。
【0034】
図4のαブレンドマップにおいて、黒色部分Bは透過度が0であり、ハッチング部分Gは透過度が0と100との間の値であり、白色部分Wは透過度が100である。
撮像装置1は、このαブレンドマップを用いて、上側パノラマ画像のデータと下側パノラマ画像のデータを合成し、ワイド画像のデータを生成する。
これにより、ワイド画像のデータは、黒色部分Bに下側パノラマ画像のデータがそのまま適用され、ハッチング部分Gに上側パノラマ画像のデータと下側パノラマ画像のデータとがブレンドされたデータが適用され、白色部分Wに上側パノラマ画像のデータがそのまま適用されたデータとなる。
【0035】
次に、図5を参照して、このようなワイド画像合成処理を実行するための撮像装置1の機能的構成について説明する。
図5は、図1の撮像装置1の機能的構成のうち、ワイド画像合成処理を実行するための機能的構成を示す機能ブロック図である。
【0036】
撮像装置1がワイド画像合成処理を実行する場合には、CPU11において撮像制御部(合成制御部)40が機能し、当該撮像制御部40の制御の下に、画像処理部14において、パノラマ画像データ生成部50と、取得部51と、エネルギー算出部52と、エネルギーマップ生成部53と、エネルギー最小経路探索部54と、範囲探索部55と、αブレンド幅決定部56と、αブレンドマップ生成部57と、透過度設定部58と、合成部59と、が機能する。
【0037】
撮像制御部40は、撮像部17の撮像のタイミングを制御する。
具体的には、ワイドモードの状態で、ユーザが、撮像装置1を保持したまま全押し操作をすると、ワイド画像合成処理が開始する。即ち、撮像制御部40は、撮像部17の連写動作を開始させる。
その後、ユーザは、入力部19のシャッタスイッチの全押し操作を維持した状態で、水平方向の例えば被写体の左側から右側に撮像装置1を移動させる。次に、ユーザは、シャッタスイッチの全押し操作を維持した状態で、垂直方向の例えば被写体の上側から下側に撮像装置1を移動させる。次に、ユーザは、シャッタスイッチの全押し操作を維持した状態で、水平方向の例えば被写体の右側から左側に撮像装置1を移動させる。
【0038】
撮像制御部40は、加速度センサ18の検出結果に基づいて、全押し操作が維持されている間、撮像装置1の水平方向の移動量が一定量に達する毎に、撮像部17に撮像させ、その結果得られるフレーム画像のデータを記憶部21のフレームバッファに一時的に記憶していくことを繰り返す。
また、撮像制御部40は、撮像装置1の所定量以上の垂直方向の移動を検出すると、水平方向の総移動量(全押し操作を開始した位置からの累計移動量)を記憶する。
その後、撮像制御部40は、撮像装置1の垂直方向の移動後、水平方向の総移動量が記憶した総移動量(垂直方向の移動を検出する前の移動量の総量)に達すると、撮像制御部40は、撮像部17の連写動作を終了させる。
【0039】
パノラマ画像データ生成部50は、撮像部17によって撮像され、フレームバッファに一時的に記憶されたフレーム画像のデータを撮像順に合成することによってパノラマ画像のデータを生成する。
詳細には、パノラマ画像データ生成部50は、シャッタスイッチの全押し操作されてから、撮像装置1の垂直方向の移動を検出されるまでの間に撮像された複数のフレーム画像のデータを取得する。パノラマ画像データ生成部50は、これらのフレーム画像のデータを合成し、1枚のパノラマ画像のデータ(例えば、図3に示す上側パノラマ画像のデータ)を生成する。
また、パノラマ画像データ生成部50は、撮像装置1の垂直方向の移動を検出後、撮像部17の連写動作が終了されるまでの間に撮像された複数のフレーム画像のデータを取得する。パノラマ画像データ生成部50は、これらのフレーム画像のデータを水平方向に合成し、1枚のパノラマ画像のデータ(例えば、図3に示す下側パノラマ画像のデータ)を生成する。
【0040】
以下に説明する画像処理部14における取得部51、エネルギー算出部52、エネルギーマップ生成部53、エネルギー最小経路探索部54、範囲探索部55、αブレンド幅決定部56、αブレンドマップ生成部57、透過度設定部58及び合成部59は、撮像装置1がパノラマ画像データ生成部50により生成した複数のパノラマ画像のデータを垂直方向に合成する処理を実行するための機能的構成である。
【0041】
取得部51は、パノラマ画像データ生成部50が生成した複数のパノラマ画像のデータを取得する。
【0042】
エネルギー算出部52は、取得部51が取得した複数のパノラマ画像のデータにおける一の画像のデータと当該一の画像の合成対象である他の画像のデータとに基づいて、一の画像のデータ内の注目画素に対応したエネルギーを夫々算出する。
具体的には、エネルギー算出部52は、取得部51が取得した複数のパノラマ画像のデータにおける合成対象となる2つの画像のデータ(例えば、図3に示す上側パノラマ画像のデータ及び下側パノラマ画像のデータ)のうち、一方の画像のデータ(例えば、上側パノラマ画像のデータ)について、一方の画像(例えば、上側パノラマ画像)内の注目画素と他の画素との類似度及び他方の画像(例えば、下側パノラマ画像)内の他の画素と注目画素との類似度に基づいてエネルギーを画素毎に求める。
【0043】
エネルギーマップ生成部53は、エネルギー算出部52により算出された注目画素毎のエネルギーの2次元平面上の分布をエネルギーマップとして生成する。
図6は、エネルギーマップ生成部53におけるエネルギーマップの生成手法の一例を示す模式図である。
図6(a)は、上側パノラマ画像のデータの一部を示している。
図6(b)は、下側パノラマ画像のデータの一部を示している。
図6(c)は、(a)に示す上側パノラマ画像のデータと(b)に示す下側パノラマ画像のデータ間における注目画素とその周辺画素との類似度をエネルギーとして表したエネルギーマップの一部を示している。
また、図6及び後述する図7〜10は、夫々X(水平方向)及びY(垂直方向)に配列された複数のグリッドが示されている。各グリッドは、1つの画素を示す。
エネルギーマップ生成部53は、(c)に示すように、図6(c)中左側から右側に向かって順次各画素のエネルギーを算出し、エネルギーマップを生成する。
【0044】
エネルギーマップ生成部53が、エネルギーマップの生成において、各画素のエネルギーを算出する手法の一例を説明する。
エネルギーマップ生成部53は、(c)に示すエネルギーEを以下のように算出する。
エネルギーマップ生成部53は、(a)に示す上側パノラマ画像の注目画素(座標(x,y))と、この注目画素と周辺に隣接する画素(座標(x+n,y+m))との類似度に基づき、類似度エネルギーEoを算出する。
例えば、周辺画素には、図6のように周辺の一部の画素のみを用いても良い。
【0045】
また、エネルギーマップ生成部53は、(b)に示す下側パノラマ画像のデータにおける、上側パノラマ画像の注目画素の配置位置と対応する位置に配置されている対応注目画素(座標(x,y))と、この対応注目画素と水平方向に隣接する画素(座標(x+n,y+m))との類似度に基づき、対応類似度エネルギーEcを算出する。
例えば、周辺画素には、図6のように周辺の一部の画素のみを用いても良い。
【0046】
更に、エネルギーマップ生成部53は、(c)に示すエネルギーマップにおいて、既にエネルギーを算出した画素のうち、今回エネルギーEを算出する画素の前の列で当該画素に隣接する画素(隣接画素)と、この隣接画素の上下の画素とのエネルギーうち、最も小さいエネルギーEminを算出する。なお、本実施形態では、エネルギーマップ生成部53は、前の列の3つの画素のうちから、最も小さいエネルギーEminを算出するがこれに限られない。例えば、下側パノラマ画像のデータと上側パノラマ画像のデータとの特性に応じて、前の列の5つの画素のうちから、最も小さいエネルギーEminを算出することもできる。
エネルギーマップ生成部53は、算出した類似度エネルギーEo、対応類似度エネルギーEc及びエネルギーEminに基づき、エネルギーEを算出する。
ここで、本実施例において、上側パノラマ画像の注目画素を基準としてEo、Ec、Eminを算出することによりエネルギーEを求めたが、下側パノラマ画像の注目画素を基準としてEo、Ec、Eminを算出することによりエネルギーEを求めても良い。
【0047】
図5に戻って、エネルギー最小経路探索部54は、エネルギーマップ生成部53が生成したエネルギーマップの水平方向において、エネルギーが最小となるエネルギー最小経路を探索する。
図7は、エネルギー最小経路探索部54におけるエネルギー最小経路を探索する手法の一例を示す模式図である。
図7には、エネルギーマップ生成部53が生成したエネルギーマップが示されている。
【0048】
エネルギー最小経路探索部54は、エネルギー算出部52により夫々算出された注目画素のデータのエネルギーが最小となる経路を探索する。詳細には、エネルギー最小経路探索部54は、X方向(水平方向)において、エネルギーマップ生成部53によりエネルギーマップが生成された方向と反対方向に向かってエネルギー最小経路を探索していく。即ち、エネルギーマップにおいて、エネルギーマップ生成部53が最後にエネルギーを算出した列から、最初にエネルギーを算出した列に向かってエネルギー最小経路を探索していく。
具体的には、エネルギー最小経路探索部54は、エネルギーマップ生成部53が最後にエネルギーを算出した列において、最もエネルギーが小さい画素を探索する。次に、エネルギー最小経路探索部54は、探索した画素と隣接する画素と、この隣接する画素の上下の画素とのエネルギーうち、最もエネルギーが小さい画素を探索する。エネルギー最小経路探索部54は、同様の探索をエネルギーマップ生成部53が最初にエネルギーを算出した列まで行うことで、エネルギー最小経路Rを探索する。
また、エネルギー最小経路Rの探索は、上述の方法に限らず、例えば、グラフカット技術により行っても良い。なお、グラフカット技術に関しては、例えば、”Interactive Digital Photomontage” A. Agarwala et al. ACM SIGGRAPH, 2004に開示されているため、本実施例において詳細には説明しない。
【0049】
図5に戻って、範囲探索部55は、エネルギー最小経路探索部54により探索されたエネルギー最小経路における一の画像のデータ内の各注目画素の値と類似する値を有する画素の範囲を探索する。また、範囲探索部55は、エネルギーマップ生成部53により生成されたエネルギーマップの所定方向と直交する方向において、エネルギーが最小となる経路を探索する。
図8は、範囲探索部55のエネルギー最小経路における一の画像のデータ内の各注目画素の値と類似する値を有する画素の範囲を探索する手法の一例を示す模式図である。
図8には、エネルギーマップ生成部53が生成したエネルギーマップと、このエネルギーマップにおいて、エネルギー最小経路探索部54が探索したエネルギー最小経路Rが示されている。
【0050】
範囲探索部55は、エネルギーマップのY方向(垂直方向)に向かって、エネルギー最小経路Rにおける各画素のエネルギーとエネルギーの差分が所定の平坦度合いである画素を探索する。範囲探索部55は、エネルギー最小経路Rにおける各画素の夫々について、所定の平坦度合いである画素を探索することで、所定の平坦度合いである範囲R’を探索する。本実施形態において「所定の平坦度合い」とは、例えば、エネルギー最小経路Rにおける各画素のエネルギーとエネルギーの差分が所定値以内であることを呼ぶ。また、「エネルギーの差分」は、例えば、画素における輝度値の差の絶対値の他、色相値や色差値の相違を用いることができる。
つまり、範囲探索部55は、エネルギー最小経路Rにおける各画素の値(輝度値色相値、色差値等)と類似した(所定値以内に収まる)値を有する画素の幅を範囲R’として探索する。
【0051】
また、範囲探索部55は、重み付けをして、所定の平坦度合いである範囲を探索することもできる。「重み付け」は、例えば、エネルギー最小経路Rにおける各画素のエネルギーの大きさに応じた値や、エネルギー最小経路Rからの距離に応じた値を、実際のエネルギーの差分に乗じたり、加算したりすることにより行うことができる。
【0052】
図5に戻って、αブレンド幅決定部56は、範囲探索部55により探索された画素の範囲に基づき、エネルギー最小経路を起点とするブレンド幅を決定する。詳細には、αブレンド幅決定部56は、エネルギーマップの所定方向において、エネルギー最小経路探索部54により探索された経路とエネルギーとの差分が所定の平坦度合いである範囲を類似する値を有する画素の範囲として探索し、ブレンド幅を決定する。
図9は、αブレンド幅決定部56におけるブレンド幅を決定する手法の一例を示す模式図である。
図9には、エネルギーマップ生成部53が生成したエネルギーマップと、このエネルギーマップにおいて、エネルギー最小経路探索部54が探索したエネルギー最小経路Rと範囲探索部55が探索した所定の平坦度合いである範囲R’が示されている。
【0053】
αブレンド幅決定部56は、エネルギー最小経路Rを一端とするαブレンド幅の他端となるαブレンド幅終点経路R’’を算出する。
具体的には、αブレンド幅決定部56は、エネルギー最小経路Rの始点となる画素と、複数のパノラマ画像のデータを合成する方向、即ち、Y方向(垂直方向)において隣接する画素をαブレンド幅終点経路R’’の始点とする。αブレンド幅決定部56は、この始点となる画素の周辺の画素からエネルギー最小経路Rと同方向に、αブレンド幅終点経路R’’を形成する画素を探索する。αブレンド幅決定部56は、同様の手法で、エネルギー最小経路Rと同方向に、探索した画素の周辺の画素から順次αブレンド幅終点経路R’’を形成する画素を探索する。αブレンド幅決定部56は、αブレンド幅終点経路R’’を形成する画素を、例えば、エネルギーマップの所定の列におけるエネルギー最小経路Rと所定の平坦度合いである範囲R’の画素のエネルギーの大きさに基づき探索する。
【0054】
また、αブレンド幅決定部56は、重み付けをして、ブレンド幅を決定することもできる。「重み付け」は、例えば、エネルギー最小経路Rにおける各画素のエネルギーの大きさに応じた値や、エネルギー最小経路Rからの距離に応じた値を、エネルギーマップの所定の列におけるエネルギー最小経路Rと所定の平坦度合いである範囲R’の画素のエネルギーの差分に乗じたり、加算したりすることにより行うことができる。
また、「重み付け」は、例えば、撮像装置1における撮影条件に応じた値を、エネルギーマップの所定の列におけるエネルギー最小経路Rと所定の平坦度合いである範囲R’の画素のエネルギーに乗じたり、加算したりすることにより行うことができる。ここで、「撮影条件」とは、例えば、撮像時にフラッシュが使用されたか否か等である。
【0055】
図5に戻って、αブレンドマップ生成部57は、αブレンド幅決定部56が決定したブレンド幅に基づき、上側パノラマ画像に対する下側パノラマ画像の透過度を設定するαブレンドマップを生成する。
図10は、αブレンドマップ生成部57におけるαブレンドマップを生成する手法の一例を示す模式図である。
図10には、αブレンドマップ生成部57が生成したαブレンドマップに、説明に用いる、エネルギー最小経路探索部54が探索したエネルギー最小経路Rと、αブレンド幅決定部56が算出したαブレンド幅終点経路R’’と、が示されている。
【0056】
αブレンドマップ生成部57は、画素の各列において、エネルギー最小経路Rを形成する画素から、X方向(垂直方向)に向かって、αブレンド幅終点経路R’’を形成する画素までの間で、透過度が変化するαブレンドマップを生成する。
具体的には、αブレンドマップ生成部57は、画素の列毎に、エネルギー最小経路Rを形成する画素とαブレンド幅終点経路R’’を形成する画素との間で、透過度が0から100に変化するブレンドマップを生成する。即ち、透過度の変化の度合いは、エネルギー最小経路Rを形成する画素とαブレンド幅終点経路R’’を形成する画素との距離により異なる。
【0057】
図5に戻って、透過度設定部58は、αブレンドマップ生成部57により生成されたマップに対応した透過度を設定する。即ち、透過度設定部58は、αブレンド幅決定部56により決定されたブレンド幅に基づき、上側パノラマ画像に対する下側パノラマ画像の透過度を設定する。
【0058】
合成部59は、αブレンドマップ生成部57が生成したαブレンドマップを用いて、即ち、αブレンド幅決定部56により決定されたブレンド幅と透過度設定部58により設定された透過度とに基づいて、上側パノラマ画像と下側パノラマ画像の各データを垂直方向に合成し、ワイド画像のデータを生成する(図4参照)。
【0059】
次に、このような図5の機能的構成を有する図1の撮像装置1が実行する処理のうち、ワイド画像合成処理の流れについて図11を用いて説明する。
図11は、撮像装置1が実行するワイド画像合成処理の流れを説明するフローチャートである。
【0060】
ワイド画像合成処理は、本実施形態においては、撮像装置1の動作モードがワイドモードに切り替えられた後、ユーザが入力部19の図示せぬシャッタスイッチを全押し操作して、撮像の指示をしたことを契機として開始される。
【0061】
ステップS1において、パノラマ画像データ生成部50は、撮像部17に撮像され、フレームバッファに一時的に記憶されたフレーム画像のデータを撮像順に合成することによってパノラマ画像のデータを生成する。
【0062】
ステップS2において、合成制御部40は、所定の条件を満たしたか否かを判定し、所定の条件を満たしたと判定した場合はステップS3に処理を移し、所定の条件を満たしていないと判定した場合はステップS1に処理を戻す。本実施形態において「所定の条件」とは、撮像装置1が水平方向に移動され、その後、垂直方向に移動され、更に水平方向に移動されることによって、2枚のパノラマ画像のデータが生成されていることである。
【0063】
ステップS3において、画像処理部14における取得部51、エネルギー算出部52、エネルギーマップ生成部53、エネルギー最小経路探索部54、範囲探索部55、αブレンド幅決定部56、αブレンドマップ生成部57、透過度設定部58及び合成部59は、協働して垂直方向合成処理を実行する。詳しくは後述するが、垂直方向合成処理において、取得部51、エネルギー算出部52、エネルギーマップ生成部53、エネルギー最小経路探索部54、範囲探索部55、αブレンド幅決定部56、αブレンドマップ生成部57、透過度設定部58及び合成部59は、ステップS1でパノラマ画像データ生成部50が生成したパノラマ画像のデータを合成し、ワイド画像のデータを生成する。
【0064】
ステップS4において、合成制御部40は、ステップS3で生成されたワイド画像のデータをリムーバブルメディア31に記憶する。
【0065】
次に、図12を参照して、図11に示すワイド画像合成処理のうち、垂直方向合成処理について説明する。
図12は、撮像装置1が実行する垂直方向合成処理の流れを説明するフローチャートである。
【0066】
ステップS31において、取得部51は、ステップS1でパノラマ画像データ生成部50が生成した複数のパノラマ画像のデータ(例えば、図3に示す上側パノラマ画像のデータ及び下側パノラマ画像のデータ)を取得する。
【0067】
ステップS32において、エネルギー算出部52は、ステップS31で取得部51が取得した複数のパノラマ画像における上側パノラマ画像のデータと下側パノラマ画像のデータとに基づいて、上側パノラマ画像のデータ内の注目画素に対応したエネルギーを夫々算出する。そして、エネルギーマップ生成部53は、エネルギー算出部52により算出された注目画素毎のエネルギーの2次元平面上の分布をエネルギーマップ(図6参照)として生成する。
【0068】
ステップS33において、エネルギー最小経路探索部54は、ステップS32でエネルギー算出部52により夫々算出された注目画素のデータのエネルギーが最小となる経路を探索する。詳細には、エネルギー最小経路探索部54は、ステップS32でエネルギーマップ生成部53が生成したエネルギーマップの水平方向において、エネルギーが最小となるエネルギー最小経路R(図7参照)を探索する。
【0069】
ステップS34において、範囲探索部55は、ステップS33でエネルギー最小経路探索部54により探索されたエネルギー最小経路における一の画像のデータ内の各注目画素の値と類似する値を有する画素の範囲を探索する。詳細には、範囲探索部55は、エネルギーマップの垂直方向(複数のパノラマ画像のデータを合成する方向)において、ステップS33でエネルギー最小経路探索部54が探索したエネルギー最小経路Rとエネルギーの差分が所定の平坦度合いである範囲R’(図8参照)を探索する。
【0070】
ステップS35において、αブレンド幅決定部56は、ステップS34で範囲探索部55により探索された画素の範囲に基づき、エネルギー最小経路を起点とするブレンド幅を決定する。詳細には、αブレンド幅決定部56は、ステップS34で範囲探索部55が探索した所定の平坦度合いである範囲R’に基づき、ステップS33でエネルギー最小経路探索部54が探索したエネルギー最小経路Rを起点とするブレンド幅(図9参照)を決定する。図9では、例えば、R’’は、RとR’のほぼ中間位置であり、この場合、αブレンド幅決定部56は、RとR’’の間の画素分をブレンド幅として決定する。
【0071】
ステップS36において、αブレンドマップ生成部57は、ステップS35でαブレンド幅決定部56が決定したブレンド幅に基づき、上側パノラマ画像に対する下側パノラマ画像の透過度を設定するαブレンドマップ(図10参照)を生成する。透過度設定部58は、αブレンドマップ生成部57により生成されたαブレンドマップに対応した透過度を設定する。
【0072】
ステップS37において、合成部59は、ステップS36でαブレンドマップ生成部57が生成したαブレンドマップを用いて、即ち、ステップS35でαブレンド幅決定部56により決定されたブレンド幅とステップS36で透過度設定部58により設定された透過度とに基づいて、上側パノラマ画像と下側パノラマ画像の各データを垂直方向に合成し、ワイド画像のデータを生成する(図4参照)。
【0073】
以上説明したように、本実施形態の撮像装置1は、画像処理部14において、エネルギー算出部52、エネルギーマップ生成部53、エネルギー最小経路探索部54、範囲探索部55、αブレンド幅決定部56、αブレンドマップ生成部57、透過度設定部58及び合成部59、を備える。
撮像装置1は、複数の画像のデータを所定方向に合成してワイド画像のデータを生成する画像処理装置である。
エネルギー算出部52は、複数の画像のデータにおける一の画像と当該一の画像の合成対象である他の画像とに基づいて、一の画像内の注目画素に対応したエネルギーを夫々算出する。
エネルギー最小経路探索部54は、エネルギー算出部52により夫々算出された注目画素のエネルギーが最小となるエネルギー最小経路Rを探索する。
範囲探索部55は、エネルギー最小経路探索部54により探索されたエネルギー最小経路Rにおける一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する。
αブレンド幅決定部56は、範囲探索部55により探索された画素の範囲に基づき、エネルギー最小経路を起点とするブレンド幅を決定する。
透過度設定部58は、αブレンド幅決定部56により決定されたブレンド幅に基づき、他の画像に対する一の画像の透過度を設定する。
合成部59は、ブレンド幅と透過度設定部58により設定された透過度とに基づいて、一の画像と他の画像とを合成する。
【0074】
これにより、合成対象である他の画像とに基づいて、一の画像内の注目画素に対応したエネルギーから、複数の画像のデータの繋ぎ合わせ部分となるエネルギー最小経路を探索できる。そして、このエネルギー最小経路を起点としたブレンド幅における、一方の画像に対する他方の画像の透過度を設定し、複数の画像のデータを合成できる。
したがって、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【0075】
エネルギーマップ生成部53は、エネルギー算出部52により算出された注目画素毎のエネルギーの2次元平面上の分布をエネルギーマップとして生成する。
範囲探索部55は、エネルギーマップ生成部53により生成されたエネルギーマップの所定方向と直交する方向において、エネルギーが最小となる経路を探索する。
【0076】
これにより、エネルギーマップから、複数の画像のデータの繋ぎ合わせ部分となるエネルギー最小経路を探索できる。そして、このエネルギー最小経路を起点としたブレンド幅における、一方の画像に対する他方の画像の透過度を設定し、複数の画像のデータを合成できる。
したがって、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【0077】
αブレンド幅決定部56は、エネルギーマップの所定方向において、エネルギー最小経路探索部54により探索されたエネルギー最小経路Rとエネルギーとの差分が所定の平坦度合いである範囲を類似する値を有する画素の範囲として探索する。
【0078】
これにより、エネルギー最小経路とエネルギーとの差分が所定の平坦度合いである範囲をブレンド幅に決定できる。
したがって、所定の平坦度合いの範囲でブレンド幅に決定することで、合成後の広角画像の繋ぎ合わせの部分の違和感を更に低減できる。
【0079】
αブレンドマップ生成部57は、透過度設定部58による透過度を設定するためのαブレンドマップを生成する。
透過度設定部58は、αブレンドマップ生成部57により生成されるαブレンドマップに対応した透過度を設定する。
これにより、αブレンドマップに対応した透過度を設定し、複数の画像のデータを合成できる。
したがって、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【0080】
αブレンドマップ生成部57は、αブレンドマップ生成部57は、エネルギー最小経路Rを起点として、複数の画像のデータの合成方向に向かって、透過度が変化するブレンドマップを生成する。
したがって、ブレンドマップのブレンド幅における透過度を変化させることで、合成後の広角画像の繋ぎ合わせの部分の違和感を更に低減できる。
【0081】
また、撮像装置1は、複数の画像のデータの少なくとも一部を垂直方向に合成してワイド画像のデータを生成するので、複数の画像のデータを垂直方向に合成した場合に、合成後の広角画像の繋ぎ合わせの部分の違和感を低減できる。
【0082】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【0083】
例えば、上述の実施形態においては、撮像装置1を水平方向に移動させ、その後、垂直方向に移動させ、更に水平方向に移動させることによって、2枚のパノラマ画像のデータを生成しているが、これに限られない。例えば、撮像装置1を水平方向に移動させ、垂直方向に移動させ、更に水平方向に移動させ、その後、更に垂直方向に移動させ、水平方向に移動させることによって、3枚のパノラマ画像のデータを生成してもよい。同様に、撮像装置1をn回(nは整数)の垂直移動を挟んで、n+1回の水平方向への移動を行うことで、n+1枚のパノラマ画像のデータを生成してもよい。
【0084】
また、上述の実施形態において、エネルギー算出部52、エネルギーマップ生成部53、エネルギー最小経路探索部54、範囲探索部55、αブレンド幅決定部56、αブレンドマップ生成部57、透過度設定部58及び合成部59は、撮像装置1がパノラマ画像データ生成部50により生成した複数のパノラマ画像のデータを垂直方向に合成する処理を実行するための機能的構成として、説明しているが、特にこれに限られない。例えば、エネルギー算出部52、エネルギーマップ生成部53、エネルギー最小経路探索部54、範囲探索部55、αブレンド幅決定部56、αブレンドマップ生成部57、透過度設定部58及び合成部59は、複数の画像のデータを水平方向に合成する処理を実行するための機能的構成としてもよい。
【0085】
この場合、エネルギー算出部52は、垂直方向に向かって順次各画素のエネルギーを算出し、エネルギーマップ生成部53は、エネルギー算出部52が算出したエネルギーによりエネルギーマップを生成する。
エネルギー最小経路探索部54は、垂直方向において、エネルギーマップ生成部53によりエネルギーマップが生成された方向と反対方向に向かってエネルギー最小経路を探索していく。
範囲探索部55は、エネルギーマップの水平方向(複数のパノラマ画像のデータを合成する方向)において、エネルギー最小経路探索部54が探索したエネルギー最小経路とエネルギーの差分が所定の平坦度合いである範囲を探索する。
αブレンド幅決定部56は、エネルギー最小経路と同方向(垂直方向)に、αブレンド幅終点経路を形成する画素を探索し、ブレンド幅を決定する。
αブレンドマップ生成部57は、αブレンド幅決定部56が決定したブレンド幅に基づき、例えば、右側の画像に対する左側の画像の透過度を設定するαブレンドマップを生成する。
透過度設定部58は、αブレンドマップ生成部57により生成されたαブレンドマップにより透過度を設定する。
合成部59は、ブレンド幅と透過度設定部58により設定された透過度とに基づいて、右側の画像と左側の画像の各データを水平方向に合成し、ワイド画像のデータを生成する。
【0086】
また、上述の実施形態では、本発明が適用される撮像装置1は、デジタルカメラを例として説明したが、特にこれに限定されない。
例えば、本発明は、表示制御機能を有する電子機器一般に適用することができる。具体的には、例えば、本発明は、ノート型のパーソナルコンピュータ、プリンタ、テレビジョン受像機、ビデオカメラ、携帯型ナビゲーション装置、携帯電話機、ポータブルゲーム機等に適用可能である。
【0087】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
換言すると、図5の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が撮像装置1に備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に図5の例に限定されない。例えば、CPU11において機能する機能ブロックを、画像処理部14において機能するようにしてもよいし、逆に、画像処理部14において機能する機能ブロックを、CPU11において機能するようにしてもよい。
また、1つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【0088】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであってもよい。
【0089】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布される図1のリムーバブルメディア31により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。リムーバブルメディア31は、例えば、磁気ディスク(フロッピディスクを含む)、光ディスク、又は光磁気ディスク等により構成される。光ディスクは、例えば、CD−ROM(Compact Disk−Read Only Memory),DVD(Digital Versatile Disk)等により構成される。光磁気ディスクは、MD(Mini−Disk)等により構成される。また、装置本体に予め組み込まれた状態でユーザに提供される記録媒体は、例えば、プログラムが記録されている図1のROM12や、図1の記憶部21に含まれるハードディスク等で構成される。
【0090】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。
【0091】
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、更に、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0092】
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[付記1]
複数の画像を所定方向に合成して広角画像を生成する画像処理装置であって、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出手段と、
前記エネルギー算出手段により夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索手段と、
前記エネルギー最小経路探索手段により探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段と、
前記範囲探索手段により探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定手段と、
前記ブレンド幅決定手段により決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定手段と、
前記ブレンド幅と前記透過度設定手段により設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成手段と
を備えることを特徴とする画像処理装置。
[付記2]
前記エネルギー算出手段により算出された注目画素毎のエネルギーの2次元平面上の分布をエネルギーマップとして生成するエネルギーマップ生成手段を更に備え、
前記範囲探索手段は、前記エネルギーマップ生成手段により生成されたエネルギーマップの前記所定方向と直交する方向において、前記エネルギーが最小となる経路を探索することを特徴とする付記1記載の画像処理装置。
[付記3]
前記ブレンド幅決定手段は、前記エネルギーマップの前記所定方向において、前記エネルギー最小経路探索手段により探索された経路と前記エネルギーとの差分が所定の平坦度合いである範囲を前記類似する値を有する画素の範囲として探索することを特徴とする付記2記載の画像処理装置。
[付記4]
前記透過度設定手段による透過度を設定するためのマップを生成するマップ生成手段を更に備え、
前記透過度設定手段は、前記マップ生成手段により生成されるマップに対応した透過度を設定することを特徴とする付記1乃至3のいずれか記載の画像処理装置。
[付記5]
前記マップ生成手段は、前記エネルギー最小経路探索手段により探索された経路を起点として、前記所定方向に向かって、前記透過度が変化するマップを生成することを特徴とする付記4記載の画像処理装置。
[付記6]
前記所定方向は垂直方向であり、前記複数の画像のデータの少なくとも一部を垂直方向に合成して前記広角画像のデータを生成することを特徴とする付記1乃至5のいずれか記載の画像処理装置。
[付記7]
複数の画像のデータを所定方向に合成して広角画像のデータを生成する画像処理装置が実行する画像処理方法であって、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出ステップと、
前記エネルギー算出ステップにて夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索ステップと、
前記エネルギー最小経路探索ステップにて探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索ステップと、
前記範囲探索ステップにて探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定ステップと、
前記ブレンド幅決定ステップにて決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定ステップと、
前記ブレンド幅と前記透過度設定ステップにて設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成ステップと、
を含むことを特徴とする画像処理方法。
[付記8]
複数の画像のデータを所定方向に合成して広角画像のデータを生成する画像処理装置を制御するコンピュータを、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出手段と、
前記エネルギー算出手段により夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索手段、
前記エネルギー最小経路探索手段により探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段、
前記範囲探索手段により探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定手段、
前記ブレンド幅決定手段により決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定手段、
前記ブレンド幅と前記透過度設定手段により設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成手段、
として機能させることを特徴とするプログラム。
【符号の説明】
【0093】
1・・・撮像装置、11・・・CPU、12・・・ROM、13・・・RAM、14・・・画像処理部、15・・・パス、16・・・入出力インターフェース、17・・・撮像部、18・・・加速度センサ、19・・・入力部、20・・・出力部20、21・・・記憶部、22・・・通信部、23・・・ドライブ、31・・・リムーバブルメディア、40・・・撮像制御部(合成制御部)、50・・・パノラマ画像データ生成部、51・・・取得部、52・・・エネルギー算出部、53・・・エネルギーマップ作成部、54・・・エネルギー最小経路探索部、55・・・範囲探索部、56・・・αブレンド幅決定部、57・・・αブレンドマップ作成部、58・・・合成部
【特許請求の範囲】
【請求項1】
複数の画像を所定方向に合成して広角画像を生成する画像処理装置であって、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出手段と、
前記エネルギー算出手段により夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索手段と、
前記エネルギー最小経路探索手段により探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段と、
前記範囲探索手段により探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定手段と、
前記ブレンド幅決定手段により決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定手段と、
前記ブレンド幅と前記透過度設定手段により設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成手段と
を備えることを特徴とする画像処理装置。
【請求項2】
前記エネルギー算出手段により算出された注目画素毎のエネルギーの2次元平面上の分布をエネルギーマップとして生成するエネルギーマップ生成手段を更に備え、
前記範囲探索手段は、前記エネルギーマップ生成手段により生成されたエネルギーマップの前記所定方向と直交する方向において、前記エネルギーが最小となる経路を探索することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記ブレンド幅決定手段は、前記エネルギーマップの前記所定方向において、前記エネルギー最小経路探索手段により探索された経路と前記エネルギーとの差分が所定の平坦度合いである範囲を前記類似する値を有する画素の範囲として探索することを特徴とする請求項2記載の画像処理装置。
【請求項4】
前記透過度設定手段による透過度を設定するためのマップを生成するマップ生成手段を更に備え、
前記透過度設定手段は、前記マップ生成手段により生成されるマップに対応した透過度を設定することを特徴とする請求項1乃至3のいずれか記載の画像処理装置。
【請求項5】
前記マップ生成手段は、前記エネルギー最小経路探索手段により探索された経路を起点として、前記所定方向に向かって、前記透過度が変化するマップを生成することを特徴とする請求項4記載の画像処理装置。
【請求項6】
前記所定方向は垂直方向であり、前記複数の画像のデータの少なくとも一部を垂直方向に合成して前記広角画像のデータを生成することを特徴とする請求項1乃至5のいずれか記載の画像処理装置。
【請求項7】
複数の画像のデータを所定方向に合成して広角画像のデータを生成する画像処理装置が実行する画像処理方法であって、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出ステップと、
前記エネルギー算出ステップにて夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索ステップと、
前記エネルギー最小経路探索ステップにて探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索ステップと、
前記範囲探索ステップにて探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定ステップと、
前記ブレンド幅決定ステップにて決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定ステップと、
前記ブレンド幅と前記透過度設定ステップにて設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成ステップと、
を含むことを特徴とする画像処理方法。
【請求項8】
複数の画像のデータを所定方向に合成して広角画像のデータを生成する画像処理装置を制御するコンピュータを、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出手段と、
前記エネルギー算出手段により夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索手段、
前記エネルギー最小経路探索手段により探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段、
前記範囲探索手段により探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定手段、
前記ブレンド幅決定手段により決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定手段、
前記ブレンド幅と前記透過度設定手段により設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成手段、
として機能させることを特徴とするプログラム。
【請求項1】
複数の画像を所定方向に合成して広角画像を生成する画像処理装置であって、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出手段と、
前記エネルギー算出手段により夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索手段と、
前記エネルギー最小経路探索手段により探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段と、
前記範囲探索手段により探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定手段と、
前記ブレンド幅決定手段により決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定手段と、
前記ブレンド幅と前記透過度設定手段により設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成手段と
を備えることを特徴とする画像処理装置。
【請求項2】
前記エネルギー算出手段により算出された注目画素毎のエネルギーの2次元平面上の分布をエネルギーマップとして生成するエネルギーマップ生成手段を更に備え、
前記範囲探索手段は、前記エネルギーマップ生成手段により生成されたエネルギーマップの前記所定方向と直交する方向において、前記エネルギーが最小となる経路を探索することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記ブレンド幅決定手段は、前記エネルギーマップの前記所定方向において、前記エネルギー最小経路探索手段により探索された経路と前記エネルギーとの差分が所定の平坦度合いである範囲を前記類似する値を有する画素の範囲として探索することを特徴とする請求項2記載の画像処理装置。
【請求項4】
前記透過度設定手段による透過度を設定するためのマップを生成するマップ生成手段を更に備え、
前記透過度設定手段は、前記マップ生成手段により生成されるマップに対応した透過度を設定することを特徴とする請求項1乃至3のいずれか記載の画像処理装置。
【請求項5】
前記マップ生成手段は、前記エネルギー最小経路探索手段により探索された経路を起点として、前記所定方向に向かって、前記透過度が変化するマップを生成することを特徴とする請求項4記載の画像処理装置。
【請求項6】
前記所定方向は垂直方向であり、前記複数の画像のデータの少なくとも一部を垂直方向に合成して前記広角画像のデータを生成することを特徴とする請求項1乃至5のいずれか記載の画像処理装置。
【請求項7】
複数の画像のデータを所定方向に合成して広角画像のデータを生成する画像処理装置が実行する画像処理方法であって、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出ステップと、
前記エネルギー算出ステップにて夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索ステップと、
前記エネルギー最小経路探索ステップにて探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索ステップと、
前記範囲探索ステップにて探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定ステップと、
前記ブレンド幅決定ステップにて決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定ステップと、
前記ブレンド幅と前記透過度設定ステップにて設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成ステップと、
を含むことを特徴とする画像処理方法。
【請求項8】
複数の画像のデータを所定方向に合成して広角画像のデータを生成する画像処理装置を制御するコンピュータを、
前記複数の画像における一の画像と当該一の画像の合成対象である他の画像とに基づいて、前記一の画像内の注目画素に対応したエネルギーを夫々算出するエネルギー算出手段と、
前記エネルギー算出手段により夫々算出された注目画素のエネルギーが最小となる経路を探索するエネルギー最小経路探索手段、
前記エネルギー最小経路探索手段により探索された経路における前記一の画像内の各注目画素の値と類似する値を有する画素の範囲を探索する範囲探索手段、
前記範囲探索手段により探索された画素の範囲に基づき、前記経路を起点とするブレンド幅を決定するブレンド幅決定手段、
前記ブレンド幅決定手段により決定されたブレンド幅に基づき、前記他の画像に対する前記一の画像の透過度を設定する透過度設定手段、
前記ブレンド幅と前記透過度設定手段により設定された透過度とに基づいて、前記一の画像と前記他の画像とを合成する合成手段、
として機能させることを特徴とするプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2013−58931(P2013−58931A)
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【出願番号】特願2011−196368(P2011−196368)
【出願日】平成23年9月8日(2011.9.8)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【出願日】平成23年9月8日(2011.9.8)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
[ Back to top ]