以下、図面を参照しながら本発明の実施形態について説明する。
(第1の実施形態)
以下、図1〜図8を参照して、本発明の第1の実施形態について説明する。第1の実施形態では、画像合成装置の一例として、画像合成を行うことが困難な動体領域を検出し、検出した領域とそれ以外の領域に対して、それぞれに適切な露出値で撮像した画像合成を行う(画像を合成してHDR画像(ハイダイナミックレンジ画像)を生成する)カメラ(撮像装置)について説明する。
図1はカメラ100の構成を示すブロック図である。図1において101は各種の動作指示を入力するための操作部、102は電源スイッチ、103は電池の装着の有無、電池の種類、電池残量の検出を行う電源制御部、104は電源である。105は電気的に消去・記録可能な不揮発性メモリであり、例えばEEPROM等が用いられる。106は各種制御に用いる時間や、内蔵された時計の時間を計測するシステムタイマー、107はシステム制御部130の動作用の定数、変数、不揮発性メモリ105から読みだしたプログラム等を展開するシステムメモリである。
110はレンズ、撮像素子等を含む撮像部である。撮像部110において、111はズームレンズ、フォーカスレンズを含むレンズ群である。112は絞りを調整するアイリスである。113は光学像を電気信号に変換するCCDやCMOS素子等で構成される撮像素子である。114はアナログ信号をデジタル信号に変換するA/D変換器である。115は各種の画像補正を行う画像処理部である。
116は画像データを圧縮符号化・復号化するコーデック部である。120は画像データを蓄積するメモリ、121はメモリ制御部、122はD/A変換器、123はLCD等の表示器上に画像表示を行う表示部である。124は、メモリカードやハードディスク等の記録媒体125との記録媒体インタフェースである。125は、撮影された画像を記録するためのメモリカード等の記録媒体であり、半導体メモリや磁気ディスク等から構成される。126は画像データを外部機器に対して出力する外部出力端子である。130はカメラ全体を制御するシステム制御部である。
次に、上記のように構成されたカメラ100における被写体撮影時の基本動作について説明する。撮像素子113は、レンズ111及びアイリス112を介して入射した光を光電変換し、その信号を入力画像信号としてA/D変換器114へ出力する。A/D変換器114は撮像素子113から出力されるアナログ画像信号をデジタル画像信号に変換し画像処理部115に出力する。
画像処理部115は、A/D変換器114からの画像データ、又は、メモリ制御部121からの画像データに対し、ホワイトバランスなどの色変換処理、および所定の画素補間、縮小といったリサイズ処理を行う。また、画像処理部115では、撮像した画像データを用いて所定の演算処理が行われ、得られた演算結果に基づいてシステム制御部130が露光制御、測距制御を行う。これにより、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、AWB(自動ホワイトバランス)処理、EF(フラッシュプリ発光)処理が行われる。画像処理部115では更に、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいて露出差がある複数枚の画像データを合成し、ダイナミックレンジを拡大した合成画像データ作成処理も行っている。
画像処理部115から出力された画像データは、メモリ制御部121を介してメモリ120に書き込まれる。メモリ120は、撮像部110から出力された画像データや、表示部123に表示するための画像データを格納する。
また、D/A変換器122は、メモリ120に格納されている画像表示用のデータをアナログ信号に変換して表示部123に供給する。表示部123は、LCD等の表示器上に、D/A変換器122からのアナログ信号に応じた表示を行う。コーデック部116は、撮像部110から出力された画像データをMPEGなどの規格に基づきそれぞれ圧縮符号化する。システム制御部130は符号化した画像データを記録インタフェース124を介して記録媒体125に格納する。以上、被写体撮影時の基本動作について説明した。
上記の基本動作以外に、システム制御部130は、前述した不揮発性メモリ105に記録されたプログラムを実行することで、後述する本実施形態の各処理を実現する。ここでいう、プログラムとは、本実施形態にて後述する各種フローチャートを実行するためのプログラムのことである。この際、システム制御部130の動作用の定数、変数、不揮発性メモリ105から読み出したプログラム等をシステムメモリ107に展開する。また、システム制御部130はメモリ120、D/A変換器122、表示部123等を制御することにより表示制御も行う。
電源制御部103は、電池検出回路、DC−DCコンバータ、通電するブロックを切り替えるスイッチ回路等により構成され、電池の装着の有無、電池の種類、電池残量の検出を行う。また、電源制御部103は、その検出結果及びシステム制御部130の指示に基づいてDC−DCコンバータを制御し、必要な電圧を必要な期間、記録媒体125を含む各部へ供給する。
(検出処理の説明)
上述したカメラ100では中央1点AFや顔AFを用いた撮影が可能である。中央1点AFとは撮影画面内の中央位置1点に対してAFを行うことである。顔AFとは顔検出機能によって検出された撮影画面内の顔に対してAFを行うことである。
顔検出機能について説明する。システム制御部130は顔検出対象の画像データを画像処理部115に送る。システム制御部130の制御下で画像処理部115は、当該画像データに水平方向バンドパスフィルタを作用させる。また、システム制御部130の制御下で画像処理部115は処理された画像データに垂直方向バンドパスフィルタを作用させる。これら水平及び垂直方向のバンドパスフィルタにより、画像データよりエッジ成分が検出される。
その後、システム制御部130は、検出されたエッジ成分に関してパターンマッチングを行い、目及び鼻、口、耳の候補群を抽出する。そして、システム制御部130は、抽出された目の候補群の中から、予め設定された条件(例えば2つの目の距離、傾き等)を満たすものを、目の対と判断し、目の対があるもののみ目の候補群として絞り込む。そして、システム制御部130は、絞り込まれた目の候補群とそれに対応する顔を形成する他のパーツ(鼻、口、耳)を対応付け、また、予め設定した非顔条件フィルタを通すことで、顔を検出する。システム制御部130は、顔の検出結果に応じて上記顔情報を出力し、処理を終了する。このとき、顔の数などの特徴量をメモリ120に記憶する。
また、システム制御部130は、人体検出処理も顔検出処理と同様な処理で行っている。システム制御部130は、検出されたエッジ成分に関してパターンマッチングを行い、顔検出と同様な処理で人体の特徴となる顔、胴体や、足等人体を検出するために必要なパーツを対応付け、人体を検出する。このときシステム制御部130は、人体領域や人体の数などの特徴量をメモリ120に記憶する。
以上のようにライブビュー表示あるいは再生表示される画像データを画像解析して、画像データの特徴量を抽出して被写体情報を検出(被写体検出)することが可能である。本実施形態では被写体情報として顔情報を例に挙げたが、被写体情報には他にも赤目判定や目の検出、目つむり検出、笑顔検出等の様々な情報がある。
なお、顔AFと同時に顔AE、顔FE、顔WBを行うことができる。顔AEとは検出された顔の明るさに合わせて、画面全体の露出を最適化することである。顔FEとは検出された顔を中心にフラッシュの調光をすることである。顔WBとは、検出された顔の色に合わせて画面全体のWBを最適化することである。
次に、撮影時にシステム制御部130が画像データの合成難易度検出を行い、露出の異なる複数の画像データを合成し、ハイダイナミックレンジ(HDR)機能を実現する処理を図2〜8に基づき説明する。
まず、図2のフローでは、異なる複数枚の画像データを撮像し、合成する処理の全体処理について説明する。
図2において、ステップS201では、図1の撮像部110が画像データを撮像する際の初期露出値を算出する。露出値とは、シャッタースピード、絞りの大きさ、ISO感度の設定を合わせた設定値である。ここでは、一般的なAE制御を行い算出された露出値を初期露出値とする。
ステップS202では、ステップS201で設定した初期露出値を図1の撮像部110に設定する。ステップS203では、ステップS202で設定された図1の撮像部110の設定で少なくても2枚以上の画像データを撮像する。画像データの構図や図1の撮像部110に設定された設定値は同じもので撮像された画像データとなっている。撮像された画像データは撮影時間がずれた画像にはなる。そのため動体が撮像時に含まれていた場合、は撮影時刻Tnに撮像された画像データと、その後時刻Tn+1に撮像された画像データの動体領域の位置は異なる。
例えば、図4(a)は、時刻Tnに撮像された画像データ、図4(b)は、時刻Tn+1に撮像された画像データとなっている。図4(a)、図4(b)の画像データの濃淡は、明るさを表しており白くなるほど明るい画素値を示す。また、斜線が入っている領域は、白飛びをしている領域で画像データの画素値が飽和しており情報が無いことを示している。図4(a)、図4(b)の明るさは同じであることを示している。
ステップS204では、後述の合成難易度検出を行い合成が困難な領域と、それ以外の合成が適している領域を検出する。今後合成が困難な領域に対して基準露出領域と呼び、基準露出領域以外の合成が適している領域を付随露出領域と呼ぶ。
ステップS205では、ステップS204で検出した基準露出領域に対して算出した露出値を基準画像の露出値とする。具体的な露出値制御は、基準露出領域を一般的なAE(自動露出)処理を行うための露出値算出のポイントに設定し、AE処理によって露出変動値Uaeを算出する。そして、目標AE値になるまで現在の露出値に露出変動値Uaeで制御を行い、適切な露出値を決定し撮像する(第1の画像の撮像)。
ステップS206では、後述する付随露出領域の露出値を算出し、付随画像を撮像する(第2の画像の撮像)。ステップS207では、ステップS205で撮像された基準画像とS206で撮影された付随画像を後述するように合成する処理を行う。
ステップS208では、合成画像出力後さらに合成画像の撮影を継続させるかを判定する。撮影を終了しない場合には再度、ステップS201に戻る。撮影を終了する場合は図2のフローを終了する。
以上が、本発明の第1の実施形態における露出の異なる複数の画像データを合成し、HDR機能を実現する処理の全体のフローについての説明である。
続いて合成難易度検出を行い、合成が困難な領域と、それ以外の合成が適している領域を検出する処理について図3、図4を用いて詳しく説明する。図3は、合成難易度検出を行い、合成が困難な領域と、それ以外の合成が適している領域を検出する処理を示すフロー図である。
ステップS301では画像データ(画像内)をブロック領域に分割し、分割したブロックに関してS302以降の処理を行う。図4の(c)、(d)はそれぞれ、ブロック分割した例として、時刻Tnの画像をブロック分割した例、時刻Tn+1の画像をブロック分割した例を表している。
ステップ302では、図4(c)と図4(d)の同じ画像位置のブロックを比較し画素値の差分を合成難易度の評価値として算出する。ステップ303では、合成難易度の評価値の大きさを比較する。評価値がある閾値以上の場合は、ステップS304に進む。逆に、評価値が閾値以下の場合は、ステップS305に進む。
ステップS304では、ブロックの位置を合成困難ブロック(第1のブロック)に設定する。ステップS305では、ブロックの位置を合成可能ブロック(第2のブロック)に設定する。ステップS306では、画像データを分割した全てのブロックの評価値を算出するまでステップS301に戻り、合成難易度の評価値を算出する処理を繰り返す。
ステップS307では、合成困難ブロック領域の内側を基準露出領域に設定する。ステップS308では、ステップS307で設定された基準露出領域外の領域を付随露出領域に設定する。
図4を用いて、ブロックの評価値から基準露出領域と付随露出領域を設定するまでの説明を行う。図4(e)は、図4(c)と図4(d)の各ブロックごとの差分情報を色の濃淡で表している。白になるにつれて、図4(c)と図4(d)のブロック間での合成難易度の評価値(差分値)が大きくなっていることを示している。また、ブロック間での差分値が大きい程合成難易度が高くなる。ここでは、合成困難ブロックに設定するための閾値を4以上と設定しており、閾値以上の領域403に関しては、合成難易度が高い領域となり基準露出領域となる。また、閾値以下の領域402に関しては、合成難易度が低い領域となり付随露出領域となる。
以上が、合成難易度検出を行い、合成が困難な領域とそれ以外の合成が適している領域を検出する処理についての説明である。
続いて、付随画像の露出値を算出し付随画像を撮像する処理に関して図5、図6を用いて詳しく説明する。図5は、付随画像の露出値を算出し付随画像を撮像する処理のフロー図である。以下図5のフローに従い処理を説明する。
ステップS501では、図2のステップS203で撮像した複数枚の画像データのうち一枚の画像の基準露出領域と付随露出領域の明るさを画像データから算出する。どの画像データを選んでも構わない。それぞれ基準露出領域と付随露出領域の明るさは、例えば領域内の輝度値の平均値とする。
ステップS502では、基準露出領域よりも、付随露出領域が明るいかどうか判定する。付随露出領域の明るさが基準露出領域の明るさ以上である場合、はステップS503(b)の処理を行う。逆に、付随露出領域の明るさが基準露出領域の明るさより暗い場合は、ステップS503(a)の処理を行う。ステップS503(a)では、付随露出領域のヒストグラムを算出する。ここでは画像データの輝度もしくは、RGBの各色の画素値のヒストグラムを算出する。ステップS504では、所定値以上の黒潰れ量があるかどうかを判定する。所定値以上の黒潰れ量が無い場合、適切な露出値と判断して露出値の算出処理を終了する。所定値以上の黒潰れ量がある場合、ステップS505の処理を行う。
ステップS505では、現在の露出値V(n)に対して、次の撮像時の露出変動値Uを足し合わせ、次の露出値を算出する(V(n+1)=V(n)+U)。ステップS506では、ステップS505で算出した露出値を図1の撮像部110に設定して撮像を行う。その後、再度ステップS503(a)の処理に戻り、所定値以上の黒潰れ量が無くなるまでステップS503(a)〜S506までの処理を繰り返す。
また、ステップS503(b)では、S503(a)と同様の処理を行いヒストグラムを算出する。ステップS507では、所定値以上の白飛び量があるかどうかを判定する。所定値以上の白飛び量が無い場合、適切な露出値と判断し露出値の算出処理を終了する。指定値以上の白飛び量がある場合、ステップS508の処理を行う。ステップS508では、現在の露出値V(n)に対して、次の撮像時の露出変動値Uを引いて、次の露出値を算出する(V(n+1)=V(n)−U)。ステップS509では、ステップS505で算出した露出値を図1の撮像部110に設定して撮像を行う。その後、再度ステップS503(b)の処理に戻り、所定値以上の白飛び量が無くなるまでステップS503(b)を行う。
図6を用いて、付随画像データに所定値以上の白飛び量、または黒潰れ量があるか否かの判定について詳しく説明する。図6のヒストグラムについては、横軸は、輝度の明るさを示しており、縦軸は画素数を表している。図6(a)は、所定値内の白飛び量である場合のヒストグラム、図6(c)は所定値以上の白飛び量である場合のヒストグラム図6(b)は所定値内の黒潰れ量のヒストグラム、図6(d)は所定値以上の黒潰れ量のヒストグラムをそれぞれ示している。
まず、白飛び量が所定値以上かどうかの判定方法について説明する。判定方法としては、高輝度側から所定面積X1(例えば、全画素の10%)の画素数をカウントした場合の面積を斜線で示した領域を見て判定を行う。図6(a)では、斜線領域の左端に当たる部分の輝度値がA1となり、図6(b)では、A3となっている。この場合、点線601の輝度値を所定値とし、輝度値A1または、A3が点線601よりも低い輝度となれば所定値内の白飛び量と判定する。
続いて黒潰れ量が所定値以上かどうかの判定方法について説明する。黒潰れ量を判定する場合は、白飛び量を判定する場合と対称となっており、低輝度側から所定面積X2(例えば、全画素の20%)に対応する輝度値A2または、A4が点線602よりも高い輝度値になれば、所定内の黒潰れ量であると判定する。この白飛びまたは黒潰れの判定方法を用いることで、画像データ中のどのぐらいの画素が白飛びまたは黒潰れしているかを検出することができ、白飛びまたは黒潰れを軽減する最適な露出値の設定を行うことができる。
以上が、付随画像の露出値を算出し付随画像を撮像する処理についての説明である。また、本実施形態では、基準露出領域に基づく基準画像(第1の画像)撮影のための露出値と異なるもう1つの露出値(第2の画像のための露出値)を付随露出領域の明るさに基づいて行っている。しかし、これに限らず、第2の画像のための露出値は、基準露出領域も含めた画像全体の明るさに基づいて算出されても良い。このように露出制御を行うと、基準露出領域において第1の画像で解消できない黒つぶれや白飛びが発生している場合でも、第2の画像によって解消しやすくなる。
また、本実施形態では、基準露出領域に基づいて基準画像(第1の画像)撮影のための露出値、付随露出領域に基づいてもう1つの露出値(第2の画像のための露出値)をそれぞれ求めている。しかしこのとき、例えば両露出値が所定値以上の段差を持っている場合、両露出値による撮影がカバーするダイナミックレンジが重ならなかったり、中間的な階調に割り当てられる各画像のレンジがどちらも端の方で、ノイズ等の影響で良好でない可能性がある。従って、両露出値が所定値以上の段差を持つ値で算出されてしまう場合、付随露出領域に基づいて算出される露出値を、段差を小さくする方向に補正するようにして、所定値以内の段差で付随露出領域に基づくもう1つの露出値が算出されるようにしてもよい。
合成処理に関して、具体的に図7を用いて、露出値の異なった複数の撮像画像信号の信号レベル合わせ方法について説明する。
図7(a),(b)は、図1の撮像部110で画像データを撮像した際の撮像するシーンの被写体の明るさ(横軸)に対しての画像信号レベル(縦軸)を示した図である。また、実線は、基準画像の信号レベル、点線は付随画像の信号レベルを表す。またここでいう露出値とは、単純には、シャッタースピードの長さと考えることができ、露出値の高い画像ほど露光時間が長くなり、露光量が多い画像データとなる。露光時間と信号レベルは線形な関係があり、露光時間が倍になると、信号レベルも倍に変化する。
図7(a)は、基準画像の露出値が付随画像よりも高い場合を表しており、被写体の明るさLx1に対して基準画像信号レベルは、付随画像信号レベルよりも高いことを示している。一方、図7(b)は、基準画像の露出値が付随画像よりも低い場合を表しており、被写体の明るさLx1に対して基準画像信号レベルは、付随画像信号レベルよりも低いことを示している。
図7(a)を用いて具体的に説明する。図7(a)の基準画像は被写体の明るさLx1からLx4の間で信号レベルが変化せず一定になっているが、これは、基準画像の信号が、表現できるレベルを超えて飽和しているため、Lx1以降の階調を表現できていないからである。この状態では、被写体の明るさをLx1以降で表現できていないため、白飛び状態となっている。しかしながら、被写体の明るさLx1までの明るさの区間では信号レベルが付随画像に比べて高いため、付随画像に比べて被写体の明るさが暗い部分でもノイズに信号レベルが潰されにくい。そのために、暗い部分では、SNが良い画像データとなっている。
図7(a)の付随画像は、被写体の明るさLx1を超えても信号レベルが線形に増加している。そのため、Lx1以降の被写体の明るさに関しても白飛びせず、画像データとして階調を残すことが出来ている。
つまり、被写体の明るさが暗い部分には基準画像の信号を、被写体の明るさがLx1以降の信号の飽和部分には、付随画像の信号レベルにゲインを掛けて基準画像の信号のレベルに合わせて合成する。これにより、ダイナミックレンジを拡大した合成画像を作成することができる。
図7(b)のように基準画像の露出値が付随画像よりも低い場合は、図7(a)の反対で、基準画像の信号レベルを付随画像の信号レベルに合わせて合成処理を行う。また、被写体の明るさがLx1よりも少し低く信号レベルが飽和していない合成区間Bの被写体の明るさの区間で、基準画像と付随画像信号の合成割合を算出する。基準画像と付随画像信号を混ぜ合わせることで、基準画像と付随画像の信号のつなぎ目を滑らかにつなぐことができ、違和感の無いダイナミックレンジ拡大が実現できる。
以上が、画像合成を行うことが困難な動体領域を検出し、検出した領域とそれ以外の領域に対してそれぞれ適切な露出値で撮像した画像合成を行う処理時の図1のシステム制御部130の動作である。
図8を用いて基準画像、付随画像、そして合成画像について説明する。図8において(a)は基準画像、(b)は付随画像、(c)は合成画像を表している。図8(a)の基準画像では、図4(e)の基準露出領域403に露出を合わせて撮像した画像となっているため、801の領域(斜線部分)は白飛びを起こしている画像となっている。図8(b)の付随画像では、図4(e)の付随露出領域402に露出を合わせて撮像した画像となっているため、802の領域は黒潰れを起こしている画像となっている。図8(c)の合成画像では、図8(a)の基準画像と図8(b)の付随画像のそれぞれ露出が合っている部分を合成することができるため、801、802の領域に関して白飛びまたは黒潰れを軽減した画像となる。
以上のように、第1の実施形態によれば合成難易度検出を行い、合成が困難な領域と、それ以外の合成が適している領域を検出し、合成が困難な領域とそれ以外の合成が適している領域に対しそれぞれ、適切な露出制御を行う構成とした。これにより、動体領域に対しても黒潰れや白飛びなどを軽減した適切なダイナミックレンジ表示を行える合成画像を作成することが可能となる。
(第2の実施形態)
次に、図9〜図12を参照して、本発明の第2の実施形態による画像合成装置について説明する。第2の実施形態では、合成難易度の重みを撮像画面位置や画像データのエリアのテクスチャーの細かさの具合に応じて変える。
第2の実施形態におけるカメラの基本構成は第1の実施形態を示す図1と同様であるため、ここでの説明は省略する。本実施形態では、図1のシステム制御部130における合成難易度の算出処理が第1の実施形態と異なる。
第2の実施形態によるシステム制御部130の全体処理は、第1の実施形態の図2のフローと同様の処理であるため説明を省略する。以下、第2の実施形態のシステム制御部130が、図2のフローで合成難易度検出を行い基準露出領域と付随露出領域を設定する処理(S204)について、図9、図10のフローを用いて説明する
図9のフローは、合成難易度検出を行い基準露出領域と付随露出領域を設定する処理の全体フローである。
図9のステップS301は、図3のステップS301と同様で、画像データを所定の画素値分のブロックに分割し、分割した全ブロック分の処理が終了するまで繰り返しループする。図9のステップS302は、図3のステップS302と同様で、同位置のブロックの画素差分値を算出する。
図9のステップS901では、図9のステップS302で算出したブロック差分値に、撮像画面内の位置の重み係数αとテクスチャー領域の重み係数βを以下の式で算出したratioを算出する。
ratio=重み係数α×重み係数β
その後、ブロックの画素差分にratioを乗算し、重み付きブロックの画素差分(重み差分)を算出する。
図9のステップS902では、重み差分が所定の閾値以上かどうかを判定する。重み差分が所定の閾値以上の場合には、図9のステップS304の処理を行う。逆に、重み差分が所定の閾値未満の場合には、図9のステップS305の処理を行う。
図9のステップS304では、図3のステップS304と同様で、重み差分を算出したブロックを合成困難ブロックに設定する。図9のステップS305では、図3のステップS305と同様で、重み差分を算出したブロックを合成可能ブロックに設定する。
図9のステップS306では、図3のステップS306と同様で、画像データの全ブロック分の処理が完了すれば、図9のステップS307の処理に移る。逆に全ブロック分の処理が完了していない場合は、図9のステップS301に戻る。
図9のステップS307では、図3のステップS307と同様で、基準露出領域を設定する。図9のステップS308では、図3のステップS308と同様で、付随露出領域を設定する。以上が、合成難易度検出を行い基準露出領域と付随露出領域を設定する処理の全体フローについての説明である。
次に、図10〜図12を用いて、図9のフローのステップS901の処理について詳しく説明する。図10は、図9のフローのステップS901の処理フローである。即ち、画素差分値に画面内の位置の重みとテクスチャー領域の重みを掛ける処理である。
図10のステップS1001では、図2のステップS203で撮像された画像データを用いて図1の表示部123に表示する撮像画面内の重要領域を設定する。重要領域とは、撮影者がカメラで撮像する際に注目する領域を示している。その領域に適切な露出値が設定されず撮像された場合、撮像された画像データでは、白飛びや黒潰れが発生してしまい、撮影者の画像データの観賞時に視覚的な不快感を与えてしまう。
それを改善するために、視覚的に注目する領域に対してできる限り適切な露出値で撮像を行うための重要領域を設定する。一般的に撮影者は、カメラで撮像する場合注目する被写体を撮像画面内の中央部の領域に入れて撮像することが多い。また、画像データを観賞する際に人物領域に注目する場合が多い。そのため、図10のステップS1001では、撮像画面内の中央領域、顔検出領域、人体検出領域を検出してその領域を重要領域に設定する。
図10のステップS1002では、図10のステップS1001で設定された撮像画面内の重要領域の中心からの距離に応じて重み係数αを算出する。重み係数αの算出処理について図11を用いて詳しく説明する。
図11(a)は撮像画面内の重要領域に設定された重要設定領域を枠で囲まれた四角の領域で表している。1101の領域は、撮像画面内の中央領域を表し、1102の領域は、顔と検出した領域を表し、1103の領域は、人体と検出した領域を表している。1101〜1103の領域が重要設定領域となっている。
図11(b)は、撮像画面内の図11(a)で設定された1101〜1103のそれぞれの重要設定領域の中心からの距離に応じて重み係数αの値を色の濃淡で表している。白になるにつれて、重要設定領域の重み係数αの値が大きくなっていることを示している。そのため重み係数αの値は、1101〜1103の重要設定領域の中心から離れるに従って小さくなっていることが分かる。
図11(c)は、図11(a)で示している重要設定領域の中心からの距離と重み係数αの関係を表した図である。横軸は撮像画面の画素位置を表しており、縦軸は重み係数αの大きさを表している。
具体的に図11(a)、図11(b)の1101の重要設定領域を基にして説明する。図11(c)の画素位置の重要設定領域の中心画素位置(Cen)は、1101の重要設定領域を表している。その画素位置を中心として、左右画素距離D離れた位置の重み係数は、1104(左D画素離れた位置)と1105(右D画素離れた位置)である。図11(c)では、Cenの画素位置から離れるに従って重み係数αが小さくなり最終的には、重み係数0になる。逆に、Cenからの距離がある一定以内に近づいている画素位置は重み係数αが1.0となり重みが最大となる。
図11で説明した重要設定領域の中心からの距離で重みをつけることで、撮影者が視覚的に注目する領域に対してできる限り適切な露出値で撮像を行うための重要領域を設定する。
続いて図12を用いてテクスチャー領域の重みを算出する処理について説明する。図12(a)は、撮像画像データにおけるテクスチャーが細かく密集している領域を枠で囲まれた四角1201〜1203で表している。テクスチャーが細かく密集している領域では、図9のステップS302で画像データの各ブロックごとの差分値を算出する際に正確な動きブロックを算出することが困難となる。例えばテクスチャーが細かく密集している例として草原に生える草や、木の葉が風等で動いた際、図9のステップS302で算出する比較ブロックの差分が大きく出る領域と、差分が小さくなる領域が発生する。そして、動きに関しての正しい比較ブロックの差分をとることがむずかしい。そのため、テクスチャーが細かい領域に関して合成難易度を下げるような処理を行う。
これらのテクスチャーが細かく密集しているかどうかを判定するために、システム制御部130の制御下で画像処理部115は画像データに垂直方向バンドパスフィルタを作用させる。これら水平及び垂直方向のバンドパスフィルタにより、画像データよりエッジの強さを算出する。その後、所定の大きさのブロックごとにエッジの強さを積分し、ブロックごとのエッジ強度を算出する。図12(b)では、各ブロックごとに算出されたエッジ強度の重み係数βを示している。重み係数βの値を色の濃淡で表している。白になるにつれて、エッジ強度の重み係数βの値が大きくなっていることを示している。
図12(c)は、図12(b)で示したエッジ強度による重み係数βの関係を示した図である。図12(c)では、横軸がエッジ強度の大きさ、縦軸が重み係数βを表す。図12(c)では、エッジ強度が大きくなるほど、重み係数βの値が大きくなり、エッジ強度が1204の大きさ以降、重み係数βは1.0となっている。
以上が、合成難易度の重みを撮像画面位置や画像データのエリアのテクスチャーの細かさ具合に応じて変えて、検出した領域とそれ以外の領域に対してそれぞれ適切な露出値で撮像し画像合成を行う処理時のシステム制御部130の動作である。
以上のように、第2の実施形態によれば、合成難易度検出時に、撮影者が注目する領域に対して合成難易度の重みを付けて合成が困難な領域と合成が適している領域を検出する。そのため、より主観的に重要な領域に合った露出制御を行うことができる。これにより、主観的に目立つ動体領域に対して黒潰れや白飛びなどを軽減した適切なダイナミックレンジ表示を行える合成画像を作成することが可能となる。
(第3の実施形態)
次に、図13、図14を参照して、本発明の第3の実施形態による画像合成装置について説明する。第3の実施形態では、付随露出領域の面積に応じて付随画像の露出制御の制御量(露出変動値U)を変更し、露出制御を行う。
第3の実施形態におけるカメラの基本構成は第1の実施形態を示す図1と同様であるため、ここでの説明は省略する。本実施形態では、図1のシステム制御部130における付随画像の露出値を算出し、付随画像を撮像する処理が第1の実施形態と異なる。
第3の実施形態によるシステム制御部130の全体処理は、第1の実施形態の図2のフローと同様の処理のため説明を省略する。以下、第3の実施形態のシステム制御部130が、図2のフローで付随画像の露出値を算出し付随画像を撮像する処理(S206)について図13のフローを用いて説明する。
図13のステップS501は、図5のステップS501と同様で、基準露出領域と付随露出領域の明るさとヒストグラムを算出する。図13のステップS502は、図5のステップS502と同様で、基準露出領域と付随露出領域の明るさを比較し、基準露出領域の明るさよりも付随露出領域の明るさが暗ければ、図13のステップS503(a)の処理を行う。逆に、付随露出領域の明るさが基準露出領域の明るさ以上であれば、図13のステップS503(b)の処理を行う。
図13のステップS503(a)は、図5のステップS503(a)と同様で、付随露出領域の黒潰れ検出を行う。図13のステップS504は、図5のステップS504と同様で、図13のステップS503(a)で算出した黒潰れ量が、所定値以上であるか判定する。閾値以上の黒潰れ量がある場合、図13のS1301の処理を行う。逆に所定値以下の黒潰れの場合には、処理を終了する。
図13のステップS1301では、付随露出領域の面積に応じて露出変動値Udを算出する。詳しい説明は後述する。図13のステップS1302では、図5のステップS505と同様で、図13のステップS1301で算出した露出変動値Udを現在の露出値V(n)に加えたV(n+1)を次の付随画像の撮像のための露出値として算出する。図13のステップS506は、図5のステップS506と同様で、露出値V(n+1)を図1の撮像部110に設定して撮像を行う。
続いて図13のステップS503(b)以降のフローについて説明する。図13のステップS503(b)は、図5のステップS503(b)と同様で、付随露出領域の白飛び検出を行う。図13のステップS507は、図5のステップS507と同様で、図13のステップS503(b)で算出した白飛び量が、所定値以上であるか判定する。所定値以上の白飛び量がある場合、図13のS1303の処理を行う。逆に所定値以下の白飛び量の場合には、処理を終了する。
図13のステップS1303では、付随露出領域の面積に応じて露出変動値Udを算出する。詳しい説明は後述する(S1301と同様の処理)。図13のステップS1304では、図5のステップS508と同様で、図13のステップS1303で算出した露出変動値Udを現在の露出値V(n)から引いたV(n+1)を次の付随画像の撮像のための露出値として算出する。図13のステップS509は、図5のステップS509と同様で、露出値V(n+1)を図1の撮像部110に設定して撮像を行う。
続いて図14を用いて、図13のステップS1301、S1303の付随露出領域の面積に応じて露出変動値Udを算出する処理について説明する。
図14(a)は、付随露出領域の面積が小さい場合の例、図14(b)は付随露出領域の面積が大きい場合の例を示している。それぞれ1401、1402の領域が付随露出領域のブロックを表している。つまり、このブロックの個数が付随露出領域の面積となる。図14(c)は、付随露出領域の面積と露出変動値の関係を表した図となっている。縦軸は、露出変動値Udを表し、横軸は付随露出領域の面積を表している。付随露出領域の面積とは、図14(a)、(b)の付随露出領域のブロックの数と対応している。また、縦軸のUaeは、基準露出領域のAE処理で求めた露出変動値である。そして、Udは付随露出領域の露出変動値となっている。
図14(c)を見ると、付随露出領域の露出制御値Udは、最大値をとるとき、基準露出領域の露出変動値Uaeとなり、基準露出領域の露出変動値Uaeを超えない範囲で露出変動値Udを求めることを意味している。また、付随露出領域の面積が大きくなるにつれて付随露出領域の露出変動値Udが小さくなる。これは、付随露出領域のブロック面積が1401に示す値のとき、付随露出領域の露出変動値Udが最大値となり、逆にブロック面積が1402に示す値のとき最小値になるように制御する。
以上の制御を行うことで図13のステップS1301、S1303の付随露出領域の面積に応じて露出変動値Udを算出する処理を行うことができる。付随露出領域と基準露出領域を分けて露出値を制御する処理を行っているため、基準露出領域の露出変動値Uaeと、付随露出領域の露出変動値Udの二つの露出変動値が存在する。露出変動値が大きい程、次の撮像画像データの露出値と前の撮像画像データの露出値の差が大きくなる。例えば、前の撮像画像データに比べ、次の撮像画像データの露出変動値が大きい場合、前の撮像画像データでは白飛びしていた空が次の撮像画像データでは、青空と雲がはっきり見える空となる。そのため、時系列的な空の階調の見え方が急激に変わり、視覚的な不自然差が残ってしまう。また、時系列的な階調の見え方が急激に変わっても、変化する面積が小さければ視覚的な不自然差は小さくなる。
そのため、基本的には注目する領域以外の領域はゆっくりと露出制御を行う(目的とする露出に近づける)ことが好ましく、本実施形態では注目する領域である基準露出領域の露出変動値Uaeに比べ、付随露出領域の露出変動値Udは小さな値にする。但し、付随領域の面積が小さい場合には露出制御値Udを大きく制御するように行うことで、付随露出領域の露出値をできる限り短い時間で最適な露出値に収束させることができる。
以上が、付随露出領域の面積に応じて付随画像の露出制御の制御量(露出変動値U)を変更し、露出制御を行い、適切な露出値で撮像して画像合成を行う処理時のシステム制御部130の動作である。
以上のように、第3の実施形態によれば、付随画像の露出制御時に、付随露出領域の面積に応じて付随画像の露出制御時の露出変動値Udを算出する。この処理によって、付随露出領域の露出値は、露出値変化が目立つ場合には視覚的な露出値の変化が気にならないように時間的にゆっくりと目標露出値に収束するように制御することができる。逆に、付随露出領域の露出値の変化が目立たない場合には、時間的に早く目標露出値に収束するように制御することができる。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。