(57)【特許請求の範囲】
【請求項１】
複数の画像を合成することによってパノラマ画像を生成する画像処理装置であって、
前記複数の画像の共通領域に基づいて、前記画像の第１の移動量の情報を取得する第１の取得手段と、
前記第１の移動量と、前記複数の画像を撮像した撮像装置の位置情報に基づいて取得された前記画像の第２の移動量と、の差分情報と前記第２の移動量の情報に基づいて、前記複数の画像を位置合わせする位置合わせ手段と、
を有し、
前記位置合わせ手段は、
前記第１の取得手段が前記第１の移動量の情報を取得できる場合は、前記第１の移動量の情報に基づいて前記複数の画像を位置合わせし、
前記第１の取得手段が前記第１の移動量の情報を取得できない場合には、前記差分情報と前記第２の移動量の情報に基づいて、前記複数の画像を位置合わせすることを特徴する画像処理装置。
【請求項２】
前記第１の取得手段は、前記画像の特徴点が２枚の画像間でどのくらい移動したかを探索することによって前記第１の移動量の情報を取得し、探索範囲は前記撮像装置の前記位置情報に基づいて決定されることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
請求項１又は２に記載の画像処理装置を有することを特徴とする撮像装置。
【請求項４】
前記差分情報を取得する第２の取得手段を有することを特徴とする請求項３に記載の撮像装置。
【請求項５】
画像を逐次表示するライブビューを行うことができ、
前記第２の取得手段は、前記ライブビューの状態において、前記差分情報を取得することを特徴とする請求項４記載の撮像装置。
【請求項６】
前記第２の取得手段は、前記差分情報を、前記パノラマ画像を生成する際に、複数回取得し、複数の差分情報の中から、前記位置合わせ手段に使用される差分情報を選択することを特徴とする請求項４又は５に記載の撮像装置。
【請求項７】
前記第２の取得手段は、前記複数の差分情報の夫々を取得したときの前記撮像装置の状態を表す情報を、各差分情報に対応づけて記憶させ、前記撮像装置の状態を表す情報に基づいて前記位置合わせ手段に使用される差分情報を選択することを特徴とする請求項６に記載の撮像装置。
【請求項８】
前記第２の取得手段は、前記撮像装置の速度の情報に基づいて前記差分情報を選択することを特徴とする請求項７に記載の撮像装置。
【請求項９】
前記第２の取得手段は、前記撮像装置の光学特性の情報に基づいて前記差分情報を選択することを特徴とする請求項７に記載の撮像装置。
【請求項１０】
前記光学特性は、被写体までの距離、前記被写体の光学像を形成する撮像光学系におけるフォーカスレンズの位置、前記撮像光学系の焦点距離のうち少なくとも１つであることを特徴とする請求項９記載の撮像装置。
【請求項１１】
前記第２の取得手段が前記差分情報を取得していない画像を記憶する記憶手段を有し、
前記第２の取得手段が前記差分情報を取得できた場合、前記記憶手段に記憶された前記画像に対する前記差分情報を取得することを特徴とする請求項４乃至１０のうちいずれか１項に記載の撮像装置。
【請求項１２】
前記パノラマ画像の生成に冗長であるかどうかを判定し、冗長であると判定された画像を前記記憶手段に記憶しない制御手段を有することを特徴とする請求項１１に記載の撮像装置。
【請求項１３】
複数の画像を合成することによってパノラマ画像を生成する画像処理方法であって、
前記複数の画像の共通領域に基づいて、前記画像の第１の移動量の情報を取得するステップと、
前記第１の移動量と、前記複数の画像を撮像した撮像装置の位置情報に基づいて取得された前記画像の第２の移動量と、の差分情報と前記第２の移動量の情報に基づいて、前記複数の画像を位置合わせするステップと、
を有し、
前記位置合わせするステップは、
前記第１の移動量の情報を取得できる場合は、前記第１の移動量の情報に基づいて前記複数の画像を位置合わせし、
前記第１の移動量の情報を取得できない場合には、前記差分情報と前記第２の移動量の情報に基づいて、前記複数の画像を位置合わせすることを特徴する画像処理方法。
【請求項１４】
コンピュータに請求項１３に記載の画像処理方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、撮像装置、画像処理方法およびプログラムに関する。
【背景技術】
【０００２】
特許文献１は、撮影方向を順次変化させながら撮影範囲の一部を撮像し、撮像画像の一部の領域が重複するように順次重ね合わせることによりパノラマ画像を生成する方法を提案している。特許文献２は、ジャイロなどの位置情報取得手段を設け、その情報を共通領域の探索にフィードバックすることで、高精度に位置合わせを行う方法を提案している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３２８４９７号公報
【特許文献２】特表２０１４−５１９７３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、位置情報取得手段によって取得した情報から算出した画像の移動量と、実際の撮像画像から検出した画像の移動量とは必ずしも一致しない。例えば、ジャイロは温度によってオフセット値が異なる。オフセット値とは、ジャイロが静置されていても出力される値であり、オフセット値が変化すると誤検出の要因となる。また、パノラマ撮影では、ノーダルポイントを中心にカメラを回転（スイング）させながら撮影するのが理想だが、実際には、カメラには回転に加えてシフトの動きが加わり、誤差の要因となる。ジャイロ情報から移動量を算出する場合にはレンズの画角がパラメータの１つである。レンズにワイドコンバージョンレンズのような画角が変わるフィルタを取り付けたり、水中撮影したりすると、正確な画角が取得できなくなりジャイロ情報から移動量が算出できなくなる。このように種々の要因によりジャイロ情報からの位置合わせには誤差が発生し易い。
【０００５】
本発明は、高精度にパノラマ画像を生成することが可能な画像処理装置、撮像装置、画像処理方法およびプログラムを提供することを例示的な目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置は、複数の画像を合成することによってパノラマ画像を生成する画像処理装置であって、前記複数の画像の共通領域に基づいて、前記画像の第１の移動量の情報を取得する第１の取得手段と、前記第１の移動量と、前記複数の画像を撮像した撮像装置の位置情報に基づいて算出された前記画像の第２の移動量と、の差分情報と前記第２の移動量の情報に基づいて、前記複数の画像を位置合わせする位置合わせ手段と、を有し、前記位置合わせ手段は、前記第１の取得手段が前記第１の移動量の情報を取得できる場合は、前記第１の移動量の情報に基づいて前記複数の画像を位置合わせし、前記第１の取得手段が前記第１の移動量の情報を取得できない場合には、前記差分情報と前記第２の移動量の情報に基づいて、前記複数の画像を位置合わせすることを特徴する。
【発明の効果】
【０００７】
本発明によれば、高精度にパノラマ画像を生成することが可能な画像処理装置、撮像装置、画像処理方法およびプログラムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の撮像装置のブロック図である。（実施例１、２、３）
【図２】パノラマ撮影とパノラマ画像の生成を説明するための図である。
【図３】画像から移動量を算出した結果を示す図である。
【図４】パノラマ撮影を行う際の概念図である。
【図５】パノラマ撮影の被写体例を示す図である。
【図６】通常の撮影動作を説明するフローチャートである。
【図７】パノラマ撮影（画像処理方法）におけるデータフローダイアグラムである。（実施例１、２、３）
【図８】本発明のパノラマ撮影（画像処理方法）のフローチャートである。（実施例１、２、３）
【発明を実施するための形態】
【０００９】
図２（ａ）は、パノラマ撮影を行う際の移動を示す図である。パノラマ撮影は、撮像装置１００を、ユーザＵが手動で（または不図示の自動雲台等を自動で）移動させながら、連続撮影（連写）を行なうことで実施する。
【００１０】
図２（ｂ）は、各画像を合成する際の概念図である。撮影された複数の画像が被写体の一部が重複して含まれるように撮影を行なう。（後述する移動量算出回路１１６ｃは）各画像の共通領域の特徴点を抽出し、その特徴点がどのくらい動いたかを表す移動ベクトルを検出する。移動ベクトルから、例えば、アフィン変換係数を取得し、特徴点が一致するように２枚の画像を重ね合わせることで、共通領域以外の部分が拡張された画像を取得し、これを複数回繰り返すことで１枚での撮影よりも広範囲のパノラマ画像を生成する。撮像装置、専用の画像処理装置、画像処理方法（プログラム）がインストールされたコンピュータが、複数の画像を合成することによってパノラマ画像を生成することができる。
【００１１】
撮影角度を変えて撮影された画像を位置合わせする場合、接合部での画像のずれを減ずるために、架空の円筒に撮影された画像を投影する円筒変換を行なうことが好ましい。
【００１２】
移動ベクトルの検出は、画像の特徴点を抽出し、その特徴点が２枚の画像間でどのくらい移動したかを探索（計算）することで行う。特徴点の抽出には、既知の方法を適用することができる。例えば、円筒変換を行った２枚の画像の輝度情報のみを抽出し、１乃至数ピクセルずらして元の画像から減算してその絶対値を算出する方法や、輝度情報のみを抽出した画像にハイパスフィルタをかけた画像を元の輝度情報画像から減算する方法等でエッジを抽出する。複数枚のエッジ画像をずらした状態で減算し、差分が少なくなる位置を計算することによって移動量を算出することができる。
【００１３】
複数の特徴点の抽出が必要となるため、画像を複数のブロックに分割する。ブロック分割は画像のピクセル数やアスペクト比にもよるが、一般的に、（４×３＝）１２乃至９６×６４ブロックが好ましい。ブロック数が少ないと撮像装置のあおりによる台形や光軸方向の回転などの補正が正確にできないが、ブロック数が大きすぎると１ブロックのサイズが小さくなり、特徴点が近くなるため誤差を含むようになる。画素数や特徴点の見つけ易さ、被写体の画角などによってブロック数を選択する。
【００１４】
位置合わせ方法としては、回転や平行移動が可能なユークリッド変換、それらが可能なアフィン変換、さらに台形補正が可能な射影変換などがあげられるが、平行移動のできない線形変換は使用できない。
【００１５】
Ｘ軸、Ｙ軸への移動や回転の場合はユークリッド変換で可能であるが、実際にカメラで撮影する場合の手ブレは前後方向やパン・チルト方向の手振れなどもあり、一般的には拡大、スキューなども補正可能なアフィン変換が用いられる。アフィン変換によって、基準となる特徴点の座標ｘ，ｙが座標ｘ’、ｙ’に移動する場合、以下の式で表わされる。
【００１６】
【数１】
0006659130.tif 000002
【００１７】
この３×３行列をアフィン係数と呼ぶ。アフィン変換では、最低３か所の特徴点のずれが検出できればアフィン係数を算出可能である。但し、特徴点が近い距離にしか見つからない場合や、直線状になる場合はその特徴点よりも遠い個所の変換が正確でなくなることから、互いに遠くて直線状にない特徴点を選択することが好ましい。一方、複数の特徴点が検出された場合は、互いに近い特徴点を省いて残りを最小二乗法で正規化を行う。
【００１８】
このように位置合わせを行なった２枚の画像を合成するが、境界が目立たないように合成比率を変えながら合成することが好ましい。
【００１９】
一方、特徴点が抽出できない場合、あるいは誤検出してしまう場合もある。例えば、上述したエッジを抽出する場合は、雲などエッジが少ない被写体や、夜景の暗部などがあげられる。誤検出する例としては縞模様や高層ビルなど人工的な建物など似たようなパターンの繰り返しのシーンなどがあげられる。また、水面や電車など撮影のたびに形状、位置が変わるようなシーンでも誤検出が起こり易い。
【００２０】
このような場合は、撮像装置あるいは撮像装置に着脱可能なレンズ装置に内蔵されたジャイロ等の位置検出手段（姿勢検出手段）の情報を用いる。例えば、撮像装置に取り付けられた撮像光学系の焦点距離がｆ[ｍｍ]、前回の撮影と今回の撮影の間にヨー方向にｒ[°]回転され、撮像素子の画素ピッチがｐ[μｍ]だとする。このとき、以下の数式２により、ｄ[ピクセル]移動されたかが近似可能である。説明の簡略化のため、レンズの歪曲などの影響を加味していないが、歪曲具合やその他の誤差を考慮することが好ましい。
ｄ[Ｐｉｘ]＝ｔａｎ（ｒ[°]÷１８０×π）×ｆ[ｍｍ]×１０００÷ｐ[μｍ]    （２）
図３は、ある画像の各ブロックの移動量を計算した例を示すグラフである。グラフの横軸は、ヨー方向の移動量［ｐｉｘ］、縦軸はピッチ方向の移動量［ｐｉｘ］である。上述したように、移動量を、画像を複数分割したブロック単位で検出する。図３は、ヨー方向に８００［ｐｉｘ］移動したと算出されたブロック群と、ヨー方向は動かずピッチ方向に−４０〜−６０［ｐｉｘ］移動したと算出されたブロック群を示している。画像からの移動量算出では、どちらのブロック群が正しい移動量なのかが判断できない。
【００２１】
仮にジャイロの出力から数式２の計算に基づいて、移動量を計算するとヨー方向に８００［ｐｉｘ］ずれたことがわかれば、ピッチ方向のずれの群は誤検出だと分かり、誤検出を防ぐことができる。また、ジャイロ情報を使用することで特徴点の移動量の探索範囲を狭くすることも可能であり、処理の高速化を図ることができる。ジャイロ情報を使用しない場合は、例えば、ヨー方向に±１０００［ｐｉｘ］の探索を行なわなければならないが、ジャイロ情報で約＋８００［ｐｉｘ］移動したことが分かっていれば、＋６００〜＋１０００［ｐｉｘ］程度の間を探索すれば足りる。この値はレンズの焦点距離やスイング速度にも依存し、限定されない。
【００２２】
特徴点の抽出ができない場合は、ジャイロの出力から数式２の計算に基づいて、移動量を計算し、それをそのまま使用して位置合わせを行なう。ジャイロを静置していた場合に出力される信号であるオフセットは、個体や温度などによって変化する。通常は常温で静置しておいた時のオフセット量を撮像装置内の不揮発メモリに保存しておき、使用するときに出力信号からオフセットを減算した値を使用する。
【００２３】
しかし、高温下もしくは低温下ではオフセットが常温とは異なるために正確にオフセット分を除去できない。また、パノラマ撮影では一度の撮影で何十枚も撮影することもあり、撮像装置の温度が上昇しやすい。このような場合、オフセットが除去しきれずジャイロ情報から取得した移動量が正確に算出できないことがある。更に、ズームレンズを使用している場合はズームリングの遊びなどによって焦点距離を正確に把握できない場合もある。また、フォーカス位置によって画角が変わるような光学系などでもジャイロ情報から取得した移動量と、実際の画像から検出できる移動量とが異なることがある。
【００２４】
また、レンズに焦点距離が変わるようなフィルタやオプションレンズもある。例えば、本来のレンズの画角よりも広角あるいは望遠撮影を可能とするコンバージョンレンズやエクステンダーを使用した場合も同様にジャイロ情報からの移動量と画像から検出した移動量が異なる。水中撮影のように外部の屈折率が空気と異なる場合も焦点距離が変わるため同様である。
【００２５】
このように、ジャイロのオフセットの変化だけでなく様々な要因でジャイロ情報から算出した移動量と画像から検出した移動量とは異なる場合がある。そのような状況で画像から移動量が算出できずに、ジャイロ情報から算出した移動量のみを用いて位置合わせを行なって合成すると、実際は１枚目と２枚目でずれて合成されてしまい、パノラマ画像としての品質が低下する。
【００２６】
本実施形態は、ジャイロ情報から算出した移動量（撮像装置の位置情報に基づいて取得された前記画像の第２の移動量）を補正する。まず、ユーザがパノラマ撮影モードに設定して撮影を開始する。１枚目の撮影を行ない、撮像素子からＡＤ変換を行なって画像処理回路へと読み込む。画像処理回路では現像を行なってＹＵＶなど一般的な画像としてメモリに格納する。この時、レンズの歪曲や周辺の光量が低下を補正や、上述した円筒変換を行なうことが好ましい。２枚目の撮影も同様である。それぞれ２枚の画像から上述した通り移動量を算出してアフィン係数へと変換する。一方、撮影のタイミングでジャイロ信号を読み取り、１枚目と２枚目の間に撮像装置がどのくらい移動したのかを計算する。レンズの画角、撮像素子のピッチ幅などから数式２を用いて移動量を算出する。この２つの移動量の差分から補正量を計算する。
【００２７】
連続撮影の速度は、撮像装置のメカ設計、画像処理回路の処理速度などによって異なるが、例えば、コマ速が５コマ／秒の場合は１枚目と２枚目の時間的差分は０．２秒となる。この間隔が一定であれば、補正量は単純に画像から算出した移動量とジャイロ情報から算出した移動量の差分を用いればよい。例えば、画像から算出した移動量が４００Ｐｉｘで、ジャイロ情報等から算出した移動量が４０５Ｐｉｘであれば、０．２秒の間に５Ｐｉｘ分の誤差が乗っていることになる。なお、撮影の間隔が一定でない場合は撮影間隔時間に応じて補正量を調整する必要がある。
【００２８】
３枚目を撮影した場合に画像から移動量が算出できた場合はその移動量を用いて位置合わせを行ない、もし画像から移動量が算出できなかった場合はジャイロ情報から移動量を算出し、それに先ほどの補正量を加えた量で位置合わせを行なう。これを繰り返して行なう。
【００２９】
しかし、必ずしも撮影開始の１枚目と２枚目で画像からの移動量が算出できるとは限らない。そこで、そのような場合は算出可能な被写体となるまで１枚目、２枚目、…、ｍ枚目と撮影した画像をメモリ（記憶手段）に一時的に記憶しておく。算出できる被写体となった場合は、上述の方法で補正量を計算し、それを１枚目、２枚目、…と過去に遡って適用し、適宜位置合わせ、合成を行う。この時、画像からの位置合わせは連続した画像でなくてもよい。すなわちｍ枚目とｍ＋１目とは限らず、ｍ枚目とｎ枚目から補正量を計算してもよい。この場合は撮影間隔時間によって補正量を調整する必要がある。ただし、ｍ、ｎは正数であり、ｎ＞ｍとする。
【００３０】
ジャイロからの算出される移動量は補正をしないときに比べると精度は落ちるが概算は可能である。従って、補正していない移動量からｍ枚目の画像とｎ枚目の画像とで大凡の移動量は算出できる。そこで、保存領域のメモリが少なくても良いようにｍ枚目とｍ＋２枚目の共通部分が多い場合には、ｍ＋１枚目は保存する必要はない。また、必ずしも画像の全面を保存する必要もなく、画像の最大探索範囲内にトリミングして保存することで省メモリが可能である。即ち、制御手段は、パノラマ画像の生成に冗長であるかどうかを判定し、冗長であると判定された画像をメモリに記憶しなくてもよい。
【００３１】
一方、パノラマ撮影を始めた後に補正量を算出するのではなく、撮影前に補正量を算出することも可能である。実際にパノラマ撮影を行なう場合、撮り始めのシーンはメインとなる被写体とは限らないこともある。そのため焦点が合っていない、被写体が低コントラストなどの理由で撮影開始時には画像からの移動量算出ができないこともある。
【００３２】
従って、撮影準備中、即ち、メインとなる被写体に焦点を合わせる動作後に行なうことが好ましい。焦点を合わせる場合はオートフォーカスであってもマニュアルフォーカスであっても、コントラストのある被写体で行なうのが一般的である。従って、合焦した際に行なうことも好ましい様態の一つである。
【００３３】
補正量の計算は撮影開始時１度だけ行なってもよいが、撮影中に温度が上がるなど、補正量の調整が必要になった時に適宜複数回行なうことも好ましい。複数回行なうタイミングとしては、ジャイロ付近の温度が変化した場合、スイング速度角速度が変化した場合、被写体までの距離が変化した場合、レンズの焦点距離やフォーカス位置が変わった場合、光軸に対してロール方向の移動があった場合などがある。但し、それらに限定されるものではない。
【００３４】
ジャイロ付近の温度が変化した場合は、ジャイロのオフセット信号が変化するため補正量の更新を行なうことが好ましい。
【００３５】
手持ちでスイングする場合は、ユーザの癖にもよるが、図４に示すように、自分の正面に来た場合に回転成分からシフト成分に振り方が変わる場合がある。つまり、ユーザは、一定速度でスイングしているつもりでも角速度が減少する。このような場合、シフト成分による視差が画像からの移動量とジャイロから算出した移動量との誤差の要因として加わるために補正量の更新が必要となる。
【００３６】
被写体までの距離が変化した場合も同様で視差量が変わるためである。即ち、被写体までの距離が略無限遠の場合はほとんど平行光となるため、シフト成分が加わっても視差は発生しない。しかし、被写体が近い場合にシフト動作が加わると視差が発生してしまう。そのため、画像から算出した移動量と、ジャイロから算出した移動量との差が生じてしまうため、補正量の更新が必要となる。
【００３７】
レンズの焦点距離が変わった場合に補正量の更新が必要となるのはこれまでの説明で自明であるし、レンズの光学系によってはフォーカス位置が変わると画角が変わるレンズがあるため、同様に更新が必要となる。
【００３８】
複数回補正量を算出した場合は、実際に補正量を適用するタイミングも問題となる。直近の補正量を使用するのも好ましい様態の一つであるが、実際に補正するときの条件が、補正量の撮り直しをした条件と近いときの補正量を用いることも好ましい。
【００３９】
例えば、ユーザが撮像装置をスイングする場合、開始時はまだ角速度が遅く、徐々に加速していく。ある一定の速度に落ち着いて撮り終わる場合は減速する。また、上述した通り、ユーザの正面付近に撮像装置が来た場合にシフト成分が増し、角速度は一時的に減速する場合もある。一方、撮り終わり時は振り切るように操作すると減速しない場合もあり得る。
【００４０】
撮り終わり時や撮像装置が正面に来た時など減速した場合は直近に補正量を撮り直した値を用いるのではなく、撮り始めの加速時にほぼ同じ速度で撮り直した補正値を使うことも好ましい様態である。
【００４１】
また、被写体までの距離が１回の撮影内で変わるような、例えば、図５に示すように、奥行きがあるシーンなどでは撮り始めは被写体が近く、ユーザ正面では被写体までの距離は遠く、撮り終わりはまた被写体が近くなる。この場合も補正するタイミングの被写体までの距離は、それと近い距離のタイミングで撮り直した補正量を使用する。
【００４２】
角速度、被写体までの距離について説明したが、それ以外の場合も当業者によって適宜適用可能である。このように画像から算出した移動量から、画像から算出した移動量を補正することによって、パノラマ合成の際の精度を向上させることが可能となる。
【実施例１】
【００４３】
図１は、実施例１の画像処理装置（画像処理手段）を内蔵したデジタルカメラのブロック図である。
【００４４】
図１において、１０１は、被写体の光学像を形成する撮像光学系（撮像光学系）である。１０２は、ＡＦ（自動焦点調節、オートフォーカス）駆動回路である。ＡＦ駆動回路１０２は、例えば、ＤＣモータやステッピングモータによって構成され、マイクロコンピュータ１２３の制御によって撮像光学系１０１のフォーカスレンズ位置を変化させることによりピントを合わせる。
【００４５】
１０３は、光量を調整する絞りである。１０４は、絞りを駆動する絞り駆動回路である。駆動されるべき量は、マイクロコンピュータ１２３によって算出され、光学的な絞り値を変化させる。
【００４６】
１０５は、撮像光学系１０１から入射した光束をファインダ側と撮像素子側とに切り替えるための主ミラーである。主ミラー１０５は、常時はファインダ部へと光束を導くよう反射させるように配されているが、撮影が行われる場合や、画像を逐次表示するライブビュー表示の場合には、撮像素子１１２へと光束を導くように上方に跳ね上がり光束中から待避する。また、主ミラー１０５はその中央部が光の一部を透過できるようにハーフミラーとなっており、光束の一部を、焦点検出を行うためのセンサに入射するように透過させる。
【００４７】
１０６は、主ミラー１０５から透過してきた光束を反射させ焦点検出を行うためのセンサ不図示や、露光量算出回路１０９内に配置されているセンサに導くためのサブミラーである。１０７は、ミラー駆動回路で、マイクロコンピュータ１２３の制御によって主ミラー１０５を駆動する。１０８は、ファインダを構成するペンタプリズムである。ファインダは他にピント板、アイピースレンズ不図示などによって構成させる。１０９は、露光量算出回路である。ミラー１０５の中央部を透過し、サブミラー１０６で反射された光束は、露光量算出回路１０９の内部に配置された光電変換を行うためのセンサに至る。フォーカス演算に用いるデフォーカス量は、センサの出力を演算することによって求められる。
【００４８】
マイクロコンピュータ１２３は、演算結果を評価してＡＦ駆動回路１０２に指示し、フォーカスレンズを駆動させる。１１０は、フォーカルプレーンシャッタである。１１１は、シャッタ駆動回路であり、フォーカルプレーンシャッタ１１０を駆動する。シャッタの開口時間はマイクロコンピュータ１２３によって、制御される。
【００４９】
１１２は、撮像素子である。撮像素子１１２には、ＣＣＤやＣＭＯＳセンサなどが用いられ、撮像光学系１０１によって結像された被写体像を電気信号に変換する。１１５は、Ａ／Ｄ変換器である。Ａ／Ｄ変換器１１５は、撮像素子１１２のアナログ出力信号をデジタル信号に変換する。
【００５０】
１１６は、映像信号処理回路（画像処理手段）であり、ゲートアレイなどのロジックデバイスにより実現される。映像信号処理回路１１６は、専用の画像処理装置や画像処理方法がインストールされたパーソナルコンピュータ（ＰＣ）として構成されてもよい。
【００５１】
映像信号処理回路１１６は、輝度調整回路１１６ａ、ガンマ補正回路１１６ｂ、移動量算出回路１１６ｃ、位置合わせ回路１１６ｄ、幾何変換回路１１６ｅ、変倍回路１１６ｆ、トリミング回路１１６ｇ、合成回路１１６ｊを有する。また、映像信号処理回路１１６は、現像回路１１６ｋ、圧縮・伸長回路１１６ｌを更に有する。
【００５２】
輝度調整回路１１６ａは、デジタルゲインによって明るさを調整する。ガンマ補正回路１１６ｂは、ガンマ特性によって輝度を調整する。移動量算出回路（第１の取得手段）１１６ｃは、複数の画像の共通領域に基づいて、画像の第１の移動量の情報を取得（算出）する。
【００５３】
位置合わせ回路（位置合わせ手段）１１６ｄは、移動量に応じて複数の画像の位置合わせを行う。位置合わせ回路１１６ｄは、特に、第１の移動量と、複数の画像を撮像した撮像装置の位置情報に基づいて取得された画像の第２の移動量と、の差分情報と第２の移動量の情報に基づいて、複数の画像を位置合わせする。位置合わせ回路１１６ｄは、第１の移動量の情報を取得できる場合は、第１の移動量の情報に基づいて複数の画像を位置合わせするが、第１の移動量の情報を取得できない場合には、差分情報と第２の移動量の情報に基づいて、複数の画像を位置合わせする。
【００５４】
幾何変換回路１１６ｅは、円筒変換や光学撮像光学系１０１の歪曲を補正、アフィン変換を行なう。トリミング回路１１６ｅは、画像の一部を切り出す。変倍回路１１６ｆは、画像のサイズを変倍する。合成回路１１６ｊは、複数の画像を合成する。現像回路１１６ｋは画像を現像する。圧縮・伸長回路１１６ｌは、Ｊｐｅｇなどの一般的な画像形式に変換する。
【００５５】
１１７は、表示駆動回路である。１１８は、ＴＦＴや有機ＥＬなどを用いた表示部材である。１１９は、メモリコントローラである。１２０は、メモリである。１２１は、コンピュータ等と接続可能な外部インターフェイスである。１２２は、バッファメモリである。
【００５６】
マイクロコンピュータ１２３は、撮像装置の位置情報（例えば、姿勢、速度、角速度、加速度などを含む）に基づいて画像の第２の移動量の情報を取得する。また、マイクロコンピュータ１２３は、差分情報を取得する第２の取得手段としても機能する。
【００５７】
映像信号処理回路１１６は、デジタル化された画像データに、フィルタ処理、色変換処理、ガンマ処理を行うと共に、ＪＰＥＧなどの圧縮処理を行い、メモリコントローラ１１９に出力する。その際、処理途中の画像を一時的にバッファメモリ１２２に置くことも可能である。映像信号処理回路１１６は、撮像素子１１２からの映像信号や、メモリコントローラ１１９から逆に入力される画像データを、表示駆動回路１１７を通して表示部材１１８に出力することも可能である。これらの機能切り替えは、マイクロコンピュータ１２３の指示により行われる。
【００５８】
映像信号処理回路１１６は、必要に応じて撮像素子１１２の信号の露出情報やホワイトバランスなどの情報をマイクロコンピュータ１２３に出力することが可能である。それらの情報を基にマイクロコンピュータ１２３はホワイトバランスやゲイン調整の指示を行う。
【００５９】
連続撮影動作の場合、一旦、未処理画像のままバッファメモリ１２２に撮影データを格納し、メモリコントローラ１１９を通して未処理の画像データを読み出し、映像信号処理回路１１６にて画像処理や圧縮処理を行い、連続撮影を行う。連像撮影枚数は、バッファメモリ１２２やパノラマ撮影の場合はその画像サイズの大きさに左右される。
【００６０】
メモリコントローラ１１９では、映像信号処理回路１１６から入力された未処理のデジタル画像データをバッファメモリ１２２に格納し、処理済みのデジタル画像データをメモリ１２０に格納する。また、逆に、バッファメモリ１２２やメモリ１２０から画像データを映像信号処理回路部１１６に出力する。メモリ１２０は取り外し可能であってもよい。メモリコントローラ１１９は、コンピュータ等と接続可能な外部インターフェイス１２１を介してメモリ１２０に記憶されている画像を出力可能である。１２３は、マイクロコンピュータである。
【００６１】
１２４は、操作部材である。操作部材１２４は、マイクロコンピュータ１２３にその状態を伝え、マイクロコンピュータ１２３はその操作部材の変化に応じて各部をコントロールする。
【００６２】
１２５は、スイッチ１以後ＳＷ１である。１２６は、スイッチ２以後ＳＷ２である。スイッチＳＷ１１２５とスイッチＳＷ２１２６は、レリーズボタンの操作でオンオフするスイッチであり、それぞれ操作部材１２４の入力スイッチのうちの１つである。スイッチＳＷ１１２５のみオンの状態はレリーズボタン半押し状態であり、この状態でオートフォーカスの動作を行うと共に、測光動作を行う。スイッチＳＷ１１２５、ＳＷ２１２６が共にオンの状態はレリーズボタンの全押し状態であり、画像を記録するためのレリーズボタンオン状態である。この状態で撮影が行われる。またスイッチＳＷ１１２５、ＳＷ２１２６がＯＮし続けている間は、連続撮影動作が行われる。
【００６３】
操作部材１２４には、他に、ＩＳＯ設定ボタン、メニューボタン、セットボタン、フラッシュ設定ボタン、単写／連写／セルフタイマー切り替えボタン、メニューや再生画像移動のための移動＋プラスボタンが含まれている。また、操作部材１２４には、移動−マイナスボタン、露出補正ボタン、表示画像拡大ボタン、表示画像縮小ボタン、再生スイッチ、絞り１０３を設定された絞りに絞り込ませるための絞りボタン、撮影した画像を消去するための消去ボタンも含まれている。更に、撮影や再生に関する情報表示ボタンなども含まれており、スイッチの状態が検出されている。また、プラスボタン及びマイナスボタンの各機能は、回転ダイアルスイッチを備えることによって、より軽快に数値や機能を選択することが可能となる。操作部材１２４は、自動焦点調節（ＡＦ）を指示する指示手段としても機能する。
【００６４】
１２７は、液晶駆動回路である。１２８は、外部液晶表示部材である。１２９は、ファインダ内液晶表示部材である。液晶駆動回路１２７は、マイクロコンピュータ１２３の表示内容命令に従って、文字、画像を用いて動作状態やメッセージ等を表示する外部液晶表示部材１２８やファインダ内液晶表示部材１２９を駆動する。また、ファインダ内液晶表示部材１２９には、不図示のＬＥＤなどのバックライトが配置されており、そのＬＥＤも液晶駆動回路１２７で駆動される。マイクロコンピュータ１２３は、撮影前に設定されているＩＳＯ感度、画像サイズ、画質に応じた、画像サイズの予測値データをもとに、メモリコントローラ１１９を通して、メモリの容量を確認した上で撮影可能残数を演算することができる。必要に応じて外部液晶表示部材１２８、ファインダ内液晶表示部材１２９にも表示することができる。
【００６５】
１３０は、不揮発性メモリＥＥＰＲＯＭで、カメラに電源が入れられていない状態でも、データを保存することができる。１３１は、電源部である。電源部１３１は、各ＩＣや駆動系に必要な電源を供給する。１３２は内部時計である。１２０に記録する画像ファイルに撮影時刻などを保存したり、後述するように画像そのものに撮影時刻を重畳したりできる。
【００６６】
１３３は、ジャイロ（位置検出手段）である。２軸もしくは３軸で、撮像装置の回転の角速度を検出する。１３４は、温度計である。本目的のためであればジャイロ１３３付近に配置することが好ましいが、一般的には撮像装置やメモリ１２０の保護のために撮像素子１１２、メモリ１２０などの近傍に設置しているセンサを流用しても良い。
【００６７】
図６は、マイクロコンピュータ１２３が実行する通常の撮影動作を説明するフローチャートであり、「Ｓ」はステップ（工程）を表している。図６に示すフローチャートはコンピュータに各ステップの機能を実行させるためのプログラムとして具現化が可能である。かかるプログラムは、撮像装置１００の記憶手段（例えば、不揮発性メモリ１３０や非一時的なコンピュータ可読記憶媒体）に記憶可能である。
【００６８】
予め露光量算出回路１０９によって露光量を算出し、絞り量、蓄積時間、ＩＳＯ感度を決定しておく。ＳＷ２１２６がユーザによって押下されると撮影動作Ｓ７０１が実施される。マイクロコンピュータ１２３は、予め決められた絞り量を絞り駆動回路１０４に通知し、絞り１０３を目的の絞り量にする。撮像素子１１２、ＡＤ変換器１１５などに電源を入れ、撮影準備を行う。準備が完了するとミラー駆動回路１０７を駆動して被写体像を撮像素子１１２に結像させるようにする。シャッタ駆動回路１１１は、シャッタ１１０のうち不図示の先幕を開けて被写体像が撮像素子１１２に結像するようにする。続いて、予め決められた蓄積時間後にシャッタ１１０のうち不図示の後幕を閉じて、撮像素子に蓄積時間の間だけ光が入るようにする。この一連の動作を行って露光を行う（Ｓ７０２）。
【００６９】
続いて、ＡＤ変換部１１５を介して、映像信号処理回路１１６に画像信号を読み出しバッファメモリ１２２に格納する（Ｓ７０３）。読み出した画像信号を現像回路１１６ｋにて画像データに変換する現像を行う（Ｓ７０４）。この時、画像が適正になるようホワイトバランス処理や、ガンマ補正回路１１６ｂで暗部にゲインをかけたりと画像処理を行ってもよい。
【００７０】
得られた画像データは、１１６ｌでＪＰＥＧなどの汎用的なデータフォーマットへと変換され（Ｓ７０５）、ＳＤカードやコンパクトフラッシュ（登録商標）などのメモリ１２０に保存され（Ｓ７０６）、処理が終了される。なお、画像処理や現像処理（Ｓ７０４）を行わず、読み出した画像信号そのままを可逆圧縮し（Ｓ７０５）、記憶媒体に保存（Ｓ７０６）してもよい。これらの切り替えはユーザが操作部材１２４で切り替えることが可能である。
【００７１】
ユーザが操作部材１２４によってパノラマ撮影モードを設定すると、撮像素子１１２、ＡＤ変換器１１５へと電源供給を行ない、初期設定を行なう。一方、主ミラー１０５を上げ、シャッタ駆動回路１１１はシャッタ１１０を開いて、被写体像が撮像光学系１０１を通して撮像素子１１２へと結像されるようにする。
【００７２】
撮像素子１１２からの信号をＡＤ変換器１１５でデジタル信号へと変換し、映像信号処理回路１１６の現像回路１１６ｋで現像し、輝度調整回路１１６ａ、ガンマ補正回路１１６ｂで適した画像へと変換する。次に、変倍回路１１６ｆで液晶モニタなどの表示部材１１８に適した画像サイズへと変倍して表示を行なう。これを１秒間に２４乃至は６０回繰り返して行なうことで、いわゆるライブビューを行なう。
【００７３】
ユーザはその表示を確認しながら、画角を合わせる。パノラマ撮影の場合は、広範囲の被写体の中で主被写体に撮像装置を向け、ＳＷ１１２５を押す。ＳＷ１１２５が押下されると、露光量を算出する。ライブビューでないときはサブミラーに反射された光を露光量算出回路１０９で受光し、最適な露光量を算出する。ライブビュー中は映像信号処理回路１１６に含まれる不図示の露光量算出回路で最適な露光量を決定し、マイクロコンピュータ１２３を介して絞り駆動回路１０４が絞り１０３を駆動したり、撮像素子１１２の感度や蓄積時間を制御したりする。一方、ＡＦ駆動回路１０２は、撮像光学系１０１を駆動し、焦点を合わせる。撮影の準備を終えると、不図示のブザー等でユーザに知らせる。
【００７４】
次に、撮像装置を撮り始めたい向きに向け、ユーザがＳＷ２１２６を押下すると実際にパノラマ撮影を行なう。図７は、パノラマ撮影におけるデータフローダイアグラム、図８は、マイクロコンピュータ１２３が実行するパノラマ撮影のフローチャートである。
【００７５】
パノラマ撮影が開始されると、まず、マイクロコンピュータ１２３は、撮像光学系１０１の情報（レンズ情報）を取得する（Ｓ８０１）。レンズ情報には、後述する歪曲やレンズ周辺部の光量の低下を補正するためのデータや、後述するジャイロ信号からの位置合わせ量の算出に使用する焦点距離、被写体までの距離情報などが含まれている。
【００７６】
次に、マイクロコンピュータ１２３は、ジャイロ１３３からジャイロ情報を取得する（Ｓ８０２）。ジャイロ情報は、撮像装置１００に対してヨー方向、ピッチ方向の２軸を取得するが、光軸に対しての回転であるロール方向の３軸を取得することも好ましい。ジャイロ１３３からの出力そのものは角速度であるが、パノラマ撮影では前回の撮影からどのくらいスイング回転されたかが必要である。このため、１枚目の撮影の場合はこの値をメモリ１２０に記録しておき、次の撮影まで角速度を積分し、２枚目以降の撮影時に前回からの回転角度を計算する。
【００７７】
次に、マイクロコンピュータ１２３は、撮影処理を行う（Ｓ８０３）。撮像素子１１２、ＡＤ変換器１１５は、ライブビュー用の駆動に設定されているため、マイクロコンピュータ１２３は、これを静止画撮影用に切り替える。また、マイクロコンピュータ１２３は、絞り１０３を設定露光量になるように調整し、シャッタ１１０を開閉して、撮像素子１１２に被写体像を結像させる。
【００７８】
マイクロコンピュータ１２３は、撮像素子１１２に結像した被写体像を、ＡＤ変換器１１５を介してデジタル信号へ変換し、バッファメモリ１２２に格納する。この画像データは、画像処理回路１１６に含まれる不図示の回路によって、例えば撮像素子１１２シェーディングなどの補正を行なう。このように最小限の加工しか行なっていない画像データをＲＡＷ画像７０５と呼ぶ。次に、マイクロコンピュータ１２３は、ＲＡＷ画像７０５を現像回路１１６ｋによって現像し、ＹＵＶ画像７０６とする。
【００７９】
マイクロコンピュータ１２３は、撮影画像を表示部材１１８の液晶モニタに表示させるため、変倍回路１１６ｆを介して液晶モニタの画素数に応じて縮小し、ＶＲＡＭ７０８に格納する。また、マイクロコンピュータ１２３は、現像後の画像７０６を、幾何変換回路１１６ｅを介して円筒変換する。この時、マイクロコンピュータ１２３は、撮像光学系１０１の歪曲収差を補正することが好ましい。
【００８０】
マイクロコンピュータ１２３は、撮影枚数によって処理を変更する（Ｓ８０４）。
【００８１】
パノラマ撮影開始後、１枚目の撮影である場合は、処理はＳ８０１へ戻るが（Ｓ８０４）、簡略化のためにＳ８０２に戻ってもよい。通常、パノラマ撮影時には撮像光学系１０１は動かないようにしておくことが好ましいが、ユーザが手動で、または、撮像光学系１０１の自重で、撮像光学系１０１が動いてしまう場合がある。このため、マイクロコンピュータ１２３は、再度レンズ情報を取得することが好ましい。
【００８２】
パノラマ撮影開始後、２枚目の撮影である場合は、処理はＳ８０５へ進む。２枚目撮影時に、マイクロコンピュータ１２３は、１枚目撮影時からどのくらい回転したかを計算する。その角度と、Ｓ８０２で取得したレンズ情報の焦点距離、撮像素子１１２の１画素のサイズを用いて、数式２より移動量を算出する（Ｓ８０５）。ジャイロ１３３がヨー方向とピッチ方向の２軸の場合は、移動量はＸ軸水平方向、Ｙ軸垂直方向のシフトのみとなる。ロール方向の３軸ジャイロセンサーを使用している場合は回転成分の移動量も算出可能である。移動量からアフィン係数に算出する方法に関しては、次のＳ８０７、Ｓ８０８で説明する。
【００８３】
次に、移動量算出回路１１６ｃを用いて２枚目の画像７０７と１枚目の画像７０３から移動量を算出する（Ｓ８０６）。移動量検出には既知の方法を使用することができるが、マイクロコンピュータ１２３は、移動量検出回路１１６ｃを介して、画像内で複数の特徴点を見つけ、標本化することでアフィン係数８０９を算出する。特徴点の抽出に関しては前述した通りである。
【００８４】
このように、マイクロコンピュータ１２３は、エッジを検出し、特徴点を抽出し、その移動量を算出する。ここで、特徴点１が座標ｘ１，ｙ１から座標ｕ１，ｖ１に、特徴点２が座標ｘ２，ｙ２からｕ２，ｖ２に、特徴点３が座標ｘ３，ｙ３からｕ３，ｖ３に移動したとする。数式１から次式が成立する。
【００８５】
【数２】
0006659130.tif 000003
【００８６】
【数３】
0006659130.tif 000004
【００８７】
この方程式を解くことでアフィン係数を算出することができる。３点以上の特徴点が検出できた場合は、近い点を除外して最小二乗法を用いて正規化する。３点見つからない場合や、抽出した３点が直線状になっている場合、３点のうち２点が近い場合は移動量の算出が失敗したと判断する。なお、この時点で移動量の算出ができなかった場合は実施例３にて説明を行なう。
【００８８】
マイクロコンピュータ１２３は、このようにして画像から算出した移動量と、Ｓ８０５で計算したジャイロ１３３の情報に基づく移動量との差分を計算して補正量を算出する（Ｓ８０７）。ヨー、ピッチの２軸のジャイロ１３３の信号から数式２で求められる移動量は平行移動のみである。即ち、数式１のアフィン係数のうち平行移動に関するｃ、ｆのみである。従って、マイクロコンピュータ１２３は、画像から算出した移動量と、ジャイロ１３３からの情報に基づく移動量の２つをアフィン係数に変換し、アフィン係数を減算し、移動成分だけ残すために係数をａ＝１、ｂ＝０、ｄ＝０、ｅ＝１と設定する。３軸ジャイロを用いて回転成分が加わる場合は、マイクロコンピュータ１２３は、アフィン係数のａ、ｂ、ｄ、ｅも使用するが、行列の計算を行うことで当業者によって実施可能である。
【００８９】
画像からの移動量とジャイロ１３３からの移動量に差が出る要因は前述した通りである。ジャイロ１３３からの移動量は、温度等に起因する誤差を含む。一方、画像からの移動量には、撮像光学系１０１の焦点距離の誤差、撮像装置１００の回転中心がノーダルポイントからずれていることによる視差、水中撮影やコンバージョンレンズの使用による画角のずれ等による誤差が含まれている。画像を位置合わせして合成するので、画像情報から得られる移動量を使用するのが効果的である。しかし、画像から移動量を算出できない場合は、ジャイロ情報からの移動量を用いて位置合わせするため、このように補正量を算出する。
【００９０】
次に、マイクロコンピュータ１２３は、Ｓ８０６で算出した画像からの移動量アフィン係数に基づいて位置合わせ回路１１６ｄを介して、位置合わせを行い（Ｓ８０８）、位置合わせ画像７１１を生成する。
【００９１】
次に、マイクロコンピュータ１２３は、これまでの合成結果、即ち、１枚目の画像７１０と２枚目の画像位置合わせ後の画像７１１を、合成回路１１６ｊを介して、合成し（Ｓ８０９）、合成画像７１２を生成する。この時、水面など動体がある場合は合成処理の品位が落ちるため、画像の境界部分の合成比率を変更することで品位向上することが好ましい。ＳＷ２１２６が押下されていたら、処理はＳ８０１へと戻るが（Ｓ８１０）、簡略化のためにＳ８０２に戻ってもよい。
【００９２】
パノラマ撮影開始後、３枚目の撮影である場合は、処理はＳ８１２へ進む。マイクロコンピュータ１２３は、Ｓ８０５と同様に、前回の画像、即ち、２枚目の幾何変換結果７０３と今回の画像、即ち、３枚目の幾何変換結果７０７とから移動量を算出する（Ｓ８１２）。この時、メモリを節約するために、これまでの合成結果７１０と、今回の幾何変換結果７０７とから移動量を算出してもよい。移動量算出の方法についてはＳ８０５で説明した通りである。
【００９３】
次に、マイクロコンピュータ１２３は、画像からの移動量が算出できるかどうかを判定する（Ｓ８１３）。
【００９４】
マイクロコンピュータ１２３は、画像からの移動量が算出できると判断した場合は、補正量追加計算の必要性を判定する（Ｓ８１４）。実施例１では、マイクロコンピュータ１２３は、補正量追加計算の必要性がないと判定し、算出した移動量アフィン係数を用いて位置合わせを行い（Ｓ８１５）、合成を行う（Ｓ８０９）。
【００９５】
一方、マイクロコンピュータ１２３は、画像からの移動量が算出できないと判断した場合は、ジャイロ１３３からの情報に基づいて、アフィン係数を算出する（Ｓ８１６）。この時、Ｓ８０７で計算した補正量を加味する。例えば、ジャイロ１３３がヨー、ピッチの２軸の場合は、数式１のアフィン係数のうち、ｃ、ｆの項を加算すればよい。ロール方向の補正を行う場合はａ、ｂ、ｄ、ｅの項も必要になる。このようにして求めた移動量アフィン係数に基づいて位置合わせを行い（Ｓ８１７）、合成を行う（Ｓ８０９）。
【００９６】
ユーザがＳＷ２１２６を解放するか、合成結果７１２が所定のサイズよりも大きくなった場合、その他ユーザの操作などによって終了されるまで一連の処理を繰り返す。終了が指示された場合、マイクロコンピュータ１２３は、圧縮・伸長回路１１６ｌでＪｐｅｇなどの汎用フォーマットに圧縮し（Ｓ８１８）、メモリ１２０に保存する（Ｓ８１９）。圧縮前に合成画像の暗部を見やすくするためにγ補正や、画像全体の色調を統一するための補正を行うことが好ましい。このようにして得られる画像はサイズが大きいため、予めユーザが指示したサイズに、変倍回路１１６ｆを介して、変倍を行ってもよい。
【００９７】
実施例１では、マイクロコンピュータ１２３は、Ｓ８０６で撮影開始時にジャイロ情報からの移動量と、画像から算出した移動量との差分から、今後ジャイロ情報からの移動量を使用するときの補正量を計算している。また、マイクロコンピュータ１２３は、画像からの移動量が算出できずにジャイロ情報からの移動量を使用して位置合わせを行う（Ｓ８０９）場合に、Ｓ８０６で算出した補正量でジャイロ情報からの移動量を補正して（Ｓ８１６）位置合わせを行う（Ｓ８１７）。これにより、高精度にパノラマ画像を生成することが可能となる。
【００９８】
ここで示した例では補正量の計算は最初の一度だけであるが、最初に必ず画像からの移動量算出が可能であるとは限らないので、ＡＦ動作が終わった直後にライブビュー状態で補正量を算出してもよい。ＡＦは主被写体に対して行なうため、エッジも多く含まれ画像からの位置合わせ量算出もし易いことが多い。
【００９９】
ライブビュー表示中は、１秒間に２４乃至６０回の撮像、現像、表示を繰り返す。１回の処理時間が短いため、通常は撮像素子１１２のすべての画素情報を呼び出す時間はないため、ある程度画素を間引いて読みだす。例えば、水平方向３画素に１画素しか読み出さない場合は静止画撮影と移動量が３倍になるため、読み出しの間引き率に応じて算出した移動量を調整する必要がある。
【０１００】
また、ＡＦ中は撮像装置を動かさないため、画像から算出される移動量は０に近い。従って、ジャイロ１３３のオフセットを補正する場合にはこの方法は好適であるが、撮像光学系１０１にコンバージョンレンズがつけられた場合、焦点距離の誤差、水中撮影時の補正はこの方法は向かない。そのため、撮影開始１枚目、２枚目で補正する上述の例と組み合わせて補助的に使うことが好ましい。
【実施例２】
【０１０１】
実施例１では、撮影前のライブビュー時、撮影開始の最初に補正量を計算した。連写速度が一定の場合はよいが、連写速度が一定でない場合、即ち、ショット間の時間的間隔が一定で得ない場合は、時間的要因を加味する必要がある。例えば、ジャイロ１３３の温度特性によるオフセットの変化を補正したい場合は、オフセットはコマ間の時間に比例して誤差が生じる。従って、補正量を計算したときのコマ間と撮影時のコマ間がｘ倍の時間があった場合、補正量のアフィン係数のｃ、ｆの項もｘ倍にして補正する必要がある。
【０１０２】
一方、補正要因がコンバージョンレンズの有無によるものの場合、コマ間の時間間隔には影響されないため、補正量を撮影間隔によって調整する必要はない。また、補正要因が撮像装置のスイングの状態による場合は直近の補正量を使うのが好ましい。即ち、図４に示すように、スイング半径が一定でないような場合は角速度が変化するため、複数回にわたって補正量を算出し、同じような角速度の時の補正量を使用することが好ましい。また、ノーダルポイントを回転中心にしていない場合は視差が発生するが、被写体までの距離が異なると視差量が異なるため、被写体までの距離が同じくらいのところで算出した補正量を使用することが好ましい。
【０１０３】
実施例２では、補正量の算出を複数回行なう。実施例２のマイクロコンピュータ１２３の動作も図８と同様であるが、実施例１で説明を割愛したＳ８１４について説明する。実施例１では、常にＳ８１５へ処理が移行していたが、実施例２では、マイクロコンピュータ１２３は、補正量追加計算の必要性を判定する（Ｓ８１４）。
【０１０４】
上述した通り、被写体までの距離が変わる場合、スイング速度が変化した場合、ジャイロ１３３の温度が変わった場合には、マイクロコンピュータ１２３は、補正量追加計算の必要があると判定し、Ｓ８０５へ処理を移す。また、画像からの移動量を算出するときに、特徴点が多く抽出でき、かつそれら複数の特徴点の移動量のばらつきが低い場合は信頼性が高いと予想されるため、補正量の更新処理を行うことが好ましい。
【０１０５】
即ち、マイクロコンピュータ１２３は、Ｓ８０７で算出される補正量を、その時の主被写体までの距離、フォーカスレンズの位置、焦点距離などの光学特性、角速度、温度、移動量の信頼性などと対応づけてテーブル形式で保存する。なお保存内容はこれらに限定されるものではない。あるいは、マイクロコンピュータ１２３は、常に新しい補正量を計算してもよく、補正する場合は直近の補正量を使用してもよい。この場合、マイクロコンピュータ１２３は、Ｓ８１４で常に「あり」と判断してＳ８０５へと処理を移行してもよい。
【０１０６】
マイクロコンピュータ１２３は、このように複数の補正量を記録している場合、適切な補正量を選択する（Ｓ８１６）。例えば、ジャイロ１３３の角速度の変化によって補正量を算出する場合、Ｓ８１６でもＳ８０２で取得した角速度と近い角速度の時に算出した補正量を選択する。被写体までの距離や、温度なども同様である。画像からの移動量が検出できた時に常に補正量を算出する場合は、Ｓ８１６では直近に算出された補正量を使えばよい。
【０１０７】
実施例２では、補正量を適宜複数回取得し、実際にジャイロ情報からの移動量を補正する際に、複数ある補正量から適当な補正量を選択して補正することで、補正精度を向上させ、高精度にパノラマ画像を生成することができる。
【実施例３】
【０１０８】
実施例１では、撮影開始時の１枚目、２枚目において、補正量を算出するが（Ｓ８０７）、この時、画像から位置合わせ検出ができなかった場合はエラー（パノラマ撮影失敗）としてもよいが、これはユーザにとって最良の方法とは限らない。そこで、実施例３では、マイクロコンピュータ１２３は、最初の補正量が算出できるまで撮影した画像をバッファメモリ１２２に保管し、補正量が算出されたら合成を行う。
【０１０９】
パノラマ撮影は合成結果も大きな画像となり、バッファメモリ１２２も大量に使用するが、撮り始めの際はまだ合成画像７１２の領域はほとんど使用していない。このため、このメモリの下位アドレスを一時バッファとして使用することで、冗長にメモリを準備せずともバッファリングが可能となる。
【０１１０】
また、幾何変換後の画像７０３の全面をバッファリングする必要はない。ジャイロ信号から補正していない位置合わせ量でおおよその使用領域が算出できる。ジャイロ１３３のオフセット成分の誤差を補正する場合、ジャイロ情報からの出力を補正しなくても、ジャイロ１３３からの信号から算出した移動量と画像から算出した移動量とが１０％ずれることは起こりにくい。そこで、マイクロコンピュータ１２３は、画像７０３の必要領域を、ジャイロ１３３からの移動量に基づいて算出し、それに５乃至２０％の余分領域をとった領域をトリミング回路１１６ｇによってトリミングしてバッファリングする。なお、ここで用いた値はジャイロ１３３の精度に依存し、この数値に限定されない。また、焦点距離が変わる撮像光学系１０１の装着や水中撮影など、大きく補正が必要な場合はバッファリング領域も広くなる。
【０１１１】
一般に撮影開始前には撮像装置１００は停止しており、撮影開始と共にスイングされるため、撮影開始からしばらくはスイング速度が遅く、各画像間における共通領域は広い。従って、撮影枚数全てをバッファリングする必要はなく、撮影した画像を間引いてバッファリングしてもよい。間引きは、間引き後の画像の共通領域がどのくらい残るかによるため、撮像光学系１０１の画角や角速度によって異なる。通常は画像からの位置合わせを行う場合は元の画像の半分程度の画像が必要であるが、この場合は画像からの位置合わせ量が算出できないことが確定しているため、合成に必要な共通領域だけでよく、検出のために必要な領域は不要である。例えば、撮像装置１００を左から右もしくはその逆にスイングしている場合は、元の画像の中心から水平方向に対して２０％乃至４０％程度の縦長の画像をバッファリングすればよい。垂直に関しては全領域バッファリングすることが好ましい。このサイズは、前述した通り、撮像光学系１０１やスイング速度等によって変わるため、これに限定されるものではない。
【０１１２】
例えば、水平画角６０°のレンズを用いて３６０°のパノラマ画像を生成する場合、合成画像７１２は、元の画像の６倍のサイズが必要となる。バッファリングに必要な領域が２０％だとすると、１８枚分バッファリングが可能である。通常の使用であれば、１８枚の撮影中に画像からの移動量算出も可能であると考えられるが、それでも算出できない場合は、エラーとするか、ジャイロ１３３からの出力を補正せずに合成する。
【０１１３】
実施例３では、必要によって撮影画像をバッファリングすることで、撮影開始時に補正量が算出できない場合でも、高精度にパノラマ画像を生成することができる。
【０１１４】
以上、本発明について説明したが、本発明はその要旨の範囲内で種々の変形及び変更が可能である。本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路例えば、ＡＳＩＣによっても実現可能である。
【産業上の利用可能性】
【０１１５】
本発明は、パノラマ画像を生成する用途に適用することができる。
【符号の説明】
【０１１６】
１１６ｃ…移動量算出回路（第１の取得手段）、１２３…マイクロコンピュータ（第２の取得手段、制御手段）
【図１】
0006659130.tif 000005
【図２】
0006659130.tif 000006
【図３】
0006659130.tif 000007
【図４】
0006659130.tif 000008
【図５】
0006659130.tif 000009
【図６】
0006659130.tif 000010
【図７】
0006659130.tif 000011
【図８】
0006659130.tif 000012