JP2019114143A - 画像処理装置、画像処理方法、およびプログラム - Google Patents

画像処理装置、画像処理方法、およびプログラム Download PDF

Info

Publication number
JP2019114143A
JP2019114143A JP2017248391A JP2017248391A JP2019114143A JP 2019114143 A JP2019114143 A JP 2019114143A JP 2017248391 A JP2017248391 A JP 2017248391A JP 2017248391 A JP2017248391 A JP 2017248391A JP 2019114143 A JP2019114143 A JP 2019114143A
Authority
JP
Japan
Prior art keywords
motion vector
image
blur
spatial filter
image processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017248391A
Other languages
English (en)
Inventor
宏史 鈴木
Hiroshi Suzuki
宏史 鈴木
小林 悟
Satoru Kobayashi
悟 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2017248391A priority Critical patent/JP2019114143A/ja
Publication of JP2019114143A publication Critical patent/JP2019114143A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)
  • Studio Devices (AREA)

Abstract

【課題】画像に対する動きブレ効果を高める画像処理装置、画像処理方法、及びプログラムを提供する。【解決手段】動きブレ付与部200は、入力画像データの動きベクトルと、撮像装置と入力画像データに表されている被写体との距離情報とに基づいて、撮像画像にブレを付与する。【選択図】図2

Description

