(第1の実施形態)
画像処理技術による流し撮りを実現するためには、主被写体がぶれていない画像が必要になる。主被写体がぶれないシャッター速度で撮影した場合、背景のぶれ幅も小さくなりやすいため、背景に流し撮りの効果を付与する必要がある。上記の課題に鑑み、本実施形態では、主被写体がぶれていない画像と、背景がぼけている画像を合成することで、流し撮りと同様の効果を持たせることを特徴とする。
図1は、本発明の第1の実施形態にかかわる画像処理装置の一例としての撮像装置のブロック図である。
撮像装置100は、デジタルカメラ、デジタルビデオカメラのようなカメラはもとより、カメラ機能付き携帯電話、カメラ付きコンピュータ、スキャナなど、撮像機能を備える任意の電子機器であっても良い。また、本実施形態における撮像装置100の一部あるいは全部をもって本実施形態における画像処理装置とすることができる。画像処理装置としては必ずしも撮像機能を有する必要はなく、撮像素子102から出力される画像あるいは各記憶装置に記憶されている画像を処理する機能を有していればよい。
光学系101は、レンズ、シャッター、絞りから構成されており、被写体からの光束を撮像素子102に導き、被写体の光学像を撮像素子102上に結像する。そして、焦点距離、シャッター速度、絞り値などの情報を中央演算装置(以降、CPU)103へ伝達する。
CCD(Charge Coupled Device)、CMOS(Complementary Metal Oxide Semiconductor)などで構成される撮像素子102は、光学系101により結像された光学像を電気信号に変換する。その後AD変換器を通してデジタル化した後、一次記憶装置104に記憶する。また、本実施形態では、撮像素子102の画素配列はRGBの画素によるBayer配列とするが、本発明の適用はこの画素配置に限られない。例えば補色の色フィルタの画素の配列であってもよいし、このような撮影用の画素とは別に測色、測距などの目的で機能画素などを配していてもよい。なお、撮像素子102の電気的利得(以降、ISO感度)は、CPU103によって設定される。
ジャイロセンサなどの角速度センサ105は、振れを検出し、電気信号として変換してCPU103へ伝達する。
制御部として機能するCPU103は、入力された信号や予め記憶されたプログラムに従い、撮像装置100を構成する各部を制御することで、撮像装置100の各機能を実現させる。なお、以下の説明において、CPU103がプログラムを実行して実現する機能の少なくとも一部は、ASIC(Application Specific Integrated Circuit)などの専用ハードウェアによって実現されても良い。
一次記憶装置104は、例えばRAM(Random Access Memory)のような揮発性装置であり、CPU103の作業用に使われる。また、一次記憶装置104に記憶されている情報は、画像処理部106で利用されたり、記録媒体107へ記録されたりもする。
二次記憶装置108は、例えばEEPROMのような不揮発性記憶装置であり、撮像装置100を制御するためのプログラム(ファームウェア)や各種の設定情報を記憶し、CPU103によって利用される。
記録媒体107は、一次記憶装置104に記憶されている、撮影により得られた画像のデータなどを記録する。なお、記録媒体107は、例えば半導体メモリカードのように撮像装置100から取り外し可能であり、記録されたデータはパーソナルコンピュータなど他の機器で読み出し可能である。つまり、撮像装置100は、記録媒体107の着脱機構及び読み書き機能を有する。
表示部109は、CPU103の指示により一時記憶装置104内に表示用に記憶される情報を液晶等の表示媒体に表示させる機能を有する。本実施形態では、撮像素子102から連続的に取得される画像の少なくとも一部を順次表示するライブビュー(ビューファインダ)表示の機能も有する。また、撮影後記録媒体107等に記録されている記録画像の再生表示、対話的な操作のためのGUI(Graphical User Interface)などの表示の機能を有する。
操作部110は、ユーザの操作を受け付けてCPU103へ入力情報を伝達する入力デバイス群であり、例えばボタン、レバー、タッチパネル等はもちろん、音声や視線などを用いた入力機器であっても良い。なお、本実施形態の撮像装置100は、画像処理装置106が撮像画像に適用する画像処理のパターンを複数有し、パターンを撮像モードとして操作部110から設定可能である。また、操作部110は、表示部109が表示に用いる表示媒体が備えるタッチパネルへの操作も検知する。
画像処理部106は、いわゆる現像処理と呼ばれる画像処理をはじめ、撮影モードに応じた色調の調整なども行う。例えばデモザイキング処理などの補間処理、ホワイトバランス処理、収差、歪などの補正処理、シャープネス、ガンマ処理、マトリクス演算、ルックアップテーブル等による色変換処理などがあげられる。表示部109で表示するためのリサイズ、ガンマ変換等の表示用処理、記録媒体107への記録時の符号化、圧縮等の記録用処理も画像処理部106により行う。また、本実施形態にある流し撮り画像を生成する処理も画像処理部106が行う。合成される複数の画像や処理過程で生成される画像データは、例えば一次記憶装置104に記憶される。なお、画像処理部106の機能の少なくとも一部は、CPU103がソフトウェア的に実現しても良い。
図2は、流し撮り撮影モードでの撮影、記録に関するCPU103の処理に関するフローチャートである。
なお、本実施形態では、画像の撮影、記録までの指示が2段階になっており、以降に出てくる操作部110のS1は、撮影準備の指示を意味し、操作部110のS2は、本画像の撮影、記録の指示を意味する。また、本実施形態では、S1を操作部110のシャッターボタンの半押し、S2をシャッターボタンの全押しと対応付けてユーザが入力可能なようにしている。この他にも操作部110がタッチパネルである場合、タッチパネルへのタッチ操作を変えることが考えられ、任意の操作をS1、S2に割り当てることが可能である。
S201で、CPU103は、操作部110からのユーザの入力を受け付ける。
S202で、CPU103は、入力された情報を基に、光学系101の焦点距離、シャッター速度、絞り値などの設定を調節する。
S203で、CPU103は、入力された情報を基に、撮像素子102のISO感度などの設定を調節する。
S204で、CPU103は、変更された設定に関する情報を表示部109でユーザに提示する。
S205で、CPU103は、角速度センサ105で検出された撮像装置100の角速度の情報を受信する。また、S205をS202やS203と同様に常に実行することで、焦点距離、シャッター速度、絞り値、ISO感度などの情報と併せて、角速度の情報も画像情報として埋め込むことができる。そして、撮影済みの画像に対して、カメラ内での再処理や、PCアプリケーションでの後加工を容易にする。記録する角速度の情報としては、角速度自体であっても良いし、画像間で移動した角度、角変位であっても良い。
なお、S201〜S205の順番はこの限りではなく、処理に応じて自由に順番を入れ替えることができる。
S206で、操作部110のS1の入力の有無(ON/OFF)を判定し、操作部110のS1が入力されない限り、CPU103は、S201〜S205の動作を繰り返し行う。
以降は、S206で、操作部110のS1が入力(ON)された後の処理である。
S207で、CPU103は、光学系101の一部である測光センサを用いて明るさを計測する。また、自動露出制御を行うAE(Auto Exposure)モードの場合は、シャッター速度と絞り値、ISO感度を用いて、自動的に露出を調節する。
S208で、CPU103は、自動焦点調節制御を行うAF(Auto Focus)モードの場合、光学系101の一部あるいは撮像素子102内に配されている測距センサを用いて、被写体距離を測定し、デフォーカス量に基づいて焦点調節を行う。
なお、S207、S208の順番はこの限りではなく、処理に応じて自由に順番を入れ替えることができる。
S209では、操作部110のS2の入力の有無(ON/OFF)を判定し、操作部110のS2が入力されない限り、CPU103は、S201〜S208の動作を繰り返し行う。また、S209において操作部110のS1の入力が継続されているかどうかの検出を行い、操作部110のS1の入力が行われていない(OFF)の場合、ステップS201に戻るように構成してもよい。
以降は、S209で、操作部110のS2が入力(ON)された後の処理である。
S210では、操作部10からのS2の撮影指示を受けて、流し撮り処理に必要な数の画像を撮影する。この際、流し撮りモードでは、ユーザが、流し撮り効果を得るため、撮像装置100(あるいは撮像素子102を含むその一部)をパンニングして撮影を行うことを想定している。流し撮りに用いる画像の数はユーザによりあらかじめ設定されていてもよいし、後述するように、主被写体の速度、パンニングの量、背景領域をぼかす程度の設定などから自動的に算出される数であってもよい。
S211では、S210で撮影された画像データに対して画像処理部106が上述したような現像処理を行う。
S212では、CPU103は、複数の画像間の分割した領域ごとの移動ベクトルを検出することによる主被写体領域の検出と、検出された主被写体領域での位置合わせ処理を行う。ここで、本実施形態で主被写体領域とは、撮影画像の画像内において後述する背景領域と区別して検出される被写体領域のことを指し、当該領域内の被写体が例えば複数の人物から構成されていてもよいものとする。また、本実施形態では、流し撮りの主被写体領域として、大きく動いている被写体の領域(動体領域)を検出することとする。すなわち、被写体領域以外で、複数の撮影の中で静止している被写体(静止体)は背景として取り扱われる。ただし、上述したとおり、パンニングして撮影が行われることを想定している場合、画像間で比較すると、パンニング方向の逆方向にパンニング量に対応するような動きをする被写体が元は静止している被写体である。パンニング方向にパンニング量と同様の動きをする被写体が動体と判定される。詳細は後述する。一方、三脚等で固定して撮影が行われることを想定している場合、動きベクトルが大きく検出できる領域が主被写体領域と考えられる。
S213では、CPU103は、画像処理部106によってS212で主被写体領域が一致するように位置合わせが行われた複数枚の画像を合成し、流し撮り画像として合成画像を生成する。流し撮りと同様の視覚効果のある合成画像の生成方法としては複数の方法が考えられる。本実施形態では、主被写体領域が撮影された複数の画像間で一致するように位置合わせを行って加算し、さらに合成後の画像の主被写体領域とは異なる背景領域にぼかし処理を行う。また、最終的な合成画像を生成する方法としてはこれに限らない。たとえば、撮影で得られた複数の画像の背景領域に、画像間の背景の移動量に基づいたぼかし量(タップ数)でぼかし処理(フィルタ処理等)を施し、主被写体領域が撮影された複数の画像間で一致するように位置合わせを行って加算平均で合成してもよい。ここで、背景の移動量は、角速度センサ105によって得られる角速度から算出できる。また、合成後の画像を上記のようにぼかした画像と、ぼかす前の画像とをさらに合成した画像を最終的な合成画像としてもよい。合成後の画像のイメージを図11に示す。画像1104は、画像1101,1102、1103に基づいて上記のステップで合成を行い生成された画像のイメージ図である。動体であり、主被写体である車両がくっきりと写り、背景の木が流れて写っている。
図2に戻り、S214では、CPU103は、S213で生成された合成画像データやその元となった合成前の画像データに画像処理部106によって表示用処理が施された画像データを、表示部109に表示する。
そして、S215では、CPU103は、記録媒体107にS213で生成された合成画像データやその元となった合成前の画像データに、記録用に符号化、圧縮等の処理が施された画像データを記録する。また、本実施形態では、記録画像の設定として、現像処理等を行っていないRAW画像の記録や、現像処理を施し規格に準拠したJPEG画像の記録などを設定可能である。それらの設定によってはS210の現像処理やS216での符号化等の処理は適用されない場合もある。
また、本実施形態では、S211における現像処理後の画像に対してS212の主被写体の検出処理、及びS213の流し撮り合成処理を行ったが、これに限らず、現像処理前の画像に対して各処理を適用することも可能である。
図3(a)は、図2のS212で行われる主被写体領域(動体領域)の検出、および主被写体領域での画像間の位置合わせ処理の詳細を示したフローチャートである。
S301で、CPU103は、画像を複数の領域に分割した探索用ブロックを設定し、探索用ブロック単位で画像間における移動ベクトルを検出する。
S302で、CPU103は、検出した移動ベクトルの中で、ほぼ同じベクトルとなるものの数を数える。計数後の状態を、横軸にベクトルの大きさ、縦軸に数(度数)でヒストグラム化したものを図3(b)に示す。横軸は0を境に、移動ベクトルの方向を区別している。まず、角速度センサ105で検出される振れ(すなわち複数の画像間の撮像手段の動き情報)に基づく背景の移動量310を基準とし、図のように移動ベクトルを、背景の移動量から離れた主被写体成分311と、背景の移動量近傍の背景成分312に分類する。次に、分類された主被写体成分311の移動ベクトルの中で、数が最も多かった移動ベクトルを主被写体ベクトル313とする。
尚、ここで角速度センサ105で検出される振れの情報を用いずに移動ベクトルのヒストグラムから主被写体と背景を分類することも可能である。例えば流し撮りがユーザのパンニング撮影によって行われた場合には、各画像でほぼ中心付近に主被写体がいると仮定し、ベクトルの大きさがゼロに近く、画像内で連続した領域に固まって存在する移動ベクトルに対応する領域が、主被写体領域と考えられる。しかし、移動ベクトルの探索領域の大きさによっては移動ベクトルの誤検出も存在するため、上記実施形態のように、センサからの振れ情報を参照した方がより精度良く主被写体と背景を分類できる。
上述のようにして、S303で、CPU103は、主被写体領域に対応する移動ベクトルを特定する。本実施形態では、各画像を撮像する際の角速度センサ105からの信号を画像間の撮像装置100の移動量に換算して対象の画像間での背景の移動量を推定し、静止している背景の移動ベクトルとそれ以外のベクトルを分類する。背景に対応する移動ベクトルを除いたときに、数が最多である移動ベクトルを主被写体に対応する移動ベクトルと推定する。なお、本実施形態では、撮像装置100の角速度を角速度センサ105によって検出しているが、これに限らず、加速度センサ、その他位置を計測するセンサ等を用いて加速度、変位を検出し、カメラの画像間の移動量に換算してもよい。また本実施形態では、撮影がパンニングを伴って行われていることを想定しているので、主被写体の移動ベクトルの決定方法として、上記方法で背景の移動ベクトルを分類した。上記のように背景の移動ベクトルを角速度センサ105の信号によって分類しない場合には、2番目に多い移動ベクトルを主被写体の移動ベクトルと判定する。あるいは、当該移動ベクトルを持つ領域がある程度のかたまりを持って存在しているかを検出したりして、主被写体の移動ベクトルを推定する。また、三脚を使って撮像装置100を固定して撮影を行う場合を想定している場合、単に画像上で最多な移動ベクトルを主被写体の移動ベクトルと判定することも出来る。また、移動ベクトルは、画像水平方向、画像垂直方向を別々に扱っても良いし、合わせたものを扱っても良い。
S304で、CPU103は、当該主被写体の移動ベクトルの値に基づいて、基準画像に対して主被写体の位置が合うように、一次記憶装置104のメモリ内でシフト移動による画像の位置合わせを行う。
最後に、S305で、位置合わせする残りの画像の有無を判定する。すなわち、位置合わせする対象の画像が残っている限り、S301に戻り次の画像の位置合わせを行い、全ての画像の位置合わせが終了した際、図2のS212の処理を終了する。
図3(c)は、図2のS213で行われる(流し撮り)合成処理の詳細を示したフローチャートである。
S321で、CPU103は、図3のS304で位置合わせされた複数の画像を合成することで、主被写体においても、時間の経過に伴う主被写体の変化を、ぶれを抑えた上で表現した第1の合成画像を作成する。たとえば、走る人間を主被写体としたときに、人間の手が振られている動きを、合成することにより表現することが出来る。この第1の合成画像は最終的な合成画像において主被写体領域に主として用いられる。
S322で、CPU103は、S321で合成した画像にかけるローパスフィルタ(以降、LPF)のタップ数を算出する。詳細は後述するが、LPFのタップ数は、流れるような画像効果を掛ける対象である背景の移動量に応じて、背景を流すために不足する画素数分を補うようなタップ数が算出される。また、ユーザから背景を流す程度について手動あるいは自動で指定がある場合、指定された流す程度に対応するぼかし量を得るためのタップ数が算出される。
S323で、CPU103は、S321で合成した画像に前記タップ数のLPFをかけることで、背景の流れを表現した第2の合成画像を生成する。ここで、本実施形態では、S321で合成した第1の合成画像に対してLPFを掛けたが、合成前の各画像に対してLPFを掛けた後に合成して第2の合成画像を生成してもよい。
S324で、CPU103は、S321で合成した第1の合成画像と、S323でLPFをかけた画像を、図2、S212で検出した主被写体領域の情報を用いて合成する。このとき、主被写体領域はS321で合成した第1の合成画像を主として用い、背景領域はS323で生成した第2の合成画像を主として用いるように合成することで、流し撮りと同様の効果を持つ第3の合成画像を生成する。
次に、図3(c)のS322におけるLPFのタップ数の算出の概念を、図4、図5を用いて説明する。一般的な流し撮りは、1回の露光で撮影するため、背景は連続的に流れるように変化する。すなわち、例えば、図4における1枚目の画像401とその直後の2枚目の画像402の画像における背景403のぼけ方は、前記1枚目の画像と2枚目の画像を合成した際に、合成画像404における背景のようになることが望ましい。しかしながら、画像401と画像402の画像を単純に合成すると合成画像405のように背景が離散的に表示されてしまうため、本実施形態においては、背景の移動量406で表される部分に存在しない背景403の不足画素を補い、画像404のようにつなげて表示している。
すなわち、本実施形態では、この合成画像405において表示される離散的な背景の間の不足画素を補うようなタップ数で、カメラのパンニング方向(所定方向)に応じたフィルタを用いて背景が適切に流れている画像を生成する。例えば、背景の移動量406が5画素分だとした場合、1×5画素以上のローパスフィルタを設定する。また、フィルタ上の基準画素を、パンニング方向に応じて、例えばパンニングが左方向なら右端に設定する。このようにフィルタを設定し、合成画像の背景領域に対してフィルタ処理を行うことで、背景が適切な方向に、繋がって流れている流し撮り風の合成画像を生成することが出来る。
また、本実施形態では、合成画像において、ユーザーによって設定された所定のシャッター速度(ここでは相当シャッター速度と呼ぶ)で流し撮りを行ったのと同様の効果を得るために以下のような制御をおこなう。すなわち、ユーザによって設定された相当シャッター速度の合成画像にするために、単位時間当たりの撮影枚数(あるいはフレームレート)に応じて合成枚数を決定する。例えば、毎秒60枚の速度で画像を撮影する場合、ユーザによって設定された相当シャッター速度が1/60秒以下のときは1枚の画像から、1/20秒のときは3枚の画像から生成する。このように、合計の撮影時間が相当シャッター速度に対応するように合成枚数を決定する。なお、相当シャッター速度に対応する枚数以下の枚数であっても、その分背景領域のぼかし量を大きくすればよい。
例えば図5において、図5(b)、(c)は、ユーザが中央にある車両を主被写体としてパンニングしながら撮影した画像を、時間的に連続した2枚ずつで合成した画像をそれぞれ示している。図5(b)は撮影画像を時系列で並べた場合の1枚目の撮影画像と2枚目の撮影画像の合成画像、図5(c)は2枚目の撮影画像と3枚目の撮影画像の合成画像を示す。図5(d)は3枚目に撮影された画像を示し、点線で描かれた背景の木は、ユーザが従来の方法でパンニング中、露光したまま流し撮りをした場合に流れて写るであろう場所が示されている。
図5(a)はLPFのタップ数の設定の概念を説明する図であり、今、ユーザから最終的な合成画像の相当シャッター速度として1/20秒が設定され、毎秒60枚の速度で3枚の撮影を行ったとする。図において、背景403の所定位置の基準画素501が、1枚目、2枚目、3枚目の撮影で、基準画素501、基準画素502、基準画素503のように変化した様子を示している。このとき、基準画素501と基準画素502の間隔504、基準画素502と基準画素503の間隔505をそれぞれ画素がつながるように補間する必要がある。また、設定された相当シャッター速度で実際にパンニング中にも露光しながら撮影した場合には、基準画素503と基準画素506の間も背景は流れるため、基準画素503と基準画素506の間隔507も画素がつながるように補間する必要がある。したがって、合成後の画像に対して、図5(a)に示すように間隔504(あるいは、間隔505、間隔507)のタップ数のLPFをかけ、全体的な流し量を流し量508とする。
タップ数504を算出する方法、言い換えれば画像間の背景の移動量を算出する方法は、前述したように複数の画像を解析する方法と、撮像装置100の角速度を測定に用いる手法のいずれを用いても良い。複数の画像を解析する方法では、S301〜S303と同様に、領域ごとの移動ベクトルのヒストグラムから、ここでは背景の移動量として、背景の代表的な移動ベクトルを算出する。図6は、画像601と画像602との間で、図3(b)のようなヒストグラムから、背景603の移動ベクトルとして移動ベクトル604が算出されることを示すイメージ図である。
ここで、撮像装置100の角速度から背景の移動量を算出する手法について、図7と式1を用いて説明する。
図7は、カメラがパンニング等で回転した時に、静止している背景が撮像面上でどのように移動するかを表している。
撮像装置100を701のようにパンニングして、静止している被写体702を撮影した場合、静止している被写体702は、撮像素子102において、702’の位置から702”の位置まで移動する。
式1を用いて、前述の静止している被写体603の画像上の移動量を算出する。
式(1)に示す通り、静止している被写体、すなわち、背景の移動量705は、パンニングによる撮像装置100の移動角度703と、光学系101の焦点距離fから算出できる。移動角度703は、角速度センサ105で検出された撮像装置100の角速度ωと、単位時間当たりの撮影枚数(フレームレートfps)、サンプリングする画像間にある画像数nを用いて算出する。最後に、画素ピッチppを用いて画像上での背景の移動量705をピクセルに換算する。そして前述したように背景の移動量705に対応するタップ数を、今回のぼかし処理に用いるLPFのタップ数として扱う。
移動角度703は、各画像に対応した角速度から毎回正確に算出しても、全画像の平均角速度から一括して算出しても良い。
次に図3のS323における合成画像に対するLPF処理の詳細を、図8を用いて説明する。
画像801、画像802の主被写体を803とする。図2のS212の主被写体認識で、被写体の移動ベクトルに基づいて画像内の各領域を2値化した主被写体領域マップが、主被写体領域マップ804のように主被写体と背景の境界で正確に分離できるものとする。このとき、S324の画像合成において、LPFをかけた後の画像、すなわち、背景画像805で主被写体領域の画素を用いる必要はほとんどない。したがって、前述した方法で主被写体領域を抽出し、当該主被写体領域を除いた領域、すなわち、背景領域の画素について、前記のようにして設定されたタップ数のLPFをかけた画像を背景画像805とする。
最後に、S324で、主被写体画像(第1の合成画像)806から主被写体領域を選択し、背景画像(第2の合成画像)805から背景領域を選択して合成し、最終的な合成画像を生成する。当手法は、主被写体が正確に抽出できているときは、主被写体の周囲に残像がほとんど発生しないが、主被写体が正確に抽出できていないときは、主被写体と背景の境界が不自然になる可能性がある。境界が不自然になる対策として境界処理として主被写体領域と背景領域との境界を別途ぼかすフィルタ等のぼかし処理を行うことも考えられるが、主被写体領域と誤判定された領域は、境界処理としてのぼかし処理しか適用されず、やはり不自然に見えてしまう。主被写体領域がうまく抽出できない例として、例えば主被写体と背景の境界にコントラスト差がほとんどない場合がある。また、他にも移動ベクトルが上手く取れず、背景まで主被写体領域として抽出されてしまう可能性や、主被写体の一部が背景領域に分類されてしまう可能性がある。従って、当手法は適用する被写体を選ぶ可能性がある。
この手法に対して、次のような方法を採用することができる。すなわち、検出された主被写体領域の情報を用いて、主被写体領域周囲の画素を用いて主被写体領域内の画素を補間し、LPFをかけた画像を背景画像807とする。そして主被写体領域マップ808のように、主被写体と背景の境界をぼかし、S324で、主被写体領域の画素値に重みづけしつつ、主被写体画像806と背景画像807を主被写体領域マップ808にしたがって混ぜ合わせながら合成することもできる。
しかし、本手法においても、主被写体領域が中抜けした主被写体領域809のような形になった場合、合成後の画像の主被写体領域に背景が挿入されたり、映り込んだりする可能性もある。
そこで、本実施形態では以下の手法を用いる。まず、主被写体領域マップ804を、主被写体領域マップ810のように、ぼかし処理にて主被写体と背景の境界をぼかす。これにより主被写体領域マップ809のように中抜けが生じていた場合でも、中抜けの影響を主被写体領域マップ810のように軽減することができる。そして、主被写体画像(第1の合成画像)806に対して、式2のような主被写体領域マップ810の主被写体領域の画素値を係数としたLPFをかける。こうすることで、画像全体をぼかしつつも、主被写体領域の画素が周囲へ広まりにくいようにした背景画像(第2の合成画像)811を作成する。最後に、S324で、主被写体領域マップ810の画素値を重みとして、主被写体画像806と背景画像811を混ぜ合わせながら合成することで、流し撮り画像(第3の合成画像)812を生成する。当手法は、主被写体領域の画素が周囲へ広がることを抑制するだけではなく、中抜けのような場合にも効果がある。式2で示すようなタップ内の係数のLPFでぼかし処理を行うため、主被写体領域として認識された周囲の画素があまり用いられなくなり、低コントラストな領域の画素も単にぼけたような画像となる程度で、目立ちにくい。さらに、主被写体画像と合成することで、主被写体領域と誤判別された領域の不自然さはより目立たなくなる。
以上のように、本実施形態では、被写体のぶれていない画像を位置合わせして合成し、背景をぼかすぼかし処理を施す。こうすることで、一般的な流し撮りでは撮影が難しいようなシャッター速度での撮影画像と同様の効果を持つ流し撮り風の合成画像を提供することができる。また、複数の画像を合成するに当たって、主被写体を基準とした背景の移動量に応じて背景にぼかし処理を行うことで、より効果的な流し撮り風の合成画像を提供することができる。また、ユーザの所望する流し撮りの相当シャッター速度にあわせて画像の合成枚数を制御することで、より効果的な流し撮り風の合成画像を提供することができる。
(第2の実施形態)
第1の実施形態では、ユーザが操作部110を用いて設定するのは、合成画像が相当する流し撮りのシャッター速度(従来の流し撮りで撮影する場合のシャッター速度)だったが、第2の実施形態においては、最終的な画像上で流し撮りの効果として背景を流したい量をユーザーが設定できるようにする。例えば、ユーザは、予め設定されている大中小という3つの効果から効果量を選択して撮影を行う。例えば、効果小はnピクセル、効果中は2nピクセル、効果大は3nピクセルという形で、ぼかす幅を設定することで、効果量を変更する。また、効果量は、ユーザが、事前に任意の幅に設定できるものとする。
撮像装置100の構成は第1の実施形態と同様であるため、説明を省略する。
図9は、S213で行われる流し撮り合成の詳細を示したフローチャートである。
S901で、CPU103は、S212で位置合わせされた複数の画像を合成することで、時間の経過に伴う主被写体の変化を、ぶれを抑えた上で表現した画像を生成する。
S902で、CPU103は、現在、対象の画像に適用している総流し量を格納する変数を初期化する。
S903で、CPU103は、S212で位置合わせされた2画像間にかけるローパスフィルタのタップ数を算出値として算出する。タップ数の算出方法の詳細は後述する。
S904は、算出値のタップ数のLPFを現在の対象画像にかけたときに、現在の対象画像までを合成して得られる合成画像の流し量が、ユーザから設定された前述の効果量(流し量)の設定値をオーバーしないかを、総流し量+算出値と、設定値との比較演算により判定する。
総流し量+算出値が設定値をオーバーした場合は、S905で、算出値として、設定値と総流し量の差を新たに設定することで、設定値をオーバーしないようにする。
S906で、CPU103は、2画像のうち、先に撮影された画像に対して、LPFをかけることで不足画素を補う。
S907で、CPU103は、総流し量に今回のLPFの流し量を追加する。
S908は、総流し量が設定された効果量に達するかを判定する。
総流し量が設定された効果量に達しなかった場合は、S909により、次の画像に対して、S903〜S907の動作を繰り返し行う。
以降は、S908で、総流し量が設定された効果量に達した後の処理である。
S910で、CPU103は、S903〜S908で、LPFをかけた全ての画像を合成することで、背景の流れを表現した画像を作成する。なお、本実施形態では、S906にて合成前の各撮影画像に対して、S903にて決まるタップ数でLPF処理を施してから、S910で合成している。しかし、S903で決まるタップ数の例えば最大値を保持しておき、S905の調整が入る前までの画像については合成後に当該最大値のタップ数でLPF処理を施しても良い。
S911で、CPU103は、S901で合成した位置合わせ合成画像、すなわち、主被写体画像(第1の合成画像)と、S910で合成したLPF合成画像(第2の合成画像)、すなわち、背景画像を合成する。これにより、流し撮りと同様の効果を持つ第3の合成画像を作成する。
図9、S902〜S910におけるLPFに関する一連の処理の詳細を、図10を用いて説明する。図10(a)はLPFのタップ数の概念を示す図である。
背景1001が、背景1002、背景1003、背景1006と変化し、かつ、全体的な流し量(総流し量)を1008としたい場合、背景の移動量1004、背景の移動量1005の間を補間する必要がある。しかしながら、最終的な目標値(設定値)は総流し量1008であるため、背景1003と背景1006の間をすべて埋めるように補間してしまうと総流し量はユーザの流し量の設定値1008をオーバーすることになる。この状況が図9のS904でYESとなった場合に対応する。このような場合、背景1003と背景1009の間においては、図10(a)に示すようにLPFのタップ数の目標値を1009に変更し(S905)、1003と1009の間である1007のみを補間する。
前記1007は、最終的な目標値である総流し量1008と、背景1001〜背景1003における流し量1004、1005の差から求めることができる。このようにして、S907において、現在の処理対象の画像までのLPFのタップ数(ぼかし量)を現在の流し量として蓄積することで、合成枚数の増加に伴う総流し量の変化を把握し、適切な枚数、適切な効果量での流し撮り合成を可能とする。
それ以外の構成やフローは基本的に実施例1と同様である。ただし、前述の通り、実施例1では、LPFのタップ数は、不足画素を補うものだけでしかなかったが、本実施形態では、流し撮りの効果量に基づき制御する。
なお、主被写体の速度が短時間で変わることは稀なため、背景の画像間における移動量の平均値、あるいは、最大値を算出し、最初の画像から最後一つ手前の画像までは、前記値を用いて、同じタップ数のLPFをかけても良い。当手法を用いると、合成可能枚数を最初に算出することもできるため、処理の高速化にもつながる。
図12は、上記各実施形態にかかわるUIの構成の一例であり、表示部105により表示される画面を示した図である。
画像選択ボタン1201は、流し撮り効果を付与したい画像を選択する指示を受け付ける。画像選択ボタン1201がタッチ、あるいはカーソル等により選択されると、CPU103が画像選択ボタン1201による指示を受け、記録媒体107内の対象画像候補あるいは対象画像候補のファイル名を、スクロール表示あるいは一覧表示する。ユーザは一覧表示された画像の中から処理対象となる画像を選択する。
モード選択ボタン1202は、画像を手動で編集するか、自動で編集するかを選択する指示を受け付ける。画像を手動で編集する場合は、対象の画像あるいは画像群の選択、流し撮りの効果量の選択、調整等をユーザ自身で行う。自動で編集するを選択した場合、対象の画像あるいは画像群から画像解析により自動で流し量を設定し処理を行う。また、対象画像の選定も、画像のヘッダ情報などを参照して、例えば一番最後に連写された画像群を対象とするなど、自動で決定しても良い。
効果選択ボタン1203は、どれだけ背景を流すか、流し撮りの効果量を選択する指示を受け付ける。上記各実施形態では、効果量としての背景の流し量は、相当するシャッター速度かあるいは効果小、中、大か、あるいはピクセル数を入力するかのいずれかで指定する。しかし、これに限らず、流し量を設定するUIとしては、例えば合成対象の画像のいずれかを表示部105によって表示媒体に表示し、効果量の大小をバーのアイコンで表示し、バー上の指標をタッチ操作で動かすことで、効果量の大小を設定してもよい。また、表示された画像の背景部分のいずれかをタッチしたまま所定方向にドラッグしたり、流しの開始点と終了点を規定する少なくとも2点をタッチすることで、所定方向に指示された長さ分だけ流し量を与えた合成画像を生成するようにしてもよい。流し量が規定できるタッチ操作であれば、上記に限らない。
結果画像表示部1204は、それぞれの条件で生成された合成画像を複数一覧表示できるようになっている。各合成画像の編集の設定値(流し量など)は領域1205に表示される。図12では効果量の小、中、大で一覧表示されているが、シャッター速度を3段階設定して一覧表示させるなどしても良い。また、合成対象となる画像群の中でどの画像を合成するかのパターンを変えたものを一覧表示させても良い。
保存ボタン1206は、結果画像表示部1204に表示された画像を記録媒体に記録する指示を受け付ける。
設定表示部1207は、現在の編集モードや記録画像に設定されている効果量など、現在のステータスを表示する。
初期画像表示部1208は、選択された画像あるいは画像群のうちの1つを初期画像として表示する。初期画像として表示される画像は画像群のうちの何れでもよいが、例えば時系列的に最初の画像や、位置合わせ等で基準になり得る時系列的に中間にいる画像などが表示される。表示されている画像をタッチあるいはカーソルで選択することにより、表示画像を、画像群として選択された画像内で、変更できるようにしても良い。
画像情報表示部1209は初期画像、画像群全体、保存された合成画像いずれかの画像情報を表示する。例えば、保存ボタン1206により結果画像が保存された直後には、結果画像表示部1204には保存された結果画像が大きく一枚表示され、画像情報表示部1209には結果画像のファイル名、焦点距離、流し量や流し量に相当するシャッター速度などが表示される。
以上のように、本実施形態では、被写体のぶれていない画像を位置合わせして合成し、背景をぼかすぼかし処理を施す。こうすることで、一般的な流し撮りでは撮影が難しいようなシャッター速度での撮影画像と同様の効果を持つ流し撮り風の合成画像を提供することができる。また、複数の画像を合成するに当たって、主被写体を基準とした背景の移動量に応じて背景にぼかし処理を行うことで、より効果的な流し撮り風の合成画像を提供することができる。また、主被写体の速度にかかわらず、ユーザが背景を流したい流し量での撮影ができるため、流し撮りで最も重要な設定項目であるシャッター速度を適切にすることを意識しなくても、適切な流し撮り風の合成画像の生成が可能となる。
(他の実施形態)
本発明の目的は以下のようにしても達成できる。すなわち、前述した各実施形態の機能を実現するための手順が記述されたソフトウェアのプログラムコードを記録した記憶媒体を、システムまたは装置に供給する。そしてそのシステムまたは装置のコンピュータ(またはCPU、MPU等)が記憶媒体に格納されたプログラムコードを読み出して実行するのである。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体およびプログラムは本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどが挙げられる。また、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD−R、磁気テープ、不揮発性のメモリカード、ROM等も用いることができる。
また、コンピュータが読み出したプログラムコードを実行可能とすることにより、前述した各実施形態の機能が実現される。さらに、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した各実施形態の機能が実現される場合も含まれる。
更に、以下の場合も含まれる。まず記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う。
また、本発明はデジタルカメラのような撮影を主目的とした機器にかぎらず、携帯電話、パーソナルコンピュータ(ラップトップ型、デスクトップ型、タブレット型など)、ゲーム機など、撮像装置を内蔵もしくは外部接続する任意の機器に適用可能である。従って、本明細書における「撮像装置」は、撮像機能を備えた任意の電子機器を包含することが意図されている。