図1は、本発明の一実施形態を説明するための撮影装置の概略構成を示す図である。撮影装置としては、デジタルカメラ及びデジタルビデオカメラ等の撮影装置、カメラ付携帯電話機等に搭載される撮影モジュール、等があり、ここではデジタルカメラを例にして説明する。
図1に示すデジタルカメラは、連続して複数回の撮影(パノラマ撮影)を実施し、その複数回の撮影で得られる画像データを合成して360°全周を撮影した全周パノラマ画像データを生成して記録する全周パノラマ撮影モードを搭載している。
図1に示したデジタルカメラの撮影系は、撮影光学系としての撮影レンズ1と、CCDイメージセンサ及びMOSイメージセンサ等の撮像素子2とを備える。
デジタルカメラの電気制御系全体を統括制御するシステム制御部(CPU)11は、レンズ駆動部6を制御して撮影レンズ1の位置をフォーカス位置に調整したりズーム調整を行ったりする。
また、システム制御部11は、撮像素子駆動部5を介して撮像素子2を駆動し、撮影レンズ1を通して撮像した被写体像を撮像信号として出力させる。システム制御部11には、操作部7を通してユーザからの指示信号が入力される。また、システム制御部11には、回転角測定部8が接続されている。
回転角測定部8は、例えば角速度センサであり、全周パノラマ撮影モードにおいて撮像素子2により実施される複数回の撮影のうちの最初の撮影が開始されてからデジタルカメラの回転角の測定を開始し、その回転角の累積値をシステム制御部11に通知する。例えば、回転角測定部8は、複数回の撮影のうちの1回の撮影が行われる毎に、回転角の累積値を更新してシステム制御部11に通知する。
デジタルカメラの電気制御系は、更に、撮像素子2の出力に接続された相関二重サンプリング処理等のアナログ信号処理を行うアナログ信号処理部3と、このアナログ信号処理部3から出力された撮像信号をデジタル信号に変換するA/D変換回路4とを備え、これらはシステム制御部11によって制御される。
更に、このデジタルカメラの電気制御系は、メインメモリ13と、メインメモリ13に接続されたメモリ制御部12と、補間演算やガンマ補正演算,RGB/YC変換処理等を行って画像データを生成するデジタル信号処理部14と、着脱自在の記録媒体16が接続される外部メモリ制御部15と、カメラ背面等に搭載された液晶表示部18が接続される表示制御部17と、画像合成部19と、画像切り出し部20と、切り出し範囲制御部21と、必要回転角算出部22とを備える。
メモリ制御部12、デジタル信号処理部14、外部メモリ制御部15、表示制御部17、画像合成部19、画像切り出し部20、切り出し範囲制御部21、及び必要回転角算出部22は、制御バス9及びデータバス10によって相互に接続され、システム制御部11からの指令によって制御される。
画像切り出し部20は、パノラマ撮影(複数回の撮影)で得られる各画像データから所定範囲のデータ(以下、切り出し領域という)を切り出す。
パノラマ撮影で得られる各画像データの端部はレンズ収差による歪みの影響が大きい。このため、この端部のデータについては、全周パノラマ画像データの生成に使用しないようにすることで、全周パノラマ画像データの品質を高めることができる。このような理由から、画像切り出し部20は、レンズ収差による歪みの影響が大きい領域のデータを使用しないために、各画像データから所定範囲のデータを切り出す。
画像合成部19は、画像切り出し部20で切り出された複数の切り出し領域を、そのオーバーラップ領域同士を重ね合わせることで合成して、パノラマ画像データを生成する。
なお、画像合成部19は、画像切り出し部20で切り出された切り出し領域を合成して得た合成画像データの上下をトリミングしたデータを最終的なパノラマ画像データとして生成してもよい。
全周パノラマ画像データを生成するには、画像切り出し部20で切り出された全ての切り出し領域を合成して得られる合成画像データの幅(本明細書では、この幅がパノラマ撮影における画角に相当するため、角度で大きさを示す)が360°になっている必要がある。
このような条件を満たすために必要なデジタルカメラのパノラマ撮影の1回目の撮影の開始からパノラマ撮影の最後の撮影の終了までの累積回転角(以下、必要回転角という)は、上記所定範囲とパノラマ撮影時の焦点距離情報とによって一意に決まる。このデジタルカメラでは、必要回転角算出部22が、上記所定範囲と焦点距離情報とに基づいて、上記必要回転角を算出する。
切り出し範囲制御部21は、パノラマ撮影の最後の撮影で得られた画像データ(最終画像データ)から切り出すべき上記所定範囲を拡大する制御を行う。最終画像データから切り出し領域を切り出すべき所定範囲を拡大すると、デジタルカメラのパノラマ撮影開始時点からの累積回転角が必要回転角に達していない状態で最後の撮影が終了された場合でも、全周パノラマ画像データを生成することができる。以下、この理由を、図面を参照して詳しく説明する。
図2は、図1に示すデジタルカメラの全周パノラマ撮影モード時の動作を説明するための図である。図2において、符号G1〜Gnは、パノラマ撮影で得られる各画像データを示す。画像データG1は、パノラマ撮影の1回目の撮影で得られる画像データを示し、画像データGnは、パノラマ撮影の最後の撮影で得られる画像データを示す。符号g1〜gnは、画像データG1〜Gnからそれぞれ所定範囲を切り出して得られた切り出し領域を示す。
図2では、画像データの幅が50°であり、所定範囲として画像データの中央から左右に5°ずつ、計10°の範囲を所定範囲として切り出した例を示している。
画像データGnを得るための最後の撮影が終了した時点でのデジタルカメラの累積回転角が必要回転角に達していれば、全周パノラマ画像データを生成することが可能である。これに対し、画像データGnを得るための最後の撮影が終了した時点でのデジタルカメラの累積回転角が必要回転角に達していなかった場合には、切り出し領域g1〜gnを合成して得られる合成画像データの幅が360°より小さくなり、全周パノラマ画像データを生成することができない。
そこで、このようなときには、切り出し範囲制御部21が、切り出し領域g1〜gnを合成して得られる合成画像データの幅が360°になるように、画像データGnの切り出し範囲を上記所定範囲から拡大する制御を行う。
この制御が行われると、画像切り出し部20は、画像データGnについては、所定範囲を拡大した範囲でデータを切り出す処理を行う。図2の例では、画像データGnから切り出すことのできるデータは、画角20°分、広げる余地がある。このため、この部分を用いて、切り出し領域g1〜gnを合成して得られる合成画像データの幅が360°になるように、画像データGnの切り出し範囲を上記所定範囲から拡大する。このようにすることで、画像データGnを得るための最後の撮影が終了した時点でのデジタルカメラの累積回転角が必要回転角に達していなくても、全周パノラマ画像データを生成することができる。
なお、累積回転角によっては、画像データGnの切り出し範囲を最大限拡大しても、切り出し領域g1〜gnを合成して得られる合成画像データの幅が360°に達しない場合もある。
そこで、切り出し範囲制御部21は、デジタルカメラのパノラマ撮影の1回目の撮影開始時点からの累積回転角が、所定値(画像データGnの切り出し範囲を拡大することで全周パノラマ画像データが生成可能となる累積回転角の値)以上必要回転角未満の状態で、パノラマ撮影の最後の撮影の終了がなされた場合に、上記所定範囲を拡大する制御を行う。
次に、このデジタルカメラの全周パノラマ撮影モード時の動作を説明する。以下では、パノラマ撮影の1回目の撮影で得られる画像データを画像データG1とし、パノラマ撮影の最後の撮影で得られる画像データを画像データGnとして説明する。
図3は、図1に示すデジタルカメラの全周パノラマ撮影モード時の動作を説明するためのフローチャートである。
まず、ユーザは、デジタルカメラを全周パノラマ撮影モードに設定し、操作部7に含まれるシャッタボタンを押すことで撮影指示を行ってから、デジタルカメラを回転移動させる。
ユーザから撮影指示がなされると、システム制御部11が、レンズ1を制御して焦点調節を行い、撮像素子2を駆動して、パノラマ撮影(複数回の撮影)を開始する(ステップS31)。この複数回の撮影は、例えば動画撮影や高速連写撮影によって行う。
焦点調節処理により焦点距離が決まると、必要回転角算出部22が、この焦点距離の情報と、画像切り出し部20が切り出しを行う所定範囲の情報とから、必要回転角を算出する。
ステップ31でパノラマ撮影の1回目の撮影を開始すると、回転角測定部8がデジタルカメラの回転角の測定を開始し(ステップS32)、パノラマ撮影の1回目の撮影開始時点からの累積回転角をシステム制御部11に定期的に通知する。
パノラマ撮影によって撮像素子2から順次出力される撮像信号からデジタル信号処理部14によって画像データが生成され、これがメインメモリ13に記憶されると、画像切り出し部20が当該画像データから所定範囲の切り出しを行い、画像合成部19が、切り出された切り出し領域同士の合成を開始する(ステップS33)。
ステップS33の処理の開始後、システム制御部11は、回転角測定部8から通知されるデジタルカメラの累積回転角をモニタし、この累積回転角が上述した所定値(例えば350°)以上になったかどうかを判定する(ステップS34)。
累積回転角が所定値よりも小さいとき(ステップS34:NO)、システム制御部11は、ステップS38に処理を移行し、パノラマ撮影の最後の撮影が終了したかどうかを判定する。
最後の撮影が終了したかどうかは、シャッタボタンの再押下の有無、回転角測定部8から定期的に通知される累積回転角の変化の有無等によって判定することができる。システム制御部11は、例えばシャッタボタンの押下を解除する操作がなされたときには、最後の撮影が終了したと判定する。または、システム制御部11は、回転角測定部8から定期的に通知される累積回転角に変化がなくなったときには、最後の撮影が終了したと判定する。
ステップS38の判定がYESであった場合には、ステップS39に処理を移行し、ステップS38の判定がNOであった場合には、ステップS34に処理を移行する。
ステップS39では、システム制御部11が、画像合成部19で生成された、切り出し領域同士を合成して得た合成画像データを、外部メモリ制御部15を介して記録媒体16に記録する。
デジタルカメラの累積回転角が所定値以上になったとき(ステップS34:YES)、システム制御部11は、パノラマ撮影の最後の撮影が終了したかどうかを判定する(ステップS35)。
ステップS35の判定がNOであった場合、システム制御部11は、累積回転角が、必要回転角算出部22で算出された必要回転角(例えば360°)に到達しているかどうかを判定する(ステップS37)。
ステップS37の判定がNOであった場合はステップS35に処理を移行し、ステップS37の判定がYESであった場合はステップS39に処理を移行する。
ステップS35の判定がYESであった場合、システム制御部11の指示により、切り出し範囲制御部21が、パノラマ撮影の最後の撮影で生成された画像データGnの切り出し範囲を、上記所定範囲よりも拡大する制御を行う(ステップS36)。ステップS36の後は、ステップS39に処理を移行する。
ステップS36の処理により、画像切り出し部20は、画像データGnについては、全ての切り出し領域g1〜gnを合成して得られる合成画像データの幅が360°になるように、所定範囲を拡大した切り出し範囲で切り出し領域gnの切り出しを行う。ステップS36,S37の後のステップS39で記録される合成画像データは、全周パノラマ画像データとなる。
以上のように、このデジタルカメラでは、パノラマ撮影の1回目の撮影を開始してからのデジタルカメラの累積回転角が必要回転角に達しない状態で、パノラマ撮影の最後の撮影が終了された場合でも、その累積回転角が所定値以上となっていれば、画像データGnの切り出し範囲を拡大して、全周パノラマ画像データを生成することができる。
このため、ユーザは、デジタルカメラを必要回転角となるまで回転させることを強く意識せず、大雑把にデジタルカメラを回転移動させるだけで、全周パノラマ画像データを得られるようになる。この結果、ユーザの負担を軽減することができる。
また、このデジタルカメラによれば、何らかの要因でデジタルカメラが必要回転角に達する前に、パノラマ撮影の最後の撮影を終了してしまった場合でも、全周パノラマ画像データを記録することが可能である。このため、全周パノラマ撮影を失敗する機会を大幅に減らすことができる。
また、ユーザは、表示部を見ながらパノラマ撮影を行う必要がないため、画角ズレ等を起こすことなく、容易に全周パノラマ撮影を行うことができる。
以下では、図1に示したデジタルカメラの変形例について説明する。
(第一の変形例)
図4は、図1に示したデジタルカメラの第一の変形例のデジタルカメラの概略構成を示す図である。
図4に示したデジタルカメラは、重複画像比較部23と重複箇所抽出部24を追加した点を除いては、図1に示したデジタルカメラと同じ構成である。
図1に示したデジタルカメラでは、画像データGnの切り出し範囲を所定範囲よりも拡大することで、累積回転角が必要回転角に達していないときでも、全周パノラマ画像データの生成を可能にしたが、図4に示したデジタルカメラでは、画像データGnと1回目の撮影で得られた画像データG1の少なくとも一方の切り出し範囲を所定範囲よりも拡大することで、全周パノラマ画像データの生成を可能にしている。
図4に示したデジタルカメラの切り出し範囲制御部21は、デジタルカメラのパノラマ撮影の1回目の撮影の開始からの累積回転角が所定値以上必要回転角未満の状態で、パノラマ撮影の最後の撮影の終了がなされた場合に、画像データG1及び画像データGnの少なくとも一方の切り出し範囲を、所定範囲から拡大する制御を行う。
図4に示したデジタルカメラの画像切り出し部20は、切り出し範囲制御部21によって画像データG1及び画像データGnの少なくとも一方の切り出し範囲を拡大する制御がなされると、この制御にしたがって、画像データG1及び画像データGnの少なくとも一方の切り出し範囲についてはこれを所定範囲から拡大して、切り出し領域の切り出しを行う。
重複箇所抽出部24は、画像データG1の画像切り出し部20で切り出される所定範囲を除く範囲と画像データGnの当該所定範囲を除く範囲との重複領域を抽出する。
重複画像比較部23は、重複箇所抽出部24で抽出された重複領域同士の画質(例えばコントラスト情報)を比較する。
図4に示したデジタルカメラの切り出し範囲制御部21は、画像データG1の上記重複領域の画質と、画像データGnの上記重複領域の画質との差が閾値以上のときには、上記重複領域の画質が相対的に良い方の画像データの切り出し範囲を拡大する制御を行う。
また、切り出し範囲制御部21は、画像データG1の上記重複領域の画質と、画像データGnの上記重複領域の画質との差が閾値より小さいときには、画像データG1と画像データGnの各々の切り出し範囲を均等に拡大する制御を行う。
図5は、図4に示すデジタルカメラの全周パノラマ撮影モード時の動作を説明するためのフローチャートである。図5において、図3と同じ処理には同一符号を付して説明を省略する。図6は、図4に示すデジタルカメラの全周パノラマ撮影モード時の切り出し範囲の拡大制御を説明するための図である。
図5のフローチャートにおいてステップS35の判定がYESであった場合(累積回転角が所定値以上必要回転角未満でパノラマ撮影の最後の撮影が終了された場合)、重複箇所抽出部24が、図6の枠61内に示したように、画像データG1の所定範囲を除く範囲と画像データGnの所定範囲を除く範囲の重複領域Cを抽出する(ステップS51)。
次に、重複画像比較部23が、画像データG1の重複領域Cの画質と、画像データGnの重複領域Cの画質とを比較し、画質に閾値以上の差があるかどうかを判定する(ステップS52)。
ステップS52の判定がYESであった場合、切り出し範囲制御部21が、相対的に画質が良い重複領域Cを含む画像データの切り出し範囲を拡大する制御を行う(ステップS53)。
具体的には、切り出し範囲制御部21は、画像データGnの重複領域Cの画質が相対的に良かった場合は、図6の枠62内に示すように、画像データGnの切り出し範囲を拡大する制御を行う。また、切り出し範囲制御部21は、画像データG1の重複領域Cの画質が相対的に良かった場合は、図6の枠63内に示すように、画像データG1の切り出し範囲を拡大する制御を行う。
ステップS53の制御により、画像データG1又は画像データGnから、所定範囲よりも拡大された範囲で切り出しが行われ、切り出された領域が他の切り出し領域と合成されて、全周パノラマ画像データが生成される。
なお、ここでは、画像データGnから切り出した切り出し領域gnを合成してパノラマ画像データを生成するまで、画像データG1を保持しておくことを想定しているが、メモリ容量を考慮した場合には次のような構成とすることが好ましい。例えば、ステップS33において、画像データG1から切り出し領域g1を切り出す際に、画像データG1のステップS54で切り出し範囲を拡大する可能性がある範囲の領域も併せて切り出して保持しておく。そして、ステップS54において、画像データG1の切り出し範囲を拡大するときには、この保持している領域の所定範囲を切り出し領域g1に接合することで、切り出し範囲を広げた切り出し領域g1を生成する。
ステップS52の判定がNOであった場合は、切り出し範囲制御部21が、図6の枠64内に示したように、画像データG1と画像データGnの各々の切り出し範囲を均等に拡大する制御を行う(ステップS54)。
この制御により、画像データG1と画像データGnの双方から、所定範囲よりも拡大された範囲で切り出しが行われ、切り出された領域が他の切り出し領域と合成されて、全周パノラマ画像データが生成される。
以上のように、図4に示したデジタルカメラは、画像データG1と画像データGnの所定範囲を除く範囲における重複領域の画質に大きな差があるときには、画質が良い方の画像データの切り出し範囲を拡大して全周パノラマ画像データの生成を可能にしている。
このため、常に画像データGnの切り出し範囲を拡大する場合と比べて、全周パノラマ画像データの画質向上を図ることができる。
また、図4に示したデジタルカメラは、画像データG1と画像データGnの所定範囲を除く範囲における重複領域の画質に大きな差がないときには、画像データG1と画像データGnの各々の切り出し範囲を均等に拡大して全周パノラマ画像データの生成を可能にしている。
この場合は、画像データG1又は画像データGnの切り出し範囲のみを拡大する場合と比較して、画像データのレンズ収差による歪みの影響が大きい範囲を使用する割合を減らすことができ、全周パノラマ画像データの画質向上を図ることができる。
なお、この変形例のデジタルカメラにおいて、画像データG1と画像データGnの重複領域の画質の差に関わらず、画像データG1と画像データGnの切り出し範囲を均等に拡大する制御を、常に行うようにしてもよい。
つまり、図5に示したフローチャートにおいて、ステップS51、S52、S53を削除し、ステップS35の判定がYESのときにはステップS54に処理を移行するようにしてもよい。
このようにした場合でも、画像データのレンズ収差による歪みの影響が大きい範囲を使用する割合を減らすことができるため、全周パノラマ画像データの画質向上を図ることができる。
(第二の変形例)
図7は、図1に示したデジタルカメラの第二の変形例のデジタルカメラの概略構成を示す図である。
図7に示したデジタルカメラは、垂直画角ズレ検出部25と姿勢検出部26を追加した点を除いては、図1に示したデジタルカメラと同じ構成である。
図7に示したデジタルカメラの切り出し範囲制御部21は、デジタルカメラのパノラマ撮影の1回目の撮影開始からの累積回転角が所定値以上必要回転角未満の状態で、パノラマ撮影の最後の撮影の終了がなされた場合に、画像データG1及び画像データGnの少なくとも一方の切り出し範囲を、所定範囲から拡大する制御を行う。
姿勢検出部26は、例えばジャイロセンサや加速度センサであり、デジタルカメラの撮影レンズ1の光軸を中心に回転する方向の傾き(デジタルカメラの鉛直方向に対する傾き)を検出してシステム制御部11に通知する。
垂直画角ズレ検出部25は、画像データG1と画像データGnの垂直方向(パノラマ撮影時におけるデジタルカメラの移動方向に垂直な方向)の画角ズレを検出する。垂直方向の画角ズレは、画像データG1と画像データGnに含まれる同一特徴点同士の垂直方向のズレ量のことである。
垂直画角ズレ検出部25は、画像データG1と画像データGnから同一特徴点を抽出し、抽出した特徴点同士の垂直方向のズレ量を求めることで、画像データG1と画像データGnの垂直方向の画角ズレを検出する。
切り出し範囲制御部21は、姿勢検出部26で検出される画像データG1を撮影したときの傾き(以下、この傾きを単に画像データG1の傾きもという)及び画像データGnを撮影したときのデジタルカメラの傾き(以下、この傾きを単に画像データGnの傾きともいう)と、垂直画角ズレ検出部25で検出される画像データG1と画像データGnの垂直方向の画角ズレとに基づいて、画像データG1の切り出し範囲のみを拡大する制御、画像データGnの切り出し範囲のみを拡大する制御、及び画像データG1と画像データGnの切り出し範囲を均等に拡大する制御の3つの制御のうちのいずれかを選択的に実行する。
例えば、画像データGnが傾いておらず、画像データG1がデジタルカメラの光軸を中心とする回転方向で時計回りに傾いており、画像データGnの撮影位置が画像データG1の撮影位置よりも上側になっていたり、撮影位置は同じであるが画像データGnを撮影したときにデジタルカメラが少し上に向いてしまったりして、画像データGnが画像データG1に対して垂直方向上側にずれていた場合を考える。この場合、画像データG1と画像データGnの位置関係は図8に示すようになる。
図8に示した位置関係では、画像データGnの切り出し範囲のみを拡大した場合には、切り出し領域gnと切り出し領域g1の接合部分において段差が発生する。
また、画像データGnと画像データG1の切り出し範囲を均等に拡大した場合には、切り出し領域gnと切り出し領域g1の接合部分に発生する段差を、画像データGnの切り出し範囲のみを拡大したときよりは小さくすることができる。
また、画像データG1の切り出し範囲のみを拡大した場合には、切り出し領域gnと切り出し領域g1の接合部分に発生する段差を、画像データGnと画像データG1の切り出し範囲を均等に拡大した場合よりも小さくすることができる。
このような観点に基づき、切り出し範囲制御部21は、図8に示した位置関係のときには、切り出し領域gnと切り出し領域g1の接合部分に発生する段差を最も縮小することのできる切り出し範囲の制御(ここでは、画像データG1の切り出し範囲のみを拡大する制御)を実行することで、全周パノラマ画像データの画質向上を図る。
また、例えば、画像データG1,Gnが、デジタルカメラの光軸を中心とする回転方向で反時計回りに同じ角度で傾いており、画像データGnの撮影位置が画像データG1の撮影位置よりも上側になっていたり、撮影位置は同じであるが画像データGnを撮影したときにデジタルカメラが少し上に向いてしまったりして、画像データGnが画像データG1に対して垂直方向上側にずれていた場合を考える。この場合、画像データG1と画像データGnの位置関係は図9に示すようになる。
図9に示した位置関係では、画像データGnの切り出し範囲のみを拡大する制御、画像データG1の切り出し範囲のみを拡大する制御、画像データG1,Gnの切り出し範囲を均等に拡大する制御のいずれの制御を行っても、切り出し領域gnと切り出し領域g1の接合部分において同じ大きさの段差が発生する。
このため、切り出し範囲制御部21は、図9に示した位置関係のときには、画像データG1と画像データGnの切り出し範囲を均等に拡大する制御を実行する。
画像データG1と画像データGnの切り出し範囲を均等に拡大する制御は、画像データのレンズ収差による歪みの影響が大きい範囲を使用する割合を減らすことができるものであり、3つの制御の中で最も画質を良好なものにすることができる制御である。
図9に示した位置関係では、どの制御であっても上記段差は小さくすることができない。このため、このような位置関係のときには、画像データG1と画像データGnの切り出し範囲を均等に拡大する制御を行うことで、画質向上を図る。
このように、切り出し範囲制御部21は、姿勢検出部26で検出される画像データG1を撮影したとき及び画像データGnを撮影したときのデジタルカメラの傾きと、垂直画角ズレ検出部25で検出される画像データG1と画像データGnの垂直方向の画角ズレとに基づいて、上記段差を縮小することのできる制御が可能かどうかを判定し、この制御が可能であれば、上記段差が最も小さくなる制御を実行し、この制御が可能でなければ、画像データG1と画像データGnの切り出し範囲を均等に拡大する制御を行う。
なお、画像データG1と画像データGnの位置関係は、図8、図9に示したもの以外にも多数のパターンが存在し、そのパターン毎に、切り出し範囲の最適な制御を決めることができる。
図10は、画像データG1と画像データGnが取り得る位置関係のパターンと、各パターンにおいて切り出し範囲制御部21が実行する制御内容とを一覧にした図である。
図10において、“1枚目画像の傾き”は、画像データG1が撮影されたときのデジタルカメラの光軸を中心とする回転方向の傾きを示す。“最終画像の傾き”は、画像データGnが撮影されたときのデジタルカメラの光軸を中心とする回転方向の傾きを示す。“水平”は、デジタルカメラがほぼ傾いていない(傾きが予め定めた値以下である)ことを示す。“光軸周りCW”は、デジタルカメラが、光軸を中心とする回転方向で時計回りに傾いている(傾き角が予め定めた値以上である)ことを示す。“光軸周りCCW”は、デジタルカメラが、光軸を中心とする回転方向で反時計回りに傾いている(傾き角が予め定めた値以上である)ことを示す。
また、図10において、“1/2”は、画像データG1,Gnの切り出し範囲を均等に拡大する制御のことを示す。“1枚目”は、画像データG1の切り出し範囲のみを拡大する制御のことを示す。“最終画像”は、画像データGnの切り出し範囲のみを拡大する制御のことを示す。“↑”は、その上の欄の記載内容と同じ内容であることを示す。また、図10は、デジタルカメラを右回りに回転移動させていたったときの例を示した。
図10に示すように、画像データG1と画像データGnの垂直方向の位置関係は、大きく3つのパターンに分けられる。
1つは、画像データG1と画像データGnの垂直方向の画角ズレが無し(予め定めた値以下)のパターンAである。
もう1つは、画像データG1に対して画像データGnが垂直方向上側にズレており、その画角ズレ量が予め定めた値以上の場合のパターンBである。
最後の1つは、画像データG1に対して画像データGnが垂直方向下側にズレており、その画角ズレ量が予め定めた値以上の場合のパターンCである。
これら3つのパターンは、更に、画像データG1の傾きと画像データGnの傾きの組み合わせによって、それぞれ9つのパターンに分けられる。そして、9×3=27個のパターン毎に、切り出し範囲の拡大制御の内容が決められている。
切り出し範囲制御部21は、パターンAのとき、画像データGnと画像データG1の一方が傾いておらず、他方が傾いていた場合には、傾いていない方の画像データの切り出し範囲のみを拡大する制御を行う。
また、切り出し範囲制御部21は、パターンAのとき、画像データGnと画像データG1で傾き量がほぼ同じ場合(どちらも水平の場合も含む)には、画像データG1と画像データGnの切り出し範囲を均等に拡大する制御を行う。
また、切り出し範囲制御部21は、パターンBのとき、画像データGnに対して画像データG1が反時計回りに傾いていた場合には、画像データGnの切り出し範囲のみを拡大する制御を行う。
また、切り出し範囲制御部21は、パターンBのとき、画像データGnに対して画像データG1が時計回りに傾いていた場合には、画像データG1の切り出し範囲のみを拡大する制御を行う。
また、切り出し範囲制御部21は、パターンBのとき、画像データGnと画像データG1で傾き方向及び傾き量がほぼ同じ場合(どちらも水平の場合も含む)には、画像データG1と画像データGnの切り出し範囲を均等に拡大する制御を行う。
また、切り出し範囲制御部21は、パターンCのとき、画像データGnに対して画像データG1が時計回りに傾いていた場合には、画像データGnの切り出し範囲のみを拡大する制御を行う。
また、切り出し範囲制御部21は、パターンCのとき、画像データGnに対して画像データG1が反時計回りに傾いていた場合には、画像データG1の切り出し範囲のみを拡大する制御を行う。
また、切り出し範囲制御部21は、パターンCのとき、画像データGnと画像データG1で傾き方向及び傾き量がほぼ同じ場合(どちらも水平の場合も含む)には、画像データG1と画像データGnの切り出し範囲を均等に拡大する制御を行う。
図10に示す制御内容にしたがって切り出し範囲の拡大を行うことで、あらゆる状況において最適な画質を得ることが可能となる。
なお、デジタルカメラを左回りに回転移動させてパノラマ撮影を行うときには、図10に示した一覧において、CCWをCWに変更し、CWをCCWに変更したものとすればよい。
次に、図7に示したデジタルカメラの全周パノラマ撮影モード時の動作を説明する。
図11は、図7に示すデジタルカメラの全周パノラマ撮影モード時の動作を説明するためのフローチャートである。図11において、図3と同じ処理には同一符号を付して説明を省略する。
図11に示すフローチャートにおいてステップS35の判定がYESであった場合、垂直画角ズレ検出部25が、画像データG1と画像データGnの垂直方向の画角ズレを検出する(ステップS111)。
次に、システム制御部11が、姿勢検出部26からの情報に基づいて、画像データG1の傾きと画像データGnの傾きを検出する(ステップS112)。
次に、切り出し範囲制御部21が、ステップS111で検出された画角ズレと、ステップS112で検出された傾きとに基づいて、3つの制御の中から1つを選択して実行する。
具体的には、切り出し範囲制御部21は、ステップS111で検出された画角ズレと、ステップS112で検出された傾きとによって決まる画像データG1と画像データGnの位置関係が、上記段差を縮小することのできる位置関係である場合(ステップS113:YES)には、ステップS114に処理を移行し、上記段差を縮小することのできない位置関係である場合(ステップS113:NO)には、ステップS115に処理を移行する。
ステップS114では、切り出し範囲制御部21が、画像データG1又は画像データGnの切り出し範囲のみを拡大する制御を実行する。
この制御により、画像データG1又は画像データGnから、所定範囲よりも拡大された範囲で切り出しが行われ、切り出された領域が他の切り出し領域と合成されて、全周パノラマ画像データが生成される。
ステップS115では、切り出し範囲制御部21が、画像データG1と画像データGnの切り出し範囲を均等に拡大する制御を実行する。
この制御により、画像データG1と画像データGnの双方から、所定範囲よりも拡大された範囲で切り出しが行われ、切り出された領域が他の切り出し領域と合成されて、全周パノラマ画像データが生成される。
そして、ステップS114,S115の後は、ステップS39に処理を移行する。
以上のように、図7に示したデジタルカメラによれば、画像データG1と画像データGnの垂直方向の画角ズレと、画像データG1及び画像データGnの傾きとによって決まる画像データG1と画像データGnの位置関係に応じて、切り出し範囲の拡大制御内容を変更しているため、あらゆる撮影状況においても、高画質の全周パノラマ画像データを得ることができる。
(第三の変形例)
図1に示すデジタルカメラの第三の変形例のデジタルカメラの概略構成は、図7に示した構成と同じのため、図示を省略する。
第三の変形例のデジタルカメラの画像合成部19は、切り出し領域g1〜gnを合成して合成画像データを生成した後、その合成画像データの垂直方向(パノラマ撮影時におけるデジタルカメラの移動方向に垂直な方向)の端部をトリミングして、パノラマ画像データを完成させる。
第三の変形例のデジタルカメラでは、合成画像データの垂直方向端部をトリミングしてパノラマ画像データを生成するため、例えば図12に示す位置関係に画像データG1と画像データGnがある場合に、画像データG1の切り出し範囲のみを拡大して全周パノラマ画像データを生成しようとすると、図中の符号130で示した領域が不足した全周パノラマ画像データとなってしまう。
図12に例示されるように、画像データG1,Gnの傾きによっては、画像データG1又は画像データGnの切り出し範囲をいくら拡大しても、全周パノラマ画像データに不足領域が発生してしまうことがある。
垂直方向の端部のトリミングを行わない場合には、もともと、全周パノラマ画像データの当該端部がギザギザになるため、このような不足領域は目立たない。しかし、トリミングを行う場合には、不足領域だけがデータのない箇所になるため、不足領域の発生が画質に影響を与えたり、画像合成の失敗を引き起こしてしまう。
そこで、第三の変形例のデジタルカメラでは、切り出し範囲制御部21が、画像データG1と画像データGnのいずれかの切り出し範囲のみを拡大する制御を行うと決めた場合に、画像データG1と画像データGnの両方の傾きと、合成画像データのトリミング位置とに基づいて、不足領域130が生じるか否かを判定し、不足領域130が生じるときには、切り出し範囲の拡大を行わないと決めた方の画像データの切り出し範囲も拡大する制御を行う。
次に、第三の変形例のデジタルカメラの全周パノラマ撮影モード時の動作を説明する。
図13は、図1に示すデジタルカメラの第三の変形例のデジタルカメラの全周パノラマ撮影モード時の動作を説明するためのフローチャートである。図13において、図11と同じ処理には同一符号を付して説明を省略する。
図13のフローチャートにおいてステップS113:YESのとき、切り出し範囲制御部21は、画像データG1と画像データGnのうちの一方の切り出し範囲を拡大して全周パノラマ画像データを生成したときに、不足領域が発生するか否かを、画像データG1と画像データGnの傾きと、画像合成部19で生成される合成画像データのトリミング位置とに基づいて判定する(ステップS131)。
不足領域が発生する場合(ステップS131:YES)、切り出し範囲制御部21は、不足領域が発生しないように、画像データG1と画像データGnの両方の切り出し範囲を拡大する制御を行う(ステップS132)。
この制御により、画像データG1と画像データGnの双方から、所定範囲よりも拡大された範囲で切り出しが行われ、切り出された領域が他の切り出し領域と合成されて、全周パノラマ画像データが生成される。
不足領域が発生しない場合(ステップS131:NO)は、ステップS114に処理を移行する。
以上のように、第三の変形例のデジタルカメラによれば、不足領域が発生しないように画像データの切り出し範囲の拡大を行うことができるため、全周パノラマ画像データの画質向上を図ることができる。
なお、第三の変形例は、第一の変形例と組み合わせることも可能である。具体的には、図5に示したフローチャートにおいて、ステップS52:YESのときに、図13のステップS131の処理を行う。つまり、重複領域の画質が良いほうの画像データの切り出し範囲を拡大したときに生成される全周パノラマ画像データに不足領域が発生するかどうかを、画像合成部19で生成される合成画像データのトリミング位置と、画像データG1と画像データGnの各々の傾きに基づいて判定する。そして、ステップS131で不足領域が発生すると判定したときには、図13のステップS132の処理を行い、不足領域が発生しないと判定したときには、図5のステップS53の処理を行えばよい。
(第四の変形例)
図14は、図1に示したデジタルカメラの第四の変形例のデジタルカメラの概略構成を示す図である。
図14に示したデジタルカメラは、相対位置変更部28を追加した点と、撮影レンズ1と撮像素子2が、撮影レンズ1の光軸に垂直な方向の相対位置を変更可能に構成されている点を除いては、図1に示したデジタルカメラと同じ構成である。
図14に示したデジタルカメラの撮影レンズ1は、光軸に垂直な方向に移動できるようになっている。
図14に示したデジタルカメラの撮像素子2は、撮影レンズ1の光軸に垂直な方向に移動できるようになっている。
相対位置変更部28は、撮影レンズ1と撮像素子2の各々を光軸に垂直な方向に移動させることで、撮影レンズ1と撮像素子2の相対位置を変更する。なお、この相対位置の変更は、撮影レンズ1のみを移動させて行ってもよいし、撮像素子2のみを移動させて行ってもよい。撮影レンズ1のみを移動させる場合には、撮像素子2は撮影レンズ1の光軸に垂直な方向に移動できる構成になっていなくてもよい。撮像素子2のみを移動させる場合には、撮影レンズ1は光軸に垂直な方向に移動できる構成になっていなくてもよい。
システム制御部11は、デジタルカメラの累積回転角が所定値以上必要回転角未満の状態で、パノラマ撮影の最後の撮影が終了された場合に、相対位置変更部28を介して、撮影レンズ1と撮像素子2の相対位置を変更し、デジタルカメラの移動方向に撮影範囲を広げる制御を行う。
システム制御部11は、撮影範囲を広げた後、撮像素子2により追加の撮影を実施させる。なお、この追加の撮影は撮影範囲を広げて行われるため、システム制御部11は、この撮影を行った後、撮影範囲を広げた分に相当するデジタルカメラの回転角を、累積回転角に加算する。
図15は、図14に示すデジタルカメラの全周パノラマ撮影モード時の動作を説明するためのフローチャートである。図15において、図3と同じ処理には同一符号を付して説明を省略する。
図15に示すフローチャートにおいてステップS35の判定がYESのとき、相対位置変更部28によってレンズ1と撮像素子2の相対位置が変更されて、撮影範囲がデジタルカメラの移動方向に広げられ、撮像素子2により追加の撮影が実施される(ステップS151)。
ステップS151の後、切り出し範囲制御部21が、撮影範囲を広げた分に相当する回転角を足した累積回転角が必要回転角に達したかどうかを判定する(ステップS152)。
ステップS152の判定がNOのときは、ステップS36に処理を移行し、ステップS152の判定がYESのときは、ステップS39に処理を移行する。
ステップS36では、ステップS151で行われた追加の撮影で得られた画像データを、パノラマ撮影の最後の撮影で得られた画像データとして扱い、この画像データの切り出し範囲を拡大する制御を切り出し範囲制御部21が行う。
以上のように、第四の変形例のデジタルカメラによれば、累積回転角が所定値以上必要回転角未満の状態で、パノラマ撮影の最後の撮影の終了がなされた場合には、撮影範囲をデジタルカメラの移動方向に広げて追加の撮影を実施することができる。
このため、追加の撮影によって累積回転角が必要回転角に到達した場合には、切り出し範囲の拡大を行うことなく、全周パノラマ画像データを生成することができる。また、追加の撮影によって更新された累積回転角が必要回転角に達していない場合でも、この追加の撮影によって、切り出し範囲の拡大幅は小さくて済むようになる。このため、レンズ収差による歪みの影響の大きい部分を使用する割合を減らして、全周パノラマ画像データを生成することができる。
なお、第四の変形例は、第一〜第三の変形例と組み合わせることも可能である。
図5のステップS54、図11のステップS115、図13のステップS115では、画像データG1と画像データGnの切り出し範囲を均等に拡大するものとしているが、これらの処理は、全周パノラマ画像データが生成できるように画像データG1と画像データGnの両方の切り出し範囲を拡大するものであればよく、両方の切り出し範囲を均等に拡大しなくてもよい。均等に拡大した場合には、画像データG1と画像データGnのそれぞれでレンズ収差の影響のある範囲を使用する割合を減らすことができるため、画質が向上する。
以上説明してきたように、本明細書には次の事項が開示されている。
開示された撮影装置は、撮像素子を有する撮影装置であって、前記撮像素子によって連続して行われる複数回の撮影で得られる複数の画像データの各々から所定範囲のデータを切り出す画像切り出し部と、前記画像切り出し部によって切り出された複数のデータを合成してパノラマ画像データを生成するパノラマ画像生成部と、前記複数回の撮影の1回目の撮影の開始時点からの前記撮影装置の累積回転角の情報を取得する累積回転角情報取得部と、前記パノラマ画像生成部によって全周パノラマ画像データを生成するのに必要な前記1回目の撮影の開始時点から前記複数回の撮影の最後の撮影の終了時点までの前記撮影装置の回転角である必要回転角を算出する必要回転角算出部と、前記累積回転角が所定値以上前記必要回転角未満の状態で前記最後の撮影が終了された場合に、前記複数の画像データのうちの1枚目の画像データ及び最後の画像データのうち少なくとも一方の前記所定範囲を拡大する制御を行う切り出し範囲制御部とを備えるものである。
開示された撮影装置は、前記1枚目の画像データの前記画像切り出し部によって切り出される所定範囲を除く範囲と前記最後の画像データの前記画像切り出し部によって切り出される所定範囲を除く範囲との重複領域の画質を比較する画質比較部を備え、前記切り出し範囲制御部は、前記画質比較部の比較結果に基づいて、前記1枚目の画像データの前記所定範囲のみを拡大する第一の制御、前記最後の画像データの前記所定範囲のみを拡大する第二の制御、前記1枚目の画像データと前記最後の画像データの各々の前記所定範囲を拡大する第三の制御のいずれかを選択して実行するものである。
開示された撮影装置は、前記切り出し範囲制御部が、前記重複領域の画質の差が閾値より小さいときには前記第三の制御を行い、前記重複領域の画質の差が閾値以上のときには、前記1枚目の画像データと前記最後の画像データのうち相対的に画質が良い方の前記所定範囲を拡大する制御を行うものである。
開示された撮影装置は、前記1枚目の画像データと前記最後の画像データの、前記複数回の撮影が行われたときの前記撮影装置の移動方向に垂直な方向への画角ずれを検出する画角ずれ検出部と、前記1枚目の画像データと前記最後の画像データの各々が撮影されたときの前記撮影装置の鉛直方向に対する傾きを検出する傾き検出部とを備え、前記切り出し範囲制御部は、前記画角ずれと前記傾きとに基づいて、前記1枚目の画像データの前記所定範囲のみを拡大する第一の制御、前記最後の画像データの前記所定範囲のみを拡大する第二の制御、前記1枚目の画像データと前記最後の画像データの各々の前記所定範囲を拡大する第三の制御のいずれかを選択して実行するものである。
開示された撮影装置は、前記パノラマ画像合成部が、前記複数のデータを合成して得た合成画像データの前記複数回の撮影が行われたときの前記撮影装置の移動方向に直交する方向の端部を切り取ってパノラマ画像データを生成し、前記1枚目の画像データと前記最後の画像データの各々が撮影されたときの前記撮影装置の鉛直方向に対する傾きを検出する傾き検出部を備え、前記切り出し範囲制御部は、前記比較結果と前記合成画像データの切り取り位置と前記傾きに基づいて、前記第一の制御、前記第二の制御、前記第三の制御のいずれかを選択して実行するものである。
開示された撮影装置は、前記パノラマ画像合成部が、前記複数のデータを合成して得た合成画像データの前記複数回の撮影が行われたときの前記撮影装置の移動方向に直交する方向の端部を切り取ってパノラマ画像データを生成し、前記切り出し範囲制御部は、前記画角ずれと前記傾きと前記合成画像データの切り取り位置とに基づいて、前記第一の制御、前記第二の制御、前記第三の制御のいずれかを選択して実行するものである。
開示された撮影装置は、撮影光学系と、前記撮影光学系と前記撮像素子との前記撮影光学系の光軸方向に垂直な方向の相対位置を変更する相対位置変更部と、前記累積回転角が前記所定値以上前記必要回転角未満の状態で前記最後の撮影が終了された場合に、前記複数回の撮影が行なわれたときの前記撮影装置の移動方向に撮影範囲を広げるように前記相対位置を変更した上で前記撮像素子により追加の撮影を実施させる撮影制御部とを備え、前記切り出し範囲制御部は、前記追加の撮影で撮影範囲を広げた分に相当する前記撮影装置の回転角を前記累積回転角に足した値が前記必要回転角に達していない場合には、前記追加の撮影で得られた画像データを前記最後の画像データとして、前記1枚目の画像データ及び前記最後の画像データのうち少なくとも一方の前記所定範囲を拡大する制御を行うものである。
開示されたパノラマ撮影方法は、撮像素子によって連続して行われる複数回の撮影で得られる複数の画像データの各々から所定範囲のデータを切り出す画像切り出しステップと、前記画像切り出しステップで切り出された複数のデータを合成してパノラマ画像データを生成するパノラマ画像生成ステップと、前記複数回の撮影の1回目の撮影の開始時点からの前記撮像素子を搭載する撮影装置の累積回転角の情報を取得する累積回転角情報取得ステップと、前記パノラマ画像生成ステップで全周パノラマ画像データを生成するのに必要な前記1回目の撮影の開始時点から前記複数回の撮影の最後の撮影の終了時点までの前記撮影装置の回転角である必要回転角を算出する必要回転角算出ステップと、前記累積回転角が所定値以上前記必要回転角未満の状態で前記最後の撮影が終了された場合に、前記複数の画像データのうちの1枚目の画像データ及び最後の画像データのうち少なくとも一方の前記所定範囲を拡大する制御を行う切り出し範囲制御ステップとを備えるものである。
開示されたパノラマ撮影方法は、前記1枚目の画像データの前記画像切り出しステップによって切り出される所定範囲を除く範囲と前記最後の画像データの前記画像切り出しステップによって切り出される所定範囲を除く範囲との重複領域の画質を比較する画質比較ステップを備え、前記切り出し範囲制御ステップでは、前記画質比較ステップの比較結果に基づいて、前記1枚目の画像データの前記所定範囲のみを拡大する第一の制御、前記最後の画像データの前記所定範囲のみを拡大する第二の制御、前記1枚目の画像データと前記最後の画像データの各々の前記所定範囲を拡大する第三の制御のいずれかを選択して実行するものである。
開示されたパノラマ撮影方法は、前記切り出し範囲制御ステップでは、前記重複領域の画質の差が閾値より小さいときには前記第三の制御を行い、前記重複領域の画質の差が閾値以上のときには、前記1枚目の画像データと前記最後の画像データのうち相対的に画質が良い方の前記所定範囲を拡大する制御を行うものである。
開示されたパノラマ撮影方法は、前記1枚目の画像データと前記最後の画像データの、前記複数回の撮影が行われたときの前記撮影装置の移動方向に垂直な方向への画角ずれを検出する画角ずれ検出ステップと、前記1枚目の画像データと前記最後の画像データの各々が撮影されたときの前記撮影装置の鉛直方向に対する傾きを検出する傾き検出ステップとを備え、前記切り出し範囲制御ステップでは、前記画角ずれと前記傾きとに基づいて、前記1枚目の画像データの前記所定範囲のみを拡大する第一の制御、前記最後の画像データの前記所定範囲のみを拡大する第二の制御、前記1枚目の画像データと前記最後の画像データの各々の前記所定範囲を拡大する第三の制御のいずれかを選択して実行するものである。
開示されたパノラマ撮影方法は、前記パノラマ画像合成ステップでは、前記複数のデータを合成して得た合成画像データの前記複数回の撮影が行われたときの前記撮影装置の移動方向に直交する方向の端部を切り取ってパノラマ画像データを生成し、前記1枚目の画像データと前記最後の画像データの各々が撮影されたときの前記撮影装置の鉛直方向に対する傾きを検出する傾き検出ステップを備え、前記切り出し範囲制御ステップでは、前記比較結果と前記合成画像データの切り取り位置と前記傾きに基づいて、前記第一の制御、前記第二の制御、前記第三の制御のいずれかを選択して実行するものである。
開示されたパノラマ撮影方法は、前記パノラマ画像合成ステップでは、前記複数のデータを合成して得た合成画像データの前記複数回の撮影が行われたときの前記撮影装置の移動方向に直交する方向の端部を切り取ってパノラマ画像データを生成し、前記切り出し範囲制御ステップでは、前記画角ずれと前記傾きと前記合成画像データの切り取り位置とに基づいて、前記第一の制御、前記第二の制御、前記第三の制御のいずれかを選択して実行するものである。
開示されたパノラマ撮影方法は、撮影光学系と前記撮像素子との前記撮影光学系の光軸方向に垂直な方向の相対位置を変更する相対位置変更ステップと、前記累積回転角が前記所定値以上前記必要回転角未満の状態で前記最後の撮影が終了された場合に、前記複数回の撮影が行なわれたときの前記撮影装置の移動方向に撮影範囲を広げるように前記相対位置を変更した上で前記撮像素子により追加の撮影を実施させる撮影制御ステップとを備え、前記切り出し範囲制御ステップでは、前記追加の撮影で撮影範囲を広げた分に相当する前記撮影装置の回転角を前記累積回転角に足した値が前記必要回転角に達していない場合には、前記追加の撮影で得られた画像データを前記最後の画像データとして、前記1枚目の画像データ及び前記最後の画像データのうち少なくとも一方の前記所定範囲を拡大する制御を行うものである。