以下、添付図面を参照して本発明に係る好適な実施の形態及びその変形例を順に詳細に説明する。なお、本発明は、図示例に限定されるものではない。
図1〜図11を参照して、本発明に係る実施の形態を説明する。先ず、図1を参照して、本実施の形態の撮影装置1の装置構成を説明する。図1に、本実施の形態の撮影装置1の機能構成を示す。
以下、撮影装置1で撮影する対象を被写体という。特に、運動する被写体のことを被写動体という。また、連続して撮影した写真データをフレームといい、連写速度として1秒間に撮影するフレーム数をfpsといい、フレームに含まれる撮影範囲を画角という。また、被写動体が画角内で移動している複数のフレームの被写体領域画像を1枚の背景画像に合成することを動体連写合成(又は合成)といい、この動体連写合成によって生成した、被写動体の動き(移動の様子)を表す画像を動体連写合成画像という。
撮影装置1は、デジタルカメラ等の撮影装置であり、複数枚の画像を連続撮影する連写機能(連続撮影機能)を有する。また、撮影装置1は、連写撮影した画像を合成して、動体連写合成画像を生成する画像合成機能を有する。
図1に示すように、撮影装置1は、被写体を撮影する画像データ生成部21と、画像処理を行うデータ処理部22と、使用者に処理経過を見せ、操作を受けるユーザインタフェース部23と、を備える。
画像データ生成部21は、光学レンズ部101と、イメージセンサ102と、を備える。
光学レンズ部101は、被写体を撮影するために、光を集光するレンズなどで構成されたものであり、焦点、露出等のカメラ設定パラメータを調整するための周辺回路を備える。イメージセンサ102は、光学レンズ部101が光を集光することによって結像した画像を、デジタル化した画像データとして取り込むためのものであり、CCD(Charge Coupled Device)等によって構成される。
なお、画像データ生成部21は、高解像度画像撮影と低解像度画像撮影(ライブビュー撮影)が可能である。低解像度画像撮影は、例えば、画像解像度がXGA(1024×768ドット)程度で解像度は低いが、画像を30fps(フレーム/秒)の速さで動画撮影と画像読み出しが可能になる。他方、高解像度画像撮影は、たとえば、撮影可能な最大の画素数、例えば、撮影装置1が400万画素のカメラである場合は、その400万画素の画像撮影を行う。ただし、高解像度画像撮影での画像読み取りは遅くなる。
データ処理部22は、メモリ201と、ビデオ出力部202と、画像処理部203と、制御部204と、プログラムメモリ205と、を備える。
メモリ201は、RAM(Random Access Memory)で構成され、撮影する毎に、イメージセンサ102が取り込んだ画像データを一時記憶するためのものである。また、メモリ201は、画像処理に必要な画像データ、各種フラグの値、閾値等も記憶する。また、メモリ201は、画像表示をおこなうための表示画像データを保存と読み出しをおこなうためのメモリ領域も含まれている。
ビデオ出力部202は、画像データからRGB信号を生成するものである。ビデオ出力部202は、メモリ201の表示メモリ領域に格納された表示画像データを読み出し、RGB信号を生成し、生成したRGB信号をユーザインタフェース部23の液晶表示部301へ出力する。また、ビデオ出力部202は、RGB信号を外部インタフェース303を介して、テレビ、PC(Personal Computer)、プロジェクタ等の外部機器へ出力して表示させることも可能である。
画像処理部203は、メモリ201に一時記憶されている画像データに対して、画像表示を行うための所定の画像処理を施す。当該画像処理を施された画像データは、表示画像データとしてメモリ201の表示メモリ領域に格納される。また、画像処理部203は、画像データをJPEG(Joint Photographic Expert Group)方式等のファイルに圧縮・符号化する機能と、逆に伸長・復号化する機能とを有する。例えば、メモリ201に記憶されている画像データが読み出されて、画像処理部203によりJPEG方式で圧縮・符号化されて外部メモリ304に記憶される。また、外部メモリ304に記憶されている画像のJPEGファイルが読み出されて、画像処理部203により伸長・復号化されて画像データとしてメモリ201に記憶される。
制御部204は、CPU(Central Processing Unit)、RAM(図示略)等を備え、撮影装置1の各部を制御する。制御部204において、CPUは、プログラムメモリ205に記憶されたプログラムの中から指定されたプログラムを読み出してRAMに格納し、RAMに展開されたプログラムとの協働で各種処理を実行する。
プログラムメモリ205は、ROM(Read Only Memory)やフラッシュメモリ等の記憶装置から構成され、制御部204の動作に必要な各種プログラムやデータを記憶する。特に、プログラムメモリ205は、後述する設定プログラム、第1の連写合成プログラムを記憶している。
ユーザインタフェース部23は、液晶表示部301と、操作部302と、外部インタフェース303と、外部メモリ304と、を備えて構成される。
液晶表示部301は、ビデオ出力部202から出力されたRGB信号に基づいて撮影画像を表示する。具体的には、画像データ生成部21により生成された複数の画像データ(画像フレーム)に基づいたライブビュー画像や、録画中に外部メモリ304に記録される動画像を表示したり、外部メモリ304に記録された動画像を再生表示したりする。なお、液晶表示部301は、ビデオ出力部202から適宜出力される表示画像データを一時的に記憶するビデオメモリ(図示せず)を備えるようにしてもよい。また、液晶表示部301に代えて、ELD(ElectroLuminescent Display)等の表示部としてもよい。
操作部302は、各種機能キー、選択キー、メニューキー、シャッタキー、電源キー等のキーを備え、ユーザからの各キーへのキー操作入力を受け付け、当該操作入力に応じた操作信号を制御部204に出力する。
外部インタフェース303は、テレビやPC、プロジェクタ等の外部機器との接続用端子であり、所定の通信ケーブルを介してデータの送受信を行う。また、外部メモリ304は、例えば、SD(Secure Digital)カード、メモリースティック等の不揮発性メモリやハードディスク等により構成され、画像データ生成部21により撮影された被写体画像の画像データを、複数記憶する。外部メモリ304には、例えば、JPEGファイルに変換された画像データが記憶される。
次に、図2〜図11を参照して、撮影装置1の動作を説明する。先ず、図2〜図5を参照して、本実施の形態の連写撮影及び動体連写合成の概要を説明する。図2に、撮影装置1による被写動体Oの撮影の様子を示す。図3(a)に、連写枚数C1=3の画像選択パターン表を示す。図3(b)に、連写枚数C1=5の画像選択パターン表を示す。図3(c)に、連写枚数C1=7の画像選択パターン表を示す。図4に、被写動体Oの運動の様子を示す。図5に、被写動体Oの動体連写合成画像G1を示す。
図2に示すように、本実施の形態の連写撮影の一例として、撮影装置1により運動する人物としての被写動体Oを連写撮影するケースを説明する。撮影装置1は、撮影時に、三脚等、又は撮影者の把持により、固定状態にされる。このため、画角A内で、被写動体Oのみが移動することになる。
本実施の形態の撮影は、撮影上限枚数をN、動体連写合成画像における適切な動体数をCとしたときに、N>Cの撮影モデルである。被写動体Oがフレームインした瞬間に1枚目の連写撮影が開始するとして、通常の場合はここから予め設定した連写速度で連写撮影が撮影上限枚数まで繰り返されるが、本実施の形態では、撮影連写速度を段階的に下げながら(連写撮影間隔をあけながら)連写撮影が行われる。
撮影連写速度(fps)の初期値を連写速度F1とする。最初に、撮影装置1において、連写速度F1で、連写枚数C1枚の連写撮影が行われる。また、連写枚数C1は、N>C1≧Cを満たす奇数に設定される。
C枚の合成を行うので、被写動体がフレームインした瞬間に1枚目のシャッターを押すことができ、C枚目の撮影が終わった瞬間にフレームアウトするような、理想的な運動をした場合はC1=Cで問題はないのだが、実際には理想的な状況で撮影することは困難なので、ある程度の余分を含んだC1が好ましい。
また、連写枚数C1に対して、撮影上限枚数Nが十分に大きい数であるほうが好ましい。というのは、段階的に撮影連写速度を変更できる幅が広がり、つまりは撮影できる被写動体の速度の幅が広がるからである。
連写枚数C1枚連写後、撮影装置1において、撮影連写速度が連写速度F2=F1/2に変更され、C2=(C1−1)/2枚の連写撮影が行われる。撮影連写速度=F2にてC2枚の連写が終了したら、撮影装置1において、撮影連写速度が連写速度F3=F2/2に変更され、C3=C2枚の連写撮影が行われる。以下同様にして、撮影装置1において、撮影連写速度を半分にしながら全撮影枚数CA(CA=C1+C2+C3…)が、撮影上限枚数Nを超えるまで、または撮影連写速度が十分に小さい値になるまで、連写撮影処理が繰り返される。
上記で撮影したフレームを、1枚目から順に、
f1、f2、…、f(C1)、
f(C1+1)、f(C1+2)、…、f(C1+C2)、
f(C1+C2+1)、…、f(CA)とする。
ここで、連写枚数C1=3,5又は7である場合の具体例を考える。例えば、C1=3の場合に、(連写速度、撮影枚数)は、
(F1、3) :初期値(F1、C1)
(F2、1) :F2=F1/2、C2=(C1−1)/2=1
(F3、1) :F3=F2/2、C3= C2 =1
(F4、1) :F4=F3/2、C4= C3 =1
・・・
となる。
連写枚数C1=3の場合の撮影パターンの一例は、図3(a)で示される。「連写間隔」における画像「●」が、撮影装置1で各時間で実際に撮影される撮影画像を示す。つまり、実際に撮影される撮影画像(全撮影画像)は、最初の3枚が1秒間間隔(撮影連写速度(fps)=F1とする)、次の1枚が2秒間隔(撮影連写速度(fps)=F2とする)、その次の1枚が4秒間隔(撮影連写速度(fps)=F3とする)、その次の1枚が8秒間隔(撮影連写速度(fps)=F4とする)というように、段階的に撮影連写速度が下げられている。
例えば、C1=5の場合に、(連写速度、撮影枚数)は、
(F1、5) :初期値(F1、C1)
(F2、2) :F2=F1/2、C2=(C1−1)/2=2
(F3、2) :F3=F2/2、C3= C2 =2
(F4、2) :F4=F3/2、C4= C3 =2
・・・
となる。連写枚数C1=5の場合の撮影パターンの一例は、図3(b)で示される。
例えば、C1=7の場合に、(連写速度、撮影枚数)は、
(F1、7) :初期値(F1、C1)
(F2、3) :F2=F1/2、C2=(C1−1)/2=3
(F3、3) :F3=F2/2、C3= C2 =3
(F4、3) :F4=F3/2、C4= C3 =3
・・・
となる。連写枚数C1=7の場合の撮影パターンの一例は、図3(c)で示される。
また、図3(b)に示すように、C1=5で撮影される場合に、撮影したフレームは、
f1=ft=1、f2=ft=2、f3=ft=3、f4=ft=4、f5=ft=5、
f6=ft=7、f7=ft=9、
f8=ft=13、f9=ft=17,
f10=ft=25、f11=ft=33、
となる。
ここで、撮影連写速度=F2で連写撮影した場合のフレームをf21,f22,…,f2Nとすると、
f21=f1,
f22=f3,
f23=f5,
・・・
f2(C1−1)=f(C1+C2−1),
f2(C1)=f(C1+C2)、が成り立つ。
同様に、撮影連写速度=F3で連写撮影した場合のフレームをf31,f32,…,f3Nとすると、
f31=f1,
f32=f5,
・・・
f3(C1)=f(C1+C2+C3)、が成り立つ。
以下同様の手順で、初期の撮影連写速度の2のべき乗分の1の撮影連写速度で、それぞれ連写枚数C1枚連写撮影したフレーム全てを撮影画像とすることが出来る。このように、連写枚数C1が奇数の場合に、各撮影連写速度の全てのフレームを撮影できる。
図4に示すように、被写動体Oが動く場合を考える。各コマの間隔は、1秒とする。撮影上限枚数N=11、連写枚数C1=7とする。被写動体Oが画角に入った4コマ目から撮影が開始されると、図3(c)の「連写間隔」の「●」の撮影パターンで撮影される。このようにして、図4上、1から11の番号の付されたコマの撮影画像データ(フレーム)が生成される。そして、このフレームの中で被写動体Oが著しく重なり合わないようなフレームが選択され、それらの中から被写動体Oの被写体領域画像と背景領域画像とを分離し、ひとつのフレームの背景領域画像に複数の被写体領域画像を合成する。
ここでは、11枚の撮影フレームのうち、被写動体Oがフレームアウトする直前の10番目の撮影フレームを含む撮影フレームが選択されるものとする。10番目の撮影フレームの撮影連写速度(fps)は、連写速度F2である。よって、図3(c)の連写速度(fps)=F2の「●」のパターンで撮影フレームが選択される。すると、1、3、5、7、8、9、10番目の7枚の撮影フレームが選択される。この7枚の撮影フレームを動体連写合成すると、図5に示す動体連写合成画像G1となる。
動体連写合成画像G1は、被写動体Oの被写体領域を7つ含む。また、動体連写合成画像G1において、画角Aに被写動体Oが入った時点から、画角Aから被写動体Oが出て行く直前迄、7つの被写体領域が分散して配置されている。
このように、本実施の形態では、被写動体Oの動きが等速であれば、被写動体の移動速度と画角(フレームの大きさ)とに関わらず、動体連写合成に必要なフレーム間で位置が適度に分散したタイミングの連写撮影が可能である。ただし、被写動体Oの動きが等速である場合に限定されない。
なお、連写枚数C1が偶数の場合に、各撮影連写速度で全てのフレームを撮影することができない。偶数枚数を動体連写合成したい場合は、各撮影連写速度で「+1」して奇数とした連写枚数C1の連写撮影の後、被写動体のフレーム内状況から適切に分散された偶数枚数の撮影画像が選び出されて撮影画像の動体連写合成が行われることとすればよい。
次いで、図6〜図11を参照して、撮影装置1で実行される設定処理及び第1の連写合成処理を説明する。図6に、設定処理の流れを示す。図7に、第1の連写合成処理の流れを示す。図8に、第1の連写合成処理における第1の連写処理の流れを示す。図9に、第1の連写合成処理における合成処理の流れを示す。図10に、合成処理における疑似背景画像生成処理の流れを示す。図11に、合成処理における被写体領域抽出処理の流れを示す。
先ず、図6を参照して、設定処理を説明する。設定処理は、連写撮影に必要なパラメータである撮影連写速度の初期値(撮影開始時の連写速度)としての連写速度F1と、撮影上限枚数Nと、連写枚数C1と、を設定する処理である。
撮影装置1において、例えば、ライブビュー表示がなされている場合に、ユーザから操作部302に、設定処理の実行指示が入力されたことをトリガとして、プログラムメモリ205に記憶された設定プログラムに従って、制御部204により、設定処理が実行される。
図6に示すように、先ず、連写速度F1、撮影上限枚数N及び連写枚数C1の設定画面が液晶表示部301に表示される(ステップS1)。そして、操作部302を介して、ユーザからの連写速度F1、撮影上限枚数N及び連写枚数C1の操作入力が受け付けられる(ステップS2)。
そして、操作部302を介したユーザからの設定処理終了指示の操作入力の有無に応じて、設定処理を終了するか否かが判別される(ステップS3)。設定処理を終了しない場合(ステップS3;NO)、ステップS1に移行される。
設定処理を終了する場合(ステップS3;YES)、ステップS2で入力された連写速度F1、撮影上限枚数N及び連写枚数C1がメモリ201に記憶され(ステップS4)、設定処理が終了する。なお、露光時間等、撮影に必要な諸条件は、上記設定処理とは別に、ライブビュー表示時等に、操作部302を介する操作設定入力等に応じて、適宜設定(各条件情報がメモリ201に記憶)されるものとする。
次いで、図7〜図11を参照して、第1の連写合成処理を説明する。第1の連写合成処理は、連写速度を初期の連写速度F1から段階的に下げていきながら被写動体を連写撮影し、その全撮影画像データから、適切な連写速度で、被写体領域画像を含む連写枚数C1の撮影画像データを選択し、その選択した撮影画像データを合成して動体連写合成画像データを生成する処理である。また、撮影装置1は、連写撮影の間に固定されているものとする。
撮影装置1において、例えば、ライブビュー表示がなされている場合に、ユーザから操作部302に、第1の連写合成処理の実行指示が入力されたことをトリガとして、プログラムメモリ205に記憶された第1の連写合成プログラムに従って、制御部204により、第1の連写合成処理が実行される。
図7に示すように、先ず、画像データ生成部21で生成されたライブビュー画像データが、ビデオ出力部202により液晶表示部301にライブビュー画像として表示される(ステップS11)。そして、ユーザにより操作部302のシャッタキーが押下操作され、撮影指示されたか否かが判別される(ステップS12)。そして、撮影連写速度を初期の連写速度F1から下げていきながら被写動体を連写撮影する第1の連写処理が実行される(ステップS13)。ステップS13の第1の連写処理は、詳細に後述される。
そして、ステップS13で撮影された全フレーム(全撮影画像データ)の画像の特徴点が合致するよう位置ずれが補正される(ステップS14)。
そして、適切な連写速度で連写枚数C1の撮影画像データを選択して合成して動体連写合成画像データを生成する合成処理が実行される(ステップS15)。この動体連写合成画像データは、メモリ201に記憶される。ステップS15の合成処理は、詳細に後述される。
そして、メモリ201に記憶された動体連写合成画像データが、ビデオ出力部202により、動体連写合成画像として液晶表示部301に表示される(ステップS16)。そして、メモリ201に記憶された動体連写合成画像データが外部メモリ304に記憶され(ステップS17)、第1の合成連写処理が終了する。ステップS17では、例えば、動体連写合成画像データが画像処理部203によりJPEG符号に符号化・圧縮されて、JPEGファイルとして外部メモリ304に記憶される。また、この動体連写合成画像データ(又はJPEGファイル)は、外部インタフェース303を介して外部機器に出力されることとしてもよい。
図8を参照して、ステップS13の第1の連写処理を詳細に説明する。先ず、画像データ生成部21の撮影連写速度が、メモリ201に記憶されている連写速度F1に設定される(ステップS21)。そして、メモリ201に記憶されている各種条件設定情報に応じて、画像データ生成部21により、連写速度F1で1枚撮影され、その撮影画像データが生成されてメモリ201に記憶される(ステップS22)。撮影画像データは、撮影時の連写速度と、撮影開始からの撮影画像データの順番と、に対応付けられてメモリ201に記憶されることとし、以下同様とする。
そして、メモリ201に記憶された撮影画像データの番号が参照され、ステップS22で連写枚数C1枚の撮影画像が撮影されたか否かが判別される(ステップS23)。連写枚数C1枚が撮影されていない場合(ステップS23;NO)、ステップS22に移行される。連写枚数C1枚が撮影された場合(ステップS23;YES)、連写枚数C2が(C1−1)/2に設定される(ステップS24)。
そして、画像データ生成部21の撮影連写速度が、現在設定中の連写速度の1/2の値に設定される(ステップS25)。そして、メモリ201に記憶されている各種条件設定情報に応じて、画像データ生成部21により、現在設定中の撮影連写速度で1枚撮影され、その撮影画像データが生成されてメモリ201に記憶される(ステップS26)。そして、メモリ201に記憶された撮影画像データの番号が参照され、ステップS26で現在設定中の連写速度で連写枚数C2枚の撮影画像が撮影されたか否かが判別される(ステップS27)。連写枚数C2枚が撮影されていない場合(ステップS27;NO)、ステップS26に移行される。
連写枚数C2枚が撮影された場合(ステップS27;YES)、メモリ201に記憶された撮影画像データの通番が参照され、撮影した全ての撮影画像データが撮影上限枚数Nあるか否かが判別される(ステップS28)。全撮影画像データが撮影上限枚数Nある場合(ステップS28;YES)、第1の連写処理が終了する。
全撮影画像データが撮影上限枚数Nに達しない場合(ステップS28;NO)、現在設定中の撮影連写速度が、予め設定された所定値よりも小さいか否かが判別される(ステップS29)。現在設定中の撮影連写速度が所定値よりも小さい場合(ステップS29;YES)、第1の連写処理が終了する。現在設定中の撮影連写速度が所定値以上である場合(ステップS29;NO)、ステップS25に移行される。
図9を参照して、ステップS15の合成処理を詳細に説明する。先ず、全ての撮影画像データ(全フレーム)から、疑似的な背景画像である疑似背景画像を生成し、その疑似背景画像から被写体領域画像抽出のために用いる変動閾値を算出する疑似背景画像生成処理が実行される(ステップS31)。ステップS31の疑似背景画像生成処理は、詳細に後述される。そして、ステップS31で算出された変動閾値を用いて、全フレームから被写体領域画像を抽出するための領域マスクデータを生成する被写体領域抽出処理が実行される(ステップS32)。ステップS32の被写体領域抽出処理は、詳細に後述される。
そして、ステップS32で生成された領域マスクデータを用いて、メモリ201に記憶された撮影画像データから全フレームの被写体領域画像が抽出され、時間的に最後の被写体領域画像を含むフレーム(1枚の撮影画像データ)が取得される(ステップS33)。そして、メモリ201が参照されて、ステップS33で読み出されたフレームの連写速度が取得される(ステップS34)。そして、ステップS33で取得された最後の被写体領域画像を含むフレームへの被写体領域画像の上書きが終了したか否かが判別される(ステップS35)。ステップS35では、後述するステップS36において、上書き対象の被写体領域画像を含むフレームが取得されなかった場合に、上書きが終了したと判別される。
上書きが終了した場合(ステップS35;YES)、合成処理が終了する。上書きが終了していない場合(ステップS35;NO)、メモリ201に記憶された全フレームの中から、ステップS34で取得された連写速度の直前(当該連写速度に対応する撮影間隔分1つ前)のフレームが選択され、その選択フレームの被写体領域画像が取得される(ステップS36)。
そして、ステップS36で取得された被写体領域画像が、ステップS34で取得された最後の被写体領域画像を含むフレームの被写体領域画像が重複しない画像部分に上書きされ(ステップS37)、ステップS35に移行される。ステップS36で被写体画像領域が取得されない場合は、ステップS37でも上書きされない。
図10を参照して、ステップS31の疑似背景画像生成処理を詳細に説明する。先ず、フレーム内のピクセル(画素)の座標(x,y)が初期化される(ステップS41)。フレーム内の座標(x,y)は、例えば、左上端の座標が選択され、1ピクセルずつ右に移動して選択されていき、右上端の座標が選択されると、一段下の左端の座標が選択され、1ピクセルずつ右に移動して選択されていくことを繰り返して、1フレーム内の全ピクセルの座標が順に選択されていく。この例では、ステップS41で左上端の座標が初期座標とされる。
そして、メモリ201に記憶されている全フレームのうち、未選択の1つのフレームが選択され、その選択フレームの現在選択中の座標(x,y)のピクセル値が取得される(ステップS42)。そして、ステップS43で全フレームで同一座標(x,y)のピクセル値が取得されたか否かが判別される(ステップS43)。全フレームの同一座標(x,y)のピクセル値が取得されていない場合(ステップS43;NO)、ステップS42に移行される。
全フレームの同一座標(x,y)のピクセル値が取得された場合(ステップS43;YES)、全フレームの同一座標(x,y)のピクセル値の中央値fbが取得される(ステップS44)。中央値fbは、疑似背景画像のピクセル値となる。
そして、ステップS44で取得された中央値fbに対応する全フレームの座標標準偏差fsが算出される(ステップS45)。座標標準偏差は、下記の式(1)により算出される。
但し、fd(n,x,y)=|fb(x,y)−f(n,x,y)|:フレームnにおける座標(x,y)のピクセル差分値、
fb(x,y):フレームにおける座標(x,y)の中央値(疑似背景ピクセル値)、
f(n,x,y):フレームnにおける座標(x,y)のピクセル値、
n:フレーム番号(1〜page)、
page:全フレーム数、である。
そして、ステップS45の座標標準偏差算出が全座標で終了したか否かが判別される(ステップS46)。全座標で終了していない場合(ステップS46;NO)、座標(x,y)がフレーム内の未選択の次の座標に移動(選択)され(ステップS47)、ステップS42に移行される。
全座標で終了した場合(ステップS46;YES)、全フレームのから1つの未選択のフレームが選択され、その選択フレームにおける全座標のピクセル値から、座標標準偏差fsを超えるピクセル値が抽出される(ステップS48)。そして、ステップS48において全フレーム(且つ全座標)の座標標準偏差fsを超えるピクセル値が抽出されたか否かが判別される(ステップS49)。全フレーム且つ全座標の座標標準偏差fsを超えるピクセル値が抽出されていない場合(ステップS49;NO)、ステップS48に移行される。
全フレーム且つ全座標の座標標準偏差fsを超えるピクセル値が抽出された場合(ステップS49;YES)、ステップS48で抽出されたピクセル値から変動閾値moveが算出され(ステップS50)、疑似背景画像生成処理が終了する。変動閾値moveは、次式(2)で算出される。
但し、over[m]=fd(n,x,y){fs(x,y)<fd(n,x,y)、0<m≦maxm}、
Maxm:fs(x,y)<fd(n,x,y)を満たした数、である。
図11を参照して、ステップS32の被写体領域抽出処理を詳細に説明する。先ず、全フレームから未選択の1つのフレームが選択される(ステップS61)。そして、現在選択中の選択フレームnから未選択の1つの座標(x,y)が選択される(ステップS62)。そして、選択フレームnの選択座標(x,y)において、ピクセル差分値fd(n,x,y)が変動閾値moveを超えるか否かが判別される(ステップS63)。ピクセル差分値fd(n,x,y)が変動閾値moveを超える場合(ステップS63;YES)、座標(x、y)が有効とされ、データfp(n,x,y)=1に設定される(ステップS64)。ピクセル差分値fd(n,x,y)が変動閾値moveを超えない場合(ステップS63;NO)、座標(x、y)が無効とされ、データfp(n,x,y)=0に設定される(ステップS65)。
そして、同一フレームnで全座標の選択が終了したか否かが判別される(ステップS66)。同一フレームnで全座標の選択が終了していない場合(ステップS66;NO)、ステップS62に移行される。同一フレームnで全座標の選択が終了した場合(ステップS66;YES)、生成された0と1とのデータfpに対して、連続している領域に同じ番号が振られ、離れている領域には別の番号を振るラベリングが行われ、ラベリングした領域のうち最大の領域のみが有効とされる(残される)(ステップS67)。そして、有効とされた領域に対して、膨張(ステップS68)、穴埋め(ステップS69)、収縮(ステップS70)といった欠損を補完するための処理が行われる。また、この際に、生成した領域情報の周辺部に透過パラメータを付加させることで、より自然な上書きが可能となる。
そして、ステップS67〜S70により抽出された領域の領域マスクデータが生成され(ステップS71)。全フレームの選択が終了したか否かが判別される(ステップS72)。全フレームの選択が終了していない場合(ステップS72;NO)、ステップS61に移行される。全フレームの選択が終了した場合(ステップS72;YES)、被写体領域抽出処理が終了する。
以上、本実施の形態によれば、撮影装置1は、撮影連写速度を段階的に下げながら複数の連写速度に対応する連写撮影を行う。このため、様々な速度で動く被写動体に対応して、全ての撮影画像データから、適切な連写速度の撮影画像データを得ることができる。また、一定の撮影速度で連写撮影する場合に比べ、被写動体の移動速度、及び画角の影響が少ない連写撮影が可能である。
また、撮影装置1は、連写速度F1で連写枚数C1の撮影画像データを生成する連写撮影をし、次いで、撮影中の連写速度を1/2倍した連写速度に切り替え、(連写枚数C1−1)/2枚の撮影画像データを生成する連写撮影をすることを繰り返す。このため、様々な速度で動く被写動体に対応して、全ての撮影画像データから、適切な連写速度の撮影画像データを確実に得ることができる。
また、撮影装置1は、連写撮影後に、全ての撮影画像データ(全フレーム)に基づいて、最後の被写体領域画像を含む撮影画像データに対応する撮影連写速度を取得し、全撮影画像データから、前記取得された撮影連写速度に対応する撮影画像データを選択し、当該選択した撮影画像データを合成して動体連写合成画像データを生成する。このため、様々な速度で動く被写動体に対応し、被写動体の位置が適度に分散される動体連写合成画像データを生成することができる。
また、撮影装置1は、操作部302を介してユーザからの連写枚数C1の操作入力を受け付けて設定し、当該設定した連写枚数C1を用いて連写撮影を行う。このため、ユーザが連写枚数C1を任意の値に設定することができる。
また、撮影装置1は、操作部302のシャッタキーの押下入力に応じて、連写撮影を開始する。このため、ユーザが所望のタイミングで連写撮影を開始することができる。
また、撮影装置1は、操作部302を介してユーザからの撮影上限枚数Nの操作入力を受け付けて設定し、当該設定した撮影上限枚数Nの撮影画像データを生成する連写撮影を行う。このため、連写撮影時のユーザの操作負担を軽減できる。
また、操作部302を介してユーザからの撮影開始時の撮影連写速度として連写速度F1の操作入力を受け付けて設定し、当該設定した連写速度F1で連写撮影を開始する。このため、ユーザが撮影開始時の撮影連写速度を任意の値に設定することができる。
(変形例)
図12〜図14を参照して、上記実施の形態の変形例を説明する。上記実施の形態では、シャッタキー押下に応じて連写撮影を開始し、撮影画像の撮影枚数が撮影上限枚数Nになると自動的に撮影を終了する構成を説明したが、本変形例では、被写動体のフレームインに応じて連写撮影を自動的に開始し、被写動体のフレームアウトに応じて自動的に撮影を終了する構成を説明する。
本変形例の装置として、撮影装置1を用いるものとする。但し、プログラムメモリ205には、第1の連写合成プログラムに代えて、第2の連写合成プログラムが記憶されているものとする。
次に、図12〜図14を参照して、本変形例の撮影装置1の動作を説明する。図12に、第2の連写合成処理の流れを示す。図13に、第2の連写合成処理における第2の連写処理の流れを示す。図14に、フレーム内の開始評価領域及び終了評価領域を示す。
本変形例では、撮影装置1において、設定処理及び第2の連写合成処理が実行される。設定処理は、上記実施の形態と同様である。第2の連写合成処理は、被写動体のフレームイン/フレームアウトに応じて連写速度を初期の連写速度F1から段階的に下げていきながら自動的に連写撮影し、その全撮影画像データから、適切な連写速度で、被写体領域画像を含む連写枚数C1の撮影画像データを選択し、その選択した撮影画像データを合成して動体連写合成画像データを生成する処理である。
撮影装置1において、例えば、ライブビュー表示がなされている場合に、ユーザから操作部302に第2の連写合成処理の実行指示が入力されたことをトリガとして、プログラムメモリ205に記憶された第2の連写合成プログラムに従って、制御部204により、第2の連写合成処理が実行される。
図12に示すように、先ず、画像データ生成部21で生成されたライブビュー画像データが、ビデオ出力部202により液晶表示部301にライブビュー画像として表示される(ステップS81)。また、ステップS81において、直近の2フレーム分のライブビュー画像データが、メモリ201に記憶されるものとする。このメモリ201に記憶された直近のライブビュー画像データのフレーム番号をkと表現し、その1つ前のライブビュー画像データのフレーム番号を(k−1)と表現する。
そして、メモリ201に記憶されている直近の2フレームのライブビュー画像データが参照され、その開始評価領域fa_in(k−1)≒fa_in(k)でなく、被写動体がフレームインしたか否かが判別される(ステップS82)。開始評価領域fa_inは、撮影したい被写動体のフレームイン時の通過を検出するための画角内の領域である。例えば、図14に示すように、被写動体Oが画角内を左端からフレームインして右に移動する場合に、開始評価領域fa_inは、画角の左端付近に設定される。
被写動体がフレームインしていない場合(ステップS82;NO)、ステップS81に移行される。被写動体がフレームインした場合(ステップS82;YES)、第2の連写処理が実行される(ステップS83)。第2の連写処理は詳細に後述される。ステップS84〜S87は、それぞれ、第1の連写合成処理のステップS14〜S17と同様である。
図13を参照して、第2の連写処理を説明する。先ず、ステップS91、S92は、それぞれ、第1の連写処理のステップS21,S22と同様である。そして、メモリ201に記憶されている直近2フレーム(撮影画像データのフレーム番号をkと表現し、その1つ前の撮影画像データのフレーム番号を(k−1)と表現する)分の撮影画像データが参照され、その終了評価領域fa_out(k−1)≒fa_out(k)でなく、被写動体がフレームアウトしたか否かが判別される(ステップS93)。終了評価領域fa_outは、撮影したい被写動体のフレームアウト時の通過を検出するための画角内の領域である。例えば、図14に示すように、被写動体Oが画角内を左から右へ移動して右端からフレームアウトする場合に、終了評価領域fa_outは、画角の右端付近に設定される。
被写動体がフレームアウトした場合(ステップS93;YES)、第2の連写処理が終了する。被写動体がフレームアウトしていない場合(ステップS93;NO)、ステップS94に移行される。ステップS94〜S97は、それぞれ、第1の連写処理のステップS23〜S26と同様である。そして、メモリ201に記憶されている直近2フレームの撮影画像データが参照され、その終了評価領域fa_out(k−1)≒fa_out(k)でなく、被写動体がフレームアウトしたか否かが判別される(ステップS98)。
被写動体がフレームアウトした場合(ステップS98;YES)、第2の連写処理が終了する。被写動体がフレームアウトしていない場合(ステップS98;NO)、ステップS99に移行される。ステップS99〜S101は、それぞれ、第1の連写処理のステップS27〜S29と同様である。
以上、本変形例によれば、上記実施の形態と同様に、様々な速度で動く被写動体に対応して、全ての撮影画像データから、適切な連写速度の撮影画像データを得ることができ、その撮影画像データから動画連写合成画像データを生成できる。また、撮影装置1は、ライブビューの画像データの開始評価領域fa_inに基づいて、撮影画像に被写動体が検出されたか(フレームインしたか)否かを判別し、フレームインした場合に、連写撮影を開始する。このため、フレームインした被写動体に対して確実に連写開始でき、連写撮影開始時のユーザの操作負担を軽減できる。
また、撮影装置1は、撮影画像データの終了評価領域fa_outに基づいて、撮影画像に被写動体が検出されなくなったか(フレームアウトしたか)否かを判別し、フレームアウトした場合に、連写撮影を終了する。このため、連写撮影終了時のユーザの操作負担を軽減でき、不要な撮影画像データの生成を防ぐことができ、メモリ201に撮影画像データを記憶する容量を節約できる。
なお、上記実施の形態における記述は、本発明に係る撮影装置、撮影方法及びプログラムの一例であり、これに限定されるものではない。
例えば、上記実施の形態と変形例とを適宜組み合わせる構成としてもよい。例えば、シャッタキー押下で連写撮影を開始し、被写動体のフレームアウトに応じて自動的に連写撮影を終了する構成や、シャッタキー押下又は被写動体のフレームインに応じて連写撮影を開始する構成としてもよい。
また、シャッタキー押下開始から押下終了までの間に、連写撮影を継続して行う構成としてもよい。また、上記変形例において、最終の撮影画像データから所定数(例えば、2)フレーム分前の撮影画像データを、被写体領域画像が含まれる最後の撮影画像データとする構成としてもよい。
また、以上の説明では、本発明に係るプログラムのコンピュータ読み取り可能な媒体としてプログラムメモリ205を使用した例を開示したが、この例に限定されない。
その他のコンピュータ読み取り可能な媒体として、CD-ROM等の可搬型記録媒体を適用することが可能である。
また、本発明に係るプログラムのデータを通信回線を介して提供する媒体として、
キャリアウエーブ(搬送波)も本発明に適用される。
また、上記実施の形態及び変形例における撮影装置1の各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱することのない範囲で適宜変更可能であることは勿論である。