以下、図面に基づき、本発明の一実施形態に係る撮影装置100について説明する。
図1は、本実施形態に係る撮影装置100の機能的構成を示すブロック図である。図1を用いて、本実施形態に係る撮影装置100の構成を説明する。撮影装置100は、デジタルカメラなどにより構成することができる。
撮影装置100は、制御部10と、RAM11と、ROM12と、光学レンズ装置13と、光学系制御部14と、光学系駆動部15と、絞り16と、絞り制御部17と、絞り駆動部18と、撮像素子19と、ドライバ20と、手ぶれ補正系21と、前処理部22と、画像入力コントローラ23と、画像メモリ24と、画像処理部25と、AF/AE評価部26と、特徴抽出部27と、画像合成部28と、表示制御部29と、表示部30と、記録媒体31と、操作部32と、を備える。
制御部10は、撮影装置100全体の動作を制御する。制御部10は、CPU(Central Processing Unit)などから構成される。
RAM11は、制御部10が各処理を実行する際にワーキングエリアとして機能する。RAM11は、DRAM(Dynamic Random Access Memory)などから構成される。ROM12は、撮影装置100が撮像素子シフト式手ぶれ補正制御用のプログラムや、図4のフローチャートに示される各処理を実行するのに必要なプログラムなどを記憶する。ROM12は、フラッシュメモリなどから構成される。制御部10は、RAM11をワーキングエリアとして、ROM12に記憶されているプログラムとの協働により各処理を実行する。
光学レンズ装置13は、フォーカスレンズやズームレンズなどで構成される。フォーカスレンズは、被写体像を撮像素子19の受光面に結像させるためレンズである。
光学系制御部14は、制御部10による制御に従って光学系駆動部15を制御することにより、光学系駆動部15に、光学レンズ装置13のフォーカスレンズを光軸方向に進退させる。これにより、フォーカスレンズの位置が変化して焦点が調節される。光学系駆動部15は、ステッピングモータなどで構成される。光学系制御部14は、光学系駆動部15を制御する制御回路などで構成される。
絞り羽根16は、撮像素子19に入射する被写体像の光量を調節する絞りとして機能する機構である。絞り羽根16は、絞りを例えばF3.1〜F8の範囲で段階的に切り換える。
絞り制御部17は、制御部10による制御に従って絞り駆動部18を制御することにより、絞り駆動部18に、絞り羽根16を駆動させる。
撮像素子19は、光学レンズ装置13から入射されて受光面に結像した被写体像を光電変換(撮影)することにより画像信号を蓄積する素子である。撮像素子19の受光面には、光電変換素子であるフォトダイオードが行列状に配置されている。撮像素子19は、露光時間を調節する電子シャッタ機能を有している。撮影時には、この電子シャッタ機能により露光時間であるシャッタ速度が調節される。なお、撮像素子19の露光時間は、電子シャッタ機能に代えて、機械式シャッタにより制御してもよい。撮像素子19は、CMOS(Complementary Metal−Oxide Semiconductor)型のイメージセンサなどから構成される。なお、撮像素子19は、CCD(Charge Coupled Device)型のイメージセンサにより構成してもよい。
ドライバ20は、制御部10による制御に従って、撮像素子19に蓄積された画像信号をアナログ信号として一定時間毎に順次出力させる。また、撮像素子19の電子シャッタによるシャッタ速度は、制御部10がドライバ20に対して設定するパラメータを調節することよって、例えば1/4秒〜1/512秒の範囲で変化させることができる。
手ぶれ補正系21は、制御部10による撮像素子シフト式手ぶれ補正制御などに従って、撮影装置100の光軸に直行する面内において撮像素子19を移動させる。これにより、手ぶれが発生しても撮像素子19上に結像される被写体像の位置がほぼ変化しないように、撮像素子19の位置が補正される。なお、手ぶれ補正の手法は、別途設けた手ぶれ補正レンズを光軸に対して直行する面内で移動させる光学系シフト式手ぶれ補正制御でもよい。
図2は、手ぶれ補正系21の詳細を示す図である。図2に示されるように、手ぶれ補正系21は、手ぶれセンサ211と、手ぶれ補正制御回路212と、画素ずらし制御回路213と、加算回路214と、アクチュエータ215と、を含む。
手ぶれセンサ211は、ユーザが撮影装置100を構える姿勢などが変化したことにより手ぶれが発生した場合などにおいて、ピッチ方向及びヨー方向における撮像装置100の角速度を検出する。手ぶれセンサ211は、検出した角速度を電気信号に変換して、この電気信号を検出信号Dとして出力する。手ぶれセンサ211は、角速度センサなどから構成される。
手ぶれ補正制御回路212は、手ぶれセンサ211から供給された検出信号Dが示す角速度を時間的に積分することにより、撮像装置100の振れ角である角変移量を算出する。そして、手ぶれ補正制御回路212は、制御部10による撮像素子シフト式手ぶれ補正制御に従って、算出した撮像素子19の角変位量とフォーカスレンズの焦点距離とに基づいて、手ぶれによって生じた撮像素子19の位置の変化量を画素単位で算出する。手ぶれ補正制御回路212は、算出した位置の変化量を打ち消すための手ぶれ補正情報を算出して、算出した手ぶれ補正情報を示す補正信号Rを出力する。
画素ずらし制御回路213は、後述する連写合成モードにおける各撮影の開始時点においてのみ、光軸に直行する面内において撮像素子19を所定距離だけ移動させる指示を示すオフセット信号Oを出力する。このオフセット信号Oは、検出信号Dが示す撮影装置100の角速度の大きさに左右されない定常的な信号である。
加算回路214は、手ぶれ補正制御回路212から供給された補正信号Rと、画素ずらし制御回路213から供給されたオフセット信号Oとを加算して、加算した信号を制御信号Cとして出力する。つまり、この制御信号Cが示す補正情報は、補正信号Rが示す手ぶれ補正情報に対し、オフセット信号Oが示す画素ずらし情報を反映させた補正情報となる。
アクチュエータ215は、加算回路214から供給される制御信号Cに従って撮像素子19を駆動することにより、撮影装置100の光軸に直行する面内において撮像素子19を移動させる。
図1に戻り、前処理部22は、撮像素子19から供給されたアナログ信号に対し、相関二重サンプリング処理、利得制御処理、A/D(Analog/Digital)変換処理などの各信号前処理を施してディジタル信号を生成して、生成したディジタル信号を出力する。前処理部22は、A/D変換器などにより構成される。
画像入力コントローラ23は、前処理部22から出力されたディジタル信号を画像メモリ24に記憶させる。
画像メモリ24は、前処理部22により生成されたディジタル信号や、画像処理部25により生成される画像データを一時的に記憶する。画像メモリ24は、DRAM(Dynamic Random Access Memory)などから構成される。
画像処理部25は、画像メモリ24に記憶されたディジタル信号を読み出して、読み出したディジタル信号に、ホワイトバランス制御処理、γ補正処理、YC変換処理などの各種画像処理を施して、輝度信号と色差信号とが重畳した画像データを生成する。この画像データにより被写体像が表現される。画像処理部25は、シャッタボタンが全押し操作されたときは、比較的高画質で大容量の撮影画像用の画像データを生成する。一方、画像処理部25は、ライブビュー画像を表示するときは、比較的低画質で小容量のライブビュー画像用の画像データを生成する。画像処理部25は、生成した画像データを画像メモリ24に再度記憶させる。また、画像処理部25は、所定の圧縮形式により、画像データに対し圧縮処理を施す。画像処理部25は、DSP(Digital Signal Processor)などから構成される。
本実施形態においては、撮像装置100内で同期したパルスの高周波成分が配線パターン間の容量結合等により撮像素子19から出力される画像信号に混入する。これによって、撮影動作により生成された画像データにより表現される各画像の同じ位置に、縦線上の固定パターンノイズが発生する。
AF/AE評価部26は、画像メモリ24に順次記憶されたライブビュー画像用の各画像データから高周波数成分であるAF評価値を抽出して、抽出したAF評価値を制御部10に順次供給する。また、AF/AE評価部26は、画像メモリ24に記憶された画像データの輝度の積分値を演算し、演算した輝度の積分値を測光データとして制御部10に供給する。
特徴抽出部27は、画像メモリ24に記憶された画像データから、予め指定された被写体の種別に対応した特徴部分を検出する。指定される被写体の種別は可変である。指定される被写体の種別としては、例えば、人物の全体像や顔などがある。特徴抽出部27により検出される被写体の種別は、ユーザが操作部32を介して設定するか、撮像装置100の撮影モード(風景撮影モード、人物撮影モードなど)に応じて設定される。
そして、特徴抽出部27は、画像メモリ24に記憶された画像データにより表現される画像上の所定サンプリング点で、指定された被写体の種別に対応する特徴部分の抽出を行う。具体的には、特徴抽出部27は、画像メモリ24に記憶された画像データとモデルデータとのマッチング処理によりこれらの類似度を算出し、算出した類似度が所定の閾値以上のサンプリング点における画像成分を特徴部分として抽出する。ROM12には、予め複数の被写体の種別の特徴部分の情報がモデルデータとして記憶されている。例えば、人物の顔に関するモデルデータとしては、顔画像を表現する画像データや、顔の目、口などの局所的な特徴データがある。
特徴抽出部27が行うマッチング処理としては、例えば、特開平9−130714号公報に記載の手法を利用することができる。この手法は、被写体距離に応じたサイズのテンプレート画像(モデルデータ)を画像内で走査させながら、各場所で正規化相関係数などを計算することにより画像の局所部分とモデルデータとの類似度分布を算出する。なお、マッチング処理はこの手法に限られるものでなく、公知の方法を適宜利用できる。
画像合成部28は、被写体抽出部27により抽出された特徴部分を基準として、すなわち各特徴部分の位置を一致させた状態で、複数の画像データにより表現される各画像を合成することにより、合成画像を表現する合成画像データを生成する。
表示制御部29は、制御部10による制御に従って、画像メモリ24に記憶されている画像データを読み出し、読み出した画像データをアナログ信号に変換して出力する。表示制御部29は、VRAM(Video Random Access Memory)やD/A(Digital/Analog)変換器などから構成される。
表示部30は、表示制御部29から供給されたアナログ信号により表現される画像などを表示する。表示部30は、撮影装置100の筐体の背面に設けられた液晶ディスプレイなどから構成される。
記録媒体31は、画像処理部25により生成された画像データを記録する。記録媒体31は、撮影装置100に着脱可能な半導体メモリカードなどから構成される。
操作部32は、ユーザから各種ボタンの操作を受け付ける。操作部32は、電源ボタン、シャッタボタン、ズームボタン、カーソルキー、決定ボタン、メニューボタンなどを備える。操作部32は、ユーザから受け付けた各種のキー操作を示す信号を制御部10に供給する。シャッタボタンは、撮影準備(AF処理など)を指示するための半押し操作と、撮影を指示するための全押し操作とをユーザから受け付けることが可能な構成である。制御部10は、操作部32からこれらの信号を受信すると、受信した信号に基づいた処理を実行する。
図3は、撮影装置100の本実施形態に係る連写合成モードにおける動作を示すフローチャートである。図3を用いて、本実施形態に係る連写合成モードにおいて撮影装置100が実行する動作を説明する。
本実施形態においては、ユーザが撮影装置100を自身の手によって構えている状態で静止している主要被写体を撮影するものとする。また、本実施形態においては、撮影中に手ぶれが常時発生しており、撮影装置100の姿勢が常時変化しているものとする。
ユーザによるメニューボタン等の操作により連写合成モードが設定されると、制御部10は、ROM12に記憶されている連写合成モード用のプログラムを読み出して、このプログラムとの協働により図3のフローチャートにより示される処理を開始する。
まずステップS1において、制御部10は、ライブビュー表示を開始する。具体的には、制御部10は、画像処理部25に、ライブビュー画像用の画像データを生成させる。そして、制御部10は、生成されたライブビュー画像用の画像データを表示制御部29に供給することにより、表示制御部29に、ライブビュー画像を表示部30に表示させる。以降、制御部10は、画像処理部25が順次生成するライブビュー画像用の画像データを表示制御部29に順次供給することにより、ライブビュー画像を表示部30に表示させる。
次にステップS2において、制御部10は、ユーザによりシャッタボタンが半押し操作されているか否かを判断する。具体的には、制御部10は、操作部32からのシャッタボタンの半押し操作に応じた信号を監視することにより、ユーザによりシャッタボタンが半押し操作されているか否かを判断する。制御部10は、シャッタボタンが半押し操作されていないと判断した場合(ステップS2:NO)、操作部32からのシャッタボタン半押し操作に応じた信号を検知するまで待機状態になる。一方、制御部10は、シャッタボタンが半押し操作されていると判断した場合(ステップS2:YES)、ステップS3に処理を進める。
次にステップS3において、制御部10は、AF処理を行う。具体的には、制御部10は、光学系制御部14を介して光学系駆動部15を制御することにより、光学系駆動部15にフォーカスレンズを光軸方向に進退させて、AF/AE評価部26から供給されるAF評価値が最も高くなるレンズ位置でフォーカスレンズを停止させる。
次にステップS4において、制御部10は、AE処理を行う。具体的には、制御部10は、ROM12から読み出したプログラム線図と、AF/AE評価部26から供給された測光データとに基づいて、シャッタ速度、絞り値、ISO感度からなる露出条件を決定する。そして、制御部10は、決定された露出条件を示す制御信号を各部に供給することにより、適正な露出が得られるように各部を制御する。
次にステップS5において、制御部10は、ユーザによりシャッタボタンが全押し操作されているか否かを判断する。具体的には、制御部10は、操作部32からのシャッタボタンの全押し操作に応じた信号を監視することにより、ユーザによりシャッタボタンが全押し操作されているか否かを判断する。制御部10は、シャッタボタンが全押し操作されていないと判断した場合(ステップS5:NO)、ステップS2に処理を戻す。一方、制御部10は、シャッタボタンが全押し操作されていると判断した場合(ステップS5:YES)、ステップS6に処理を進める。撮影装置100は、ユーザによる1回のシャッタボタンの全押し操作に応答して、連続して3回の撮影を実行する。
次にステップS6において、制御部10は、1回目の撮影を実行する。具体的に、制御部10は、ドライバ20に、ステップS5において決定されたシャッタ速度で撮像素子19を露光させることにより撮像素子19に画像信号を蓄積させる。露光時間が経過した後、制御部10は、ドライバ20に、撮像素子19に蓄積された画像信号をアナログ信号として出力させる。前処理部22は、このアナログ信号からディジタル信号を生成して出力する。画像入力コントローラ23は、このディジタル信号を画像メモリ24に記憶させる。画像処理部25は、画像メモリ24に記憶されたディジタル信号から画像データを生成し、生成された画像データを画像メモリ24に再度記憶させる。
また、制御部10は、1回目の撮影中に手ぶれ補正制御を行う。
図4は、撮影装置100の光軸に対する主要被写体の相対的な位置関係と、撮影装置100の光軸に対する撮像素子19の相対的な位置関係とを示す図である。
図4において、横軸は、1回目の撮影開始時点からの経過時間tを示す時間軸である。原点O(経過時間t=0)は、1回目の撮影の開始時点を示す。この横軸における1目盛り分の時間Tは、1回あたりの撮影動作に要する時間である。また、縦軸は、ヨー方向における撮影装置100の光軸に対する主要被写体または撮像素子19の相対的な距離を示す。縦軸は、ヨー方向における右方向が正に、ヨー方向における左方向が負に設定されている。この横軸の単位は、1個の画素分の距離である。ここで、1個の画素分の距離とは、撮像素子19の撮影範囲が1個の画素分ずれるように、撮像素子19を実空間において移動させるために必要となる距離のことである。
図4には、ヨー方向における撮影装置100の光軸から主要被写体の中心までの距離A(t)が破線によって示されている。図5は、距離A(t)を模式的に示す図である。図5において、符号40は、主要被写体を示す。手ぶれの発生に伴う撮像装置100の姿勢の変化のため、ヨー方向における撮影装置100の光軸から主要被写体までの距離A(t)は時々刻々と変化している。経過時間tにおける主要被写体の位置は、ヨー方向において、撮影装置100の光軸に対してA(t)個の画素分の距離だけずれていることになる。
本実施形態においては、1回目の撮影開始時点(t=0)において、主要被写体の位置は光軸上にあるものとする。また、上述の通り、主要被写体は静止している。図4に示されるように、ヨー方向における撮影装置100の光軸から主要被写体の中心までの距離A(t)の値は常時正である。そのため、図4に示される例は、手ぶれにより撮影装置100の姿勢が変化したため、連写撮影中における撮影装置100の光軸が、撮影開始時点よりもA(t)個の画素分の距離だけ左方向にずれていることを意味している。言い換えると、連写撮影中において、常時、主要被写体が撮影装置100に対し相対的に右方向にずれていることを意味する。
図4には、ヨー方向における撮影装置100の光軸から撮像素子19の中心までの距離B(t)が実線によって示されている。図6は、距離B(t)を模式的に示す図である。手ぶれの発生に伴う撮像素子シフト式手ぶれ補正制御のために、ヨー方向における撮影装置100の光軸から撮像素子19の中心までの距B(t)は時々刻々と変化している。経過時間tにおける撮像素子19の位置は、ヨー方向において、撮影装置100の光軸に対してB(t)個の画素分の距離だけずれていることになる。1回目の撮影開始時点(t=0)において、撮影装置100内における撮像素子19の中心は、撮像素子19の中心が光軸上にある。
次に、1回目の撮影時の手ぶれ補正制御に際して、手ぶれ補正系21における処理の様子を説明する。
1回目の撮影中に、手ぶれセンサ211は、手ぶれによる撮像装置100の角速度を示す検出信号Dを一定時間毎に出力する。
手ぶれ補正制御回路212は、手ぶれセンサ211から供給される検出信号Dに基づき、手ぶれによる撮像素子19の位置の変化量を打ち消すための手ぶれ補正情報(撮像素子19を移動させる方向や移動量等)を算出する。そして、手ぶれ補正制御回路212は、算出した手ぶれ補正情報を示す補正信号Rを一定時間毎に出力する。撮像素子19上の任意の画素の位置を(n,m)とする。撮影装置100の光軸が、主要被写体40に対してA(t)個の画素分の距離だけ左方向にずれている場合、補正信号Rが示す補正情報は(A(t),0)となる。そのため、補正信号Rは、「各画素の位置(n,m)を(n+A(t),m)へと移動させる」、つまり「撮像素子19をA(t)個の画素分の距離だけ右方向に移動させる」という指示を示す。
一方、画素ずらし制御回路213は、1回目の撮影開始時点(t=0)においてのみ、画素ずらし情報(−3,0)を示すオフセット信号Oを出力する。1回目の撮影時点において出力されるこのオフセット信号Oは、「撮像素子19を、連写撮影の撮影回数と同じ画素数分の距離だけ左方向に移動させる」という指示を示している。本実施形態においては、連写撮影の撮影回数は3回である。そのため、このオフセット信号Oは、「各画素の位置(n,m)を(n−3,m)へと移動させる」、つまり「撮像素子19を3個の画素分の距離だけ左方向へと移動させる」という指示を示す。
1回目の撮影開始時点(t=0)で、加算回路214は、補正信号Rが示す手ぶれ補正情報とオフセット信号Oが示す画素ずらし情報とを反映させた信号を、制御信号Cとして出力する。そのため、1回目の撮影開始時点での制御信号Cが示す補正情報は、(A(t)−3,0)である。つまり、1回目の撮影開始時点での制御信号Cは、「撮像素子19を(A(t)−3)個の画素分の距離だけ右方向に移動する」という指示を示す。
1回目の撮影開始時点(t=0)で、アクチュエータ215は、加算回路214から供給される制御信号Cに従って、光軸に直行する面内において撮像素子19を(A(t)−3)個の画素分の距離だけ右方向に移動させる。
1回目の撮影開始時点(t=0)においては、まだ手ぶれが発生していないので、補正信号Rが示す補正情報は(0,0)となる。そのため、図4に示されるように、1回目の撮影開始時点(t=0)では、オフセット信号Oの影響によって、撮影装置100の光軸に対して、撮像素子19が3個の画素分の距離だけ左方向にずれている状態になっている。そして、上述の通り、1回目の撮影開始時点(t=0)において主要被写体の位置は光軸上にあるため、この時点では主要被写体に対し撮像素子19が3個の画素分の距離だけ左方向にずれている状態になっている。
1回目の撮影開始時点から2回目の撮影開始時点までの間(0<t<T)においては、画素ずらし制御回路213はオフセット信号Oの出力を停止する。従って、加算回路214からは、手ぶれセンサ211から供給された検出信号Dに基づいて手ぶれ補正制御回路212が出力した補正信号Rが、そのまま制御信号Cとしてアクチュエータ215に入力される。そして、この間において、制御信号Cに従ってアクチュエータ215が、手ぶれによる撮像素子19の位置の変化量を打ち消すように撮像素子19を移動させることになる。これにより、図4に示されるように、1回目の撮影開始時点から2回目の撮影開始時点までの間(0<t<T)、主要被写体に対し撮像素子19が3個の画素分の距離だけ左方向にずれている状態が維持されたまま、撮像素子19の位置が主要被写体の位置に対して追従することとなる。
図7(A)に、1回目の撮影により生成された画像データにより表現される1枚目の画像の一例である画像P1が示されている。1枚目の画像P1には、撮影された主要被写体40とともに固定パターンノイズ51が写っている。この1枚目の画像P1が、後述する画像データの合成処理における基準画像となる。
図3に戻り、ステップS7において、制御部10は、撮影回数nとして「1」を設定する。具体的には、制御部10は、撮影回数nが1であることを示す情報をRAM11に記憶させる。
次にステップS8において、制御部10は、2回目の撮影を実行する。2回目の撮影の具体的な処理内容は、1回目の撮影のものと同様である。また、制御部10は、2回目の撮影中に手ぶれ補正制御を行う。
2回目の撮影時の手ぶれ補正制御に際して、手ぶれ補正系21における処理の様子を説明する。
2回目の撮影中に、手ぶれセンサ211は、手ぶれによる撮像装置100の角速度を示す検出信号Dを一定時間毎に出力する。
手ぶれ補正制御回路212は、手ぶれセンサ211から供給される検出信号Dに基づき、手ぶれによる撮像素子19の位置の変化量を打ち消すための手ぶれ補正情報を算出する。そして、手ぶれ補正制御回路212は、算出した手ぶれ補正情報を示す補正信号Rを一定時間毎に出力する。
一方、画素ずらし制御回路213は、2回目の撮影開始時点(t=T)において、画素ずらし情報(1,0)を示すオフセット信号Oを出力する。2回目の撮影開始時点において画素ずらし制御回路213が発生するこのオフセット信号Oは、「各画素の位置(n,m)を(n+1,m)へと移動させる」、つまり「撮像素子19を1個の画素分の距離だけ右方向へと移動させる」という指示を示す。
2回目の撮影開始時点(t=T)で、加算回路214は、補正信号Rが示す手ぶれ補正情報とオフセット信号Oが示す画素ずらし情報とを反映させた信号を、制御信号Cとして出力する。そのため、2回目の撮影開始時点での制御信号Cが示す補正情報は、(A(t)+1,0)である。つまり、2回目の撮影開始時点での制御信号Cは、「撮像素子19を(A(t)+1)個の画素分の距離だけ右方向に移動させる」という指示を示す。
2回目の撮影開始時点(t=T)で、アクチュエータ215は、加算回路214から供給される制御信号Cに従って、光軸に直行する面内において撮像素子19を(A(t)+1)個の画素分の距離だけ右方向に移動させる。
図4に示されるように、このオフセット信号Oの影響によって、撮像素子19の撮影範囲は、1回目の撮影中(0≦t<T)に主要被写体の位置に対する撮像素子19の位置が3画素分の距離ずれていた状態から、2回目の撮影開始時点(t=T)で主要被写体の位置に対する撮像素子19の位置が2画素分の距離ずれる状態へと補正される。
2回目の撮影開始時点から3回目の撮影開始時点までの間(T<t<2T)においては、画素ずらし制御回路213はオフセット信号Oの出力を停止する。従って、加算回路214からは、手ぶれセンサ211から供給された検出信号Dに基づいて手ぶれ補正制御回路212が出力した補正信号Rが、そのまま制御信号Cとしてアクチュエータ215に入力される。そして、この間において、制御信号Cに従ってアクチュエータ215が、手ぶれによる撮像素子19の位置の変化量を打ち消すように撮像素子19を移動させる。これにより、図4に示されるように、2回目の撮影開始時点から3回目の撮影開始時点までの間(0<t<T)、主要被写体に対し撮像素子19が2個の画素分の距離だけ左方向にずれている状態が維持されたまま、撮像素子19の位置が主要被写体の位置に対して追従することとなる。すると、2回目の撮影中における撮像素子19の撮影範囲は、1回目の撮影中における撮像素子19の撮影範囲に比べ、1個の画素分だけ常時ずれていることになる。
図7(B)に、2回目の撮影により生成された画像データにより表現される2枚目の画像の一例である画像P2が示されている。画像P2の被写体は、画像P1の被写体と同じである。2枚目の画像P2には、撮影された主要被写体40とともに、固定パターンノイズ52が写っている。この2枚目の画像P2の撮影範囲(2回目の撮影における撮影範囲)は、1枚目の画像P1の撮影範囲(1回目の撮影における撮影範囲)とは1画素分ずれている。そのため、2枚目の画像P2内における主要被写体40の位置は、1枚目の画像P1内における主要被写体40の位置と1画素分だけずれている。
一方、固定パターンノイズ51,52は、撮像素子19内に所定の画素領域上の所定領域に発生するものである。そのため、互いに撮影範囲が異なる1枚目の画像P1と2枚目の画像P2との間において、固定パターンノイズ51,52が発生する位置は同じものとなる。そのため、1枚目の画像P1における主要被写体40と固定パターンノイズ51との間の距離と、2枚目の画像P2における主要被写体40と固定パターンノイズ52との間の距離は、1画素分だけ異なっている。
図3に戻り、ステップS9において、制御部10は、直前のステップS8の処理により新たに撮影された画像に主要被写体が写っているか否かを判断する。具体的には、制御部10は、画像メモリ24に記憶されている新たに撮影された画像と基準画像(1枚目の撮影画像)とで近似する画像部分があるか否かを判断する。制御部10は、近似する画像部分があると判断した場合、新たに撮影された画像に主要被写体が写っていると判断する。一方、制御部10は、近似する画像部分がないと判断した場合、新たに撮影された画像に主要被写体が写っていないと判断する。このステップS9における判断がYESとなるのは、例えば、手ぶれにより撮影装置100の位置が非常に大きく変化したために、手ぶれ補正による撮像素子19の移動よっても、手ぶれによる撮像素子19の撮影範囲の変化が打ち消せない場合が考えられる。
制御部10が、新たに撮影された画像と基準画像(1枚目の撮影画像)とで近似する画像部分があるかないかを判断する方法は任意であるが、例えば、以下のような手法が考えられる。なお、理解を容易にするため、各撮影画像が640×480の画素から構成されるものとして説明する。まず、制御部10は、4×4の画素から構成される200×125のブロックに画像を分割する。そして、制御部10は、新たに撮影された画像と基準画像とのそれぞれについて、各ブロックに含まれる画素の輝度の総和をブロック毎に求める。そして、制御部10は、新たに撮影された画像の輝度の総和と基準画像の輝度の総和との差分の絶対値をブロック毎に求める。ここで、制御部10は、絶対値が所定の値以下であるブロックを近似ブロックに設定する。そして、制御部10は、近似ブロックの密度が高い画像部分を検出する。例えば、制御部10は、近似ブロックが縦方向、横方向ともに4つ以上連続する近似ブロック群があるか否かを判断する。制御部10は、近似ブロック群がないと判断した場合は、近似する画像部分がないと判断する。一方、制御部10は、近似ブロック群があると判断した場合は、近似する画像部分があると判断し、当該近似ブロック群を近似する画像部分として設定する。
制御部10は、新たに撮影された画像に主要被写体が写っていると判断した場合(ステップS9;YES)、ステップS11に処理を進める。一方、制御部10は、新たに撮影された画像に主要被写体が写っていないと判断した場合(ステップS9;NO)、ステップS10に処理を進める。
ステップS10において、制御部10は、直前のステップS8の処理により生成された画像データを画像メモリ24から消去する。
ステップS11において、制御部10は、撮影回数nをインクリメントする。具体的には、制御部10は、RAM11に記憶されている撮影回数nに1を加算する処理を行う。
ステップS12において、制御部10は、撮影回数nが3以上であるか否かを判断する。具体的には、制御部10は、RAM11に記憶されている撮影回数nを確認することにより、撮影回数nが3以上であるか否かを判断する。制御部10は、撮影回数nが3より小さいと判断した場合、ステップS8に処理を戻す。一方、制御部10は、撮影回数nが3以上であると判断した場合、ステップS13に処理を進める。
撮影回数nが2である場合にステップS8に処理が戻ると、制御部10は、3回目の撮影を実行する。3回目の撮影の具体的な処理内容は、1回目の撮影のものと同様である。また、制御部10は、3回目の撮影中に手ぶれ補正制御を行う。
次に、3回目の撮影時の手ぶれ補正制御に際して、手ぶれ補正系21における処理の様子を説明する。
3回目の撮影中に、手ぶれセンサ211は、手ぶれによる撮像装置100の角速度を示す検出信号Dを一定時間毎に出力する。
手ぶれ補正制御回路212は、手ぶれセンサ211から供給される検出信号Dに基づき、手ぶれによる撮像素子19の位置の変化量を打ち消すための手ぶれ補正情報を算出する。そして、手ぶれ補正制御回路212は、算出した手ぶれ補正情報を示す補正信号Rを一定時間毎に出力する。
一方、画素ずらし制御回路213は、3回目の撮影開始時点(t=2T)において、画素ずらし情報(1,0)を示すオフセット信号Oを出力する。3回目の撮影開始時点において画素ずらし制御回路213が発生するこのオフセット信号Oは、「各画素の位置(n,m)を(n+1,m)へと移動させる」、つまり「撮像素子19を1個の画素分の距離だけ右方向へと移動させる」という指示を示す。
3回目の撮影開始時点(t=2T)で、加算回路214は、補正信号Rが示す手ぶれ補正情報とオフセット信号Oが示す画素ずらし情報とを反映させた信号を、制御信号Cとして出力する。そのため、3回目の撮影開始時点での制御信号Cが示す補正情報は、(A(t)+1,0)である。つまり、3回目の撮影開始時点での制御信号Cは、「撮像素子19を(A(t)+1)個の画素分の距離だけ右方向に移動させる」という指示を示す。
3回目の撮影開始時点(t=2T)で、アクチュエータ215は、加算回路214から供給される制御信号Cに従って、光軸に直行する面内において撮像素子19を(A(t)+1)個の画素分の距離だけ右方向に移動させる。
図4に示されるように、このオフセット信号Oの影響によって、撮影範囲は、2回目の撮影中(T≦t<2T)に主要被写体の位置に対する撮像素子19の位置が2画素分の距離ずれていた状態から、3回目の撮影開始時点(t=2T)において主要被写体の位置に対する撮像素子19の位置が1画素分の距離ずれる状態へと補正される。
3回目の撮影開始時点以降(2T<t)においては、画素ずらし制御回路213はオフセット信号Oの出力を停止する。従って、加算回路214からは、手ぶれセンサ211から供給された検出信号Dに基づいて手ぶれ補正制御回路212が出力した補正信号Rが、そのまま制御信号Cとしてアクチュエータ215に入力される。そして、この間において、制御信号Cに従ってアクチュエータ215が、手ぶれによる撮像素子19の位置の変化量を打ち消すように撮像素子19を移動させる。これにより、図4に示されるように、3回目の撮影開始時点以降(2T<t)、主要被写体に対し撮像素子19が1個の画素分の距離だけ左方向にずれている状態が維持されたまま、撮像素子19の位置が主要被写体の位置に対して追従することとなる。すると、3回目の撮影中における撮像素子19の撮影範囲は、2回目の撮影中における撮像素子19の撮影範囲に比べ、1個の画素分だけ常時ずれていることになる。
図7(C)に、3回目の撮影により生成された画像データにより表現される3枚目の画像の一例である画像P3が示されている。画像P3の被写体は、画像P1,P2の被写体と同じである。3枚目の画像P3には撮影された主要被写体40とともに、固定パターンノイズ53が写っている。この3枚目の画像P3の撮影範囲(3回目の撮影における撮影範囲)は、2枚目の画像P2の撮影範囲(2回目の撮影における撮影範囲)とは1画素分ずれている。そのため、3枚目の画像P3内における主要被写体40の位置は、2枚目の画像P2内における主要被写体40の位置と1画素分だけずれている。また、3枚目の画像P3内における主要被写体40の位置は、1枚目の画像データP1内における主要被写体40の位置と2画素分だけずれているものとなる。
一方、互いに撮影範囲が異なる1〜3枚目の画像データP1,P2,P3において、固定パターンノイズ51,52,53が発生する位置は同じものとなる。そのため、2枚目の画像P2における主要被写体40と固定パターンノイズ52と間の距離と、3枚目の画像P3における主要被写体40と固定パターンノイズ53と間の距離とは、1画素分異なることとなる。また、1枚目の画像P1における主要被写体40と固定パターンノイズ51と間の距離と、3枚目の画像P3における主要被写体40と固定パターンノイズ53と間の距離とは、2画素分異なることとなる。
図8に、上述の3枚の画像P1,P2,P3を、主要被写体40の水平方向における中心位置を基準として時系列的に並べた様子を示す。図8から明らかなように、画像P1における主要被写体40の位置から固定パターンノイズ51の位置までの距離と、画像P2における主要被写体40の位置から固定パターンノイズ52の位置までの距離と、画像P3における主要被写体40の位置から固定パターンノイズ53の位置までの距離とは、互いに異なっている。
図3に戻り、ステップS12で撮影回数nが3以上であると判断されると、ステップS13において、制御部10は、画像メモリ24に記憶されている各画像データにより表現される画像からそれぞれ特徴部分を抽出する。具体的には、制御部10は、特徴抽出部27に、画像メモリ24に記憶された画像データとROM12に記憶されているモデルデータとのマッチング処理により類似度を算出させ、算出した類似度が所定の閾値以上のサンプリング点における画像成分を特徴部分として抽出させる。例えば、検出する被写体の種別として人物の顔が指定されている場合、顔の目、口などの局所的な特徴部分が抽出される。
次にステップS14において、制御部10は、合成画像データを生成する。具体的には、制御部10は、画像合成部28に、ステップS13において抽出された各特徴部分の位置を一致させた状態で、画像メモリ24に記憶されている各画像データにより表現される各画像を合成させることにより、合成画像データを生成させる。このとき、画像合成部28は、各画像データにより表現される各画像の特徴部分が完全に重なり合うように、画像間の位置や大きさを調整し、特徴部分の位置を一致させた状態で各画像データを合成する。例えば、画像P1,P2,P3からそれぞれ主要被写体40の目、口などの特徴部分が抽出されている場合には、この特徴部分を一致させた状態で画像P1,P2,P3が合成される。
図9は、画像P1,P2,P3を合成した合成画像CPを示す図である。図9に示されるように、主要被写体40の特徴部分を一致させた状態で各画像を合成するので、主要被写体40は完全に一致した状態で重ね合わせられるが、固定パターンノイズ51,52,53は1画素分ずつずれた状態で重ね合わせられる。
画像合成部28は、一旦、合成画像における各画素の輝度値と色差値を、元の各画像上で対応する位置にある各画素の輝度値および色差値を合計した値とする。この結果、例えば、合成画像CPにおいて主要被写体40の領域を構成する各画素の輝度値と色差値は、元の画像P1,P2,P3のものに比べて3倍の値になる。一方、図9に示されるように、合成画像CPにおける固定パターンノイズ51,52,53は、その構成画素の輝度値と色差値が合成前のものと変わらず、その位置が分散された状態となる。しかし、このままでは、元の画像P1,P2,P3に比べて、単に合成画像CP上で固定パターンノイズの数が増えただけになってしまう。
そこで、ステップS15において、制御部10は、合成画像データを平均化する。具体的には、制御部10は、画像合成部28に、合成画像における全ての画素の輝度値と色差値を平均化する処理を施させる。この平均化処理に際して画像合成部28は、合成画像における全ての画素の輝度値と色差値とを3(合成する画像の枚数)で除した値を、合成画像における全ての画素の新たな輝度値と色差値とする。例えば合成画像CPの場合、平均化処理によって、主要被写体40の領域を構成する各画素の輝度値と色差値は、元の画像P1,P2,P3のものと同じ値になる。一方、固定パターンノイズ51,52,53の構成画素の輝度値と色差値は、合成前のものに比べて1/3の値となる。
図10に、合成画像CPに平均化処理が施した画像である合成画像CPaが示されている。図10に示されるように、固定パターンノイズ51,52,53の輝度値と色差値は、合成前のものに比べて1/3の値となったため、元の画像P1,P2,P3に比べて固定パターンノイズ51,52,53が目立たなくなっている。
図3に戻り、ステップS16において、制御部10は、平均化処理が施された合成画像データを記録媒体31に記録させる。
以上で、制御部10は、図3に示される連写合成モードの処理を終了させる。
以上説明したように、本実施形態に係る撮影装置100は、手ぶれが発生した場合における連写撮影時の各撮影開始時点で、手ぶれ補正情報を示す補正信号Rに画素ずらし情報を示すオフセット信号Oを反映させた制御信号Cに基づき、撮像素子19を移動させるようにした。これにより、手ぶれによる撮像素子19の撮影範囲の変化がほぼ打ち消されるとともに、撮影の度に撮影範囲が1画素分だけ変化することとなる。
ここで、撮影範囲が異なっても、撮影された各画像上では同じ位置に固定パターンノイズが発生する。このため、本実施形態に係る撮影装置100によれば、手ぶれが発生した場合においても、連写撮影された各画像上で特徴部分(主要被写体)と固定パターンノイズとの距離を互いに異なるものにすることができる。その結果、手ぶれが発生した場合であっても、特徴部分を基準として連写撮影された各画像を合成することにより、固定パターンノイズが分散された合成画像を得ることができる。
そして、本実施形態に係る撮影装置100においては、合成画像に対して平均化処理を施すようにした。このようにすれば、合成画像において分散されている各固定パターンノイズの輝度値と色差値とが、元の各画像における固定パターンノイズの輝度値と色差値よりも小さくなるので、合成画像において固定パターンノイズを目立たなくすることができる。
以上より、本実施形態に係る撮影装置100によれば、撮影中に手ぶれが生じた場合であっても、撮影画像上に発生する固定パターンノイズの影響を確実に低減させることができる。
また、本実施形態に係る撮影装置100は、撮像素子シフト式手ぶれ補正制御に従う補正信号Rにより撮像素子19を移動させて手ぶれを補正するようにした。このようにすれば、連写撮影された各画像において手ぶれを要因とする被写体像のぶれがなくなるので、各画像の画質の劣化を防止できる。そして、本実施形態に係る撮影装置100においては、これら画質の劣化のない各画像データの合成により合成画像データが生成される。その結果、合成画像データにより表現される合成画像の画質も劣化することがなくなる。
また、本実施形態に係る撮影装置100は、連写撮影における1回目の撮影開始時に、オフセット信号Oにより撮像素子19を連写撮影回数と同じ画素数分の距離だけ左方向へ移動させるようにした。撮像素子19の位置は、アクチュエータ215が撮像素子19を移動させることができる限界位置を超えることができない。しかし、このようにすれば、連写撮影中の2回目以降の各撮影におけるオフセット信号Oの影響によって、撮像素子19を右方向へ順次移動させていく際に、撮影装置100の内部において撮像素子19を移動させることができる範囲に予め余裕を持たせることができる。つまり、撮像素子19が2回目以降の各撮影時に右方向に順次移動していく際に、限界位置を超えることにより手ぶれ補正制御が不可能になる可能性を低減できる。これは、連写撮影における撮影回数が多く、撮像素子19の右方向への移動量の総和が多くなる場合に特に有効となる。
本実施形態に係る撮影装置100は、連写撮影により得られた画像のうち、主要被写体が写っていない画像を消去するようにした。このようにすれば、合成に際しての基準となる特徴情報を持つ主要被写体が写っていない画像を、合成対象から除くことがでる。その結果、合成に適正な画像データのみを用いて合成画像データを生成できる。
本実施形態に係る撮影装置100は、1回目の撮影時に生成するオフセット信号Oが示す撮像素子19の移動方向を左方向とし、2回目以降の撮影時に生成するオフセット信号Oが示す撮像素子19の移動方向を右方向とした。しかし、これとは逆に、1回目の撮影時に生成するオフセット信号Oが示す撮像素子19の移動方向を右方向とし、2回目以降の撮影時に生成するオフセット信号Oが示す撮像素子19の移動方向を左方向としてもよい。
本実施形態に係る撮影装置100は、連写撮影により生成された各画像の特徴部分の位置を一致させた状態でこれら各画像を合成させることにより、合成画像データを生成させるようにした。しかし、制御部10は、画像合成部28に、1枚目の画像と、2枚目の画像を右方向に1画素ずらした画像と、3枚目の画像を右方向に2画素ずらした画像とを合成させることにより、合成画像を生成させるようにしてもよい。この手法によっても、各画像において水平方向における主要被写体の位置を一致させた状態で、各画像を合成することができる。
本実施形態に係る撮影装置100は、1回目の撮影時に生成するオフセット信号Oが示す画素ずらし情報を3画素とした。しかし、1回目の撮影時に生成するオフセット信号Oが示す画素ずらし情報は、4画素以上(例えば100画素)であってもよい。
本実施形態に係る撮影装置100は、2回目以降の撮影時に生成するオフセット信号Oが示す画素ずらし情報を1画素とした。しかし、2回目以降のオフセット信号Oが示す画素ずらし情報は、2画素以上であってもよい。
本実施形態に係る撮影装置100は、連写撮影として3回の連続撮影を行うようにした。しかし、連写撮影による撮影回数は3回でなくともよい。つまり、合成画像データの生成に用いる画像データの枚数は3枚でなくともよい。
本実施形態に係る撮影装置100は、手ぶれによる撮影装置100の姿勢の変化を、手ぶれセンサ211の角速度センサにより検出した。しかし、撮影装置100の位置や姿勢の変化を、撮影画像上の動きベクトルにより検出してもよい。動きベクトルの検出方法は、公知の方法を適宜利用することができる。
本実施形態に係る撮影装置100は、合成画像データが生成された後に、合成画像データに平均化処理を施すようにした。しかし、画像データが1枚生成された時点で、新たに生成された画像データの各画素の輝度値と色差値を1/3の値にする平均化処理を施してから、平均化処理が施された各画像データを合成することにより、合成画像データを生成してもよい。
本実施形態においては、各画像データの合成における基準画像を、連写撮影により生成された1枚目の画像とした。しかし、合成に際しての基準画像を、2枚目以降の画像としてもよい。
本発明は、カメラ付き携帯電話機やカメラ付きゲーム機など、電子カメラを内蔵する機器にも適用することができる。また、本発明は、複数の機器(例えばホストコンピュータ、インターフェイス機器、カメラヘッドなど)から構成されるシステムに適用してもよい。
本発明の目的は、以下の様にして達成することも可能である。まず、本実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータが記録媒体に格納されたプログラムコードを読み出す。この場合、記録媒体から読み出されたプログラムコード自体が本実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。ここでプログラムコードを記録する記録媒体としては、例えば、フレキシブルディスク、ハードディスク、ROM、RAM、磁気テープ、不揮発性のメモリカード、CD−ROM、CD−R、DVD、光ディスク、光磁気ディスク、MOなどが考えられる。また、LAN(ローカル・エリア・ネットワーク)やWAN(ワイド・エリア・ネットワーク)などのコンピュータネットワークを、プログラムコードを供給するために用いることができる。