(57)【要約】【課題】水中でのストロボ発光時のホワイトバランスを適切に調整できるようにすることを目的とする。【解決手段】ストロボ発光により撮像された画像に対してホワイトバランス補正を行う撮像装置であって、ストロボ発光によりストロボが照射された被写体領域を特定する被写体領域特定手段と、被写体領域特定手段により特定された被写体領域に対するストロボの光量と外光の光量とに基づいて第１のホワイトバランス係数を算出する第１のホワイトバランス係数算出手段と、ストロボ発光による撮像が水中撮影である場合において、被写体距離を算出する被写体距離算出手段と、被写体距離算出手段により算出された被写体距離が所定距離以下の場合には、第１のホワイトバランス係数と被写体距離算出手段により算出された被写体距離とから第２のホワイトバランス係数を算出する第２のホワイトバランス係数算出手段と、を有する。【選択図】図４
2013143593.tif 000002
【特許請求の範囲】
【請求項１】
ストロボ発光により撮像された画像に対してホワイトバランス補正を行う撮像装置であって、
前記ストロボ発光によりストロボが照射された被写体領域を特定する被写体領域特定手段と、
前記被写体領域特定手段により特定された被写体領域に対するストロボの光量と外光の光量とに基づいて第１のホワイトバランス係数を算出する第１のホワイトバランス係数算出手段と、
前記ストロボ発光による撮像が水中撮影である場合において、被写体距離を算出する被写体距離算出手段と、
前記被写体距離算出手段により算出された被写体距離が所定距離以下の場合には、前記第１のホワイトバランス係数と前記被写体距離算出手段により算出された被写体距離とから第２のホワイトバランス係数を算出する第２のホワイトバランス係数算出手段と、を有することを特徴とする撮像装置。
【請求項２】
前記第２のホワイトバランス係数算出手段は、前記第１のホワイトバランス係数算出手段により算出される第１のホワイトバランス係数よりも赤味を除去するようにホワイトバランス補正されるホワイトバランス係数を算出することを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記被写体距離算出手段により算出された被写体距離に基づいて前記第１のホワイトバランス係数を補正する補正値を算出する補正値算出手段と、
前記撮像されたときの水深を推定する水深推定手段と、を有し、
前記補正値算出手段は、前記水深推定手段により水深が浅いと判定された場合には前記第１のホワイトバランス係数の補正される量が小さくなるように補正値を算出し、前記水深推定手段により水深が深いと判定された場合には前記第１のホワイトバランス係数の補正される量が大きくなるように補正値を算出することを特徴とする請求項１または２に記載の撮像装置。
【請求項４】
前記被写体距離算出手段は、主被写体の距離と主被写体以外の領域の距離とを算出し、
前記補正値算出手段は、前記被写体距離算出手段により算出された主被写体の距離よりも主被写体以外の領域の距離が近い場合に、その距離の変動割合に応じて第１のホワイトバランス係数の補正される量が大きくなるように補正値を算出することを特徴とする請求項３に記載の撮像装置。
【請求項５】
前記被写体距離算出手段は、画像領域ごとに算出されたストロボの照射量に応じて被写体距離を算出することを特徴とする請求項１ないし４の何れか１項に記載の撮像装置。
【請求項６】
前記被写体距離算出手段は、画像領域ごとに算出された光学的な情報を用いて被写体距離を算出することを特徴とする請求項１ないし４の何れか１項に記載の撮像装置。
【請求項７】
ストロボ発光により撮像された画像に対してホワイトバランス補正を行う撮像装置の制御方法であって、
前記ストロボ発光によりストロボが照射された被写体領域を特定する被写体領域特定ステップと、
前記被写体領域特定ステップにより特定された被写体領域に対するストロボの光量と外光の光量とに基づいて第１のホワイトバランス係数を算出する第１のホワイトバランス係数算出ステップと、
前記ストロボ発光による撮像が水中撮影である場合において、被写体距離を算出する被写体距離算出ステップと、
前記被写体距離算出ステップにより算出された被写体距離が所定距離以下の場合には、前記第１のホワイトバランス係数と前記被写体距離算出ステップにより算出された被写体距離とから第２のホワイトバランス係数を算出する第２のホワイトバランス係数算出ステップと、を有することを特徴とする制御方法。
【請求項８】
ストロボ発光により撮像された画像に対してホワイトバランス補正を行う撮像装置を制御するためのコンピュータに、
前記ストロボ発光によりストロボが照射された被写体領域を特定する被写体領域特定ステップと、
前記被写体領域特定ステップにより特定された被写体領域に対するストロボの光量と外光の光量とに基づいて第１のホワイトバランス係数を算出する第１のホワイトバランス係数算出ステップと、
前記ストロボ発光による撮像が水中撮影である場合において、被写体距離を算出する被写体距離算出ステップと、
前記被写体距離算出ステップにより算出された被写体距離が所定距離以下の場合には、前記第１のホワイトバランス係数と前記被写体距離算出ステップにより算出された被写体距離とから第２のホワイトバランス係数を算出する第２のホワイトバランス係数算出ステップと、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置、その制御方法およびプログラムに関するものである。特に、水中でのストロボ撮影に用いられて好適である。
【背景技術】
【０００２】
撮像装置の一例であるデジタルカメラは、撮像素子から出力された信号をＡ／Ｄ変換によってデジタル化し、複数のブロックに分割する。そのブロック信号はＲ（赤）、Ｇ（緑）、Ｂ（青）を含む色信号で構成されており、そのブロックの色評価値算出例として式（１）がある。
【０００３】
Ｃｘ[i]＝（Ｒ[i]−Ｂ[i]）／Ｙ[i]×１０２４
Ｃｙ[i]＝（Ｒ[i]＋Ｂ[i]−２Ｇ[i]）／Ｙ[i]×１０２４      ・・・（１）
（ただし、Ｙ[i]＝Ｒ[i]＋２Ｇ[i]＋Ｂ[i]）
デジタルカメラは、予め設定した白検出範囲に色評価値（Ｃｘ[i]、Ｃｙ[i]）が含まれる場合は、そのブロックが白であると判定する。そして、デジタルカメラは、白検出範囲に含まれる色画素の積分値ｓｕｍＲ、ｓｕｍＧ、ｓｕｍＢを算出して、以下の式（２）のようにホワイトバランス係数を算出する。
【０００４】
ＷＢＣｏ_Ｒ＝ｓｕｍＹ×１０２４／ｓｕｍＲ
ＷＢＣｏ_Ｇ＝ｓｕｍＹ×１０２４／ｓｕｍＧ                ・・・（２）
ＷＢＣｏ_Ｂ＝ｓｕｍＹ×１０２４／ｓｕｍＢ
ここで、ｓｕｍＹ＝（ｓｕｍＲ＋２×ｓｕｍＧ＋ｓｕｍＢ）／４
【０００５】
ただし、水中で撮影を行う場合、水の分光透過率の影響で光の長波長域が減衰しやすくなるので、Ｒ色光の比率がＧ色光、Ｂ色光に比べて減少するため、青みを帯びた画像になる。
更に、水中では、水面からカメラあるいは被写体までの距離（水面からの深さ）が長くなるほど、水の外から到達する自然光のＲ色成分が減少するためホワイトバランスの追従性を保持するのが困難である。
【０００６】
特許文献１に開示された電子カメラは、ホワイトバランス調整時に使用する調整係数を撮影前に設定し、カメラが位置する深さを検出する水深計により検出した深度情報を基に、異なるホワイトバランス調整係数を制御している。
また、水中撮影においては、上述した理由により水深が深くなるほぼ色の発色がされなくなり、おおよそ１０メートルを超える水深になると、ホワイトバランスを合わせたとしても色味が発色されずグレーに近い画像となってしまう。それを回避するために、水中撮影時にストロボを発光させることで好ましい色再現の画像を得ることが可能となる。
【０００７】
それに対して、特許文献２に開示された電子スチルカメラは、水中時においてホワイトバランスを調整するにあたり、被写体の距離に応じて、その光路長分によるストロボの色味変動量を推定し、ホワイトバランス制御値を可変する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第４１４４３９０号公報
【特許文献２】特許第３５２８２０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
水中においてストロボ撮影をして、メイン被写体にホワイトバランスを適正に制御した場合、メイン被写体は適正なホワイトバランスの画像となる。しかし、特に５０ｃｍ以下のマクロ距離において、メイン被写体の手前にサンゴや岩場など被写体がある場合や、外部ストロボなどにより適正角度でストロボが照射されていない場合など、メイン被写体よりも照度が高くストロボ照射されている領域があるとする。この場合、メイン被写体の手前の被写体や照度が高い領域では、メイン被写体よりも赤味が強くなってしまい不自然な画像となってしまうという問題がある。
【００１０】
水中においては、水が青色にかぶっているため、画像として青色方向に変化する分には違和感は少ないが、赤い色で発色されると違和感が大きく不自然な画像となる。
このような問題に対して、特許文献１ではストロボ非発光時のホワイトバランス制御方法であって、ストロボ発光時のホワイトバランス制御についての問題を解決することができない。また、特許文献２では、メイン被写体の距離に応じてホワイトバランスを制御するものであって、メイン被写体の色味を合わせることが目的であり、同様に上述した不具合画像に対して適切な処理を行っていないため、好ましい画像を得ることができない。
【００１１】
本発明は上述した課題に鑑みてなされたものであり、水中でのストロボ発光時のホワイトバランスを適切に調整できるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、ストロボ発光により撮像された画像に対してホワイトバランス補正を行う撮像装置であって、前記ストロボ発光によりストロボが照射された被写体領域を特定する被写体領域特定手段と、前記被写体領域特定手段により特定された被写体領域に対するストロボの光量と外光の光量とに基づいて第１のホワイトバランス係数を算出する第１のホワイトバランス係数算出手段と、前記ストロボ発光による撮像が水中撮影である場合において、被写体距離を算出する被写体距離算出手段と、前記被写体距離算出手段により算出された被写体距離が所定距離以下の場合には、前記第１のホワイトバランス係数と前記被写体距離算出手段により算出された被写体距離とから第２のホワイトバランス係数を算出する第２のホワイトバランス係数算出手段と、を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、水中でのストロボ撮影を行った場合において、ホワイトバランスを適切に調整することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態のカメラの構成を示すブロック図である。
【図２】ホワイトバランス補正値の算出処理を示すフローチャートである。
【図３】白検出範囲を示す図である。
【図４】水中ストロボ時のホワイトバランス係数算出処理を示すフローチャートである。
【図５】水中時の色評価値分布を示す図である。
【図６】水中軸を設定する処理を説明するための概念図である。
【図７】相関係数に応じた水中軸の設定に関するテーブルを示す図である。
【図８】ストロボ発光時のホワイトバランス係数算出処理を示すフローチャートである。
【図９】混合比率を決定するゲイン算出処理を説明するための概念図である。
【図１０】ストロボと外光の光量比を算出する処理を示すフローチャートである。
【図１１】水中ストロボのホワイトバランス係数算出処理を示すフローチャートである。
【図１２】水中ストロボのホワイトバランス係数の補正値を算出する処理を示す概念図である。
【図１３】黒体放射軸からの距離に応じてホワイトバランス係数の補正値を可変する処理を示す概念図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について、図面を参照して詳細に説明する。本実施形態では、撮像装置としてデジタルカメラ（以下、カメラという）を例にして説明する。
（第１の実施形態）
図１は、本実施形態のカメラの構成を示すブロック図である。
カメラは、固体撮像素子１０１、メモリ１０２、ＷＢ制御部１０３、色変換ＭＴＸ回路１０４、ＬＰＦ回路１０５、ＣＳＵＰ回路１０６、ＲＧＢ変換回路１０７、γ補正回路１０８、色輝度変換回路１０９、ＪＰＥＧ圧縮回路１１０を有している。また、カメラは、Ｙ生成回路１１１、エッジ強調回路１１２、制御回路１１３、ＣＰＵ１１４などを有している。
【００１６】
固体撮像素子１０１は、ＣＣＤやＣＭＯＳセンサなどである。固体撮像素子１０１は、表面が例えばベイヤー配列のようなＲＧＢ（赤、緑、青）のカラーフィルタにより覆われ、カラー撮影が可能な構成となっている。
ＣＰＵ１１４は、画像全体が適切な明るさになるようなシャッター速度、絞り値を計算すると共に、合焦領域内にある被写体に合焦するように撮影レンズ内のフォーカスレンズの駆動量を計算する。ＣＰＵ１１４で計算された露出値（シャッター速度、絞り値）およびフォーカスレンズの駆動量は制御回路１１３に送られ、各値に基づいて露出およびフォーカスがそれぞれ制御される。
【００１７】
ＷＢ（ホワイトバランス）制御部１０３は、メモリ１０２に記憶された画像信号の情報に基づいてホワイトバランス補正値を算出し、算出したホワイトバランス補正値を用いて、メモリ１０２に記憶された画像信号に対してホワイトバランス補正を行う。なお、このＷＢ制御部１０３の詳細構成およびホワイトバランス補正値の算出方法については後述する。
色変換ＭＴＸ（色変換マトリックス）回路１０４は、ＷＢ制御部１０３によりホワイトバランス補正された画像信号が最適な色で再現されるように色ゲインをかけて色差信号Ｒ−Ｙ、Ｂ−Ｙに変換する。
ＬＰＦ（ローパスフィルタ）回路１０５は、色差信号Ｒ−Ｙ、Ｂ−Ｙの帯域を制限する。
ＣＳＵＰ（Chroma Supress）回路１０６は、ＬＰＦ回路１０５で帯域制限された画像信号のうち、飽和部分の偽色信号を抑圧する。一方、ＷＢ制御部１０３によりホワイトバランス補正された画像信号はＹ（輝度信号）生成回路１１１にも出力されて輝度信号Ｙが生成され、生成された輝度信号Ｙに対してエッジ強調回路１１２にてエッジ強調処理が施される。
【００１８】
ＣＳＵＰ回路１０６から出力される色差信号Ｒ−Ｙ、Ｂ−Ｙと、エッジ強調回路１１２から出力される輝度信号Ｙは、ＲＧＢ変換回路１０７にてＲＧＢ信号に変換され、γ補正回路１０８にて階調補正が施される。その後、色輝度変換回路１０９にてＹＵＶ信号に変換され、更にＪＰＥＧ圧縮回路１１０にて圧縮されて、外部記録媒体または内部記録媒体に画像信号として記録される。
【００１９】
次に、ＷＢ制御部１０３によるホワイトバランス補正値の算出方法について図２のフローチャートを参照して詳細に説明する。
ステップＳ１０１では、ＷＢ制御部１０３はメモリ１０２に記憶された画像信号を読み出し、その画面を任意のｍ個のブロックに分割する。
ステップＳ１０２では、ＷＢ制御部１０３は各ブロック（１〜ｍ）毎に、画素値を各色毎に加算平均して色平均値（Ｒ[i]、Ｇ[i]、Ｂ[i]）を算出し、次の式（３）を用いて色評価値（Ｃｘ[i]、Ｃｙ[i]）を算出する。
【００２０】
Ｃｘ[i]＝（Ｒ[i]−Ｂ[i]）／Ｙ[i]×１０２４
Ｃｙ[i]＝（Ｒ[i]＋Ｂ[i]−２Ｇ[i]）／Ｙ[i]×１０２４      ・・・（３）
ただし、Ｙ[i]＝Ｒ[i]＋２Ｇ[i]＋Ｂ[i]
【００２１】
ステップＳ１０３では、ＷＢ制御部１０３はステップＳ１０２で算出したｉ番目のブロックの色評価値（Ｃｘ[i]、Ｃｙ[i]）が、図３（ａ）に示す予め設定した白検出範囲３０１に含まれるか否かを判断する。
ここで、図３（ａ）に示す白検出範囲３０１は、予め異なる光源下で白を撮影し、算出した色評価値をプロットしたものである。この白検出範囲は撮影モードによって別設定できるものとする。図３に示すｘ座標（Ｃｘ）の負方向が高色温度被写体の白を撮影したときの色評価値、正方向が低色温度被写体の白を撮影したときの色評価値である。また、ｙ座標（Ｃｙ）は光源の緑成分の度合いを意味しており、負方向になるにつれＧｒｅｅｎ（緑）成分が大きくなり、つまり蛍光灯であることを示している。水中時における白色分布はＢｌｕｅ（青）方向とＧｒｅｅｎ方向に偏って分布するので、白検出範囲はＢｌｕｅ方向とＧｒｅｅｎ方向を検出するような範囲に設定する（図３（ｂ）に示す白検出範囲３０２）。
【００２２】
算出した色評価値（Ｃｘ[i]、Ｃｙ[i]）が、図３（ｂ）に示す白検出範囲３０２に含まれる場合には、そのブロックが白色であると判断され、ステップＳ１０４に進み、白検出範囲３０２に含まれない場合にはステップＳ１０５に進む。
ステップＳ１０４では、ＷＢ制御部１０３はそのブロックの色平均値（Ｒ[i]、Ｇ[i]、Ｂ[i]）を積算していく。したがって、白検出範囲３０２に含まれない場合には加算されずにステップＳ１０５に進む。
ステップＳ１０３およびステップＳ１０４の処理は次の式（４）により表すことができる。
【００２３】
【数１】
2013143593.tif 000003
【００２４】
ここで、式（４）において、色評価値（Ｃｘ[i]、Ｃｙ[i]）が白検出範囲３０２に含まれる場合はＳｗ[i]を１に、含まれない場合にはＳｗ[i]を０とする。これにより、ステップＳ１０３の判断により色評価値（Ｒ[i]、Ｇ[i]、Ｂ[i]）の加算を行うか、行わないかの処理を実質的に行っている。
【００２５】
ステップＳ１０５では、ＷＢ制御部１０３は全てのブロックについて上述した処理を行ったか否かを判断し、未処理のブロックがあればステップＳ１０２に戻って上述した処理を繰り返し、全てのブロックの処理が終了していればステップＳ１０６に進む。
【００２６】
ステップ１０６では、ＷＢ制御部１０３は得られた色評価値の積分値（ｓｕｍＲ、ｓｕｍＧ、ｓｕｍＢ）から、次の式（５）を用いて、第１のホワイトバランス補正値（ＷＢＣｏ１_Ｒ、ＷＢＣｏ１_Ｇ、ＷＢＣｏ１_Ｂ）を算出する。
【００２７】
ＷＢＣｏ１_Ｒ＝ｓｕｍＹ×１０２４／ｓｕｍＲ
ＷＢＣｏ１_Ｇ＝ｓｕｍＹ×１０２４／ｓｕｍＧ            ・・・（５）
ＷＢＣｏ１_Ｂ＝ｓｕｍＹ×１０２４／ｓｕｍＢ
ただし、ｓｕｍＹ＝（ｓｕｍＲ＋２×ｓｕｍＧ＋ｓｕｍＢ）／４
【００２８】
続いて、ホワイトバランス補正値の算出後の処理について図４のフローチャートと図５の概念図を用いて説明する。
ステップＳ２０２では、ＷＢ制御部１０３はＷＢモードが水中モードか否かを判断する。水中モードではない場合にはステップＳ２０５に進み、水中モードの場合にはステップＳ２０３に進む。
ステップＳ２０５では、ＷＢ制御部１０３は第１のホワイトバランス補正値を外光のホワイトバランス係数に設定する。
【００２９】
一方、ステップＳ２０３では、ＷＢ制御部１０３は水深を推定し、その水中時の水深に応じた白色軌跡（水中軸）の設定を行う。より具体的には、ＷＢ制御部１０３は撮影画像をｎブロックに分割し、各ブロック（１〜ｎ）毎に、画素値を各色毎に加算平均して色平均値（Ｒ[i]、Ｇ[i]、Ｂ[i]）を算出する。そして、色評価値（Ｃｘ[i]、Ｃｙ[i]）を算出する。色評価値は、図５に示すように水深（深度）が浅いときは５０１のように分布し、水深が深いときは５０２のように分布する。水中では、水面から被写体の位置（被写体までの距離が近ければカメラの位置とも見なせる）までの距離（水面からの深さ）が長くなるほど、水の外から到達する自然光のＲ色成分が減少するので図５に示すような分布になる。そこで水深を推定する水深推定手段として撮影画像の色分布情報から直線近似式の相関を演算し、その相関から水深を推定する。その相関計算式は以下の式（６）のようになる。
【００３０】
【数２】
2013143593.tif 000004
【００３１】
ここで、ｍはＣｘ[i]の平均値であり、ｎはＣｙ[i]の平均値である。
上記で算出したｒ2を相関係数とし、その情報を基にホワイトバランス制御を行う。この相関係数は０〜１の値をとり、１に近い値だと相関がある、つまり水深が深いと推定され、０に近い値だと相関がない、つまり水深が浅いと推定される。
【００３２】
また、色分布情報から水深を推定する他の水深推定手段として、撮影画像の色分布と黒体放射軸との距離を基に水深を推定することができる。これは、図５に示すように水深が深くなるにつれ、Ｂｌｕｅ（青）、Ｇｒｅｅｎ（緑）方向に色分布が推移していくためである。ここでは、撮影画像の色分布中心と黒体放射軸との距離によって水深を推定することとする。
黒体放射軸との距離をΔＣｘ、ΔＣｙとすると、その算出式は以下の式（７）のように
なる。
【００３３】
【数３】
2013143593.tif 000005
【００３４】
ΔＣｘ＝Ｃｘ０−ＡｖｅＣｘ
ΔＣｙ＝Ｃｙ０−ＡｖｅＣｙ
ここで、Ｗ０（Ｃｘ０、Ｃｙ０）は黒体放射軸上のポイントとする。
上式で算出したΔＣｘ、ΔＣｙを水深推定の判断要素とする。
【００３５】
水中軸は図６に示すような黒体放射軸とは離れたところに存在する。更に水中の白点は水深によって変化するため、上記演算によって得られた相関係数（推定水深情報）と黒体放射軸との距離（推定水深情報）を基に水中軸Ｗ１’、Ｗ２’を設定する。設定方法としては、図７（ａ）、（ｂ）に示すような相関係数に応じたＷ１（Ｃｘ１，Ｃｙ１）、Ｗ２（Ｃｘ２，Ｃｙ２）、Ｗ１Ｄ（Ｃｘ１Ｄ，Ｃｙ１Ｄ）、Ｗ２Ｄ（Ｃｘ２Ｄ，Ｃｙ２Ｄ）をテーブルから参照する。Ｗ１Ｄ、Ｗ２ＤはＷ１、Ｗ２より更に深い水深まで追従できるような水中軸の設定値とする。
【００３６】
上記テーブルから算出したＷ１、Ｗ２、Ｗ１Ｄ、Ｗ２Ｄは上述の黒体放射軸との距離Δ
Ｃｘ、ΔＣｙに応じてＭｉｘ（混合）する。
そのＭｉｘ率βは、図９に示されるようにΔＣｘ、ΔＣｙからＧａｉｎ１，Ｇａｉｎ２
を求め、以下のように算出する。
【００３７】
β＝Ｇａｉｎ１×Ｇａｉｎ２
Ｗ１’Ｃｘ＝（１−β）×Ｗ１Ｃｘ＋β×Ｗ１ＤＣｘ
Ｗ１’Ｃｙ＝（１−β）×Ｗ１Ｃｙ＋β×Ｗ１ＤＣｙ
Ｗ２’Ｃｘ＝（１−β）×Ｗ２Ｃｘ＋β×Ｗ２ＤＣｘ
Ｗ２’Ｃｙ＝（１−β）×Ｗ２Ｃｙ＋β×Ｗ２ＤＣｙ
【００３８】
つまり、色分布情報の相関係数が高く黒体放射軸との距離が離れている場合に水深が深いと判断され、より深くまで追従できるような水中軸が設定される。
図７に示すテーブルの相関係数と軸との関係は、例えば、実際の水中での撮影画像を用いて実験的に求めることができる。なお、相関係数が図７に示すテーブルの間の値をとる場合は線形補間して算出する。
【００３９】
ステップＳ２０４では、ＷＢ制御部１０３はステップＳ１０６で算出したホワイトバランス補正値ＷＢＣｏ１を図６で示すようなＷ１’、Ｗ２’の水中軸に写像する。次に、ＷＢ制御部１０３は、写像した点ＷＢＣｏ’（Ｃｘ’、Ｃｙ’）をＷＢＣｏ１_Ｒ、ＷＢＣｏ１_Ｇ、ＷＢＣｏ１_Ｂとし、水中のホワイトバランス係数として出力する。
【００４０】
ステップＳ２０６では、ＷＢ制御部１０３は本露光時にストロボが発光されたか否かの判定を行う。ストロボ発光されていない場合にステップＳ２０８に進み、ストロボ発光されている場合にはステップＳ２０７に進む。
ステップＳ２０８では、ＷＢ制御部１０３はステップＳ２０４およびステップＳ２０５でそれぞれ算出したホワイトバランス係数を外光のホワイトバランス係数として設定する。すなわち、ＷＢモードが水中モードの場合には水中のホワイトバランス係数を外光のホワイトバランス係数とし、ＷＢモードが水中モードではない場合には第１のホワイトバランス補正値を外光のホワイトバランス係数に設定する。
一方、ステップＳ２０７では、ＷＢ制御部１０３は後述するストロボ発光時のホワイトバランス係数算出処理を行う。
【００４１】
ステップＳ２０９では、ＷＢ制御部１０３は再度水中モードで撮影されたか否かを判定する。水中モードで撮影された場合にはステップＳ２１１に進み、水中モードで撮影されていない場合にはＷＢ制御部１０３はステップＳ２０７で算出したホワイトバランス係数を最終的なホワイトバランス係数として設定する。
一方、ステップＳ２１１では、ＷＢ制御部１０３は後述する水中ストロボのホワイトバランス係数算出処理を行う。
【００４２】
図８は、ステップＳ２０７によるストロボ発光時のホワイトバランス係数算出処理を示すフローチャートである。
ステップＳ４０１では、ＷＢ制御部１０３は調光判定より発光されたストロボ発光量を取得する。
ステップＳ４０２では、ＷＢ制御部１０３は取得したストロボ発光量に応じてストロボの色温度およびストロボのホワイトバランス係数を取得する。一般的なストロボにおいて、発光量が小さいほど色温度が高く、発光量が大きくなるほど色温度が低くなる。ストロボの発光量と色温度およびホワイトバランス係数を予め測定しておくことで、ストロボの発光量に応じた最適なホワイトバランス係数を取得可能である。
【００４３】
ステップＳ４０３では、ＷＢ制御部１０３は図４のステップＳ２０４またはステップＳ２０５において算出された外光のホワイトバランス係数を取得する。なお、ステップＳ２０４において算出された水中のホワイトバランス係数は、ストロボ発光を考慮していないので外光のホワイトバランス係数の一つである。
ステップＳ４０４では、ＷＢ制御部１０３は主被写体領域における外光とストロボの光量比の算出を行う。この処理の詳細は後述する。
ステップＳ４０５では、ＷＢ制御部１０３はステップＳ４０２とステップＳ４０３で取得した外光とストロボのホワイトバランス係数からステップＳ４０４で算出した光量比に応じて、主被写体に最適なホワイトバランス係数の算出を行う。この処理は、第１のホワイトバランス係数算出手段による処理の一例に対応する。一般的に光および色は光の加法性を有するので、ホワイトバランス係数自体を光量比に応じたホワイトバランス係数を線形補間することで算出できる。
【００４４】
図１０は、図８のステップＳ４０４における主被写体における外光とストロボの光量比の算出処理を示すフローチャートである。
ステップＳ３０１では、ＷＢ制御部１０３は本露光前直前の非発光画像のブロック積分値を取得する。
ステップＳ３０２では、ＷＢ制御部１０３は本露光画像のブロック積分値を取得する。
ステップＳ３０３では、ＷＢ制御部１０３は本露光画像におけるブロック毎のストロボ照射量（ＦｌａｓｈＹ[i]）と外光照射量（ＰｒｅＹ[i]）との算出を行う。
非発光画像の感度（Sv_pre）・Ｆ値（Av_ pre）、露出時間（Tv_ pre）とブロック積分値（Pre_Y），本露光画像の感度（Sv_cap）・Ｆ値（Av_cap）、露出時間（Tv_cap）とブロック積分値ＣａｐＹ（x,y）の関係から、非発光画像の輝度値を本露光撮影条件に換算処理を行った輝度値（ＰｒｅＹ´[i]）の算出を行う。ただしSv_preなどの値は下記のＡｐｅｘで表現されたものである。
【００４５】
【数４】
2013143593.tif 000006
【００４６】
SV = log2 (ISO/3.125)           ISO：ISO感度
AV： AV = 2log2 (F)             F：  レンズ絞り値
TV = -log2 (T)                   T： 露出時間（秒）
ここで、ＰｒｅＹ´[i]がブロック毎の本露光時の外光光量に相当し、ＦｌａｓｈＹ［i］がブロック毎の本露光時のストロボ照射量に相当している。
【００４７】
ステップＳ３０４では、ＷＢ制御部１０３はブロック毎に算出されたＦｌａｓｈＹに中央重点の重みテーブル（CenterWwight[i]）の乗算を行う（FlashY_wgt[i]）。
【００４８】
【数５】
2013143593.tif 000007
【００４９】
ステップＳ３０５では、ＷＢ制御部１０３は被写体領域特定処理を行う。より具体的には、FlashY_wgt[i]値から、輝度の高い順にソートして上位５０％の領域を有効領域として値を残し、下位５０％のブロック値を無効領域として、FlashY_wgt[i]値を０にする。更にメディアンフィルタを適応し、ノイズや微小なストロボ反射領域といったごみ領域の判定を行う。ごみ領域と判定された部分は同様にしてFlashY_wgt[i]値を０にする。こうして算出されたブロックデータは、中央領域かつストロボの照射が強い、一定以上の面積を持つ領域の抽出ができ、この領域を主被写体領域と判定できる（Main_TgtTbl[i]）。この処理は、被写体領域特定手段による処理の一例に対応する。
【００５０】
ステップＳ３０６では、ＷＢ制御部１０３は算出した主被写体領域に対して、FlashY[i]値の積分値（FlashLightVal）とPreY‘[i]の積分値（DayLightVal）を算出し、下記の式にて外光とストロボの光量比（Flash＿Ratio）を算出する。
【００５１】
【数６】
2013143593.tif 000008
【００５２】
本実施形態では主被写体領域を、なるべく中央に近くてかつストロボの照射された領域と判断したが、この場合に限られず、顔判別する手法や、色や明るさなどの情報から画像領域を分割して、更にその中から主被写体領域を特定するなどの方法でもよい。また、画像のパターンマッチング方法などを応用した被写体認識などの手法を用いて、主被写体領域を特定してもよい。
これらの方法においても主被写体領域の特定ができれば、上述したMain_TgtTbl[i]の算出方法が変わるだけであり、そのメイン領域におけるストロボと外光の光量比の算出は同様にして可能である。
【００５３】
図１１は、図４のステップＳ２１１における水中ストロボのホワイトバランス係数算出処理を示すフローチャートである。
ステップＳ５０１では、ＷＢ制御部１０３は被写体距離の算出を行う。この処理は、被写体距離算出手段による処理の一例に対応する。本実施形態において、被写体距離の算出手法は上述したストロボ照射量であるFlashLightValを使用して説明を行う。FlashLightValは通常は適正に調光補正が行われているので、ある一定の明るさの範囲に保たれるのが一般的である。しかし、マクロ領域など白飛びを抑えるためにストロボの最小発光量に制御されるが、それでもなお通常の被写体距離に比べてストロボ照射量が大きくなる。つまりストロボ照射量が大きい場合には被写体距離が近い可能性が高い。
ストロボ照射量を測定する以外の被写体距離の測定手法としては、一般的なＡＦなどの光学的な距離測定結果を用いる手法が考えられる。一般的なＡＦは、主要被写体領域を検出してそこまでの被写体距離情報の算出を行っている。
【００５４】
ステップＳ５０２では、ＷＢ制御部１０３は被写体距離に応じてホワイトバランス係数の補正値（オフセット値）を算出する。この処理は、補正値算出手段による処理の一例に対応する。この場合の補正値は、画像の赤味を除去する方向であり、被写体に合わせたホワイトバランス係数と、ストロボのホワイトバランス係数との直線上で、かつ被写体に合わせたホワイトバランス係数からストロボのホワイトバランス係数に近づける方向の補正である。ここで、被写体に合わせたホワイトバランス係数とは、ステップＳ５０４（ステップＳ２０７）で算出したホワイトバランス係数であり、ストロボのホワイトバランス係数とはステップＳ４０２で算出したホワイトバランス係数である。
【００５５】
図１２は、水中ストロボのホワイトバランス係数の補正値を算出する処理を示す概念図である。
図１２（Ａ）は、被写体距離の情報からホワイトバランス係数の補正値を算出する一例を示す図である。被写体距離が一定以上に近い場合（所定距離以下の場合）に、ホワイトバランス係数の補正値が大きく算出されている様子を示している。ＡＦ情報を用いる他の方法としては、主被写体の距離と、背景領域の中で最至近領域の距離とを算出し、その主被写体に対する最至近距離の割合に応じてホワイトバランス係数補正処理を可変してもよい。より具体的には、主被写体以外の領域の中に主被写体距離よりも近い領域がある場合、その距離の変動割合に応じてホワイトバランス係数の補正値を可変してもよい。もちろん主要被写体よりも主被写体以外の領域が遠い場合には補正を行う必要がないことは言うまでもない。
【００５６】
図１２（Ｂ）は、ストロボ照射量に応じてホワイトバランス係数の補正値を直接算出する一例を示す図である。ストロボ照射量が一定以上に大きい場合に、ホワイトバランス係数の補正値を大きく変動させている様子を示している。上述したように、特に画像中においてマクロ時においてストロボ照射量そのものを被写体距離として見ても、ＡＦの距離を参照することと同等の効果を有する。
【００５７】
ステップＳ５０３では、ＷＢ制御部１０３は水深推定値に応じてステップＳ５０２で算出したホワイトバランス係数の補正値に対して以下の式のようにゲインを乗算する。
Offset_Cx' =  Offset_Cx×Gain3
Offset_Cy' =  Offset_Cy×Gain3
より具体的には水深が浅い場合にはホワイトバランス係数に対する補正値を小さくし、水深が深い場合にはホワイトバランス係数に対する補正値を大きくする。ここで水深推定値とは、ステップＳ２０３で説明した相関係数ｒ2でもよいし、黒体放射軸との距離ΔＣ
ｘ、ΔＣｙの値から算出してもよい。
図１３は、黒体放射軸からの距離に応じてゲインＧａｉｎ３を算出する一例を示す図である。
【００５８】
水中でのストロボ写真が赤味を帯びて不自然な画像になるのは、ストロボ単体での白色点と水中での白色点が大きく異なることに原因がある。つまりどちらか一方に合わせると、他方でホワイトバランスが合わなくなる。その白色点の差分が大きくなればなるほど、つまり水深が深くなるほど白色点を合わせられていない領域において、不自然な色味となってしまう。具体的には主要被写体でホワイトバランスが適正になるように合わせた場合、それよりも強くストロボが照射されている領域があると、その領域において赤味が強く不自然となってしまうことを意味する。
それに対して水深が浅い領域においては、ストロボと水中とでの白色点は大きくは変わらないストロボ画像においても赤味除去する補正を行う必要が少ない。
つまり、水深に応じた水中ストロボのホワイトバランス係数を用いてホワイトバランス補正を行うことで良好な画像を得ることが可能である。
【００５９】
ステップＳ５０４では、ＷＢ制御部１０３は水中ストロボのホワイトバランス係数の算出を行う。この処理は、第２のホワイトバランス係数算出手段による処理の一例に対応する。より具体的には、ＷＢ制御部１０３は図４のステップＳ２０７で算出されたホワイトバランス係数からＣｘ、Ｃｙ値に変換し、更に上述したステップＳ５０３で算出されたオフセット値を加算し、更にホワイトバランス係数を再度算出する。このように算出されたホワイトバランスが水中ストロボのホワイトバランス係数である。
その後、ＷＢ制御部１０３は、算出した水中ストロボのホワイトバランス係数を用いてホワイトバランス補正を行うことで、水中でのストロボ発光時のホワイトバランスを適切に調整することができる。
【００６０】
なお、水深推定値は上述した方法により算出されるだけではなく、水深計や圧力センサなどの出力結果を用いてもよく、画面の平均輝度や時系列的な輝度・ホワイトバランスの変動量、白紙ホワイトバランス係数の結果など、別の画像特徴量から算出してもよい。
【００６１】
このように、本実施形態によれば、外光とストロボとの光量比に基づいて第１のホワイトバランス係数を算出し、水中撮影の場合には被写体距離に応じて第１のホワイトバランス係数を補正した第２のホワイトバランス係数を算出する。この第２のホワイトバランス係数を用いてホワイトバランス補正をすることで画像の赤味を除去するようにホワイトバランス補正されるので、水中でのストロボ発光時のホワイトバランスを適切に調整することができる。
【００６２】
以上、本発明を種々の実施形態と共に説明したが、本発明はこれらの実施形態にのみ限定されるものではなく、本発明の範囲内で変更などが可能である。
また、本発明は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するプログラムを、ネットワークまたは各種記憶媒体を介して撮像装置に供給し、撮像装置のコンピュータ（またはＣＰＵ）がプログラムを読み出して実行する処理である。
【符号の説明】
【００６３】
１０１：固体撮像素子  １０２：メモリ  １０３：ＷＢ制御部  １０４：色変換ＭＴＸ回路  １０５：ＬＰＦ回路  １０６：ＣＳＵＰ回路  １０７：ＲＧＢ回路  １０８：γ補正回路  １０９：色輝度変換回路  １１０：ＪＰＥＧ圧縮回路  １１１：Ｙ生成回路  １１２：エッジ強調回路  １１３：制御回路  １１４：ＣＰＵ
【図１】
2013143593.tif 000009
【図２】
2013143593.tif 000010
【図３】
2013143593.tif 000011
【図４】
2013143593.tif 000012
【図５】
2013143593.tif 000013
【図６】
2013143593.tif 000014
【図７】
2013143593.tif 000015
【図８】
2013143593.tif 000016
【図９】
2013143593.tif 000017
【図１０】
2013143593.tif 000018
【図１１】
2013143593.tif 000019
【図１２】
2013143593.tif 000020
【図１３】
2013143593.tif 000021