(57)【要約】【課題】撮影条件によらず、常に正確なホワイトバランスを取ることができるようにする。【解決手段】撮像素子からの信号を複数のブロックに分割する分割工程と、複数のブロック毎に色評価値群を算出する算出工程と、色評価群と予め設定した白検出範囲とから第１の色温度情報を算出する第１の色温度算出工程（Ｓ５０２）と、色評価群と予め設定した肌検出範囲とから第２の色温度情報を算出する第２の色温度算出工程（Ｓ５０１）と、被写体までの距離を測定する測定工程（Ｓ５０４）と、第１の色温度情報と第２の色温度情報と測定工程で測定した距離情報とに基づいて、第３の色温度情報を算出する第３の色温度情報算出工程（Ｓ５０３）とを備える。【選択図】      図６
2004187147.tif 000002
【特許請求の範囲】
【請求項１】
撮像素子からの信号を複数のブロックに分割する分割工程と、
前記複数のブロック毎に色評価値群を算出する算出工程と、
前記色評価群と予め設定した白検出範囲とから第１の色温度情報を算出する第１の色温度算出工程と、
前記色評価群と予め設定した肌検出範囲とから第２の色温度情報を算出する第２の色温度算出工程と、
被写体までの距離を測定する測定工程と、
前記第１の色温度情報と前記第２の色温度情報と前記測定工程で測定した距離情報とに基づいて、第３の色温度情報を算出する第３の色温度情報算出工程と、を備えることを特徴とするホワイトバランス調整方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタルカメラやデジタルビデオカメラなどにおけるホワイトバランスを調整する技術に関するものである。
【０００２】
【従来の技術】
デジタルカメラやデジタルビデオカメラなどの撮像装置では、画像の色バランスをとるために、ホワイトバランスの調整が行なわれている。
【０００３】
従来のホワイトバランスの調整は次のような方向で行なわれる。
【０００４】
撮像素子から原色フィルタを通過して出力された信号は、ＡＤ変換によってデジタル化され、図２のようなブロックＢ１，Ｂ２…に分割される。ただし各ブロックＢ１，Ｂ２…は色信号Ｒ，Ｇ１，Ｇ２，Ｂを一つずつ含む単位で構成される。これらのブロックそれぞれに対して、色評価値
Ｃｘ＝｛（Ｒ＋Ｇ２）−（Ｂ＋Ｇ１）｝／Ｙｉ
Ｃｙ＝｛（Ｒ＋Ｂ）／４−（Ｇ１−Ｇ２）／４｝／Ｙｉ
Ｙｉ＝（Ｒ＋Ｇ１＋Ｇ２＋Ｂ）／４
を算出する。また図３に示すように、あらかじめ白色を高色温度下から低色温度下まで撮影し、色評価値Ｃｘ，Ｃｙをプロットすることで、白領域を定めることができる。実際の光源において白色には若干のばらつきが存在するため、幅を持たせてある。つまり、各ブロックについてＣｘ，Ｃｙ軸にプロットし白領域に入った場合、そのブロックが白色であると仮定する。さらに、白領域に入った色画素の積分値ＳｕｍＲ，ＳｕｍＧ１，ＳｕｍＧ２，ＳｕｍＢを算出して、以下の式を用いることでホワイトバランスゲインを算出する。
【０００５】
ｋＷＢ＿Ｒ＝１．０／ＳｕｍＲ
ｋＷＢ＿Ｇ１＝１．０／ＳｕｍＧ１
ｋＷＢ＿Ｇ２＝１．０／ＳｕｍＧ２
ｋＷＢ＿Ｂ＝１．０／ＳｕｍＢ
【発明が解決しようとする課題】
しかし、従来のホワイトバランス係数算出において以下のような欠点があった。
【０００６】
高色温度下において、色評価値は図３の領域Ａ付近に分布する。従って、シーンを高色温度光源であると判定できるが、この光源下において、人の肌をＣｘ，Ｃｙ軸にプロットすると、白領域における低色温度側に分布する。従って、画角に白色が少なくかつ人肌がアップのシーンでは画面の色評価値は図３の領域Ｂに分布する。つまり肌色を低色温度下の白色と誤判別し、人の肌を白色にしてしまう。
【０００７】
従って、本発明は上述した課題に鑑みてなされたものであり、その目的は、撮影条件によらず、常に正確なホワイトバランスを取ることができるようにすることである。
【０００８】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するために、本発明に係わるホワイトバランス調整方法は、撮像素子からの信号を複数のブロックに分割する分割工程と、前記複数のブロック毎に色評価値群を算出する算出工程と、前記色評価群と予め設定した白検出範囲とから第１の色温度情報を算出する第１の色温度算出工程と、前記色評価群と予め設定した肌検出範囲とから第２の色温度情報を算出する第２の色温度算出工程と、被写体までの距離を測定する測定工程と、前記第１の色温度情報と前記第２の色温度情報と前記測定工程で測定した距離情報とに基づいて、第３の色温度情報を算出する第３の色温度情報算出工程と、を備えることを特徴としている。
【０００９】
【発明の実施の形態】
以下、本発明の好適な実施形態について説明する。
【００１０】
まず、本実施形態の概要について説明する。
【００１１】
本実施形態では、白検出範囲による白検出手段と、肌検出範囲による肌色検出手段と、白検出範囲より第１の色温度情報を算出する手段と、前記肌検出範囲より第２の色温度情報を算出する手段と、被写体までの距離を測定する手段とを備え、前記第１の色温度情報と前記第２の色温度情報と前記距離情報を用いて、第３の色温度情報を算出する第３の色温度情報算出手段を備えている。
【００１２】
また、前記第３の色温度情報算出手段は、被写体までの距離情報を用いて前記第１の色温度情報と前記第２の色温度情報を加重平均する手段を備えていることが好ましい。
【００１３】
また、前記被写体までの距離を測定する手段は、被写体までの距離情報を入力する手段を備え、入力された距離情報又はＡＦ（オートフォーカス）、又はマニュアルフォーカスの距離情報を用いることが好ましい。
【００１４】
更に、第２の色温度情報を用いる条件として人肌アップの判定手段を備えていることが好ましい。
【００１５】
また、前記人肌アップの判定手段は、肌検出範囲を分割した小領域に存在する全ての肌ブロック数を積分した全肌ブロック数を求める手段と、前記全肌ブロック数を撮像素子からの全ブロック数で割った肌ブロック含有率を求める手段を備えていることが好ましい。
【００１６】
また、前記人肌アップの判定手段は、重力センサを備え重力センサの出力によって縦と判別した場合、画面の縦方向上側を人肌領域とする手段と、重力センサの出力によって横と判別した場合、画面の横方向上側を人肌領域とする手段を備えていることが好ましい。
【００１７】
また、前記人肌アップの判定手段は、前記人肌領域において分割されたブロックの色評価値群を肌検出し、肌検出範囲を分割した小領域に存在する全ての肌ブロック数を積分した中央肌ブロック数を求める手段と、前記中央肌ブロック数を前記人肌領域からの全ブロック数で割った中央肌ブロック含有率を求める手段を備えていることが好ましい。
【００１８】
また、前記人肌アップの判定手段は、前記肌ブロック含有率がある値以上でありかつ第１の色温度が第２の色温度よりも低くさらに前記中央肌ブロック含有率がある値以上であるときに、人肌アップの判定を真とし、前記肌ブロック含有率がある値以上である条件と、第１の色温度が第２の色温度よりも低い条件と、前記中央肌ブロック含有率がある値以上である条件のどれかひとつでも満たさない場合、人肌アップの判定を偽とすることが好ましい。
【００１９】
また、前記第３の色温度情報算出手段は、前記人肌アップの判定が真の場合前記第１の色温度情報と第２の色温度情報を加重平均して算出し、前記人肌アップの判定が偽の場合、前記第１の色温度情報を使う前記肌検出結果使用の判定手段を備えていることが好ましい。
【００２０】
また、第２の色温度情報を用いる条件として前記人肌アップの判定手段に加えて被写体の明るさ情報および例外処理判定を備えていることが好ましい。
【００２１】
また、前記肌色検出範囲は、肌色検出範囲を複数の小領域に分割する手段と、前記ブロックごとに求めた色評価値が各小領域に入る場合その数をカウントし、各小領域ごとに入った色評価値の総数を算出する手段とを備え、前記各小領域ごとの色評価値数により各小領域の色評価値に重み付けを行い、色温度情報を算出することが好ましい。
【００２２】
また、前記肌検出結果使用の判定手段は、被写体の輝度を測定する手段を備え、被写体の輝度が暗いときかつ前記人肌アップの判定条件が真のとき、肌検出結果使用の判定を真とし、前記被写体の輝度が暗い条件と前記人肌アップの判定条件のどれかひとつでも満たさない場合、前記肌検出結果使用の判定を偽とすることが好ましい。
【００２３】
また、前記第３の色温度情報算出手段は、前記肌検出結果使用の判定が真の場合前記第１の色温度情報と第２の色温度情報を加重平均して算出し、前記肌検出結果使用の判定が偽の場合、前記第１の色温度情報を使う前記肌検出結果使用の判定手段を備えていることが好ましい。
【００２４】
また、前記第３の色温度情報算出手段は、前記肌検出結果使用判定が真でありかつ前記肌ブロック含有率が前記肌検出結果使用判定で定めた値に比べてずっと大きい場合、光源の色温度を誤判別したと判定する手段を備え、判定が真なら例外処理を行い、判定が偽なら例外処理を行わない例外処理判定手段を備えていることが好ましい。
【００２５】
また、前記例外処理判定手段は、判定が真のとき肌検出は前記人肌領域でのブロックで行う手段と、判定が偽のとき肌検出は前記第２の色温度情報算出方法と同様、画面全体のブロックで行う手段を備えていることが好ましい。
【００２６】
また、前記被写体の輝度を測定する手段は、撮像素子の露光条件を利用して算出することが好ましい。
【００２７】
前記第３の色温度情報は、撮影モードを指定する手段を備え、撮影モードが人物撮影モードの場合、前記第１の色温度情報と第２の色温度情報を加重平均する手段において、第２の色温度情報に大きな重みをつける手段を備えていることが好ましい。
【００２８】
本実施形態によれば、肌色を低色温度の白色と誤認識することなく、良好な肌を表現することができる。特に第２の実施形態と第３の実施形態は画像処理にかかる時間およびコストを考慮して選択することができる。
【００２９】
（第１の実施形態）
図１は、本発明の実施形態に係わるホワイトバランス装置を備える撮像装置の概略構成を示すブロック図である。
【００３０】
図１において、レンズ１８を通過した光をＣＣＤ１９において受光し、ＣＣＤからの出力信号をＡ／Ｄ変換器２０においてデジタル信号にした後、本発明の実施形態のＷＢ回路６においてホワイトバランスをとり、色信号作成回路２１において色差信号Ｕ，Ｖを作成し、また、輝度信号作成回路において輝度信号Ｙを作成することで、カラー画像を得ることが可能である。
【００３１】
第１の実施形態で行う処理を図６にフローチャートとして示し、この図をもとに説明を行なう。
【００３２】
撮像素子からの信号を（Ｒ，Ｇ１，Ｇ２，Ｂ）を含むブロックに分割し、この最小単位を１ブロックとする。分割したブロックを図２に示す。次にこの１ブロックごとに、高色温度から低色温度までの光源下において、白色のＣｘ，Ｃｙを実験的に求め、２次元軸にプロットすると図３の白軸の様になる。ただし、Ｃｘ，Ｃｙは以下の式により算出できる。
【００３３】
Ｃｘ＝｛（Ｒ＋Ｇ２）−（Ｂ＋Ｇ１）｝／Ｙｉ
Ｃｙ＝｛（Ｒ＋Ｂ）／４−（Ｇ１−Ｇ２）／４｝／Ｙｉ
Ｙｉ＝（Ｒ＋Ｇ１＋Ｇ２＋Ｂ）／４                            …（１）
ここで、Ｘ軸は色温度を表し、Ｙ軸は緑方向補正量に対応している。従って、あるシーンの白色が例えば図３のＡの領域に入っている場合、光源は高色温度と判定することができる。また同様に、さまざまな光源下における人肌を撮影し、Ｃｘ，Ｃｙを実験的に求め、グラフ化した。肌軸により、図３のＡ領域が肌色に引っ張られＢ領域に分布しても、高色温度の光源であると判定できる。
【００３４】
これら２つの検出軸を用いて、ＷＢ係数を求める。このとき、撮像素子から得られた１ブロックごとにＣｘ，Ｃｙを算出し、白および肌検出領域に入っているか否かを判定する。さらに、両検出領域を複数に分割することで、各領域に入ったブロック数および各色フィルタの出力値（Ｒ，Ｇ１，Ｇ２，Ｂ）の積分値を算出する。各領域のブロック数および各色フィルタの出力値の積分値により、各領域の平均された各色フィルタの出力値を求めることができる。
【００３５】
Ｎｏｄｅ（ｎ）ａｖｅｒａｇｅＲ＝｛Ｎｏｄｅ（ｎ）ＳｕｍＲ｝／｛Ｎｏｄｅ（ｎ）Ｎｕｍ｝
Ｎｏｄｅ（ｎ）ａｖｅｒａｇｅＧ１＝｛Ｎｏｄｅ（ｎ）ＳｕｍＧ１｝／｛Ｎｏｄｅ（ｎ）Ｎｕｍ｝
Ｎｏｄｅ（ｎ）ａｖｅｒａｇｅＧ２＝｛Ｎｏｄｅ（ｎ）ＳｕｍＧ２｝／｛Ｎｏｄｅ（ｎ）Ｎｕｍ｝
Ｎｏｄｅ（ｎ）ａｖｅｒａｇｅＢ＝｛Ｎｏｄｅ（ｎ）ＳｕｍＢ｝／｛Ｎｏｄｅ（ｎ）Ｎｕｍ｝          …（２）
ただし、Ｎｏｄｅ（ｎ）は検出範囲をｎ個に分割したときのｎ番目の小領域を指す。式（２）を式（１）に代入することにより、各領域ごとのＣｘ，Ｃｙを求めることができる。Ｎｏｄｅ（ｎ）ａｖｅｒａｇｅＣｘＷ
Ｎｏｄｅ（ｎ）ａｖｅｒａｇｅＣｙＷ
Ｎｏｄｅ（ｎ）ａｖｅｒａｇｅＣｘＳ
Ｎｏｄｅ（ｎ）ａｖｅｒａｇｅＣｙＳ                            …（３）
前述したとおり、Ｃｘにより色温度が判定できる為、各領域ごとに色温度が求まる。
【００３６】
次に各領域の色温度結果から光源の色温度を求めるのだが、単純に各値を積分して求めても正確な値は求まらない。
【００３７】
まずステップＳ５０１における肌色検出による色温度算出方法について説明する。
【００３８】
例えば、各領域ごとに求まったブロック数、色評価値、色温度が図４で示した結果であるとする。図４から領域５に数多く色評価値が分布している為、光源の色温度は３０００Ｋ付近と予想できるが、単純に各領域において求まったＣｘの平均を取ると、
｛３×（−１５０）＋２０×１００｝／（３＋２０）＝６７．４
となり、Ｃｘは６０付近となって、色温度は４０００Ｋ付近であると誤判別してしまう。つまり、数少ない領域１の色温度が大きく関与してしまう。そこで、各領域に入ったブロック数が一番多いノードを比率１として、各ブロック数による重み付けを行った。図４の例では、領域１，２，３，４，５それぞれの重みは、０．１５，０，０，０，１である。この重み付けを加えることで図４の例においてもＣｘは約９５となり、予想された色温度である３０００Ｋに近い値となる。
【００３９】
次にステップＳ５０２における白色検出における重み付けを説明する。
【００４０】
室外の太陽の下で撮影を行った場合、非常に明るいためＢＶ値は大きい。また室外において光源は外光である為、色温度は限られてくる。そこで、明るいときにはノードを限定し、暗くなるにつれてカウントする小領域を増やすことで、重み付けを行った。これらの計算を行うことにより、白色検出範囲および肌色検出範囲それぞれから色温度を算出することができる。
【００４１】
さらに白軸と肌軸から求めた２つの色温度をどのように用いて、ホワイトバランス係数を求めるかについて説明する。
【００４２】
肌検出領域から求めた色温度情報が重要になるのは、シーンに白が少ない状態で人肌の占める面積が大きい場合である。このときに、白検出領域のみの白判定では、肌色を低色温度下の白色と誤判別する。また人肌の占める面積が大きい場合、カメラと被写体までの距離は近いため、この距離情報をもとに、白検出領域から求めた色温度と肌検出領域から求めた色温度との加重平均を行った。
【００４３】
この処理がステップＳ５０３である。例えば距離と重み付けの関数を図５のように定義したとする。この例では、被写体までの距離が１ｍ以下であるとき、肌軸使用率（Ｓｋｉｎｒａｔｅ）を１として肌検出領域から求めた色温度だけを使い、被写体までの距離が５ｍ以上なら肌軸使用率を０として、白検出領域から求めた色温度だけを使うことにする。さらに被写体までの距離が１ｍより大きく５ｍよりも小さい場合、比例計算により肌軸使用率を算出する。この肌軸使用率を用いて、白検出領域から求めた色温度と肌検出領域から求めた色温度との加重平均を行った。
【００４４】
Ｃｏｌｏｒｔｅｍｐ＝Ｓｋｉｎｒａｔｅ×Ｔｓ＋（１−Ｓｋｉｎｒａｔｅ）×Ｔｗ      …（４）
ただし、Ｔｗ，  Ｔｓ，  Ｓｋｉｎｒａｔｅ，  Ｃｏｌｏｒｔｅｍｐはそれぞれ白軸、肌軸から求めた色温度および肌軸使用率、ステップＳ５０５における第３の色温度である。またステップＳ５０４における距離情報を求める方法として、ＡＦ（オートフォーカス）またはマニュアルフォーカスによる手段を用いる。この理由は、ＡＦの場合カメラから照射した赤外光を被写体に反射させることで被写体までの距離情報を求め、この情報をもとにＡＦを行うからである。またマニュアルフォーカスの場合、ユーザが手動で被写体までの距離をカメラ側に入力するもしくは焦点距離を合わせるため、この入力された距離情報を用いることができる。
【００４５】
（第２の実施形態）
第２の実施形態で行う処理をフローチャートとして図８に示す。
【００４６】
本実施形態では、ステップＳ５０１と同様にして肌検出から求めた被写体色温度とステップＳ５０２と同様にして求めた白検出からの被写体色温度を加重平均する際、ステップＳ８０３の人肌アップであるか判定しこの判定が真であるときのみ行う点で異なる。また人肌アップの判定が真のときには、肌検出から求めた色温度を第３の色温度情報として用いることも可能である。
【００４７】
まず肌検出結果を使用するのは、肌に引っ張られ色温度を誤判別するときである。また肌に引っ張られるときは人肌がアップのときである。そこで、以下にステップＳ８０３の人肌アップの判定条件を示す。
（１）肌がアップである状態では、白軸から求めた色温度は肌軸から求めた色温度に比べて低い。このときに肌による引っ張られが生じている。
そこで、人肌がアップであるときは、
Ｔｗ＜Ｔｓ                …（５）
である。ただし、白軸から求めた色温度をＴｗ、肌軸から求めた色温度をＴｓとする。
（２）画面に対して肌色が数多く存在するときに、人肌がアップである状態であり肌による引っ張られが生じる。そこで、ブロック数のトータル数ＡｌｌＳａｍｐｌｅｎｕｍと肌検出領域に入ったブロック数のトータル数Ｓｋｉｎｎｕｍにより以下の式を用いて画面に何％肌が占めていたのか判定する。
【００４８】
Ｓｋｉｎｐｅｒｃｅｎｔ＝Ｓｋｉｎｎｕｍ／ＡｌｌＳａｍｐｌｅｎｕｍ            …（６）
画面に対する肌の割合（Ｓｋｉｎｐｅｒｃｅｎｔ）がある設定した値以上のとき、肌によるひっぱられが生じる。
（３）人を被写体として撮影する場合、人は画面中央に位置することが多い。またカメラに重力センサを設け、カメラを縦横どちらで撮影したのか判定できる機能を付随させる。この情報をもとに、カメラを縦にして撮影した場合、図７のように縦方向の上側におけるブロックを肌検出する。またカメラを横に撮影した場合、図８のように横方向上側におけるブロックを肌検出する。両者の肌検出を行うブロック領域を人肌領域と定義する。この領域において肌検出範囲に入った色評価値数をＬｉｍｉｔｓｋｉｎｎｕｍ、肌検出を行ったブロック領域をＬｉｍｉｔｓａｍｐｌｅｎｕｍとし、以下の式を用いて中央領域において何％肌が占めていたのかを判定する。
【００４９】
Ｌｉｍｉｔｓｋｉｎｐｅｒｃｅｎｔ＝Ｌｉｍｉｔｓｋｉｎｎｕｍ／Ｌｉｍｉｔｓａｍｐｌｅｎｕｍ
この割合がある設定した値以上のとき、人を被写体として撮影したと判定する。
【００５０】
条件（３）は人を被写体として撮影する場合はもちろん、肌検出結果の使用に歯止めをかける点で有用である。例えば、背景が肌検出範囲に入るような赤い色で、中央に白を含む物体を撮影したとする。このとき、（３）の条件がなければ、肌検出に含まれる色評価値が多いため、肌検出結果を最終色温度として使ってしまう。しかし、この場合、白を含む物体が存在しているため、白検出結果を用いたほうが、若干のひっぱられはあるにせよ正しい色温度を求めることができる。また人に限らず被写体は画面中央に位置することが多いため、被写体の色温度を特定する上で有用である。
【００５１】
（第３の実施形態）
第３の実施形態で行う処理をフローチャートとして図９に示す。
【００５２】
本実施形態では、ステップＳ５０１と同様にして肌検出から求めた被写体色温度とステップＳ５０２と同様にして求めた白検出からの被写体色温度を加重平均するとき、ステップＳ８０３の人肌アップの判定にさらに被写体の明るさ情報および例外処理判定を含みこれら全ての条件が真であるときに行う点で異なる。またこれらの条件が真のときには、肌検出から求めた色温度を第３の色温度情報として用いることも可能である。
【００５３】
上記の第２の実施形態に対して画像処理に時間を割くことができさらにコストをかけられるときに用いる手段であり、さらなる高画質化が期待される。
【００５４】
まず肌に引っ張られるときは、白検出を白軸全体に取るときであり、周りが暗い条件のときであることから、以下の条件を加える。
（１）シーンの明るさを表すＢＶ値が小さいときに肌検出結果を用いる。
【００５５】
第２の実施形態の人肌アップの条件および上記の条件を満たすときに、白軸と肌軸から求めた２つの色温度を加重平均し第３の色温度を求める。第２の実施形態の人肌アップの条件および上記の条件のどちらか１つでも満たさない場合は、白検出からの色温度結果を第３の色温度として用いる。上記条件（１）を付加させたことで、例えば夕日において白いビルなどを背景にして被写体を撮影した場合でもビルを肌と検出することなく、白検出からの色温度結果を第３の色温度として用いることが可能である。
【００５６】
また第２の実施形態の人肌アップ条件および上記条件（１）をまとめて肌検出結果使用判定と定義する。肌検出結果使用判定が真になるのは人肌アップ条件および上記条件（１）がともに真のときのみである。
【００５７】
しかし室内において低色温度下ではＢＶ値が低いため、肌検出結果を使用する判定を真としてしまい、良好な撮影を行うことができない。例えば飲み屋など暗くかつ低色温度下において、被写体を撮影する場合である。このとき、人肌も含めて、ほぼ画面全体が肌色検出範囲に入るため、周りの背景を肌検出範囲に入れてしまうからである。つまり背景を肌とみなすことで、光源を高色温度と誤判別する。そこで、この問題を解決するために、シーンが上記で説明した誤判別の状態であるかの判定を与えた。
【００５８】
（判定方法）
肌検出結果使用判定が真であり、かつ第２の実施形態における画面全体の人肌の割合が第２の実施形態の設定値と比べてずっと大きい場合、光源を誤判別する可能性がある。
【００５９】
この判定が真なら以下の例外処理を行う。
【００６０】
画面を重力センサの結果に応じて、図７、８のように中央領域を設定する。人を被写体として撮影する場合画面中央に撮影することが多いことから、中央領域におけるブロックのみ肌検出を行い、色温度を算出する。このことで、背景を肌検出範囲から除外することができる。
【００６１】
またこの判定が偽なら画面全体を肌検出して求めた色温度を用いる。
【００６２】
以上本実施形態では、肌検出結果を使用するか判定を行い色温度を算出する。また条件によっては例外処理を行うことで、低色温度光源下の室内においても、画面全体の背景を肌とすることなく、人を検出し色温度を算出することができる。
【００６３】
この方法により、以前には不可能であった、画面に全く白がない状態においても、人肌を良好に表現することができる。
【００６４】
以上説明したように、上記の実施形態によれば、従来のホワイトバランス装置に用いられる白検出手段に加え、肌検出手段を備えさらに被写体との距離情報をもとに加重平均を行うことで、人肌をアップで撮影して白の面積が少ない場合でも、人肌を良好に表現することが可能である。
【００６５】
なお、第１の実施形態の被写体までの距離情報を用いて、白肌検出から求まる色温度を加重平均するかどうかの判定を、第２の実施形態の人肌アップ判定条件および第３の実施形態の肌検出結果使用条件をもとに行うことで画面に全く白がない状態においても、人肌を良好に表現することができる。
【００６６】
【他の実施形態】
また、各実施形態の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６８】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【００６９】
【発明の効果】
以上説明したように、本発明によれば、撮影条件によらず、常に正確なホワイトバランスを取ることができるようになる。
【図面の簡単な説明】
【図１】本発明の実施形態のホワイトバランス装置を備える撮像装置の概略構成を示す図である。
【図２】色温度検出ブロックを示す図である。
【図３】白軸および肌軸を示す図である。
【図４】肌検出からの色温度算出例を示す図である。
【図５】肌軸使用率の算出関数を示す図である。
【図６】第１の実施形態の処理フローチャートである。
【図７】カメラを縦にして撮影したときの肌検出領域を示す図である。
【図８】カメラを横にして撮影したときの肌検出領域を示す図である。
【図９】第２の実施形態の処理フローチャートである。
【図１０】第３の実施形態の処理フローチャートである。
【符号の説明】
６  ホワイトバランス回路
１８  レンズ
１９  撮像素子
２０  Ａ／Ｄ変換器
２１  色信号作成回路
２２  輝度信号作成回路
【図１】
2004187147.tif 000003
【図２】
2004187147.tif 000004
【図３】
2004187147.tif 000005
【図４】
2004187147.tif 000006
【図５】
2004187147.tif 000007
【図６】
2004187147.tif 000008
【図７】
2004187147.tif 000009
【図８】
2004187147.tif 000010
【図９】
2004187147.tif 000011
【図１０】
2004187147.tif 000012