以下、本発明の一実施形態を図面に基づいて説明する。
図1は、本発明の画像処理装置の一実施形態に係るデジタルカメラ1のハードウェアの構成を示す図である。
デジタルカメラ1は、撮像部11と、データ処理部12と、ユーザインタフェース部13と、を備える。
撮像部11は、光学レンズ部21と、イメージセンサ22と、を備える。
光学レンズ部21は、被写体を撮影するために、光を集光するレンズ、例えばフォーカスレンズやズームレンズなどで構成される。フォーカスレンズは、イメージセンサ22の受光面に被写体像を結像させるレンズである。ズームレンズは、焦点距離を一定の範囲で自在に変化させるレンズである。光学レンズ部21にはまた、必要に応じて、焦点、露出、ホワイトバランスなどの設定パラメータを調整する周辺回路が設けられる。
イメージセンサ22は、光電変換素子や、AFE(Analog Front End)などから構成される。光電変換素子は、例えばCMOS(Complementary Metal Oxide Semiconductor)型の光電変換素子などから構成される。光電変換素子には、光学レンズ部21からシャッタ部(図示せず)を介して被写体像が入射される。そこで、光電変換素子は、一定時間毎に被写体像を光電変換(撮影)して画像信号を蓄積し、蓄積した画像信号をアナログ信号としてAFEに順次供給する。AFEは、このアナログの画像信号に対して、A/D(Analog/Digital)変換処理などの各種信号処理を実行する。各種信号処理によって、ディジタル信号が生成され、イメージセンサ22の出力信号として出力される。なお、以下、画像信号のディジタル信号を、「画像データ」と呼ぶ。このように呼称すると、イメージセンサ22からは画像データが出力されて、データ処理部12に供給される。
データ処理部12は、CPU(Central Processing Unit)31と、ROM(Read Only Memory)32と、RAM(Random Access Memory)33と、メモリ34と、表示制御部35と、画像処理部36と、を備えている。
CPU31は、ROM32に記録されているプログラムに従って各種の処理を実行する。RAM33には、CPU31が各種の処理を実行する上において必要なデータなどが適宜記憶される。
本実施の形態では、後述する図5の位置ズレ補正部101乃至暗用背景フレーム生成部110の各機能を実行するプログラムが、ROM32に記憶されている。従って、CPU31が、このプログラムに従った処理を実行することで、位置ズレ補正部101乃至暗用背景フレーム生成部110の各機能を実現することができる。
メモリ34は、DRAM(Dynamic Random Access Memory)などで構成され、イメージセンサ22から出力された画像データを一時記憶する。また、メモリ34は、各種画像処理に必要な画像データ、各種フラグの値、閾値なども記憶する。また、メモリ34には、画像表示用の画像データ(以下、「表示画像データ」と呼ぶ)の保存と読み出しをおこなうための表示メモリ領域も含まれている。
表示制御部35は、メモリ34の表示メモリ領域に格納された表示画像データを読み出し、その表示画像データにより表現される画像(以下、「表示画像」と呼ぶ)を、ユーザインタフェース部13の表示部41に表示させる制御を実行する。例えば、表示制御部35は、当該表示画像データに基づいてRGB信号を生成し、当該RGB信号を表示部41に供給することにより、表示画像を表示部41に表示させる。なお、表示制御部35により生成されたRGB信号は、ユーザインタフェース部13の通信部43によって、図示せぬ外部機器に出力させることもできる。これにより、外部機器、例えば、テレビジョン受像機、パーソナルコンピュータ、プロジェクタなどでも、表示画像の表示が可能になる。
画像処理部36は、DSP(Digital Signal Processor)などで構成され、メモリ34に記憶された画像データに対して、ホワイトバランス補正処理やγ補正処理などの各種画像処理を実行する。本実施形態では、後述する図5の位置ズレ補正部101乃至暗用背景フレーム生成部110が実行する各種画像処理のうち少なくとも一部が、画像処理部36において実行され、残りの一部がCPU31において実行される。即ち、本実施形態では、後述する図5の位置ズレ補正部101乃至暗用背景フレーム生成部110は、CPU31及び画像処理部36というハードウェアと、ROM32に記憶されたプログラム(ソフトウェア)との組み合わせとして構成されている。
ユーザインタフェース部13は、液晶ディスプレイなどで構成される表示部41と、ユーザの指示操作を受け付ける操作部42と、外部機器との間での通信を制御する通信部43と、リムーバブル記録媒体51に対するデータの読み書きを行うドライブ44と、を備えている。
このような構成を有するデジタルカメラ1は、動体連写合成処理を実行することができる。そこで、以下、図2乃至図10を参照して、動体連写合成処理について説明する。
図2は、デジタルカメラ1の撮影環境の一例を示す模式図である。
図3は、図2の撮影環境の下でデジタルカメラ1の連続撮影によって得られた複数のフレーム画像の一例を示している。
図2に示すように、実世界の定位置に固定されたデジタルカメラ1は、実世界の空間のうち画角61に含まれる背景62及び被写動体63を連続して撮影することができる。この場合、固定状態のデジタルカメラ1の視点からすると、画角61の範囲内で、背景62は固定しており、被写動体63のみが移動することになる。これにより、図3に示すように、背景62の像72が固定された状態で、被写動体63の像73のみが移動方向(図3中右方向)に徐々に移動していく様子を示す、複数のフレーム画像81乃至85が得られることになる。
なお、以下、実世界に存在するものと、フレーム画像内の対応する像とを個々に区別する必要が無い場合、実世界に存在するものの呼称に統一して表現する。即ち、以下、背景62の像72を、単に「背景72」と呼び、被写動体63の像73を、単に「被写動体73」と呼ぶ。
図4は、図3の複数のフレーム画像に対して動体連写合成処理が実行されたことによって得られた動体連写合成画像の一例を示している。
図4の動体連写合成画像91において、被写動体73A乃至73Eの各々は、図3の別々のフレーム画像81乃至85の各々に含まれる被写動体73を示している。このように、背景72が固定された状態で、被写動体73のみが移動方向(図3や図4中右方向)に徐々に移動していく様子が、1枚の動体連写合成画像91によって表わされる。
図5は、このような動体連写合成処理を実行するためのデータ処理部12の機能的構成を示す機能ブロック図である。
データ処理部12は、位置ズレ補正部101と、フレーム縮小部102と、切替部103と、明るさ判定部104と、明用被写動体検出部105と、被写動体抽出部106と、明用背景フレーム生成部107と、画像合成部108と、暗用被写動体検出部109と、暗用背景フレーム生成部110と、を備えている。
また、データ処理部12のメモリ34内には、原フレーム記憶部121と、背景フレーム記憶部122と、抽出被写動体記憶部123と、動体連写合成画像記憶部124と、が設けられている。
原フレーム記憶部121には、撮像部11の連続撮影により得られた複数のフレーム画像の画像データ、例えば上述した図3のフレーム画像81乃至85の各々の画像データが記憶されている。なお、以下、原フレーム記憶部121に記憶されている画像データにより表現されるフレーム画像を、「原フレーム画像」と呼ぶ。
位置ズレ補正部101は、原フレーム記憶部121に記憶された画像データに対して、各原フレーム画像の位置ズレを補正する処理を実行する。このような位置ズレ補正部101の処理を、以下、「補正処理」と呼ぶ。
フレーム縮小部102は、位置ズレ補正部101から出力された各原フレーム画像の画像データに対して、画像サイズを縮小させる処理を実行する。このようなフレーム縮小部102の処理を、以下、「縮小処理」と呼ぶ。また、縮小処理後の原フレーム画像を、以下、「縮小原フレーム画像」と呼ぶ。本実施形態では、このような縮小原フレーム画像から被写動体が検出される。検出の処理速度が向上しつつ、十分な検出精度を得ることが可能だからである。
切替部103は、明るさ判定部104の判定結果に基づいて、入力データの出力先を切り替える。本実施形態では、切替部103には、フレーム縮小部102から出力された各縮小原フレーム画像の画像データが第1の入力データとして入力され、位置ズレ補正部101から出力された各原フレーム画像の画像データが第2の入力データとして入力される。そして、明るさ判定部104により撮影環境の明るさが一定以上であると判定された場合、第1の入力データの出力先は明用被写動体検出部105に切り替えられ、第2の入力データの出力先は明用背景フレーム生成部107に切り替えられる。これに対して、明るさ判定部104により撮影環境の明るさが一定未満であると判定された場合、第1の入力データの出力先は暗用被写動体検出部109に切り替えられ、第2の入力データの出力先は暗用背景フレーム生成部110に切り替えられる。
明るさ判定部104は、各原フレーム画像の撮影時の撮影環境の明るさを判定する。明るさの判定手法は、特に限定されないが、本実施形態では、撮影時のAE(Automatic Exposure、自動露出)の値に従って判定する手法が採用されている。
明るさ判定部104により撮影環境の明るさが一定以上であると判定された場合、フレーム縮小部102から出力された各縮小原フレーム画像の画像データが、切替部103を介して明用被写動体検出部105に供給される。
明用被写動体検出部105は、各縮小原フレーム画像の画像データを用いて、被写動体を含まずに背景のみを含む画像(以下、「疑似背景フレーム画像」と呼ぶ)の画像データを生成する。ここで、各縮小フレーム画像における被写動体の画角内の各々の配置位置はばらばらになっている。従って、各縮小フレーム画像の同一画素位置の各画素値のメディアンを取ることによって、被写動体を示す画素値を除外すること、即ち、被写動体を含まない画像を生成することが可能になる。そこで、本実施形態では、明用被写動体検出部105は、各縮小フレーム画像の同一画素位置の各画素値のメディアン値を演算し、各々のメディアン値を各々の画素値として有する画像の画像データを、疑似背景フレーム画像の画像データとして生成する。
次に、明用被写動体検出部105は、各縮小フレーム画像の各々の画像データと、疑似背景フレーム画像の画像データとの差分を画素毎に求める。そして、明用被写動体検出部105は、各縮小原フレーム画像の各々について、差分量が一定以上大きくなっている領域(画素群)を被写動体の領域としてそれぞれ検出する。当該検出結果として、各縮小原フレーム画像における被写動体の相対的な存在位置(座標)が、被写動体抽出部106に供給される。
このようにして、被写動体抽出部106には、明用被写動体検出部105の検出結果が供給されると共に、位置ズレ補正部101から出力された各原フレーム画像の画像データも供給される。
被写動体抽出部106は、明用被写動体検出部105の検出結果に基づいて、各原フレーム画像の画像データの各々から被写動体の画像データを抽出し、抽出被写動体記憶部123に記憶させる。この場合、原フレーム画像における被写動体の相対的な存在位置、即ち、明用被写動体検出部105の検出結果も、抽出被写動体記憶部123に記憶される。
また、明るさ判定部104により撮影環境の明るさが一定以上であると判定された場合には、位置ズレ補正部101から出力された各原フレーム画像の画像データが、切替部103を介して明用背景フレーム生成部107に供給される。
明用背景フレーム生成部107は、各原フレーム画像のうちの所定の1枚、例えば最初に撮影された原フレーム画像を、動体連写合成画像の生成の際の基礎となる背景を含む画像(以下、「背景フレーム画像」と呼ぶ)として、その背景フレーム画像の画像データを生成して、背景フレーム記憶部122に記憶させる。
画像合成部108は、明用背景フレーム生成部107により生成された背景フレーム画像の画像データを、背景フレーム記憶部122から読み出す。また、画像合成部108は、被写動体抽出部106により各原フレーム画像からそれぞれ抽出された各被写動体の画像データを、抽出被写動体記憶部123から読み出す。そして、画像合成部108は、これらの読み出した画像データに対して、背景フレーム画像の上に、複数の被写動体の各々を、抽出元の原フレーム画像における存在位置を保持したまま合成させるような合成処理を実行する。これにより、動体連写合成画像の画像データが得られ、画像合成部108から出力されて動体連写合成画像記憶部124に記憶される。
図6は、このように、明るさ判定部104により撮影環境の明るさが一定以上であると判定された場合に生成される動体連写合成画像の模式図である。
上述したした通り、連続撮影により得られた原フレーム画像81乃至85のうちの所定の1枚、例えば図6の例では最初に撮影された原フレーム画像81が、背景フレーム画像として採用される。従って、図6に示すように、残りの原フレーム画像82乃至85の各々から被写動体73の画像データが抽出され、抽出元の原フレーム画像82乃至85の各々における存在位置を保持したまま、背景フレーム画像となった原フレーム画像81の画像データに合成される。
ところで、動体連写合成画像を生成するための原フレーム画像は、その性質上、シャッタ速度優先AEのモード、即ちシャッタ速度がある程度高速になるモードにて撮影された画像である場合が多い。上述したように、シャッタ速度がある程度高速でなければ、被写動体にモーションブラーが生じてしまい、動体連写合成画像になった際に品質が低下するからである。
このような場合、シャッタ速度が高速でも低感度で良好な撮影が出来る程度に、十分に明るい撮影環境であれば、図6に示すようにして動体連写合成画像が生成された場合であっても、良好な品質を確保することが可能になる。
これに対して、暗い撮影環境の場合などは、高速なシャッタ速度では十分な露光を得ることができないため、絞りや感度を高感度に調節して露光を得ることになる。しかしながら、このような場合には、高感度であるが故原フレーム画像にはノイズが多く含まれることになる。その結果、図6に示すようにして動体連写合成画像が生成されると、ノイズを多く含む原フレーム画像がそのまま背景フレーム画像として採用されるため、動体連写合成画像の品質を良好な状態で確保することが困難になる。
そこで、本実施形態では、暗い撮影環境の場合などでも動体連写合成画像の品質を良好な状態のまま確保すべく、暗用被写動体検出部109及び暗用背景フレーム生成部110が設けられているのである。
即ち、明るさ判定部104により撮影環境の明るさが一定未満であると判定された場合、フレーム縮小部102から出力された各縮小原フレーム画像の画像データは、切替部103を介して暗用被写動体検出部109に供給されると共に、位置ズレ補正部101から出力された各原フレーム画像の画像データは、切替部103を介して暗用背景フレーム生成部110に供給される。
暗用被写動体検出部109は、各縮小原フレーム画像の画像データを用いて、疑似背景フレーム画像の画像データを生成する。ただし、暗用被写動体検出部109による疑似背景フレーム画像の画像データの生成手法は、明用被写動体検出部105による生成手法とは異なる。即ち、明用被写動体検出部105においては各画素値のメディアンを取ることによって、疑似背景フレーム画像の画像データが生成されたのに対して、暗用被写動体検出部109においては、次のようにして、疑似背景フレーム画像の画像データが生成される。即ち、暗用被写動体検出部109は、各縮小フレーム画像の同一画素位置の各画素値の加算平均値を演算することによって、各々の加算平均値を各々の画素値として有する画像(以下、「加算平均合成画像」と呼ぶ)の画像データを、疑似背景フレーム画像の画像データとして生成する。換言すると、暗用被写動体検出部109において疑似背景フレーム画像として採用される加算平均合成画像の画像データとは、複数の画像データを加算し、加算した画像データの数で除することによって合成された画像データをいう。
次に、暗用被写動体検出部109は、各縮小フレーム画像の各々の画像データと、疑似背景フレーム画像の画像データとの差分を画素毎に求める。そして、暗用被写動体検出部109は、各縮小原フレーム画像の各々について、差分量が一定以上大きくなっている領域(画素群)を被写動体の領域としてそれぞれ検出する。当該検出結果として、各縮小原フレーム画像における被写動体の相対的な存在位置(座標)が、被写動体抽出部106に供給される。
このようにして、被写動体抽出部106には、暗用被写動体検出部109の検出結果が供給されると共に、位置ズレ補正部101から出力された各原フレーム画像の画像データも供給される。
被写動体抽出部106は、暗用被写動体検出部109の検出結果に基づいて、各原フレーム画像の画像データの各々から被写動体の画像データを抽出し、抽出被写動体記憶部123に記憶させる。この場合、原フレーム画像における被写動体の相対的な存在位置、即ち、暗用被写動体検出部109の検出結果も、抽出被写動体記憶部123に記憶される。
ここで注意すべき点は、被写動体抽出部106の抽出対象は、暗用被写動体検出部109の検出結果を用いる場合と、明用被写動体検出部105の検出結果を用いる場合とでは異なる点である。
即ち、明用被写動体検出部105の検出結果が用いられる場合、明用背景フレーム生成部107により生成される背景フレーム画像の画像データは、各原フレーム画像のうちの所定の1枚の画像データがそのまま採用されたものである。従って、背景フレーム画像として採用される原フレーム画像については、被写動体の抽出は不要である。即ち、被写動体抽出部106は、背景フレーム画像を除いた原フレーム画像の画像データのみから、被写動体の画像データを抽出する。
これに対して、暗用被写動体検出部109の検出結果が用いられる場合、後述するように、各原フレーム画像に基づいて新たな背景フレーム画像の画像データが暗用背景フレーム生成部110により生成される。従って、被写動体抽出部106は、各原フレーム画像の全ての画像データから被写動体領域の画像データをそれぞれ抽出する。
このようにして、暗用被写動体検出部109の検出結果が用いられて、被写動体抽出部106によって、各原フレーム画像の全ての画像データから被写動体領域の画像データが抽出される場合、即ち、明るさ判定部104により撮影環境の明るさが一定未満であると判定された場合、上述したように、位置ズレ補正部101から出力された各原フレーム画像の画像データが、切替部103を介して暗用背景フレーム生成部110に供給される。
暗用背景フレーム生成部110は、各原フレーム画像の画像データを用いて、加算平均合成画像の画像データを、背景フレーム画像の画像データとして生成する。即ち、暗用背景フレーム生成部110は、各フレーム画像の同一位置の各画素値の加算平均値を演算し、各々の加算平均値を各々の画素値として有する加算平均合成画像の画像データを、背景フレーム画像の画像データとして生成する。背景フレーム画像の画像データは、背景フレーム記憶部122に記憶される。
画像合成部108は、暗用背景フレーム生成部110により生成された背景フレーム画像の画像データを、背景フレーム記憶部122から読み出す。また、画像合成部108は、被写動体抽出部106により各原フレーム画像からそれぞれ抽出された各被写動体の画像データを、抽出被写動体記憶部123から読み出す。そして、画像合成部108は、これらの読み出した画像データに対して、背景フレーム画像の上に、複数の被写動体の各々を、抽出元の原フレーム画像における存在位置を保持したまま合成させるような合成処理を実行する。これにより、動体連写合成画像の画像データが得られ、画像合成部108から出力されて動体連写合成画像記憶部124に記憶される。
図7は、このように、明るさ判定部104により撮影環境の明るさが一定未満であると判定された場合に生成される動体連写合成画像の模式図である。
上述した通り、連続撮影により得られた原フレーム画像81乃至85を用いて生成された加算平均合成画像が、例えば図7の例では加算平均合成画像181が、背景フレーム画像として採用される。従って、図7に示すように、全ての原フレーム画像81乃至85の各々から被写動体73の画像データが抽出され、抽出元の原フレーム画像81乃至85の各々における存在位置を保持したまま、背景フレーム画像となった加算平均合成画像181の画像データに合成される。
このように、明るさ判定部104により撮影環境の明るさが一定未満であると判定された場合、例えば撮影環境が暗い状態でシャッタ速度優先AEのモードを用いたために感度が高く設定された場合には、加算平均合成画像が背景フレーム画像として採用される。この加算平均合成画像とは、各原フレーム画像が加算されて平均化された画像であるため、各原フレーム画像に含まれているノイズも平均化されて、その影響が低減する。従って、暗い撮影環境の状態で、高感度での撮影が行われた場合であっても、ノイズが除去された背景フレーム画像が採用されることになり、その結果、良好な品質の動体連射合成画像を得ることが可能になる。
なお、明るさ判定部104により撮影環境の明るさが一定以上であると判定された場合にも、加算平均合成画像を背景フレーム画像として採用することも当然可能である。しかしながら、この場合には、原フレーム画像をそのまま背景フレーム画像として用いる場合と比較して処理時間が長くなる。従って、処理時間の短縮を考慮するならば、明るさ判定部104により撮影環境の明るさが一定以上であると判定された場合には、原フレーム画像に乗っているノイズも少ないので、上述の通り、原フレーム画像をそのまま背景フレーム画像として用いた方が好適である。
なお、動体連写合成画像記憶部124に記憶された動体連写合成画像の画像データが、メモリ34の表示メモリ領域に表示画像データとして格納されると、表示制御部35は、当該表示画像データを読み出し、その表示画像データにより表現される画像、即ち、動体連写合成画像を表示部41に表示させる制御を実行する。
次に、図8のフローチャートを参照して、このようなデジタルカメラ1が実行する動体連写合成処理について説明する。
図8は、動体連写合成処理の流れの一例を示すフローチャートである。
動体連写合成処理は、撮像部11により連続撮影がされて、各原フレーム画像が図5の原フレーム記憶部121に記憶された後、例えばユーザが所定の操作を図1の操作部42に対して行った場合、その操作を契機として開始される。即ち、次のような処理が実行される。
ステップS1において、デジタルカメラ1は、連続撮影がされたときの撮影環境の明るさが一定以上か否かを判定する。
図5の明るさ判定部104により明るさが一定以上であると判定された場合、上述したように、切替部103の出力先が、明用背景フレーム生成部107及び明用被写動体検出部105に切り替えられ、ステップS1においてYESであると判定されて、処理はステップS2に進む。
ステップS2において、デジタルカメラ1は、図6を用いて上述したように、各原フレームの所定の1枚、例えば最初に撮影された1枚を背景フレーム画像の画像データとして、残りの原フレームの各々から抽出された被写動体の画像データを合成することによって、動体連写合成画像の画像データを生成する。このようなステップS2の処理を、以下、「明用動体連写合成処理」と呼ぶ。「明用動体連写合成処理」の詳細については、図9のフローチャートを参照して後述する。
これに対して、明るさ判定部104により明るさが一定未満であると判定された場合、上述したように、切替部103の出力先が、暗用背景フレーム生成部110及び暗用被写動体検出部109に切り替えられ、ステップS1においてNOであると判定されて、処理はステップS3に進む。
ステップS3において、デジタルカメラ1は、図7を用いて上述したように、各原フレームの加算平均合成画像を背景フレーム画像として、当該背景フレーの画像のデータに対して、各原フレームの全てから抽出された被写動体の画像データを合成することによって、動体連写合成画像の画像データを生成する。このようなステップS3の処理を、以下、「暗用動体連写合成処理」と呼ぶ。「暗用動体連写合成処理」の詳細については、図10のフローチャートを参照して後述する。
ステップS2の明用動体連写合成処理又はステップS3の暗用動体連写合成処理によって動体連写合成画像が生成されると、動体連写合成処理が終了する。
次に、図9のフローチャートを参照して、図8の動体連写合成処理のうち、ステップS2の明用動体連写合成処理の詳細について説明する。
図9は、明用動体連写合成処理の流れの詳細例を示すフローチャートである。
明用動体連写合成処理は、ステップS1の処理で明るさが一定以上であると判定された場合に、ステップS2の処理として実行される。即ち、次のような処理が実行される。
ステップS21において、位置ズレ補正部101は、原フレーム記憶部121に記憶された各原フレーム画像の画像データに対して、位置ズレ補正処理を実行する。本実施形態では、位置ズレ補正部101は、当該補正処理として、各原フレーム画像の各々から特徴点を抽出し、それらの特徴点が重なり合うように各原フレーム画像の射影変換する処理を実行する。
ステップS22において、フレーム縮小部102は、ステップS21の処理で位置ズレ補正処理が実行された各原フレーム画像の画像データに対して、画像サイズを縮小させる縮小処理を実行する。これにより、各原フレーム画像の各々に対応する縮小原フレーム画像が得られる。
このようなステップS22の縮小処理により得られた各縮小原フレーム画像の画像データが、切替部103を介して明用被写動体検出部105に供給されると共に、ステップS21の位置ズレ補正処理が実行された各原フレーム画像の画像データが、切替部103を介して明用背景フレーム生成部107に供給されると、処理はステップS23に進む。
ステップS23において、明用背景フレーム生成部107は、各原フレーム画像のうちの所定の1枚の原フレーム画像の画像データを、背景フレーム画像の画像データとして生成して、背景フレーム記憶部122に記憶させる。例えば、図3の原フレーム画像81乃至85に対して明用動体連写合成処理が実行される場合には、図6に示すように、最初に撮影された原フレーム画像81が背景フレーム画像として採用され、その画像データが背景フレーム記憶部122に記憶される。
ステップS24において、明用被写動体検出部105は、各縮小原フレーム画像の画像データを用いて、疑似背景フレーム画像の画像データを生成する。上述したように、本実施形態では、明用被写動体検出部105は、各縮小フレーム画像の同一画素位置の各画素値のメディアン値を演算し、各々のメディアン値を各々の画素値として有する画像の画像データを、疑似背景フレーム画像の画像データとして生成する。
ステップS25において、明用被写動体検出部105は、全ての原フレーム画像−1枚について被写動体を抽出する処理が終了したか否かを判定する。
ここで、「全ての原フレーム画像−1枚」における「1枚」とは、ステップS24の処理で背景フレーム画像として採用された原フレーム画像、例えば上述の図6の例では原フレーム画像81を指す。従って、ステップS24の処理で背景フレーム画像として採用された原フレーム画像を除いて、被写動体が未だ抽出されていない原フレーム画像が存在する場合、例えば上述の図6の例では原フレーム画像81を除いた原フレーム画像82乃至85の中に、被写動体が未だ抽出されていない原フレーム画像が存在する場合、ステップS25においてNOであると判定されて、処理はステップS26に進む。
ステップS26において、明用被写動体検出部105は、被写動体が未だ抽出されていない原フレーム画像を注目画像に設定し、注目画像に対応する縮小原フレーム画像の画像データと、疑似背景フレーム画像の画像データとの差分を取ることで、被写動体の領域を検出する(縮小原フレーム画像−疑似背景フレーム画像=被写動体領域)。すると、被写動体抽出部106は、このような明用被写動体検出部105の検出結果に基づいて、注目画像の画像データから被写動体の画像データを抽出し、抽出被写動体記憶部123に記憶させる。この場合、注目画像における被写動体の相対的な存在位置、即ち、明用被写動体検出部105の検出結果も、抽出被写動体記憶部123に記憶される。
このようにしてステップS26の処理が終了すると、処理はステップS25に戻され、それ以降の処理が繰り返される。即ち、ステップS25NO,S26のループ処理が繰り返されることによって、ステップS24の処理で背景フレーム画像として採用された原フレーム画像を除いて、各原フレーム画像の画像データ各々から被写動体の画像データが抽出される。例えば図6の例では、最初に撮影された原フレーム画像81が背景フレーム画像として採用されているので、それ以外の原フレーム画像82乃至85の画像データの各々から被写動体73の画像データが抽出される。これにより、次のステップS25においてYESであると判定されて、処理はステップ27に進む。
なお、ステップS23の処理と、ステップS24乃至S26の処理とは相互に独立した処理であるため、それらの処理の順番は、特に図9の例に限定されない。即ち、ステップS23の処理と、ステップS24乃至S26の処理とはほぼ同時に並行して実行されてもよいし、ステップS24乃至S26の処理後に、ステップS23の処理が実行されてもよい。何れにしても、背景フレーム画像の画像データが背景フレーム記憶部122に記憶され、各原フレーム画像の各々から抽出された被写動体の画像データが抽出被写動体記憶部123に記憶されると、処理はステップS27に進む。
ステップS27において、画像合成部108は、全ての原フレーム画像−1枚について被写動体を背景フレーム画像に合成する合成処理が終了したか否かを判定する。
ここで、「全ての原フレーム画像−1枚」における「1枚」とは、ステップS24の処理で背景フレーム画像として採用された原フレーム画像、例えば上述の図6の例では原フレーム画像81を指す。従って、ステップS24の処理で背景フレーム画像として採用された原フレーム画像を除いて、被写動体が未だ合成されていない原フレーム画像が存在する場合、例えば上述の図6の例では原フレーム画像81を除いた原フレーム画像82乃至85の中に、被写動体が未だ合成されていない原フレーム画像が存在する場合、ステップS27においてNOであると判定されて、処理はステップS28に進む。
ステップS28において、画像合成部108は、被写動体が未だ合成されていない原フレーム画像を注目画像に設定し、注目画像に対する合成処理を実行する。即ち、画像合成部108は、前回までに合成された被写動体を含む背景フレーム画像の画像データに対して、注目画像から抽出された被写動体の画像データを合成する。
このようにしてステップS28の処理が終了すると、処理はステップS27に戻され、それ以降の処理が繰り返される。即ち、ステップS27NO,S28のループ処理が繰り返されることによって、ステップS24の処理で背景フレーム画像として採用された原フレーム画像の画像データに対して、それ以外の各原フレーム画像の各々から抽出された被写動体の画像データが、元の配置位置と同一位置に順次合成されていく。例えば図6の例では、最初に撮影された原フレーム画像81が背景フレーム画像として採用されているので、当該原フレーム画像81の画像データに対して、それ以外の原フレーム画像82乃至85の各々から抽出された被写動体73の画像データが、元の配置位置と同一位置に順次合成されていく。その結果、動体連写合成画像、例えば図4の動体連写合成画像91の画像データが生成されて動体連写合成画像記憶部124に記憶される。これにより、次のステップS27においてYESであると判定されて、明用動体連写合成処理が終了となる。即ち、図8のステップS2の処理も終了し、動体連写合成処理全体も終了となる。
以上、図9のフローチャートを参照して、図8の動体連写合成処理のうち、ステップS2の明用動体連写合成処理の詳細について説明した。次に、図10のフローチャートを参照して、図8の動体連写合成処理のうち、ステップS3の暗用動体連写合成処理の詳細について説明する。
図10は、暗用動体連写合成処理の流れの詳細例を示すフローチャートである。
暗用動体連写合成処理は、ステップS1の処理で明るさが一定未満であると判定された場合に、ステップS3の処理として実行される。即ち、次のような処理が実行される。
なお、暗用動体連写合成処理のステップS41,S42の各処理は、明用動体連写合成処理のステップS21,S22の各処理と同様の処理であるため、これらの説明については省略する。
ステップS42の縮小処理により得られた各縮小原フレーム画像の画像データが、切替部103を介して暗用被写動体検出部109に供給されると共に、ステップS41の位置ズレ補正処理が実行された各原フレーム画像の画像データが、切替部103を介して暗用背景フレーム生成部110に供給されると、処理はステップS43に進む。
ステップS43において、暗用被写動体検出部109は、各縮小原フレーム画像の加算平均合成画像の画像データを、疑似背景フレーム画像の画像データとして生成する。即ち、上述したように、暗用被写動体検出部109は、各縮小フレーム画像の同一位置の各画素値の加算平均値を演算し、各々の加算平均値を各々の画素値として有する加算平均合成画像の画像データを、疑似背景フレーム画像の画像データとして生成する。
ステップS44において、暗用被写動体検出部109は、全ての原フレーム画像について被写動体を抽出する処理が終了したか否かを判定する。
被写動体が未だ抽出されていない原フレーム画像が存在する場合、例えば上述の図7の例では原フレーム画像81乃至85の中に、被写動体が未だ抽出されていない原フレーム画像が存在する場合、ステップS44においてNOであると判定されて、処理はステップS45に進む。
ステップS45において、暗用被写動体検出部109は、被写動体が未だ抽出されていない原フレーム画像を注目画像に設定し、注目画像に対応する縮小原フレーム画像の画像データと、疑似背景フレーム画像の画像データとの差分を取ることで、被写動体を検出する(縮小原フレーム画像−疑似背景フレーム画像=被写動体領域)。すると、被写動体抽出部106は、このような暗用被写動体検出部109の検出結果に基づいて、注目画像の画像データから被写動体の画像データを抽出し、抽出被写動体記憶部123に記憶させる。この場合、注目画像における被写動体の相対的な存在位置、即ち、暗用被写動体検出部109の検出結果も、抽出被写動体記憶部123に記憶される。
このようにしてステップS45の処理が終了すると、処理はステップS44に戻され、それ以降の処理が繰り返される。即ち、ステップS44NO,S45のループ処理が繰り返されることによって、各原フレーム画像の画像データ各々から被写動体の画像データが抽出される。例えば図3の原フレーム画像81乃至85に対して明用動体連写合成処理が実行される場合には、図7に示すように、原フレーム画像81乃至85の画像データの各々から被写動体73の画像データが抽出される。これにより、次のステップS44においてYESであると判定されて、処理はステップ46に進む。
ステップS46において、暗用背景フレーム生成部110は、各原フレーム画像の加算平均合成画像の画像データを、背景フレーム画像の画像データとして生成して、背景フレーム記憶部122に記憶させる。例えば、図7に示すように、原フレーム画像81乃至85の加算平均合成画像181が背景フレーム画像として採用され、その画像データが背景フレーム記憶部122に記憶される。
なお、ステップS43乃至S45の処理と、ステップS46の処理とは相互に独立した処理であるため、それらの処理の順番は、特に図10の例に限定されない。即ち、ステップS43乃至S45の処理と、ステップS46の処理とはほぼ同時に並行して実行されてもよいし、ステップS46の処理後に、ステップS43乃至S45の処理が実行されてもよい。何れにしても、背景フレーム画像の画像データが背景フレーム記憶部122に記憶され、各原フレーム画像の各々から抽出された被写動体の画像データが抽出被写動体記憶部123に記憶されると、処理はステップS47に進む。
ステップS47において、画像合成部108は、全ての原フレーム画像について被写動体を背景フレーム画像に合成する合成処理が終了したか否かを判定する。
被写動体が未だ合成されていない原フレーム画像が存在する場合、例えば上述の図7の例では原フレーム画像81乃至85の中に、被写動体が未だ合成されていない原フレーム画像が存在する場合、ステップS47においてNOであると判定されて、処理はステップS48に進む。
ステップS48において、画像合成部108は、被写動体が未だ合成されていない原フレーム画像を注目画像に設定し、注目画像に対する合成処理を実行する。即ち、画像合成部108は、前回までに合成された被写動体を含む背景フレーム画像の画像データに対して、注目画像から抽出された被写動体の画像データを合成する。
このようにしてステップS48の処理が終了すると、処理はステップS47に戻され、それ以降の処理が繰り返される。即ち、ステップS47NO,S48のループ処理が繰り返されることによって、ステップS46の処理で背景フレーム画像として採用された各原フレーム画像の加算平均合成画像の画像データに対して、各原フレーム画像の各々から抽出された被写動体の画像データが、元の配置位置と同一位置に順次合成されていく。例えば図7の例では、原フレーム画像81乃至85の加算平均合成画像181が背景フレーム画像として採用されているので、当該加算平均合成画像181の画像データに対して、各原フレーム画像81乃至85の各々から抽出された被写動体73の画像データが、元の配置位置と同一位置に順次合成されていく。その結果、動体連写合成画像、例えば図4の動体連写合成画像91の画像データが生成されて動体連写合成画像記憶部124に記憶される。これにより、次のステップS47においてYESであると判定されて、暗用動体連写合成処理が終了となる。即ち、図8のステップS3の処理も終了し、動体連写合成処理全体も終了となる。
以上説明したように、本実施形態に係るデジタルカメラ1は、移動する被写動体に対する連続撮影によって得られる複数の画像の各々を原フレーム画像として、複数の原フレーム画像の画像データを記憶する。デジタルカメラ1は、記憶された複数の原フレーム画像の画像データの各々から、被写動体の画像データを抽出する。デジタルカメラ1は、被写動体に対する連続撮影のときの撮影環境の明るさを判定し、明るさが一定未満であると判定した場合、複数の原フレーム画像の画像データの各々を加算平均して得られる加算平均合成画像の画像データを、背景フレーム画像の画像データとして生成する。そして、デジタルカメラ1は、生成された背景フレーム画像の画像データに対して、複数の原フレーム画像毎に抽出された被写動体の画像データの各々を重ね合わせることによって、動体連写合成画像の画像データを生成する。
このように、撮影環境の明るさが一定未満であると判定された場合、例えば撮影環境が暗い状態でシャッタ速度優先AEのモードを用いたために感度が高く設定された場合には、加算平均合成画像が背景フレーム画像として採用される。この加算平均合成画像とは、各原フレーム画像が加算されて平均化された画像であるため、各原フレーム画像に含まれているノイズも平均化されて、その影響が低減する。従って、暗い撮影環境の状態で、高感度での撮影が行われた場合であっても、ノイズが除去された背景フレーム画像が採用されることになり、良好な品質を確保することが可能になる。
また、本実施形態に係るデジタルカメラ1は、撮影環境の明るさが一定以上であると判定した場合、複数の原フレーム画像のうちの所定の1枚の原フレーム画像の画像データをそのまま、背景フレーム画像の画像データとして採用することができる。これにより、処理時間の短縮を図ることが可能になる。
なお、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良などは本発明に含まれるものである。
例えば、上述した実施形態では、撮影環境の明るさの判定手法は、複数の原フレーム画像が撮像されたときの自動露出(AE)の値を用いる手法が採用されていたが、特にこれに限定されない。例えば、記憶後の複数の原フレーム画像の画像データの少なくとも1つを用いる手法を採用してもよい。
例えば、上述した実施形態では、撮影環境の明るさの判定結果は、明用動体連写合成処理と暗用動体連写合成処理とのうちの何れを実行する用途で用いられていたが、特にこれに限定されない。例えば、当該判定結果は、撮影環境の明るさに応じて背景フレーム画像の明るさ(輝度)を調整する用途で用いてもよい。
例えば、上述した実施形態では、明用動体連写合成処理又は暗用動体連写合成処理が実行されると、自動的に生成された1枚の背景フレーム画像が用いられていたが、特にこれに限定されない。例えば、図5の明用背景フレーム生成部107又は暗用背景フレーム生成部110は、複数の背景フレーム画像の画像データを生成してもよい。この場合、表示制御部35は、これらの複数の背景フレーム画像を表示部41に表示させることによって、ユーザに、図1の操作部42を操作させることによって、複数の背景フレーム画像のうちの所定の1つを選択させるようにしてもよい。これにより、図5の画像合成部108は、選択された背景フレーム画像の画像データを用いて、動体連写合成画像の画像データを生成することができる。
例えば、上述した実施形態では、明るさが一定未満の場合に生成される背景フレーム画像は、複数の原フレーム画像全体の加算平均合成画像が採用されたが、特にこれに限定されず、例えば複数の原フレーム画像のうち背景領域の加算平均合成画像を採用してもよい。
例えば、上述した実施形態では、本発明が適用される画像処理装置は、デジタルカメラとして構成される例として説明した。しかしながら、本発明は、デジタルカメラに特に限定されず、電子機器一般に適用することができる。具体的には例えば、本発明は、ビデオカメラ、携帯型ナビゲーション装置、ポータブルゲーム機などに適用可能である。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータなどにネットワークや記録媒体からインストールされる。コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであってもよい。
このようなプログラムを含む記録媒体は、図示はしないが、ユーザにプログラムを提供するために装置本体とは別に配布されるリムーバブルメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体などで構成される。リムーバブルメディアは、例えば、磁気ディスク(フロッピディスクを含む)、光ディスク、又は光磁気ディスクなどにより構成される。光ディスクは、例えば、CD−ROM(Compact Disk−Read Only Memory),DVD(Digital Versatile Disk)などにより構成される。光磁気ディスクは、MD(Mini−Disk)などにより構成される。また、装置本体に予め組み込まれた状態でユーザに提供される記録媒体は、例えば、プログラムが記録されている図1のROM32や、図示せぬハードディスクなどで構成される。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的或いは個別に実行される処理をも含むものである。