本発明は、画像処理装置、画像処理方法、およびプログラムに関し、特に、動く被写体を含む撮像画像を処理するために用いて好適なものである。
動画像のフレーム間の時間間隔を超える長期間の露光をしたかのような動画像を生成することにより、見者に動感を与えるように画像を表現する技術がある。この技術では、例えば、動画の複数のフレームに対して移動平均をとることにより各フレームを合成することにより、画像における動く被写体に対して動きブレ効果(動く被写体に対する動感を見者に与える効果)を付与する。この技術を用いることにより、例えば、移動量が大きい被写体には強い動きブレ効果が付き、移動量が小さい被写体には弱い動きブレ効果を付くようになる。このように画像処理により被写体の動きを表現する技術が開示されている。
特許文献1には、複数枚の画像を合成することにより、移動体の軌跡を生成することにより、見者に動感を与えるように画像を表現する技術が開示されている。
特許第5948960号公報
前述のように、例えば、動画の複数フレームに対して移動平均をとることにより各フレームを合成すれば、動く被写体に対して動きブレ効果を付与することができる。しかしながら、動く被写体の撮像装置からの距離に応じて、動きブレ効果が変わる虞がある。
例えば、撮像装置からの距離が遠い被写体を撮像する場合、当該被写体に対する動きブレ効果が弱くなる虞がある。例えば、撮像装置から見て左右方向に一定速度で移動する被写体を撮像する場合を考える。撮像装置からの距離が遠い被写体は、撮像装置からの距離が近い被写体と比較して見かけ上の移動量が小さい。このため、動きブレ効果が弱くなる虞がある。
また、例えば、撮像装置に対して奥行き方向に移動する被写体を撮像する場合、当該被写体に対する動きブレ効果は、左右方向や上下方向に移動する被写体に対する動きブレ効果よりも弱くなる虞がある。例えば、時速4kmで奥行き方向に移動している被写体を撮像する場合と、同じく時速4kmで左右方向に移動している被写体を撮像する場合とでは、奥行き方向に移動している被写体に対する動きブレ効果が弱くなる虞がある。合成する複数枚の画像間において、奥行き方向に移動している被写体の、位置的に重なる領域が大きくなることにより、移動している被写体の領域を当該被写体以外の領域と合成し難くなるためである。このように、合成画像において移動している被写体の領域では、背景などの当該被写体以外の領域が透過せず、動きブレ効果が弱くなる虞がある。
本発明は、以上の問題点に鑑みてなされたものであり、画像に対する動きブレ効果を高めることを目的とする。
本発明の画像処理装置は、撮像手段により撮像された画像に基づいて動きベクトルを導出する第1導出手段と、前記撮像手段から前記画像に存在する被写体までの距離を示す距離情報を導出する第2導出手段と、前記動きベクトルと、前記距離情報とに基づいて、前記画像の少なくとも一部の被写体の領域にブレを付与する付与手段と、を有することを特徴とする。
本発明によれば、画像に対する動きブレ効果を高めることができる。
撮像装置の構成を示す図である。 動きブレ付与部の構成の第1の例を示す図である。 動きブレ付与部の処理の第1の例を示すフローチャートである。 動きベクトルの算出処理を示すフローチャートである。 入力画像データと動きベクトルを示す図である。 動きベクトルの算出方法を説明する図である。 合成枚数の算出処理の第1の例を示すフローチャートである。 動きブレ付与部の構成の第2の例を示す図である。 動きブレ付与部の処理の第2の例を示すフローチャートである。 タップ数の算出処理の第1の例を示すフローチャートである。 合成枚数の算出処理の第2の例を示すフローチャートである。 動きブレ付与部の構成の第3の例を示す図である。 動きブレ付与部の処理の第3の例を示すフローチャートである。 3次元動きベクトルの算出処理を示すフローチャートである。 距離情報を示す図である。 3次元動きベクトルを示す図である。 合成枚数の算出処理の第3の例を示すフローチャートである。 動きブレ付与部の構成の第4の例を示す図である。 動きブレ付与部の処理の第4の例を示すフローチャートである。 タップ数の算出処理の第2の例を示すフローチャートである。
以下、図面を参照しながら、実施形態を説明する。尚、以下の各実施形態において、撮像装置は、デジタルカメラであっても、ビデオカメラであっても、スマートフォンやタブレット等の各種の携帯機器に含まれるものであっても良い。また、撮像装置は、工業用カメラ、車載用カメラ、または医療用カメラに適用されるものであってもよい。また、以下の各実施形態では、画像処理装置が撮像装置に含まれる場合を例に挙げて説明する。しかしながら、画像処理装置は、撮像手段を備える装置とは別の装置であってもよい。また、以下の各実施形態では、撮像装置は、動画像を撮影するものとする。
(第1の実施形態)
まず、第1の実施形態を説明する。
図1は、撮像装置100の構成の一例を示すブロック図である。
制御部101は、例えばCPUである。制御部101は、撮像装置100が備える各ブロックの動作プログラムを後述のROM102より読み出し、後述のRAM103に展開して実行することにより撮像装置100が備える各ブロックの動作を制御する。ROM102は、電気的に消去・記録が可能な不揮発性メモリである。ROM102は、撮像装置100が備える各ブロックの動作プログラムに加え、各ブロックの動作に必要なパラメータ等を記憶する。RAM103は、書き換え可能な揮発性メモリである。RAM103は、撮像装置100が備える各ブロックの動作において出力されたデータの一時的な記憶領域として用いられる。
光学系104は、ズームレンズ、フォーカスレンズを含むレンズ群で構成される。光学系104は、被写体像を後述の撮像部105に結像する。撮像部105は、例えばCCDやCMOSセンサー等の撮像素子を有する。撮像部105は、光学系104により撮像素子に結像された光学像を光電変換し、この光電変換により得られたアナログ画像信号をA/D変換部106に出力する。A/D変換部106は、撮像部105から入力されたアナログ画像信号をデジタル画像信号に変換し、当該デジタル画像データをRAM103に出力する。
画像処理部107は、RAM103に記憶されている画像データに対して、ホワイトバランス調整、色補間、ガンマ処理など、様々な画像処理を適用する。本実施形態では、画像処理部107は、動きブレ付与部200を具備する。動きブレ付与部200は、後述する距離情報および画像データより算出する動きベクトルに基づき、動きブレ付与画像を生成する。
記録部108は、撮像装置100に対して着脱可能なメモリカード等である。画像処理部107で処理された画像が、RAM103を介し、記録画像として記録部108に記録される。
表示部109は、LCD等の表示デバイスである。表示部109は、RAM103および記録部108に記録された画像や、ユーザーからの指示を受け付けるための操作ユーザーインターフェイスを表示する。
距離情報生成部110は、撮像装置100と撮影対象の被写体との距離を示す距離情報を生成する。距離情報は、例えば、AF用の測距情報、撮像面位相差情報、反射光所要時間情報、および被写体のサイズ情報のうち、いずれかに基づき算出される。
まず、AF用の測距情報に基づき距離情報を算出する例について説明する。
この場合、距離情報生成部110は、AFセンサー(ラインセンサー)および制御部を有する。光学系104を介して入射した被写体からの光束は2分割され、2分割された光束は、それぞれ2つのラインセンサーで受光される。距離情報生成部110は、2つのラインセンサーからの信号の相関を演算する。そして、距離情報生成部110は、ラインセンサーの何画素分のシフト量(位置ずれ量)で相関が最大になるかを演算し、このシフト量に基づいて三角測量の原理で、距離情報を生成する。
次に、撮像面位相差情報に基づき距離情報を算出する例について説明する。
この場合、各画素は、マイクロレンズとその背後に配置された一対のサブ画素(光電変換部)とを有するようにする。複数の画素のそれぞれにおいて、光学系104および撮像部105の射出瞳のうち、互いに異なる領域(以下、瞳領域という)からの一対の光束がマイクロレンズを通ることで一対の像(以下、A像およびB像ともいう)を一対のサブ画素に形成する。そして、複数の画素のそれぞれにおいて、一対のサブ画素がA像およびB像を光電変換することで位相差検出用の一対の像信号(以下、A像信号およびB像信号という)が生成される。距離情報生成部110は、このA像信号およびB像信号の相関演算に基づき位相差を検出する。距離情報生成部110は、このように検出した位相差に基づき距離情報を生成する。
次に、被写体のサイズ情報に基づいて距離情報を算出する例について説明する。
距離情報生成部110は、撮影された被写体のサイズを計測し、計測したサイズに基づいて距離情報を生成する。
以上、撮像装置100の構成と、基本動作について説明した。
次に、本実施形態の画像処理部107の動作の一例について、詳細に説明を行う。本実施形態では、撮像装置100からの距離情報を加味して、異なるタイミングで撮像された複数枚の画像を合成することにより、画像に対して動きによるブレを付与した画像(動きブレ付与画像)を生成する例について説明する。尚、以下の説明では、画像において動きのある被写体を必要に応じて移動体という。
まず、画像処理部107が具備する動きブレ付与部200の構成の一例について、図2を参照して説明する。動きブレ付与部200は、RAM103に記憶されている複数枚の画像データを合成し、動きブレ付与画像を生成する。尚、本実施形態では、画像に付与するブレの強度は、合成する画像の枚数を変更することにより調整される。
図2は、動きブレ付与部200の構成の一例を示すブロック図である。動きブレ付与部200は、動きベクトル算出部201、合成枚数算出部202、および画像合成部203を有する。このような動きブレ付与部200の処理の一例について、図3のフローチャートを参照して説明する。
S301において、動きベクトル算出部201は、異なるタイミングで撮像された2つのフレームの画像間における動きベクトルを算出する。本実施形態における動きベクトルとは、画像の水平方向における移動体の移動量と垂直方向における移動体の移動量とを動きベクトルとして表したものである。以下に、動きベクトルの算出方法の一例について詳しく説明する。
図4は、動きベクトル算出部201による動きベクトルの算出処理の一例を示すフローチャートである。図5は、入力画像データと動きベクトルの一例を概念的に示す図である。具体的に図5(a)は、第Mフレームの入力画像データの一例を示す図である。図5(b)は、第M+1フレームの入力画像データの一例を示す図である。第M+1フレームは、第Mフレームの次のフレームである。図5(c)は、第Mフレームの入力画像データと第M+1フレームの入力画像データとの間における動きベクトルの一例を示す図である。図5(c)には、代表的な動きベクトルのみを示す。尚、Mは正の整数である。図6は、ブロックマッチング法による動きベクトルの算出方法の一例を説明する図である。尚、本実施形態では、動きベクトルの算出手法として、ブロックマッチング法を例として説明する。しかしながら、動きベクトルの算出手法はこの例に限定されず、例えばオプティカルフロー法でもよい。
図4のS401において、動きベクトル算出部201には、時間的に互いに隣接する2枚の入力画像データが入力される。そして、動きベクトル算出部201は、第Mフレームの入力画像データを基準フレームに設定すると共に、第M+1フレームの入力画像データを参照フレームに設定する。
次に、S402において、動きベクトル算出部201は、図6に示すように、基準フレーム601に対し、N×N画素の基準ブロック602を配置する。尚、Nは、正の整数である。
次に、S403において、動きベクトル算出部201は、参照フレーム603に対し、探索範囲605を設定する。探索範囲605は、基準フレーム601の基準ブロック602の中心座標と同じ座標604を中心とする領域であって、(N+n)×(N+n)画素の矩形の領域である。尚、nは、正の整数である。
次に、S404において、動きベクトル算出部201は、基準フレーム601の基準ブロック602と、参照フレーム603の探索範囲605内に存在するN×N画素の参照ブロック606との相関演算を行い、相関値を算出する。相関値は、基準ブロック602および参照ブロック606の相互に対応する画素同士の画素値の差分の絶対値の和(差分絶対値和)をとることにより算出される。動きベクトル算出部201は、このような差分絶対値和の算出を、探索範囲605に設定可能な参照ブロック606のそれぞれについて行う。このようにして算出される差分絶対値和のうち、最も小さい差分絶対値和となる参照ブロックの中心座標が、最も相関値が高い座標となる。尚、相関値の算出方法は、差分絶対値和を求める方法に限定されない。例えば差分二乗和や正規相互相関値に基づく相関値を算出する方法でもよい。図6の例では、参照ブロック606が最も相関が高いことを示しているとする。
次に、S405において、動きベクトル算出部201は、S404で求めた最も高い相関値を示す参照ブロックの中心座標に基づき動きベクトルを算出する。図6に示す例の場合、参照フレーム603の探索範囲605の中で、基準フレーム601の基準ブロック602の中心座標に対応した座標604と、参照ブロック606の中心座標とに基づき動きベクトルが求められる。つまり、座標604から参照ブロック606の中心座標に向かう方向と、これらの座標間の距離とで表される動きベクトルが求められる。
次に、S406において、動きベクトル算出部201は、基準フレーム601の全画素について動きベクトルを算出したか否か判定する。動きベクトル算出部201は、S406において基準フレーム601の全画素の動きベクトルを算出していないと判定した場合には、S402に処理を戻す。そして、ステップ402では、動きベクトルが算出されていない画素を中心とするN×N画素の基準ブロック602が基準フレーム601に配置される。そして、前述したのと同様に、S403〜S405の処理が行われる。即ち、動きベクトル算出部201は、図6に示す基準ブロック602を移動させながら、S402〜S405の処理を繰り返して、基準フレーム601の全画素の動きベクトルを算出する。
この動きベクトルの例を図5(c)に示す。図5(a)に示す第Mフレームの入力画像データと、図5(b)に示す第M+1フレームの入力画像データでは、人が左から右に移動している例を示す。このように被写体が移動している場合の動きベクトルの代表例を図5(c)に示す。図5(c)の示す動きベクトルは、第Mフレームの画像に存在している移動体の位置を始点とし、それに対応する第M+1フレームの画像に存在している移動体の位置を終点とする動きベクトルである。
尚、動きベクトル算出部201は、基準フレーム601の全画素の動きベクトルを算出するのではなく、1つまたは複数の所定数の画素毎に動きベクトルを算出してもよい。
ここまでの処理は、時間的に互いに隣接する2枚の入力画像データに対する処理である。図4のフローチャートの処理は、記録部108に記録されている一つの動画ファイルの動画データ内の時間的に互いに隣接する2枚の画像データ毎に行われる。即ち、動きベクトル算出部201は、以上の方法により、動画を構成する全てのフレームを基準フレーム601として、当該全てのフレームについて動きベクトルを算出する。
以上、図3のS301における動きベクトルの算出方法の一例について説明した。
図3の説明に戻り、S302において、合成枚数算出部202は、動きベクトルおよび距離情報に基づき、合成枚数を算出する。合成枚数の算出処理の一例について、図7のフローチャートを参照して説明する。
S701において、合成枚数算出部202は、動きベクトルに基づき、入力画像データの画素毎に初期合成枚数を算出する。この算出式を式(1)に示す。
CMPNUM_V = RND{Len_V × Gain_V}+1・・・式(1)
式(1)において、CMPNUM_Vは、初期合成枚数を示す。Len_Vは、動きベクトルの長さを示す。Gain_Vは、所定の定数ゲインを示す。RNDは、整数への四捨五入演算処理を示す。初期合成枚数CMPNUM_Vは、式(1)のように、動きベクトルの長さLen_Vに、所定の定数ゲインGain_Vを乗算した値を四捨五入することにより算出される。所定の定数ゲインGain_Vの値は、動きブレ効果が適度に付与できるように経験則に基づき予め決められる。尚、合成枚数が1枚の場合は、合成しないことを示す。
次に、S702において、合成枚数算出部202は、距離情報に基づいた補正係数を、入力画像データの画素毎に算出する。この算出式を式(2)に示す。
Cor_L = Depth / T (Depth > T)
Cor_L = 1 (Depth <= T) ・・・式(2)
式(2)において、Cor_Lは、補正係数を示す。Depthは、撮像装置100からの距離を示す。Tは、所定の定数を示す。撮像装置100からの距離Depthが定数Tを上回る場合(Depth > T)、補正係数Cor_Lは、1より大きい値をとる。一方、撮像装置100からの距離Depthが定数T以下の場合(Depth <= T)、補正係数Cor_Lは、1となる。尚、補正係数の算出方法は、このような方法に限らない。例えば、所定の定数Tを用いずに、撮像装置100からの距離に比例して大きくなるように、補正係数を算出する方法を採用してもよい。
次に、S703において、合成枚数算出部202は、式(3)に示すように、距離情報を加味した補正合成枚数を、入力画像データの画素毎に算出する。
CMPNUM = RND{CMPNUM_V×Cor_L}・・・式(3)
式(3)において、CMPNUMは、補正合成枚数を示す。RNDは、整数への四捨五入演算処理を示す。撮像装置100からの距離Depthが定数Tを上回る場合、補正係数Cor_Lは1より大きい値をとる。このため、この場合には、合成枚数を多く設定することができ、画像に対し動きブレ効果を強くかけることが可能となる。
次に、S704において、合成枚数算出部202は、入力画像データの全画素について、距離情報を加味した補正合成枚数CMPNUMを算出すると、当該補正合成枚数CMPNUMを当該全画素分で平均化した枚数を、最終合成枚数として算出する。このとき、合成枚数算出部202は、入力画像データの全画素のうち、補正合成枚数CMPNUMが1枚の画素を除外した画素の補正合成枚数CMPNUMの平均化を行う。動きブレ効果を付与する移動体の領域のみに限定してブレの強度を算出するためである。尚、平均化は、例えば、算術平均値の算出により実現される。
以上、図3のS302における合成枚数の算出方法の一例について説明した。
図3の説明に戻り、S303において、画像合成部203は、第Mフレームの入力画像データに対し、当該第Mフレームの入力画像データの前後のフレームの入力画像データを合成することにより動きブレ付与画像を生成する。合成する前後のフレームの枚数は、図3のS302において合成枚数算出部202が算出した最終合成枚数とする。入力画像データの合成は、例えば、互いに対応する画素の画素値の移動平均をとることにより実現される。尚、第Mフレームの入力画像データの前のフレームの数と、第Mフレームの入力画像データの後のフレームの数は、同じであっても異なっていてもよい。
図3のS302の合成枚数の算出およびS303の画像合成処理は、記録部108に記録されている一つの動画ファイルのフレーム毎に行われる。即ち、以上の方法により、動画を構成する全てのフレームのそれぞれについて、当該フレームに対して算出した合成枚数に基づき画像合成を行い、動きブレ付与画像を生成する。
以上のように本実施形態では、動きブレ付与部200は、入力画像データの動きベクトルと、撮像装置100と入力画像データに存在する被写体との距離を示す距離情報とを導出する。動きブレ付与部200は、動きベクトルに基づき、初期合成枚数を入力画像データの画素毎に導出すると共に、距離情報に基づいて補正係数を入力画像データの画素毎に導出する。動きブレ付与部200は、初期合成枚数と補正係数とに基づいて補正合成枚数を入力画像データの画素毎に導出し、補正合成枚数を平均化して最終補正枚数を導出する。動きブレ付与部200は、入力画像データの前後のフレームであって、最終補正枚数のフレームを当該入力画像データと合成する。従って、撮像装置100からの被写体の距離を加味して動きブレ強度を決定することにより、撮像装置100からの距離が遠い移動体に対する動きブレ効果を強めることができる。
尚、本実施形態では、時間的に互いに隣接する2つの入力画像データの動きベクトルを算出する例について説明したが、動きベクトルの算出方法はこれに限ったものではない。例えば、2フレーム以上離れた2つの入力画像データの動きベクトルを算出してもよい。移動量が小さく、時間的に互いに隣接する2つの入力画像データでは小数画素精度の移動量しかない移動体であっても、2フレーム以上離れた入力画像データでは、移動量が大きくなることが期待できる。このため、以上のようにすれば、より正確に動きベクトルを算出することが可能となる。
また、本実施形態では、合成枚数算出部202は、画素毎に算出した補正合成枚数を、入力画像データ(画面)の全画素分で平均化することにより、最終合成枚数を算出する例について説明したが、合成枚数の算出方法はこれに限ったものではない。例えば、画素毎に算出した補正合成枚数を最終合成枚数としてもよい。これにより、例えば、撮像装置100からの距離が異なる移動体が画像に混在する場合、画素毎に合成枚数を変えることできる。このため、それぞれの移動体に最適な動きブレ効果を付与することが可能となる。
また、本実施形態では、画像合成部203は、第Mフレームの入力画像データの前後のフレームの入力画像データを合成することにより動きブレ付与画像を生成する例について説明したが、合成するフレームはこれに限ったものではない。画像合成部203は、例えば、第Mフレームの入力画像データの前のフレームのみを第Mフレームの入力画像データと合成してもよいし、第Mフレームの入力画像データの後のフレームのみを第Mフレームの入力画像データと合成してもよい。第Mフレームの前のフレームまたは後のフレームの枚数は、図3のS303において合成枚数算出部202が算出した最終合成枚数とする。
(第2の実施形態)
次に、第2の実施形態を説明する。第1の実施例形態では、動きベクトルおよび距離情報に基づき合成枚数を導出し、当該合成枚数の画像を合成することにより動きブレ付与画像を生成する場合を例に挙げて説明した。これに対し、本実施形態では、動きベクトルおよび距離情報に基づき、空間フィルタ処理を行うことにより動きブレ付与画像を生成する。このように本実施形態と第1の実施形態では、主として、図2における動きブレ付与部200の構成および動作の一部が異なる。従って、本実施形態の説明において、第1の実施形態と同一の部分については、図1〜図7に付した符号と同一の符号を付す等して詳細な説明を省略する。
以下、本実施形態の画像処理部107の動作の一例について、詳細に説明を行う。前述したように本実施形態では、動きベクトルおよび距離情報に基づき、空間フィルタ処理を行うことにより、動きによるブレを付与した画像を生成する例について説明する。
まず、画像処理部107が具備する動きブレ付与部800の構成の一例について、図8を参照して説明する。動きブレ付与部800は、RAM103に記憶されている画像データに対して空間フィルタ処理を行い、動きブレ付与画像を生成する。尚、本実施形態では、画像に付与するブレの強度は、空間フィルタのタップ数を変更することにより調整する。また、空間フィルタ処理は、入力画像の注目画素の画素値だけではなく、注目画素を中心とする参照領域の画素の画素値を用いて、注目画素の画素値を決定する処理である。空間フィルタ処理の一例として平滑化フィルタ処理を実行することができる。また、タップ数とは、前述した参照領域に含まれる注目画素の周辺の画素の数を指す。
図8は、動きブレ付与部800の構成の一例を示すブロック図である。動きブレ付与部800は、動きベクトル算出部201、空間フィルタタップ数算出部801、空間フィルタ方向算出部802、および空間フィルタ処理部803を有する。このような動きブレ付与部800の処理の一例について、図9のフローチャートを参照して説明する。
図9のS301における動きベクトルの算出処理は、第1の実施形態で説明した図3のS301における動きベクトルの算出処理と同じである。
次に、S901において、空間フィルタタップ数算出部801は、動きベクトルおよび距離情報に基づき、空間フィルタのタップ数を算出する。空間フィルタタップ数の算出処理の一例について、図10のフローチャートを参照して説明する。
S1001において、空間フィルタタップ数算出部801は、動きベクトルに基づき、初期空間フィルタタップ数を、入力画像データの画素毎に算出する。この算出式を式(4)に示す。
TAPNUM_V = RND{Len_V×Gain_V}+1・・・式(4)
式(4)において、TAPNUM_Vは、初期空間フィルタタップ数を示す。Len_Vは、動きベクトルの長さを示す。Gain_Vは、所定の定数ゲインを示す。RNDは、整数への四捨五入演算処理を示す。初期空間フィルタタップ数TAPNUM_Vは、式(4)のように、動きベクトルの長さLen_Vに所定の定数ゲインGain_Vを乗算した値を四捨五入することにより算出される。所定の定数ゲインGain_Vの値は、動きブレ効果が適度に付与できるように経験則に基づき予め決められる。尚、タップ数が1の場合は、空間フィルタ処理を行わないことを示す。
次に、S702において、空間フィルタタップ数算出部801は、第1の実施形態で説明した図7のS702と同じ処理を行い、距離情報に基づいて補正係数Cor_Lを、入力画像データの画素毎に算出する(式(2)を参照)。
次に、S1002において、空間フィルタタップ数算出部801は、以下の式(5)に示すように、距離情報を加味した補正空間フィルタタップ数を、入力画像データの画素毎に算出する。
TAPNUM = RND{TAPNUM_V×Cor_L}・・・式(5)
式(5)において、TAPNUMは、補正空間フィルタタップ数を示す。RNDは、整数への四捨五入演算処理を示す。撮像装置100からの距離Depthが定数Tを上回る場合、補正係数Cor_Lが1より大きい値をとる。このため、この場合には、空間フィルタタップ数を大きく設定でき、入力画像データに対し、動きブレ効果を強くかけることが可能となる。
次に、S1003において、空間フィルタタップ数算出部801は、入力画像データの全画素について、距離情報を加味した補正空間フィルタタップ数TAPNUMを算出すると、以下の処理を行う。即ち、空間フィルタタップ数算出部801は、当該補正空間フィルタタップ数TAPNUMを当該全画素分で平均化した値を、最終空間フィルタタップ数として算出する。このとき、空間フィルタタップ数算出部801は、入力画像データの全画素のうち、補正空間フィルタタップ数TAPNUMが1の画素を除外した画素の補正空間フィルタタップ数TAPNUMの平均化を行う。ブレを付与する移動体の領域のみに限定してブレの強度を算出するためである。尚、平均化は、例えば、算術平均値の算出により実現される。
以上、図9のS901における空間フィルタタップ数の算出方法の一例について説明した。
図9の説明に戻り、S902において、空間フィルタ方向算出部802は、入力画像データの全画素のうち、補正空間フィルタタップ数TAPNUMが1の画素を除外した画素における動きベクトルの方向を、当該全画素分で平均化する。空間フィルタ方向算出部802は、この平均化した動きベクトルの方向を空間フィルタ方向とする。ブレを付与する移動体の領域のみに限定してブレの方向を算出するためである。尚、平均化は、例えば、動きベクトルの各成分の算術平均値の算出により実現される。また、空間フィルタ方向とは、注目画素を決定する際に参照する参照領域内の方向(空間フィルタ処理を適用するタップの方向)であり、空間フィルタ方向により、参照領域において使用する画素(使用するタップ)が定められる。例えば、空間フィルタ方向が、画像の左右方向であり、参照領域が注目画素の周囲の3×3画素である場合、注目画素の左右方向で隣接する合計2つの画素の画素値と、注目画素の画素値とを用いて、当該注目画素の画素値が決定される。
次に、S903において、空間フィルタ処理部803は、第Mフレームの入力画像データに対して空間的な平均フィルタ処理を行うことにより動きブレ付与画像を生成する。空間的な平均フィルタ処理を行う際のタップ数は、図9のS901(図10のS1003)において空間フィルタタップ数算出部801が算出した最終空間フィルタタップ数とする。また、空間的な平均フィルタ処理を行う際のフィルタ方向は、図9のS902において空間フィルタ方向算出部802が算出した空間フィルタ方向とする。
図9のS901の空間フィルタタップ数の算出、S902の空間フィルタ方向の算出、およびS903の空間フィルタ処理は、記録部108に記録されている一つの動画ファイルのフレーム毎に行われる。即ち、以上の方法により、動画を構成する全てのフレームのそれぞれについて、当該フレームに対して算出した空間フィルタタップ数および空間フィルタ方向に基づき空間フィルタ処理を行い、動きブレ付与画像を生成する。
以上のように本実施形態では、動きブレ付与部800は、動きベクトルに基づき、初期空間フィルタタップ数を入力画像データの画素毎に導出すると共に、距離情報に基づいて補正係数を入力画像データの画素毎に導出する。動きブレ付与部800は、初期空間フィルタタップ数と補正係数とに基づいて、補正空間フィルタタップ数を入力画像データの画素毎に導出し、補正空間フィルタタップ数を平均化して最終空間フィルタタップ数を導出する。また、動きブレ付与部800は、動きベクトルを平均化した方向を空間フィルタ方向として導出する。動きブレ付与部800は、入力画像データの注目画素に対し、最終空間フィルタタップ数のタップ数の空間フィルタを設定し、空間フィルタにおける空間フィルタ方向の画素の画素値と注目画素の画素値とを用いて、注目画素の画素値を導出する。従って、第1の実施形態で説明したのと同様に、撮像装置100からの被写体の距離を加味して動きブレ強度を決定することにより、撮像装置100からの距離が遠い移動体に対する動きブレ効果を強めることができる。
尚、本実施形態では、空間フィルタタップ数算出部801は、画素毎に算出した補正空間フィルタタップ数を入力画像データ(画面)の全画素分で平均化することにより最終空間フィルタタップ数を算出する例について説明した。しかしながら、空間フィルタタップ数の算出方法はこれに限ったものではない。また、空間フィルタ方向算出部802は、動きベクトルの方向を入力画像データ(画面)の全画素分で平均化することにより空間フィルタ方向を算出する例について説明したが、空間フィルタ方向の算出方法はこれに限ったものではない。例えば、画素毎に算出した補正空間フィルタタップ数を、当該画素に対する最終空間フィルタタップ数としてもよい。また、画素毎に算出した動きベクトルの方向を、当該画素に対する空間フィルタ方向としてもよい。これにより、例えば、撮像装置100からの距離が異なる移動体が画像に混在する場合、画素毎に空間フィルタタップ数および空間フィルタ方向を変えることできる。このため、それぞれの移動体に最適な動きブレ効果を付与することが可能となる。
(第3の実施形態)
次に、第3の実施形態を説明する。第1の実施形態では、動きベクトルおよび距離情報に基づき合成枚数を導出し、当該合成枚数の画像を合成することにより動きブレ付与画像を生成する場合を例に挙げて説明した。これに対し、本実施形態では、動きベクトルおよび距離情報に基づく移動体の速度に基づいて合成枚数を導出し、当該合成枚数の画像を合成することにより動きブレ付与画像を生成する。このように本実施形態と第1の実施形態では、主として、図2における合成枚数算出部202の構成および動作の一部が第1の実施形態と異なる。従って、本実施形態の説明において、第1の実施形態と同一の部分については、図1〜図7に付した符号と同一の符号を付す等して詳細な説明を省略する。また、本実施形態では、同一速度で動いている複数の移動体に対して、撮像装置100からの距離によらず同一の動きブレ量を付与する例について説明する。
第1の実施形態と同様に、本実施形態の動きブレ付与部200も、動きベクトル算出部201と、合成枚数算出部202と、画像合成部203とを有する。動きベクトル算出部201および画像合成部203は、第1の実施形態で説明したものと同じであるため、詳細な説明を省略する。
本実施形態の合成枚数算出部202により実行される合成枚数の算出処理の一例について、図11のフローチャートを参照して説明する。
S1101において、合成枚数算出部202は、動きベクトルと距離情報とに基づいて移動体の速度を算出する。この算出式を式(6)に示す。
VELOCITY = Len_V × Depth ・・・式(6)
式(6)において、VELOCITYは、移動体の速度を示す。Len_Vは、動きベクトルの長さを示す。Depthは、撮像装置100からの距離を示す。速度VELOCITYは、式(6)のように、動きベクトルの長さLen_Vに撮像装置100からの距離Depthを乗算することにより算出される。
次に、S1102において、合成枚数算出部202は、S1101で算出した速度に基づいて合成枚数を算出する。この算出式を式(7)に示す。
CMPNUM = RND{VELOCITY × Gain_S}+1・・・式(7)
式(7)において、CMPNUMは、合成枚数を示す。Gain_Sは、所定の定数ゲインを示す。RNDは、整数への四捨五入演算処理を示す。式(7)のように、合成枚数CMPNUMは、速度VELOCITYに所定の定数ゲインGain_Sを乗算した値を四捨五入することにより算出される。所定の定数ゲインGain_Sの値は、動きブレ効果が適度に付与できるように経験則に基づき予め決められる。式(7)のように、移動体の速度に基づいて合成枚数を算出することによって、同一の速度で動いている複数の移動体に対して、撮像装置100からの距離によらず、当該移動体に対するブレの強度が同一になるように合成枚数を求めることが可能になる。尚、合成枚数が1枚の場合は、合成しないことを示す。
以上、本実施形態における合成枚数の算出方法の一例について説明した。
尚、本実施形態では、合成枚数算出部202が、移動体の速度に基づいて合成枚数を算出する方法について説明したが、合成枚数の算出方法はこれに限ったものではない。例えば、移動体の速度と撮像装置100からの距離とに基づいて合成枚数を算出してもよい。
また、本実施形態では、異なるタイミングで撮像された複数枚の画像を合成することにより、ブレを付与した画像を生成する際に、移動体の速度に基づいて合成枚数を算出する方法について説明した。しかしながら、画像に対してブレを付与することができれば、合成枚数を算出しなくてもよい。例えば、第2の実施形態のように、空間フィルタ処理を行うことによりブレを付与した画像を生成する際に、移動体の速度に基づいて空間フィルタタップ数を算出してもよい。
(第4の実施形態)
次に、第4の実施形態について説明する。第1の実施形態では、動きベクトルと距離情報とに基づいて、撮像画像において、撮像装置100から遠い距離の移動体に対する動きブレ効果を調整する場合を例に挙げて説明した。これに対し、本実施形態では、動きベクトルと距離情報とに基づいて、撮像画像において、画像の奥行方向に移動する移動体に対する動きブレ効果を調整する場合について説明する。このように本実施形態と第1の実施形態では、主として、図2における動きブレ付与部200の構成および動作の一部が第1の実施形態と異なる。従って、本実施形態の説明において、第1の実施形態と同一の部分については、図1〜図7に付した符号と同一の符号を付す等して詳細な説明を省略する。
以下、本実施形態の画像処理部107の動作の一例について、詳細に説明を行う。本実施形態では、3次元空間における移動体の移動量に基づいて、異なるタイミングで撮像された複数枚の画像を合成することにより、動きによるブレを付与した画像(動きブレ付与画像)を生成する例について説明する。
図1において、本実施形態の画像処理部107は、距離情報および画像データより算出される3次元動きベクトルに基づき、RAM103に記憶されている複数枚の画像データを合成し、動きブレ付与画像を生成する。
次に、本実施形態の画像処理部107の動作の一例について、詳細に説明を行う。前述したように本実施形態では、3次元空間における移動体の移動量に基づいて、異なるタイミングで撮像された複数枚の画像を合成することにより、動きによるブレを付与した画像(動きブレ付与画像)を生成する例について説明する。
まず、画像処理部107が具備する動きブレ付与部1200の構成の一例について、図12を参照して説明する。動きブレ付与部1200は、RAM103に記憶されている複数枚の画像データを合成し、動きブレ付与画像を生成する。尚、本実施形態では、画像に付与するブレの強度は、合成する画像の枚数を変更することにより調整される。
図12は、動きブレ付与部1200の構成の一例を示す図である。動きブレ付与部1200は、2次元動きベクトル算出部1201、3次元動きベクトル算出部1202、合成枚数算出部1203、および画像合成部1204より構成する。このような動きブレ付与部1200の処理の一例について、図13のフローチャートを参照して説明する。
図13のS1301において、2次元動きベクトル算出部1201は、入力画像データの2枚の画像間における2次元動きベクトルを算出する。2次元動きベクトル算出部1201は、第1の実施形態で説明した動きベクトル算出部201と同じである。動きベクトル算出部201で算出される動きベクトルは、画像を構成する2次元平面における動きベクトル(画像の水平方向における移動体の移動量と垂直方向における移動体の移動量とに基づき定まる動きベクトル)である。そこで、この動きベクトルを必要に応じて2次元動きベクトルという。従って、2次元動きベクトル算出部1201の説明は、第1の実施形態の動きベクトル算出部201における動きベクトルを2次元動きベクトルに置き換えたものとなる。よって、2次元動きベクトル算出部1201の詳細な説明を省略する。
次に、S1302において、3次元動きベクトル算出部1202は、2次元動きベクトルと距離情報とに基づき3次元動きベクトルを算出する。3次元動きベクトルとは、2次元動きベクトルに、画像の奥行き方向における移動体の移動量を加えた3次元空間における移動体の動きを表す動きベクトルである。以下に、3次元動きベクトルの算出方法の一例について詳しく説明する。
図14は、3次元動きベクトル算出部1202による3次元動きベクトルの算出処理の一例を示すフローチャートである。図15は、距離情報の一例を示す図である。具体的に図15(a)は、第Mフレームの距離情報の一例を示す図である。図15(b)は、第M+1フレームの距離情報の一例を示す図である。図15では、明るさが距離値を示し、白いほど手前に位置する被写体を示し、黒いほど奥に存在する被写体を示す。つまり、図15の例では、第Mフレームから第M+1フレームになるにつれて、被写体(移動体)は奥から手前に移動することを示す。図16は、3次元動きベクトルの一例を示す図である。
図14のS1401において、3次元動きベクトル算出部1202は、2次元動きベクトル算出部1201により算出された2次元動きベクトルを取得する。
次に、S1402において、3次元動きベクトル算出部1202は、2次元動きベクトルの始点の距離値(距離情報の値)と2次元動きベクトルの終点の距離値(距離情報の値)との差を算出する。例えば、図15(a)および図15(b)において、2次元動きベクトルの始点p1501の距離値と2次元動きベクトルの終点p1502の距離値との差を算出する。2次元動きベクトルの始点の距離値は、第Mフレームに存在する被写体の距離値を示し、同じ2次元動きベクトルの終点の距離値は、第M+1フレームに存在する同一被写体の距離値を示す。つまり、2次元動きベクトルの始点と終点の距離値の差が0以外の場合は、被写体(移動体)は画像の奥行き方向(撮像装置100から離れる方向または撮像装置100に近づく方向)に移動していることを示す。2次元動きベクトルの始点と終点の距離値の差が0の場合は、被写体(移動体)は画像の奥行き方向に移動していないことを示す。
次に、S1403において、3次元動きベクトル算出部1202は、2次元動きベクトルの始点と終点の距離値との差を、移動体の奥行き方向の移動量に変換する。この変換式を式(8)に示す。
Vz = Ddiff × Gain_Ddiff ・・・式(8)
式(8)において、Vzは、移動体の奥行き方向の移動量を示す。Ddiffは、2次元動きベクトルの始点と終点の距離値との差を示す。Gain_Ddiffは、所定の定数ゲインを示す。移動体の奥行き方向の移動量Vzは、式(8)のように、2次元動きベクトルの始点と終点の距離値の差Ddiffに所定の定数ゲインGain_Ddiffを乗算することにより算出される。
次に、S1404において、3次元動きベクトル算出部1202は、図16に示すように、2次元動きベクトルと、移動体の奥行き方向の移動量とに基づいて3次元動きベクトルを算出する。図16は、2次元動きベクトルをx軸、y軸に、移動体の奥行き方向の移動量Vzをz軸にプロットした場合の3次元動きベクトルを示す。このように2次元動きベクトルに対して移動体の奥行き方向の移動量を加えることにより、3次元空間での移動体の移動方向と移動量を表現することが可能となる。
次に、S1405において、3次元動きベクトル算出部1202は、基準フレーム601の全画素について3次元動きベクトルを算出したか否か判定する。3次元動きベクトル算出部1202は、S1405において、基準フレーム601の全画素の動きベクトルを算出していないと判定した場合には、S1401に処理を戻す。そして、3次元動きベクトルが算出されていない画素に対して、前述したのと同様に、S1401〜S1404の処理が行われる。即ち、3次元動きベクトル算出部1202は、S1401〜S1404の処理を繰り返して、基準フレーム601の全画素の3次元動きベクトルを算出する。尚、3次元動きベクトル算出部1202は、基準フレーム601の全画素の3次元動きベクトルを算出するのではなく、1つまたは複数の所定数の画素毎に3次元動きベクトルを算出してもよい。
ここまでの処理は、時間的に互いに隣接する2枚のフレームに対する処理である。図14のフローチャートの処理は、記録部108に記録されている一つの動画ファイルの動画データ内の時間的に互いに隣接する2枚の画像データ毎に行われる。即ち、3次元動きベクトル算出部1202は、以上の方法により、動画を構成する全てのフレームを基準フレーム601として、当該全てのフレームについて3次元動きベクトルを算出する。
以上、図13のS1302における3次元動きベクトルの算出方法の一例について説明した。
図13の説明に戻り、S1303において、合成枚数算出部1203は、2次元動きベクトルおよび3次元動きベクトルに基づき、合成枚数を算出する。合成枚数の算出処理の一例について、図17のフローチャートを参照して説明する。
S1701において、合成枚数算出部1203は、2次元動きベクトルに基づき、入力画像データの画素毎に2次元動きベクトル合成枚数を算出する。この算出式を式(9)に示す。
CMPNUM_2D=RND{Vlen_2D × Gain_2D}+1・・・式(9)
式(9)において、CMPNUM_2Dは2次元動きベクトル合成枚数を示す。Vlen_2Dは、2次元動きベクトルの長さを示す。Gain_2Dは、所定の定数ゲインを示す。RNDは、整数への四捨五入演算処理を示す。2次元動きベクトル合成枚数CMPNUM_2Dは、式(9)のように、2次元動きベクトルの長さVlen_2Dに所定の定数ゲインGain_2Dを乗算した値を四捨五入することにより算出される。ゲイン定数Gain_2Dの値は、動きブレ効果が適度に付与できるように経験則に基づき予め決められる。この2次元動きベクトル合成枚数の入力画像データを合成することにより、画像の奥行き方向以外の方向に移動している移動体に対して、適度に動きブレ効果を付与することができる。尚、合成枚数が1枚の場合は、合成しないことを示す。また、S1701は、第1の実施形態で説明した図7のS701と同等の処理である。
次に、S1702において、合成枚数算出部1203は、2次元動きベクトルの長さに対する3次元動きベクトルの長さの比を、入力画像データの画素毎に算出する。この算出式を式(10)に示す。
Vlen_ratio = Vlen_3D / Vlen_2D ・・・式(10)
式(10)において、Vlen_ratioは、2次元動きベクトルの長さに対する3次元動きベクトルの長さの比を示す。Vlen_3Dは、3次元動きベクトルの長さを示す。移動体が画像の奥行き方向に移動している場合、2次元動きベクトルの長さに対する3次元動きベクトルの長さの比Vlen_ratioは、1より大きい値をとる。一方、移動体が画像の奥行き方向に移動していない場合、2次元動きベクトルの長さに対する3次元動きベクトルの長さの比Vlen_ratioは1となる。
次に、S1703において、合成枚数算出部1203は、式(11)に示すように、3次元動きベクトルに基づき、3次元動きベクトル合成枚数を、入力画像データの画素毎に算出する。
CMPNUM_3D=RND{CMPNUM_2D×Vlen_ratio}・・・式(11)
式(11)において、CMPNUM_3Dは、3次元動きベクトル合成枚数を示す。RNDは、整数への四捨五入演算処理を示す。移動体が画像の奥行き方向に移動している場合、2元動きベクトルの長さに対する3次元動きベクトルの長さの比Vlen_ratioは、1を上回る値をとる。このため、3次元動きベクトル合成枚数は、2次元動きベクトル合成枚数よりも多くなる。また、移動体が画像の奥行き方向に移動していない場合、2元動きベクトルの長さに対する3次元動きベクトルの長さの比Vlen_ratioは1となる。このため、3次元動きベクトル合成枚数は、2次元動きベクトル合成枚数と同じ枚数となる。つまり、移動体が画像の奥行き方向に移動している場合には、移動体が画像の奥行き方向に移動していない場合に比べ、合成枚数を多く設定することができ、画像に対し動きブレ効果を強くかけることが可能となる。
次に、S1704において、合成枚数算出部1203は、入力画像データの全画素について3次元動きベクトル合成枚数CMPNUM_3Dを算出すると、当該3次元動きベクトル合成枚数CMPNUM_3Dを、当該全画素分で平均化する。合成枚数算出部1203は、当該平均化した枚数を、最終合成枚数とする。このとき、合成枚数算出部1203は、入力画像データの全画素のうち、3次元動きベクトル合成枚数CMPNUM_3Dが1枚の画素を除外した画素の3次元動きベクトル合成枚数CMPNUM_3Dの平均化を行う。動きブレ効果を付与する移動体の領域のみに限定してブレの強度を算出するためである。尚、平均化は、例えば、算術平均値の算出により実現される。
以上、図13のS1303における合成枚数の算出方法の一例について説明した。
図13の説明に戻り、S1304において、画像合成部1204は、第Mフレームの入力画像データに対し、当該第Mフレームの入力画像データの前後のフレームの入力画像データを合成することにより動きブレ付与画像を生成する。合成する前後のフレームの枚数は、図13のS1303(図17のS1704)において合成枚数算出部1203が算出した最終合成枚数とする。入力画像データの合成は、例えば、互いに対応する画素の画素値の移動平均をとることにより実現される。尚、第Mフレームの入力画像データの前のフレームの数と、第Mフレームの入力画像データの後のフレームの数は、同じであっても異なっていてもよい。
図13のS1303の合成枚数の算出およびS1304の画像合成処理は、記録部108に記録されている一つの動画ファイルのフレーム毎に行われる。即ち、以上の方法により、動画を構成する全てのフレームのそれぞれについて、当該フレームに対して算出した合成枚数に基づき画像合成を行い、動きブレ付与画像を生成する。
以上のように本実施形態では、動きブレ付与部1200は、入力画像データの2次元動きベクトルと、撮像装置100と入力画像データに存在する被写体との距離情報とを導出し、これらに基づいて3次元動きベクトルを導出する。動きブレ付与部1200は、2次元動きベクトルに基づき、2次元動きベクトル合成枚数を入力画像データの画素毎に導出すると共に、2次元動きベクトルの長さに対する3次元動きベクトルの長さの比を導出する。動きブレ付与部1200は、2次元動きベクトル合成枚数と2次元動きベクトルの長さに対する3次元動きベクトルの長さの比とに基づいて3次元動きベクトル合成枚数を入力画像データの画素毎に導出する。動きブレ付与部1200は、3次元動きベクトル合成枚数を平均化して最終補正枚数を導出する。動きブレ付与部1200は、入力画像データの前後のフレームであって、最終補正枚数のフレームを当該入力画像データと合成する。従って、少なくとも画像の奥行き方向を含む移動体の移動方向と移動量に基づき、動きブレ強度を決定することにより、画像の奥行き方向に移動する移動体に対する動きブレ効果を強めることができる。
尚、本実施形態では、時間的に互いに隣接する3つの入力画像データの2次元動きベクトルおよび3次元動きベクトルを算出する例について説明をしたが、2次元動きベクトルおよび3次元動きベクトルの算出方法はこれに限ったものではない。例えば、2フレーム以上離れた2つの入力画像データの2次元動きベクトルおよび3次元動きベクトルを算出してもよい。移動量が小さく、時間的に互いに隣接する2つの入力画像データでは小数画素精度の移動量しかない移動体であっても、2フレーム以上離れた入力画像データでは、移動量が大きくなることが期待できる。このため、以上のようにすれば、より正確に動きベクトルを算出することが可能となる。
また、本実施形態では、合成枚数算出部1203は、画素毎に算出した3次元動きベクトル合成枚数を入力画像データ(画面)の全画素分で平均化することにより、最終合成枚数を算出する例について説明した。しかしながら、合成枚数の算出方法はこれに限ったものではない。例えば、画素毎に算出した3次元動きベクトル合成枚数を最終合成枚数としてもよい。これにより、例えば、画像の奥行き方向に移動する移動体と、画像の左右または上下方向に移動する移動体とが画像に混在する場合、画素毎に合成枚数を変えることできる。このため、それぞれの移動体に最適な動きブレ効果を付与することが可能となる。
また、本実施形態では、画像合成部1204は、第Mフレームの入力画像データの前後のフレームを合成することにより動きブレ付与画像を生成する例について説明したが、合成するフレームはこれに限ったものではない。画像合成部1204は、例えば、第Mフレームの入力画像データの前のフレームのみを第Mフレームの入力画像データと合成してもよいし、第Mフレームの入力画像データの後のフレームのみを第Mフレームの入力画像データと合成してもよい。第Mフレームの前のフレームまたは後のフレームの枚数は、図13のS1303において合成枚数算出部1203が算出した最終合成枚数とする。
(第5の実施形態)
次に、第5の実施形態を説明する。第4の実施形態では、2次元動きベクトル、3次元動きベクトル、および距離情報に基づき合成枚数を導出し、当該合成枚数の画像を合成することにより動きブレ付与画像を生成する場合を例に挙げて説明した。これに対し、本実施形態では、2次元動きベクトル、3次元動きベクトル、および距離情報に基づき、空間フィルタ処理を行うことにより動きブレ付与画像を生成する。このように本実施形態と第3の実施形態では、主として、図12における動きブレ付与部1200の構成および動作の一部が異なる。また、本実施形態でも第2の実施形態で説明した空間フィルタ処理を用いる。従って、本実施形態の説明において、第1、第2、第4の実施形態と同一の部分については、図1〜図10、図12〜図17に付した符号と同一の符号を付す等して詳細な説明を省略する。
本実施形態の画像処理部107の動作の一例について、詳細に説明を行う。前述したように本実施形態では、2次元動きベクトル、3次元動きベクトル、および距離情報に基づき、空間フィルタ処理を行うことにより、画像に対して動きによるブレを付与した画像を生成する例について説明する。
まず、画像処理部107が具備する動きブレ付与部1800の構成の一例について、図18を参照して説明する。動きブレ付与部1800は、RAM103に記憶されている画像データに対して空間フィルタ処理を行い、動きブレ付与画像を生成する。尚、本実施形態では、画像に付与するブレの強度は、空間フィルタのタップ数を変更することにより調整する。
図18は、動きブレ付与部1800の構成の一例を示すブロック図である。動きブレ付与部1800は、2次元動きベクトル算出部1201、3次元動きベクトル算出部1202、空間フィルタタップ数算出部1801、空間フィルタ方向算出部1802、および空間フィルタ処理部1803を有する。このような動きブレ付与部1800の処理の一例について、図19のフローチャートを参照して説明する。
図19のS1301における2次元動きベクトルの算出処理は、第4の実施形態で説明した図13のS1301における2次元動きベクトルの算出処理と同じである。また、図19のS1302における3次元動きベクトルの算出処理は、第4の実施形態で説明した図13のS1302における3次元動きベクトルの算出処理と同じである。
次に、S1901において、空間フィルタタップ数算出部1801は、2次元動きベクトルおよび3次元動きベクトルに基づき、空間フィルタタップ数を算出する。空間フィルタタップ数の算出処理の一例について、図20のフローチャートを参照して説明する。
S2001において、空間フィルタタップ数算出部1801は、2次元動きベクトルに基づき、2次元動きベクトル空間フィルタタップ数を、入力画像データの画素毎に算出する。この算出式を式(12)に示す。
TAPNUM_2D=RND{Vlen_2D×Gain_2D}+1・・・式(12)
式(12)において、TAPNUM_2Dは、2次元動きベクトル空間フィルタタップ数を示す。Vlen_2Dは、2次元動きベクトルの長さを示す。Gain_2Dは、所定の定数ゲインを示す。RNDは、整数への四捨五入演算処理を示す。2次元動きベクトル空間フィルタタップ数TAPNUM_2Dは、式(12)のように、2次元動きベクトルの長さVlen_2Dに所定の定数ゲインGain_2Dを乗算した値を四捨五入することにより算出される。定数ゲインGain_2Dの値は、動きブレ効果が適度に付与できるように経験則に基づき予め決められる。この2次元動きベクトル空間フィルタタップ数で入力画像データに対して空間フィルタ処理を行うことにより、画像の奥行き方向以外の方向に移動している移動体に対して、適度に動きブレ効果を付与することができる。尚、タップ数が1の場合は、空間フィルタ処理を行わないことを示す。また、S2001は、第2の実施形態で説明した図10のS1001と同等の処理である。
次に、S1702において、空間フィルタタップ数算出部1801は、第4の実施形態で説明した図17のS1702と同じ処理を行う。即ち、空間フィルタタップ数算出部1801は、2次元動きベクトルの長さに対する3次元動きベクトルの長さの比Vlen_ratioを、入力画像データの画素毎に算出する(式(10)を参照)。
次に、S2002において、空間フィルタタップ数算出部1801は、式(13)に示すように、3次元動きベクトル空間フィルタタップ数を、入力画像データの画素毎に算出する。
TAPNUM_3D=RND{TAPNUM_2D×Vlen_ratio}・・・式(13)
式(13)において、TAPNUM_3Dは、3次元動きベクトル空間フィルタタップ数を示す。RNDは、整数への四捨五入演算処理を示す。移動体が画像の奥行き方向に移動している場合、2元動きベクトルの長さに対する3次元動きベクトルの長さの比Vlen_ratioは、1を上回る値をとる。このため、3次元動きベクトル空間フィルタタップ数は、2次元動きベクトル空間フィルタタップ数よりも多くなる。また、移動体が画像の奥行き方向に移動していない場合、2元動きベクトルの長さに対する3次元動きベクトルの長さの比Vlen_ratioは1となる。このため、3次元動きベクトル空間フィルタタップ数は、2次元動きベクトル空間フィルタタップ数と同じ数となる。つまり、移動体が画像の奥行き方向に移動している場合には、移動体が画像の奥行き方向に移動していない場合に比べ、空間フィルタタップ数を多く設定することができ、画像に対し動きブレ効果を強くかけることが可能となる。
次に、S2003において、空間フィルタタップ数算出部1801は、入力画像データの全画素について、3次元動きベクトル空間フィルタタップ数TAPNUM_3Dを算出すると、以下の処理を行う。即ち、空間フィルタタップ数算出部1801は、当該3次元動きベクトル空間フィルタタップ数TAPNUM_3Dを当該全画素分で平均化した値を、最終空間フィルタタップ数として算出する。このとき、空間フィルタタップ数算出部1801は、入力画像データの全画素のうち、3次元動きベクトル空間フィルタタップ数TAPNUM_3Dが1の画素を除外した画素の3次元動きベクトル空間フィルタタップ数TAPNUM_3Dの平均化を行う。ブレを付与する移動体の領域のみに限定してブレの強度を算出するためである。尚、平均化は、例えば、算術平均値の算出により実現される。
以上、図19のS1901における空間フィルタタップ数の算出方法の一例について説明した。
図19の説明に戻り、S1902において、空間フィルタ方向算出部1802は、以下の処理を行う。即ち、空間フィルタ方向算出部1802は、入力画像データの全画素のうち、3次元動きベクトル空間フィルタタップ数TAPNUM_3Dが1の画素を除外した画素における2次元動きベクトルの方向を、当該全画素分で平均化する。空間フィルタ方向算出部1802は、この平均化した2次元動きベクトルの方向を空間フィルタ方向とする。ブレを付与する移動体の領域のみに限定してブレの方向を算出するためである。尚、平均化は、例えば、動きベクトルの各成分の算術平均値の算出により実現される。
次に、S1903において、空間フィルタ処理部1803は、第Mフレームの入力画像データに対して空間的な平均フィルタ処理を行うことにより動きブレ付与画像を生成する。空間的な平均フィルタ処理を行う際のタップ数は、図19のS1901(図20のS2003)において空間フィルタタップ数算出部1801が算出した最終空間フィルタタップ数とする。また、空間的な平均フィルタ処理を行う際のフィルタ方向は、図19のS1902において空間フィルタ方向算出部1802が算出した空間フィルタ方向とする。
図19のS1901の空間フィルタタップ数の算出、S1902の空間フィルタ方向の算出、およびS1903の空間フィルタ処理は、記録部108に記録されている一つの動画ファイルのフレーム毎に行われる。即ち、以上の方法により、動画を構成する全てのフレームのそれぞれについて、当該フレームに対して算出した空間フィルタタップ数および空間フィルタ方向に基づき空間フィルタ処理を行い、動きブレ付与画像を生成する。
以上のように本実施形態では、動きブレ付与部1800は、2次元動きベクトルに基づき、2次元動きベクトル空間フィルタタップ数を入力画像データの画素毎に導出する。動きブレ付与部1800は、2次元動きベクトルの長さに対する3次元動きベクトルの長さの比と、2次元動きベクトル空間フィルタタップ数とに基づいて、3次元動きベクトル空間フィルタタップ数を入力画像データの画素毎に導出する。動きブレ付与部1800は、3次元動きベクトル空間フィルタタップ数を平均化して最終空間フィルタタップ数を導出する。また、動きブレ付与部1800は、2次元動きベクトルを平均化した方向を空間フィルタ方向として導出する。動きブレ付与部1800は、入力画像データの注目画素に対し、最終空間フィルタタップ数のタップ数の空間フィルタを設定し、空間フィルタにおける空間フィルタ方向の画素の画素値と注目画素の画素値とを用いて、注目画素の画素値を導出する。従って、第4の実施形態で説明したのと同様に、少なくとも画像の奥行き方向を含む移動体の移動方向と移動量に基づき、動きブレ強度を決定することにより、画像の奥行き方向に移動する移動体に対する動きブレ効果を強めることができる。
尚、本実施形態では、空間フィルタタップ数算出部1801は、画素毎に算出した3次元動きベクトル空間フィルタタップ数を入力画像データ(画面)の全画素分で平均化することにより最終空間フィルタタップ数を算出する例について説明した。しかしながら、空間フィルタタップ数の算出方法はこれに限ったものではない。また、空間フィルタ方向算出部1802は、2次元動きベクトルの方向を入力画像データ(画面)の全画素分で平均化することにより空間フィルタ方向を算出する例について説明したが、空間フィルタ方向の算出方法はこれに限ったものではない。例えば、画素毎に算出した3次元動きベクトル空間フィルタタップ数を当該画素に対する最終空間フィルタタップ数としてもよい。また、画素毎に算出した2次元動きベクトルの方向を、当該画素に対する空間フィルタ方向としてもよい。これにより、画像の奥行き方向に移動する移動体と、画像の左右または上下方向に移動する移動体とが画像に混在する場合、画素毎に空間フィルタタップ数および空間フィルタ方向を変えることできる。このため、それぞれの移動体に最適な動きブレ効果を付与することが可能となる。
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
(その他の実施例)
本発明は、前述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100:撮像装置、107:画像処理部、200、800、1200、1800:動きブレ付与部

