(57)【特許請求の範囲】
【請求項１】
単一の撮影光学系及び撮像素子を有する撮像装置をパンニングさせながら、所定のフレームレートで連続して撮影された複数の画像を取得する画像取得部と、
前記取得した複数の画像からパノラマ画像合成用の画像を選択する画像選択部であって、各画像間のオプティカルフローの並進ベクトルの水平成分が、予め設定された所定範囲に入る画像を選択する画像選択部と、
前記選択した画像の時系列の前後の画像間のオーバーラップ領域を検出するオーバーラップ領域検出部と、
前記検出されたオーバーラップ領域の画像を切り取るトリミング部と、
前記切り取られたオーバーラップ領域の画像をそれぞれ左用画像及び右用画像として記憶する記憶部と、
前記記憶された左用画像の画像群及び右用画像の画像群に基づいて左用のパノラマ画像及び右用のパノラマ画像を合成するパノラマ画像合成部と、
を備える立体パノラマ画像合成装置。
【請求項２】
前記取得した複数の画像のうちの所定の画像を基準画像とし、該基準画像と異なる時刻に撮影された１ないし複数の他の画像との間でそれぞれ同じ特徴を有する対応点を検出する対応点検出部と、
前記対応点検出部により検出された対応点に基づいて前記オプティカルフローを算出するオプティカルフロー算出部と、をさらに備え、
前記画像選択部は、前記算出されたオプティカルフローの並進ベクトルの水平成分が、予め設定された所定範囲に入る画像を選択するとともに、該選択した他の画像を次の基準画像として設定する、請求項１に記載の立体パノラマ画像合成装置。
【請求項３】
前記パノラマ画像合成部は、各画像間のオプティカルフローの並進ベクトルの水平成分に応じて前記記憶された左用画像の画像群の各画像を短冊状の画像にトリミングするとともに、該トリミングした短冊状の画像をオプティカルフローの並進ベクトルに基づいて合成して左用のパノラマ画像を生成し、各画像間のオプティカルフローの並進ベクトルの水平成分に応じて前記記憶された右用画像の画像群の各画像を短冊状の画像にトリミングするとともに、該トリミングした短冊状の画像をオプティカルフローの並進ベクトルに基づいて合成して右用のパノラマ画像を生成する画像合成部を有する、請求項１又は２に記載の立体パノラマ画像合成装置。
【請求項４】
前記パノラマ画像合成部は、前記記憶された左用画像の画像群の各画像間のオプティカルフローの並進ベクトルに応じて前記左用画像の画像群を時系列順に相対的にずらしてメモリ上に上乗せマッピングすることにより左用のパノラマ画像を合成するとともに、前記記憶された左用画像の画像群の各画像間のオプティカルフローの並進ベクトルに応じて前記右用画像の画像群を時系列順に相対的にずらしてメモリ上に上乗せマッピングすることにより右用のパノラマ画像を合成する画像合成部を有する、請求項１又は２に記載の立体パノラマ画像合成装置。
【請求項５】
前記パノラマ画像合成部は、前記画像合成部により合成された左用のパノラマ画像及び右用のパノラマ画像のうちの、互いに重複する画素を有する領域の画像をそれぞれトリミングするトリミング部を備える、請求項３又は４に記載の立体パノラマ画像合成装置。
【請求項６】
前記パノラマ画像合成部により生成された左用のパノラマ画像と右用のパノラマ画像とを関連づけて記録する記録部をさらに備える、請求項１から５のいずれかに記載の立体パノラマ画像合成装置。
【請求項７】
請求項１から６のいずれかに記載の立体パノラマ画像合成装置を備える撮像装置。
【請求項８】
立体パノラマ撮影モードを設定するモード設定部と、
前記立体パノラマ撮影モードが選択され、かつ撮影開始の指示入力があると、ピント位置、露出条件及びホワイトバランスゲインを固定して前記所定のフレームレートで連続撮影を行う制御部と、
をさらに備える、請求項７に記載の撮像装置。
【請求項９】
立体パノラマ撮影モードを設定するモード設定部と、
前記立体パノラマ撮影モードによる撮影時に撮影される各画像間のオプティカルフローの並進ベクトルの水平成分を算出する並進ベクトル算出部と、
前記並進ベクトル算出部により算出された並進ベクトルの水平成分の絶対値が、予め設定された閾値を越えた場合に警告を発する警告部と、
を備える、請求項７又は８に記載の撮像装置。
【請求項１０】
立体パノラマ撮影モードを設定するモード設定部と、
前記立体パノラマ撮影モードによる撮影時に前記撮像装置の角速度を検出する角速度検出部と、
前記角速度検出部により検出された角速度が前記所定のフレームレートに対応して設定される最大角速度よりも大きい場合に警告を発する警告部と、
を備える、請求項７又は８に記載の撮像装置。
【請求項１１】
単一の撮影光学系及び撮像素子を有する撮像装置をパンニングさせながら所定のフレームレートで連続して撮影して、複数の画像を取得する工程と、
前記取得した複数の画像からパノラマ画像合成用の画像を選択する工程であって、各画像間のオプティカルフローの並進ベクトルの水平成分が、予め設定された所定範囲に入る画像を選択する工程と、
前記選択した画像の時系列の前後の画像間のオーバーラップ領域を検出する工程と、
前記検出されたオーバーラップ領域の画像を切り取るトリミング工程と、
前記切り取られたオーバーラップ領域の画像をそれぞれ左用画像及び右用画像として記憶する工程と、
前記記憶された左用画像の画像群及び右用画像の画像群に基づいて左用のパノラマ画像及び右用のパノラマ画像を合成するパノラマ画像合成工程と、
を含む、立体パノラマ画像合成方法。
【請求項１２】
前記パノラマ画像合成工程は、前記合成された左用のパノラマ画像及び右用のパノラマ画像のうちの、互いに重複する画素を有する領域の画像をそれぞれトリミングする工程をさらに含む、請求項１１に記載の立体パノラマ画像合成方法。
【請求項１３】
コンピュータプログラムを記録した、コンピュータで読み取り可能な記録媒体であって、前記コンピュータプログラムは、１以上のコンピュータに、
単一の撮影光学系及び撮像素子を有する撮像装置をパンニングさせながら所定のフレームレートで連続して撮影して、複数の画像を取得し、
前記取得した複数の画像からパノラマ画像合成用の画像を選択する工程であって、各画像間のオプティカルフローの並進ベクトルの水平成分が、予め設定された所定範囲に入る画像を選択し、
前記選択した画像の時系列の前後の画像間のオーバーラップ領域を検出し、
前記検出されたオーバーラップ領域の画像を切り取るトリミングし、
前記切り取られたオーバーラップ領域の画像をそれぞれ左用画像及び右用画像として記憶し、
前記記憶された左用画像の画像群及び右用画像の画像群に基づいて左用のパノラマ画像及び右用のパノラマ画像を合成する、
ことを実行させることができる命令を含む、記録媒体。
【請求項１４】
コンピュータで実行可能な命令を含むコンピュータプログラムであって、１以上のコンピュータに、
単一の撮影光学系及び撮像素子を有する撮像装置をパンニングさせながら所定のフレームレートで連続して撮影して、複数の画像を取得し、
前記取得した複数の画像からパノラマ画像合成用の画像を選択する工程であって、各画像間のオプティカルフローの並進ベクトルの水平成分が、予め設定された所定範囲に入る画像を選択し、
前記選択した画像の時系列の前後の画像間のオーバーラップ領域を検出し、
前記検出されたオーバーラップ領域の画像を切り取るトリミングし、
前記切り取られたオーバーラップ領域の画像をそれぞれ左用画像及び右用画像として記憶し、
前記記憶された左用画像の画像群及び右用画像の画像群に基づいて左用のパノラマ画像及び右用のパノラマ画像を合成する、
ことを実行させることができる命令を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は立体パノラマ画像合成装置及び撮像装置並びに立体パノラマ画像合成方法に係り、特に単眼カメラで撮影された画像に基づいて立体パノラマ画像を合成する技術に関する。
【背景技術】
【０００２】
従来、ビデオカメラを三脚等に固定して回転させながら連続撮影し、この連続撮影した画像からスリット状に切り出したスリット画像を結合し、パノラマ画像を合成するパノラマ画像合成方法が知られている（特許文献１）。【０００３】
この特許文献１に記載のパノラマ画像合成方法によると、連続する２つの画像間のオプティカルフローの大きさに基づいてスリット画像の幅を決定して切り出し、この切り出したスリット画像を合成することにより、ビデオカメラの各速度が一定でない場合でも忠実にパノラマ画像を再現できる。【０００４】
また、特許文献２には、３Ｄ(three dimensional)空間のパノラマを合成することができるレンジ撮像システム（ｒａｎｇｅ  ｉｍａｇｉｎｇ  ｓｙｓｔｅｍ）が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−１６４３２５号公報
【特許文献２】特開２００２−３６６９４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の要約書には、連続する撮影画像からスリット状に切り出したスリット画像を結合し、左目視用及び右目視用のパノラマ画像を生成する記載があるが、特許文献１の明細書には、左目視用及び右目視用のパノラマ画像の生成に関する記載は一切ない。【０００７】
特許文献２に記載のレンジ撮像システムでは、変調した電磁放射線のビームを場面（ｓｃｅｎｅ）に照射し、その反射ビーム（最低限三つの画像からなる画像束）をレーザーレーダとしてのカメラが捕捉する。このレンジ撮像システムは、変調した電磁放射線のビームを照射する点で通常のカメラとは異なる。【０００８】
本発明は単眼の撮像装置をパンニングさせて撮影された複数の画像から立体パノラマ画像を合成することができる新規な立体パノラマ画像合成装置及び撮像装置並びに立体パノラマ画像合成方法等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
前記目的を達成するために、第１態様に係る立体パノラマ画像合成装置は、単一の撮影光学系及び撮像素子を有する撮像装置をパンニングさせながら、所定のフレームレートで連続して撮影された複数の画像を取得する画像取得部と、前記取得した複数の画像からパノラマ画像合成用の画像を選択する画像選択部であって、各画像間のオプティカルフローの並進ベクトルの水平成分が、予め設定された所定範囲に入る画像を選択する画像選択部と、前記選択した画像の時系列の前後の画像間のオーバーラップ領域を検出するオーバーラップ領域検出部と、前記検出されたオーバーラップ領域の画像を切り取るトリミング部と、前記切り取られたオーバーラップ領域の画像をそれぞれ左用画像及び右用画像として記憶する記憶部と、前記記憶された左用画像の画像群及び右用画像の画像群に基づいて左用のパノラマ画像及び右用のパノラマ画像を合成するパノラマ画像合成部と、を備える。【００１０】
単一の撮影光学系及び撮像素子を有する撮像装置（単眼の撮像装置）をパンニングさせて撮影された複数の画像のうちの、時系列の前後の画像間のオーバーラップ領域の画像は、左視点の画像と右視点の画像に対応する。そこで、第１態様に係る立体パノラマ画像合成装置によれば、前記オーバーラップ領域の画像を切り取り、それぞれ左用画像の画像群及び右用画像の画像群とし、前記左用画像の画像群から左用画像のパノラマ画像を合成し、前記右用画像の画像群から右用画像のパノラマ画像を合成することが可能である。【００１１】
また、前記合成される立体パノラマ画像は、等距離にある被写体の立体感が撮影方向により変化しないことが好ましい。そこで、第１態様に係る立体パノラマ画像合成装置において、時系列の前後の画像間のオプティカルフローの並進ベクトルの水平成分が、予め設定された所定範囲に入る画像を選択するようにしている。【００１２】
第２態様によれば、第１態様に係る立体パノラマ画像合成装置は、前記取得した複数の画像のうちの所定の画像を基準画像とし、該基準画像と異なる時刻に撮影された１ないし複数の他の画像との間でそれぞれ同じ特徴を有する対応点を検出する対応点検出部と、前記対応点検出部により検出された対応点に基づいて前記オプティカルフローを算出するオプティカルフロー算出部と、をさらに備え、前記画像選択部は、前記算出されたオプティカルフローの並進ベクトルの水平成分が、予め設定された所定範囲に入る画像を選択するとともに、該選択した他の画像を次の基準画像として設定する。【００１３】
第３態様によれば、第１又は第２態様に係る立体パノラマ画像合成装置において、前記パノラマ画像合成部は、各画像間のオプティカルフローの並進ベクトルの水平成分に応じて前記記憶された左用画像の画像群の各画像を短冊状の画像にトリミングするとともに、該トリミングした短冊状の画像をオプティカルフローの並進ベクトルに基づいて合成して左用のパノラマ画像を生成し、各画像間のオプティカルフローの並進ベクトルの水平成分に応じて前記記憶された右用画像の画像群の各画像を短冊状の画像にトリミングするとともに、該トリミングした短冊状の画像をオプティカルフローの並進ベクトルに基づいて合成して右用のパノラマ画像を生成する画像合成部を有する。【００１４】
第４態様によれば、第１又は第２態様に係る立体パノラマ画像合成装置において、前記パノラマ画像合成部は、前記記憶された左用画像の画像群の各画像間のオプティカルフローの並進ベクトルに応じて前記左用画像の画像群を時系列順に相対的にずらしてメモリ上に上乗せマッピングすることにより左用のパノラマ画像を合成するとともに、前記記憶された左用画像の画像群の各画像間のオプティカルフローの並進ベクトルに応じて前記右用画像の画像群を時系列順に相対的にずらしてメモリ上に上乗せマッピングすることにより右用のパノラマ画像を合成する画像合成部を有する。【００１５】
第３態様に係る立体パノラマ画像合成装置は、各画像群の重複しない短冊状の画像をトリミングし、該トリミングした短冊状の画像を合成してパノラマ画像を合成するように構成される。第４態様に係る立体パノラマ画像合成装置は、画像群の各画像間のオプティカルフローの並進ベクトルに応じて各画像群を時系列順に相対的にずらしてメモリ上に上乗せマッピングすることによりパノラマ画像を合成するように構成される。【００１６】
第５態様によれば、第３又は第４態様に係る立体パノラマ画像合成装置において、前記パノラマ画像合成部は、前記画像合成部により合成された左用のパノラマ画像及び右用のパノラマ画像のうちの、互いに重複する画素を有する領域の画像をそれぞれトリミングするトリミング部を備える。これにより、撮像装置のパンニング動作が正確に水平に行われていない場合でも良好な立体パノラマ画像を取得することができる。【００１７】
第６態様によれば、第１から第５態様のいずれかに係る立体パノラマ画像合成装置は、前記パノラマ画像合成部により生成された左用のパノラマ画像と右用のパノラマ画像とを関連づけて記録する記録部をさらに備える。【００１８】
第７態様に係る撮像装置は、第１から第６態様のいずれかに係る立体パノラマ画像合成装置を備える。【００１９】
第８態様によれば、第７態様に係る撮像装置は、立体パノラマ撮影モードを設定するモード設定部と、前記立体パノラマ撮影モードが選択され、かつ撮影開始の指示入力があると、ピント位置、露出条件及びホワイトバランスゲインを固定して前記所定のフレームレートで連続撮影を行う制御部と、をさらに備える。【００２０】
これにより、パノラマ画像合成される各短冊状の画像のピント位置、露出条件及びホワイトバランスゲインを一定にすることができる。【００２１】
第９態様によれば、第７または第８態様に係る撮像装置は、立体パノラマ撮影モードを設定するモード設定部と、前記立体パノラマ撮影モードによる撮影時に撮影される各画像間のオプティカルフローの並進ベクトルの水平成分を算出する並進ベクトル算出部と、前記並進ベクトル算出部により算出された並進ベクトルの水平成分の絶対値が、予め設定された閾値を越えた場合に警告を発する警告部と、をさらに備える。【００２２】
第１０態様によれば、第７または第８態様に係る撮像装置は、立体パノラマ撮影モードを設定するモード設定部と、前記立体パノラマ撮影モードによる撮影時に前記撮像装置の角速度を検出する角速度検出部と、前記角速度検出部により検出された角速度が前記所定のフレームレートに対応して設定される最大角速度よりも大きい場合に警告を発する警告部と、をさらに備える。【００２３】
前記撮像装置のパンニング速度（スイング速度又は角速度）が大きすぎると、オーバーラップ領域が小さくなり、画像群の各画像間で合成するための共通領域が無くなることで、パノラマ画像合成することができなくなる。そこで、第９態様に係る撮像装置は、前記並進ベクトル算出部により算出された並進ベクトルの水平成分が、予め設定された閾値を越えた場合に警告を発するように構成される。一方、第１０態様に係る撮像装置は、撮像装置の角速度が所定のフレームレートに対応して設定される最大角速度よりも大きい場合に警告を発するように構成される。【００２４】
第１１態様に係る立体パノラマ画像合成方法は、単一の撮影光学系及び撮像素子を有する撮像装置をパンニングさせながら所定のフレームレートで連続して撮影し、複数の画像を取得する工程と、前記取得した複数の画像からパノラマ画像合成用の画像を選択する工程であって、各画像間のオプティカルフローの並進ベクトルの水平成分が、予め設定された所定範囲に入る画像を選択する工程と、前記選択した画像の時系列の前後の画像間のオーバーラップ領域を検出する工程と、前記検出されたオーバーラップ領域の画像を切り取るトリミング工程と、前記切り取られたオーバーラップ領域の画像をそれぞれ左用画像及び右用画像として記憶する工程と、前記記憶された左用画像の画像群及び右用画像の画像群に基づいて左用のパノラマ画像及び右用のパノラマ画像を合成するパノラマ画像合成工程と、を含む。【００２５】
第１２態様によれば、第１１態様に係る立体パノラマ画像合成方法は、前記合成された左用のパノラマ画像及び右用のパノラマ画像のうちの、互いに重複する画素を有する領域の画像をそれぞれトリミングする工程をさらに含む。また、第１１又は第１２態様に係る立体パノラマ画像合成方法をコンピュータに実行させることが出来る、コンピュータで実行可能な命令を含むコンピュータプログラムも、このコンピュータプログラムをコンピュータに実行させることにより、上記目的を達成することが出来る。さらに、上記コンピュータプログラムを記録したコンピュータで読み取り可能な記録媒体も、この記録媒体を介してコンピュータにこのコンピュータプログラムをインストールして、実行させることにより、上記目的を達成することが出来る。
【発明の効果】
【００２６】
本発明によれば、通常の撮像装置（単眼の撮像装置）をパンニングさせて撮影された複数の画像から立体パノラマ画像を合成することができる。
【図面の簡単な説明】
【００２７】
【図１】本発明に係る撮像装置の実施の形態を示すブロック図
【図２】本発明に係る撮像装置による３Ｄパノラマ画像合成処理の原理を説明する説明図
【図３Ａ】３Ｄパノラマ画像合成に用いられる画像の取得の流れを示す図（その１）
【図３Ｂ】３Ｄパノラマ画像合成に用いられる画像の取得の流れを示す図（その２）
【図３Ｃ】３Ｄパノラマ画像合成に用いられる画像の取得の流れを示す図（その３）
【図３Ｄ】３Ｄパノラマ画像合成に用いられる画像の取得の流れを示す図（その４）
【図４】３Ｄパノラマ画像合成に用いられる画像の取得の流れを示すフローチャート
【図５Ａ】３Ｄパノラマ画像の合成処理シーケンスを示す図（その１）
【図５Ｂ】３Ｄパノラマ画像の合成処理シーケンスを示す図（その２）
【図５Ｃ】３Ｄパノラマ画像の合成処理シーケンスを示す図（その３）
【図５Ｄ】３Ｄパノラマ画像の合成処理シーケンスを示す図（その４）
【発明を実施するための形態】
【００２８】
以下、添付図面に従って本発明に係る立体パノラマ画像合成装置及び撮像装置並びに立体パノラマ画像合成方法の実施の形態について説明する。
【００２９】
［撮像装置の全体構成］
図１は本発明に係る撮像装置１０の実施の形態を示すブロック図である。
【００３０】
この撮像装置１０は、静止画や動画等の撮像した画像をメモリカード等の記録媒体５４に記録するもので、装置全体の動作は、中央処理装置（ＣＰＵ：Central Processing Unit）４０によって統括制御される。
【００３１】
撮像装置１０には、シャッタボタン、モードダイヤル、再生ボタン、ＭＥＮＵ／ＯＫキー、十字キー、ＢＡＣＫキー等の操作部３８が設けられている。この操作部３８からの信号はＣＰＵ４０に入力され、ＣＰＵ４０は入力信号に基づいて撮像装置１０の各回路を制御し、例えば、レンズ駆動制御、絞り駆動制御、撮影動作制御、画像処理制御、画像データの記録／再生制御、２Ｄ／３Ｄ表示用の液晶モニタ３０の表示制御などを行うとともに、後述する本発明に係る立体（３Ｄ）パノラマ画像合成処理を行う。
【００３２】
シャッタボタンは、撮影開始の指示を入力する操作ボタンであり、半押し時にＯＮするＳ１スイッチと、全押し時にＯＮするＳ２スイッチとを有する二段ストローク式のスイッチで構成されている。モードダイヤルは、撮影モードを選択する選択手段である。撮影モードとして、例えば、オート撮影モード、マニュアル撮影モード、人物、風景、夜景等のシーンポジション、動画を撮影する動画モード、及び本発明に係る立体パノラマ撮影モードが挙げられる。
【００３３】
再生ボタンは、撮影記録した静止画又は動画を液晶モニタ３０に表示させる再生モードに切り替えるためのボタンである。ＭＥＮＵ／ＯＫキーは、液晶モニタ３０の画面上にメニューを表示させる指令を行うためのメニューボタンとしての機能と、選択内容の確定及び実行などを指令するＯＫボタンとしての機能とを兼備した操作キーである。十字キーは、上下左右の４方向の指示を入力する操作部であり、メニュー画面から項目を選択したり、各メニューから各種設定項目の選択を指示したりするボタン（カーソル移動操作手段）として機能する。また、十字キーの上／下キーは撮影時のズームスイッチあるいは再生モード時の再生ズームスイッチとして機能し、左／右キーは再生モード時のコマ送り（順方向／逆方向送り）ボタンとして機能する。ＢＡＣＫキーは、選択項目など所望の対象の消去や指示内容の取消し、あるいは１つ前の操作状態に戻らせる時などに使用される。
【００３４】
撮影モード時において、被写体を示す画像光は、単一の撮影光学系（ズームレンズ）１２、絞り１４を介して固体撮像素子１６の受光面に結像される。以下、固体撮像素子の例として、ＣＣＤ（Charge Coupled Device）を挙げて説明するが、固体撮像素子の種類を限定する趣旨ではない。撮影光学系１２は、ＣＰＵ４０によって制御されるレンズ駆動部３６によって駆動され、フォーカス制御、ズーム制御等が行われる。絞り１４は、例えば、５枚の絞り羽根からなり、ＣＰＵ４０によって制御される絞り駆動部３４によって駆動され、例えば、絞り値Ｆ2.8 〜Ｆ11まで１ＡＶ刻みで５段階に絞り制御される。
【００３５】
また、ＣＰＵ４０は、絞り駆動部３４を介して絞り１４を制御するとともに、ＣＣＤ制御部３２を介してＣＣＤ１６での電荷蓄積時間（シャッタスピード）や、ＣＣＤ１６からの画像信号の読み出し制御等を行う。
【００３６】
ＣＣＤ１６に蓄積された信号電荷は、ＣＣＤ制御部３２から加えられる読み出し信号に基づいて信号電荷に応じた電圧信号として読み出される。ＣＣＤ１６から読み出された電圧信号は、アナログ信号処理部１８に加えられる。アナログ信号処理部１８では、各々の画素のＲ、Ｇ、Ｂ信号がサンプリングホールドされ、増幅されたのちＡ／Ｄ変換器２０に加えられる。Ａ／Ｄ変換器２０は、順次入力するＲ、Ｇ、Ｂ信号をデジタルのＲ、Ｇ、Ｂ信号に変換して画像入力コントローラ２２に出力する。
【００３７】
デジタル信号処理部２４は、画像入力コントローラ２２を介して入力するデジタルの画像信号に対して、オフセット処理、ホワイトバランス補正、感度補正を含むゲイン・コントロール処理、ガンマ補正処理、ディストーション補正処理、色収差補正処理、同時化処理、ＹＣ処理、シャープネス補正等の所定の信号処理を行う。尚、ＲＯＭ（あるいはＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory））４６には、カメラ制御プログラム、ＣＣＤ１６の欠陥情報、画像処理等に使用する各種の補正パラメータやテーブル、３Ｄパノラマ画像合成用のソフトウエア等が記憶されている。
【００３８】
デジタル信号処理部２４で処理された画像データは、ＶＲＡＭ（Video Random Access Memory）５０に出力される。ＶＲＡＭ５０には、それぞれが１コマ分の画像を表す画像データを記憶するＡ領域とＢ領域とが含まれ、ＶＲＡＭ５０において１コマ分の画像を表す画像データがＡ領域とＢ領域とで交互に書き換えられる。ＶＲＡＭ５０のＡ領域及びＢ領域のうち、画像データが書き換えられている方の領域以外の領域から、書き込まれている画像データが読み出される。ＶＲＡＭ５０から読み出された画像データはビデオ・エンコーダ２８においてエンコーディングされ、カメラ背面に設けられている液晶モニタ３０に出力され、これにより撮影画像が液晶モニタ３０の表示画面上に表示される。
【００３９】
この液晶モニタ３０は、２Ｄ画像（平面画像）を表示することができるとともに、３Ｄ画像（左視点画像及び右視点画像からなる立体画像）を表示することができる。例えば、液晶モニタ３０は、パララックスバリアによりそれぞれ所定の指向性をもった指向性画像を表示できる立体表示装置として構成されてもよい。液晶モニタ３０の構成はこれに限らず、レンチキュラレンズを使用する構成や、偏光メガネ、液晶シャッタメガネなどの専用メガネをかけることで左視点画像と右視点画像とを個別に見ることができる構成でもよい。
【００４０】
また、操作部３８のシャッタボタンの第１段階の押下（半押し）があると、ＣＰＵ４０は、ＡＦ（Auto Focus）動作及びＡＥ（Auto Exposure）動作を開始させ、レンズ駆動部３６を介して撮影光学系１２内のフォーカスレンズが合焦位置にくるように制御する。また、シャッタボタンの半押し時にＡ／Ｄ変換器２０から出力される画像データは、ＡＥ検出部４４に取り込まれる。
【００４１】
ＡＥ検出部４４では、画面全体のＧ信号を積算し、又は画面中央部と周辺部とで異なる重みづけをしたＧ信号を積算し、その積算値をＣＰＵ４０に出力する。ＣＰＵ４０は、ＡＥ検出部４４から入力する積算値より被写体の明るさ（撮影Ｅｖ値）を算出し、この撮影Ｅｖ値に基づいて絞り１４の絞り値及びＣＣＤ１６の電子シャッタ（シャッタスピード）を所定のプログラム線図にしたがって決定し、その決定した絞り値に基づいて絞り駆動部３４を介して絞り１４を制御する。さらに、ＣＰＵ４０は、決定したシャッタスピードに基づいてＣＣＤ制御部３２を介してＣＣＤ１６での電荷蓄積時間を制御する。
【００４２】
ＡＦ処理部４２は、コントラストＡＦ処理を行う部分であり、画像データのうちの所定のフォーカス領域内の画像データの高周波成分を抽出し、この高周波成分を積分することにより合焦状態を示すＡＦ評価値を算出する。このＡＦ評価値が極大となるように撮影光学系１２内のフォーカスレンズを制御することによりＡＦ制御が行われる。
【００４３】
ＡＥ動作及びＡＦ動作が終了し、シャッタボタンの第２段階の押下（全押し）があると、その押下に応答してＡ／Ｄ変換器２０から出力される画像データが画像入力コントローラ２２からメモリ(例えば、ＳＤＲＡＭ（Synchronous Dynamic RAM）)４８に出力され、一時的に記憶される。
【００４４】
メモリ４８に一時的に記憶された画像データは、デジタル信号処理部２４により適宜読み出される。デジタル信号処理部２４では、画像データの輝度データ及び色差データの生成処理（ＹＣ処理）を含む所定の信号処理が行われる。ＹＣ処理された画像データ（ＹＣデータ）は、再びメモリ４８に記憶される。続いて、ＹＣデータは、それぞれ圧縮伸長処理部２６に出力され、JPEG (joint photographic experts group)などの所定の圧縮処理が実行されたのち、再びメモリ４８に記憶される。
【００４５】
メモリ４８に記憶されたＹＣデータ（圧縮データ）から画像ファイルが生成され、その画像ファイルは、メディア・コントローラ５２により読み出され、メモリカード５４に記録される。
【００４６】
＜本発明の原理＞
次に、単眼の撮像装置１０による３Ｄパノラマ画像合成処理の原理について説明する。
【００４７】
図２に示すように撮像装置１０を手で持ち、右方向に略一定の回転速度でパンニングさせるとともに、所定のフレームレート（例えば、６０フレーム／秒）で連続撮影する。
【００４８】
上記のように高速連写すると、ある時刻ｔＡに撮影された画像Ａと微小時間経過後の時刻ｔＢに撮影された画像Ｂとは部分的に画像が重複する。
【００４９】
画像Ａ及びＢから互いに重複している画像を切り出し、切り出した画像をそれぞれ画像Ａ’及びＢ’とすると、画像Ａ’と画像Ｂ’とは異なる視点位置から撮影された視点画像（左用画像と右用画像）となる。尚、図２に示す例では、画像Ａ’と画像Ｂ’に対応する輻輳角はθである。
【００５０】
即ち、画像Ａ’と画像Ｂ’とは立体表示が可能な３Ｄ画像を構成する。撮像装置１０のパンニング中に撮影された複数の画像の時系列の前後に画像間で、互いに重複する画像を切り出し、一方を左用画像、他方を右用画像として取得する。これにより、３Ｄパノラマ画像合成用の複数枚の左用画像及び右用画像を取得することができる。
【００５１】
＜３Ｄパノラマ画像合成用の画像取得＞
図３Ａから図３Ｄは、３Ｄパノラマ画像合成用の画像取得の流れを示す図である。
【００５２】
まず、図３Ａに示すように撮像装置１０を手で持ち、パンニングさせながら高速連写する。この場合、予め設定された枚数ｎ（ｎショット）の画像が撮影された場合、又は所定角度を回転したと判断された場合に撮影を終了し、パノラマ画像合成処理に移行する。
【００５３】
図３Ｂに示すように基準画像（前ショットの撮影画像）と今回のショットの撮影画像の画像間のオプティカルフローを対応点検出に基づいて算出する。即ち、基準画像上の特徴点と、この特徴点と一致する撮影画像上の特徴点とを対応点として検出し、これらの対応点間の移動量及び移動方向（並進ベクトル）からオプティカルフローを算出する。尚、前記対応点の検出方法としては、例えばHarrisの手法等を用いて特徴点を抽出し、ＫＬＴ（Kanade Lucas Tomasi）法等を用いて特徴点を追尾する方法が挙げられる。
【００５４】
次に、図３Ｃに示すように、前記算出したオプティカルフローに基づいて、基準画像と撮影画像との間で重複しているオーバーラップ領域（視差のある領域）内の画像を、基準画像と撮影画像のそれぞれから切り出す。
【００５５】
切り出された一対の画像は、それぞれメモリ４８に格納される（図３Ｄ）。ここで、右回りのパンニング中に連写された画像の場合には、基準画像から切り出されたオーバーラップ領域の画像は左用画像として格納し、撮影画像から切り出されたオーバーラップ領域の画像は右用画像として格納する。
【００５６】
オーバーラップ領域の左用画像及び右用画像をメモリ４８へ格納した後、撮影画像を基準画像として設定し、次の撮影に戻る。即ち、連写中のワンショット毎に図３Ｂから図３Ｄに示した処理を繰り返す。そして、撮像装置１０が撮影開始時から所定角度だけ回転したと判断された場合、撮影を終了し、３Ｄパノラマ画像を合成する処理に移行する。
【００５７】
尚、各フレームの撮影間隔内に、図３Ｂから図３Ｄに示した処理が間に合わない場合には、高速連写された複数枚の画像を一旦メモリ４８に格納し、その後、図３Ｂから図３Ｄに示した処理を行うようにしてもよい。
【００５８】
図４は上記３Ｄパノラマ画像合成用の画像取得の流れを、更に詳細に示したフローチャートである。
【００５９】
図４において、まず、図１に示した操作部３８のモードダイヤルにより、３Ｄパノラマ撮影モードを選択し、撮影スタンバイ状態にする（ステップＳ１０）。
【００６０】
続いて、パンニング撮影時のスイングの向きを設定し（ステップＳ１１）、３Ｄパノラマ撮影を行うためのパンニング開始位置に撮像装置１０を移動させた後（構図を決定した後）、シャッタボタンを半押しする（ステップＳ１２）。ＣＰＵ４０は、シャッタボタンの半押しを示す信号を操作部３８から入力すると、ＡＦ動作及びＡＥ動作を開始させ、レンズ駆動部３６を介して撮影光学系１２内のフォーカスレンズが合焦位置にくるように制御するとともに、ＡＥ検出部４４から入力する測光値に基づいて露出条件（絞り１４の絞り値及びＣＣＤ１６のシャッタスピード）を決定する（ステップＳ１２）。
【００６１】
その後、シャッタボタンが全押しされると、ＣＰＵ４０は、ステップＳ１２で決定した露出条件にしたがって連写を開始させる（ステップＳ１４）。このとき、撮影者は、撮像装置１０を右回りにパンニングさせるが、撮像装置１０を所定のスイング速度で、かつ上下方向にブレないようにパンニングさせることが望ましい。
【００６２】
連写が開始されると、ＣＣＤ１６等を含む撮像部により撮影された撮影画像を取り込む（ステップＳ１６）。ＣＰＵ４０は、取り込んだ撮影画像が１枚目か否かを判別し、１枚目の場合(「Yes」の場合)には、ステップＳ２０に遷移させ、２枚目以降の場合(「No」の場合)には、ステップＳ２２に遷移させる（ステップＳ１８）。
【００６３】
ステップＳ２０では、１枚目の撮影画像に基づいて該撮影画像のホワイトバランス（ＷＢ）を補正するためのＷＢゲインを算出し、このＷＢゲインにより撮影画像（Ｒ、Ｇ、Ｂ信号）のホワイトバランス補正を行う。また、２枚目以降の撮影画像に対しては、１枚目の撮影画像に基づいて算出されたＷＢゲインを使用し、ピント位置及び露出条件を同条件にして撮影が行われる。これは、後述するパノラマ画像合成時に使用する短冊状の各画像の色味、ピント位置、明るさが変化しないようにするためである。
【００６４】
ステップＳ２０でホワイトバランス補正等の画像処理が行われた１枚目の撮影画像は、基準画像としてメモリ４８の作業領域（working area）に一時格納される（ステップＳ２４）。
【００６５】
一方、ステップＳ２２では、２枚目以降の撮影画像が取得されると、基準画像（前の撮影画像）と撮影画像との対応点検出を行う。そして、算出された対応点に基づいて基準画像と撮影画像とのオプティカルフローを算出する（ステップＳ２６）。
【００６６】
続いて、前記算出されたオプティカルフローの並進ベクトルの水平成分ｘの絶対値|ｘ|が、所定の範囲（閾値Th1≦|ｘ|≦閾値Th2）に入っているか否かを判別する（ステップＳ２８）。前記並進ベクトルの水平成分ｘの絶対値|ｘ|が所定の範囲に入っている場合(「Yes」の場合)には、撮影画像を基準画像に合わせるように回転補正を行う（ステップＳ３０）。その後、基準画像と回転補正した撮影画像とのオーバーラップ領域内の画像を特定し、基準画像と撮影画像からそれぞれオーバーラップ領域の画像を切り出す（ステップＳ３２）。
【００６７】
次に、パンニング撮影時のスイングの向きの設定が右回りか否かを判別する（ステップＳ３４）。スイングの向きは、ユーザーが撮影前に設定した向きが右回りと左回りのどちらであるかに基づいて、判別することとしてもよい。
【００６８】
そして、スイングの向きが右回りと判別された場合(「Yes」の場合)には、基準画像から切り出したオーバーラップ領域の画像を左用画像としてメモリ４８に格納し、撮影画像から切り出したオーバーラップ領域の画像を右用画像としてメモリ４８に格納する（ステップＳ３６）。一方、スイングの向きが左回りと判別された場合(「No」の場合)には、基準画像から切り出したオーバーラップ領域の画像を右用画像としてメモリ４８に格納し、撮影画像から切り出したオーバーラップ領域の画像を左用画像としてメモリに格納する（ステップＳ３８）。
【００６９】
次に、オプティカルフローの並進ベクトルの水平成分ｘの絶対値|ｘ|を、切り出したオーバーラップ領域の画像と関連づけてメモリに格納し（ステップＳ４０）する。さらに、撮影開始からの水平成分ｘの絶対値|ｘ|の総和Sum_|ｘ|を算出し、総和Sum_|ｘ|が閾値Th4を越えたか否かを判別する（ステップＳ４２）。閾値Th4を越えた場合(「Yes」の場合)には、所定角度範囲における３Ｄパノラマ画像合成用の画像の取得が完了したものと見なし、撮影を終了させる（ステップＳ４３）。このとき、３Ｄパノラマ撮影モードによる撮影が終了したことを液晶モニタ３０上で撮影者に知らせるようにしてもよい。
【００７０】
一方、閾値Th4を越えていない場合(「No」の場合)には、撮影画像を基準画像に置き換え（上書きし）（ステップＳ２４）、ステップＳ１６に戻る。
【００７１】
また、ステップＳ２８において、オプティカルフローの並進ベクトルの水平成分ｘの絶対値|ｘ|が、所定の範囲（閾値Th1≦|ｘ|≦閾値Th2）に入っていないと判別されると（「No」の場合)、並進ベクトルの水平成分ｘの絶対値|ｘ|が、下限側の閾値Th1よりも小さいか否かを判別する（ステップＳ４４）。小さい場合(「Yes」の場合)には、ステップＳ４５に遷移させ、ここで、ステップＳ１１で設定したスイングの向きと、パンニング撮影時のスイングの向きとが一致しているか否かを、並進ベクトルの水平成分ｘの正負に基づいて判別する。例えば、ステップＳ１１において撮影前に設定されたスイングの向きが右回りの場合、ｘが正であれば、実際のパニング撮影時のスイングの向きも設定と同様に右回りであると判別する。スイングの向きが一致している場合(「Yes」の場合)には、現在の撮影画像を破棄し（ステップＳ４６）、ステップＳ１６に戻る。
【００７２】
即ち、並進ベクトルの水平成分ｘの絶対値|ｘ|が、下限側の閾値Th1よりも小さく、かつスイング方向が設定方向と一致している場合には、基準画像と撮影画像とのオーバーラップ領域の画像が大きく、オーバーラップ領域の画像間の視差が小さくなっている。従って、この場合には、撮影画像を破棄し、その撮影画像を採用しないようにしている。
【００７３】
ステップＳ４５において、スイングの向きが一致していないと判別されると(「No」の場合)には、スイング方向が逆である旨の警告を液晶モニタ３０に表示し（ステップＳ５０）、３Ｄパノラマ撮影モードによる撮影を終了させる（ステップＳ４３）。
【００７４】
一方、ステップＳ４４において、並進ベクトルの水平成分ｘの絶対値|ｘ|が、下限側の閾値Th1よりも大きい（ステップＳ２８での判別結果との関係から上限側の閾値Th2よりも大きい）と判別されると(「No」の場合)、パンニング撮影時のスイング速度が速すぎる旨の警告を液晶モニタ３０に表示し（ステップＳ４８）、３Ｄパノラマ撮影モードによる撮影を終了させる（ステップＳ４３）。この場合には、３Ｄパノラマ画像合成用の画像の取得が完了せず、撮り直しが必要となる。
【００７５】
＜３Ｄパノラマ画像の合成処理＞
次に、上記のようにして取得した３Ｄパノラマ画像合成用の複数枚の左用画像及び右用画像を使用して、３Ｄパノラマ画像を合成する合成処理シーケンスについて説明する。
【００７６】
図５Ａから５Ｄは、３Ｄパノラマ画像の合成処理シーケンスを示す図である。
【００７７】
図５Ａにおいて、１〜９は、撮像装置１０のパンニング中に撮影された時系列の画像であって、上段側の画像１〜８及び下段側の画像２〜９は、それぞれオーバーラップ領域の画像のうちの左画像及び右画像である。
【００７８】
これらの左画像及び右画像を合成する処理において、ステップＳ２６で算出したオプティカルフローを使用することができる。図５Ａに示す例では、隣接する各画像間1-2,2-3,3-4,…のオプティカルフロー（並進ベクトル）として、（x,y）＝(19,2),(21,-1),(20,0),…が算出されている。
【００７９】
続いて、図５Ｂに示すように、上記算出されたオプティカルフロー（並進ベクトル）（x,y）＝(19,2),(21,-1),(20,0),…に基づいて各画像を短冊状にトリミングし、そのトリミングした短冊状の画像を順次合成する。即ち、画像中央から並進ベクトルの水平成分ｘの1/2だけずらした位置から固定幅wの短冊状の画像を、先に撮影された画像と後に撮影された画像の各々（つまり、時系列の画像中で隣接する２つの画像の各々）から切り出し、この切り出した短冊状の画像を、並進ベクトルだけ上下左右方向にずらしながら各短冊状の画像を合成させる。これにより、３Ｄパノラマ画像合成が完了する。
【００８０】
次に、パノラマ画像合成された左画像と右画像のうちの、互いに重複する画素を有する領域の画像をそれぞれトリミングする。図５Ｃに示す例では、左画像及び右画像からそれぞれ最大の矩形領域の画像ＡＬ,ＡＲを切り出し、これらの切り出した矩形領域の画像ＡＬ,ＡＲで重複する領域の画像をトリミング領域として決定している。さらに、図５Ｄに示すように、決定されたトリミング領域に対応する部分を、左画像及び右画像からそれぞれ切り出す。
【００８１】
これらの切り出した左画像及び右画像は、ステレオ画像（３Ｄパノラマ画像）としてメモリカード５４に保存される。例えば、左右の２枚のパノラマ画像からマルチピクチャファイル（ＭＰファイル：複数の画像が連結された形式のファイル）を生成し、このＭＰファイルをメディア・コントローラ５２を介してメモリカード５４に記録する。尚、左右の２枚のパノラマ画像は、１つのＭＰファイルに保存する場合に限らず、互いに関連づけて保存されていれば、別々に画像ファイルで保存するようにしてもよい。
【００８２】
［その他］
この実施の形態では、パンニング撮影中に取得される時系列の撮影画像のうち、各画像間のオプティカルフローの並進ベクトルの水平成分ｘが所定の範囲に入る撮影画像を抽出するようにしたが、撮影画像の抽出方法はこの場合に限られない。例えば、撮像装置１０に角速度センサを設け、水平方向の角度の変化量が所定の範囲に入る撮影画像を抽出するようにしてもよい。また、隣接する画像間の水平方向の角度の変化量が所定の上限値（フレームレートに対応して設定される最大角速度）を越えると、スイング速度の超過警告を行うようにしてもよい。
【００８３】
また、図２に示すようにパンニング撮影中の撮像装置１０のスイングの半径Ｒが小さくなると、オーバーラップ領域の画像間の視差も小さくなる。そこで、撮像装置１０に水平方向の速度又は加速度を検出するセンサ等を設け、スイング速度Vを測定し、上記角速度センサの出力結果ωと併せてスイング半径R=V/ωを算出し、Rが所定の閾値以下の場合には、スイング半径が小さい旨の警告を行うようにしてもよい。
【００８４】
更に、この実施の形態では、３Ｄパノラマ画像合成用の複数枚の左用画像及び右用画像を使用して、３Ｄパノラマ画像を合成する際に、隣接する画像間のオプティカルフローに基づいて短冊状の画像を切り出すとともに、切り出した短冊状の画像を連結するようにしている。しかし、左用画像の画像群の各画像間の並進ベクトルに応じて左用画像の画像群を時系列順に相対的にずらしてメモリ上に上乗せマッピングすることにより左用のパノラマ画像を合成し、同様に右用画像の画像群の各画像間の並進ベクトルに応じて右用画像の画像群を時系列順に相対的にずらしてメモリ上に上乗せマッピングすることにより右用のパノラマ画像を合成するようにしてもよい。即ち、パノラマ画像合成方法は、この実施の形態に限定されず、種々の方法を適用することができる。
【００８５】
また、本発明に係る撮像装置は３Ｄパノラマ画像合成機能を内蔵しているが、撮影機能を有しないパーソナルコンピュータ等の外部機器により３Ｄパノラマ画像合成装置を構成するようにしてもよい。この場合、連写機能、動画撮影機能等を有する一般のデジタルカメラやビデオカメラをパンニングして撮影した画像を入力画像にする。さらに、本発明に係る３Ｄパノラマ画像合成処理をコンピュータに実施させるプログラムを用意し、このプログラムをコンピュータにインストールする。そして、コンピュータでこのプログラムを実行させ、上記入力画像を用いて３Ｄパノラマ画像を合成させる。なお、３Ｄパノラマ画像合成処理をコンピュータに実施させるプログラムを記録媒体に記録し、この記録媒体を介してプログラムをコンピュータにインストールすることも可能である。記録媒体として、例えば、光磁気ディスク、フレキシブルディスク、メモリーチップ等が挙げられる。
【００８６】
更に、本発明は上述した実施の形態に限定されず、本発明の精神を逸脱しない範囲で種々の変形が可能であることは言うまでもない。
【符号の説明】
【００８７】
１０…撮像装置、１２…撮影光学系、１４…絞り、１６…撮像素子（ＣＣＤ）、３０…液晶モニタ、３２…ＣＣＤ制御部、３４…絞り駆動部、３６…レンズ駆動部、３８…操作部、４０…中央処理装置（ＣＰＵ）、４２…ＡＦ処理部、４４…ＡＥ検出部、４６…ＲＯＭ、４０…メモリ（ＳＤＲＡＭ）、５２…メディア・コントローラ、５４…メモリカード
【図１】
0005390707.tif 000002
【図２】
0005390707.tif 000003
【図３Ａ】
0005390707.tif 000004
【図３Ｂ】
0005390707.tif 000005
【図３Ｃ】
0005390707.tif 000006
【図３Ｄ】
0005390707.tif 000007
【図４】
0005390707.tif 000008
【図５Ａ】
0005390707.tif 000009
【図５Ｂ】
0005390707.tif 000010
【図５Ｃ】
0005390707.tif 000011
【図５Ｄ】
0005390707.tif 000012