(57)【特許請求の範囲】
【請求項１】
被写体を表す被写体画像の画像データを複数取得する被写体画像データ取得手段と、
前記被写体の背景を表す背景画像の画像データを取得する背景画像データ取得手段と、
前記複数の被写体画像それぞれの画素値と、前記背景画像の画素値とに基づいて、前記被写体が表された被写体領域を表す被写体領域情報を、前記被写体画像のそれぞれから検出する被写体領域情報検出手段と、
前記検出された複数の被写体領域情報に基づいて、前記複数の被写体画像のそれぞれから、前記被写体領域を表す被写体領域画像を生成する被写体領域画像生成手段と、
前記検出された複数の被写体領域情報のそれぞれから、前記被写体領域を包含する被写体範囲を表す被写体範囲情報を算出する被写体範囲情報算出手段と、
前記算出された複数の被写体範囲情報で表される被写体範囲の差異に基づいて、前記生成された複数の被写体領域画像から、前記被写体の動作を表す複数の被写体領域画像を選択する被写体領域画像選択手段と、
前記選択された複数の被写体領域画像を合成することで、前記被写体領域画像に表された被写体を並べて表示する合成画像の画像データを生成する合成画像データ生成手段と、を備え、
前記被写体領域画像選択手段は、
前記合成される被写体領域画像の数を指定する画像数指定情報を取得し、
前記生成された被写体領域画像の数が、前記取得された指定情報で指定される指定画像数以上である場合に、前記被写体範囲情報が表す被写体範囲の大きさが所定の大きさ以下の被写体領域画像を無効画像として特定し、前記被写体範囲の大きさが所定の大きさよりも大きい被写体領域画像を有効画像として特定し、
前記有効画像と特定した被写体領域画像を、前記被写体の動作を表す被写体領域画像として選択する、
ことを特徴とする画像生成装置。
【請求項２】
前記被写体領域画像選択手段は、前記特定した有効画像の数が前記指定画像数以上である場合に、前記検出された被写体範囲情報が表す被写体範囲の差異が大きい有効画像から順に、前記指定情報で指定された画像数だけ選択する、
ことを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記被写体領域画像選択手段は、前記生成された被写体領域画像の数が前記指定画像数より少ない場合に、前記指定画像数に対して不足する数の被写体領域画像を、重複して前記合成画像に表示される被写体を表す重複画像として特定し、
前記合成画像データ生成手段は、前記特定された重複画像で表される被写体を、表示される複数の被写体に対して全体的に一様に分布するように重複表示する合成画像を生成する、
ことを特徴とする請求項２に記載の画像生成装置。
【請求項４】
前記合成画像データ生成手段は、
前記合成画像の形状を表す合成画像形状情報を取得する形状情報取得手段と、
前記複数の被写体範囲情報に基づいて、前記選択された複数の被写体領域画像の被写体範囲を包含する有効範囲を表す有効範囲情報を算出する有効範囲算出手段と、
前記取得された合成画像形状情報と、前記取得された画像数指定情報と、前記算出された有効範囲情報とに基づいて、前記合成画像を前記有効範囲と同一又は相似の形状を有する前記指定画像数の分割領域に分割する合成画像分割手段と、
前記選択された前記指定画像数の被写体領域画像を、前記合成画像の前記分割領域のそれぞれに対して合成する画像合成手段と、を備える、
ことを特徴とする請求項３に記載の画像生成装置。
【請求項５】
前記複数の被写体範囲情報が表す被写体範囲の相違は、前記複数の被写体範囲の画素値の相違、又は前記複数の被写体範囲に含まれる被写体領域の画素値の相違を含む、
ことを特徴とする請求項１から４のいずれか一項に記載の画像生成装置。
【請求項６】
被写体を表す被写体画像の画像データを複数取得する被写体画像データ取得手段と、
前記被写体の背景を表す背景画像の画像データを取得する背景画像データ取得手段と、
前記複数の被写体画像それぞれの画素値と、前記背景画像の画素値とに基づいて、前記被写体が表された被写体領域を表す被写体領域情報を、前記被写体画像のそれぞれから検出する被写体領域情報検出手段と、
前記検出された複数の被写体領域情報に基づいて、前記複数の被写体画像のそれぞれから、前記被写体領域を表す被写体領域画像を生成する被写体領域画像生成手段と、
前記検出された複数の被写体領域情報のそれぞれから、前記被写体領域を包含する被写体範囲を表す被写体範囲情報を算出する被写体範囲情報算出手段と、
前記算出された複数の被写体範囲情報で表される被写体範囲の差異に基づいて、前記生成された複数の被写体領域画像から、前記被写体の動作を表す複数の被写体領域画像を選択する被写体領域画像選択手段と、
前記選択された複数の被写体領域画像を合成することで、前記被写体領域画像に表された被写体を並べて表示する合成画像の画像データを生成する合成画像データ生成手段と、を備え、
前記複数の被写体範囲情報が表す被写体範囲の相違は、前記複数の被写体範囲情報を算出する基礎とされた被写体画像の中から選択した２つの被写体画像を前記背景が一致するように重ねた場合において、前記複数の被写体範囲が重なる部分の面積と、重ならない部分の面積との比率を含む、
ことを特徴とする画像生成装置。
【請求項７】
被写体を表す被写体画像の画像データを複数取得する被写体画像データ取得手段と、
前記被写体の背景を表す背景画像の画像データを取得する背景画像データ取得手段と、
前記複数の被写体画像それぞれの画素値と、前記背景画像の画素値とに基づいて、前記被写体が表された被写体領域を表す被写体領域情報を、前記被写体画像のそれぞれから検出する被写体領域情報検出手段と、
前記検出された複数の被写体領域情報に基づいて、前記複数の被写体画像のそれぞれから、前記被写体領域を表す被写体領域画像を生成する被写体領域画像生成手段と、
前記検出された複数の被写体領域情報のそれぞれから、前記被写体領域を包含する被写体範囲を表す被写体範囲情報を算出する被写体範囲情報算出手段と、
前記算出された複数の被写体範囲情報で表される被写体範囲の差異に基づいて、前記生成された複数の被写体領域画像から、前記被写体の動作を表す複数の被写体領域画像を選択する被写体領域画像選択手段と、
前記選択された複数の被写体領域画像を合成することで、前記被写体領域画像に表された被写体を並べて表示する合成画像の画像データを生成する合成画像データ生成手段と、を備え、
前記複数の被写体範囲情報が表す被写体範囲の相違は、前記複数の被写体範囲情報を算出する基礎とされた被写体画像の中から選択した２つの被写体画像を前記背景が一致するように重ねた場合における、２つの前記被写体範囲の位置の相違を含む、
ことを特徴とする画像生成装置。
【請求項８】
被写体を撮像することで、前記被写体を表す被写体画像を複数生成する撮像手段と、
前記撮像手段によって生成された被写体画像の画像データを複数取得する請求項１から７のいずれか一項に記載の画像生成装置と、を備える、
ことを特徴とする撮像装置。
【請求項９】
コンピュータを、
被写体を表す被写体画像の画像データを複数取得する被写体画像データ取得手段、
前記被写体の背景を表す背景画像の画像データを取得する背景画像データ取得手段、
前記複数の被写体画像それぞれの画素値と前記背景画像の画素値とに基づいて、前記被写体が表された被写体領域を表す被写体領域情報を、前記被写体画像のそれぞれから検出する被写体領域情報検出手段、
前記複数の被写体領域情報に基づいて、前記複数の被写体画像のそれぞれから、前記被写体領域を表す被写体領域画像を生成する被写体領域画像生成手段、
前記複数の被写体領域情報のそれぞれから、前記被写体領域を包含する被写体範囲を表す被写体範囲情報を算出する被写体範囲情報算出手段、
前記複数の被写体範囲情報で表される被写体範囲の差異に基づいて、前記生成された複数の被写体領域画像から、前記被写体の動作を表す複数の被写体領域画像を選択する被写体領域画像選択手段、
前記選択された複数の被写体領域画像を合成することで、前記被写体領域画像に表された被写体を並べて表示する合成画像の画像データを生成する合成画像データ生成手段、として機能させ、
前記被写体領域画像選択手段は、
前記合成される被写体領域画像の数を指定する画像数指定情報を取得し、
前記生成された被写体領域画像の数が、前記取得された指定情報で指定される指定画像数以上である場合に、前記被写体範囲情報が表す被写体範囲の大きさが所定の大きさ以下の被写体領域画像を無効画像として特定し、前記被写体範囲の大きさが所定の大きさよりも大きい被写体領域画像を有効画像として特定し、
前記有効画像と特定した被写体領域画像を、前記被写体の動作を表す被写体領域画像として選択する、
ことを特徴とする画像生成プログラム。
【請求項１０】
コンピュータを、
被写体を表す被写体画像の画像データを複数取得する被写体画像データ取得手段、
前記被写体の背景を表す背景画像の画像データを取得する背景画像データ取得手段、
前記複数の被写体画像それぞれの画素値と前記背景画像の画素値とに基づいて、前記被写体が表された被写体領域を表す被写体領域情報を、前記被写体画像のそれぞれから検出する被写体領域情報検出手段、
前記複数の被写体領域情報に基づいて、前記複数の被写体画像のそれぞれから、前記被写体領域を表す被写体領域画像を生成する被写体領域画像生成手段、
前記複数の被写体領域情報のそれぞれから、前記被写体領域を包含する被写体範囲を表す被写体範囲情報を算出する被写体範囲情報算出手段、
前記複数の被写体範囲情報で表される被写体範囲の差異に基づいて、前記生成された複数の被写体領域画像から、前記被写体の動作を表す複数の被写体領域画像を選択する被写体領域画像選択手段、
前記選択された複数の被写体領域画像を合成することで、前記被写体領域画像に表された被写体を並べて表示する合成画像の画像データを生成する合成画像データ生成手段、として機能させ、
前記複数の被写体範囲情報が表す被写体範囲の相違は、前記複数の被写体範囲情報を算出する基礎とされた被写体画像の中から選択した２つの被写体画像を前記背景が一致するように重ねた場合において、前記複数の被写体範囲が重なる部分の面積と、重ならない部分の面積との比率を含む、
ことを特徴とする画像生成プログラム。
【請求項１１】
コンピュータを、
被写体を表す被写体画像の画像データを複数取得する被写体画像データ取得手段、
前記被写体の背景を表す背景画像の画像データを取得する背景画像データ取得手段、
前記複数の被写体画像それぞれの画素値と前記背景画像の画素値とに基づいて、前記被写体が表された被写体領域を表す被写体領域情報を、前記被写体画像のそれぞれから検出する被写体領域情報検出手段、
前記複数の被写体領域情報に基づいて、前記複数の被写体画像のそれぞれから、前記被写体領域を表す被写体領域画像を生成する被写体領域画像生成手段、
前記複数の被写体領域情報のそれぞれから、前記被写体領域を包含する被写体範囲を表す被写体範囲情報を算出する被写体範囲情報算出手段、
前記複数の被写体範囲情報で表される被写体範囲の差異に基づいて、前記生成された複数の被写体領域画像から、前記被写体の動作を表す複数の被写体領域画像を選択する被写体領域画像選択手段、
前記選択された複数の被写体領域画像を合成することで、前記被写体領域画像に表された被写体を並べて表示する合成画像の画像データを生成する合成画像データ生成手段、として機能させ、
前記複数の被写体範囲情報が表す被写体範囲の相違は、前記複数の被写体範囲情報を算出する基礎とされた被写体画像の中から選択した２つの被写体画像を前記背景が一致するように重ねた場合における、２つの前記被写体範囲の位置の相違を含む、
ことを特徴とする画像生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成装置、撮像装置、及び画像生成プログラムに関する。
【背景技術】
【０００２】
特許文献１には、人物又は物体などの被写体を連写して得られた複数の画像から被写体が表された部分画像をそれぞれ抽出した後に、抽出された部分画像を１枚の背景画像に対して撮像時刻に従って順次重ねて表示することで、背景を停止させながら撮像時の被写体の動作を表示する画像（いわゆる、ダイナミックフォト）を生成する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２００８−５２９１５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、特許文献１に係るダイナミックフォト技術では、被写体の動作を表示する画像は、１枚の背景画像と複数枚の部分画像とを特殊なファイルフォーマットを用いて表す１つの電子ファイル（以下単に、ファイルという）として管理されるか、又は背景画像を表すファイルと部分画像を表す複数のファイルとを関連付けたデータとして管理される必要がある。このため、例えば、一般的なファイルフォーマットの静止画などと比べて画像データの管理が面倒であるという問題があった。
【０００５】
そこで、本発明は、このような点に鑑み、その目的とするところは、被写体の動きを表す管理が容易な画像データを生成できる画像生成装置、撮像装置、及び画像生成プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の第１の観点に係る画像生成装置は、
被写体を表す被写体画像の画像データを複数取得する被写体画像データ取得手段と、
前記被写体の背景を表す背景画像の画像データを取得する背景画像データ取得手段と、
前記複数の被写体画像それぞれの画素値と、前記背景画像の画素値とに基づいて、前記被写体が表された被写体領域を表す被写体領域情報を、前記被写体画像のそれぞれから検出する被写体領域情報検出手段と、
前記検出された複数の被写体領域情報に基づいて、前記複数の被写体画像のそれぞれから、前記被写体領域を表す被写体領域画像を生成する被写体領域画像生成手段と、
前記検出された複数の被写体領域情報のそれぞれから、前記被写体領域を包含する被写体範囲を表す被写体範囲情報を算出する被写体範囲情報算出手段と、
前記算出された複数の被写体範囲情報で表される被写体範囲の差異に基づいて、前記生成された複数の被写体領域画像から、前記被写体の動作を表す複数の被写体領域画像を選択する被写体領域画像選択手段と、
前記選択された複数の被写体領域画像を合成することで、前記被写体領域画像に表された被写体を並べて表示する合成画像の画像データを生成する合成画像データ生成手段と、を備え、
前記被写体領域画像選択手段は、
前記合成される被写体領域画像の数を指定する画像数指定情報を取得し、
前記生成された被写体領域画像の数が、前記取得された指定情報で指定される指定画像数以上である場合に、前記被写体範囲情報が表す被写体範囲の大きさが所定の大きさ以下の被写体領域画像を無効画像として特定し、前記被写体範囲の大きさが所定の大きさよりも大きい被写体領域画像を有効画像として特定し、
前記有効画像と特定した被写体領域画像を、前記被写体の動作を表す被写体領域画像として選択する、
ことを特徴とする。
【０００８】
また、第１の観点に係る画像生成装置において、
前記被写体領域画像選択手段は、前記特定した有効画像の数が前記指定画像数以上である場合に、前記検出された被写体範囲情報が表す被写体範囲の差異が大きい有効画像から順に、前記指定情報で指定された画像数だけ選択する、
ことが望ましい。
【０００９】
さらに、第１の観点に係る画像生成装置において、
前記被写体領域画像選択手段は、前記生成された被写体領域画像の数が前記指定画像数より少ない場合に、前記指定画像数に対して不足する数の被写体領域画像を、重複して前記合成画像に表示される被写体を表す重複画像として特定し、
前記合成画像データ生成手段は、前記特定された重複画像で表される被写体を、表示される複数の被写体に対して全体的に一様に分布するように重複表示する合成画像を生成する、
ことが望ましい。
【００１０】
また、第１の観点に係る画像生成装置において、
前記合成画像データ生成手段は、
前記合成画像の形状を表す合成画像形状情報を取得する形状情報取得手段と、
前記複数の被写体範囲情報に基づいて、前記選択された複数の被写体領域画像の被写体範囲を包含する有効範囲を表す有効範囲情報を算出する有効範囲算出手段と、
前記取得された合成画像形状情報と、前記取得された画像数指定情報と、前記算出された有効範囲情報とに基づいて、前記合成画像を前記有効範囲と同一又は相似の形状を有する前記指定画像数の分割領域に分割する合成画像分割手段と、
前記選択された前記指定画像数の被写体領域画像を、前記合成画像の前記分割領域のそれぞれに対して合成する画像合成手段と、を備える、
ことが望ましい。
【００１１】
さらにまた、第１の観点に係る画像生成装置において、
前記複数の被写体範囲情報が表す被写体範囲の相違は、前記複数の被写体範囲の画素値の相違、又は前記複数の被写体範囲に含まれる被写体領域の画素値の相違を含む、
ことが望ましい。
【００１２】
上記目的を達成するため、本発明の第２の観点に係る画像生成装置は、
被写体を表す被写体画像の画像データを複数取得する被写体画像データ取得手段と、
前記被写体の背景を表す背景画像の画像データを取得する背景画像データ取得手段と、
前記複数の被写体画像それぞれの画素値と、前記背景画像の画素値とに基づいて、前記被写体が表された被写体領域を表す被写体領域情報を、前記被写体画像のそれぞれから検出する被写体領域情報検出手段と、
前記検出された複数の被写体領域情報に基づいて、前記複数の被写体画像のそれぞれから、前記被写体領域を表す被写体領域画像を生成する被写体領域画像生成手段と、
前記検出された複数の被写体領域情報のそれぞれから、前記被写体領域を包含する被写体範囲を表す被写体範囲情報を算出する被写体範囲情報算出手段と、
前記算出された複数の被写体範囲情報で表される被写体範囲の差異に基づいて、前記生成された複数の被写体領域画像から、前記被写体の動作を表す複数の被写体領域画像を選択する被写体領域画像選択手段と、
前記選択された複数の被写体領域画像を合成することで、前記被写体領域画像に表された被写体を並べて表示する合成画像の画像データを生成する合成画像データ生成手段と、を備え、
前記複数の被写体範囲情報が表す被写体範囲の相違は、前記複数の被写体範囲情報を算出する基礎とされた被写体画像の中から選択した２つの被写体画像を前記背景が一致するように重ねた場合において、前記複数の被写体範囲が重なる部分の面積と、重ならない部分の面積との比率を含む、
ことを特徴とする。
【００１３】
上記目的を達成するため、本発明の第３の観点に係る画像生成装置は、
被写体を表す被写体画像の画像データを複数取得する被写体画像データ取得手段と、
前記被写体の背景を表す背景画像の画像データを取得する背景画像データ取得手段と、
前記複数の被写体画像それぞれの画素値と、前記背景画像の画素値とに基づいて、前記被写体が表された被写体領域を表す被写体領域情報を、前記被写体画像のそれぞれから検出する被写体領域情報検出手段と、
前記検出された複数の被写体領域情報に基づいて、前記複数の被写体画像のそれぞれから、前記被写体領域を表す被写体領域画像を生成する被写体領域画像生成手段と、
前記検出された複数の被写体領域情報のそれぞれから、前記被写体領域を包含する被写体範囲を表す被写体範囲情報を算出する被写体範囲情報算出手段と、
前記算出された複数の被写体範囲情報で表される被写体範囲の差異に基づいて、前記生成された複数の被写体領域画像から、前記被写体の動作を表す複数の被写体領域画像を選択する被写体領域画像選択手段と、
前記選択された複数の被写体領域画像を合成することで、前記被写体領域画像に表された被写体を並べて表示する合成画像の画像データを生成する合成画像データ生成手段と、を備え、
前記複数の被写体範囲情報が表す被写体範囲の相違は、前記複数の被写体範囲情報を算出する基礎とされた被写体画像の中から選択した２つの被写体画像を前記背景が一致するように重ねた場合における、２つの前記被写体範囲の位置の相違を含む、
ことを特徴とする。
【００１４】
上記目的を達成するため、本発明の第４の観点に係る撮像装置は、
被写体を撮像することで、前記被写体を表す被写体画像を複数生成する撮像手段と、
前記撮像手段によって生成された被写体画像の画像データを複数取得する上記画像生成装置のいずれか１つと、を備える、
ことを特徴とする。
【００１５】
上記目的を達成するため、本発明の第５の観点に係る画像生成プログラムは、
コンピュータを、
被写体を表す被写体画像の画像データを複数取得する被写体画像データ取得手段、
前記被写体の背景を表す背景画像の画像データを取得する背景画像データ取得手段、
前記複数の被写体画像それぞれの画素値と前記背景画像の画素値とに基づいて、前記被写体が表された被写体領域を表す被写体領域情報を、前記被写体画像のそれぞれから検出する被写体領域情報検出手段、
前記複数の被写体領域情報に基づいて、前記複数の被写体画像のそれぞれから、前記被写体領域を表す被写体領域画像を生成する被写体領域画像生成手段、
前記複数の被写体領域情報のそれぞれから、前記被写体領域を包含する被写体範囲を表す被写体範囲情報を算出する被写体範囲情報算出手段、
前記複数の被写体範囲情報で表される被写体範囲の差異に基づいて、前記生成された複数の被写体領域画像から、前記被写体の動作を表す複数の被写体領域画像を選択する被写体領域画像選択手段、
前記選択された複数の被写体領域画像を合成することで、前記被写体領域画像に表された被写体を並べて表示する合成画像の画像データを生成する合成画像データ生成手段、として機能させ、
前記被写体領域画像選択手段は、
前記合成される被写体領域画像の数を指定する画像数指定情報を取得し、
前記生成された被写体領域画像の数が、前記取得された指定情報で指定される指定画像数以上である場合に、前記被写体範囲情報が表す被写体範囲の大きさが所定の大きさ以下の被写体領域画像を無効画像として特定し、前記被写体範囲の大きさが所定の大きさよりも大きい被写体領域画像を有効画像として特定し、
前記有効画像と特定した被写体領域画像を、前記被写体の動作を表す被写体領域画像として選択する、
ことを特徴とする。
上記目的を達成するため、本発明の第６の観点に係る画像生成プログラムは、
コンピュータを、
被写体を表す被写体画像の画像データを複数取得する被写体画像データ取得手段、
前記被写体の背景を表す背景画像の画像データを取得する背景画像データ取得手段、
前記複数の被写体画像それぞれの画素値と前記背景画像の画素値とに基づいて、前記被写体が表された被写体領域を表す被写体領域情報を、前記被写体画像のそれぞれから検出する被写体領域情報検出手段、
前記複数の被写体領域情報に基づいて、前記複数の被写体画像のそれぞれから、前記被写体領域を表す被写体領域画像を生成する被写体領域画像生成手段、
前記複数の被写体領域情報のそれぞれから、前記被写体領域を包含する被写体範囲を表す被写体範囲情報を算出する被写体範囲情報算出手段、
前記複数の被写体範囲情報で表される被写体範囲の差異に基づいて、前記生成された複数の被写体領域画像から、前記被写体の動作を表す複数の被写体領域画像を選択する被写体領域画像選択手段、
前記選択された複数の被写体領域画像を合成することで、前記被写体領域画像に表された被写体を並べて表示する合成画像の画像データを生成する合成画像データ生成手段、として機能させ、
前記複数の被写体範囲情報が表す被写体範囲の相違は、前記複数の被写体範囲情報を算出する基礎とされた被写体画像の中から選択した２つの被写体画像を前記背景が一致するように重ねた場合において、前記複数の被写体範囲が重なる部分の面積と、重ならない部分の面積との比率を含む、
ことを特徴とする。
上記目的を達成するため、本発明の第７の観点に係る画像生成プログラムは、
コンピュータを、
被写体を表す被写体画像の画像データを複数取得する被写体画像データ取得手段、
前記被写体の背景を表す背景画像の画像データを取得する背景画像データ取得手段、
前記複数の被写体画像それぞれの画素値と前記背景画像の画素値とに基づいて、前記被写体が表された被写体領域を表す被写体領域情報を、前記被写体画像のそれぞれから検出する被写体領域情報検出手段、
前記複数の被写体領域情報に基づいて、前記複数の被写体画像のそれぞれから、前記被写体領域を表す被写体領域画像を生成する被写体領域画像生成手段、
前記複数の被写体領域情報のそれぞれから、前記被写体領域を包含する被写体範囲を表す被写体範囲情報を算出する被写体範囲情報算出手段、
前記複数の被写体範囲情報で表される被写体範囲の差異に基づいて、前記生成された複数の被写体領域画像から、前記被写体の動作を表す複数の被写体領域画像を選択する被写体領域画像選択手段、
前記選択された複数の被写体領域画像を合成することで、前記被写体領域画像に表された被写体を並べて表示する合成画像の画像データを生成する合成画像データ生成手段、として機能させ、
前記複数の被写体範囲情報が表す被写体範囲の相違は、前記複数の被写体範囲情報を算出する基礎とされた被写体画像の中から選択した２つの被写体画像を前記背景が一致するように重ねた場合における、２つの前記被写体範囲の位置の相違を含む、
ことを特徴とする。
【発明の効果】
【００１７】
本発明の画像生成装置、撮像装置、及び画像生成プログラムによれば、被写体の動きを表す管理が容易な画像データを生成できる。
【図面の簡単な説明】
【００１８】
【図１】（ａ）は、本発明の実施形態に係るデジタルカメラのハードウェアの一構成例を表す図であり、（ｂ）は、本発明の実施形態に係る画像生成装置のハードウェアの一構成例を表す図である。
【図２】（ａ）は、デジタルカメラが撮像する連写画像の一例を表す図であり、（ｂ）は、デジタルカメラが撮像する背景画像の一例を表す図であり、（ｃ）は、連写画像と背景画像とから生成された被写体領域画像の一例を表す図である。
【図３】（ａ）は、図１５のフレームに基づいて生成された結果画像の一例を表す図であり、（ｂ）は、図１６のフレームに基づいて生成された結果画像の一例を表す図である。
【図４】（ａ）は、制御部が実行する合成画像生成処理の一例を表すフローチャートであり、（ｂ）は、被写体画像データ取得部が実行する被写体画像データ取得処理の一例を表すフローチャートであり、（ｃ）は、背景画像データ取得部が実行する背景画像データ取得処理の一例を表すフローチャートである。
【図５】（ａ）は、画像生成装置の有する機能の一例を表す機能ブロック図であり、（ｂ）は、合成画像データ生成部の一構成例を表す図である。
【図６】（ａ）は、被写体撮像指示画面の一例を表す図であり、（ｂ）は、背景撮像指示画面の一例を表す図である。
【図７】背景画像データ取得部が実行する背景画像生成処理の一例を表すフローチャートである。
【図８】（ａ）は、制御部が実行する被写体領域切抜処理の一例を表すフローチャートであり、（ｂ）は、被写体領域情報検出部が実行する被写体領域情報検出処理の一例を表すフローチャートである。
【図９】（ａ）は、被写体画像の画像データの一例を表す図であり、（ｂ）は、背景画像の画像データの一例を表す図であり、（ｃ）は、相違マップの一例を表す図である。
【図１０】（ａ）は、マスクデータの一例を表す図であり、（ｂ）は、マスクデータをｘ軸方向及びｙ軸方向に投影した投影像の一例を表す図である。
【図１１】被写体範囲情報算出部が実行する被写体範囲情報算出処理の一例を表すフローチャートである。
【図１２】（ａ）は、制御部が実行する画像合成処理の一例を表すフローチャートであり、（ｂ）は、縦横分割数算出部が実行する縦横分割数算出処理の一例を表すフローチャートである。
【図１３】有効画像選択部が実行する有効画像選択処理の一例を表すフローチャートである。
【図１４】連続した被写体無しフレームを１つの有効フレームとする処理の一例を説明するための図である。
【図１５】被写体範囲の差異が少ない有効フレームを無効フレームとする処理の一例を説明するための図である。
【図１６】重複利用フレームを選択する処理の一例と、複製利用フレームを生成する処理の一例とを説明するための図である。
【図１７】（ａ）は、拡大／縮小率算出部が実行する拡大／縮小率算出処理の一例を表すフローチャートであり、（ｂ）は、被写体範囲補正部が実行する被写体範囲補正処理の一例を表すフローチャートである。
【図１８】合成画像生成部が実行する合成画像生成処理の一例を表すフローチャートである。
【図１９】（ａ）は、変形例１における基準被写体画像の一例を表す図であり、（ｂ）は、変形例１におけるシフト被写体画像の一例を表す図であり、（ｃ）は、基準被写体画像とシフト被写体画像とを背景が一致するように重ねた画像の一例を表す図である。
【図２０】（ａ）は、変形例２における基準被写体画像の一例を表す図であり、（ｂ）は、変形例２におけるシフト被写体画像の一例を表す図であり、（ｃ）は、基準被写体画像とシフト被写体画像とを背景が一致するように重ねた画像の一例を表す図である。
【発明を実施するための形態】
【００１９】
本発明の実施形態に係る撮像装置は、図１（ａ）に示すようなデジタルカメラ１であり、本発明の実施形態に係る画像生成装置２１０を搭載している。デジタルカメラ１は、例えば、静止画を撮像する機能、特に、１回のシャッタ操作で一連かつ複数の静止画像を得る連写機能を有する。
【００２０】
ここで、図２（ａ）に示すような連写機能により得られた被写体を表す一連の画像（以下、被写体画像）Ｐ１からＰ６で構成される画像群を、以下単に、被写体画像群又は連写画像という。本実施形態において、デジタルカメラ１は、連写画像に表された人物（つまり、被写体）を表す複数の部分画像を合成することで、図３（ａ）及び（ｂ）に示すようなこれらの部分画像を並べて表示する合成画像ＣＩａ及びＣＩｂを生成する。しかし、これに限定される訳ではなく、デジタルカメラ１は、それぞれ単写された複数の画像で構成される画像群を用いて合成画像を生成しても良いし、動画像から抽出された複数の静止画像（つまり、フレーム）で構成される画像群を用いて合成画像を生成しても良い。尚、被写体は、人物に限定される訳ではなく、例えば、航空機や自動車などの物体であっても良い。
【００２１】
デジタルカメラ１は、図１（ａ）に示すように、撮像部１００、データ処理装置２００、及びインタフェース部３００から構成される。
撮像部１００は、デジタルカメラ１の撮像動作を行う部分であり、図１（ａ）に示すような光学装置１１０及びイメージセンサ１２０で構成されている。
【００２２】
光学装置１１０は、例えば、不図示のレンズ、絞り機構、及びシャッタ機構を含み、撮像に係る光学的動作を行う。
【００２３】
イメージセンサ１２０は、例えば、ＣＣＤ（Charge Coupled Device：電荷結合素子）やＣＭＯＳ（Complementally Metal Oxide Semiconductor：相補型金属酸化物半導体）などのイメージセンサから構成される。イメージセンサ１２０は、光学装置１１０によって集光された入射光に応じた電気信号を生成し、生成した電気信号をデータ処理部２００に出力する。
【００２４】
データ処理部２００は、撮像部１００によって生成されたアナログ電気信号を信号処理することで、撮像部１００で撮像された画像を示すデジタルデータ（つまり、画像データ）を生成し、生成した画像に対して各種の画像処理を行う。
【００２５】
データ処理部２００は、制御部２１０、画像処理部２２０、記憶部２３０、及び画像出力部２４０から構成される。制御部２１０は、例えば、図１（ｂ）に示すようなＣＰＵ（Central Processing Unit）２１０ａ、ＲＡＭ（Random Access Memory）２１０ｂ、ＲＯＭ（Read Only Memory）２１０ｃ、及びＩ／Ｏポート２１０ｄを備えるＬＳＩ（Large Scale Integration）で構成される。
【００２６】
ＣＰＵ２１０ａは、ＲＯＭ２１０ｃに保存されたプログラムに従ってソフトウェア処理を実行することで、画像生成装置２１０を含むデジタルカメラ１の各部を制御（つまり、全体制御）する。ＲＡＭ２１０ｂは、ＣＰＵ２１０ａによるプログラムの実行時において、処理対象とする情報（データ）を一時的に記憶する。Ｉ／Ｏポート２１０ｄは、制御部２１０と接続する各部とＣＰＵ２１０ａとの間でデータの入出力を行う。
【００２７】
画像処理部２２０は、例えば、バッファメモリ、ＡＤ（Analog/Digital）コンバータ、及び画像処理用のプロセッサで構成される。画像処理部２２０のＡＤコンバータは、イメージセンサ１２０から出力されたアナログ電気信号をデジタル信号に変換する。その後、画像処理部２２０のプロセッサは、いわゆる現像処理を行うことで、例えば、例えば、ＪＰＥＧ（Joint Photographic Experts Group）やビットマップなどの画像データを生成し、生成した画像データを撮像時刻と関連付けてＤＲＡＭへ保存する。尚、撮像時刻は、画像データを保存した時刻であっても、イメージセンサ１２０から信号を受信した時刻であっても構わない。
【００２８】
記憶部２３０は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）やフラッシュメモリなどの記憶装置から構成され、画像処理部２２０によって生成された画像データや、制御部２１０によって生成された画像データなどを記憶する。
【００２９】
画像出力部２４０は、例えば、液晶表示コントローラやＲＧＢ信号の生成回路などから構成され、記憶部２３０に記憶された画像データをＲＧＢ信号などに変換した後に、ＲＧＢ信号を後述する表示部３２０などに出力する。
【００３０】
インタフェース部３００は、デジタルカメラ１とその使用者（つまり、ユーザ）あるいは外部装置とのインタフェースに係る構成であり、外部インタフェース部３１０、表示部３２０、及び操作部３３０で構成される。
【００３１】
外部インタフェース部３１０は、例えば、ＵＳＢ（Universal Serial Bus）コネクタやビデオ出力端子などから構成され、外部のコンピュータ装置に対する画像データの出力及び外部のモニタ装置に対する合成画像の表示出力を行う。
【００３２】
表示部３２０は、例えば、液晶表示装置や有機ＥＬ（Electro Luminescence）ディスプレイなどから構成される。表示部３２０は、デジタルカメラ１を操作するために必要な種々の画面や、画像出力部２４０からの画像信号（ＲＧＢ信号）などに基づいて合成画像等を表示する。
【００３３】
操作部３３０は、デジタルカメラ１の外面上に構成されている各種ボタンなどによって構成され、デジタルカメラ１のユーザによる操作に応じた操作信号を生成し、生成した操作信号を制御部２１０に入力する。操作部３３０には、例えば、シャッタ動作を指示するためのシャッタボタンや、デジタルカメラ１の有する動作モードを指定するためのモードボタン、各種設定を行うための十字キーや機能ボタンなどが含まれる。尚、動作モードには、通常の撮像を行う通常撮像モード、連写撮像を行う連写撮像モード、連写撮像及び連写撮像により得た連写画像から合成画像を生成する合成画像生成モードが含まれる。
【００３４】
制御部２１０のＣＰＵ２０１ａは、ＲＯＭ２１０ｃ又は記憶部２３０に格納されたプログラムに従って複数の画像を合成した合成画像を生成する合成画像生成処理を実行する。ここで、合成画像生成処理の結果生成される合成画像を、以下、結果画像ともいう。結果画像は、例えば、図３（ａ）及び（ｂ）に示すような、複数の被写体を表す画像を漫画のコマ割のように並べて表示することで、被写体の動作を表すコマふりダイナミックフォトを含む。このため、合成画像を生成する合成画像生成モードを、以下、コマふりダイナミックフォトモードともいう。尚、結果画像は、表示する複数の画像間にコマ割を表す割線（つまり、線分）を表示してもしなくても良い。
【００３５】
ユーザがデジタルカメラ１のモードボタン等を押下げると、制御部２１０のＣＰＵ２０１ａは、操作部３３０から出力される操作信号に基づいて、コマふりダイナミックフォトモード（つまり、合成画像生成モード）が選択されたと判別する。次に、ＣＰＵ２０１ａは、図４（ａ）に示すような合成画像生成処理の実行を開始することで、図５（ａ）に示す被写体画像データ取得部２１１、背景画像データ取得部２１２、被写体領域情報検出部２１３、被写体範囲情報算出部２１４、被写体領域画像生成部２１５、被写体領域画像選択部２１６、被写体範囲画像生成部２１７、合成画像データ生成部２１８、及び合成画像出力制御部２１９として機能する。尚、合成画像データ生成部２１８は、図５（ｂ）に示すような分割数算出部２１８ａ、拡大／縮小率算出部２１８ｂ、被写体範囲補正部２１８ｃ、及び合成画像生成部２１８ｄを有する。
【００３６】
図４（ａ）の合成画像生成処理を開始すると、図５（ａ）の被写体画像データ取得部２１１は、撮像部１００を制御して被写体を撮像させることで被写体画像を取得する、図４（ｂ）に示すような被写体画像データ取得処理を実行する（ステップＳ０１）。
【００３７】
図４（ｂ）の被写体画像データ取得処理の実行を開始すると、被写体画像データ取得部２１１は、図６（ａ）に示すような被写体の撮像を指示するメッセージと、ライブビュー画像（つまり、シャッタボタンが押し下げられていない場合に撮像部１００が所定時間間隔で撮像した画像の内、最新の画像）とで構成される被写体撮像指示画面を表示部３２０に表示させる（ステップＳ１１）。また、被写体画像データ取得部２１１は、被写体を撮像する枚数の指定を促すメッセージを表示するように表示部３２０を制御する。次に、被写体画像データ取得部２１１は、操作部３３０から出力される信号に基づいて、ユーザによって指示された撮像枚数（以下、指示撮像枚数という）Ｍを表す撮像枚数情報を取得する（ステップＳ１２）。
【００３８】
ここで、ユーザにより操作部３３０のシャッタボタンが押されると、操作部３３０は、シャッタボタンの押下されている間、例えば１００ｍｓの所定時間間隔で、押下操作に応じた操作信号を制御部２１０に送信し続ける。
【００３９】
図４（ｂ）のステップＳ１２の後に、被写体画像データ取得部２１１は、被写体を撮像する被写体撮像制御処理を実行する（ステップＳ１３）。具体的には、被写体画像データ取得部２１１は、操作部３３０から操作信号を受信すると、ユーザによりシャッタボタンが押下されたと判別し、被写体の撮像を開始するように図１（ａ）の撮像部１００を制御する。また、被写体画像データ取得部２１１は、操作部３３０から操作信号を受信し続ける間、被写体の連写撮像を継続するように撮像部１００を制御する。その後、被写体画像データ取得部２１１は、撮像回数が撮像枚数Ｍに達した後に、所定の時間を超えて操作部３３０から操作信号を受信しなくなると、シャッタボタンの押下が停止された（つまり、押上られた）と判別し、撮像を停止するように撮像部１００を制御する。尚、指示された撮像枚数Ｍが１枚の場合には、被写体画像データ取得部２１１は、連写せず、通常の撮像を行うように撮像部１００を制御する。
【００４０】
被写体画像データ取得部２１１に制御された撮像部１００は、連写撮像によって、図２（ａ）に示すような一連の画像Ｐ１からＰ６を生成し、生成した画像Ｐ１からＰ６を表す信号を画像処理部２２０に順次送信する。画像処理部２２０は、撮像部１００から画像信号を受信すると、受信した信号に基づいて画像Ｐ１からＰ６を表すＪＰＥＧフォーマットなどの画像データに生成し、生成した画像データを記憶部２３０に格納（保存）する。その後、被写体画像データ取得部２１１は、記憶部２３０に格納された画像Ｐ１からＰ６を表す画像データを取得してから（ステップＳ１４）、被写体画像取得処理の実行を終了する。
【００４１】
図４（ａ）のステップＳ０１の後に、図５（ａ）の背景画像データ取得部２１２は、被写体画像Ｐ１からＰ６における被写体の背景を表す背景画像の画像データを取得する、図４（ｃ）に示すような背景画像データ取得処理を実行する（ステップＳ０２）。
【００４２】
図４（ｃ）の背景画像データ取得処理を開始すると、背景画像データ取得部２１２は、記憶部２３０に記憶された被写体画像に基づいて背景画像を生成する、図７に示すような背景画像生成処理を実行する（ステップＳ２１）。尚、背景画像生成処理は、以下の図７に示す処理に限定されるのではなく、例えば、特許文献である特開２０１０−６７１２５公報に記載の擬似背景生成処理であっても良い。
【００４３】
図７の背景生成処理の実行を開始すると、背景画像データ取得部２１２は、記憶部２３０に記憶された連写画像の中から１枚の画像を選択し、選択した画像を所定の数Ｂｍａｘの升目状ブロックに分割する（ステップＳ３１）。尚、背景画像データ取得部２１２は、複数の被写体画像の内で、最初又は最後に撮像された画像を分割しても良いし、背景の生成が成功するまで連写画像の中から１枚ずつ被写体画像を選択し分割しても良い。また、背景画像データ取得部２１２は、分割されたブロックに対して、番号１から順にＢｍａｘまで一意の番号を割り振る。
【００４４】
次に、背景画像データ取得部２１２は、背景生成処理の実行対象とするブロックを識別する番号Ｂ（以下、処理ブロック番号という）を表す変数に対して値’０’を代入して初期化する。また、背景画像データ取得部２１２は、背景を表すブロックであると判別されたブロック（以下、有効ブロックという）の数Ｂｏｋを表す変数に対して値’０’を代入して初期化する（ステップＳ３２）。
【００４５】
次に、背景画像データ取得部２１２は、以下の式（１）及び（２）を用いて処理ブロック番号Ｂのブロック（以下、処理ブロックという）の変動量を算出する（ステップＳ３３）。尚、処理ブロックの変動量とは、例えば、標準偏差σなどのブロック内部の画素色がどの程度ばらついているか（つまり、一様でないか）を表す指数である。つまり、ブロックの変動量である標準偏差σは、ブロック内の画素が全て同一の色であれば‘０’となり、ブロック内の色が多様（つまり、ばらついており一様でない）になる程大きな値となる。
【００４６】
【数１】
0005573520.tif 000002
但し、ｂａｖｅは処理ブロック内の画素値の平均値を表し、Ｎは処理ブロック内の画素数Ｎを表し、ｎは画素番号を表し、ｂｎは処理ブロック内の画素値を表し、σは、処理ブロック内の画素値の標準偏差である変動量を表す。
【００４７】
ステップＳ３３を実行した後に、背景画像データ取得部２１２は、処理ブロックの色が一様であるか否かを判別するための閾値１をＲＯＭ２１０ｃ又は記憶部２３０から読み出し、ステップＳ３３で算出された変動量が、読み出された閾値１よりも小さいか否か判別する（ステップＳ３４）。このとき、背景画像データ取得部２１２は、変動量が閾値１以上であると判別すると（ステップＳ３４；Ｎｏ）、処理ブロックは主に被写体を表すと判別し、ステップＳ３５の特徴点を検出する処理、及びステップＳ３７の平均色を算出する処理の双方を行わずに、ステップＳ３８の処理を実行する。
【００４８】
この構成によれば、例えば、単一色の背景の前で被写体を撮像した場合には、背景は、被写体に比べて変動量が少ないので、変動量に基づいて処理ブロックが背景を表すブロックであるか被写体を表すブロックであるかを判別できる。また、処理ブロックが被写体を表すブロックであると判別すると、ステップＳ３５及びステップＳ３７の処理を実行しないため背景画像を生成するための計算量を削減できる。
【００４９】
ステップＳ３４において、背景画像データ取得部２１２は、変動量が閾値１よりも小さいと判別すると（ステップＳ３４；Ｙｅｓ）、処理ブロック（つまり、処理ブロック番号Ｂのブロック）を特徴付ける特徴点を、例えば、ハリスのコーナー特徴量などに基づいて検出する（ステップＳ３５）。次に、背景画像データ取得部２１２は、検出した特徴点の数を計数する。その後、背景画像データ取得部２１２は、処理ブロックが、特徴を有する画像を表すか否かを判別するための閾値２をＲＯＭ２１０ｃ又は記憶部２３０から読み出し、計数した特徴点の数が読み出した閾値２よりも少ないか否か判別する（ステップＳ３６）。ここで、例えば、単一色の背景の前で被写体を撮像した場合には、背景は、被写体に比べてコーナー等の特徴的な点を有さないので、処理ブロックから特徴点が検出される場合には、検出された特徴点は、処理ブロックに表された背景ではなく被写体の特徴を表すと考えられる。つまり、この構成によれば、特徴点に基づいて処理ブロックが背景を表すブロックであるか被写体を表すブロックであるかを判別するため、精度良く処理ブロックが背景を表すブロックであるか否かを判別できる。
【００５０】
ステップＳ３６において、背景画像データ取得部２１２は、特徴点の数が閾値２よりも少ないと判別すると（ステップＳ３６；Ｙｅｓ）、処理ブロック内の平均色を算出する（ステップＳ３７）。次に、背景画像データ取得部２１２は、処理ブロックは背景の一部を表すと判別し、有効ブロック数Ｂｏｋを表す変数値を値’１’だけインクリメントする（ステップＳ３８）。
【００５１】
ステップＳ３４において、処理ブロックの変動量が閾値１以上であると判別された場合、ステップＳ３６において、処理ブロックから検出された特徴点の数が閾値２以上であると判別された場合、又はステップＳ３８を実行した後に、背景画像データ取得部２１２は、処理ブロック番号Ｂを表す変数を値‘１’だけインクリメントする（ステップＳ３９）。
【００５２】
その後、背景画像データ取得部２１２は、処理ブロック番号Ｂが分割数Ｂｍａｘと等しいか否かを判別する（ステップＳ４０）。このとき、制御部２１０は、処理ブロック番号Ｂが分割数Ｂｍａｘと等しくないと判別すると（ステップＳ４０；Ｎｏ）、ステップＳ３３に戻り上記処理を繰り返す。これに対して、処理ブロック番号Ｂが分割数Ｂｍａｘと等しいと判別すると（ステップＳ４０；Ｙｅｓ）、背景画像データ取得部２１２は、有効ブロック（つまり、背景の一部を表すと判別されたブロック）の数Ｂｏｋが、背景を生成するのに必要なブロックの数（以下、必要ブロック数という）よりも多いか否かを判別する（ステップＳ４１）。
【００５３】
尚、この必要ブロック数を表すデータは、ＲＯＭ２１０ｃ又は記憶部２３０に記憶されている。また、必要ブロック数は、単一色の背景の前で被写体を撮像したか否かを判別するための閾値であり、必要ブロック数を表すデータに基づいて定められる。具体例としては、必要ブロック数を定める値は、被写体画像の総ブロック数Ｂｍａｘに対して、通常、単一色の背景の前で被写体を撮像した場合に検出される有効ブロック数の割合である。この場合、被写体画像を２４ブロックに分割すると（つまり、Ｂｍａｘが２４の場合）には、背景画像データ取得部２１２は、記憶部２３０から必要ブロック数を定める値’０．５’を読み出し、読み出した値’０．５’を値’２４’に乗算した値’１２’を必要ブロック数とする。
【００５４】
ステップＳ４１において、背景画像データ取得部２１２は、有効ブロックの数Ｂｏｋが必要ブロック数よりも多いと判別すると（ステップＳ４１；Ｙｅｓ）、有効ブロックのうちで同一色とみなされるブロックの数を、ブロック色毎に算出する（ステップＳ４２）。具体的には、背景画像データ取得部２１２は、有効ブロックのそれぞれについて、ブロック内部に含まれる画素値の平均値ｂａｖｅの差が、例えば、誤差の範囲内とみなせる（つまり、所定値以下）のブロックを同一色ブロックとし、同一色ブロックの数を同一色ブロックの色毎にカウントする。例えば、１画素２５６色の画像を挙げて説明すると、２５６の１０％を誤差範囲内とみなす場合には、平均値ｂａｖｅの差が２５以内の有効ブロックを同一色ブロックとしてカウントする。
【００５５】
ステップＳ４２の後に、背景画像データ取得部２１２は、最も多い数の同一色ブロック（以下、最多同一色ブロックという）の数が、ステップＳ４１で用いられる必要ブロック数よりも多いか否かを判別する（ステップＳ４３）。必要ブロック数は、単一色の背景の前で被写体を撮像した場合に、通常、検出される有効ブロック数を表すためである。このとき、背景画像データ取得部２１２は、最多同一色ブロックが必要ブロック数よりも多いと判別すると（ステップＳ４３；Ｙｅｓ）、最多同一色ブロックの平均色を被写体画像の背景色と特定する（ステップＳ４４）。その後、背景画像データ取得部２１２は、特定した背景色（例えば、青一色）で塗り潰した、連写画像と同一サイズの画像を背景画像として生成する（ステップＳ４５）。その後、背景画像データ取得部２１２は、その生成した画像を表す、例えば、ＪＰＥＧ又はビットマップなどの所定フォーマットの画像データを生成し、生成した画像データを記憶部２３０に格納する。その後、背景画像データ取得部２１２は、背景画像生成の成否を表す背景画像生成フラグをオン状態（つまり、背景画像生成成功を表す状態）としてから（ステップＳ４６）、背景画像生成処理の実行を終了する。尚、背景画像データ取得部２１２は、背景画像の生成に成功した旨のメッセージを表示部３２０に表示させても良い。
【００５６】
ステップＳ４１において、背景画像データ取得部２１２は、有効ブロックの数が必要ブロック数以下であると判別した場合（ステップＳ４１；Ｎｏ）、又はステップＳ４３において、最多同一色ブロックの数が必要ブロック数以下であると判別した場合に（ステップＳ４３；Ｎｏ）、背景画像の成否を表す背景画像生成フラグをオフ状態（つまり、背景画像生成失敗を表す状態）としてから（ステップＳ４７）、背景画像生成処理の実行を終了する。尚、背景画像データ取得部２１２は、背景画像の生成に失敗した旨のメッセージを表示部３２０に表示させても良い。
【００５７】
これらの構成によれば、例えば、白い壁や青い布から成るブルーバックなどの単一色の背景を背にした被写体を撮像する場合などには、一様な（つまり、変動量が少ない）画像領域の色に基づいて背景色を特定すると共に、特定した背景色で塗り潰された背景画像を生成する。このため、ユーザがデジタルカメラ１を用いて背景を撮像する必要がなくなるので、デジタルカメラ１の利便性が向上する。
【００５８】
図４（ｃ）のステップＳ２１の後に、背景画像データ取得部２１２は、背景画像生成フラグに基づいて、背景画像の生成が成功したか否かを判別する（ステップＳ２２）。このとき、背景画像データ取得部２１２は、背景画像の生成が成功したと判別すると（ステップＳ２２；Ｙｅｓ）、背景画像データ取得処理の実行を終了する。これに対して、背景画像データ取得部２１２は、背景画像の生成が成功しなかったと判別すると（ステップＳ２２；Ｎｏ）、背景の撮像を開始する。
【００５９】
先ず、背景画像データ取得部２１２は、背景の撮像により取得した背景画像の枚数Ｎを表す変数を値’０’で初期化する（ステップＳ２３）。次に、背景画像データ取得部２１２は、図６（ｂ）に示すような背景の撮像を指示するメッセージとライブビュー画像とで構成される背景撮像指示画面を表示するように表示部３２０を制御する（ステップＳ２４）。その後、背景画像データ取得部２１２は、位置合わせ処理を実行する（ステップＳ２５）。具体的には、背景画像データ取得部２１２は、画像処理部２２０から出力されるライブビュー画像の画像データを記憶部２３０から取得し、取得した画像データで表されるライブビュー画像から特徴点を検出する。次に、背景画像データ取得部２１２は、図７のステップＳ３５で検出した被写体画像の特徴点と、ライブビュー画像の特徴点とが重なるように、デジタルカメラ１を移動させる移動方向を指示するメッセージ又は画像を表示部３２０に表示させる。具体例としては、背景画像データ取得部２１２は、特徴点のテンプレートマッチングなどによりライブビュー画像の特徴点と被写体画像の特徴点とを対応させた後に、対応させた特徴点の位置の相違に基づいて、指示するべきデジタルカメラ１の移動方向を算出すれば良い。その後、ユーザがメッセージに従ってデジタルカメラ１を移動させた後に、背景画像データ取得部２１２は、被写体画像の特徴点と、ライブビュー画像の特徴点とが重なったか否かを判別する。背景画像データ取得部２１２は、被写体画像の特徴点と、ライブビュー画像の特徴点とが重なったと判別すると、シャッタボタンの押し下げ操作が可能になるように、シャッタボタンのロックを解除する。また、背景画像データ取得部２１２は、特徴点とが重なったと判別すると、自動で、撮像を行うように撮像部１００を制御しても良い。この構成によれば、被写体画像の特徴点と、ライブビュー画像の特徴点との位置合わせを行うので、特徴点を検出された被写体画像と、新たに撮像される背景画像との双方に表された背景の特徴的な点の位置が、被写体画像と背景画像とでそれぞれ一致し易い。このため、例えば、被写体画像と、背景画像との画素値の相違に基づいて被写体が表された被写体画像上の領域（以下、被写体領域という）を検出する場合に精度良く被写体領域を検出できる。
【００６０】
図４（ｃ）のステップＳ２５の後に、ユーザにより操作部３３０のシャッタボタンが押下されると、背景画像データ取得部２１２は、操作部３３０から操作信号を受信し、背景画像を撮像するように撮像部１００を制御することで（ステップＳ２６）、図２（ｂ）に示すような背景画像を表す画像データを記憶部２３０から取得した後に（ステップＳ２７）、背景画像の枚数Ｎを表す変数を値’１’だけインクリメントする（ステップＳ２８）。尚、ステップＳ２８の処理により生成された画像データで表される画像が、図２（ｂ）に示す背景画像Ｂ１からＢ６である。
【００６１】
その後、背景画像データ取得部２１２は、背景画像の枚数Ｎを表す変数の値が、指示撮像枚数Ｍと等しいか否かを判別する（ステップＳ２９）。このとき、背景画像データ取得部２１２は、背景画像の枚数Ｎが指示撮像枚数Ｍに等しいと判別すると、背景画像データ取得処理の実行を終了し、これに対して、背景画像の枚数Ｎが指示撮像枚数Ｍと等しくないと判別すると、ステップＳ２３に戻り上記処理を繰り返す。
【００６２】
図４（ａ）のステップＳ０２の後に、制御部２１０は、被写体が表された被写体領域を被写体画像から切り抜く（つまり、抽出する）、図８（ａ）に示すような被写体領域切抜処理を実行する（ステップＳ０３）。
【００６３】
図８（ａ）の被写体領域切抜処理の実行を開始すると、制御部２１０は、被写体領域切抜処理の処理対象とする被写体画像の番号（以下、処理画像番号という）Ｎを表す変数の値を’１’として初期化する（ステップＳ５１）。尚、記憶部２３０に記憶された連写画像を構成する被写体画像は、撮像時刻（又は、保存時刻）順に、番号’１’から’Ｍ’が割り振られている。ステップＳ５１の後に、図５（ａ）に示す制御部２１０の被写体領域情報検出部２１３は、処理画像番号Ｎの被写体画像（以下、処理画像という）から、被写体領域を表す被写体領域情報を検出する、図８（ｂ）に示すような被写体領域情報検出処理を実行する（ステップＳ５２）。
【００６４】
図８（ｂ）の被写体領域情報検出処理の実行を開始すると、被写体領域情報検出部２１３は、図９（ａ）に示すような被写体画像の各画素値と、図９（ｂ）に示すような背景画像の対応する位置の各画素値との相違度（つまり、差異）を表す差分画素値をそれぞれ算出し、算出した差分画素値を各画素値の位置に対応する２次元配列データの要素にそれぞれ格納することで、図９（ｃ）に示すような相違度マップを生成する（ステップＳ６１）。
【００６５】
例えば、被写体画像及び背景画像が図９（ａ）及び図９（ｂ）に示すような１画素２５６色のビットマップデータであるので、被写体領域情報検出部２１３は、それら画像の対応する画素値の差異を絶対値で求め、図９（ｃ）に示すような相違度マップを生成する。具体的には、図９（ａ）の画素ａ及び図９（ｂ）の画素ａのように、２枚の画像の対応する画素値がそれぞれ‘１９’と‘２１’である場合には、被写体領域情報検出部２１３は、それらの画素値の差の絶対値‘２’を、図９（ｃ）の相違度マップの画素ａに記録する。同様に、被写体領域情報検出部２１３は、図９（ａ）の被写体画像の画素ｂと図９（ｂ）の被写体画像の画素ｂと差の絶対値‘２０９’を、図９（ｃ）に示す相違度マップの画素ｂに記録する。
【００６６】
次に、被写体領域情報検出部２１３は、ステップＳ６１で生成した相違度マップを、例えば、被写体領域を表す値を‘２５５’、背景領域を表す値を‘０’として二値化することで、被写体領域を表す被写体領域情報（以下、マスクデータという）を生成する（ステップＳ６２）。具体的には、被写体領域情報検出部２１３は、ＲＯＭ２１０ｃ又は記憶部２３０に予め記憶された被写体検出用の一定閾値を読み出し、相違度マップの画素値が読み出した一定閾値以上の場合は‘２５５’、一定閾値より小さい場合は‘０’として、相違度マップの画素値を置換する。
【００６７】
ステップＳ６２の後に、被写体領域情報検出部２１３は、ステップＳ６２の相違度マップを二値化する処理（つまり、マスクデータを生成する処理）が成功したか否かを判別する（ステップＳ６３）。具体例としては、被写体領域情報検出部２１３は、生成されたマスクデータにおける値’０’が連続した領域（つまり、背景画像と相違がない領域）の面積が所定の面積よりも小さい場合に、二値化処理を失敗したと判別する。これに対して、被写体領域情報検出部２１３は、所定の面積以上である場合に、二値化処理を成功したと判断する。通常、被写体画像には、背景が所定面積以上含まれるので、被写体画像において背景画像と相違が一定閾値より少ない部分の面積が所定面積より小さい場合には、相違度マップを二値化する処理に失敗した可能性が高いためである。尚、二値化処理の成否を判別するための所定面積を表すデータは、ＲＯＭ２１０ｃ又は記憶部２３０に記憶されている。
【００６８】
ステップＳ６３において、被写体領域情報検出部２１３は、二値化処理に成功したと判別した場合に（ステップＳ６３；Ｙｅｓ）、マスクデータのノイズを除去する処理を実行する（ステップＳ６４）。具体的には、被写体領域情報検出部２１３は、生成したマスクデータに対して縮小処理を行った後に、縮小前の（つまり、元の）大きさに戻す拡大（膨張）処理を行う（ステップＳ６５）。この構成によれば、背景画像と被写体画像との位置合わせにおいて生じる誤差により被写体領域の周辺に生じる、例えば、線分状の領域や、被写体画像又は背景画像の撮像時に生じたノイズを除去できるため、精度良く被写体領域を表すマスクデータを生成できる。
【００６９】
被写体領域情報検出部２１３は、ステップＳ６４でノイズを除去されたマスクデータに対して、さらに平均化フィルタをかけることで、被写体を表すビット値’２５５’で表される被写体領域の周辺部に階調をつける（ステップＳ６５）。つまり、平均化フィルタには被写体領域の輪郭をぼかす機能があるため、マスクデータに平均化フィルタをかけることで、図１０（ａ）に示すようなマスクデータにおいて、被写体領域の輪郭部を表す画素値が、例えば、背景領域から被写体領域に向かって順に値’０’、’３０’、’１００’、’２５５’といった具合に段階的に変化する値となる。
【００７０】
これらの構成によれば、例えば、マスクデータを構成する画素値を、画素値の最大値’２５５’で除算した値に対して、マスクデータの画素に対応する被写体画像の画素値を積算した値を、被写体領域を表す画素の画素値とすることで（つまり、被写体領域の画素値＝被写体画像の対応画素値×マスクデータの対応画素値／２５５）、被写体画像から被写体領域を表す被写体領域画像を生成する場合に、例えば、被写体領域とそうでない領域（つまり、背景領域）との境界にエッジが少なく、被写体領域画像を視認するユーザに対して自然な印象を与える被写体領域画像を生成できる。
【００７１】
図８（ｂ）のステップＳ６５の後に、被写体領域情報検出部２１３は、被写体領域の検出成否を表す被写体領域フラグをオン状態（つまり、被写体領域検出成功を表す状態）としてから（ステップＳ６６）、被写体領域検出処理の実行を終了する。尚、被写体領域情報検出部２１３は、被写体領域の検出に成功した旨のメッセージを表示部３２０に表示させても良い。
【００７２】
ステップＳ６３において、被写体領域情報検出部２１３は、二値化処理に失敗したと判別した場合に、被写体領域フラグをオフ状態（つまり、被写体領域検出失敗を表す状態）としてから（ステップＳ６７）、被写体領域情報検出処理の実行を終了する。尚、被写体領域情報検出部２１３は、被写体領域の検出に失敗した旨のメッセージを表示部３２０に表示させても良い。
【００７３】
図８（ａ）のステップＳ５２の後に、被写体領域情報検出部２１３は、被写体領域の検出に成功したか否かを判別する（ステップＳ５３）。このとき、被写体領域情報検出部２１３が被写体領域の検出に成功したと判別すると（ステップＳ５３；Ｙｅｓ）、被写体範囲算出部２１４は、変数で表される処理画像番号Ｎの被写体画像（つまり、処理画像）の被写体範囲を表す被写体範囲情報を算出する、図１１に示すような被写体範囲情報算出処理を実行する（ステップＳ５４）。
【００７４】
ここで、被写体範囲とは、被写体からの最短距離が所定値以下の枠線によって囲まれた所定形状の領域であって、内部に被写体が表された（つまり、内側に被写体画像を含む）領域をいう。本実施形態において、所定形状は、図１０（ｂ）に示すような矩形の領域であるとして説明するが、これに限定される訳ではなく、例えば、円形状、三角形状、その他の多角形状を含む。この構成によれば、被写体範囲の形状が四角形なので、被写体範囲の左上端の位置を表す情報と右下端の位置を表す情報といった合計２つの情報、又は左下端の位置を表す情報と右上端の位置を表す情報といった合計２つの情報で被写体範囲を表すことができるので、被写体範囲情報の情報量が少ない。
【００７５】
図１１の被写体範囲算出処理を開始すると、図５（ａ）の被写体範囲算出部２１４は、図１０（ａ）及び図１０（ｂ）に示すように、被写体画像の主走査方向をｘ軸とし、副走査方向をｙ軸とし、被写体画像に向かって左上の被写体画像の頂点を原点とするｘｙ座標系を画定する。次に、被写体範囲算出部２１４は、ｙ軸方向における被写体範囲を算出するために、後述するステップＳ７１からＳ８０の処理を実行する。
【００７６】
先ず、被写体範囲算出部２１４は、ｙ座標を表す変数ｙを値’０’で初期化する（ステップＳ７１）。被写体領域が存在するか否かの調査を開始する調査開始座標を最上行（つまり、最も原点に近い行）の座標とするためである。次に、被写体範囲算出部２１４は、以下の式（３）で表される条件Ｙが成立するか否か判別する（ステップＳ７２）。
【００７７】
【数２】
0005573520.tif 000003
但し、関数Ｍ（ｘ，ｙ）は、ｘｙ座標値が（ｘ，ｙ）である画素のマスクデータにおける画素値を表す。また、Ｘｍａｘは、ｘ軸方向（つまり、横方向）における被写体画像のサイズ（画素数）を表す。
【００７８】
つまり、条件Ｙは、マスクデータを構成する画素の内で、ｙ座標値がｙである全画素（つまり、主走査方向に１行に並んだ全画素）の画素値の総和を算出した結果が値’０’より大きいという条件である。ここで、マスクデータは、被写体画像において背景を表す画素に対応する画素の値が’０’であり、被写体を表す画素に対応する画素の値が’２５５’などであるデータである。このため、図１０（ｂ）に示すように、それぞれのｙ座標値について、同じｙ座標値で表される被写体を表す画素の数を算出した場合に（いわゆる、被写体を横方向に投影した場合に）、算出された画素数が１以上となる（つまり、投影された被写体が存在する）ｙ座標値については、条件Ｙが成立する。画素値Ｍ（ｘ，ｙ）をｘ軸方向に総和した値が’０’より大きい値となるからである。これに対して、算出された画素数が‘０’となる（つまり、投影された被写体が存在しない）ｙ座標値については、画素値Ｍ（ｘ，ｙ）をｘ軸方向に総和した値は値’０’となり、条件Ｙが成立しない。
【００７９】
このため、ステップＳ７２において、被写体範囲算出部２１４は、現在のｙ座標値では、条件Ｙが成立しないと判別すると（ステップＳ７２；Ｎｏ）、ｙ座標値を表す変数の値を値‘１’だけインクリメントする（ステップＳ７３）。その後、被写体範囲算出部２１４は、インクリメントされた変数で表されるｙ座標値が、被写体画像のｙ軸方向の総画素数（つまり、サイズ）Ｙｍａｘと等しいか否かを判別する（ステップＳ７４）。被写体範囲算出部２１４は、変数で表されるｙ座標値がＹｍａｘと等しくないと判別すると（ステップＳ７４；Ｎｏ）、上記ステップＳ７２に戻り上記処理を繰り返す。これに対して、被写体範囲算出部２１４は、変数で表されるｙ座標値がＹｍａｘと等しいと判別すると（ステップＳ７４；Ｙｅｓ）、被写体範囲における最も原点に近い点の座標値（Ｘｓｔａｒｔ，Ｙｓｔａｒｔ）、最も原点から遠い点の座標値（Ｘｅｎｄ，Ｙｅｎｄ）、被写体範囲のｘ軸方向のサイズＸｓｉｚｅ及び被写体範囲のｙ軸方向のサイズＹｓｉｚｅを表す変数をそれぞれ値‘０’する（ステップＳ７５）。被写体範囲が算出されなかったことを表すためである。
【００８０】
ステップＳ７２において、被写体範囲算出部２１４は、現在のｙ座標値で、条件Ｙが成立したと判別すると（ステップＳ７２；Ｙｅｓ）、被写体範囲における最も原点に近い点の座標値Ｙｓｔａｒｔを表す変数に、変数ｙが表すｙ座標値を代入する（ステップＳ７６）。
【００８１】
次に、被写体範囲算出部２１４は、ｙ座標を表す変数ｙに対して被写体画像のｙ軸方向のサイズＹｍａｘから１減算した値Ｙｍａｘ−１を代入する（ステップＳ７７）。調査開始座標を最下行（つまり、最も原点から遠い行）の座標とするためである。次に、被写体範囲算出部２１４は、上記の式（３）で表される条件Ｙが成立するか否か判別する（ステップＳ７８）。このとき、被写体範囲算出部２１４は、現在のｙ座標値では条件Ｙが成立しないと判別すると（ステップＳ７８；Ｎｏ）、ｙ座標値を表す変数の値を値‘１’だけデクリインクリメントする（ステップＳ７９）。その後、被写体範囲算出部２１４は、上記ステップＳ７８に戻り上記処理を繰り返す。尚、ステップＳ７２において、被写体画像には被写体領域が存在すると判別しているので（ステップＳ７２；Ｙｅｓ）、被写体範囲算出部２１４は、ステップＳ７４のような終了条件を判別する必要がない。これに対して、被写体範囲算出部２１４は、条件Ｙが成立したと判別すると（ステップＳ７８；Ｙｅｓ）、被写体範囲における最も原点から遠い点の座標値Ｙｅｎｄを表す変数に現在のｙ座標値を代入する（ステップＳ８０）。
【００８２】
次に、被写体範囲算出部２１４は、ｘ軸方向における被写体範囲を算出するために、後述するステップＳ８１からＳ８９の処理を実行する。
先ず、制御部２１０は、ｘ座標を表す変数ｘを値’０’で初期化する（ステップＳ８１）。調査開始座標をマスクデータに向かって最左列（つまり、最も原点に近い列）の座標とするためである。次に、被写体範囲算出部２１４は、以下の式（４）で表される条件Ｘが成立するか否か判別する（ステップＳ８２）。
【００８３】
【数３】
0005573520.tif 000004
但し、関数Ｍ（ｘ，ｙ）は、ｘｙ座標値が（ｘ，ｙ）である画素のマスクデータにおける画素値を表す。また、Ｙｍａｘは、ｙ軸方向（副走査方向）における被写体画像のサイズ（画素数）を表す。
【００８４】
つまり、条件Ｘは、マスクデータを構成する画素の内で、ｘ座標値がｘである全画素（つまり、縦方向に１列に並んだ全画素）の画素値の総和を算出した結果が値’０’より大きいという条件である。
このため、ステップＳ８２において、被写体範囲算出部２１４は、現在のｘ座標値では、条件Ｘが成立しないと判別すると（ステップＳ８２；Ｎｏ）、ｘ座標値を表す変数ｘの値を値‘１’だけインクリメントした後に（ステップＳ８３）上記ステップＳ８２に戻り上記処理を繰り返す。これに対して、被写体範囲算出部２１４は、条件Ｘが成立したと判別すると（ステップＳ８２；Ｙｅｓ）、被写体範囲における最も原点に近い点の座標値Ｘｓｔａｒｔを表す変数に現在のｘ座標値を代入する（ステップＳ８４）。
【００８５】
次に、被写体範囲算出部２１４は、ｘ座標を表す変数に対して被写体画像のｘ軸方向のサイズＸｍａｘから１減算した値Ｘｍａｘ−１を代入する（ステップＳ８５）。調査開始座標をマスクデータに向かって最右列（つまり、最も原点から遠い列）の座標とするためである。次に、被写体範囲算出部２１４は、上記の式（４）で表される条件Ｘが成立するか否か判別する（ステップＳ８６）。このとき、被写体範囲算出部２１４は、現在のｘ座標値では、条件Ｘが成立しないと判別すると（ステップＳ８６；Ｎｏ）、ｘ座標値を表す変数の値を値‘１’だけデクリインクリメントする（ステップＳ８７）。その後、被写体範囲算出部２１４は、上記ステップＳ８６に戻り上記処理を繰り返す。これに対して、被写体範囲算出部２１４は、条件Ｘが成立したと判別すると（ステップＳ８６；Ｙｅｓ）、被写体範囲における最も原点から遠い点の座標値Ｘｅｎｄを表す変数に現在のｘ座標値を代入する（ステップＳ８８）。
【００８６】
次に、被写体範囲算出部２１４は、ステップＳ８０で決定したＹｅｎｄからステップＳ７６で決定したＹｓｔａｒｔを減算した後に値‘１’を加算することで、被写体範囲のｙ軸方向のサイズＹｓｉｚｅを算出し、ステップＳ８８で決定したＸｅｎｄからステップＳ８４で決定したＸｓｔａｒｔを減算した後に値‘１’を加算することで、被写体範囲のｘ軸方向のサイズＸｓｉｚｅを算出する（ステップＳ８９）。その後、制御部２１０は、被写体範囲を表す座標値（Ｘｓｔａｒｔ，Ｙｓｔａｒｔ）及び（Ｘｅｎｄ，Ｙｅｎｄ）、並びに被写体範囲のサイズを表すＸｓｉｚｅ及びＹｓｉｚｅを被写体範囲情報とした後に、被写体範囲情報算出処理の実行を終了する。
【００８７】
図８（ａ）のステップＳ５４の後に、図５（ａ）の被写体領域画像生成部２１５は、ステップＳ５２で検出したマスクデータ（つまり、被写体領域情報）を用いて、処理画像番号Ｎの被写体画像（つまり、処理画像）に対してマスク処理を施す。この処理により、被写体領域画像生成部２１５は、処理画像と同じサイズ又は略同一サイズの被写体領域画像（以下、被写体領域フレームという）を生成する（ステップＳ５５）。尚、ステップＳ５５の処理により生成されたフレームが、図２（ｃ）に示す被写体領域フレームＦ１からＦ６である。
【００８８】
ステップＳ５５の後に、被写体領域画像生成部２１５は、被写体領域フレームの背景領域（つまり、被写体領域以外の領域）を、例えば、グレーなどの所定色で塗り潰す（ステップＳ５６）。この構成によれば、被写体領域に表された被写体の視認性が向上するだけでなく、例えば、所定色を透過色とすることで、被写体領域を任意の背景画像に対して容易かつ少ない計算量で合成できる。
【００８９】
ステップＳ５３において、被写体領域画像生成部２１５は、被写体領域の検出に失敗したと判別した場合、又はステップＳ５６を実行した後に、処理画像番号Ｎを表す変数を値‘１’だけインクリメントする（ステップＳ５７）。次に、被写体領域画像生成部２１５は、処理画像番号Ｎ（つまり、処理された画像数）が指定撮像枚数Ｍと等しいか否かを判別する（ステップＳ５８）。このとき、被写体領域画像生成部２１５は、処理画像番号Ｎが撮像枚数Ｍと等しくないと判別すると（ステップＳ５８；Ｎｏ）、ステップＳ５２に戻り上記処理を繰り返す。これに対して、処理画像番号Ｎが指定撮像枚数Ｍと等しいと判別すると（ステップＳ５８；Ｙｅｓ）、被写体領域画像生成部２１５は、ステップＳ５２で生成されたマスクデータと、ステップＳ５４で算出された被写体範囲情報と、ステップＳ５６で生成された被写体領域画像（つまり、被写体領域フレーム）を表す画像データとを、記憶部２３０へ保存する（ステップＳ５９）。その後、被写体領域画像生成部２１５は、被写体領域切抜処理の実行を終了する。
【００９０】
図４（ａ）のステップＳ０３の後に、図５（ａ）の制御部２１０は、ステップＳ０３で被写体領域を表す部分画像を切り抜くことで生成された被写体領域画像（つまり、被写体領域フレーム）を合成する、図１２（ａ）に示すような画像合成処理を実行する（ステップＳ０４）。
【００９１】
図１２（ａ）の画像合成処理を開始すると、図５（ａ）の被写体領域画像生成部２１５は、例えば、ユーザの操作に応じて操作部３３０が送信する操作信号に基づいて、被写体領域フレームに対して任意の背景画像を合成するか否かを判別する（ステップＳ９１）。このとき、被写体領域画像生成部２１５は、被写体領域フレームに対して任意の背景画像を合成すると判別すると、例えば、記憶部２３０に記憶された画像の縮小画像（例えば、サムネイル）を生成し、生成した縮小画像を表示部３２０に一覧表示させる。その後、被写体領域画像生成部２１５は、例えば、ユーザに操作された操作部３３０から受信する信号に基づいて、ユーザが背景として選択した選択背景画像を特定し、特定した画像の画像データを記憶部２３０から取得する（ステップＳ９２）。尚、選択背景画像として選択される画像は、例えば、ユーザによって任意に撮像された画像であっても、外部Ｉ／Ｆ部３１０を介して外部装置からダウンロードされた画像であっても良い。
【００９２】
ステップＳ９１において、被写体領域画像生成部２１５が背景画像を合成しないと判別した場合（ステップＳ９１；Ｎｏ）、又はステップＳ９２を実行した後に、図５（ａ）の被写体領域画像選択部２１６は、結果画像の生成に使用される被写体領域フレーム（以下、有効画像又は有効フレームという）と、結果画像の生成に使用されない被写体領域フレーム（以下、無効画像又は無効フレームという）とを選択する、図１３に示すような有効画像選択処理を実行する（ステップＳ９３）。
【００９３】
図１３の有効画像選択処理の実行を開始すると、被写体領域画像選択部２１６は、例えば、結果画像におけるコマ割分割数（つまり、合成される被写体領域画像の数）の指定を行うか否かを問うメッセージと、指定の有無を表す操作を行うように促すメッセージとを表示部３２０に表示させる。次に、制御部２１０は、例えば、操作部３３０から受信する信号に基づいて、分割数の指定があるか否かを判別する（ステップＳ１０１）。
【００９４】
ステップＳ１０１において、被写体領域画像選択部２１６は、分割数の指定が無いと判別した場合には（ステップＳ１０１；Ｎｏ）、有効画像選択処理に利用される被写体領域フレーム（以下、利用フレームともいう）の内で、図１１のステップＳ７５又はＳ８９で算出した被写体範囲のｘ軸方向（縦方向）のサイズＸｓｉｚｅ又はｙ軸方向（横方向）のサイズＹｓｉｚｅのいずれかが所定値よりも小さい利用フレームを被写体無しフレームとする。尚、所定値は、値‘０’であっても良い。
【００９５】
次に、制御部２１０は、各利用フレームの基礎となった（つまり、各フレームが切り出された）被写体画像の撮像時刻又は保存時刻の順に各利用フレームを並べた場合、並び順が連続した複数の被写体無しフレームを１つの有効フレーム（つまり、有効画像）とし、有効フレームとしなかった被写体無しフレームを無効フレーム（つまり、無効画像）とする（ステップＳ１０２）。
【００９６】
具体例としては、図１４に示すように、番号順に並んだ利用フレームＦＵ１からＦＵ６の内で、利用フレームＦＵ２とＦＵ３とが、被写体を表さない被写体無しフレームである場合には、被写体領域画像選択部２１６は、利用フレームＦＵ２とＦＵ３とを１つの有効フレームＦＶ２とし（つまり、利用フレームＦＵ２のみを有効フレームＦＶ２とする）、残りの利用フレームＦＵ１及びＦＵ４からＦＵ６を有効フレームＦＶ１及びＦＶ４からＦＶ６とする。これは、被写体が表されていない被写体無しフレームを何枚並べて表示しても被写体の動作を表すことができないめである。また、被写体が写されていないことを表すためには、被写体無しフレームを１つ表示すれば十分であるためである。尚、複数の被写体無しフレームを１つの有効フレームとすることに限定されるのではなく、被写体無しフレームの連続枚数よりも少ない枚数の被写体無しフレームを有効フレームとすれば良い。
【００９７】
次に、被写体領域画像選択部２１６は、並び順が連続した２枚の有効フレームの組を決定し、決定した組を構成する有効フレームの間の被写体範囲の差異の程度を表す指標の差異度をそれぞれ算出する。次に、被写体領域画像選択部２１６は、被写体範囲の差異度が所定閾値よりも少ない組を特定し、特定された組の有効フレームの内で、並び順が早い方の有効フレーム及び遅い方の有効フレームのいずれか一つ以上を、有効フレームから除外した（つまり、無効フレームとした）後に（ステップＳ１０３）、有効画像選択処理の実行を終了する。
【００９８】
具体例としては、被写体領域画像選択部２１６は、図１５に示すように、番号順に並んだ利用フレームＦＶ１とＦＶ２との組、利用フレームＦＶ２とＦＶ４との組、利用フレームＦＶ４とＦＶ５との組、利用フレームＦＶ５とＦＶ６との組を決定した後に、それぞれの組における被写体範囲の差異度１２、差異度２４、差異度４５、及び差異度５６を算出する。ここで、差異度４５が所定閾値よりも小さい場合に、被写体領域画像選択部２１６は、有効フレームＦＶ４を無効フレームとし、残りの有効フレームＦＶ１、ＦＶ２、ＦＶ５、及びＦＶ６を有効フレームのまま維持する。これは、通常、異なる動作状態の被写体を表す２枚の被写体画像においては、被写体範囲が相違する。このため、２枚の被写体画像における被写体範囲の差異が小さくなる程、２枚の被写体画像によって被写体の動作を十分に表すことができなくなるためである。このため、有効フレームＦＶ１、ＦＶ２、ＦＶ５、及びＦＶ６から生成された結果画像は、図３（ａ）に示すような結果画像ＣＩａとなり、結果画像ＣＩａは、被写体の動作を少ない画像数で十分に表すことができる。
【００９９】
具体的には、被写体領域画像選択部２１６は、有効フレーム間の被写体範囲の差異を表す差異度は、被写体範囲情報のＸｓｔａｒｔ同士の差異、Ｘｅｎｄ同士の差異の差異、Ｙｓｔａｒｔ同士の差異、及びＹｅｎｄ同士の差異といずれか１つ以上で表される。尚、被写体範囲の位置の差は、被写体範囲情報のＸｓｔａｒｔ同士の差異、Ｘｅｎｄ同士の差異の差異、Ｙｓｔａｒｔ同士の差異、及びＹｅｎｄ同士の差異といずれか１つ以上の和で表されても良い。また、差異度は、Ｘｓｔａｒｔ同士の差異とＹｓｔａｒｔ同士の差異との二乗和により算出された座標値（Ｘｓｔａｒｔ，Ｙｓｔａｒｔ）で表される点同士の距離、Ｘｅｎｄ同士の差異とＹｅｎｄ同士の差異との二乗和により算出された座標値（Ｘｅｎｄ，Ｙｅｎｄ）で表される点同士の距離、及びこれら距離の和のいずれかで表されても良い。尚、被写体範囲の差異度を判別するための所定閾値は、ＲＯＭ２１０ｃ又は記憶部２３０に予め記憶されている。
【０１００】
この構成によれば、差異度は、被写体範囲情報のＸｓｔａｒｔ同士の差異、Ｘｅｎｄ同士の差異の差異、Ｙｓｔａｒｔ同士の差異、及びＹｅｎｄ同士の差異といずれか１つ以上で表されるので、例えば、複数の被写体画像において同じ位置に写された被写体であっても、複数の被写体画像において被写体の大きさなどの形状が異なる被写体を表す被写体画像の差異度が大きくなる。このため、差異度が所定閾値よりも大きい複数の有効フレームは、被写体の大きさなどの形状が大きく異なる被写体を表すので、ユーザは、複数の有効フレームを視認すると、被写体の大きさなどの形状の変化を容易に認識できる。
【０１０１】
またこの構成によれば、例えば、複数の被写体画像において複数の被写体画像において被写体の大きさなどの形状が同じであっても、複数の被写体画像において異なる位置に被写体が写されていれば、差異度が大きくなる。このため、差異度が所定閾値よりも大きい複数の有効フレームは、被写体の位置が多く異なるので、ユーザは、複数の有効フレームを視認すると、被写体の位置の変化を容易に認識できる。
【０１０２】
図１３のステップＳ１０１において、分割数の指定があると判別した場合には（ステップＳ１０１；Ｙｅｓ）、被写体領域画像選択部２１６は、結果画像に合成される被写体領域画像（つまり、被写体領域フレーム）の数（以下、指定画像数という）を指定する画像数指定情報を操作部３３０から受信し、受信した指定画像数を結果画像の分割数（以下、指定分割数という）とする（ステップＳ１０４）。次に、被写体領域画像選択部２１６は、利用フレームの数が指定分割数に等しいか否かを判別する（ステップＳ１０５）。このとき、被写体領域画像選択部２１６は、利用フレームの数が指定分割数に等しいと判別すると（ステップＳ１０５；Ｙｅｓ）、利用フレームの全てを有効フレームとした後に、有効画像選択処理の実行を終了する。これに対して、制御部２１０は、利用フレームの数が指定分割数に等しくないと判別すると（ステップＳ１０５；Ｎｏ）、利用フレームの数が指定分割数よりも多いか否かを判別する（ステップＳ１０６）。このとき、被写体領域画像選択部２１６は、利用フレームの数が指定分割数よりも多いと判別すると（ステップＳ１０６；Ｙｅｓ）、ステップＳ１０２と同様の処理を実行する（ステップＳ１０７）。
【０１０３】
その後、被写体領域画像選択部２１６は、有効フレームの数が指定分割数に等しいか否かを判別する（ステップＳ１０８）。このとき、被写体領域画像選択部２１６は、有効フレームの数が指定分割数に等しいと判別すると（ステップＳ１０８；Ｙｅｓ）、有効画像選択処理の実行を終了する。これに対して、被写体領域画像選択部２１６は、有効フレームの数が指定分割数に等しくないと判別すると（ステップＳ１０８；Ｎｏ）、有効フレームの数が指定分割数よりも多いか否かを判別する（ステップＳ１０９）。このとき、被写体領域画像選択部２１６は、有効フレームの数が指定分割数よりも多いと判別すると（ステップＳ１０９；Ｙｅｓ）、並び順が連続した２枚の有効フレームの組を決定し、決定した組を構成する有効フレーム間の被写体範囲の差異度が少ない組の並び順が早い方又は遅い方の有効フレームから順に有効フレームから除外する（つまり、無効フレームとする）。この処理によって、被写体領域画像選択部２１６は、有効フレームの枚数を指定分割数と等しくした後に（ステップＳ１１０）、有効画像選択処理の実行を終了する。尚、有効フレーム間の被写体範囲の差異度は、ステップＳ１０３と同様に算出されるため再度の説明を省略する。
【０１０４】
ステップＳ１０６において、利用フレーム数が指定分割数よりも少ないと判別した場合（ステップＳ１０６；Ｎｏ）、又はステップＳ１０９において、有効フレーム数が指定分割数よりも少ないと判別した場合には（ステップＳ１０９；Ｎｏ）、被写体領域画像選択部２１６は、指定分割数と比べて不足している有効フレーム数を不足フレーム数として算出する。次に、被写体領域画像選択部２１６は、不足フレーム数の有効フレームを、重複して表示される重複画像（以下、重複利用フレームという）とする。ここで、被写体領域画像選択部２１６は、被写体画像の撮像時刻又は保存時刻の順に各利用フレームを並べた場合に、並べられた各利用フレームにおいて重複利用フレームが一様かつ全体に分布するように、重複利用フレームを特定する（ステップＳ１１１）。その後、被写体領域画像選択部２１６は、特定された重複利用フレームを複製することで、複製利用フレームを生成し、生成した複製利用フレームを有効フレームとした後に、複製利用フレームを重複利用フレームの直後の位置に追加してから有効画像選択処理の実行を終了する。
【０１０５】
具体例としては、被写体領域画像選択部２１６は、先ず、指定分割数から利用フレーム数／有効フレーム数を減算することで、不足フレーム数を算出する。次に、被写体領域画像選択部２１６は、不足フレーム数が利用フレーム数／有効フレーム数以上か否かを判別する。ここで、不足フレーム数が利用フレーム数／有効フレーム数以上の場合には、全ての有効フレームを重複利用フレームとする。これに対して、不足フレーム数が利用フレーム数／有効フレーム数よりも少ない場合には、被写体領域画像選択部２１６は、不足フレーム数の利用フレーム／有効フレームを重複利用フレームとすると判別する。次に、被写体領域画像選択部２１６は、利用フレーム数／有効フレーム数を不足フレーム数で除算した商を算出し、算出した商の値の枚数毎に、並べられた各利用フレームから重複利用フレームを特定する。
【０１０６】
次に、被写体領域画像選択部２１６は、不足フレーム数を重複利用フレーム数で除算した商と余りとを算出する。次に、被写体領域画像選択部２１６は、余りの数の重複利用フレームに対して商の数に１を加算した数（つまり、商＋１）の複製フレームを生成すると決定し、それ以外の重複利用フレームに対して商の数だけ複製フレームを生成すると決定する。
【０１０７】
ここで、指定分割数が８枚で、有効フレーム数が３枚の場合を例に挙げて説明すると、被写体領域画像選択部２１６は、不足枚数を５と算出し、不足枚数５枚が有効フレーム数３枚よりも多いと判別する。このため、被写体領域画像選択部２１６は、有効フレームの全てを重複利用フレームとする必要があると判別する。次に、被写体領域画像選択部２１６は、不足フレーム数５を有効フレーム数３で除算した商１と余り２とを算出する。その後、被写体領域画像選択部２１６は、２枚の数の重複利用フレームに対して２枚（商１＋値１）の複製利用フレームを生成し、当該重複利用フレームの直後の順番に追加し、それ以外の（つまり、残り１枚の）重複利用フレームに対して１枚（商１）の複製利用フレームを生成し、当該重複利用フレームの直後の順番にそれぞれ追加する。
【０１０８】
次に、図１６に示すような５枚の有効フレームＦＶ１、ＦＶ２、及びＦＶ４からＦＶ６に対して、８枚の指定分割数が指定された場合を例に挙げて説明すると、被写体領域画像選択部２１６は、不足枚数を３枚と算出し、不足枚数３枚が有効フレーム数５枚よりも少ないと判別する。このため、被写体領域画像選択部２１６は、有効フレーム数５枚を不足枚数３枚で除算した商１を算出する。次に、被写体領域画像選択部２１６は、有効フレームＦＶ１、ＦＶ４、及びＦＶ６を（つまり、並べられた有効フレームを１枚毎に）重複利用フレームと特定する。つまり、それぞれ最初、３番目、及び５番目の有効フレームを重複利用フレームと決定する。その後、被写体領域画像選択部２１６は、特定した重複利用フレームのそれぞれに対して１枚の複製利用フレームＦＶ１−２、ＦＶ４−２、及びＦＶ６−２を生成し、生成したそれぞれの複製利用フレームを、重複利用フレームＦＶ１、ＦＶ４、及びＦＶ６の直後に追加する。このため、フレームＦＶ１、ＦＶ１−２、ＦＶ２、ＦＶ４、ＦＶ４−２、ＦＶ５、ＦＶ６、及びＦＶ６−２から生成された結果画像は、図３（ｂ）に示すような結果画像ＣＩｂとなり、結果画像ＣＩｂは、重複して表示される画像の数が全体的に均一であるため、被写体の動作に対する視認性の低下を防止できる。
【０１０９】
尚、被写体領域画像選択部２１６は、被写体範囲の差異度が大きい２つの利用フレーム／有効フレームの組を不足フレーム数だけ選択し、選択した組のそれぞれについて、選択した組の利用フレーム／有効フレームの１つを重複利用フレームと特定し、特定した重複利用フレームの複製利用フレームを当該重複利用フレームの直後に追加しても良い。この構成によれば、差異の大きいフレームの後に複製利用フレームが追加されるため、差異の小さいフレームの後に複製利用フレームが追加される場合よりも、フレームを番号順に並べた場合における被写体の動作に対する視認性が低下することを防止できる。
【０１１０】
また、被写体領域画像選択部２１６は、被写体範囲の差異度が最も大きい２つの利用フレーム／有効フレームの組を特定し、特定した組の利用フレーム／有効フレームの１つを重複利用フレームと特定し、特定した重複利用フレームの複製利用フレームを当該重複利用フレームの直後に追加した後に、これらの処理を有効フレーム数が不足している間繰り返しても良い。
【０１１１】
図１２（ａ）のステップＳ９３の後に、図５（ｂ）合成画像データ生成部２１８が有する分割数算出部２１８ａは、結果画像をコマ割りする縦横数（以下、縦横分割数という）を算出する、図１２（ｂ）に示すような縦横分割数算出処理を実行する（ステップＳ９４）。
【０１１２】
図１２（ｂ）の縦横分割数算出処理の実行を開始すると、分割数算出部２１８ａは、先ず、ＲＯＭ２１０ｃに記憶された結果画像（合成画像）の形状を表す合成画像形状情報を取得する。尚、分割数算出部２１８ａは、結果画像の形状を指定するように促すメッセージを表示部３２０に表示させた後に、ユーザの操作に応じた操作信号を操作部３３０から受信し、受信した信号に基づいてユーザに指定された結果画像の形状を特定しても良い。分割数算出部２１８ａは、取得した合成画像形状情報で表される結果画像の形状の内で、結果画像のｘ軸方向のサイズＸａｎｓと、ｙ方向のサイズＹａｎｓとを取得する（ステップＳ１２１）。次に、分割数算出部２１８ａは、図１２（ａ）のステップＳ９３で選択された有効フレームの被写体範囲の全てを包含する有効範囲を表す有効範囲情報を算出する。具体的には、分割数算出部２１８ａは、有効フレームの被写体範囲について、ｘ軸方向及びｙ軸方向のそれぞれにおけるサイズＸｓｉｚｅ及びＹｓｉｚｅの最大値（つまり、最大サイズ）Ｘｓｉｚｅｍａｘ及びＹｓｉｚｅｍａｘを特定し、特定したＸｓｉｚｅｍａｘ及びＹｓｉｚｅｍａｘを有効範囲情報とする（ステップＳ１２２）。
【０１１３】
その後、分割数算出部２１８ａは、ステップＳ１２１で取得した結果画像のサイズＸａｎｓをＹａｎｓで除算することで、結果画像の縦横比ｒａｔｅＡｎｓを算出する（ステップＳ１２３）。次に、分割数算出部２１８ａは、ステップＳ１２２で特定した被写体範囲の最大サイズＸｓｉｚｅｍａｘをＹｓｉｚｅｍａｘで除算することで、有効範囲の縦横比ｒａｔｅＦｒａｍｅを算出する（ステップＳ１２４）。
【０１１４】
尚、被写体フレームから被写体範囲の部分画像を切り抜くことで生成される、被写体範囲のサイズを有する画像をキャラクタ画像といい、キャラクタ画像を表す画像データをキャラクタ画像データという。このため、有効範囲は、全てのキャラクタ画像を包含するため、有効範囲の縦横比ｒａｔｅＦｒａｍｅを以下、キャラクタ画像の有効縦横比という。
【０１１５】
次に、分割数算出部２１８ａは、有効フレームの数に結果画像を分割した場合に、分割された領域（以下、分割領域という）の縦横比が最もキャラクタ画像の有効縦横比ｒａｔｅＦｒａｍｅに近くなる又は同一となる縦方向（つまり、ｙ軸方向）の分割数Ｙｄｉｖと、横方向（つまり、ｘ軸方向）の分割数Ｘｄｉｖとを算出する（ステップＳ１２５）。具体例としては、分割数算出部２１８ａは、互いに乗算すると有効フレーム数となる２つの整数の組合せを特定する。次に、分割数算出部２１８ａは、特定した組合せのそれぞれについて組合せを構成する２つの整数をＸｄｉｖ及びＹｄｉｖとし、以下の式（５）を用いて分割領域の縦横比ｒａｔｅＴｅｍｐを算出する。その後、分割数算出部２１８ａは、最も分割領域の縦横比ｒａｔｅＴがキャラクタ画像の有効縦横比ｒａｔｅＦｒａｍｅに近い又は同じＸｄｉｖ及びＹｄｉｖを特定する。
【０１１６】
分割領域の縦横比ｒａｔｅＴ＝結果画像の縦横比ｒａｔｅＡｎｓ＊Ｙｄｉｖ／Ｘｄｉｖ・・・（５）
【０１１７】
ここで、結果画像の縦横比ｒａｔｅＡｎｓが値’２．０’で、キャラクタ画像の有効縦横比ｒａｔｅＦｒａｍｅが値’１．５’で、有効フレーム数が８である場合を例に挙げて説明する。
この場合、分割数算出部２１８ａは、互いに乗算すると８となる整数の組合せ（１，８）、（２，４）、（４，２）、及び（８，１）を、例えば、因数分解などにより特定する。次に、分割数算出部２１８ａは、特定した整数の組合せ（１，８）を（Ｙｄｉｖ，Ｘｄｉｖ）として上記の式（５）に代入した式「２．０＊１／８」を算出することで、分割領域の縦横比ｒａｔｅＴを値’０．２５’と算出する。同様に、分割数算出部２１８ａは、特定した整数の組合せ（２，４）、（４，２）、及び（８，１）をそれぞれ（Ｙｄｉｖ，Ｘｄｉｖ）として上記の式（５）に代入すると、分割領域の縦横比ｒａｔｅＴは、それぞれ値’１．０’、’４．０’、及び’１６’となる。このため、分割数算出部２１８ａは、キャラクタ画像の有効縦横比ｒａｔｅＦｒａｍｅの値’１．５’に最も近い縦横分割数（Ｙｄｉｖ，Ｘｄｉｖ）の組合せとして（２，４）を特定する。つまりこの構成によれば、分割領域の形状に合わせてキャラクタ画像の縦横比を変更した場合に、最も変更の程度が少ない結果画像の縦横分割数（Ｙｄｉｖ，Ｘｄｉｖ）を特定できる。その後、制御部２１０は、縦横分割数算出処理の実行を終了する。
【０１１８】
図１２（ａ）のステップＳ９４の後に、拡大／縮小率算出部２１８ｂは、ステップＳ９３で選択された有効フレームの被写体領域を、ステップＳ９４で算出された縦横分割数に基づいて補正する、図１７（ａ）に示すような拡大／縮小率算出処理を実行する（ステップＳ９５）。
【０１１９】
図１７（ａ）の拡大／縮小率算出処理の実行を開始すると、拡大／縮小率算出部２１８ｂは、１つの有効フレームから切り抜かれる１つのキャラクタ画像を合成することができる領域（つまり、分割領域）のサイズ（以下、有効サイズという）を、ｙ方向及びｘ軸方向について算出する。具体的には、拡大／縮小率算出部２１８ｂは、結果画像のｘ軸方向のサイズＸｓｉｚｅをｘ軸方向の分割数Ｘｄｉｖで除算することで、ｘ軸方向の有効サイズＸＡａｎｓｓｉｚｅを算出する。同様に、拡大／縮小率算出部２１８ｂは、結果画像のｙ方向のサイズＹｓｉｚｅをｙ方向の分割数Ｙｄｉｖで除算することで、ｙ方向の有効サイズＸＡａｎｓｓｉｚｅを算出する（ステップＳ１３１）。
【０１２０】
次に、拡大／縮小率算出部２１８ｂは、有効サイズＸａｎｓｓｉｚｅをｘ軸方向の分割数Ｘｄｉｖで除算することで、キャラクタ画像のサイズを分割領域の有効サイズに略一致させるために、ｘ軸方向に拡大又は縮小する比率Ｘｒａｔｅを算出する。同様に、拡大／縮小率算出部２１８ｂは、有効サイズＹａｎｓｓｉｚｅをｙ軸方向の分割数Ｙｄｉｖで除算することで、ｙ軸方向に拡大又は縮小する比率Ｙｒａｔｅを算出する（ステップＳ１３２）。
【０１２１】
その後、拡大／縮小率算出部２１８ｂは、算出したｙ軸方向の拡大／縮小比率Ｙｒａｔｅと、ｘ軸方向の拡大／縮小比率Ｘｒａｔｅとの相違が、所定の閾値３よりも小さいか否かを判別する（ステップＳ１３３）。尚、所定の閾値３は、拡大／縮小比率ＹｒａｔｅとＸｒａｔｅとの差異が誤差の範囲に含まれるか否かを判別するために用いられる値であり、例えば、ＲＯＭ２１０ｃ又は記憶部２３０に記憶されている。このとき、拡大／縮小率算出部２１８ｂは、拡大／縮小比率ＹｒａｔｅとＸｒａｔｅとの相違が所定の閾値３以上であると判別すると（ステップＳ１３３；Ｎｏ）、合成時にキャラクタ画像の縦横比が所定以上歪むため、キャラクタ（つまり、被写体）の視認性が低下すると判別し、キャラクタ画像のｘ軸方向の最大サイズＸｓｉｚｅｍａｘ又はｙ軸方向の最大サイズＹｓｉｚｅｍａｘを所定値だけインクリメントさせる（ステップＳ１３４）。尚、拡大／縮小率算出部２１８ｂは、キャラクタ画像の有効縦横比ｒａｔｅＦｒａｍｅが値’１’以上であるか否かを判別することにより、キャラクタ画像が縦長（つまり、ｙ軸方向に長い）であるか、横長であるかを判別する構成を採用できる。この構成において、拡大／縮小率算出部２１８ｂは、キャラクタ画像が横長であると判別するとＹｓｉｚｅｍａｘの値をインクリメントし、キャラクタ画像が縦長（つまり、ｙ軸方向に長い）と判別するとＸｓｉｚｅｍａｘの値をインクリメントする構成を採用できる。この構成によれば、縦長／横長のキャラクタ画像が更に縦長／横長に拡大／縮小されることにより視認性が低下することを防止できる。尚、ステップＳ１３４の後に、拡大／縮小率算出部２１８ｂは、ステップＳ１３２から上記処理を繰り返す。
【０１２２】
ステップＳ１３３において、拡大／縮小率算出部２１８ｂは、拡大／縮小比率ＹｒａｔｅとＸｒａｔｅとの相違が所定の閾値３より小さいと判別すると（ステップＳ１３３；Ｙｅｓ）、拡大／縮小比率ＹｒａｔｅとＸｒａｔｅとで、小さい比率の方を比率ｒａｔｅとした後に（ステップＳ１３５）、拡大／縮小率算出処理を終了する。
【０１２３】
図１２（ａ）のステップＳ９５の後に、被写体範囲補正部２１８ｃは、図１２（ｂ）のステップＳ１２２で算出した被写体範囲の最大サイズＸｓｉｚｅｍａｘ及びＹｓｉｚｅｍａｘを用いて被写体範囲を補正する、図１７（ｂ）に示すような被写体範囲補正処理を実行する。
【０１２４】
先ず、被写体範囲補正処理の実行を開始すると、被写体範囲補正部２１８ｃは、処理の対象とする有効フレーム（以下、処理フレームという）の番号Ｆｒａｍｅを表す変数に対して値’１’を代入する（ステップＳ１４１）。次に、被写体範囲補正部２１８ｃは、キャラクタ画像として有効フレームから切り抜く範囲を定める被写体範囲情報のＸｓｔａｒｔ、Ｙｓｔａｒｔ、Ｘｓｉｚｅ、Ｙｓｉｚｅ、Ｘｅｎｄ、及びＹｅｎｄを、以下の式（６）から（１１）を順次計算することで補正する（ステップＳ１４２）。
【０１２５】
Ｘｓｔａｒｔ＝Ｘｓｔａｒｔ−｛（Ｘｓｉｚｅｍａｘ−Ｘｓｉｚｅ）／２｝・・・（６）
Ｙｓｔａｒｔ＝Ｙｓｔａｒｔ−｛（Ｙｓｉｚｅｍａｘ−Ｙｓｉｚｅ）／２｝・・・（７）
Ｘｓｉｚｅ＝Ｘｓｉｚｅｍａｘ・・・（８）
Ｙｓｉｚｅ＝Ｙｓｉｚｅｍａｘ・・・（９）
Ｘｅｎｄ＝Ｘｓｔａｒｔ＋（Ｘｓｉｚｅ−１）・・・（１０）
Ｙｅｎｄ＝Ｙｓｔａｒｔ＋（Ｙｓｉｚｅ−１）・・・（１１）
【０１２６】
この構成によれば、複数の被写体範囲情報で表されるそれぞれの被写体範囲の中央に被写体を表したまま、それぞれの被写体範囲の大きさを縦方向にＸｓｉｚｅｍａｘ、横方向にＹｓｉｚｅｍａｘの大きさに補正できる。
【０１２７】
次に、被写体範囲補正部２１８ｃは、処理フレームの番号Ｆｒａｍｅを表す変数を値’１’だけインクリメントする（ステップＳ１４３）。その後、被写体範囲補正部２１８ｃは、変数で表される処理フレームの番号Ｆｒａｍｅが有効フレームの数と等しいか否かを判別する（ステップＳ１４４）。このとき、被写体範囲補正部２１８ｃは、処理フレームの番号Ｆｒａｍｅが有効フレームの数と等しくないと判別すると（ステップＳ１４４；Ｎｏ）、処理フレームの番号Ｆｒａｍｅを表す変数の値を値’１’だけインクリメントした後に（ステップＳ１４５）、ステップＳ１４２から上記処理を繰り返す。これに対して、被写体範囲補正部２１８ｃは、処理フレームの番号Ｆｒａｍｅが有効フレームの数と等しいと判別すると（ステップＳ１４４；Ｙｅｓ）、被写体範囲補正処理の実行を終了する。
【０１２８】
図１２（ａ）のステップＳ９６の後に、合成画像生成部２１８ｄは、ステップＳ９３で選択された有効フレームから、ステップＳ９６で補正された被写体領域範囲を切り抜いたキャラクタ画像を合成した合成画像を生成する、図１８に示すような合成画像生成処理を実行する（ステップＳ９７）。
【０１２９】
図１８の合成画像生成処理を開始すると、合成画像生成部２１８ｄは、処理の対象とした有効フレームの番号（以下、処理フレーム番号という）Ｎを表す変数に対して値’０’を代入して初期化する（ステップＳ１５１）。尚、有効フレームの番号は、撮像時刻又は保存時刻の順に各有効フレームを並べた場合の並び順をいう。次に、合成画像生成部２１８ｄは、処理フレーム番号Ｎの有効フレームから、ステップＳ９６で補正された被写体範囲情報で表される被写体範囲の部分画像（以下、被写体範囲画像という）を切り抜く（ステップＳ１５２）。次に、合成画像生成部２１８ｄは、図１２（ａ）のステップＳ９１と同様に、背景画像の合成を行うか否かを判別する（ステップＳ１５３）。このとき、合成画像生成部２１８ｄは、背景画像の合成を行うと判別すると（ステップＳ１５３；Ｙｅｓ）、例えば、図８（ａ）のステップＳ５２で検出したマスクデータを用いて、被写体範囲画像の背景領域に対して、図１２（ａ）のステップＳ９２で選択された選択背景画像を合成する（ステップＳ１５４）。具体例としては、合成画像生成部２１８ｄは、被写体範囲画像の画素それぞれに対してマスクデータの対応する値が０もしくは０付近であるか否かを判別し、マスクデータが０もしくは０付近であると判別すると、当該画素の画素値を選択背景画像の当該画素に対応した画素の画素値と置き換える。尚、合成画像生成部２１８ｄは、例えば、ＲＯＭ２１０ｃ又は記憶部２３０に記憶された所定の閾値よりもマスクデータの対応する値が小さい場合に、マスクデータの対応する値が０付近であると判別する。この構成によれば、例えば、予め定められた透過色の画素を選択背景画像の画素に置き換える場合と比べて、被写体領域にたまたま透過色と同じ色の領域がある場合であっても、当該領域の画素が背景画像の画素に置き換えられることを防止できる。また、合成画像生成部２１８ｄは、被写体範囲画像の画素それぞれに対して画素色がグレーであるか否かを判別し、画素色がグレーであると判別すると、当該画素の画素値を選択背景画像の当該画素に対応した画素の画素値と置き換えるとしてもよい。この構成によれば、被写体範囲画像の画素色がグレーなどの透過色であるか否かに基づいて選択背景画像の画素と被写体範囲画像の画素とを置き換えるため、少ない処理量かつ短い処理時間で被写体範囲画像と選択背景画像とを合成できる。
【０１３０】
その後、合成画像生成部２１８ｄは、図１７のステップＳ１３５で決定した比率ｒａｔｅに従って、図１７のステップＳ１４２で補正した被写体範囲画像のｘ軸方向のサイズと被写体範囲画像のｙ軸方向のサイズを拡大／縮小する。次に、合成画像生成部２１８ｄは、未だ被写体範囲画像を合成されていない結果画像の分割領域（以下、未使用の分割領域という）の内で、最も左上の分割領域に対して、拡大／縮小率された被写体範囲画像を合成する（ステップＳ１５５）。尚、合成画像生成部２１８ｄは、最も左上の分割領域から順番に被写体範囲画像を合成することに限定される訳ではなく、所定の規則に従って被写体範囲画像を未使用の分割領域に合成すれば良い。
【０１３１】
次に、合成画像生成部２１８ｄは、処理フレーム番号Ｎを表す変数の値を値’１’だけインクリメントする（ステップＳ１５６）。その後、合成画像生成部２１８ｄは、処理フレーム番号Ｎを表す変数の値が有効フレーム数と等しいか否かを判別する（ステップＳ１５７）。このとき、合成画像生成部２１８ｄは、処理フレーム番号Ｎを表す変数の値が有効フレーム数と異なると判別すると（ステップＳ１５７；Ｎｏ）、ステップＳ１５３から上記処理を繰り返す。これに対して、合成画像生成部２１８ｄは、処理フレーム番号Ｎを表す変数の値が有効フレーム数と等しいと判別すると（ステップＳ１５７；Ｙｅｓ）、合成画像を表す画像データを、例えば、ＪＰＥＧやビットマップなどの一般的なフォーマットの電子ファイルとして記憶部２３０へ保存する。次に、合成画像生成部２１８ｄは、保存した合成画像のファイル名を、合成画像の生成に用いられた画像群を表すファイル名と同じファイル名又は関連したファイル名とすることで、合成画像と合成画像の生成に用いられた画像群とを関連付ける。また、動画像に基づいて合成画像を生成した場合には、合成画像生成部２１８ｄは、生成した合成画像の画像データを、合成画像の生成に用いられた動画像を表す動画ファイルのヘッダ領域に格納することで、動画像と合成画像とを関連付けても良い。
【０１３２】
図４（ａ）のステップＳ０４の後に、図５（ａ）の合成画像出力制御部２１９は、ステップＳ０４で生成された合成画像（つまり、結果画像）を表す画像データを、合成画像の生成に用いられた画像群（つまり、連写画像）を構成する被写体画像の画像データと関連付けて、外部装置へ出力するように外部Ｉ／Ｆ部３１０を制御した後に（ステップＳ０５）、合成画像生成処理の実行を終了する。尚、合成画像出力制御部２１９は、生成された合成画像を表示するように表示部３２０を制御しても良い。
【０１３３】
これらの構成によれば、複数の被写体画像に表された被写体範囲の差異に基づいて被写体の動作を表す被写体画像を選択すると共に、選択された被写体画像に表された被写体を複数並べて表示する合成画像の画像データを生成する。このため、被写体の動きを表す管理が容易な画像データを生成できる。
【０１３４】
これらの構成によれば、被写体範囲が所定の大きさよりも大きい画像を有効画像として選択するので、所定の大きさよりも大きい被写体を並べて表示する合成画像を生成できる。よって、合成画像を視認したユーザは、被写体の動きを容易に認識できる。
【０１３５】
これらの構成によれば、被写体範囲の差異が大きい有効画像から順に合成画像に合成される画像として選択するので、差異の大きい被写体を並べて表示する合成画像を生成できる。よって、合成画像を視認したユーザは、被写体の動きを容易に認識できる。
【０１３６】
これらの構成によれば、重複画像が重複して表示させ、かつ重複画像を一様に分布するように表示する合成画像を生成するので、被写体の動作に対する視認性の低下を防止しながら、指定された数の被写体を並べて表示できる。
【０１３７】
これらの構成によれば、複数の被写体範囲を包含する有効範囲と同一又は相似形状の分割領域に被写体を表す部分画像を合成するため、拡大／縮小により生じる被写体の形状の歪みを防止しながらスペース効率的良く合成画像に並べて表示させることができる。
【０１３８】
（変形例１）
本実施形態において、図１３のステップＳ１０３及びＳ１１０において、２つの被写体領域画像（つまり、有効フレーム）の被写体範囲の差異は、被写体範囲情報のＸｓｔａｒｔ同士の差異、Ｘｅｎｄ同士の差異の差異、Ｙｓｔａｒｔ同士の差異、及びＹｅｎｄ同士の差異といずれか１つ以上で表されるとして説明した。しかし、これに限定される訳ではなく、被写体領域画像選択部２１６は、被写体範囲情報Ｘｓｔａｒｔ、Ｙｓｔａｒｔ、Ｘｅｎｄ、及びＹｅｎｄにより算出される被写体範囲の中心座標の差異を被写体範囲の差異とする構成を採用できる。
【０１３９】
この構成において、図５（ａ）の被写体領域画像選択部２１６は、以下のような構成を採用できる。例えば、被写体領域画像選択部２１６は、図１９（ａ）及び図１９（ｂ）に示すような同じ被写体が写し出された２枚の被写体画像の特徴点に基づいて、これら２枚の被写体画像を背景が一致するように重ねる。次に、２枚の被写体画像の一方を基準として、もう一方の被写体画像を背景が一致するように重ねるためにｘ軸方向にシフトさせたシフト量Ｘｓ及びｙ軸方向にシフトさせたシフト量Ｙｓを算出する。その後、被写体領域画像選択部２１６は、シフト量Ｘｓ及びＹｓを、被写体情報Ｘｓｔａｒｔ、Ｙｓｔａｒｔ、ＸＥｅｎｄ、及びＹＥｅｎｄに加算することで、基準とした被写体画像（以下、基準被写体画像という）のＸＹ座標系で表されるシフトされた被写体画像（以下、シフト被写体画像という）の被写体範囲を表す被写体範囲情報を算出する。その後、被写体領域画像選択部２１６は、基準被写体画像の被写体範囲情報（以下、基準被写体範囲情報という）を用いて基準被写体画像の座標系における基準被写体画像の被写体範囲の中心Ｃｂの座標値を算出し、シフトされた被写体範囲情報（以下、シフト被写体範囲情報という）を用いて基準被写体画像の座標系におけるシフト被写体画像の被写体範囲の中心Ｃｓの座標値を算出する。次に、被写体領域画像選択部２１６は、それぞれ算出された中心座標の距離を被写体範囲の差異度とする。
【０１４０】
この構成によれば、被写体範囲の中心座標の変化を差異度とするので、例えば、被写体画像に表された被写体の大きさなどの形状の変化よりも被写体の位置の変化を表すコマ割画像（つまり、結果画像）を生成できる。このため、結果画像を視認したユーザは、被写体の位置の変化を容易に認識できる。
【０１４１】
（変形例２）
本実施形態において、図１３のステップＳ１０３及びＳ１１０において、２つの被写体領域画像（つまり、有効フレーム）の被写体範囲の差異は、被写体範囲情報のＸｓｔａｒｔ同士の差異などで表されるとして説明したが、これに限定される訳ではなく、被写体領域画像選択部２１６は、以下の構成を採用しても良い。先ず、被写体領域画像選択部２１６は、上記の変形例１のように、図２０（ａ）及び図２０（ｂ）に表された２つの被写体画像を背景が一致するように重ねる。次に、被写体領域画像選択部２１６は、基準被写体範囲情報で表される被写体範囲と、シフト被写体範囲情報で表される被写体範囲とが重なる範囲（以下、重複部分という）ＡＯの面積と、重ならない範囲（以下、非重複部分という）ＮＡＯの面積とを、基準被写体範囲情報とシフト被写体範囲情報とを用いて算出する。次に、被写体領域画像選択部２１６は、以下の式（１２）を用いて被写体範囲の相違を表す変動量を算出する。
【０１４２】
差異度＝非重複部分の面積の総和／（非重複部分の面積の総和＋重複分の面積の総和）・・・（１２）
【０１４３】
ここで、重複部分ＡＯの面積及び非重複部分ＮＡＯの面積は、重複部分ＡＯの画素数及び非重複部分ＮＡＯの画素数でそれぞれ表される。この差異度は、非重複部分ＮＡＯが多くなる程大きい値となり、非重複部分が少なくなる程小さい値となる。
この構成によれば、被写体範囲の重複部分ＡＯの面積の総和と非重複部分ＮＡＯの面積の総和とを和算した値に対する非重複部分ＮＡＯの面積の総和の比率を差異度としているので、例えば、撮像時における被写体との距離の変化、又はズーム倍率の変化などによる、被写体画像に表された被写体の大きさの変化が大きい被写体範囲画像を並べて表示する結果画像を生成できる。このため、結果画像を視認したユーザは、被写体のサイズ変化を容易に認識できる。
【０１４４】
（変形例３）
本実施形態において、図１３のステップＳ１０３及びＳ１１０において、２つの被写体領域画像の被写体範囲の差異は、被写体範囲情報のＸｓｔａｒｔ同士の差異などで表されるとして説明したが、これに限定される訳ではなく、被写体領域画像選択部２１６は、被写体範囲情報のＸｓｉｚｅ同士の差異及びＹｓｉｚｅ同士の差異のいずれか１つ以上を差異度としても良い。
【０１４５】
（変形例４）
本実施形態において、図１３のステップＳ１０３及びＳ１１０において、２つの被写体領域画像の被写体範囲の相違は、被写体範囲情報のＸｓｔａｒｔ同士の差異などで表されるとして説明したが、これに限定される訳ではない。例えば、被写体領域画像選択部２１６は、２つの被写体領域画像の被写体範囲情報にそれぞれ基づいて、２つの被写体領域画像の被写体範囲における平均画素値の差異を算出し、算出した差異を被写体範囲の差異度としても良い。また、例えば、被写体領域画像選択部２１６は、２つの被写体領域画像の被写体領域画像の平均画素値の差異を算出し、算出した差異を被写体範囲の差異度としても良い。
【０１４６】
（変形例５）
デジタルカメラ１は、撮像部１００で連写撮像された連写画像を構成する被写体画像を用いて結果画像（合成画像）を生成するとして説明した。しかし、これに限定される訳ではなく、デジタルカメラ１は、動画撮像機能を有しており、画像処理部２２０は、撮像部１００で撮像された、例えば、動画データで表される毎秒３０フレームのそれぞれを連写画像を構成する被写体画像として記憶部２３０に保存してもよい。また、制御部２１０は、動画データの１フレームを連写画像を構成する１毎の被写体画像とみなして結果画像を生成しても良い。
【０１４７】
（変形例６）
尚、画像処理部２２０は、撮像部１００より受信した電気信号を、ＹＵＶフォーマットの画像データに変換し、図５（ａ）の被写体領域画像生成部２１５は、図８のステップＳ６１に記述した相違度マップの各画素値を、以下の式（１３）を用いて算出する構成を採用できる。
【０１４８】
Ｄ＝（ＹＣ−Ｙ）２＋Ｇ×｛（ＵＣ−Ｕ）２＋（ＶＣ−Ｖ）２｝・・・（１３）
ここで、Ｄは相違度マップの画素値を表し、ＹＣ、ＵＣ、及びＶＣは被写体画像の画素値（輝度及び色差）を表し、Ｙ、Ｕ、及びＶは被写体画像の画素値に対応する位置にある背景画像の画素値（輝度及び色差）を表す。また、Ｇは色差Ｕ及びＶのゲインを表す。
【０１４９】
（変形例７）
また、画像処理部２２０は、撮像部１００より受信した電気信号を、ＲＧＢフォーマットの画像データに変換し、画像処理部２２０は、図８のステップＳ６１に記述した相違度マップの各画素値を、以下の式（１４）を用いて算出する構成を採用できる。
【０１５０】
Ｄ＝（ＲＣ−Ｒ）２＋（ＧＣ−Ｇ）２＋（ＢＣ−Ｂ）２・・・（１４）
ここで、Ｄは相違度マップの画素値を表し、ＲＣ、ＧＣ、及びＢＣは被写体画像の画素の値（赤、緑、及び青）をそれぞれ表し、Ｒ、Ｇ、及びＢは被写体画像の画素値に対応する位置にある背景画像の画素値（赤、緑、及び青）を表す。
【０１５１】
上記で説明したデジタルカメラ１は、専用のシステムによらず、通常のコンピュータシステムを用いても実現可能である。例えば、上述の動作を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に格納して配布し、該プログラムをコンピュータにインストールして、上述の処理を実行することによって装置を構成してもよい。また、インターネット等のネットワーク上のサーバ装置が備えるディスク装置に格納しておき、例えばコンピュータにダウンロード等できるようにしてもよい。また、上述の機能を、ＯＳとアプリケーションソフトの共同より実現してもよい。この場合には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロード等してもよい。
【０１５２】
上記のプログラムを記録する記録媒体としては、ＵＳＢメモリ、フレキシブルディスク、ＣＤ、ＤＶＤ、Ｂｌｕ−ｒａｙ  Ｄｉｓｃ、ＭＯ、ＳＤカード、ＭＳ（メモリースティック）、その他、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ、磁気テープ等のコンピュータ読取可能な記録媒体を使用することができる。また、ＨＤＤ（ハードディスク）やＳＳＤ（ソリッドステートドライブ）等、通常、システム又は装置に固定して使用する記録媒体を使用することもできる。
【符号の説明】
【０１５３】
１・・・デジタルカメラ、１００・・・撮像部、１１０・・・光学装置、１２０・・・イメージセンサ、２００・・・画像処理装置、２１０・・・制御部（画像生成装置）、２１１・・・被写体画像データ取得部、２１２・・・背景画像データ取得部、２１３・・・被写体領域情報検出部、２１４・・・被写体範囲情報算出部、２１５・・・被写体領域画像生成部、２１６・・・被写体領域画像選択部、２１７・・・被写体範囲画像生成部、２１８・・・合成画像データ生成部、２１８ａ・・・分割数算出部、２１８ｂ・・・拡大／縮小率算出部、２１８ｃ・・・被写体範囲補正部、２１８ｄ・・・合成画像生成部、２１９・・・合成画像出力制御部、２２０・・・画像処理部、２３０・・・記憶部、２４０・・・画像出力部、３００・・・インタフェース部、３１０・・・外部Ｉ／Ｆ部、３２０・・・表示部、３３０・・・操作部
【図１】
0005573520.tif 000005
【図２】
0005573520.tif 000006
【図３】
0005573520.tif 000007
【図４】
0005573520.tif 000008
【図５】
0005573520.tif 000009
【図６】
0005573520.tif 000010
【図７】
0005573520.tif 000011
【図８】
0005573520.tif 000012
【図９】
0005573520.tif 000013
【図１０】
0005573520.tif 000014
【図１１】
0005573520.tif 000015
【図１２】
0005573520.tif 000016
【図１３】
0005573520.tif 000017
【図１４】
0005573520.tif 000018
【図１５】
0005573520.tif 000019
【図１６】
0005573520.tif 000020
【図１７】
0005573520.tif 000021
【図１８】
0005573520.tif 000022
【図１９】
0005573520.tif 000023
【図２０】
0005573520.tif 000024