Claims (13)

  1. 撮像手段により撮像された画像に基づいて動きベクトルを導出する第1導出手段と、
    前記撮像手段から前記画像に存在する被写体までの距離を示す距離情報を導出する第2導出手段と、
    前記動きベクトルと、前記距離情報とに基づいて、前記画像の少なくとも一部の被写体の領域にブレを付与する付与手段と、を有することを特徴とする画像処理装置。
  2. 前記付与手段は、前記動きベクトルと、前記距離情報とに基づいて、前記ブレの大きさに関する情報を導出し、当該導出した情報に基づく大きさのブレを、前記画像の少なくとも一部の被写体の領域に付与することを特徴とする請求項1に記載の画像処理装置。
  3. 前記付与手段は、前記動きベクトルと、前記距離情報とに基づいて、前記画像における被写体の動きの速度を導出し、当該導出した速度に基づいて、前記ブレの大きさに関する情報を導出することを特徴とする請求項2に記載の画像処理装置。
  4. 前記動きベクトルと、前記距離情報とに基づいて、前記画像の水平方向、垂直方向、および奥行方向により定まる3次元動きベクトルを導出する第3導出手段を更に有し、
    前記付与手段は、前記動きベクトルと、前記3次元動きベクトルと、前記距離情報とに基づいて、前記画像の少なくとも一部の被写体の領域にブレを付与することを特徴とする請求項1に記載の画像処理装置。
  5. 前記付与手段は、前記動きベクトルと、前記3次元動きベクトルとに基づいて、前記ブレの大きさに関する情報を導出し、当該導出した情報に基づく大きさのブレを、前記画像の少なくとも一部の被写体の領域に付与することを特徴とする請求項4に記載の画像処理装置。
  6. 前記付与手段は、合成する前記画像の数を、前記ブレの大きさに関する情報として導出し、前記画像と、当該画像と異なるタイミングで前記撮像手段により撮像された他の画像であって、当該導出した数の他の画像とを合成することにより、当該画像の少なくとも一部の被写体の領域にブレを付与することを特徴とする請求項2〜5の何れか1項に記載の画像処理装置。
  7. 前記付与手段は、空間フィルタのタップ数を、前記ブレの大きさに関する情報として導出し、前記画像に対して、当該空間フィルタを用いた空間フィルタ処理を行うことにより、当該画像の少なくとも一部の被写体の領域にブレを付与することを特徴とする請求項2〜5の何れか1項に記載の画像処理装置。
  8. 前記付与手段は、前記動きベクトルに基づいて、前記空間フィルタ処理を適用するタップの方向を、前記ブレの大きさに関する情報として更に導出し、前記画像に対して、当該空間フィルタを用いた空間フィルタ処理を行うことにより、当該画像の少なくとも一部の被写体の領域にブレを付与することを特徴とする請求項7に記載の画像処理装置。
  9. 前記付与手段は、前記ブレの大きさに関する情報を、1つの前記画像に対して1つ導出し、当該導出した情報に基づく大きさのブレを、前記画像の全ての領域に付与することを特徴とする請求項2〜8の何れか1項に記載の画像処理装置。
  10. 前記付与手段は、前記ブレの大きさに関する情報を、前記画像の一部の領域ごとに導出し、当該導出した情報に基づく大きさのブレを、当該領域ごとに付与することを特徴とする請求項2〜8の何れか1項に記載の画像処理装置。
  11. 請求項1〜10の何れか1項に記載の画像処理装置を有することを特徴とする撮像装置。
  12. 撮像手段により撮像された画像に基づいて動きベクトルを導出する第1導出工程と、
    前記撮像手段から前記画像に存在する被写体までの距離を示す距離情報を導出する第2導出工程と、
    前記動きベクトルと、前記距離情報とに基づいて、前記画像の少なくとも一部の被写体の領域にブレを付与する付与工程と、を有することを特徴とする画像処理方法。
  13. 請求項1〜10の何れか1項に記載の画像処理装置の各手段としてコンピュータを機能させるためのプログラム。
