(57)【要約】【課題】より良好なストロボ画像を生成する。【解決手段】連写によって得られた複数の画像を合成してストロボ画像を生成する場合に、基準フレームＮ（１番目のフレーム）と対象フレームｎ'（後続する各フレーム）との間の移動量ＶＦが、オクルージョンの影響を受けにくいことを示す第１の閾値th1未満であれば（ステップＳ９１２：Ｙｅｓ）、通常の処理量のモルフォロジー演算によって被写体領域の平滑化をおこなう（ステップＳ９１３〜ステップＳ９１５）。一方、移動量ＶＦが第１の閾値th1以上である場合（ステップＳ９１２：Ｎｏ）、通常よりもモルフォロジー演算の処理量を多くして平滑化をおこなうことで（ステップＳ９１６〜ステップＳ９１８）、オクルージョンの影響により背景部分の一部が被写体として誤認識された場合でも、このような不要部分を除去したストロボ画像を生成することができる。【選択図】図１９
2010166545.tif 000002
【特許請求の範囲】
【請求項１】
撮像により連続する複数の撮像画像を生成する撮像手段と、
前記撮像手段が生成した各撮像画像から、移動する被写体部分を示す複数の画像を抽出する被写体抽出手段と、
前記撮像手段が生成した複数の撮像画像から、背景画像を生成する背景画像生成手段と、
前記背景画像生成手段が生成した背景画像と、前記被写体抽出手段が抽出した複数の被写体部分を示す画像とを合成してストロボ画像を生成するストロボ画像生成手段と、
を備える撮像装置において、
前記複数の撮像画像における所定の画像間の移動量を検出する移動量検出手段と、
前記移動量検出手段が検出した移動量に応じた処理量で、前記画像に対する平滑化処理をおこなう画像平滑化手段と、をさらに備える、
ことを特徴とする撮像装置。
【請求項２】
前記画像平滑化手段は、
前記移動量検出手段が検出する移動量が大きいほど、前記平滑化処理にかかる処理量を多くする、
ことを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記画像平滑化手段は、
前記移動量検出手段が検出した移動量と閾値との比較に基づいて、前記平滑化処理にかかる処理量を異ならせる、
ことを特徴とする請求項１または２に記載の撮像装置。
【請求項４】
前記画像平滑化手段は、
前記移動量検出手段が検出した移動量に係数を乗じた数値に基づいて、前記平滑化処理にかかる処理量を異ならせる、
ことを特徴とする請求項１または２に記載の撮像装置。
【請求項５】
前記画像平滑化手段による前記平滑化処理にかかる処理量は、該平滑化処理の実行回数である、
ことを特徴とする請求項３または４に記載の撮像装置。
【請求項６】
前記画像平滑化手段は、モルフォロジー演算により前記平滑化処理をおこない、
前記移動量検出手段が検出した移動量に基づいて、前記モルフォロジー演算で用いる構成成分を異ならせることで、前記平滑化処理にかかる処理量を異ならせる、
ことを特徴とする請求項１乃至５のいずれか１項に記載の撮像装置。
【請求項７】
前記画像平滑化手段は、前記移動量に基づいて、前記構成成分のサイズを異ならせる、
ことを特徴とする請求項６に記載の撮像装置。
【請求項８】
前記移動量検出手段は、前記撮像画像の位置合わせをおこなう際に前記移動量を求め、
前記移動量検出手段が検出した前記移動量が所定の閾値以上となる場合、当該移動量が検出された画像を前記ストロボ画像生成手段による合成対象から除外する画像選択手段をさらに備える、
ことを特徴とする請求項１乃至７のいずれか１項に記載の撮像装置。
【請求項９】
前記撮像装置に生じた動きを検出するセンサ手段をさらに備え、
前記移動量検出手段は、前記センサ手段の検出結果に基づいて、フレーム間の移動量を検出する、
ことを特徴とする請求項１乃至８のいずれか１項に記載の撮像装置。
【請求項１０】
画像処理をおこなう装置において、移動する被写体が撮像された連続する複数の画像からストロボ画像を生成するストロボ画像生成方法であって、
前記装置が、
前記複数の画像から、移動する被写体部分を示す複数の画像を抽出する被写体抽出ステップと、
前記複数の画像から、背景画像を生成する背景画像生成ステップと、
前記複数の画像における所定の画像間の移動量を検出する移動量検出ステップと、
前記移動量検出ステップで検出された移動量に応じた処理量で、前記被写体抽出ステップで抽出された画像に対する平滑化処理をおこなう画像平滑化ステップと、
前記背景画像生成ステップで生成された背景画像と、前記被写体抽出ステップで抽出された複数の被写体部分を示す画像とを合成してストロボ画像を生成するストロボ画像生成ステップと、
を実行することを特徴とするストロボ画像生成方法。
【請求項１１】
コンピュータに、
移動する被写体が撮像された連続する複数の画像を取得する機能と、
前記取得した複数の画像から、移動する被写体部分を示す複数の画像を抽出する機能と、
前記複数の画像から、背景画像を生成する機能と、
前記複数の画像における所定の画像間の移動量を検出する機能と、
前記検出された移動量に応じた処理量で、前記抽出された画像に対する平滑化処理をおこなう機能と、
前記生成された背景画像と、前記抽出された複数の被写体部分を示す画像とを合成してストロボ画像を生成する機能と、
を実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置、ストロボ画像生成方法、および、プログラムに関し、特に、撮像装置でのストロボ画像生成に好適な撮像装置、ストロボ画像生成方法、および、プログラムに関する。
【背景技術】
【０００２】
移動する被写体を固定したカメラで撮影し、移動経過の様子を１枚の画像（写真）内に表した、図２２に示すようなストロボ画像（マルチストロボ画像）が知られている。フィルムカメラ時代においては、長時間露光中に移動被写体へ複数回のストロボ発光をおこなうことでこのようなストロボ画像を生成していたが、デジタルカメラが普及した今日においては、カメラ内のコンピュータによる画像処理でストロボ画像の生成が可能となっている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３７９３２５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ストロボ画像の生成においては、デジタルカメラの画角や方向を一定にし、連写によって移動被写体を撮像することになるが、手持ちで撮影した場合には、デジタルカメラが微動してしまうので、連写されたフレーム画像間で画角変動が生じてしまうことがある。ここで、被写体（移動被写体）の背景の奥行きが大きい場合、フレーム画像間の移動量が大きいと、オクルージョンの影響により、本来フレーム間では移動がないはずの背景領域に差異が生じてしまう。この差異が大きいと、背景部分が移動被写体と誤認識されてしまうことがある。この結果、生成されたストロボ画像上で背景部分が重複（二重合成）してしまう問題がある。
【０００５】
本発明は、上記実状に鑑みてなされたものであり、より良好なストロボ画像を生成することのできる撮像装置、ストロボ画像生成方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の第１の観点にかかる撮像装置は、
撮像により連続する複数の撮像画像を生成する撮像手段と、
前記撮像手段が生成した各撮像画像から、移動する被写体部分を示す複数の画像を抽出する被写体抽出手段と、
前記撮像手段が生成した複数の撮像画像から、背景画像を生成する背景画像生成手段と、
前記背景画像生成手段が生成した背景画像と、前記被写体抽出手段が抽出した複数の被写体部分を示す画像とを合成してストロボ画像を生成するストロボ画像生成手段と、
を備える撮像装置において、
前記複数の撮像画像における所定の画像間の移動量を検出する移動量検出手段と、
前記移動量検出手段が検出した移動量に応じた処理量で、前記画像に対する平滑化処理をおこなう画像平滑化手段と、をさらに備える、
ことを特徴とする。
【０００７】
上記撮像装置において、
前記画像平滑化手段は、
前記移動量検出手段が検出する移動量が大きいほど、前記平滑化処理にかかる処理量を多くすることが望ましい。
【０００８】
上記撮像装置において、
前記画像平滑化手段は、
前記移動量検出手段が検出した移動量と閾値との比較に基づいて、前記平滑化処理にかかる処理量を異ならせることが望ましい。
【０００９】
あるいは、
前記画像平滑化手段は、
前記移動量検出手段が検出した移動量に係数を乗じた数値に基づいて、前記平滑化処理にかかる処理量を異ならせてもよい。
【００１０】
この場合、
前記画像平滑化手段による前記平滑化処理にかかる処理量は、該平滑化処理の実行回数とすることができる。
【００１１】
上記撮像装置において、
前記画像平滑化手段は、モルフォロジー演算により前記平滑化処理をおこなうことが望ましく、この場合、
前記移動量検出手段が検出した移動量に基づいて、前記モルフォロジー演算で用いる構成成分を異ならせることで、前記平滑化処理にかかる処理量を異ならせてもよい。
【００１２】
この場合、
前記画像平滑化手段は、前記移動量に基づいて、前記構成成分のサイズを異ならせることが望ましい。
【００１３】
上記撮像装置において、
前記移動量検出手段は、前記撮像画像の位置合わせをおこなう際に前記移動量を求めることが望ましく、この場合、
前記移動量検出手段が検出した前記移動量が所定の閾値以上となる場合、当該移動量が検出された画像を前記ストロボ画像生成手段による合成対象から除外する画像選択手段をさらに備えていることが望ましい。
【００１４】
上記撮像装置は、
前記撮像装置に生じた動きを検出するセンサ手段をさらに備えていてもよく、この場合、
前記移動量検出手段は、前記センサ手段の検出結果に基づいて、フレーム間の移動量を検出してもよい。
【００１５】
上記目的を達成するため、本発明の第２の観点にかかるストロボ画像生成方法は、
画像処理をおこなう装置において、移動する被写体が撮像された連続する複数の画像からストロボ画像を生成するストロボ画像生成方法であって、
前記装置が、
前記複数の画像から、移動する被写体部分を示す複数の画像を抽出する被写体抽出ステップと、
前記複数の画像から、背景画像を生成する背景画像生成ステップと、
前記複数の画像における所定の画像間の移動量を検出する移動量検出ステップと、
前記移動量検出ステップで検出された移動量に応じた処理量で、前記被写体抽出ステップで抽出された画像に対する平滑化処理をおこなう画像平滑化ステップと、
前記背景画像生成ステップで生成された背景画像と、前記被写体抽出ステップで抽出された複数の被写体部分を示す画像とを合成してストロボ画像を生成するストロボ画像生成ステップと、
を実行することを特徴とする。
【００１６】
上記目的を達成するため、本発明の第３の観点にかかるプログラムは、
コンピュータに、
移動する被写体が撮像された連続する複数の画像を取得する機能と、
前記取得した複数の画像から、移動する被写体部分を示す複数の画像を抽出する機能と、
前記複数の画像から、背景画像を生成する機能と、
前記複数の画像における所定の画像間の移動量を検出する機能と、
前記検出された移動量に応じた処理量で、前記抽出された画像に対する平滑化処理をおこなう機能と、
前記生成された背景画像と、前記抽出された複数の被写体部分を示す画像とを合成してストロボ画像を生成する機能と、
を実現させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、より良好なストロボ画像を生成することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態にかかるデジタルカメラの構成を示すブロック図である。
【図２】図１に示す制御部によって実現される機能を示す機能ブロック図である。
【図３】本発明の実施形態にかかる「ストロボ画像生成処理」を説明するためのフローチャートである。
【図４】図３に示す「ストロボ画像生成処理」で表示される設定画面の表示例を説明するための図であり、（ａ）は、カメラの向きを指定するための設定画面の表示例を示し、（ｂ）は、被写体の移動方向を指定するための設定画面の表示例を示す。
【図５】本発明の実施形態にかかる撮像画像を説明するための図であり、（ａ）は、ストロボ画像生成に必要となる連写撮影の場面を例示し、（ｂ）は、（ａ）に示した連写撮影で得られた撮像画像（連写画像）の例を示す。
【図６】図３に示す「ストロボ画像生成処理」で実行される「位置合わせ処理」を説明するためのフローチャートである。
【図７】図６に示す「位置合わせ処理」で作成される「フレーム情報テーブル」に記録される情報の例を示す図である。
【図８】図３に示す「ストロボ画像生成処理」で実行される「１次元データ生成処理」を説明するためのフローチャートである。
【図９】図８に示す「１次元データ生成処理」を説明するための図であり、（ａ）は、撮像画像における座標と被写体移動方向の関係を示し、（ｂ）および（ｃ）は、撮像画像の投影と１次元データの例を示し、（ｄ）は、（ｂ）および（ｃ）に示した１次元データを重ねて示した図である。
【図１０】図３に示す「ストロボ画像生成処理」で実行される「被写体領域検出処理」を説明するためのフローチャートである。
【図１１】図３に示す「ストロボ画像生成処理」で実行される「被写体領域検出処理」を説明するためのフローチャートである。
【図１２】図３に示す「ストロボ画像生成処理」で実行される「被写体領域検出処理」を説明するためのフローチャートである。
【図１３】図１０〜図１２に示す「被写体領域検出処理」を説明するための図であり、（ａ）は、被写体の移動方向がＸ方向である場合に検出される被写体領域の例を示し、（ｂ）は、被写体の移動方向がＹ方向である場合に検出される被写体領域の例を示す。
【図１４】図３に示す「ストロボ画像生成処理」で実行される「有効フレーム選択処理」を説明するためのフローチャートである。
【図１５】図３に示す「ストロボ画像生成処理」で実行される「有効フレーム選択処理」を説明するためのフローチャートである。
【図１６】選択された有効フレームの例を示す図である。
【図１７】図３に示す「ストロボ画像生成処理」で実行される「背景画像生成処理」を説明するためのフローチャートである。
【図１８】図３に示す「ストロボ画像生成処理」で実行される「被写体画像抽出処理」を説明するためのフローチャートである。
【図１９】図３に示す「ストロボ画像生成処理」で実行される「画像平滑化処理（１）」を説明するためのフローチャートである。
【図２０】オクルージョンの影響を説明するための図であり、（ａ）は、オクルージョンの影響を受けやすいシーンの例を示し、（ｂ）は背景部分に変位が生じたフレーム画像の例を示し、（ｃ）は、本来の背景画像の例を示し、（ｄ）は、位置合わせのために変形させた背景画像の例を示し、（ｅ）は、本来の背景画像と変形させた背景画像で生じる差異の例を示し、（ｆ）は、オクルージョンの影響を受けたストロボ画像の例を示し、（ｇ）は、被写体画像として誤認識された不要部分の例を示す。
【図２１】図３に示す「ストロボ画像生成処理」で実行される「画像合成処理」を説明するためのフローチャートである。
【図２２】生成されたストロボ画像の例を示す図である。
【図２３】本発明の実施形態２にかかる「画像平滑化処理（２）」を説明するためのフローチャートである。
【図２４】本発明の実施形態３にかかる「画像平滑化処理（３）」を説明するためのフローチャートである。
【発明を実施するための形態】
【００１９】
（実施形態１）
本発明にかかる実施形態を、図面を参照して以下に説明する。本実施形態では、本発明をデジタルスチルカメラ（以下、デジタルカメラ）によって実現した場合を例示する。本実施形態にかかるデジタルカメラ１は、一般的なデジタルスチルカメラが有する機能を備えているものとし、この中には、少なくとも、いわゆる連写機能が含まれているものとする。ここでの連写機能とは、１回のシャッタ操作で連続した複数の撮像画像を得ることのできる機能とする。
【００２０】
また、本実施形態にかかるデジタルカメラ１は、本発明の適用により、連写機能によって得られた撮像画像から、ストロボ画像（マルチストロボ画像）を生成するストロボ画像生成機能を有する。ここで「ストロボ画像」とは、動く被写体の移動経過が１つの画像内に表された画像をいう。本実施形態にかかるデジタルカメラ１でストロボ画像を生成するためには、動く（移動する）被写体を連写機能で撮像するが、この場合、デジタルカメラ１の方向や画角を一定にして撮像する。
【００２１】
図１は、本発明の実施形態にかかるデジタルカメラ１の構成を示すブロック図である。本実施形態にかかるデジタルカメラ１の概略的構成は、図示するように、撮像部１００、データ処理部２００、インタフェース（Ｉ／Ｆ）部３００、センサ部４００、などである。
【００２２】
撮像部１００は、デジタルカメラ１の撮像動作をおこなう部分であり、図示するように、光学装置１１０やイメージセンサ部１２０などから構成されている。
【００２３】
光学装置１１０は、例えば、レンズ、絞り機構、シャッタ機構、などを含み、撮像にかかる光学的動作をおこなう。すなわち、光学装置１１０の動作により、入射光が集光されるとともに、焦点距離、絞り、シャッタスピードなどといった、画角やピント、露出などにかかる光学的要素の調整がなされる。なお、光学装置１１０に含まれるシャッタ機構はいわゆるメカニカルシャッタであり、イメージセンサの動作のみでシャッタ動作をおこなう場合には、光学装置１１０にシャッタ機構が含まれていなくてもよい。また、光学装置１１０は、後述する制御部２１０による制御によって動作する。
【００２４】
イメージセンサ部１２０は、光学装置１１０によって集光された入射光に応じた電気信号を生成する、例えば、ＣＣＤ（Charge Coupled Device：電荷結合素子）やＣＭＯＳ（Complementally Metal Oxide Semiconductor：相補型金属酸化物半導体）などのイメージセンサから構成される。イメージセンサ部１２０は、光電変換をおこなうことで、受光に応じた電気信号を発生してデータ処理部２００に出力する。
【００２５】
データ処理部２００は、撮像部１００による撮像動作によって生成された電気信号を処理し、撮像画像を示すデジタルデータを生成するとともに、撮像画像に対する画像処理などをおこなう。図１に示すように、データ処理部２００は、制御部２１０、画像処理部２２０、画像メモリ２３０、画像出力部２４０、記憶部２５０、外部記憶部２６０、などから構成される。
【００２６】
制御部２１０は、例えば、ＣＰＵ（Central Processing Unit：中央演算処理装置）などのプロセッサや、ＲＡＭ（Random Access Memory）などの主記憶装置（メモリ）、などから構成され、後述する記憶部２５０などに格納されているプログラムを実行することで、デジタルカメラ１の各部を制御する。また、本実施形態では、所定のプログラムを実行することで、後述する各処理にかかる機能が制御部２１０によって実現される。
【００２７】
画像処理部２２０は、例えば、ＡＤＣ（Analog-Digital Converter：アナログ−デジタル変換器）、バッファメモリ、画像処理用のプロセッサ（いわゆる、画像処理エンジン）などから構成され、撮像部１００によって生成された電気信号に基づいて、撮像画像を示すデジタルデータを生成する。
【００２８】
すなわち、イメージセンサ部１２０から出力されたアナログ電気信号をＡＤＣがデジタル信号に変換して順次バッファメモリに格納すると、バッファされたデジタルデータに対し、画像処理エンジンがいわゆる現像処理などをおこなうことで、画質の調整やデータ圧縮などをおこなう。
【００２９】
画像メモリ２３０は、例えば、ＲＡＭやフラッシュメモリなどの記憶装置から構成され、画像処理部２２０によって生成された撮像画像データや、制御部２１０によって処理される画像データなどを一時的に格納する。
【００３０】
画像出力部２４０は、例えば、ＲＧＢ信号の生成回路などから構成され、画像メモリ２３０に展開された画像データをＲＧＢ信号などに変換して表示画面（後述する表示部３１０など）に出力する。
【００３１】
記憶部２５０は、例えば、ＲＯＭ（Read Only Memory）やフラッシュメモリなどの記憶装置から構成され、デジタルカメラ１の動作に必要なプログラムやデータなどを格納する。本実施形態では、制御部２１０などが実行する動作プログラムや処理に必要となるパラメータや演算式などが記憶部２５０に格納されているものとする。
【００３２】
外部記憶部２６０は、例えば、メモリカードなどといった、デジタルカメラ１に着脱可能な記憶装置から構成され、デジタルカメラ１で撮像した画像データなどを格納する。
【００３３】
インタフェース部３００は、デジタルカメラ１とその使用者あるいは外部装置とのインタフェースにかかる構成であり、図１に示すように、表示部３１０、外部インタフェース（Ｉ／Ｆ）部３２０、操作部３３０、などから構成される。
【００３４】
表示部３１０は、例えば、液晶表示装置などから構成され、デジタルカメラ１を操作するために必要な種々の画面や、撮影時のライブビュー画像、撮像画像、などを表示出力する。本実施形態では、画像出力部２４０からの画像信号（ＲＧＢ信号）などに基づいて撮像画像等の表示出力がおこなわれる。
【００３５】
外部インタフェース部３２０は、例えば、ＵＳＢ（Universal Serial Bus）コネクタやビデオ出力端子などから構成され、外部のコンピュータ装置への画像データの出力や、外部のモニタ装置への撮像画像の表示出力などをおこなう。
【００３６】
操作部３３０は、デジタルカメラ１の外面上に構成されている各種ボタンなどによって構成され、デジタルカメラ１の使用者による操作に応じた入力信号を生成して制御部２１０に入力する。操作部３３０を構成するボタンとして、例えば、シャッタ動作を指示するためのシャッタボタンや、デジタルカメラ１のもつ動作モードを指定するためのモードボタン、各種設定をおこなうための十字キーや機能ボタン、などが含まれているものとする。
【００３７】
センサ部４００は、デジタルカメラ１に手ブレ補正機能が備えられている場合に構成されるものであり、デジタルカメラ１に生じた動きを検出する。センサ部４００は、例えば、ジャイロセンサなどから構成され、例えば、シャッタボタンの押下などによって生じた撮像時のデジタルカメラ１の動きを検出し、検出値を制御部２１０に入力する。
【００３８】
ここで、本実施形態では、記憶部２５０に格納されている動作プログラムを制御部２１０が実行することで、後述する各処理が実現されるが、この場合に制御部２１０によって実現される機能を、図２を参照して説明する。
【００３９】
図２は、制御部２１０によって実現される機能を示した機能ブロック図である。ここでは、連写機能によって撮像された画像からストロボ画像を生成する機能を実現するために必要な機能構成を示す。この場合、図示するように、制御部２１０は、動作モード処理部２１１、撮像制御部２１２、撮像画像処理部２１３、被写体検出部２１４、画像選択部２１５、背景画像生成部２１６、ストロボ画像生成部２１７、などとして機能する。
【００４０】
動作モード処理部２１１は、表示部３１０との協働により、デジタルカメラ１が有する各種動作モードをデジタルカメラ１のユーザに指定させるために必要な画面表示や指定された動作モード毎の設定画面表示などをおこなう他、操作部３３０との協働により、ユーザが指定した動作モードを認識し、当該動作モードの実行に必要なプログラムや演算式などを記憶部２５０から読み出し、制御部２１０の主記憶装置（メモリ）にロードする。
【００４１】
本実施形態では、ストロボ画像生成機能にかかる動作モード（ストロボ画像生成モード）がユーザによって指定されるものとし、以下に説明する制御部２１０の各機能構成は、ストロボ画像生成モードの指定に応じて動作モード処理部２１１がロードしたプログラムを実行することで実現される機能構成である。
【００４２】
撮像制御部２１２は、撮像部１００を制御することでデジタルカメラ１での撮像動作を実行する。本実施形態にかかるストロボ画像生成機能は、デジタルカメラ１の連写機能によって得られた撮像画像からストロボ画像を生成するので、本実施形態にかかる撮像制御部２１２は、撮像部１００が連写動作をおこなうよう制御する。この場合、操作部３３０のシャッタボタンが押下されている間、撮像部１００による撮像動作が連続的におこなわれるものとする。撮像制御部２１２の制御による連写動作で得られた撮像画像（連写画像）は、画像処理部２２０による処理を経て、順次画像メモリ２３０に格納される。この場合、画像メモリ２３０に格納される連写画像のそれぞれには、例えば、撮像順にフレーム番号が付与される。
【００４３】
撮像画像処理部２１３は、画像メモリ２３０に格納された連写画像を、ストロボ画像の生成にかかる処理に応じた形式に変換・加工したり、撮像画像を用いた種々の処理をおこなったりする。本実施形態では、連写画像の位置合わせをおこなう他、被写体領域の抽出などを高速におこなうために、撮像画像の１次元データへの変換などをおこなう。撮像画像処理部２１３によって変換されたデータは、例えば、制御部２１０の主記憶装置（メモリ）に格納される。ここで「１次元データ」とは、画像データを構成している画素値など情報を１方向成分で表したものである。本実施形態では、画像データを所定の１方向に投影することで得られる投影データを１次元データとする。この場合に画像データを投影する１方向は、対象としている被写体の移動方向に基づいて決定される（詳細後述）。
【００４４】
被写体検出部２１４は、各撮像画像間の１次元データを比較することで、各撮像画像において被写体を示す部分（領域）を検出する。この場合、被写体検出部２１４は、検出した被写体部分の位置情報（座標情報）を検出する。また、画像選択部２１５が選択した画像についての被写体部分を、画像メモリ２３０に格納されている撮像画像（連写画像）から抽出する。
【００４５】
画像選択部２１５は、被写体検出部２１４が検出した被写体部分の位置情報に基づいて、被写体部分が重ならない撮像画像を選択することで、ストロボ画像の生成に好適な画像（フレーム）を連写画像の中から選択する。
【００４６】
背景画像生成部２１６は、画像選択部２１５が選択した撮像画像から背景画像を生成する。ここでは、選択された撮像画像すべてについて、同一座標における画素値を取得し、画素値の中央値などを当該座標の画素値とすることで、被写体を除外した背景画像を生成する。
【００４７】
ストロボ画像生成部２１７は、背景画像生成部２１６が生成した背景画像に、選択された撮像画像から被写体検出部２１４が抽出した被写体部分の画像を合成することで、１つの背景画像内に、移動する被写体が重ならずに複数箇所で現れるストロボ画像を生成する。
【００４８】
以上が制御部２１０によって実現される機能である。なお、本実施形態では、制御部２１０がプログラムを実行することによる論理的処理で上述した各機能が実現されるものとするが、これらの機能を、例えば、ＡＳＩＣ（Application Specific Integrated Circuit：特定用途向け集積回路）などのハードウェアによって構成してもよい。この場合、図２に示した機能のうち、画像処理にかかる機能については、画像処理部２２０によって実現されてもよい。
【００４９】
以上説明したデジタルカメラ１の構成は、本発明を実現するために必要な構成であり、デジタルカメラとしての基本機能や種々の付加機能に用いられる構成は必要に応じて備えられているものとする。
【００５０】
このような構成のデジタルカメラ１による動作を以下に説明する。ここでは、ストロボ画像生成モードが指定された場合にデジタルカメラ１が実行する「ストロボ画像生成処理」を、図３に示すフローチャートを参照して説明する。このストロボ画像生成処理は、デジタルカメラ１のユーザが操作部３３０を操作することで、ストロボ画像生成モードを指定したことを契機に開始される。この場合、動作モード処理部２１１が、ストロボ画像生成モードにかかるプログラムなどを記憶部２５０からロードすることで、図２に示した各機能構成により以下の処理が実行される。
【００５１】
処理が開始されると、動作モード処理部２１１が、ストロボ画像生成モードを実施する上で必要となる設定のための設定画面を表示部３１０に表示する（ステップＳ１０１）。ここで表示される設定画面の例を図４に示す。
【００５２】
ここではまず、図４（ａ）に示すような、カメラの向き（縦横）を設定するための設定画面が表示される。この設定画面は、ストロボ画像とする連写画像を撮影するときのデジタルカメラ１が、横位置であるか縦位置であるかをユーザに選択させるためのものである。デジタルカメラ１のユーザは、操作部３３０を操作し、連写撮影時のカメラの向きを指定する。なお、デジタルカメラ１が、例えば、加速度センサなどによる縦位置検出機能などを備えている場合は、その検出結果を用いることができるので、設定画面によってユーザに指定させる必要はない。
【００５３】
指定されたカメラの向きが指定されると、動作モード処理部２１１は、図４（ｂ）に示すような、被写体の移動方向を設定するための設定画面を表示部３１０に表示する。つまり、ストロボ画像生成モードにおいては、移動する被写体を撮影することになるので、その移動方向をここで設定する。図示するように、被写体の移動方向を設定する設定画面には、例えば、４方向を示す矢印が表示されるので、ユーザは、操作部３３０の十字キーなどを操作することで、撮影する被写体の移動方向を設定する。
【００５４】
動作モード処理部２１１は、このようにして設定された、カメラの向きや被写体の移動方向を、例えば、制御部２１０の主記憶装置（メモリ）などに記録することで、ストロボ画像生成モードにかかる設定をおこなう（ステップＳ１０２）。
【００５５】
ここで、ストロボ画像生成モードで撮影する場合における、デジタルカメラ１と被写体との関係を図５（ａ）に例示する。この場合、例えば、左から右に移動する被写体ＭＶをデジタルカメラ１で撮影することを想定する。この場合において、デジタルカメラ１の方向や画角は一定にして撮影する。なお、図５（ａ）に例示した撮影の場合、ステップＳ１０２で設定される内容は「カメラの向き：横位置」、「被写体移動方向：→（右）」ということになる。つまり、横方向に被写体が移動することが設定される。
【００５６】
上述したように、ストロボ画像生成モードにおいては連写で撮影するので、デジタルカメラ１のユーザは、上記の設定をおこなった後、操作部３３０のシャッタボタンを操作して撮影を開始することになる。よって、動作モード処理部２１１は、ストロボ画像生成モードが指定された際に、撮像制御部２１２に対し、連写撮像をおこなうよう指示する。
【００５７】
そして、デジタルカメラ１のユーザ（撮影者）がシャッタボタン（操作部３３０）を操作（押下）すると、操作に応じた入力信号が操作部３３０から制御部２１０に入力される。これにより、撮像制御部２１２は、シャッタボタンが操作されたと判別し（ステップＳ１０３：Ｙｅｓ）、撮像部１００を制御して連写撮像をおこなう（ステップＳ１０４）。この連写撮像動作は、ユーザがシャッタボタンを押下し続けている間おこなわれる（ステップＳ１０５：Ｎｏ）。
【００５８】
シャッタ操作を終了すると（ステップＳ１０５：Ｙｅｓ）、撮像制御部２１２が撮像動作の終了を撮像部１００に指示する。これにより、連写撮像動作が終了し、連写撮像によって得られた画像（連写画像）が順次、画像処理部２２０での処理を経て画像メモリ２３０に格納される（ステップＳ１０６）。
【００５９】
図５（ａ）に例示した場面を連写撮像した場合に得られる連写画像の例を図５（ｂ）に示す。図示するように、被写体ＭＶが移動する様子が、複数の撮像画像によって示される。上述したように、デジタルカメラ１の方向や画角を一定にして撮影しているので、各連写画像における被写体ＭＶ以外の部分（すなわち、背景）には大きな変化はない。
【００６０】
ここで、１回の連写撮像動作によって得られた連写画像のそれぞれには、撮像した時系列順に１〜ｐのフレーム番号が付される。図５（ｂ）の例では、フレーム１〜フレーム１２（すなわち、ｐ＝１２）までの画像が得られたことになる。
【００６１】
このようにして連写撮像がおこなわれると、得られた連写画像を用いてストロボ画像を生成するための処理が順次実行される。この場合、撮像制御部２１２が、連写撮像の終了を撮像画像処理部２１３に通知することで、連写画像の位置合わせをおこなうための「位置合わせ処理」が撮像画像処理部２１３によって実行される（ステップＳ２００）。この「位置合わせ処理」を、図６に示すフローチャートを参照して説明する。
【００６２】
処理が開始されると、撮像画像処理部２１３は、画像メモリ２３０に格納されている撮像画像フレーム（１〜ｐ）の中から、連写された一連の撮像画像間の移動量を検出する際の基準となるフレーム（以下、「基準フレームＮ」とする）を設定する（ステップＳ２０１）。ここでは、例えば、１番目のフレームを基準フレームＮとする。
【００６３】
次に、撮像画像処理部２１３は、撮像画像フレームを指定するポインタｎに、ステップＳ２０１で設定した基準フレームＮの次のフレーム（すなわち、Ｎ＋１）を指定する（ステップＳ２０２）。
【００６４】
撮像画像処理部２１３は、基準フレームＮとｎ番目のフレーム（以下、「フレームｎ」とする）との間の移動量ＶＦを検出する（ステップＳ２０３）。この場合、撮像画像処理部２１３は、基準フレームＮ上で設定した特徴点と、フレームｎ上での当該特徴点との位置のズレを示すベクトルを求めることで、フレーム間の移動量を求める。
【００６５】
ここでのフレーム間の移動量は、撮像画像全体の揺れなどを示すものである。ストロボ画像を生成するための撮影は、上述したようにデジタルカメラ１の方向や画角を一定にしておこなう。よって、三脚などでデジタルカメラ１を固定して撮影することが望ましいが、状況によっては手持ちで撮影する場合もある。手持ちの場合、連写撮像期間中にデジタルカメラ１が動いてしまうことがある。このようなときに、フレーム間の位置ズレが生じてしまう。
【００６６】
この場合、撮像画像処理部２１３は、ステップＳ２０３で検出した移動量ＶＦが、第１の閾値th1より小さいか否かを判別する（ステップＳ２０４）。ここで、ストロボ画像は、同一の背景画像上に、動く被写体を示した複数の被写体画像を合成することで生成されるので、背景部分については、撮像された複数のフレームにわたってほぼ一定となっていることが望ましい。しかし、上述したようなデジタルカメラ１の動きによってフレーム間の位置ズレが生じた場合、フレーム間で背景部分に大きな差異ができてしまう。この結果、ストロボ画像を生成した際に、背景部分が重複したように現れる場合がある。このようなフレームを峻別するため、第１の閾値th1には、背景部分が一定であるとみなすことのできる移動量ＶＦの許容範囲の上限値が設定される。
【００６７】
基準フレームＮとフレームｎとの間の移動量ＶＦが第１の閾値th1未満である場合（ステップＳ２０４：Ｙｅｓ）、基準フレームＮに対しての大きな位置ズレがフレームｎでは生じていないので、撮像画像処理部２１３は、フレームｎを、ストロボ画像の生成に用いることのできるフレーム（有効フレーム）として指定する（ステップＳ２０７）。
【００６８】
なお、本実施形態では、後段の「有効フレーム選択処理」において、被写体位置に基づいた有効フレームの選択をおこなうので、本処理で指定される「有効フレーム」を「フレームレベルの有効フレーム」とし、後述する「有効フレーム選択処理」で指定される「有効フレーム」を「被写体レベルの有効フレーム」とする。
【００６９】
一方、フレーム間の移動量ＶＦが第１の閾値th1以上である場合（ステップＳ２０４：Ｎｏ）、撮像画像処理部２１３は、当該移動量ＶＦと第２の閾値th2（th1＜th2）とを比較する（ステップＳ２０５）。ここで、第１の閾値th1以上となる移動量ＶＦが検出された場合であっても、フレームｎの画像を変形させる画像処理をおこなうことで、位置ズレを許容範囲内に補正することができる。よって、第２の閾値th2には、画像変形によって補正することのできる移動量ＶＦの許容範囲の上限値が設定される。
【００７０】
検出された移動量ＶＦが第２の閾値th2未満であれば（ステップＳ２０５：Ｙｅｓ）、撮像画像処理部２１３は、フレームｎの画像を変形させる画像処理をおこなうことで位置合わせをおこなう（ステップＳ２０６）。
【００７１】
このような画像変形によって位置合わせすることのできたフレームｎについては、基準フレームＮとの差異が許容範囲内となっているので、撮像画像処理部２１３は、フレームｎを、ストロボ画像の生成に用いることのできる有効フレーム（フレームレベル）として指定する（ステップＳ２０７）。
【００７２】
なお、フレーム間の移動量ＶＦが、第２の閾値th2以上となってしまう場合（ステップＳ２０５：Ｎｏ）は、画像変形をおこなっても基準フレームＮとの差異を許容範囲内にすることができないので、撮像画像処理部２１３は、ストロボ画像を生成する際に合成する対象から当該フレームを除外するため、このフレームｎを無効フレームとして指定する（ステップＳ２０８）。
【００７３】
以上のような処理をおこなった撮像画像処理部２１３は、撮像されたフレーム画像についての情報を記録するために、図７に示すような「フレーム情報テーブル」を、例えば、主記憶装置（メモリ）内に展開する。この「フレーム情報テーブル」には、図示するように、撮像時のフレーム番号（１〜ｐ）をキーとしたレコードが作成されており、各レコードには、当該フレームについての情報が記録される。
【００７４】
上述した各処理をおこなった撮像画像処理部２１３は、各フレームについて、フレームレベルの有効フレームであるか否かを示す情報と、基準フレームＮとの差異を示す移動量ＶＦと各閾値との比較を示す情報を「フレーム情報テーブル」に記録する。例えば、ステップＳ２０７で「有効フレーム」と指定したフレームについては、「有効フレーム（フレームレベル）」の欄に「ＯＫ」と記録し、ステップＳ２０８で「無効フレーム」として指定したフレームについては「ＮＧ」と記録する。
【００７５】
フレームｎについて以上のような処理をおこなうと、撮像画像処理部２１３は、ポインタｎを＋１することで次のフレームを指定し（ステップＳ２０９）、ｎの値が、撮像画像の最終フレームを示すｐの値以下であれば（ステップＳ２１０：Ｎｏ）、ステップＳ２０３以降の処理をおこなうことで、各フレームについて、フレームレベルで有効フレームであるか無効フレームであるかを順次指定する。
【００７６】
そして、撮像画像のすべてのフレームに対して上記処理がおこなわれると（ステップＳ２１０：Ｙｅｓ）、本処理を終了し、「ストロボ画像生成処理」（図３）のフローに戻る。
【００７７】
なお、デジタルカメラ１が手ブレ補正機能を有している場合、デジタルカメラ１自体に生じた動きを検出するためのセンサ部４００（ジャイロセンサなど）を備えていることになる。このような場合には、連写撮像時に検出されたセンサ部４００の検出値をフレーム毎に記録しておき、この検出値に基づいてフレーム間の移動量ＶＦを求めることができる。
【００７８】
「位置合わせ処理」が終了すると、撮像画像処理部２１３は、連写画像を１次元データ化するための「１次元データ生成処理」を実行する（ステップＳ３００）。この１次元データ生成処理を、図８に示すフローチャートを参照して説明する。なお、理解を容易にするため、以下の説明においては、カメラの向きとして「横位置」が設定されているものとする。
【００７９】
処理が開始されると、撮像画像処理部２１３は、ポインタｎに、フレーム番号の初期値「１」を設定し（ステップＳ３０１）、画像メモリ２３０に格納されている連写画像フレーム番号がｎの画像（フレームｎ）を処理対象として選択する（ステップＳ３０２）。
【００８０】
処理対象画像を選択すると、撮像画像処理部２１３は、当該画像における調査座標の初期化をおこなう（ステップＳ３０３）。ここでは、ｘ座標とｙ座標のそれぞれを「０」とした座標を初期調査座標とする。ここで、画像上の座標について、図９（ａ）を参照して説明する。本実施形態では、カメラの向きが「横位置」としているので、このようなデジタルカメラ１で得られる撮像画像は、図９（ａ）に示すような横長の画像となる。この場合、画像の左右方向を「Ｘ方向」、上下方向を「Ｙ方向」とする。ここで、このような画像の左上端部を座標原点（０，０）とする。この場合、Ｘ方向の画素数をsizeXとすると、ｘ座標の最大値はsizeX-1となる。同様に、Ｙ方向の画素数をsizeYとすると、ｙ座標の最大値はsizeY-1となる。
【００８１】
次に撮像画像処理部２１３は、上述したストロボ画像生成処理（図３）のステップＳ１０２で設定された被写体移動方向が、図９（ａ）のように定義した撮像画像の座標系におけるＸ方向であるかＹ方向であるか判別する（ステップＳ３０４）。ここで、カメラの向きが横位置である場合、図４（ｂ）に示した設定画面で左右方向のいずれかが指定されていれば、被写体の移動方向はＸ方向（横方向）となる。一方、上下方向のいずれかが指定されていたのであれば、被写体の移動方向はＹ方向（縦方向）ということになる。
【００８２】
図５（ａ）に例示した場面では、横方向に移動している被写体ＭＶを撮影しているので、ここでは被写体の移動方向がＸ方向であると判別される（ステップＳ３０４：Ｙｅｓ）。被写体の移動方向がＸ方向である場合、撮像画像処理部２１３は、被写体の移動方向と直交する方向、すなわちＹ方向に画像を投影する処理をおこなう。
【００８３】
この場合、撮像画像処理部２１３は、処理対象画像のＸ方向の座標すべてにおいて、Ｙ方向の画素値を合算することでＹ方向に投影する（ステップＳ３０５、ステップＳ３０６、ステップＳ３０７：Ｙｅｓ）。ここでは、ステップＳ３０３で調査座標の初期化をおこなっているので、まず、ｘ座標０に対応するｙ座標の画素値を合算し、その結果を制御部２１０の主記憶装置（メモリ）に保持する。つぎに、ｘ座標の値を＋１し、次のｘ座標について同様の演算をおこなう。このような処理を、ｘ座標が当該画像のＸ方向のサイズ、すなわちＸ方向の画素数分繰り返しおこなう。
【００８４】
一方、被写体の移動方向がＹ方向（上下方向）である場合（ステップＳ３０４：Ｎｏ）は、同様の方法によって、移動方向と直交する方向、すなわちＸ方向に画像を投影することとなる（ステップＳ３０８、ステップＳ３０９、ステップＳ３１０：Ｙｅｓ）。
【００８５】
処理画像における投影が終了すると（ステップＳ３０７：Ｎｏ、もしくは、ステップＳ３１０：Ｎｏ）、撮像画像処理部２１３は、ポインタｎを＋１し（ステップＳ３１１）、新たなポインタｎに対応するフレーム番号が、最終フレームのフレーム番号ｐ以下であれば（ステップＳ３１２：Ｎｏ）、次の連写画像を処理対象として選択する（ステップＳ３０２）。
【００８６】
一方、すべての連写画像についての投影が終了した場合（ステップＳ３１２：Ｙｅｓ）は、ストロボ画像生成処理（図３）のフローに戻る。
【００８７】
このような、１次元データ生成処理による投影により、連写画像のそれぞれが、例えば、図９（ｂ）や図９（ｃ）に示すような１次元データに変換されることになる。このような１次元データ生成は、例えば、数１によって表すことができる。
【００８８】
【数１】
2010166545.tif 000003
【００８９】
このようにして、連写画像のそれぞれについての１次元データ（投影データ）を生成すると、撮像画像処理部２１３は、生成した１次元データを、元となった撮像画像のフレーム番号と対応づけて画像メモリ２３０に順次格納するとともに、すべての連写画像についての１次元データが生成された旨を被写体検出部２１４に通知する。被写体検出部２１４は、撮像画像処理部２１３からの通知に応じて、変換された１次元データを用いて被写体部分を検出するための「被写体領域検出処理」を実行する（ステップＳ４００）。
【００９０】
ここで、連写画像についての１次元データから被写体部分を検出する処理の概念を図９（ｂ）〜図９（ｄ）を参照して説明する。図９（ｂ）は、図５（ａ）に示した場面において、被写体ＭＶがない状態で撮像した場合の撮像画像の例（上段）と、当該撮像画像の１次元データの例（下段）を示し、図９（ｃ）は、被写体ＭＶがある状態の撮像画像の例（上段）と、当該撮像画像の１次元データの例（下段）を示したものである。
【００９１】
上述したように、本実施形態にかかるデジタルカメラ１でストロボ画像生成をおこなう場合、デジタルカメラ１の方向や画角を一定にして連写撮像をおこなう。よって、得られる複数の連写画像間では、被写体ＭＶ以外の背景部分に大きな変化はない。よって、各連写画像間の１次元データを比較すると、被写体ＭＶの範囲において変化が現れることになる。ここで、理解を容易にするため、被写体ＭＶが写っていない画像と被写体ＭＶが写っている画像の１次元データを、それぞれ図９（ｂ）および図９（ｃ）に示す。それぞれの１次元データを比較すると、図９（ｃ）で被写体ＭＶが写っている箇所のデータが図９（ｂ）とは異なっており、その他の部分では同じデータとなっている。
【００９２】
すなわち、両画像の１次元データを図９（ｄ）に示すように重ねると、一致しない箇所が存在する。このような１次元データが一致しない箇所が、被写体ＭＶが写っている範囲（被写体の移動方向がＸ方向であればＸ方向の範囲、移動方向がＹ方向であればＹ方向の範囲）となる。よって、時系列順に隣接する連写画像間の１次元データの差分をとれば、被写体範囲の推移が示されることとなる。
【００９３】
被写体検出部２１４は、このような原理に基づく処理をおこなうことで、連写画像における被写体部分の検出をおこなう。ここで実行される被写体領域検出処理（ステップＳ４００）を、図１０〜図１２に示すフローチャートを参照して説明する。
【００９４】
処理が開始されると、被写体検出部２１４はまず、ストロボ画像生成処理（図３）のステップＳ１０２における設定内容に基づき、被写体の移動方向がＸ方向であるかＹ方向であるか判別する（ステップＳ４０１）。以下、被写体の移動方向がＸ方向である場合（ステップＳ４０１：Ｙｅｓ）を中心に説明する。
【００９５】
この場合、被写体検出部２１４は、調査対象とするＸ方向の座標を初期化する。上述したように、撮像画像の座標範囲は(0,0)〜(sizeX-1,sizeY-1)なので、ｘ座標の初期値を「０」とする（ステップＳ４０２）。
【００９６】
次に被写体検出部２１４は、ポインタｎを１〜ｐとなるよう指定することで連写画像のフレームを順次指定し、各フレームについて「１次元データ生成処理」（図８）で生成された、座標ｘに対応する１次元データを画像メモリ２３０から取得して、例えば、制御部２１０の主記憶装置（メモリ）に格納する（ステップＳ４０３〜ステップＳ４０６：Ｎｏ）。
【００９７】
すべてのフレームの１次元データを取得すると（ステップＳ４０６：Ｙｅｓ）、被写体検出部２１４は、取得した１次元データをソートし（ステップＳ４０７）、その中央値を、座標ｘが背景画像を示している場合の画素値fb(x)とする（ステップＳ４０８）。
【００９８】
このような動作を、ｘ座標の各点でおこなう（ステップＳ４０９、ステップＳ４１０：Ｎｏ）。すべてのフレームにおけるすべてのｘ座標（０〜sizeX-1）についての背景画素値fb(x)が得られると（ステップＳ４１０：Ｙｅｓ）、ステップＳ４１１（図１１）に進む。
【００９９】
ここで被写体検出部２１４は、ポインタｎをフレーム初期値「１」にするとともに、ｘ座標を座標初期値「０」とする（ステップＳ４１１、ステップＳ４１２）。そして、被写体検出部２１４は、ｎ番目のフレームの当該ｘ座標における画素値fn(x)と、ステップＳ４０８で求めた当該座標ｘにおける背景画素値fb(x)の差分fd(x)（＝|fb(x)−fn(x)|）を算出する（ステップＳ４１３：Ｙｅｓ、ステップＳ４１４）。
【０１００】
被写体検出部２１４は、算出した差分fd(x)が所定の閾値DiffThより大きいか否かを判別することで、当該座標ｘが被写体を示している部分であるか否かを判別する（ステップＳ４１５）。つまり、背景画素値fb(x)は、座標ｘが背景画像を示しているときの画素値であるから、実際の画素値fn(x)が背景画像の画素値より大きく異なっていれば、フレームｎにおける座標ｘは、背景以外、すなわち被写体ＭＶを示していることになる。よって、このような判別をおこなえる閾値DiffThを設定し、差分fd(x)が閾値DiffThより大きければ、画素値fn(x)は被写体部分を示す画素値であると判別することができる。
【０１０１】
ここで、画素値fd(x)が閾値DiffTh以下である場合（ステップＳ４１５：Ｎｏ）、ｎ番目のフレームにおける座標ｘは被写体部分ではないので、ｘ座標を＋１し（ステップＳ４１６）、画像サイズ内の座標であれば（ステップＳ４１３：Ｙｅｓ）、次の座標ｘについて同様の判別をおこなう（ステップＳ４１４、ステップＳ４１５）。
【０１０２】
ここで、ステップＳ４１２での初期化において、ｘ座標を画像の左端である「０」としているので、調査座標の座標ｘが被写体部分の画素を示していると判別した場合（ステップＳ４１５：Ｙｅｓ）、被写体検出部２１４は、当該ｘ座標を、ｎ番目のフレームにおける被写体部分の左端に対応する座標L(n)とする（ステップＳ４１７）。
【０１０３】
つまり、撮像画像の左端となるｘ＝０の位置から、ｘ座標を＋１しながら判別をおこなっているので、ステップＳ４１２〜ステップＳ４１６の処理は、画像の左端から被写体部分の探索をおこなっていたことになる。ここで、ｘ座標についての被写体範囲には幅があるので、被写体の範囲の右端についても特定する必要がある。よって、被写体部分の左端を特定すると、被写体検出部２１４は、被写体部分の右端を探索する動作をおこなう。
【０１０４】
この場合、撮像画像の右端側から被写体部分の探索を開始する。したがって、被写体検出部２１４は、調査座標ｘを、撮像画像の右端を示すｘ座標であるsizeX-1とする（ステップＳ４１８）。ここでは、被写体部分の右端を探索するので、調査座標ｘは、ステップＳ４１７で被写体部分の左端とした座標L(n)よりも右側でなければならない。よって、被写体検出部２１４は、調査座標ｘがL(n)より大きい場合（ステップＳ４１９：Ｙｅｓ）、当該座標ｘについてのfd(x)を算出し（ステップＳ４２０）、算出したfd(x)が閾値DiffThより大きいか否かを判別する（ステップＳ４２１）。
【０１０５】
座標ｘにおけるfd(x)が閾値DiffTh以下で、被写体部分を示していないのであれば（ステップＳ４２１：Ｎｏ）、被写体検出部２１４は、調査座標ｘを−１することで左に１座標分ずらし（ステップＳ４２２）、当該座標ｘについて同様の判別をおこなう（ステップＳ４１９、ステップＳ４２０、ステップＳ４２１）。このようにして、撮像画像の右端側から探索し、調査座標ｘにおける画素が被写体部分を示していると判別した場合（ステップＳ４２１：Ｙｅｓ）、被写体検出部２１４は、当該座標ｘを、フレームｎにおける被写体部分の右端の座標R(n)とする（ステップＳ４２３）。
【０１０６】
なお、画像の左端から探索しても被写体部分が検出されない場合（ステップＳ４１３：Ｎｏ）や、右端側から設定したｘ座標が被写体左端L(n)より左側にある場合（ステップＳ４１９：Ｎｏ）は、当該フレームｎには被写体部分がないものとし、例えば、L(n)＝R(n)となるよう数値設定し、次のフレームに調査対象を移動する（ステップＳ４２４）。
【０１０７】
また、フレームｎについて被写体範囲が検出された場合も、次のフレームを調査対象として、上述した処理をおこなう（ステップＳ４２４、ステップＳ４２５：Ｎｏ）。そして、すべてのフレームについて被写体領域を検出すると（ステップＳ４２５：Ｙｅｓ）、「ストロボ画像生成処理」（図３）のフローに戻る。
【０１０８】
以上が、被写体の移動方向がＸ方向である場合の被写体領域検出の動作である。この場合、図１３（ａ）に示すように、各フレームに現れている被写体ＭＶのＸ方向についての範囲が順次求められることになる。このようにして求められた被写体範囲の座標（L(n)とR(n)）は、フレーム番号と対応づけて主記憶装置（メモリ）などに格納される。
【０１０９】
一方、被写体の移動方向がＹ方向である場合、上述した処理と同様の処理をＹ方向についておこなうことになる。すなわち、図１０のステップＳ４２６〜ステップＳ４３４および図１２のステップＳ４３５〜ステップＳ４４９をおこなうことで、各フレームに現れている被写体画像の上端座標T(n)と下端座標B(n)がそれぞれ求められる（図１３（ｂ）参照）。
【０１１０】
このようにして被写体領域を検出すると、被写体検出部２１４はその旨を画像選択部２１５に通知する。この場合、画像選択部２１５は、検出された被写体領域に基づいて、ストロボ画像の生成に用いる撮像画像（有効フレーム）を選択するための「有効フレーム選択処理」（図３のステップＳ５００）を実行する。この有効フレーム選択処理を、図１４および図１５に示すフローチャートを参照して説明する。
【０１１１】
処理が開始されると、画像選択部２１５はまず、被写体の移動方向がＸ方向であるかＹ方向であるかを判別する（ステップＳ５０１）。ここで、図１４のフローチャートは、被写体の移動方向がＸ方向である場合の処理を示し、図１５のフローチャートは、Ｙ方向である場合の処理を示している。
【０１１２】
被写体の移動方向がＸ方向である場合（ステップＳ５０１：Ｙｅｓ）、画像選択部２１５は、ポインタｎをフレーム初期値「１」とし（ステップＳ５０２）、上述した「位置合わせ処理」での処理結果に基づき、当該ｎ番目のフレーム（フレームｎ）は、フレームレベルでの有効フレームに指定されているか否かを判別する（ステップＳ５０３）。この場合、画像選択部２１５は、制御部２１０の主記憶装置（メモリ）に展開されている「フレーム情報テーブル」（図７）を参照することで、フレームｎが、フレームレベルでの有効フレームに指定されているか否かを判別する。
【０１１３】
ここで、フレームレベルで「無効フレーム」と指定されている場合（ステップＳ５０３：Ｎｏ）、背景部分が基準フレームＮと大きくずれているので、当該フレームｎをストロボ画像生成に用いると、背景部分が重複してしまうおそれがある。よって、画像選択部２１５は、ここでも無効フレームに指定する（ステップＳ５０４）。
【０１１４】
この場合、図７に示した「フレーム情報テーブル」の例では、例えば、フレーム番号「３」のレコードのように、「有効フレーム（フレームレベル）」と「有効フレーム（被写体レベル）」の欄の双方に「ＮＧ」が記録されることになる。
【０１１５】
一方、フレームｎがフレームレベルで「有効フレーム」と指定されている場合（ステップＳ５０３：Ｙｅｓ）、画像選択部２１５は、上述した「被写体領域検出処理」での検出結果に基づき、フレームｎに被写体領域があるか否かを判別する（ステップＳ５０５）。ここでは、被写体領域の範囲を示すL(n)およびR(n)（もしくはT(n)およびB(n)）がフレームｎについて記録されており、かつ、L(n)≠R(n)（もしくはT(n)≠B(n)）であれば、フレームｎから被写体領域が検出されたと判別する。
【０１１６】
ここで、フレームｎから被写体領域が検出されていない場合（ステップＳ５０５：Ｎｏ）は、画像選択部２１５は、フレームｎをストロボ画像の生成には用いない無効フレームとして指定する（ステップＳ５０４）。
【０１１７】
ステップＳ５０４でフレームｎを「無効フレーム」に指定した場合、画像選択部２１５は、ポインタｎを＋１することで次のフレームを指定し（ステップＳ５１０）、ｎの値が最終フレームｐ以下であれば（ステップＳ５１１：Ｎｏ）、ステップＳ５０３以降の処理をおこなう。
【０１１８】
このようにして、画像選択部２１５は、フレームレベルで有効フレームとされたフレームでの被写体領域の有無を順次判別する。そして、画像選択部２１５は、被写体領域があると判別された最初のフレームを有効フレームとして選択する（ステップＳ５０５：Ｙｅｓ、ステップＳ５０６：Ｎｏ、ステップＳ５０８）。ここで、画像選択部２１５は、有効フレームとして選択したフレーム（連写画像）に、フレーム番号とは別の有効フレーム番号を付与する。この場合、ステップＳ５０８で最初の有効フレームとして選択したフレームには、有効フレーム番号として「１」を付与する。さらに、画像選択部２１５は、有効フレームを指定するためのポインタｍに、ステップＳ５０８で選択されたフレームのフレーム番号を設定する（ステップＳ５０９）。
【０１１９】
この処理で画像選択部２１５は、「フレーム情報テーブル」（図７）に、被写体レベルでの有効フレームであるか否かを示す情報と、有効フレーム（被写体レベル）に付与した有効フレーム番号を記録する。
【０１２０】
最初の有効フレームを選択するとともに、このフレームのフレーム番号をポインタｍに設定すると、画像選択部２１５は、ポインタｎを＋１することで次のフレームを指定し（ステップＳ５１０）、ｎの値が最終フレームｐ以下であれば（ステップＳ５１１：Ｎｏ）、ステップＳ５０３以降の処理をおこなう。すなわち、ストロボ画像の生成に用いる次のフレームを探索する。
【０１２１】
最初の有効フレームが選択された後は（ステップＳ５０６：Ｙｅｓ）、調査対象フレーム（ｎ番目のフレーム）と直前に選択した有効フレーム（ポインタｍが指定するフレーム）との間で被写体領域の位置を比較することで、前の有効フレームと被写体部分が重ならないフレームを有効フレームとして選択していく。
【０１２２】
ここで、被写体の移動方向がＸ方向である場合、左から右への移動と右から左への移動の２通りがある。左から右に移動していたのであれば、フレームｎにおける被写体領域が、フレームｍにおける被写体領域より右側にある必要がある。一方、右から左に移動していたのであれば、フレームｎにおける被写体領域が、フレームｍにおける被写体領域より左側にある必要がある。
【０１２３】
よって、画像選択部２１５は、フレームｎにおける被写体左端L(n)が、フレームｍの被写体右端R(m)より大きいか、フレームｎにおける被写体右端R(n)が、フレームｍの被写体左端L(m)より小さい場合、フレームｎの被写体部分がフレームｍの被写体部分と重なっていないと判別する（ステップＳ５０７）。
【０１２４】
フレームｎの被写体領域がこのような条件に合致していれば（ステップＳ５０７：Ｙｅｓ）、画像選択部２１５は、当該ｎ番目のフレームを有効フレームとして選択する（ステップＳ５０８）。一方、条件に合致しなければ（ステップＳ５０７：Ｎｏ）、当該ｎ番目のフレームは、ストロボ画像の生成に用いない無効フレームとする（ステップＳ５０４）。
【０１２５】
以降の連写画像についても、このような条件判別による有効フレームの選択をおこない、すべての連写画像を調査して有効フレームの選択をおこなうと（ステップＳ５１１：Ｙｅｓ）、図１６に示すように、フレーム番号とは別の有効フレーム番号が付与された有効フレームと、ストロボ画像の生成には用いない無効フレームとが峻別される。
【０１２６】
なお、有効フレーム番号は、図示するように、選択された有効フレームにおいて時系列順に連番となっているものとする。この場合、選択された有効フレームの数をｐ'（ｐ'≦ｐ）とする。このように、選択した有効フレームを示す識別情報を付与することで、画像メモリ２３０に格納した連写画像の中から有効フレームを峻別できるが、無効フレームを画像メモリ２３０から消去することで、有効フレームのみ画像メモリ２３０に残すようにしてもよい。
【０１２７】
以上が、被写体がＸ方向に移動していた場合に有効フレームを選択する動作である。被写体の移動方向がＹ方向である場合（図１４のステップＳ５０１：Ｎｏ）も、同様の処理によって有効フレームを選択することができる。つまり、図１５に示すフローチャートのステップＳ５１２〜ステップＳ５２１をおこなうことで、Ｙ方向に移動する被写体の画像が重ならないフレームが有効フレームとして選択されるが、最初の有効フレームが選択された後の選択条件は、被写体が上から下に移動する場合と下から上に移動する場合を考慮する。
【０１２８】
すなわち、上から下に移動していたのであれば、フレームｎにおける被写体領域が、直前に選択した有効フレームｍにおける被写体領域より下側にある必要がある。一方、下から上に移動していたのであれば、フレームｎにおける被写体領域が、直前に選択した有効フレームｍにおける被写体領域より上側にある必要がある。
【０１２９】
よって、画像選択部２１５は、フレームｎにおける被写体上端T(n)が、直前に選択した有効フレームｍの被写体下端B(m)より大きいか、フレームｎにおける被写体下端B(n)が、直前に選択した有効フレームｍの被写体上端T(m)より小さい場合、フレームｎの被写体部分が直前に選択した有効フレームｍの被写体部分と重なっていないと判別する（図１５のステップＳ５１７）。
【０１３０】
以上説明したように、撮像画像を１方向に投影した１次元データから、被写体領域の検出と、被写体部分が重ならないフレームの選択をおこなった。すなわち、ストロボ画像の生成に用いる画像（有効フレーム）の選択を、データ量の少ない１次元データに基づいておこなうことで、撮像画像のすべてのデータを用いておこなうよりも、画像選択までの処理量が大幅に削減される。
【０１３１】
このようにして、ストロボ画像の生成に用いる画像（有効フレーム）が選択されると、「ストロボ画像生成処理」（図３）では、選択したフレームの画像データを用いて、ストロボ画像の背景画像を生成するための「背景画像生成処理」（ステップＳ６００）、有効フレームから被写体部分の画像を抽出するための「被写体画像抽出処理」（ステップＳ７００）が順次実行される。
【０１３２】
「背景画像生成処理」を、図１７に示すフローチャートを参照して説明する。この背景画像生成処理は、有効フレーム選択処理が終了した旨を画像選択部２１５が背景画像生成部２１６に通知したことを契機に開始される。
【０１３３】
処理が開始されると、背景画像生成部２１６は、有効フレーム上で調査する座標（ｘ，ｙ）の初期化をおこなう。ここでは、ｘおよびｙのそれぞれの初期値「０」とすることで、有効フレームの座標原点（０，０）を調査座標とする（ステップＳ６０１）。
【０１３４】
次に背景画像生成部２１６は、有効フレームを指定するポインタｎ'で１〜ｐ'を順次指定することで、設定した座標（ｘ，ｙ）の画素値を、画像メモリ２３０に格納されているすべての有効フレーム（１〜ｐ'）から順次取得する（ステップＳ６０２〜ステップＳ６０４、ステップＳ６０５：Ｎｏ）。
【０１３５】
すべての有効フレームから座標（ｘ，ｙ）の画素値を取得すると（ステップＳ６０５：Ｙｅｓ）、背景画像生成部２１６は、取得した画素値をソートし（ステップＳ６０６）、その中央値を座標（ｘ，ｙ）が背景部分を示している場合の画素値（背景画素値fb'(x,y)）とする（ステップＳ６０７）。
【０１３６】
座標（ｘ，ｙ）についての背景画素値fb'(x,y)を求めると、背景画像生成部２１６は、有効フレームの座標範囲内の座標を順次調査座標とし、当該座標（ｘ，ｙ）についての背景画素値fb'(x,y)を求める（ステップＳ６０８、ステップＳ６０９：Ｎｏ、ステップＳ６０２〜ステップＳ６０７）。ここでは、例えば、同一のｙ座標についてのｘ座標を順次＋１していき、ｘ座標が画像の右端に達したところでｙ座標を＋１するとともに座標ｘを０にすることを繰り返すことで、（０，０）から（sizeX-1，sizeY-1）までの画素値を順次取得し、各座標における背景画素値fb'(x,y)を求める。
【０１３７】
すべての座標から背景画素値fb'(x,y)を求めると（ステップＳ６０９：Ｙｅｓ）、背景画像生成部２１６は、求めた背景画素値fb'(x,y)を各座標における画素値とすることで、有効フレームに示されている背景部分のみを示した背景画像を生成する（ステップＳ６１０）。背景画像生成部２１６は、生成した背景画像を画像メモリ２３０に格納するとともに、背景画像を生成した旨を被写体検出部２１４に通知して処理を終了する。
【０１３８】
この場合、ストロボ画像生成処理（図３）のフローに戻り、「被写体画像抽出処理」（ステップＳ７００）が実行される。この被写体画像抽出処理は、背景画像の生成を契機に被写体検出部２１４によって実行される。この被写体画像抽出処理を、図１８に示すフローチャートを参照して説明する。
【０１３９】
処理が開始されると、被写体検出部２１４は、座標（ｘ，ｙ）の初期化（ステップＳ７０１）と、対象フレームの初期化（ステップＳ７０２）をおこない、有効フレーム１〜ｐ'のそれぞれから座標（ｘ，ｙ）の画素値fn'(x,y)を順次取得し、当該座標（ｘ，ｙ）における背景画素値fb'(x,y)との差分fd'(x,y)を算出する（ステップＳ７０３〜ステップＳ７０５、ステップＳ７０６：Ｎｏ）。
【０１４０】
すべての有効フレームから座標（ｘ，ｙ）における差分fd'(x,y)を算出すると（ステップＳ７０６：Ｙｅｓ）、被写体検出部２１４は、算出した差分fd'(x,y)の標準偏差fs(x,y)を算出する（ステップＳ７０７）。ここでは、例えば、被写体検出部２１４が数２を演算することで標準偏差fs(x,y)を算出する。
【０１４１】
【数２】
2010166545.tif 000004
【０１４２】
座標（ｘ，ｙ）での標準偏差fs(x,y)を算出すると、被写体検出部２１４は、有効フレームの座標範囲内で調査座標を移動させ、各座標における標準偏差fs(x,y)を順次算出する（ステップＳ７０８、ステップＳ７０９：Ｎｏ、ステップＳ７０２〜ステップＳ７０７）。
【０１４３】
各座標における標準偏差fs(x,y)を算出すると（ステップＳ７０９：Ｙｅｓ）、被写体検出部２１４は、各有効フレームにおける被写体部分の判別に用いる変動閾値moveを、算出した標準偏差fs(x,y)に基づいて設定する（ステップＳ７１０）。ここでは、例えば、数３を演算することで、変動閾値moveを設定する。
【０１４４】
【数３】
2010166545.tif 000005
【０１４５】
変動閾値moveを設定すると、被写体検出部２１４は、画像メモリ２３０に格納されている有効フレーム（１〜ｐ'）のそれぞれから、差分fd'(x,y)≧変動閾値moveとなる画素値を取得する（ステップＳ７１１、ステップＳ７１２）。
【０１４６】
被写体検出部２１４は、このような条件となる画素値を、フレームｎ'で被写体部分を示す画素値とし（ステップＳ７１３）、この画素値によって示される被写体部分に対し、画像の欠損を補間するための「画像平滑化処理」を実行する（ステップＳ９００）。本実施形態にかかる「画像平滑化処理（１）」を、図１９に示すフローチャートを参照して説明する。
【０１４７】
処理が開始されると、被写体検出部２１４は、制御部２１０の主記憶装置（メモリ）に展開されている「フレーム情報テーブル」（図７）から、当該フレームｎ'と基準フレームＮとの間の移動量ＶＦの情報を参照し（ステップＳ９１１）、移動量ＶＦが、第１の閾値th1未満であるか否かを判別する（ステップＳ９１２）。
【０１４８】
上述したように、第１の閾値th1は、フレーム間における背景部分が一定とみなすことのできる移動量ＶＦの許容範囲の上限値であるため、基準フレームＮとの移動量ＶＦが第１の閾値th1未満であれば、フレーム間の差異が微小であるため、背景部分の差異も微小である。
【０１４９】
よって、このような場合（ステップＳ９１２：Ｙｅｓ）、被写体検出部２１４は、抽出された被写体領域の欠損を修復して平滑化するためにおこなうモルフォロジー演算を通常の処理量でおこなう。ここでは、例えば、モルフォロジー膨張（dilation）をおこない（ステップＳ９１３）、その後、モルフォロジー収縮（erosion）を２回おこなってから（ステップＳ９１４）、モルフォロジー膨張（dilation）をおこなう（ステップＳ９１５）。
【０１５０】
一方、移動量ＶＦが第１の閾値th1以上である場合（ステップＳ９１２：Ｎｏ）、フレームｎ'については、上述した「位置合わせ処理」（図６）において、画像変形による位置合わせがおこなわれていることになる。この場合、画像変形をおこなっているので、背景部分において、本来の画像と変形後の画像とで差異が生じることがあり、この差異の部分が被写体ＭＶとして誤認識されてしまう場合がある。
【０１５１】
特に、図２０（ａ）に例示するような、奥行きの大きいシーンを撮影した場合、いわゆるオクルージョンの影響により、フレーム画像全体が動いたときの背景の差異が大きくなりやすい。
【０１５２】
例えば、図２０（ａ）に示したフレーム画像の次のフレームＮ＋１が図２０（ｂ）に示されるような画像であった場合、手持ち撮影によるデジタルカメラ１の微動などにより、本来一定であるべき背景部分に変位があり、この移動量ＶＦが第１の閾値th1以上であれば、上述した「位置合わせ処理」（図６）で、フレームＮ＋１に対し画像変形による位置合わせがおこなわれる。
【０１５３】
この場合、フレームＮには、図２０（ｃ）に示されるように、本来の背景画像が示されているが、フレームＮ＋１には、図２０（ｄ）に示されるように、変形させた背景画像が示される。画像変形によって位置合わせをしているため、フレームＮの背景画像とフレームＮ＋１の背景画像の位置が同じであっても、図２０（ｅ）に示すように、背景画像の形状などに差異が生じる。
【０１５４】
図２０に示すような奥行きの大きいシーンの場合、このような背景部分の形状の違いは、オクルージョンの影響により大きな差異となって現れる。これらの画像から背景画像と被写体領域を抽出してストロボ画像に合成すると、図２０（ｆ）に示すように、背景部分の差異の一部などが現れることがある。背景部分は本来一定であるので、このような部分は不要な背景画像である。
【０１５５】
このような不要部分が、フレーム画像上において被写体ＭＶの近くにある場合、図２０（ｇ）に示すように、被写体ＭＶを抽出した際に不要部分が被写体ＭＶとして誤認識されて抽出されている場合がある。上述したモルフォロジー演算による平滑化は、被写体画像の欠損を修復して補間するものであるが、その際の演算量を増やすことで、図２０（ｇ）で示すような誤認識された背景部分を消去することができる。
【０１５６】
しかしながら、一律に演算量を多くしてしまうと、処理負荷が重くなってしまい、ストロボ画像の生成にかかる処理時間の長大化をもたらしてしまうとともに、本来被写体ＭＶ（動体）として認識されるべき領域が比較的小さい場合などには、その領域が消去されてしまう可能性もある。よって、オクルージョンの影響を受けやすいフレームと受けにくいフレームとで平滑化処理の重みを変えるようにすれば、背景部分が被写体（動体）として誤認識された領域を効果的に除去することができる。
【０１５７】
したがって、本処理においては、フレーム間の移動量ＶＦに基づいて、対象フレームがオクルージョンの影響を受けやすいか否かを判別し、その判別結果に応じてモルフォロジー演算の処理量を異ならせる。
【０１５８】
よって、フレーム間の移動量ＶＦが第１の閾値th1以上である場合（ステップＳ９１２：Ｎｏ）、被写体検出部２１４は、モルフォロジー演算の処理量を増やすことで、被写体ＭＶの近傍に発生した不要部分の除去をおこなう。この場合、被写体検出部２１４は、対象フレームｎ'に対して、一般的な処理量よりも演算量を増やしたモルフォロジー演算をおこなう。ここでは、例えば、モルフォロジー膨張（dilation）をおこない（ステップＳ９１６）、その後、モルフォロジー収縮（erosion）を４回おこなってから（ステップＳ９１７）、モルフォロジー膨張（dilation）をおこなう（ステップＳ９１８）。
【０１５９】
この例においては、フレーム間の移動量ＶＦに基づいてオクルージョンの影響を受けやすいと判別されたフレームに対して、通常のモルフォロジー演算よりも、２倍量のモルフォロジー収縮をおこなっている。このようにしてモルフォロジー収縮（erosion）の処理量（回数）を増やすことにより、細かい差異を取り除く傾向を強めることができ、オクルージョンの影響で背景部分が被写体（動体）と誤認識された場合でも、その領域を除去することができる。
【０１６０】
このように、フレーム間の移動量ＶＦに応じてモルフォロジー演算をおこなうと、被写体検出部２１４は、平滑化された被写体領域を最終的な被写体画像として抽出する（ステップＳ９１９）。この場合、例えば、差分fd'(x,y)≧変動閾値moveとなる座標を「１」、差分fd'(x,y)＜変動閾値moveとなる座標を「０」とするデータを生成し、生成した０と１のデータに対し、例えば、連続している領域には同じ番号を振り、離れている領域には別の番号を振るラベリングをおこなう。そして、ラベリングした領域のうちで最大となる領域のみとなる座標についての画素値を、当該フレームｎ'で被写体部分を示す画素値とする。
【０１６１】
上記「画像平滑化処理（１）」においては、上述した「位置合わせ処理」（図６）で用いられた第１の閾値th1との比較に基づいて、モルフォロジー演算の処理量を異ならせたが、処理量を決定する基準はフレーム間の移動量にあるため、比較する閾値は第１の閾値th1に限られるものではない。すなわち、より多くの閾値を設定し、これらとフレーム間移動量ＶＦを比較することで、より細かく処理量を異ならせるようにしてもよい。いずれの場合であっても、フレーム間の移動量が大きいほど、モルフォロジー演算の処理量を多くすることで、オクルージョンの影響で発生しやすい不要部分を効果的に除去することができる。
【０１６２】
「画像平滑化処理（１）」により不要部分が除去された被写体画像がフレームｎ'から抽出されると、「被写体画像抽出処理」（図１８）のフローに戻る。ここでは、ポインタｎ'を＋１して次の有効フレームを指定し（ステップＳ７１４）、ｎ'番目の有効フレームが画像メモリ２３０に存在するフレームであれば（ステップＳ７１５：Ｎｏ）、ステップＳ７１２以降の処理をおこなうことで、各有効フレームから被写体画像を抽出する。
【０１６３】
このような処理により、画像メモリ２３０に展開されているすべての有効フレームから被写体画像を抽出すると、被写体検出部２１４は、その旨をストロボ画像生成部２１７に通知する。
【０１６４】
そして、ストロボ画像生成部２１７は、「ストロボ画像生成処理」（図３）のフローにおいて、「背景画像生成処理」（ステップＳ６００）で生成された背景画像と、「被写体画像抽出処理」（ステップＳ７００）で抽出された各有効フレームにおける被写体画像とを合成することで、図２２に示すようなストロボ画像を生成する「画像合成処理」（ステップＳ８００）を実行する。
【０１６５】
「画像合成処理」を、図２１に示すフローチャートを参照して説明する。この画像合成処理は、被写体画像抽出処理が終了した旨を被写体検出部２１４がストロボ画像生成部２１７に通知したことを契機に開始される。
【０１６６】
処理が開始されると、ストロボ画像生成部２１７は、対象フレームの初期化（ステップＳ８０１）をおこない、「被写体画像抽出処理」（ステップＳ７００）で抽出された各有効フレーム１〜Ｐ'のそれぞれから抽出された被写体画像を順次重ね合わせることによりストロボ画像の被写体領域を合成する（ステップＳ８０２〜Ｓ８０４）。
【０１６７】
すべてのストロボ画像の被写体領域を合成すると（ステップＳ８０２：Ｙｅｓ）、ストロボ画像生成部２１７は、「背景画像生成処理」（ステップＳ６００）で生成された背景画像を重ね合わせることによりストロボ画像の背景領域を合成する（Ｓ８０５）。なお、各有効フレーム１〜Ｐ'のいずれかの画像を重ね合わせることによりストロボ画像の背景領域を合成してもよい。
【０１６８】
このような処理により、ストロボ画像が生成されると、ストロボ画像生成部２１７は、生成したストロボ画像を画像メモリ２３０に格納するとともに、ストロボ画像を生成した旨を被写体検出部２１４に通知して処理を終了する。
【０１６９】
この場合、ストロボ画像生成処理（図３）のフローに戻り、生成したストロボ画像は、画像出力部２４０を通じて表示部３１０に表示される他、デジタルカメラ１のユーザが操作部３３０を操作することによる指示入力に応じて、記憶部２５０や外部記憶部２６０に保存されて（ステップＳ１０７）、処理を終了する。
【０１７０】
なお、カメラの向きを縦位置とした場合は、撮像画像を−９０°もしくは９０°回転させたときの座標系で上述した処理をおこなえば、同様にストロボ画像を生成することができる。
【０１７１】
（実施形態２）
被写体画像から不要部分を除去するためにおこなう「画像平滑化処理」（図１８、ステップＳ９００）の他の動作例を説明する。上記実施形態１における「画像平滑化処理（１）」では、フレーム間の移動量ＶＦと閾値との比較により、モルフォロジー収縮の実行回数を２回もしくは４回に切り替える２値マスク処理としたが、モルフォロジー収縮の実行回数を、移動量ＶＦに応じてより細かく制御することもできる。この場合に実行される「画像平滑化処理（２）」を、図２３に示すフローチャートを参照して説明する。
【０１７２】
処理が開始されると、実施形態１における「画像平滑化処理（１）」と同様に、被写体検出部２１４が、制御部２１０の主記憶装置（メモリ）に展開されている「フレーム情報テーブル」（図７）にアクセスし、被写体画像の抽出対象フレームであるフレームｎ'と基準フレームＮとの間の移動量ＶＦの情報を参照する（ステップＳ９２１）
【０１７３】
移動量ＶＦを参照すると、被写体検出部２１４は、当該移動量ＶＦに基づいて、モルフォロジー収縮（erosion）の実行回数を決定するための演算をおこなう（ステップＳ９２２）。ここでは、移動量ＶＦに係数ｋ（例えば、１以上の正の整数）を乗じることで、モルフォロジー収縮（erosion）の実行回数Ｌを算出する（Ｌ＝ＶＦ×ｋ）。
【０１７４】
モルフォロジー収縮（erosion）の実行回数Ｌを算出すると、被写体検出部２１４は、モルフォロジー膨張（dilation）を１回おこなう（ステップＳ９２３）。
【０１７５】
モルフォロジー膨張（dilation）を１回おこなうと、被写体検出部２１４は、モルフォロジー収縮（erosion）を、ステップＳ９２２で算出した実行回数であるＬ回実行する（ステップＳ９２４）。
【０１７６】
モルフォロジー収縮（erosion）をＬ回実行すると、被写体検出部２１４は、モルフォロジー膨張（dilation）を１回実行して（ステップＳ９２５）、画像平滑化にかかるモルフォロジー演算を終了する。
【０１７７】
モルフォロジー演算を終了すると、被写体検出部２１４は、平滑化された被写体領域を最終的な被写体画像として抽出して（ステップＳ９２６）、処理を終了する（「被写体画像抽出処理」（図１８）のフローに戻る）。
【０１７８】
この「画像平滑化処理（２）」では、移動量ＶＦに係数を乗じることで、モルフォロジー収縮（erosion）の実行回数を算出しているので、フレーム間の移動量に比例して、モルフォロジー演算（モルフォロジー収縮）の処理量を多くすることができ、オクルージョンの影響で発生しやすい不要部分をより効果的に除去することができる。
【０１７９】
なお、「画像平滑化処理（１）」（実施形態１）および「画像平滑化処理（２）」（本実施形態）では、モルフォロジー演算の例として、「モルフォロジー膨張（dilation）→モルフォロジー収縮（erosion）→モルフォロジー膨張（dilation）」の順で演算をおこなう場合を示したが、「モルフォロジー収縮（erosion）→モルフォロジー膨張（dilation）→モルフォロジー収縮（erosion）」の順でおこなう演算を加えてもよい。
【０１８０】
すなわち、モルフォロジー演算の内容を定義するオペレータとして「Opening」（実行順序が「膨張→収縮→膨張」）や「Closing」（実行順序が「収縮→膨張→収縮」）のいずれが設定された場合であっても、移動量ＶＦに応じて処理量（実行回数）を異ならせることで、オクルージョンの影響による不要部分の効果的な除去を図ることができる。
【０１８１】
この場合において、モルフォロジー収縮（erosion）についての処理量（実行回数）を、どの時点のモルフォロジー収縮（erosion）に適用するかは任意である。例えば、すべてのモルフォロジー収縮（erosion）の実行回数をモルフォロジー膨張（dilation）より多くする処理としてもよい他、「Opening」でおこなうモルフォロジー収縮（erosion）のみモルフォロジー膨張（dilation）より多く実行する処理などとしてもよい。
【０１８２】
また、本実施形態では、細かい差異を取り除く傾向を強めるためにモルフォロジー収縮（erosion）の処理量（実行回数）を増やすものとしたが、モルフォロジー膨張（dilation）の処理量（実行回数）を増やすことで不要部分の効果的な除去を図ってもよい。すなわち、フレーム間の移動量に基づいて処理量を異ならせる対象は、モルフォロジー収縮（erosion）であっても、モルフォロジー膨張（dilation）であってもよい。
【０１８３】
（実施形態３）
上記各実施形態における「画像平滑化処理」では、移動量ＶＦに応じて、モルフォロジー演算の実行回数を異ならせる場合を例示したが、異ならせる処理量は回数に限られるものではない。ここでは、フレーム間の移動量に応じて、モルフォロジー演算による効果（すなわち、収縮や膨張の量）を異ならせることでも、オクルージョンの影響による不要部分の効果的な除去を図ることができる。
【０１８４】
つまり、モルフォロジー演算においては、単純な形状の「構成成分（構造成分）」（Structuring Element）で対象画像を削ったり、対象画像に肉付けしたりすることで、収縮（erosion）や膨張（dilation）をおこなっているので、この構成成分のサイズを変えることで、収縮や膨張の量を異ならせることができる。
【０１８５】
本実施形態では、このような方法によって不要部分を除去する例を説明する。この場合に実行される「画像平滑化処理（３）」を、図２４に示すフローチャートを参照して説明する。
【０１８６】
処理が開始されると、実施形態１における「画像平滑化処理（１）」と同様に、被写体検出部２１４が、制御部２１０の主記憶装置（メモリ）に展開されている「フレーム情報テーブル」（図７）にアクセスし、被写体画像の抽出対象フレームであるフレームｎ'と基準フレームＮとの間の移動量ＶＦの情報を参照する（ステップＳ９３１）
【０１８７】
本実施形態では、上記各実施形態と同様に、フレーム間の移動量ＶＦに応じてモルフォロジー演算の処理量を異ならせることで、不要部分の効果的な除去を図る。この場合において、本実施形態では、モルフォロジー演算の効果、すなわち、膨張や収縮の量を異ならせることで、画像平滑化にかかる処理量を異ならせるものとする。
【０１８８】
ここで、本処理においては、上記各実施形態の場合と同様に、「モルフォロジー膨張（dilation）→モルフォロジー収縮（erosion）→モルフォロジー膨張（dilation）」の順で演算をおこなうものとする。そして、細かい差異を取り除く傾向を強めるため、処理量を異ならせる対象をモルフォロジー収縮（erosion）とする。すなわち、１回のモルフォロジー収縮（erosion）による画像収縮の量を大きくさせる。
【０１８９】
このような処理をおこなうため、本実施形態では、モルフォロジー膨張（dilation）に用いる構成成分（以下、「構成成分ＳＥｄ」とする）のサイズと、モルフォロジー収縮（erosion）に用いる構成成分（以下、「構成成分ＳＥｅ」とする）のサイズを異ならせる。
【０１９０】
ここで、モルフォロジー膨張（dilation）は通常の処理量とするので、構成成分ＳＥｄのサイズは、当該構成成分についてのデフォルトサイズ（以下、「サイズＤＳ」とする）を適用する。この場合、被写体検出部２１４は、モルフォロジー膨張（dilation）の演算内容を定義するオペレータに、構成成分ＳＥｄのサイズとしてサイズＤＳを設定する（ステップＳ９３２）。
【０１９１】
一方、モルフォロジー収縮（erosion）の処理量は、移動量ＶＦに応じて異ならせるため、被写体検出部２１４は、構成成分ＳＥｅのサイズを、ステップＳ９３１で参照した移動量ＶＦに基づいて算出する（ステップＳ９３３）。ここでは、構成成分のデフォルトサイズであるサイズＤＳに移動量ＶＦを乗じることで、拡張した構成成分のサイズ（以下、「拡張サイズＬＳ」または「サイズＬＳ」とする）を算出する（ＬＳ＝ＶＦ×ＤＳ）。
【０１９２】
被写体検出部２１４は、モルフォロジー収縮（erosion）の演算内容を定義するオペレータに、構成成分ＳＥｅのサイズとしてサイズＬＳを設定する（ステップＳ９３４）。ここで、サイズＬＳは、例えば、正の数で示されるものとし、設定される数値が大きいほど構成成分のサイズが大きくなるものとする。すなわち、フレーム間の移動量ＶＦが大きいほど、所定のモルフォロジー演算に用いる構成成分のサイズが大きくなる。
【０１９３】
各演算についてのオペレータに構成成分のサイズを設定すると、被写体検出部２１４は、当該オペレータに基づいて、「モルフォロジー膨張（dilation）→モルフォロジー収縮（erosion）→モルフォロジー膨張（dilation）」の順で演算をおこなう（ステップＳ９３５、ステップＳ９３６、ステップＳ９３７）。
【０１９４】
この場合において、モルフォロジー収縮（erosion）で使用される構成成分ＳＥｅのサイズは、モルフォロジー膨張（dilation）で使用される構成成分ＳＥｄに設定されているサイズＤＳを、移動量ＶＦに応じて拡張させたサイズＬＳであるため、モルフォロジー膨張（dilation）実行時の膨張量よりも大きい度合で画像収縮がおこなわれることになる。
【０１９５】
このようなモルフォロジー演算を終了すると、被写体検出部２１４は、平滑化された被写体領域を最終的な被写体画像として抽出して（ステップＳ９３８）、処理を終了する（「被写体画像抽出処理」（図１８）のフローに戻る）。
【０１９６】
この「画像平滑化処理（３）」では、モルフォロジー演算に用いる構成成分のデフォルトサイズ（サイズＤＳ）に移動量ＶＦを乗じることで、拡張サイズＬＳを算出しているので、フレーム間の移動量に比例して、モルフォロジー演算の処理量（膨張や収縮の量）を多くすることができ、オクルージョンの影響で発生しやすい不要部分をより効果的に除去することができる。
【０１９７】
なお、本実施形態では、モルフォロジー演算の例として、「モルフォロジー膨張（dilation）→モルフォロジー収縮（erosion）→モルフォロジー膨張（dilation）」の順で演算をおこなう場合を示したが、「モルフォロジー収縮（erosion）→モルフォロジー膨張（dilation）→モルフォロジー収縮（erosion）」の順でおこなう演算を加えてもよい。
【０１９８】
すなわち、オペレータに「Opening」（実行順序が「膨張→収縮→膨張」）や「Closing」（実行順序が「収縮→膨張→収縮」）のいずれが設定された場合であっても、移動量ＶＦに応じて処理量（構成成分のサイズ）を異ならせることで、オクルージョンの影響による不要部分の効果的な除去を図ることができる。
【０１９９】
この場合において、モルフォロジー収縮（erosion）についての処理量（構成成分のサイズ変更）を、どの時点のモルフォロジー収縮（erosion）に適用するかは任意である。例えば、すべてのモルフォロジー収縮（erosion）に用いる構成成分のサイズをモルフォロジー膨張（dilation）より大きくする処理としてもよい他、「Opening」でおこなうモルフォロジー収縮（erosion）のみモルフォロジー膨張（dilation）より大きいサイズの構成成分を用いる処理などとしてもよい。
【０２００】
なお、本実施形態では、細かい差異を取り除く傾向を強めるためにモルフォロジー収縮（erosion）の処理量を増やす（構成成分のサイズを拡張する）ものとしたが、モルフォロジー膨張（dilation）の処理量を増やす（構成成分のサイズを拡張する）ことで不要部分の効果的な除去を図ってもよい。すなわち、フレーム間の移動量に基づいて処理量を異ならせる対象は、モルフォロジー収縮（erosion）であっても、モルフォロジー膨張（dilation）であってもよい。
【０２０１】
以上説明したように、本発明を上記実施形態の如く適用することにより、ストロボ画像を生成する際の平滑化処理において、オクルージョンの影響で背景位相が変動してしまうことの影響を少なくし、背景部分が重複してしまうことを防止できる。
【０２０２】
つまり、ストロボ画像の合成に用いる画像を連写撮像によって生成した際に、背景の奥行きが大きいシーンである場合、撮像時のカメラの微動によって生じるフレーム画像間の移動量が大きいと、オクルージョンの影響で背景部分の差異が大きくなり、移動している被写体として誤認識されることがあるため、フレーム間の移動量が大きいときには、例えば、モルフォロジー演算による平滑化処理の処理量を増やすことで、移動被写体として誤認識された領域を除去することができる。
【０２０３】
また、フレーム間の移動量が大きくない場合には、平滑化処理の処理量を増やさないことで、全体的な処理負荷を低減するとともに、移動する被写体の領域が小さい場合であっても、当該領域を消去してしまうことなくストロボ画像を生成することができる。
【０２０４】
すなわち、移動量が大きいほど平滑化にかかる処理量を多くすることで、良好なストロボ画像を効果的に生成することができるが、このような平滑化処理にかかる処理量の切替を、検出された移動量と閾値との比較によっておこなうことで、効率的に処理することができる。
【０２０５】
あるいは、移動量に係数を乗じることで平滑化にかかる処理の実行回数を異ならせたり、構成成分のデフォルトサイズに移動量を乗じることで平滑化にかかる処理の処理量を異ならせたりすることで、良好なストロボ画像の生成をより効果的におこなうことができる。
【０２０６】
また、撮像画像における背景部分がほぼ一定となるよう位置合わせをおこなうが、フレーム間の移動量が位置合わせできないほど大きい場合には、当該フレームをストロボ画像の合成対象から除外するので、オクルージョンの影響によって背景が重複したストロボ画像が生成されてしまうことを防止することができる。
【０２０７】
また、手ブレ補正機能などを備えた撮像装置であれば、手ブレ補正に用いるセンサの検出値からフレーム間の移動量を求めることができるので、フレーム間の移動量を演算する処理が軽減され、より高速にストロボ画像を生成することができる。
【０２０８】
上記実施形態は一例であり、本発明の適用範囲はこれに限られない。すなわち、種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
【０２０９】
例えば、上記実施形態では、ストロボ画像における被写体や背景を検出するために、撮像画像を１次元データに変換して処理をおこなったが、被写体や背景を検出する方法は任意であり、上述した例に限られるものではない。
【０２１０】
また、上記実施形態では、有効フレームとする基準として、被写体が重ならないことを条件としたが、有効フレームとすることの基準となる条件は任意であり、上述した例に限られるものではない。
【０２１１】
また、上記実施形態では、画像平滑化処理をおこなう際に、基準フレームと、後続する各フレームとの間の移動量を検出するものとしたが、移動量を求めるフレームをどのフレームとするかは任意であり、例えば、隣接するフレーム同士の移動量を求めるようにしてもよい。
【０２１２】
さらに、移動量を求める方法も任意であり、オクルージョンの影響を受けやすいか否かを判別できる数値が得られることができればよい。
【０２１３】
また、上記実施形態３では、構成成分のサイズを異ならせることで、平滑化にかかる処理の処理量を異ならせるようにしたが、平滑化の効果などに違いが生じるのであれば、サイズ以外の要素を異ならせるようにしてもよい。例えば、構成成分の形状の違いが平滑化の効果に影響するのであれば、フレーム間の移動量に基づいて、適用する構成成分の形状を異ならせるようにしてもよい。
【０２１４】
なお、本発明を上記実施形態で例示したデジタルカメラ１のような撮像装置で実現する場合においては、本発明にかかる構成や機能を予め備えた撮像装置として提供できる他、制御部２１０の各機能と同様の機能を実現するプログラムを適用することにより、既存の撮像装置を本発明にかかる撮像装置をして機能させることもできる。
【０２１５】
なお、上記実施形態では、撮像装置の例としてデジタルスチルカメラを示したが、撮像装置の形態は任意であり、単体のデジタルスチルカメラで実現可能であることはもとより、これと同様の撮像機能を備えた種々の電子機器（例えば、携帯電話など）に本発明を適用してもよい。
【０２１６】
上記実施形態では、スチルカメラによる連写機能で得られた画像からストロボ画像を生成する例を示したが、被写体が連続的に変化しているフレーム画像が得られればよいので、動画データからもストロボ画像を生成することができる。よって、本発明をビデオカメラや、動画撮像機能を有する種々の撮像装置に適用することでも高速にストロボ画像を生成することができる。
【０２１７】
さらに、移動する被写体が撮像された連続する複数の画像を取得できるのであれば、撮像装置に限らず、画像処理をおこなうことのできる種々の装置（例えば、パーソナルコンピュータ）などにおいて、上述した各処理と同様の処理を実行することにより、オクルージョンの影響が緩和されたストロボ画像を生成することができる。
【０２１８】
これらの場合においても、プログラムを適用することで、既存の装置を本発明にかかる撮像装置として機能させることができる。
【０２１９】
このようなプログラムの適用方法は任意であり、例えば、ＣＤ−ＲＯＭやメモリカードなどの記憶媒体に格納して適用できる他、例えば、インターネットなどの通信媒体を介して適用することもできる。
【０２２０】
また、画像処理をおこなえる装置であれば、上記プログラムを適用することで、高速なストロボ画像生成を実現することができる。すなわち、撮像装置に限られず、例えば、パーソナルコンピュータなどに上記プログラムを適用することで、予め撮像された画像から高速にストロボ画像を生成することができる。
【符号の説明】
【０２２１】
１…デジタルカメラ、１００…撮像部、１１０…光学装置、１２０…イメージセンサ部、２００…データ処理部、２１０…制御部、２１１…動作モード処理部、２１２…撮像制御部、２１３…撮像画像処理部、２１４…被写体検出部、２１５…画像選択部、２１６…背景画像生成部、２１７…ストロボ画像生成部、２２０…画像処理部、２３０…画像メモリ、２４０…画像出力部、２５０…記憶部、２６０…外部記憶部、３００…インタフェース部、３１０…表示部、３２０…外部インタフェース部、３３０…操作部、４００…センサ部
【図１】
2010166545.tif 000006
【図２】
2010166545.tif 000007
【図３】
2010166545.tif 000008
【図４】
2010166545.tif 000009
【図５】
2010166545.tif 000010
【図６】
2010166545.tif 000011
【図７】
2010166545.tif 000012
【図８】
2010166545.tif 000013
【図９】
2010166545.tif 000014
【図１０】
2010166545.tif 000015
【図１１】
2010166545.tif 000016
【図１２】
2010166545.tif 000017
【図１３】
2010166545.tif 000018
【図１４】
2010166545.tif 000019
【図１５】
2010166545.tif 000020
【図１６】
2010166545.tif 000021
【図１７】
2010166545.tif 000022
【図１８】
2010166545.tif 000023
【図１９】
2010166545.tif 000024
【図２０】
2010166545.tif 000025
【図２１】
2010166545.tif 000026
【図２２】
2010166545.tif 000027
【図２３】
2010166545.tif 000028
【図２４】
2010166545.tif 000029