以下、添付図面を参照して、本発明の実施形態を説明する。添付図面の全体を通じて、同一の参照符号が付与された要素は、特に断らない限り同一又は同様の要素を表す。なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。また、別々の実施形態の中で説明されている特徴を適宜組み合せることも可能である。
[第1の実施形態]
図1は、報知装置を備える撮像装置100の構成を示すブロック図である。第1の実施形態では、動きブレの報知のON/OFFを切り替える構成について説明する。
制御部101は、例えばCPUであり、撮像装置100が備える各ブロックを制御するための制御プログラムを後述のROM102より読み出し、後述のRAM103に展開して実行する。これにより、制御部101は、撮像装置100が備える各ブロックの動作を制御することができる。ROM102は、電気的に消去・記録可能な不揮発性メモリであり、撮像装置100が備える各ブロックを制御するための制御プログラムに加え、各ブロックの動作に必要なパラメータ等を記憶する。RAM103は、書き換え可能な揮発性メモリであり、制御部101等が実行する制御プログラムの展開や、撮像装置100が備える各ブロックの動作により生成等されたデータの一時的な記憶等に用いられる。
光学系104は、ズームレンズ、フォーカスレンズを含むレンズ群で構成され、被写体像を後述の撮像部105の撮像面上に結像する。撮像部105は、例えばCCDやCMOSセンサ等の撮像素子であり、光学系104により撮像部105の撮像面上に結像された光学像を光電変換し、得られたアナログ画像信号をA/D変換部106に出力する。A/D変換部106は、入力されたアナログ画像信号をデジタル画像データに変換する。A/D変換部106から出力されたデジタル画像データは、RAM103に一時的に記憶される。
画像処理部107は、RAM103に記憶されている画像データに対して、ホワイトバランス調整、色補間、ガンマ処理など、様々な画像処理を適用する。また、画像処理部107は、後述の報知画像生成部300を具備し、RAM103に記憶されている画像に対して、動きブレが容易に確認できる画像プレーンを重畳し、動きブレ報知画像を生成する。
記録部108は、着脱可能なメモリカード等である。記録部108は、画像処理部107で処理された画像データを、RAM103を介し、記録画像として記録する。表示部109は、LCD等の表示デバイスであり、RAM103に記憶されている画像や記録部108に記録されている画像の表示、ユーザからの指示を受け付けるための操作ユーザインタフェースの表示等を行う。また、表示部109は、準備撮影中に構図合わせ等のために撮像部105が撮像した画像を表示する。指示入力部110は、タッチパネルやマウス等である。ユーザは、指示入力部110を用いて撮像装置100に対する指示を入力する。
次に、図2を参照して、撮像装置100が実行する撮影処理について説明する。本フローチャートの各ステップの処理は、特に断らない限り、制御部101が前述した制御プログラムを実行することにより実現される。ユーザが撮像装置100の電源を入れ、撮像装置100の動作モードが撮影モードになると、本フローチャートの処理が開始する。
S201で、制御部101は、準備撮影(第1の撮影)を開始する。この準備撮影の期間中は、撮像装置100は動画のような連続画像(準備撮影画像)を撮像して表示部109に表示する。即ち、準備撮影の期間中は、所定の時間間隔で繰り返し準備撮影が行われる。ユーザは、表示された準備撮影画像を見ながら構図合わせなどを行う。なお、後述するS202~S206の処理は、準備撮影の期間中に行われる。
S202で、制御部101は、指示入力部110を用いるユーザ指示(ユーザ操作)に従い、本撮影(第2の撮影)の撮影条件を設定する。撮影条件は露出条件を含み、露出条件としては、シャッタースピード、ISO感度、F値などがある。
S203で、制御部101は、動きブレ報知のON/OFFを判断する。動きブレ報知のON/OFFの判断は、S202におけるユーザ操作の内容に応じて行うものとする。ここでの判断の詳細については後述する。動きブレ報知をONにすると判断された場合、処理はS204に進み、そうでない場合、処理はS205に進む。
S204で、報知画像生成部300は、制御部101による制御に従い、準備撮影画像に対して動きブレ報知プレーンを重畳した動きブレ報知画像を生成する。即ち、動きブレ報知画像は、動きブレ報知プレーンが重畳された準備撮影画像である。S204の処理の詳細については、図4を参照して後述する。
S205で、制御部101は、表示部109に画像表示を行う。具体的には、S204において動きブレ報知画像が生成された場合(S203において動きブレ報知をONにすると判断された場合)、制御部101は、動きブレ報知画像(動きブレ報知プレーンが重畳された準備撮影画像)を表示部109に表示する。動きブレ報知画像が生成されていない場合(S203において動きブレ報知をOFFにすると判断された場合)、制御部101は、準備撮影画像(動きブレ報知プレーンが重畳されていない準備撮影画像)を表示部109に表示する。
S206で、制御部101は、ユーザによりシャッターボタンが押下されたか否かを判定する。シャッターボタンは、例えば指示入力部110に含まれる。シャッターボタンが押下された場合、処理はS207に進み、そうでない場合、処理はS202に戻る。
ユーザは、表示部109に表示された準備撮影画像又は動きブレ報知画像を見ながらシャッターチャンス時にシャッターボタンを押下することができる。表示部109に動きブレ報知画像が表示されている場合、ユーザは、準備撮影中に容易に動きブレを確認することができる。確認した動きブレがユーザの好みの動きブレになっていない場合、ユーザはシャッターボタンを押下しないことで処理をS202に戻し、本撮影のシャッタースピード(露光時間)を変更(再設定)することが可能である。このように、準備撮影中に、ユーザは、表示部109に表示される動きブレ報知画像を確認しながら好みの動きブレになるまで本撮影のシャッタースピード(露光時間)の変更を繰り返し、シャッターチャンス時にシャッターボタンを押下することができる。
S206においてシャッターボタンが押下されると、S207で、制御部101は本撮影を行い、本撮影画像を記録部108に記録する。
ここで、S203における動きブレ報知のON/OFFの判断の詳細について説明する。前述の通り、制御部101は、S202におけるユーザ操作の内容に応じて動きブレ報知のON/OFFを判断する。ユーザの操作によって動きブレの程度が変わる場合は、制御部101は、ユーザが動きブレを確認したい状況であると判断して動きブレ報知をONにする。例えば、ユーザが指示入力部110に含まれるTvダイヤルを操作している場合は、シャッタースピードの変化に応じて動きブレの程度が変わる。そのため、制御部101は、ユーザが動きブレを確認したい状況であると判断して動きブレ報知をONにする。反対に、ユーザの操作によって動きブレの程度が変わらない場合は、制御部101は、動きブレの確認が不要な状況であると判断して動きブレ報知をOFFにする。例えば、ユーザが指示入力部110に含まれるAvダイヤルを操作している場合は、動きブレの程度は変わらない。そのため、制御部101は、動きブレの確認が不要な状況であると判断して動きブレ報知をOFFにする。このように、ユーザ操作の内容に応じて動的に動きブレ報知のON/OFFを切り替えることで、適切なタイミングで撮影アシストを行うことができる。
次に、図3を参照して、画像処理部107が具備する報知画像生成部300の構成例について説明する。報知画像生成部300は、動きベクトル算出部301、換算動きブレ算出部302、動きブレ報知プレーン作成部303、及び画像重畳部304を含む。報知画像生成部300の動作の詳細については、図4を参照して後述する。
次に、図4を参照して、報知画像生成部300が動きブレ報知画像を生成する処理(図2のS204)の詳細について説明する。
S401で、報知画像生成部300は、撮像装置100が準備撮影中に撮像した準備撮影画像を取得する。取得した準備撮影画像は、動きベクトル算出部301及び画像重畳部304に入力される。
図5(a)は、準備撮影画像の例を示す図である。本実施形態では、図5(a)に示すように、左方向に走っている犬501と止まっている犬502を含むシーンを撮影している例について説明する。
S402で、動きベクトル算出部301は、動き情報として準備撮影画像の画像間における動きベクトルを算出する。動きベクトルとは、準備撮影画像の画像間における被写体の水平方向の移動量と垂直方向の移動量とをベクトルで表したものである。動きベクトルの算出方法について、図6及び図7を参照して詳しく説明する。
図6は、動きベクトル算出部301による動きベクトルの算出処理(図4のS402)のフローチャートである。なお、本実施形態では、動きベクトルの算出手法としてブロックマッチング法を例に挙げて説明するが、動きベクトルの算出手法はこの例に限定されず、例えば勾配法でもよい。
S601で、動きベクトル算出部301は、時間的に隣接する2枚の準備撮影画像を取得する。そして、動きベクトル算出部301は、M番目フレームの準備撮影画像を基準フレームとして設定し、M+1番目フレームの準備撮影画像を参照フレームとして設定する。
S602で、動きベクトル算出部301は、図7に示すように、基準フレーム701において、N×N画素の基準ブロック702を配置する。
S603で、動きベクトル算出部301は、図7に示すように、参照フレーム703に対し、基準フレーム701の基準ブロック702の中心座標と同じ座標704の周囲(N+n)×(N+n)画素を、探索範囲705として設定する。
S604で、動きベクトル算出部301は、基準フレーム701の基準ブロック702と、参照フレーム703の探索範囲705内に存在する各座標のN×N画素の参照ブロック706との相関演算を行い、相関値を算出する。相関値は、基準ブロック702及び参照ブロック706の画素に対するフレーム間差分絶対値和に基づき算出される。即ち、フレーム間差分絶対値和の値が最も小さい座標が、最も相関値が高い座標となる。なお、相関値の算出方法は、フレーム間差分絶対値和を求める方法に限定されず、例えばフレーム間差分二乗和や正規相互相関値に基づく相関値を算出する方法でもよい。図7の例では、参照ブロック706が最も相関が高いことを示しているものとする。
S605で、動きベクトル算出部301は、S604で求めた最も高い相関値を示す参照ブロック座標に基づき、動きベクトルを算出する。図7の例の場合、参照フレーム703の探索範囲705の中で、基準フレーム701の基準ブロック702の中心座標に対応した座標704と、参照ブロック706の中心座標とに基づき動きベクトルが求められる。即ち、座標704から参照ブロック706の中心座標までの座標間距離及び方向が動きベクトルとして求められる。
S606で、動きベクトル算出部301は、基準フレーム701の全画素について動きベクトルを算出したか否かを判定する。動きベクトル算出部301は、S606において全画素の動きベクトルを算出していないと判定した場合には、S602に処理を戻し、全画素の動きベクトルを算出したと判定した場合には、図4のフローチャートに処理を戻す。
処理がS602に戻ると、動きベクトル算出部301は、動きベクトルがまだ算出されていない画素を中心として前述した基準フレーム701にN×N画素の基準ブロック702を配置する。その後、S603からS605の処理が同様に行われる。即ち、動きベクトル算出部301は、図7の基準ブロック702を移動させながら、S602からS605までの処理を繰り返して、基準フレーム701の全画素の動きベクトルを算出する。
こうして算出された動きベクトルの例を図5(b)に示す。図5(b)は、図5(a)の準備撮影画像の動きベクトルの例を示す図である。図5(a)の準備撮影画像では、犬501が左方向に走っている例を示している。図5(b)は、このように被写体が移動している場合の動きベクトルの例を示している。図5(b)の例では、走っている犬501の領域では左方向の動きベクトルが検出され、それ以外の止まっている犬502や背景の柵の領域では動きベクトルとして「0」が検出される。「0」の動きベクトルについては図示していない。
なお、動きベクトル算出部301は、全画素の動きベクトルを算出するのではなく、所定画素毎に動きベクトルを算出してもよい。
以上の処理により、動きベクトル算出部301は、時間的に隣接する準備撮影画像間における動きベクトルを算出する。
図4に戻り、S403で、換算動きブレ算出部302は、撮影条件として、図2のS202で設定された本撮影のシャッタースピード(露光時間)、及び準備撮影における画像間の時間間隔を取得する。
S404で、換算動きブレ算出部302は、S403で取得した本撮影の露光時間及び準備撮影における画像間の時間間隔に基づき、S402で算出した画素毎の動きベクトルを本撮影の動きブレに換算する。準備撮影の動きベクトルを本撮影の動きブレに換算する方法について、図8を参照して詳しく説明する。
図8は、準備撮影の動きベクトルと、準備撮影の動きベクトルから換算された本撮影の動きブレ(換算動きブレ)とを示す図である。図8では、準備撮影の画像間の時間間隔として1/60秒を例示しており、本撮影の露光時間として1/120秒及び1/30秒を例示している。
換算動きブレ算出部302は、下記の式(1)及び式(2)に示すような換算式に基づき、画素毎の動きベクトルを本撮影の動きブレに換算する。
CONV_GAIN=EXP_TIME/INT_TIME・・・(1)
CONV_BLUR=VEC_LEN×CONV_GAIN・・・(2)
ここで、式(1)において、CONV_GAINは準備撮影の動きベクトルを本撮影の動きベクトルに換算するための換算ゲインを示し、EXP_TIMEは本撮影の露光時間を示し、INT_TIMEは準備撮影の画像間の時間間隔を示す。また、式(2)において、CONV_BLURは本撮影の換算動きブレを示し、VEC_LENは準備撮影の動きベクトルの長さを示す。
式(1)において、換算ゲインCONV_GAINは、本撮影の露光時間EXP_TIMEを準備撮影の画像間の時間間隔INT_TIMEで除算することにより算出される。そして、式(2)において、本撮影の換算動きブレCONV_BLURは、動きベクトルの長さVEC_LENに換算ゲインCONV_GAINを乗算することにより算出される。
具体的には、図8のように、準備撮影における動きベクトルの長さVEC_LENが10画素、本撮影の露光時間EXP_TIMEが1/120秒の場合、換算ゲインCONV_GAINが1/2倍であるため、換算動きブレは5画素となる。また、本撮影の露光時間EXP_TIMEが1/30秒の場合、換算ゲインCONV_GAINが2倍であるため、換算動きブレは20画素となる。
図4に戻り、S405で、動きブレ報知プレーン作成部303は、S404において算出した画素毎の換算動きブレに基づき、動きブレを報知するための画像プレーン(動きブレ報知プレーン)を作成する。
S406で、画像重畳部304は、準備撮影画像にS405において作成した動きブレ報知プレーンを重畳し、動きブレ報知画像を生成する。
ここで、図9を参照して、動きブレ報知画像の3つの例を説明する。準備撮影中に動きブレ報知画像を表示部109に表示することにより、ユーザは動きブレを容易に確認することができる。
図9(a)は、アイコン表示により動きブレを報知する例を示す。ここで、アイコン表示による動きブレ報知画像の生成方法について説明する。S405において、動きブレ報知プレーン作成部303は、画素毎の換算動きブレのうち、所定値以上の換算動きブレを持つ画素の数が画面全体に占める割合を算出する。その割合が所定割合以上の場合に、動きブレ報知プレーン作成部303は、図9(a)に示すような動きブレ報知アイコン901を動きブレ報知プレーンとして作成する。S406において、画像重畳部304は、動きブレ報知アイコン901を含む動きブレ報知プレーンを準備撮影画像に重畳することにより、図9(a)のような動きブレ報知画像を生成する。
図9(b)は、枠表示により動きブレを報知する例を示す。ここで、枠表示による動きブレ報知画像の生成方法について説明する。S405において、動きブレ報知プレーン作成部303は、撮影画面の分割領域内の画素のうち、所定値以上の換算動きブレを持つ画素の数が分割領域全体に占める割合を算出する。動きブレ報知プレーン作成部303は、その割合が所定割合以上の分割領域に対して、図9(b)に示すような動きブレ報知枠902を動きブレ報知プレーンとして作成する。S406において、画像重畳部304は、動きブレ報知枠902を含む動きブレ報知プレーンを準備撮影画像に重畳することにより、図9(b)のような動きブレ報知画像を生成する。
図9(c)は、動きブレが発生したエッジを強調表示することにより動きブレを報知する例を示す。ここで、動きブレが発生したエッジの強調表示による動きブレ報知画像の生成方法について説明する。S405において、動きブレ報知プレーン作成部303は、準備撮影画像のエッジ強度を検出する。エッジ強度の算出は、ソーベルフィルタなどの既存の方法を用いるものとし、説明は省略する。そして、動きブレ報知プレーン作成部303は、エッジ強度が所定値以上、且つ、換算動きブレが所定値以上の画素を抽出する。動きブレ報知プレーン作成部303は、抽出した画素に対して、図9(c)の動きブレ報知エッジ903に示すような、動きブレが発生したエッジ領域を強調表示する動きブレ報知プレーンを作成する。S406において、画像重畳部304は、動きブレ報知エッジ903を含む動きブレ報知プレーンを準備撮影画像に重畳することにより、図9(c)のような動きブレ報知画像を生成する。図9(c)では、動きブレ報知エッジ903が他のエッジよりも太く表示される例を示している。強調表示方法の他の例としては、エッジ強度が所定値以上、且つ、換算動きブレが所定値以上の画素を抽出し、抽出した画素を赤く塗るような強調表示が挙げられる。
以上説明したように、第1の実施形態によれば、撮像装置100は、準備撮影により得られた画像から被写体の動き量を検出し、動き量を本撮影で生じる動きブレ量に換算する。また、撮像装置100は、所定の報知条件に基づいて、動きブレ報知を実行するか否かを判定し、動きブレ報知を実行すると判定された場合に、例えば図9に示すように動きブレ量に基づいて動きブレを報知する。動きブレ報知を実行するか否かを判定するための所定の報知条件とは、例えば本撮影の撮影条件を変更するユーザ操作の内容である。上で説明した例においては、撮像装置100は、本撮影の露光時間を変更するユーザ操作(例えば、指示入力部110に含まれるTvダイヤルの操作)が行われた場合に、動きブレ報知を実行すると判定する。これにより、状況に応じた動きブレ報知を実行することが可能となる。
なお、本実施形態では、ユーザ操作の内容に応じて動きブレ報知のON/OFFを判断する構成について説明したが、動きブレ報知のON/OFFの判断基準(所定の報知条件)はこれに限定されない。例えば、撮影している被写体が閾値以上の速さで移動している場合はユーザが動きブレを確認したい状況であると判断して動きブレ報知をONにする構成を採用してもよい。被写体の速さとしては、例えば前述した動きベクトルの大きさを用いることができる。この場合、制御部101は、動きベクトルの大きさが閾値以上の場合に動きブレ報知をONにする。なお、被写体の速さとして動きベクトルの大きさを用いる場合は、図2においてS203の処理の前に動きベクトルを算出する処理が行われるように、図2における処理順が変更される。
また、本実施形態では、図9を参照して換算動きブレが所定値以上の場合に動きブレが報知される例について説明した。しかしながら、換算動きブレが所定値未満の場合にも動きブレを報知する構成を採用してもよい。これにより、ユーザが動きブレを動感として表現することを望む長秒露光撮影の場合に、ユーザが動きブレの不足を準備撮影期間中に確認しやすくなる。
また、本実施形態では、動きブレ報知プレーンの例として、動きブレ報知アイコン901、動きブレ報知枠902、動きブレ報知エッジ903の3つの例について説明したが、動きブレ報知プレーンの種類はこれに限ったものではない。例えば、エッジ領域だけではなく平坦な領域も含めて、動きブレが発生している領域を強調表示する構成を採用してもよい。具体的には、動きブレ報知プレーン作成部303は、画素毎の換算動きブレが所定値以上の画素を赤く塗るような強調表示を行う。このように、エッジ領域だけではなく、エッジ領域以外の領域も強調表示を行うことにより、被写体全体が強調表示されるため、より動きブレを確認しやすくなる。
また、本実施形態では、動きブレの報知方法として、表示部109に動きブレ報知画像を表示する構成について説明したが、動きブレの報知方法はこれに限ったものではない。例えば、音により動きブレを報知する構成を採用してもよい。この場合、例えば、制御部101は、画素毎の換算動きブレのうち、所定値以上の換算動きブレを持つ画素の数が画面全体に占める割合が所定割合以上の場合に、スピーカ(不図示)から動きブレ報知音を出力してもよい。
また、本実施形態では、準備撮影により得られた画像から被写体の動き量を検出し、動き量を本撮影で生じる動きブレ量に換算することにより、本撮影で生じる動きブレ量を推定する構成について説明した。しかしながら、本撮影で生じる動きブレ量を推定する方法はこれに限定されない。また、準備撮影及び本撮影の2つの撮影は、任意の種類の2つの撮影(第1の撮影及び第2の撮影)であってもよい。例えば、撮像装置100は、第1の撮影条件で第1の撮影により得られた第1の撮影画像及び第1の撮影画像における被写体の動き情報を取得してもよい。ここで取得される動き情報は、第1の撮影画像における被写体の速度(例えば、単位時間の移動量を画素数で表現したもの)である。そして、撮像装置100は、動き情報及び第2の撮影条件から、第2の撮影条件で第2の撮影が行われる場合に得られる第2の撮影画像における被写体の動きブレ量を推定してもよい。第2の撮影条件は、第1の撮影条件とは独立して設定されるものである。この点は、後述する第2の実施形態及び第3の実施形態においても同様である。
[第2の実施形態]
第1の実施形態では、動きブレ報知のON/OFFを切り替える構成について説明した。第2の実施形態では、動きブレ報知と合焦度合報知とを切り替える構成について説明する。第2の実施形態において、撮像装置100の基本的な構成は第1の実施形態(図1)と同様である。以下、主に第1の実施形態と異なる点について説明する。
図10は、第2の実施形態に係る、撮像装置100が実行する撮影処理のフローチャートである。本フローチャートの各ステップの処理は、特に断らない限り、制御部101が前述した制御プログラムを実行することにより実現される。ユーザが撮像装置100の電源を入れ、撮像装置100の動作モードが撮影モードになると、本フローチャートの処理が開始する。
S1001で、制御部101は、S202におけるユーザ操作の内容に基づいて、動きブレ報知ON、合焦度合報知ON、報知OFFのうちのいずれの報知モードで動作するかを判定する。動きブレ報知ONの場合、処理はS204に進み、合焦度合報知ONの場合、処理はS1002に進み、報知OFFの場合、処理はS1003に進む。
S1002で、報知画像生成部300は、制御部101による制御に従い、準備撮影画像に対して合焦度合報知プレーンを重畳した合焦度合報知画像を生成する。即ち、合焦度合報知画像は、合焦度合報知プレーンが重畳された準備撮影画像である。なお、報知画像生成部300は、任意の既知の方法を用いて合焦度合報知プレーンを作成することができる。例えば、報知画像生成部300は、特開2016-92596号公報に開示されているようにエッジ検出結果に基づいて合焦度合報知プレーンを作成する方法を用いてもよい。
S1003で、制御部101は、表示部109に画像表示を行う。具体的には、S204において動きブレ報知画像が生成された場合(S1001において動きブレ報知ONの報知モードで動作すると判定された場合)、制御部101は、動きブレ報知画像(動きブレ報知プレーンが重畳された準備撮影画像)を表示部109に表示する。S1002において合焦度合報知画像が生成された場合(S1001において合焦度合報知ONの報知モードで動作すると判定された場合)、制御部101は、合焦度合報知画像(合焦度合報知プレーンが重畳された準備撮影画像)を表示部109に表示する。動きブレ報知画像が生成されていない場合(S1001において報知OFFの報知モードで動作すると判定された場合)、制御部101は、準備撮影画像(いずれの報知プレーンも重畳されていない準備撮影画像)を表示部109に表示する。
ここで、S1001における報知モードの判定の詳細について説明する。前述の通り、制御部101は、S202におけるユーザ操作の内容に基づいて、動きブレ報知ON、合焦度合報知ON、報知OFFのうちのいずれの報知モードで動作するかを判定する。ユーザの操作によって動きブレの程度が変わる場合は、制御部101は、ユーザが動きブレを確認したい状況であると判断して動きブレ報知ONを選択する。例えば、ユーザが指示入力部110に含まれるTvダイヤルを操作している場合は、シャッタースピードの変化に応じて動きブレの程度が変わる。そのため、制御部101は、ユーザが動きブレを確認したい状況であると判断して動きブレ報知ONを選択する。一方で、ユーザの操作によって合焦度合が変わる場合は、制御部は、ユーザが合焦度合を確認したい状況であると判断して合焦度合報知ONを選択する。例えば、ユーザが指示入力部110に含まれるAvダイヤルやフォーカスリングを操作している場合は、制御部101は、ユーザが合焦度合を確認したい状況であると判断して合焦度合報知ONを選択する。また、ユーザがISO感度を調節している場合は、動きブレの程度及び合焦度合はいずれも変わらない。そのため、制御部101は、動きブレ及び合焦度合の確認が不要な状況であると判断して動き報知OFFを選択する。このように、ユーザ操作の内容に応じて動的に報知モード(動きブレ報知ON、合焦度合報知ON、又は報知OFF)を切り替えることで、適切なタイミングで撮影アシストを行うことができる。
以上説明したように、第2の実施形態によれば、撮像装置100は、準備撮影により得られた画像から被写体の動き量を検出し、動き量を本撮影で生じる動きブレ量に換算する。また、撮像装置100は、所定の報知条件に基づいて、動きブレ報知、及び動きブレ報知と異なる第2の報知(上の例では、合焦度合報知)のうちのいずれを実行するかを判定する。撮像装置100は、動きブレ報知を実行すると判定された場合に、動きブレ量に基づいて動きブレを報知し、第2の報知を実行すると判定された場合に、第2の報知を実行する。動きブレ報知及び第2の報知のうちのいずれを実行するかを判定するための所定の報知条件とは、例えば本撮影の撮影条件を変更するユーザ操作の内容である。上で説明した例においては、撮像装置100は、本撮影の露光時間を変更するユーザ操作(例えば、指示入力部110に含まれるTvダイヤルの操作)が行われた場合に、動きブレ報知を実行すると判定する。また、撮像装置100は、本撮影の絞り値又はフォーカスを変更するユーザ操作(例えば、指示入力部110に含まれるAvダイヤルやフォーカスリングの操作)が行われた場合に、合焦度合報知を実行すると判定する。これにより、状況に応じた動きブレ報知を実行することが可能となる。また、状況に応じて異なる種類の報知を実行することが可能となる。
なお、図10においてはユーザ操作の内容に応じて報知モード(動きブレ報知ON、合焦度合報知ON、又は報知OFF)を切り替える構成について説明したが、報知モードの切り替え基準(所定の報知条件)はこれに限定されない。例えば、撮影している被写体が平面方向(撮影光学系の光軸と直交する方向)に移動している場合、制御部101は、ユーザが動きブレを確認したい状況であると判断して動きブレ報知ONを選択してもよい。また、撮影している被写体が奥行き方向(撮影光学系の光軸の方向)に移動している場合、制御部101は、ユーザが合焦度合を確認したい状況であると判断して合焦度合報知ONを選択してもよい。また、撮影している被写体が所定度合以上に合焦していない場合(合焦度合が閾値未満の場合)は、制御部101は、ユーザが合焦度合を優先的に確認したい状況であると判断して合焦度合報知ONを選択してもよい。
被写体が平面方向・奥行き方向のどちらに移動しているかの判断は、例えば動きベクトル及び距離情報を用いて行うことができる。動きベクトルに関しては、制御部101は、第1の実施形態で説明した算出方法により動きベクトルを算出する。そして、制御部101は、算出した動きベクトルの大きさを平面方向の移動量として用いる。また、距離情報に関しては、制御部101は、後述するように撮像面位相差情報に基づいてM番目フレーム及びM+1番目フレームの被写体の距離情報をそれぞれ算出する。そして、制御部101は、これらの距離情報間の差分を奥行き方向の移動量として用いる。制御部101は、算出した2つの方向の移動量を比較して、平面方向の移動量の方が大きい場合は被写体が平面方向に移動していると判断し、奥行き方向の移動量の方が大きい場合は被写体が奥行き方向に移動していると判断する。
制御部101は、後述する第3の実施形態において図16を参照して説明するA像及びB像から撮像面位相差情報を取得することができる。具体的には、制御部101は、A像及びB像の相関演算に基づき位相差を検出する。そして、制御部101は、検出した位相差に基づき距離情報を算出する。
また、撮像装置100の露出設定がオートに設定されている場合、シャッタースピード及び合焦度合が同時に変化する場合がある。このような場合には、動きブレ報知と合焦度合報知とのどちらを優先して表示させるかを予め設定可能なように撮像装置100を構成してもよい。これにより、ユーザの好みに合わせて報知を行うことができる。
なお、本実施形態では、動きブレ報知と合焦度合報知とを切り替える構成について説明したが、合焦度合報知に限らず他の報知との切り替えを行う構成を採用してもよい。例えば、制御部101は、動きブレ報知と飽和度合報知とを切り替えてもよい。この場合、図10のS1001で、制御部101は、S202におけるユーザ操作の内容に基づいて、動きブレ報知ON、飽和度合報知ON、報知OFFのうちのいずれの報知モードで動作するかを判定する。そして、動きブレ報知ONの場合、処理はS204に進み、飽和度合報知ONの場合、処理はS1002に進み、報知OFFの場合、処理はS1003に進む。S1003では、合焦度合報知画像の代わりに飽和度合報知画像を生成する処理が行われる。また、制御部101は、ユーザ操作の内容や被写体の動きに加えて画像内に含まれる飽和領域の面積も考慮して、報知モードを決定してもよい。例えば、制御部101は、本撮影により得られる画像における飽和領域の割合が閾値以上の場合に、飽和度合報知ONを選択してもよい。
また、本実施形態では、ユーザ操作の内容や被写体の動きなどに応じて動きブレ報知と合焦度合報知とを切り替える構成について説明したが、切替ボタンなどの報知切替用部材を設けておき、切替ボタンの操作によるユーザ指示に応じて切り替えを行う構成を採用してもよい。例えば、ユーザが切替ボタンを押下する毎に、制御部101は、動きブレ報知ON→合焦度合報知ON→報知OFFのように報知モードを切り替えることができる。例えば、子供のように断続的に動き続けている被写体を撮影する際には、最初に動きブレが生じないようにシャッタースピードを調整しておき、その後随時ピントを合わせて撮影することが想定される。そのため、この順番に報知モードが切り替わる構成を採用することにより、操作性が向上する。或いは、ユーザが切替ボタンを押下する毎に、制御部101は、合焦度合報知ON→動きブレ報知ON→報知OFFのように報知モードを切り替えてもよい。例えば、電車を流し撮りする場合は、最初に電車にピント合わせておき、その後動きブレを考慮してシャッタースピードを決めて撮影することが想定される。そのため、この順番に報知モードが切り替わる構成を採用することにより、操作性が向上する。
[第3の実施形態]
背景技術において説明した通り、動きブレが少ない画像を撮影するためには高速なシャッタースピードで撮影する必要がある。そのため、ユーザによるシャッタースピードの設定をアシストする報知を行うと操作性が向上する。
しかしながら、シャッタースピードを上げつつ露出を維持するためには、レンズの絞りを開くかISO感度を上げる必要がある。例えば、ユーザがシャッタースピードを上げて動きブレを低減した場合に、露出を維持するために絞りが開かれた場合、ピント位置にない被写体にボケが発生して、ユーザにとって好ましくないボケ具合の画像になってしまうことがある。従って、状況によっては、ユーザは動きブレ報知の代わりに、又はこれに加えて、ボケ報知が実行されることを望む可能性がある。
このような状況に鑑み、第3の実施形態では、動きブレ報知及びボケ報知の優先度を決定し、優先度に従って動きブレ報知及びボケ報知の一方又は両方を実行する構成について説明する。なお、ボケ報知とは、撮影光学系に起因するボケの情報に基づいて画像のボケを報知することである。第3の実施形態において、撮像装置100の基本的な構成は第1の実施形態(図1)と同様である。以下、主に第1の実施形態と異なる点について説明する。
第3の実施形態において、撮像部105は、後述する瞳分割画素を備える撮像素子を含む。また、画像処理部107は、報知画像生成部300の代わりに後述する報知画像生成部1200を具備する。そして、画像処理部107は、RAM103に記憶されている画像に対して、動きブレと光学系に起因するボケとが容易に確認できる画像プレーンを重畳し、動きブレ/ボケ報知画像を生成する。
次に、図11を参照して、撮像装置100が実行する撮影処理について説明する。本フローチャートの各ステップの処理は、特に断らない限り、制御部101が前述した制御プログラムを実行することにより実現される。ユーザが撮像装置100の電源を入れ、撮像装置100の動作モードが撮影モードになると、本フローチャートの処理が開始する。
S1101で、制御部101は、準備撮影を開始する。この準備撮影の期間中は、撮像装置100は連続画像(準備撮影画像)を撮像して表示部109に表示する。ユーザは、表示された準備撮影画像を見ながら構図合わせなどを行う。なお、後述するS1102~S1109の処理は、準備撮影の期間中に行われる。
S1102で、制御部101は、指示入力部110を用いるユーザ指示に従い、本撮影の撮影条件を設定する。撮影条件は露出条件を含み、露出条件としては、シャッタースピード、ISO感度、F値などがある。
S1103で、制御部101は、動きブレ報知のON/OFFを判断する。動きブレ報知のON/OFFは、例えば、ユーザが指示入力部110を用いて設定することができる。ユーザにより動きブレ報知のON/OFFの設定が行われると、ON/OFFに関する設定値がRAM103に保持される。制御部101は、この設定値に従って動きブレ報知のON/OFFを判断する。動きブレ報知がONであると判断された場合、処理はS1104に進み、そうでない場合、処理はS1105に進む。
S1104で、報知画像生成部300は、制御部101による制御に従い、準備撮影画像に対して重畳するための動きブレ報知プレーンを生成する。S1104の処理の詳細については、図13を参照して後述する。
S1105で、制御部101は、光学系によるボケの報知(ボケ報知)のON/OFFを判断する。ボケ報知のON/OFFは、例えば、ユーザが指示入力部110を用いて設定することができる。ユーザによりボケ報知のON/OFFの設定が行われると、ON/OFFに関する設定値がRAM103に保持される。制御部101は、この設定値に従ってボケ報知のON/OFFを判断する。ボケ報知がONであると判断された場合、処理はS1106に進み、そうでない場合、処理はS1107に進む。
S1106で、報知画像生成部300は、制御部101による制御に従い、準備撮影画像に対して重畳するためのボケ報知プレーンを生成する。S1106の処理の詳細については、図14を参照して後述する。
S1107で、報知画像生成部300は、制御部101による制御に従い、動きブレ報知とボケ報知の優先度を決定し、動きブレ報知プレーン及びボケ報知プレーンの一方又は両方を優先度に応じて準備撮影画像に重畳する。優先度の決定方法の詳細については後述する。
S1108で、制御部101は、S1107において動きブレ報知プレーン及びボケ報知プレーンの一方又は両方が重畳された準備撮影画像(報知画像)を表示部109に表示する。
なお、動きブレ報知がOFFに設定されている場合、報知画像としてボケ報知プレーンのみが重畳された準備撮影画像が表示される。また、ボケ報知がOFFに設定されている場合、報知画像として動きブレ報知プレーンのみが重畳された準備撮影画像が表示される。また、動きブレ報知及びボケ報知の両方がOFFに設定されている場合、動きブレ報知プレーン及びボケ報知プレーンのいずれも重畳されていない準備撮影画像が表示される。
S1109で、制御部101は、ユーザによりシャッターボタンが押下されたか否かを判定する。シャッターボタンは、例えば指示入力部110に含まれる。シャッターボタンが押下された場合、処理はS1110に進み、そうでない場合、処理はS1102に戻る。
表示部109に動きブレ報知プレーンが重畳された準備撮影画像が表示されている場合、ユーザは、準備撮影中において容易に動きブレを確認することができる。確認した動きブレがユーザの好みの動きブレになっていない場合、ユーザはシャッターボタンを押下しないことで処理をS1102に戻し、本撮影のシャッタースピード(露光時間)を変更(再設定)することが可能である。
また、表示部109にボケ報知プレーンが重畳された準備撮影画像が表示されている場合、ユーザは、準備撮影中において容易に光学系によるボケを確認することができる。確認したボケがユーザの好みのボケになっていない場合、ユーザはシャッターボタンを押下しないことで処理をS1102に戻し、本撮影の絞り値(F値)を変更(再設定)することが可能である。
ユーザは、好みのシャッタースピードと絞り値を設定した後、ISO感度を変更することにより露出をコントロールすることも可能である。また、表示部109に動きブレ報知プレーンとボケ報知プレーンの両方が重畳された準備撮影画像が表示されている場合は、ユーザは、好みの動きブレ/ボケになるよう、シャッタースピード、F値、ISO感度の変更(再設定)を行うことが可能である。
このように、準備撮影中に、ユーザは、表示部109に表示される動きブレ報知プレーン及びボケ報知プレーンが重畳された準備撮影画像を確認しながら、好みの動きブレ/ボケになるまで本撮影のシャッタースピード、F値、ISO感度の変更を繰り返し、シャッターチャンス時にシャッターボタンを押下することができる。
S1109においてシャッターボタンが押下されると、S1110で、制御部101は本撮影を行い、本撮影画像を記録部108に記録する。
次に、図12を参照して、第3の実施形態に係る画像処理部107が具備する報知画像生成部1200の構成例について説明する。
報知画像生成部1200は、動きベクトル算出部1201、動きブレ算出部1202、動きブレ報知プレーン作成部1203、ボケ量算出部1204、ボケ報知プレーン作成部1205、報知優先度決定部1206、及び画像重畳部1207を含む。報知画像生成部1200の動作の詳細については、図13を参照して後述する。
次に、図13を参照して、報知画像生成部1200が動きブレ報知プレーンを生成する処理(図11のS1104)の詳細について説明する。
S1301で、報知画像生成部1200は、撮像装置100が準備撮影中に撮像した準備撮影画像を取得する。取得した準備撮影画像は、動きベクトル算出部1201及び画像重畳部1207に入力される。第1の実施形態と同様、準備撮影画像の例として図5(a)に示すものを用いる。
S1302で、動きベクトル算出部1201は、動き情報として準備撮影画像の画像間における動きベクトルを算出し、動きブレ算出部1202は、算出された動きベクトルを動きブレ量に換算する。動きベクトルの算出方法は、第1の実施形態(図4のS402)において説明した算出方法と同様である。但し、S1302では、動きベクトルを算出する処理に加えて、算出された動きベクトルを動きブレ量に換算する処理が行われる。本実施形態では、動きベクトルの大きさが動きブレ量そのものであり、単位は「画素」となる。また、動きベクトル及び動きブレ量は画素毎に算出される。
ところで、第1の実施形態では動きベクトルの算出処理(S402)に続いて動きベクトルを本撮影の動きブレに換算する処理(S403~S404)が行われたが、本実施形態ではこれらの動きベクトルを本撮影の動きブレに換算する処理は行われない。代わりに、本実施形態では、算出された動きベクトルを動きブレ量に換算する処理が行われる。しかしながら、本実施形態においても、第1の実施形態と同様に、動きベクトルを本撮影の動きブレに換算する処理(S403~S404)を行ってもよい。この場合、報知画像生成部1200は、動きブレ算出部1202の代わりに、換算動きブレ算出部302を備える。
S1303で、動きブレ報知プレーン作成部1203は、S1302において算出した画素毎の動きブレに基づき、動きブレを報知するための画像プレーン(動きブレ報知プレーン)を作成する。動きブレ報知プレーンの作成方法は、換算動きブレの代わりに動きブレが使用される点を除き、第1の実施形態において図9を参照して説明した作成方法と同様である。
次に、図14を参照して、報知画像生成部1200がボケ報知プレーンを生成する処理(図11のS1106)について詳細に説明する。
S1401で、報知画像生成部1200は、撮像装置100が準備撮影中に撮像した準備撮影画像に対応する視差画像を取得する。取得した視差画像は、ボケ量算出部1204に入力される。視差画像を取得する処理の詳細については、図16を参照して後述する。
S1402で、ボケ量算出部1204は、ボケ情報として光学系に起因する準備撮影画像のボケ量を算出する。ボケ量は画素毎に算出される。ボケ量の算出方法の詳細については、図16及び図17を参照して後述する。
S1403で、ボケ報知プレーン作成部1205は、S1402において算出した画素毎のボケ量に基づき、ボケを報知するための画像プレーン(ボケ報知プレーン)を作成する。
ここで、図15を参照して、ボケのみを報知した際の表示について詳細に説明する。図15は、ボケ報知プレーンの3つの例を説明する図である。図15(a)~図15(c)においては、画面左下部の犬にピントが合っており、画面右上部の犬はピント位置より後ろにいるものとする。準備撮影中にボケ報知プレーンが重畳された準備撮影画像を表示部109に表示することにより、ユーザは光学系に起因するボケを容易に確認することができる。
図15(a)は、アイコン表示によりボケを報知する例を示す。ここで、アイコン表示によるボケ報知プレーンの生成方法について説明する。S1403において、ボケ報知プレーン作成部1205は、画素毎のボケ量のうち、所定値以上のボケ量を持つ画素の数が画面全体に占める割合を算出する。その割合が所定割合以上の場合に、ボケ報知プレーン作成部1205は、図15(a)に示すようなボケ報知アイコン1501をボケ報知プレーンとして作成する。このボケ報知プレーンが準備撮影画像に重畳されると、図15(a)のようなボケ報知画像が得られる。このとき、動きブレ報知アイコン901(図9)とボケ報知アイコン1501とを区別するために、ボケ報知アイコン1501は動きブレ報知アイコン901とは異なる外観を持つ。また、ボケ報知アイコン1501を動きブレ報知アイコン901とは異なる位置に重畳するように報知画像生成部1200を構成してもよい。
図15(b)は、枠表示によりボケを報知する例を示す。ここで、枠表示によるボケ報知プレーンの生成方法について説明する。S1403において、ボケ報知プレーン作成部1205は、撮影画面の分割領域内の画素のうち、所定値以上のボケ量を持つ画素の数が分割領域全体に占める割合を算出する。ボケ報知プレーン作成部1205は、その割合が所定割合以上の分割領域に対して、図15(b)に示すようなボケ報知枠1502をボケ報知プレーンとして作成する。このボケ報知プレーンが準備撮影画像に重畳されると、図15(b)のようなボケ報知画像が得られる。このとき、動きブレ報知枠902(図9)とボケ報知枠1502とを区別するために、ボケ報知枠1502は動きブレ報知枠902とは枠の色や線の種類が異なるように構成される。
図15(c)は、ボケが発生したエッジを強調表示することによりボケを報知する例を示す。ここで、ボケが発生したエッジの強調表示によるボケ報知プレーンの生成方法について説明する。S1403において、ボケ報知プレーン作成部1205は、準備撮影画像のエッジ強度を検出する。エッジ強度の算出は、ソーベルフィルタなどの既存の方法を用いるものとし、説明は省略する。そして、ボケ報知プレーン作成部1205は、エッジ強度が所定値以上、且つ、ボケ量が所定値以上の画素を抽出する。ボケ報知プレーン作成部1205は、抽出した画素に対して、図15(c)のボケ報知エッジ1503に示すような、ボケが発生したエッジ領域を強調表示するボケ報知プレーンを作成する。このボケ報知プレーンが準備撮影画像に重畳されると、図15(c)のようなボケ報知画像が得られる。図15(c)では、ボケ報知エッジ1503が他のエッジよりも太く表示される例を示している。強調表示方法の他の例としては、エッジ強度が所定値以上、且つ、ボケ量が所定値以上の画素を抽出し、抽出した画素を特定の色で塗るような強調表示が挙げられる。このとき、動きブレ報知エッジ903(図9)とボケ報知エッジ1503とを区別するために、ボケ報知エッジ1503は動きブレ報知エッジ903とは異なる態様(例えば、色)で強調表示される。
ここで、図16及び図17を参照して、視差画像を取得する処理(図14のS1401)及びボケ量を算出する処理(図14のS1402)の詳細について説明する。本実施形態においては、視差画像からボケ量の算出を行う。
図16(a)は、視差画像を取得するための撮像素子の1つの画素の構成を簡略的に示している。1600が撮影レンズの射出瞳、1601がA像瞳領域、1602がB像瞳領域、1603が撮像素子の受光素子直上のマイクロレンズ、1604がA像用受光素子、1605がB像用受光素子である。A像用受光素子1604は、A像瞳領域1601を透過した光を受光し、B像用受光素子1605は、B像瞳領域1602を透過した光を受光する。このように、1つの画素領域に異なる瞳領域を通過した光を受光する素子をそれぞれ持つことにより、視差のある2つの画像信号を得ることができる。これらの画像信号の視差量から、デフォーカス量の推定、距離画像の生成等が可能となる。図16(a)のようにA像用受光素子1604とB像用受光素子1605が水平方向に配列されている場合、水平方向の視差量を求めることができる。図16(a)では簡略化のためにA像用受光素子1604とB像用受光素子1605の2つの受光素子で瞳分割を行う構成を示しているが、より多数の受光素子で1つの画素を構成することも可能である。本実施形態では、図16(b)のように、4つの受光素子で1つの画素を構成しているものとする。
図16(b)において、1600はマイクロレンズ、1604はA像用受光素子、1605はB像用受光素子、1606はC像用受光素子、1607はD像用受光素子を示している。これらA~Dの受光素子は、4つの異なる瞳領域を透過した光をそれぞれ受光する。図16(b)のような視差検出用画素の場合、1度の撮像によりA像、B像、C像、D像の4枚の画像信号を取得することができる。図16(b)のようにA像用受光素子1604、B像用受光素子1605、C像用受光素子1606、D像用受光素子1607が水平、垂直方向に格子状に分かれている場合を考える。この場合、A像とC像を加算平均したA+C像と、B像とD像を加算平均したB+D像とを用いて水平方向の視差量を求めることができる。また、A像とB像を加算平均したA+B像と、C像とD像を加算平均したC+D像とを用いて垂直方向の視差量を求めることができる。
なお、図12に示した動きベクトル算出部1201及び画像重畳部1207に入力される準備撮影画像は、A像、B像、C像、D像を加算平均した画像であり、これは瞳分割を行わない構成の撮像素子で受光を行った場合と同等の画像である。
図17は、ボケ量算出部1204によるボケ量の算出処理(図14のS1402)の詳細を示すフローチャートである。
S1701で、ボケ量算出部1204は、図14のS1401において入力された視差画像に対応するA像、B像、C像、D像を取得する。
S1702で、ボケ量算出部1204は、加算平均処理によりA+C像、B+D像、A+B像、C+D像を生成する。
S1703で、ボケ量算出部1204は、A+C像の基準画素を設定する。S1704で、ボケ量算出部1204は、A+C像とB+D像との間の水平視差量の算出を行う。視差量の算出については、例えば特開2008-15754号公報に記述されているような手法がある。具体的には、ボケ量算出部1204は、A+C像とB+D像の相対的な水平位置関係をずらしていき、画像信号間の相関が最も高くなったときの画素シフト量より視差量を算出する。このように算出したA+C像とB+D像との間の水平視差量をLhとする。
S1705で、ボケ量算出部1204は、A+B像の基準画素を設定する。S1706で、ボケ量算出部1204は、A+B像とC+D像との間の垂直視差量の算出を行う。視差量の算出については、S1704と同様の手法を使用することができる。具体的には、ボケ量算出部1204は、A+B像とC+D像の相対的な垂直位置関係をずらしていき、画像信号間の相関が最も高くなったときの画素シフト量より視差量を算出する。このように算出したA+B像とC+D像との間の垂直視差量をLvとする。
S1707で、ボケ量算出部1204は、水平視差量及び垂直視差量からボケ量を算出する。具体的には、ボケ量をGとしたとき、ボケ量算出部1204は、下記の式(3)に従ってボケ量を算出する。ボケ量の単位は「画素」となる。
G=√(Lh2+Lv2)・・・(3)
S1708で、ボケ量算出部1204は、画面内の全画素についてボケ量の算出が完了したか否かを判定する。画面内の全画素についてボケ量の算出が完了した場合、本フローチャートの処理は終了する。そうでない場合、処理はS1703に戻り、ボケ量算出部1204は、まだボケ量が算出されていない画素を基準画素としてS1703~S1707の処理を行う。以下同様に、ボケ量算出部1204は、基準画素を移動させながら、すべての画素位置においてボケ量の算出を行う。こうして算出された画素毎のボケ量が、図15を参照して説明したボケ報知プレーンの作成のために使用される。
なお、本実施形態においては視差量をボケ量の算出に用いたが、他の方法を用いてボケ量を算出してもよい。例えば、準備撮影中に絞りを開いた場合、絞りを開く前の視差量と絞りを開いた後の視差量の差分(絞り値の変動に起因するボケ量の変動量)をボケ量としてもよい。具体的には、視差量が前フレームと比べて大きくなるほど、大きいボケ量を示すようにする。これにより、準備撮影中の絞り変化によるボケの変動量が大きいときに、ボケの報知を行うことができる。
また、視差画像を取得できない場合は、ボケ量算出部1204は、視差情報を用いずにボケ量を算出してもよい。例えば、準備撮影中に絞りを開いた場合、ボケ量算出部1204は、絞りを開く前と絞りを開いた後の準備撮影画像のエッジ強度の変動量をボケ量の算出に用いてもよい。具体的には、前フレームからのエッジ強度の減少量が大きいほど、大きいボケ量を示すようにする。
次に、図18を参照して、報知画像生成部1200が報知の優先度を決定して動きブレ報知プレーン及びボケ報知プレーンの一方又は両方を優先度に応じて準備撮影画像に重畳する処理(図11のS1107)の詳細について説明する。
S1801で、報知優先度決定部1206は、動きブレ量が閾値以上である画素の数が撮影画面全体に占める割合が所定割合以上(閾値以上)かどうかを判定する。閾値以上の場合、処理はS1808へ進み、閾値未満の場合、処理はS1802へ進む。例えば、撮像装置100がパンを行っている場合や、画面内で動いている被写体が多いときには、動きブレ量が閾値以上である画素の数が撮影画面全体に占める割合が所定割合以上になり、処理はS1808へ進む。この場合、報知優先度決定部1206は、全画面において動きブレ報知プレーンを優先することを示す優先度を画像重畳部1207へ出力する。そして、画像重畳部1207は、準備撮影画像にボケ報知プレーンを重畳せずに、動きブレ報知プレーンを重畳する。このように、動きブレによる影響が大きいシーンには、ユーザに対して動きブレ報知のみが行われ、ボケ報知は行われない。
S1802で、報知優先度決定部1206は、準備撮影中に絞り値が変動したか否かを判定する。絞り値の変動があった場合、処理はS1803へ進み、絞り値の変動がなかった場合、処理はS1808へ進む。準備撮影中に絞り値の変動がなかった場合には、ユーザの意図せぬボケが発生しづらいため、報知優先度決定部1206は、全画面において動きブレ報知プレーンを優先することを示す優先度を画像重畳部1207へ出力する。その結果、S1808の処理によりユーザに対して動きブレ報知のみが行われ、ボケ報知は行われない。一方、絞り値の変動があった場合には、ユーザの意図せぬボケが発生している可能性がある。そのため、報知優先度決定部1206は、後述する方法で動きブレ量とボケ量との間の大小関係に応じて優先度を決定する。
S1803で、報知優先度決定部1206は、準備撮影画像に基準画素を設定する。S1804で、報知優先度決定部1206は、基準画素において動きブレ量がボケ量よりも大きいか否かを判定する。動きブレ量は、動きブレ算出部302により算出された動きブレ量であり、前フレームからの移動量である。ボケ量は、ボケ量算出部1204により視差量から算出されたボケ量、又は前フレームからの視差量の差分から算出されたボケ量である。動きブレ量及びボケ量の単位はいずれも「画素」である。動きブレ量がボケ量よりも大きい場合、処理はS1805へ進み、そうでない場合、処理はS1806へ進む。
S1805で、報知優先度決定部1206は、基準画素において動きブレ報知プレーンを優先することを示す優先度を画像重畳部1207へ出力する。そして、画像重畳部1207は、準備撮影画像の基準画素に動きブレ報知プレーンを優先して重畳する。即ち、撮影画面において動きブレ量がボケ量よりも大きい画素については動きブレ報知が優先的に実行される。
S1806で、報知優先度決定部1206は、基準画素においてボケ報知プレーンを優先することを示す優先度を画像重畳部1207へ出力する。そして、画像重畳部1207は、準備撮影画像の基準画素にボケ報知プレーンを優先して重畳する。即ち、撮影画面においてボケ量が動きブレ量よりも大きい画素についてはボケ報知が優先的に実行される。
S1807で、報知優先度決定部1206は、撮影画面内の全画素について優先度の決定が完了したか否かを判定する。撮影画面内の全画素について優先度の決定が完了した場合、本フローチャートの処理は終了する。そうでない場合、処理はS1803に戻り、報知優先度決定部1206は、優先度が決定されていない画素を基準画素としてS1803~S1806の処理を行う。以下同様に、報知優先度決定部1206は、基準画素を移動させながら、すべての画素位置において優先度の決定を行う。その結果、すべての画素位置において優先度に応じた重畳処理が行われた準備撮影画像(動きブレ/ボケ報知画像)が得られる。こうして得られた準備撮影画像(動きブレ/ボケ報知画像)は、図11のS1107において表示部109に表示される。
S1803~S1806から理解できるように、動きブレとボケの両方が発生している画素においては、動きブレ量とボケ量のうちの大きい方が優先して報知される。従って、本実施形態では、動きブレとボケのうちの画像に対する影響が大きい方の報知を行うことが可能となる。
なお、図18には示されていないが、状況によっては、報知優先度決定部1206は、全画面においてボケ報知プレーンを優先することを示す優先度を画像重畳部1207へ出力してもよい。例えば、報知優先度決定部1206は、動きブレが発生する可能性が低い場合(例えば、シャッタースピードが閾値以上の場合)に、全画面においてボケ報知プレーンを優先することを示す優先度を画像重畳部1207へ出力する。この場合、画像重畳部1207は、準備撮影画像に動きブレ報知プレーンを重畳せずに、ボケ報知プレーンを重畳する。その結果、ユーザに対してボケ報知のみが行われ、動きブレ報知は行われない。
以上説明したように、第3の実施形態によれば、撮像装置100は、準備撮影により得られた画像から被写体の動きブレ量と撮影光学系に起因するボケ量とを取得する。そして、撮像装置100は、ブレ報知及びボケ報知の優先度を決定し、優先度に従って動きブレ報知及びボケ報知の一方又は両方を実行する。これにより、状況に応じた動きブレ報知及びボケ報知を実行することが可能となる。
なお、本実施形態では、ボケ報知の方法として、アイコン表示、枠表示、エッジの強調表示の3つの例について説明した。また、本実施形態において参照した第1の実施形態では、動きブレ報知の方法として、アイコン表示、枠表示、エッジの強調表示の3つの例について説明した。ここで、動きブレ報知とボケ報知で報知の方法を揃える必要はない。例えば、動きブレ報知についてはエッジの強調表示を用い、ボケ報知についてはアイコン表示を用いてもよい。その他の組み合わせで報知を行ってもよい。例えば、図19に示す例では、動きブレ報知は動きブレ報知エッジ1901により報知が行われ、ボケ報知についてはボケ報知アイコン1902により報知が行われている。このようにすることで、ユーザが動きブレ報知とボケ報知とを判別しやすくなる。
また、本実施形態では、動きブレとボケの報知方法として、表示部109に動きブレ/ボケ報知画像を表示する構成について説明したが、報知方法はこれに限ったものではない。例えば、音により動きブレとボケを報知する構成を採用してもよい。この場合、例えば、制御部101は、所定値以上の動きブレを持つ画素の数が画面全体に占める割合が所定割合以上の場合に、スピーカ(不図示)から動きブレ報知音を出力してもよい。また、制御部101は、所定値以上のボケ量を持つ画素の数が画面全体に占める割合が所定割合以上の場合に、スピーカ(不図示)からボケ報知音を出力してもよい。
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。