JP2017248391A 2017-12-25 2017-12-25 画像処理装置、画像処理方法、およびプログラム Pending JP2019114143A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017248391A JP2019114143A (ja) 2017-12-25 2017-12-25 画像処理装置、画像処理方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017248391A JP2019114143A (ja) 2017-12-25 2017-12-25 画像処理装置、画像処理方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2019114143A true JP2019114143A (ja) 2019-07-11

Family

ID=67223243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017248391A Pending JP2019114143A (ja) 2017-12-25 2017-12-25 画像処理装置、画像処理方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP2019114143A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021181965A1 (ja) * 2020-03-09 2021-09-16 ソニーグループ株式会社 画像処理装置、画像処理方法、プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021181965A1 (ja) * 2020-03-09 2021-09-16 ソニーグループ株式会社 画像処理装置、画像処理方法、プログラム

Similar Documents

Publication Publication Date Title
JP5968107B2 (ja) 画像処理方法、画像処理装置およびプログラム
US8310538B2 (en) Imaging apparatus, method, program, and recording medium used in the program
US10002436B2 (en) Image processing device, image processing method, and solid-state imaging device
US8704881B2 (en) Stereoscopic image display apparatus
US9807372B2 (en) Focused image generation single depth information from multiple images from multiple sensors
US9619886B2 (en) Image processing apparatus, imaging apparatus, image processing method and program
JP5755571B2 (ja) 仮想視点画像生成装置、仮想視点画像生成方法、制御プログラム、記録媒体、および立体表示装置
JP2016219987A (ja) 画像処理装置、撮像装置、画像処理方法およびプログラム
KR20120053536A (ko) 화상 표시 장치 및 화상 표시 방법
JP7378219B2 (ja) 撮像装置、画像処理装置、制御方法、及びプログラム
JP5929037B2 (ja) 撮像装置
JP2016001853A (ja) 画像処理装置、撮像装置、制御方法及びプログラム
US20130271572A1 (en) Electronic device and method for creating three-dimentional image
JP2019114143A (ja) 画像処理装置、画像処理方法、およびプログラム
JP5088973B2 (ja) 立体撮像装置およびその撮像方法
JP5689693B2 (ja) 描画処理装置
KR100927234B1 (ko) 깊이 정보 생성 방법, 그 장치 및 그 방법을 실행하는프로그램이 기록된 기록매체
JP2007166442A (ja) 撮像装置
JP2013118472A (ja) 画像処理装置、撮像装置及び画像処理プログラム
JP5871113B2 (ja) 立体画像生成装置、立体画像生成方法及び立体画像生成プログラム
JP2020150448A (ja) 撮像装置及びその制御方法、プログラム、記憶媒体
JP6652294B2 (ja) 画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体
JP2014011639A (ja) 撮像装置
JP2011182325A (ja) 撮像装置
JP2018174461A (ja) 画像処理装置、画像処理方法、及びプログラム