(57)【要約】【課題】画像において鏡面反射成分を抽出する領域を選定して、精度よく光源色推定を行う。【解決手段】光源が存在する撮影環境で被写体を撮影して得られた画像において光源の光源色を推定する光源色推定処理を行う際、画像処理部１０５は補助光を非発光として被写体を撮影して得られた第１の画像において光源による鏡面反射が生じている可能性がある鏡面反射候補領域と当該鏡面反射候補領域の周辺に位置する周辺領域とを検出し、第１の画像と補助光を発光させて被写体を撮影して得られた第２の画像とに基づいて前記補助光による反射光成分を抽出する。画像処理部は鏡面反射候補領域および辺領域における反射光成分を比較して鏡面反射候補領域が光源による鏡面反射が生じる鏡面反射領域であるか否かを特定し、特定した鏡面反射領域を用いて光源色推定処理を行う。【選択図】図１
2015015676.tif 000002
【特許請求の範囲】
【請求項１】
光源が存在する撮影環境で被写体を撮影して得られた画像において前記光源の光源色を推定する光源色推定処理を行う画像処理装置であって、
予め定められた補助光を非発光として前記被写体を撮影して得られた第１の画像において前記光源による鏡面反射が生じている可能性がある鏡面反射候補領域と当該鏡面反射候補領域の周辺に位置する周辺領域とを検出する鏡面反射領域検出手段と、
前記第１の画像と前記補助光を発光させて前記被写体を撮影して得られた第２の画像とに基づいて前記補助光による反射光成分を抽出する反射光抽出手段と、
前記鏡面反射候補領域および前記周辺領域における前記反射光成分を比較して、当該比較結果に応じて前記鏡面反射候補領域が前記光源による鏡面反射が生じる鏡面反射領域であるか否かを特定する特定手段と、
前記鏡面反射領域を用いて前記光源色推定処理を行う光源色推定手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記鏡面反射領域検出手段は、前記鏡面反射の候補領域から所定の範囲に位置する領域を前記周辺領域とすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記鏡面反射領域検出手段は、前記第１の画像における画素を順に対象画素として当該対象画素の画素値と予め定められた範囲にある他の画素の画素値との差分が所定の第１の閾値よりも大きいと、前記対象画素を前記鏡面反射候補領域とすることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記鏡面反射領域検出手段は、前記対象画素の画素値と前記他の画素の画素値との差分が所定の閾値以下であると、前記対象画素を前記周辺領域とすることを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記特定手段は、前記鏡面反射候補領域における反射光成分と前記周辺領域における反射光成分との差分が所定の第２の閾値よりも小さいと、前記鏡面反射候補領域を前記鏡面反射領域と特定することを特徴とする請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
前記光源色推定手段は、前記光源色推定処理として前記鏡面反射領域における前記光源の反射光と前記周辺領域における前記光源の反射光の差分を算出して、当該差分に応じて光源色の推定を行うことを特徴とする請求項１〜５のいずれか１項に記載の画像処理装置。
【請求項７】
前記光源による鏡面反射領域と前記補助光による鏡面反射領域が重複しないように前記補助光を発光する位置を調整する調整手段を有することを特徴とする請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項８】
前記調整手段は、前記鏡面反射候補領域における反射光成分と前記周辺領域における反射光成分との差分が前記補助光の色相と補助光との比較結果に応じて前記補助光の照射方向が光源の照射方向と重複するか否かを判定することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
光源が存在する撮影環境で被写体を撮影して得られた画像において前記光源の光源色を推定する光源色推定処理を行う画像処理装置の制御方法であって、
予め定められた補助光を非発光として前記被写体を撮影して得られた第１の画像において前記光源による鏡面反射が生じている可能性がある鏡面反射候補領域と当該鏡面反射候補領域の周辺に位置する周辺領域とを検出する鏡面反射領域検出ステップと、
前記第１の画像と前記補助光を発光させて前記被写体を撮影して得られた第２の画像とに基づいて前記補助光による反射光成分を抽出する反射光抽出ステップと、
前記鏡面反射候補領域および前記周辺領域における前記反射光成分を比較して、当該比較結果に応じて前記鏡面反射候補領域が前記光源による鏡面反射が生じる鏡面反射領域であるか否かを特定する特定ステップと、
前記鏡面反射領域を用いて前記光源色推定処理を行う光源色推定ステップと、
を有することを特徴とする制御方法。
【請求項１０】
光源が存在する撮影環境で被写体を撮影して得られた画像において前記光源の光源色を推定する光源色推定処理を行う画像処理装置で用いられる制御プログラムであって、
前記画像処理装置が備えるコンピュータに、
予め定められた補助光を非発光として前記被写体を撮影して得られた第１の画像において前記光源による鏡面反射が生じている可能性がある鏡面反射候補領域と当該鏡面反射候補領域の周辺に位置する周辺領域とを検出する鏡面反射領域検出ステップと、
前記第１の画像と前記補助光を発光させて前記被写体を撮影して得られた第２の画像とに基づいて前記補助光による反射光成分を抽出する反射光抽出ステップと、
前記鏡面反射候補領域および前記周辺領域における前記反射光成分を比較して、当該比較結果に応じて前記鏡面反射候補領域が前記光源による鏡面反射が生じる鏡面反射領域であるか否かを特定する特定ステップと、
前記鏡面反射領域を用いて前記光源色推定処理を行う光源色推定ステップと、
を実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、その制御方法、および制御プログラムに関し、特に、画像に存在する被写体（被写体像）を照明する光源の色を推定する光源色推定処理を行う画像処理装置に関する。
【背景技術】
【０００２】
一般に、デジタルカメラなどの撮像装置において、２色性反射モデルに基づいて光源色の推定を行う画像処理装置を備えるものが知られている。２色性反射モデルは、物体からの反射光が鏡面反射成分と拡散反射成分とから成り立つとするモデルである。
【０００３】
鏡面反射成分は、光源色に依存する特徴を有するので、反射光から鏡面反射成分を抽出することによって光源色の推定を行うことができる。
【０００４】
例えば、入力画像の近接する画素間において画像値の差分を求めて、当該差分から鏡面反射成分を抽出して光源色推定を行うようにした画像処理装置がある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１３４１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、特許文献１に記載の画像処理装置においては、画素間に輝度差分が存在する場合に鏡面反射が生じていると看做して光源色推定を行うようにしている。
【０００７】
しかしながら、輝度差分は必ずしも鏡面反射成分に起因するとは限らず、例えば、赤色被写体と黒色被写体との境界付近における物体色の差に起因して輝度差分が存在することがある。
【０００８】
このように、輝度差分が鏡面反射成分に依存しないと、輝度差分から鏡面反射成分を抽出することができず、結果的に精度よく光源色推定を行うことができないことになる。
【０００９】
従って、本発明の目的は、画像において鏡面反射成分を抽出する領域を選定して、精度よく光源色推定を行うことができる画像処理装置、その制御方法、および制御プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記の目的を達成するため、本発明による画像処理装置は、光源が存在する撮影環境で被写体を撮影して得られた画像において前記光源の光源色を推定する光源色推定処理を行う画像処理装置であって、予め定められた補助光を非発光として前記被写体を撮影して得られた第１の画像において前記光源による鏡面反射が生じている可能性がある鏡面反射候補領域と当該鏡面反射候補領域の周辺に位置する周辺領域とを検出する鏡面反射領域検出手段と、前記第１の画像と前記補助光を発光させて前記被写体を撮影して得られた第２の画像とに基づいて前記補助光による反射光成分を抽出する反射光抽出手段と、前記鏡面反射候補領域および前記周辺領域における前記反射光成分を比較して、当該比較結果に応じて前記鏡面反射候補領域が前記光源による鏡面反射が生じる鏡面反射領域であるか否かを特定する特定手段と、前記鏡面反射領域を用いて前記光源色推定処理を行う光源色推定手段と、を有することを特徴とする。
【００１１】
本発明による制御方法は、光源が存在する撮影環境で被写体を撮影して得られた画像において前記光源の光源色を推定する光源色推定処理を行う画像処理装置の制御方法であって、予め定められた補助光を非発光として前記被写体を撮影して得られた第１の画像において前記光源による鏡面反射が生じている可能性がある鏡面反射候補領域と当該鏡面反射候補領域の周辺に位置する周辺領域とを検出する鏡面反射領域検出ステップと、前記第１の画像と前記補助光を発光させて前記被写体を撮影して得られた第２の画像とに基づいて前記補助光による反射光成分を抽出する反射光抽出ステップと、前記鏡面反射候補領域および前記周辺領域における前記反射光成分を比較して、当該比較結果に応じて前記鏡面反射候補領域が前記光源による鏡面反射が生じる鏡面反射領域であるか否かを特定する特定ステップと、前記鏡面反射領域を用いて前記光源色推定処理を行う光源色推定ステップと、を有することを特徴とする。
【００１２】
本発明による制御プログラムは、光源が存在する撮影環境で被写体を撮影して得られた画像において前記光源の光源色を推定する光源色推定処理を行う画像処理装置で用いられる制御プログラムであって、前記画像処理装置が備えるコンピュータに、予め定められた補助光を非発光として前記被写体を撮影して得られた第１の画像において前記光源による鏡面反射が生じている可能性がある鏡面反射候補領域と当該鏡面反射候補領域の周辺に位置する周辺領域とを検出する鏡面反射領域検出ステップと、前記第１の画像と前記補助光を発光させて前記被写体を撮影して得られた第２の画像とに基づいて前記補助光による反射光成分を抽出する反射光抽出ステップと、前記鏡面反射候補領域および前記周辺領域における前記反射光成分を比較して、当該比較結果に応じて前記鏡面反射候補領域が前記光源による鏡面反射が生じる鏡面反射領域であるか否かを特定する特定ステップと、前記鏡面反射領域を用いて前記光源色推定処理を行う光源色推定ステップと、を実行させることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、第１の画像において鏡面反射候補領域とその周辺領域とを検出し、第１の画像と第２の画像とに基づいて補助光による反射光成分を抽出する。そして、鏡面反射候補領域および周辺領域における反射光成分を比較して、鏡面反射候補領域が光源による鏡面反射が生じる鏡面反射領域であるか否かを特定し、鏡面反射領域を用いて光源色推定処理を行うようにしたので、精度よく光源色推定を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態による画像処理装置の一例である撮像装置の構成を説明するためのブロック図であり、（ａ）は撮像装置の構成を示すブロック図、（ｂ）は（ａ）に示す画像処理部の構成を示すブロック図である。
【図２】図１に示すカメラによる被写体の撮影の一例を説明するための図である。
【図３】図１に示すカメラで行われる光源色推定処理を説明するためのフローチャートである。
【図４】図３に示す鏡面反射候補領域および周辺領域検出処理を説明するためのフローチャートである。
【図５】図３に示す反射光抽出処理を説明するためのフローチャートである。
【図６】図１（ａ）に示すカメラに備えられた第１の差分および第２の差分を格納するための反射光データ格納領域の一例を示す図である。
【図７】図３に示す鏡面反射領域特定処理を説明するためのフローチャートである。
【図８】図３に示すホワイトバランスゲイン算出処理を説明するためのフローチャートである。
【図９】本発明の第２の実施形態によるカメラで行われる光源色推定処理を説明するためのフローチャートである。
【図１０】本発明の第２の実施形態によるカメラに備えられた画像処理部で行われる画像の分割を示す図である。
【図１１】図９に示す鏡面反射候補領域および周辺領域検出処理を説明するためのフローチャートである。
【図１２】図１１に示すグループ分割処理を説明するためのフローチャートである。
【図１３】本発明の第２の実施形態による画像処理部で行われる画素のグループ分類の結果を示す分類テーブル（データ構造）の一例を説明するための図である。
【図１４】図９に示す補助光の反射光抽出処理を説明するためのフローチャートである。
【図１５】本発明の第２の実施形態によるカメラに備えられた反射光データ格納領域の一例を示す図である。
【図１６】図９に示す鏡面反射領域特定処理を説明するためのフローチャートである。
【図１７】鏡面反射領域であると特定したブロックに対してフラグを格納するフラグ格納領域の一例を示す図である。
【図１８】図９に示すホワイトバランスゲイン算出処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態による画像処理装置の一例について図面を参照して説明する。なお、ここでは、画像処理装置の一つであるデジタルカメラなどの撮像装置を例に挙げて説明する。
【００１６】
［第１の実施形態］
図１は、本発明の第１の実施形態による画像処理装置の一例である撮像装置の構成を説明するためのブロック図である。そして、図１（ａ）は撮像装置の構成を示すブロック図であり、図１（ｂ）は図１（ａ）に示す画像処理部の構成を示すブロック図である。
【００１７】
図示の撮像装置は、例えば、デジタルカメラ（以下単にカメラと呼ぶ）１００であり、撮影レンズユニット（以下単に撮影レンズと呼ぶ）１０１を備えている。撮影レンズ１０１の後段には、絞り機能を備えるシャッター１０２が配置されている。撮影レンズ１０１を介して入射した被写体像（光学像）は撮像部１０３に結像する。
【００１８】
撮像部１０３はＣＣＤ又はＣＭＯＳ素子などの撮像素子を有しており、光学像に応じた電気信号（アナログ画像信号）を出力する。このアナログ画像信号はＡ／Ｄ変換器１０４によってデジタル画像信号に変換して、当該デジタル画像信号を画像処理部１０５に与える。
【００１９】
画像処理部１０５は、デジタル画像信号に応じてＴＴＬ（スルー・ザ・レンズ）方式のＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理、およびＥＦ（フラッシュプリ発光）処理を行う。さらに、画像処理部１０５はデジタル画像信号に対してＡＷＢ（オートホワイトバランス）処理などを行って、画像データとして出力する。
【００２０】
メモリ制御部１０７はシステム制御部１１０の制御下でメモリ１０６を制御して、画像処理部１０５で得られた画像データを所定の形式でメモリ１０６に書き込む。さらに、メモリ制御部１０７はＡ／Ｄ変換器１０４の出力であるデジタル画像信号を受けて、Ｄ／Ａ変換器１０８を介して当該デジタル画像信号に応じた画像を表示部１０９に表示する。
【００２１】
また、メモリ制御部１０７はメモリ１０６に記録された画像データを読み込んで、Ｄ／Ａ変換器１０８を介して当該画像データに応じた画像を表示部１０９に表示する。
【００２２】
不揮発性メモリ１２４は、電気的に消去および記録可能なメモリであって、例えば、ＥＥＰＲＯＭが用いられる。そして、不揮発性メモリ１２４には、システム制御部１１０の動作用の定数およびプログラムなどが記憶される。ここで、プログラムとは、例えば、後述するフローチャートを実行するためのプログラムである。
【００２３】
システム制御部１１０はカメラ１００全体の制御を司る。システム制御部１１０は不揮発性メモリ１２４に記録されたプログラムを実行して、後述する各処理を行う。システムメモリ１２５には、例えば、ＲＡＭが用いられる。システムメモリ１２５には、システム制御部１１０の動作用の定数、変数、および不揮発性メモリ１２４から読み出されたプログラムなどを展開される。
【００２４】
なお、システム制御部はメモリ１０７、Ｄ／Ａ変換器１０８、および表示部１０９などを制御して表示制御を行う。
【００２５】
カメラ１００にはインタフェース（Ｉ／Ｆ）１１１が備えられており、このＩ／Ｆ１１１には画像データを記録するための記録媒体１１２が接続される。さらに、システム制御部１１０には、操作部１２０、電源スイッチ１２１、および電源制御部１２２が接続され、電源制御部１２２には電源部（例えば、電池）１２３が接続されている。また、カメラ１００には、補助光発光装置２０１が着脱可能に取り付けられており、システム制御部１１０は補助光発光装置２０１を発光制御する。
【００２６】
操作部１２０はユーザによって操作され、ユーザは操作部１２０を用いてカメラ１００の動作を指示する。電源制御部１２２は電源部１２１からシステム制御部１１０に電力を供給するとともに、電源部１２１の装着の有無、電源部１２１の種類、および電池残量の検出を行う。
【００２７】
図１（ｂ）に示すように、画像処理部１０５は、鏡面反射候補領域検出部１３１、反射光検出部１３２、鏡面反射領域特定部１３３、およびホワイトバランス（ＷＢ）ゲイン算出部１３４を有している。なお、画像処理部１０５における光源色推定処理については後述する。
【００２８】
図２は、図１に示すカメラ１００による被写体の撮影の一例を説明するための図である。
【００２９】
ここでは、カメラ１００によって撮影対象の被写体２０２を撮影しようとする。図示の撮影環境では、色温度が不明である光源２００が存在する。補助光発光装置２０１はカメラ１００による撮影と同期して発光する。この補助光発光装置２０１による発光の色温度は既知である。
【００３０】
ここで、図１に示すカメラ１００において被写体２０２を撮影する際の動作について概説する。
【００３１】
前述のように、撮像部１０３は、撮影レンズ１０１およびシャッター１０２を介して入射した光学像に応じたアナログ画像信号を出力する。そして、Ａ／Ｄ変換器１０４は当該アナログ画像信号をデジタル画像信号に変換して、画像処理部１０５に出力する。
【００３２】
画像処理部１０５は、Ａ／Ｄ変換器１０４の出力であるデジタル画像信号又はメモリ制御部１０７から送られる画像データに対して、ガンマ処理およびノイズリダクション処理などを行う。また、画像処理部１０５は後述する光源色推定処理を行って、ＡＷＢ（オートホワイトバランス）処理を行う。
【００３３】
画像処理部１０５の出力である画像データは、システム制御部１１０の制御下でＩ／Ｆ１１１を介して記録媒体１１２に記録される。前述のように、補助光発光装置２０１はシステム制御部１１０によって制御され、撮影に同期して補助光を発光する。
【００３４】
ここで、図１（ｂ）を参照して、光源色推定処理について説明する。なお、図１（ｂ）においては、光源色推定処理に必要なブロックのみが示されている。
【００３５】
鏡面反射候補領域検出部１３１は、メモリ制御部１０７から送られた画像データについて光源による鏡面反射が生じている可能性がある鏡面反射候補領域とその周辺領域とを検出して、鏡面反射候補領域検出結果としてメモリ１０６に格納する。
【００３６】
反射光抽出部１３２は、鏡面反射候補領域検出部１３１による鏡面反射候補領域検出結果および画像データに基づいて、補助光発光装置２０１から照射されて被写体２０２などで反射した光の反射光を抽出して、反射光抽出結果としてメモリ１０６に格納する。
【００３７】
鏡面反射領域特定部１３３は、反射光抽出部１３２で抽出された反射光抽出結果に基づいて、鏡面反射候補領域から鏡面反射領域を特定して、鏡面反射領域特定結果としてメモリ１０６に格納する。ホワイトバランスゲイン算出部１３４は鏡面反射領域特定部１３３で特定された鏡面反射領域特定結果に基づいてホワイトバランスゲインを算出する。
【００３８】
このように、画像処理部１０５は鏡面反射候補領域を検出して、補助光による反射光を用いて、鏡面反射候補領域から鏡面反射領域を特定して光源色推定を行う。
【００３９】
図３は、図１に示すカメラ１００で行われる光源色推定処理を説明するためのフローチャートである。なお、図示のフローチャートに係る処理はシステム制御部１１０の制御下で行われる。
【００４０】
いま、ユーザによって操作部１２０に備えられたシャッターボタンが押されると、システム制御部１１０は補助光発光装置２０１による発光を停止した状態で、Ａ／Ｄ変換器１０４からの出力であるデジタル画像信号を画像処理部１０５に送る。
【００４１】
なお、ここでは、補助光発光装置２０１の発光を停止した状態（非発光）で得られたデジタル画像信号を第１の画像と呼ぶ。
【００４２】
続いて、システム制御部１１０は、第１の画像を取得した後、所定の時間内に補助光発光装置２０１を発光させて、Ａ／Ｄ変換器１０４の出力であるデジタル画像信号を画像処理部１０５に送る。
【００４３】
なお、ここでは、補助光発光装置２０１を発光させた状態で得られたデジタル画像信号を第２の画像と呼ぶ。但し、第１および第２の画像を撮影する際には、補助光発光装置２０１の発光および非発光以外の撮影条件は変更せず、第２の画像を撮影する際において飽和した領域は光源色推定処理に用いないものとする。
【００４４】
上述のようにして、システム制御部１１０は第１および第２の画像を撮影して（ステップＳ３０１）、これら第１および第２の画像を画像処理部１０５に送る。
【００４５】
続いて、画像処理部１０５において、鏡面反射候補領域検出部１３１は、第１の画像から、被写体２０２を照らす光源２００によって生じる鏡面反射の候補領域と周辺領域とを検出する（ステップＳ３０２）。なお、ステップＳ３０２による処理は後述する。
【００４６】
次に、反射光抽出部１３２は第１の画像および第２の画像からそれぞれ補助光の反射光を抽出する（ステップＳ３０３）。そして、鏡面反射領域特定部１３３はステップＳ３０３で抽出された補助光の反射光（つまり、鏡面反射候補領域における反射光成分と周辺領域における反射光成分との比較結果）に基づいて、第１および第２の画像における各画素が鏡面反射領域であるか否かを特定する（ステップＳ３０４）。
【００４７】
続いて、ホワイトバランスゲイン算出部１３４は、ステップＳ３０４で鏡面反射領域であると特定された画素に応じてホワイトバランスゲインを算出して（ステップＳ３０５）、光源色推定処理を終了する。
【００４８】
図４は、図３に示す鏡面反射候補領域および周辺領域検出処理を説明するためのフローチャートである。
【００４９】
領域検出処理を開始すると、鏡面反射候補領域検出部１３１は第１の画像において全画素について順次ループして（ステップＳ４０１）、ステップＳ４０２〜Ｓ４０３の処理を全画素について行う。鏡面反射候補領域検出部１３１は第１の画像において対象画素における画素値が当該対象画素の近傍画素の画素値よりも大きいか否かを判定する（ステップＳ４０２）。
【００５０】
ここでは、近傍画素として、対象画素を基準として左、右、上、および下のいずれか１方向に所定のｄ画素分離れた画素が近傍画素として選択される。なお、ｄは、例えば、１０又は２０が用いられるが、ｄの値は適宜変更してよい。
【００５１】
いま、対象画素の画素値をＰ（ｉ，ｊ）で表すと、対象画素から左にｄ画素離れた画素の画素値はＰ（ｉ，ｊ−ｄ）と表すことができる。この両者の画素値の大きさを比較する際には、ノイズの影響を考慮して、所定の閾値Ｔ１（第１の閾値）を用いて次の式（１）を満たす場合には、つまり、差分が閾値Ｔ１よりも大きいと、鏡面反射候補領域検出部１３１は対象画素の画素値が近傍画素の画素値よりも大きいと判定する。
【００５２】
Ｐ（ｉ，ｊ）−Ｐ（ｉ，ｊ−ｄ）＞Ｔ１      （１）
画素値としてＲＧＢを用いる際には、式（１）の代わりに次の式（２）〜式（４）を用いて、式（２）〜式（４）を満たす場合には、鏡面反射候補領域検出部１３１は対象画素の画素値が近傍画素の画素値よりも大きいと判定する。
【００５３】
なお、画素値としてＲＧＢを用いる場合、閾値Ｔ１のＲ成分をＴ１．Ｒとし、ＧおよびＢについても同様に閾値をＴ１．ＧおよびＴ１．Ｂとする。
【００５４】
Ｐ（ｉ，ｊ）．Ｒ−Ｐ（ｉ，ｊ−ｄ）．Ｒ＞Ｔ１．Ｒ      （２）
Ｐ（ｉ，ｊ）．Ｇ−Ｐ（ｉ，ｊ−ｄ）．Ｇ＞Ｔ１．Ｇ      （３）
Ｐ（ｉ，ｊ）．Ｂ−Ｐ（ｉ，ｊ−ｄ）．Ｂ＞Ｔ１．Ｂ      （４）
上述の例では、近傍画素として対象画素から左にｄ画素離れた画素を選択した場合について説明したが、近傍画素として対象画素から右、上、又は下にｄ画素離れた画素を選択した際においても同様にして比較が行われる。
【００５５】
なお、画素値としてＲＧＢを用いて比較を行う代わりに、ＲＧＢから輝度を算出して、当該輝度によって比較するようにしてもよい。
【００５６】
対象画素の画素値が近傍画素の画素値以下であると（ステップＳ４０２において、ＮＯ）、つまり、差分が閾値以下であると、鏡面反射候補領域検出部１３１は次の画素を対象画素としてステップＳ４０２の処理を行う。
【００５７】
一方、対象画素の画素値が近傍画素の画素値より大きいと（ステップＳ４０２において、ＹＥＳ）、つまり、近傍画素値と対象画素値との差分が閾値Ｔ１よりも大きいと、鏡面反射候補領域検出部１３１は当該対象画素を鏡面反射候補領域として、その近傍画素を周辺領域として検出する（ステップＳ４０３）。
【００５８】
上述のようにして、全ての画素についてステップＳ４０２およびＳ４０３の処理を行うと、鏡面反射候補領域検出部１３１は全画素ループ端に達したとして（ステップＳ４０４）、鏡面反射候補領域および周辺領域検出処理を終了する。
【００５９】
図５は、図３に示す反射光抽出処理を説明するためのフローチャートである。
【００６０】
反射光検出処理を開始すると、反射光抽出部１３２は第１および第２の画像の各々において全画素について順次ループして（ステップＳ５０１）、ステップＳ５０２〜Ｓ５０４の処理を全画素について行う。まず、反射光抽出部１３２は、図３に示すステップＳ３０２において対象画素が鏡面反射候補領域とされたか否かを判定する（ステップＳ５０２）。
【００６１】
対象画素が鏡面反射候補領域でないと（ステップＳ５０２において、ＮＯ）、反射光抽出部１３２は次の画素を対象画素としてステップＳ５０２の処理を行う。
【００６２】
一方、対象画素が鏡面反射候補領域であると（ステップＳ５０２において、ＹＥＳ）、反射光抽出部１３２は第１および第２の画像において対応する対象画素の画素値の差分を求める（ステップＳ５０３）。ここでは、反射光抽出部１３２は対象画素について第２の画像の画素値から第１の画像の画素値を減算して差分Ｄ１（ｉ，ｊ）を求めて、当該差分（第１の差分）Ｄ１（ｉ，ｊ）を鏡面反射候補領域における補助光の反射光データ（反射光成分ともいう）とする。
【００６３】
なお、画素値はＲＧＢで表されるので、差分を算出する際には、反射光抽出部１３２は次の式（５）〜式（７）を用いて差分を算出する。
【００６４】
Ｄ１（ｉ，ｊ）．Ｒ＝Ｑ（ｉ，ｊ）．Ｒ−Ｐ（ｉ，ｊ）．Ｒ      （５）
Ｄ１（ｉ，ｊ）．Ｇ＝Ｑ（ｉ，ｊ）．Ｇ−Ｐ（ｉ，ｊ）．Ｇ      （６）
Ｄ１（ｉ，ｊ）．Ｂ＝Ｑ（ｉ，ｊ）．Ｂ−Ｐ（ｉ，ｊ）．Ｂ      （７）
ここで、Ｄ１（ｉ，ｊ）は差分、Ｐ（ｉ，ｊ）は第１の画像の画素、Ｑ（ｉ，ｊ）は第２の画像の画素を示す。
【００６５】
なお、ステップＳ５０３の処理で得られた差分Ｄ１（ｉ，ｊ）は、後述する対象画素の鏡面反射候補領域に格納される。
【００６６】
続いて、反射光抽出部１３２は対象画素に係る近傍画素について第２の画像の画素値から第１の画像の画素値を減算して差分Ｄ２（ｉ，ｊ）を求める。そして、反射光抽出部１３２は当該差分（第２の差分）Ｄ２（ｉ，ｊ）を周辺領域における補助光の反射光データとする。
【００６７】
図６は、図１（ａ）に示すカメラ（ここでは、例えば、メモリ１０６）に備えられた第１の差分Ｄ１（ｉ，ｊ）および第２の差分Ｄ２（ｉ，ｊ）を格納するための反射光データ格納領域の一例を示す図である。
【００６８】
図示の反射光データ格納領域は、鏡面反射候補領域欄および周辺領域欄を有しており、鏡面反射候補領域欄には第１の差分Ｄ１（ｉ，ｊ）が対象画素（画素Ｎｏ）毎に記録される。さらに、周辺領域欄には第２の差分Ｄ２（ｉ，ｊ）が対象画素毎に記録される。
【００６９】
なお、図６において、ｉ＝０〜Ｌ（Ｌは２以上の整数）であり、ｊ＝０〜Ｎ（Ｎは２以上の整数）である。
【００７０】
第２の差分Ｄ２（ｉ，ｊ）の算出手法については、第１の差分Ｄ１（ｉ，ｊ）の算出手法と同様であるため、ここでは説明を省略する。また、近傍画素を複数選択している場合には、近傍画素毎に算出した第２の差分Ｄ２（ｉ，ｊ）の平均値が対象画素の周辺領域に格納される。
【００７１】
上述のようにして、全ての画素についてステップＳ５０２〜Ｓ５０４の処理を行うと、反射光抽出部１３２は全画素ループ端に達したとして（ステップＳ５０５）、反射光抽出処理を終了する。
【００７２】
図７は、図３に示す鏡面反射領域特定処理を説明するためのフローチャートである。
【００７３】
鏡面反射領域特定処理を開始すると、鏡面反射領域特定部１３３は第１および第２の画像の各々において全画素について順次ループして（ステップＳ６０１）、ステップＳ６０２〜Ｓ６０４の処理を全画素について行う。
【００７４】
まず、鏡面反射領域特定部１３３は、図３に示すステップＳ３０２において対象画素が鏡面反射候補領域とされたか否かを判定する（ステップＳ６０２）。対象画素が鏡面反射候補領域でないと（ステップＳ６０２において、ＮＯ）、鏡面反射領域特定部１３３は次の画素を対象画素としてステップＳ６０２の処理を行う。
【００７５】
一方、対象画素が鏡面反射候補領域であると（ステップＳ６０２において、ＹＥＳ）、鏡面反射領域特定部１３３は対象画素とその近傍画素とにおいて補助光の反射光のレベルが近似するか否かを判定する（ステップＳ６０３）。
【００７６】
ここでは、鏡面反射領域特定部１３３は所定の閾値Ｔ２（第２の閾値）と前述の反射光のデータ（つまり、第１および第２の差分）とを用いて、次の式（８）が満たされると、対象画素とその近傍画素とにおいて補助光の反射光のレベルが近似すると判定する。
【００７７】
｜Ｄ１（ｉ，ｊ）−Ｄ２（ｉ，ｊ）｜＜Ｔ２      （８）
なお、画素値がＲＧＢで表される場合には、式（８）の代わりに、所定の閾値Ｔ２Ｒ、Ｔ２Ｇ、およびＴ２Ｂを用いて、鏡面反射領域特定部１３３は次の式（９）〜式（１１）の全てが満たされると、対象画素とその近傍画素とにおいて補助光の反射光のレベルが近似すると判定する。
【００７８】
｜Ｄ１（ｉ，ｊ）．Ｒ−Ｄ２（ｉ，ｊ）．Ｒ｜＜Ｔ２Ｒ      （９）
｜Ｄ１（ｉ，ｊ）．Ｇ−Ｄ２（ｉ，ｊ）．Ｇ｜＜Ｔ２Ｇ      （１０）
｜Ｄ１（ｉ，ｊ）．Ｂ−Ｄ２（ｉ，ｊ）．Ｂ｜＜Ｔ２Ｂ      （１１）
対象画素とその近傍画素とにおいて補助光の反射光のレベルが近似しないと（ステップＳ６０３において、ＮＯ）、鏡面反射領域特定部１３３はステップＳ６０２の処理に戻って、次の画素を対象画素としてステップＳ６０２の処理を行う。
【００７９】
一方、対象画素とその近傍画素とにおいて補助光の反射光のレベルが近似すると（ステップＳ６０３において、ＹＥＳ）、つまり、上記の式（８）が満たされると、鏡面反射領域特定部１３３は鏡面反射候補領域と周辺領域とは補助光の拡散反射率がほぼ等しく、同一被写体であると推定する。
【００８０】
そして、鏡面反射領域特定部１３３は、鏡面反射領域が存在するため、鏡面反射候補領域における光源２００の反射光と周辺領域における光源２００の反射光とに差が生じるとして、鏡面反射候補領域は鏡面反射領域であると特定する（ステップＳ６０４）。
【００８１】
なお、式（８）を満たさない場合には、鏡面反射領域特定部１３３は鏡面反射候補領域と周辺領域とは異なる被写体であるとして、鏡面反射候補領域は鏡面反射領域ではないとする。
【００８２】
上述のようにして、全ての画素についてステップＳ６０２〜Ｓ６０４の処理を行うと、鏡面反射領域特定部１３３は全画素ループ端に達したとして（ステップＳ６０５）、鏡面反射領域特定処理を終了する。
【００８３】
図８は、図３に示すホワイトバランスゲイン算出処理を説明するためのフローチャートである。
【００８４】
ホワイトバランスゲイン算出処理を開始すると、ＷＢゲイン算出部１３４は第１および第２の画像の各々において全画素について順次ループして（ステップＳ７０１）、ステップＳ７０２およびＳ７０３の処理を全画素について行う。
【００８５】
まず、ＷＢゲイン算出部１３４は図３に示すステップＳ３０４において対象画素が鏡面反射領域と特定されたか否か否かを判定する（ステップＳ７０２）。対象画素が鏡面反射領域として特定されないと（ステップＳ７０２において、ＮＯ）、ＷＢゲイン算出部１３４は次の画素を対象画素としてステップＳ７０２の処理を行う。
【００８６】
一方、対象画素が鏡面反射領域として特定されると（ステップＳ７０２において、ＹＥＳ）、ＷＢゲイン算出部１３４は第１の画像における対象画素の画素値ＲＧＢを用いて次の式（１２）および式（１３）に基づいて、当該対象画素に係るホワイトバランスゲインを算出する（ステップＳ７０３）。
【００８７】
ＧａｉｎＲ＝Ｇ／Ｒ      （１２）
ＧａｉｎＢ＝Ｇ／Ｂ      （１３）
そして、鏡面反射領域として特定された対象画素についてホワイトバランスゲインを次の式（１４）および式（１５）を用いて加算処理する。
【００８８】
ＳｕｍＧａｉｎＲ＝ΣＧａｉｎＲ      （１４）
ＳｕｍＧａｉｎＢ＝ΣＧａｉｎＢ      （１５）
ここでは、ＷＢゲイン算出部１３４は加算処理を行う都度、加算画素数カウンタ（Ｃｏｕｎｔ）を１ずつインクリメントする。
【００８９】
上述のようにして、全ての画素についてステップＳ７０２およびＳ７０３の処理を行うと、ＷＢゲイン算出部１３４は全画素ループ端に達したとして（ステップＳ７０４）、次の式（１６）および式（１７）に従って、画像全体におけるホワイトバランスゲインを算出する（ステップＳ７０５）。そして、ＷＢゲイン算出部１３４はホワイトバランスゲイン算出処理を終了する。つまり、ＷＢゲイン算出部１３４は光源色推定処理を終了する。
【００９０】
ＴｏｔａｌＧａｉｎＲ＝ＳｕｍＧａｉｎＲ／Ｃｏｕｎｔ      （１６）
ＴｏｔａｌＧａｉｎＢ＝ＳｕｍＧａｉｎＢ／Ｃｏｕｎｔ      （１７）
このように、本発明の第１の実施形態では、補助光発光装置２０１で発光した際の反射光を用いて、被写体２０２を照らす光源２００による鏡面反射領域を特定する。これによって、鏡面反射領域のみを用いてホワイトバランスゲインを算出することができる結果、画像におけるホワイトバランス補正の精度が向上する。
【００９１】
なお、第１の実施形態においては、第１および第２の画像の撮影は同一の画角で行われる。また、補助光の照射方向が光源の照射方向に重ならないように、補助光発光装置２０１の位置は適宜変更される。そして、補助光の照射方向と光源の照射方向とが異なる状態で撮影された画像が第２の画像とされる。
【００９２】
鏡面反射候補領域における補助光の反射光と周辺領域における補助光の反射光との差分を算出して、この差分の色相が補助光と類似している場合には、補助光の鏡面反射光が強く含まれ、補助光の照射方向が光源の照射方向と重複するとされる。この際には、システム制御部１１０は補助光発光装置２０１の発光方向を調整する。
【００９３】
［第２の実施形態］
続いて、本発明の第２の実施形態による画像処理装置の一例である撮像装置について説明する。なお、第２の実施形態による撮像装置の構成は図１に示す撮像装置と同様である。
【００９４】
前述の第１の実施形態では、画素毎に鏡面反射領域であるか否かを判定して、当該判定結果に応じて光源色推定を行う例について説明した。第２の実施形態では、画像を所定のサイズのブロック（領域）に分割して、ブロック毎に鏡面反射領域が含まれるか否かを判定して、当該判定結果に応じて光源色推定を行う例について説明する。
【００９５】
図９は、本発明の第２の実施形態によるカメラで行われる光源色推定処理を説明するためのフローチャートである。
【００９６】
なお、図示のフローチャートに係る処理はシステム制御部１１０の制御下で行われる。また、図９に示すフローチャートにおいて、図３に示すステップと同一のステップについて同一の参照符号を付して説明を省略する。
【００９７】
図３に示すステップＳ３０１で説明したように、システム制御部１１０の制御下で画像処理部１０５は第１および第２の画像を得る。その後、画像処理部１０５において、鏡面反射候補領域検出部１３１は、第１および第２の画像の各々を所定の大きさのブロック（領域）に分割する（ステップＳ８０２）。
【００９８】
図１０は、本発明の第２の実施形態によるカメラに備えられた画像処理部で行われる画像の分割を示す図である。
【００９９】
図１０に示す例では、第１の画像は縦方向に４分割、そして、横方向に５分割、合計２０個のブロックに分割されている。同様にして、第２の画像についても、２０個のブロックに分割される。
【０１００】
なお、図示の例では、第１および第２の画像の各々を４×５の計２０個のブロックに分割しているが、ブロックのサイズ（大きさ）は任意であり、適宜最適な大きさに分割すればよい。但し、第１および第２の画像は同一の大きさのブロックに分割される。
【０１０１】
再び、図９を参照して、上述のようにして第１および第２の画像の各々を複数のブロックに分割した後、画像処理部１０５は、後述するステップＳ８０３〜Ｓ８０６の処理を実行して、光源色推定処理を終了する。
【０１０２】
なお、図９においては、後述するように、ブロック毎に鏡面反射領域が含まれるか否かを判定が判定される。
【０１０３】
図１１は、図９に示す鏡面反射候補領域および周辺領域検出処理を説明するためのフローチャートである。
【０１０４】
領域検出処理を開始すると、鏡面反射候補領域検出部１３１は、まず第１の画像について、ブロック毎に当該ブロックに含まれる画素値に基づいて画素を複数のグループに分けるグループ分割処理を行う（ステップＳ９０１）。
【０１０５】
図１２は、図１１に示すグループ分割処理を説明するためのフローチャートである。
【０１０６】
グループ分割処理を開始すると、鏡面反射候補領域検出部１３１は第１の画像において全ブロックについて順次ループして（ステップＳ１００１）、続いて、グループ毎に全画素を順次ループし（ステップＳ１００２）、ステップＳ１００３〜Ｓ１００５の処理を全画素について行う。
【０１０７】
鏡面反射候補領域検出部１３１はブロック毎に当該ブロックに含まれる画素毎の画素値Ｓを取得する（ステップＳ１００３）。ここでは、画素値としてＲＧＢを用いるものとする。続いて、鏡面反射候補領域検出部１３１は画素値（ＲＧＢ）に応じて画素の輝度値Ｙを算出して、当該輝度値Ｙに応じて画素がいずれのグループに分類されるかを判定する（ステップＳ１００４）。
【０１０８】
いま、輝度値Ｙが”０”〜”２５５”（なお、輝度値Ｙは”０”〜”２５５”の整数であるとする）の範囲で規定される場合、例えば、鏡面反射候補領域検出部１３１は輝度値Ｙが”０”以上”で１５”以下であると、当該画素を第１のグループに分類する。同様にして、鏡面反射候補領域検出部１３１は輝度値Ｙが”１６”以上で”３１”以下であると、当該画素を第２のグループに分類する。このように、鏡面反射候補領域検出部１３１はブロックに拘わらず固定値を用いて画素のグループ分類を行う。
【０１０９】
図１３は、本発明の第２の実施形態による画像処理部で行われる画素のグループ分類の結果を示す分類テーブル（データ構造）の一例を説明するための図である。なお、図示の分類テーブルは、例えば、図１に示すメモリ１０６に格納される。
【０１１０】
図示の例では、補助光非発光時（つまり、第１の画像）に係る分類テーブル（以下第１の分類テーブルと呼ぶ）と補助光発光時（つまり、第２の画像）に係る分類テーブル（以下第２の分類テーブルと呼ぶ）がある。
【０１１１】
第１および第２の分類テーブルともにグループＮｏ欄およびブロックＮｏ欄を有し、これらグループＮｏ欄およびブロックＮｏ欄に対応付けてそれぞれ合計画素値（Ｓｕｍ）、合計画素数（Ｃｏｕｎｔ）、および輝度平均値（Ａｖｇ）が記録される。なお、図示の例では、グループは１６のグループに分けられているが、適宜最適なグループ数とすればよい。
【０１１２】
再び図１２を参照して、鏡面反射候補領域検出部１３１は画素のグループ分類を行った後、補助光非発光時（第１の画像）についてグループの合計画素値Ｓｕｍを更新するとともに、画素値を加算する都度、合計画素数Ｃｏｕｎｔをインクリメントする（ステップＳ１００６）。
【０１１３】
なお、合計画素値は次の式（１８）を用いて算出される。
【０１１４】
Ｓｕｍ＝ΣＳ      （１８）
但し、Ｓは画素値である。
【０１１５】
また、画素値ＳとしてＲＧＢを用いる場合には、式（１８）の代わりに次の式（１９）〜式（２１）を用いて、ＲＧＢの各々について合計画素値が算出される。
【０１１６】
Ｓｕｍ．Ｒ＝ΣＳ．Ｒ      （１９）
Ｓｕｍ．Ｇ＝ΣＳ．Ｇ      （２０）
Ｓｕｍ．Ｂ＝ΣＳ．Ｂ      （２１）
上述のようにして、全ての画素についてステップＳ１００３〜Ｓ１００５の処理を行うと、鏡面反射候補領域検出部１３１は全画素ループ端に達したとして（ステップＳ１００６）、分類グループ毎に次の式（２２）によって平均画素値Ａｖｇを算出する（ステップＳ１００７）。
【０１１７】
Ａｖｇ＝Ｓｕｍ／Ｃｏｕｎｔ      （２２）
なお、画素値としてＲＧＢを用いる場合には、式（２２）の代わりに式（２３）〜式（２５）を用いてＲＧＢの各々について平均画素値が算出される。
【０１１８】
Ａｖｇ．Ｒ＝Ｓｕｍ．Ｒ／Ｃｏｕｎｔ      （２３）
Ａｖｇ．Ｇ＝Ｓｕｍ．Ｇ／Ｃｏｕｎｔ      （２４）
Ａｖｇ．Ｂ＝Ｓｕｍ．Ｂ／Ｃｏｕｎｔ      （２５）
前述したように、グループ毎の平均画素値は図１３で説明した第１又は第２の分類テーブルに格納される。
【０１１９】
続いて、鏡面反射候補領域検出部１３１は、図１３に示す第１および第２の分類テーブルを参照して、ブロック毎に最も輝度値の高いグループと２番目に輝度値の高いグループを探索して、それぞれＡグループ（第１のグループ）およびＢグループ（第２のグループ）とする。
【０１２０】
Ａグループを探索する際には、鏡面反射候補領域検出部１３１は、輝度値Ｙの高いグループから順に、画素が含まれるグループを探索する。例えば、グループが１６個に分類されている場合に（ここでは、第１６番目から順に輝度値が低くなるものとする）、第１６番目のグループから探索して、鏡面反射候補領域検出部１３１は第１６番目のグループに画素が含まれるか否かを判定する。そして、第１６番目のグループに画素が含まれると、鏡面反射候補領域検出部１３１は第１６番目のグループをＡグループとする。
【０１２１】
第１６番目のグループに画素が含まれないと、鏡面反射候補領域検出部１３１は第１５番目のグループに画素が含まれるか否かを判定する。このようにして、輝度値の高いグループから順に探索を行って、画素が含まれるグループがあった場合に、そのグループをＡグループとする。
【０１２２】
Ａグループを探索した後、鏡面反射候補領域検出部１３１は次にＢグループの探索を行う。ここでは、鏡面反射候補領域検出部１３１はＡグループよりも１つ輝度値の低いグループから順に画素が含まれるグループを探索する。
【０１２３】
例えば、Ａグループが第１２番目のグループであった場合には、鏡面反射候補領域検出部１３１は第１１番目のグループに画素が含まれるか否かを判定する。そして、第１１番目のグループに画素が含まれると、鏡面反射候補領域検出部１３１は第１１番目のグループをＢグループとする。
【０１２４】
一方、第１１番目のグループに画素が含まれないと、鏡面反射候補領域検出部１３１は第１０番目のグループに画素が含まれるか否かを判定する。このようにして、Ａグループよりも輝度値の低いグループにおいて順にＢグループの探索が行われることになる。
【０１２５】
なお、ブロックにおける各画素の輝度値Ｙに差がほとんどなく、２つ以上のグループに分割できないブロックについては、鏡面反射候補領域検出部１３１は鏡面反射候補領域と周辺領域との少なくとも一方はないものと判定する。
【０１２６】
ＡグループおよびＢグループを探索した後、鏡面反射候補領域検出部１３１はＡグループの平均画素値をＡ値、そして、Ｂグループの平均画素値をＢ値とする（ステップＳ１００８）。そして、上述のようにして、全ての画素についてステップＳ１００７およびＳ１００８の処理を行うと、鏡面反射候補領域検出部１３１は全ブロックループ端に達したとして（ステップＳ１００９）、グループ分割処理を終了する。
【０１２７】
再び図１１を参照して、上述のようにして、グループ分割処理が終了すると、鏡面反射候補領域検出部１３１は全ブロックについて順次ループして（ステップＳ９０２）、ステップＳ９０３およびＳ９０４の処理を全ブロックについて行う。
【０１２８】
まず、鏡面反射候補領域検出部１３１はグループ分割処理の結果に基づいて、ブロック毎に鏡面反射候補領域検出部１３１はＡグループおよびＢグループが存在するか（つまり、ＡおよびＢブロックであるか）を判定する（ステップＳ９０３）。
【０１２９】
ＡグループおよびＢグループが存在しないと（ステップＳ９０３において、ＮＯ）、鏡面反射候補領域検出部１３１は次のブロックを対象ブロックとしてステップＳ９０２の処理を行う。
【０１３０】
一方、ＡグループおよびＢグループが存在すると（ステップＳ９０３において、ＹＥＳ）、鏡面反射候補領域検出部１３１はＡグループを鏡面反射光成分が強く含まれる鏡面反射候補領域として検出するとともに、Ｂグループを鏡面反射光成分が余り含まれない周辺領域として検出する（ステップＳ９０４）。
【０１３１】
第１の画像について、前述のように、Ａ値およびＢ値を算出していたので、鏡面反射候補領域検出部１３１はＡ値を１Ａ値、Ｂ値を１Ｂ値とする。そして、鏡面反射候補領域検出部１３１は１Ａ値を鏡面反射の候補領域における光源２００の反射光、そして、１Ｂ値を周辺領域における光源２００の反射光として、後述する光源反射光テーブルの該当するブロック欄に格納する。
【０１３２】
なお、ＡグループおよびＢグループが存在しないブロックについては、鏡面反射候補領域検出部１３１は当該ブロックには鏡面反射領域は存在しないと判定する。
【０１３３】
全てのブロックについてステップＳ９０３およびＳ９０４の処理が終了すると、鏡面反射候補領域検出部１３１は全画素ループ端に達したとして（ステップＳ９０５）、鏡面反射候補領域および周辺領域検出処理を終了する。
【０１３４】
図１４は、図９に示す補助光の反射光抽出処理を説明するためのフローチャートである。
【０１３５】
補助光の反射光抽出処理を開始すると、反射光抽出部１３２は第２画像について画素値のグループ分割処理を行う（ステップＳ１１０１）。ここでは、第２の画像を入力画像（対象画像）として、反射光抽出部１３２はブロック毎に各画素を画素値に応じて複数のグループに分割する。ステップＳ１１０１におけるグループ分割処理は、ステップＳ９０１で説明したグループ分割処理と同様であるので、ここでは説明を省略する。
【０１３６】
続いて、反射光抽出部１３２は全ブロックについて順次ループして（ステップＳ１１０２）、ステップＳ１１０３およびＳ１１０４の処理を全ブロックについて行う。図１１で説明した手法と同様にして、反射光抽出部１３２はグループ分割処理の結果に基づいて、第２の画像において、Ａグループの平均画素値をＡ値、そして、Ｂグループの平均画素値をＢ値とする。そして、反射光抽出部１３２は第２画像のＡ値を２Ａ値、Ｂ値を２Ｂ値とする。
【０１３７】
反射光抽出部１３２は第１および第２の画像のブロック毎に２Ａ値から１Ａ値を減算した差分を鏡面反射候補領域における補助光の反射光データとして抽出する（ステップＳＤ１１０３）。
【０１３８】
続いて、反射光抽出部１３２は２Ｂ値から１Ｂ値を減算した差分を周辺領域における補助光の反射光データとして抽出する（ステップＳ１１０４）。なお、ここでは、第１および第２の画像において対応するブロックには同一被写体が存在し、各画素における補助光の反射光による画素値の増加分はほぼ等しいものとする。図１７で表わされるデータ構造の該当するブロックに格納する。
【０１３９】
図１５は、本発明の第２の実施形態によるカメラに備えられた反射光データ格納領域（データ構造）の一例を示す図である。なお、図示の反射光データ格納領域は、例えば、図１に示すメモリ１０６に規定される。
【０１４０】
図示の例では、光源反射光データを格納する光源反射光テーブルと補助光反射光データを格納する補助光反射光テーブルとを有しており、光源反射光テーブルおよび補助光反射光テーブルともにブロックＮｏ欄、鏡面反射候補領域欄、および周辺領域欄を有している。
【０１４１】
光源反射光テーブルではこれらブロックＮＯ欄、鏡面反射候補領域欄、および周辺領域欄に対応付けてそれぞれ１Ａ値および１Ｂ値（つまり、光源反射光データ）が記録される。
【０１４２】
同様に、反射光反射光テーブルではこれらブロックＮＯ欄、鏡面反射候補領域欄、および周辺領域欄に対応付けてそれぞれ（２Ａ値−１Ａ値）および（２Ｂ値−１Ｂ値）が補助光反射光データとして記録される。
【０１４３】
全てのブロックについてステップＳ１１０３およびＳ１１０４の処理が終了すると、反射光抽出部１３２は全ブロックループ端に達したとして（ステップＳ１１０５）反射光抽出処理を終了する。
【０１４４】
図１６は、図９に示す鏡面反射領域特定処理を説明するためのフローチャートである。
【０１４５】
鏡面反射領域特定処理を開始すると、鏡面反射領域特定部１３３は全ブロックについて順次ループして（ステップＳ１２０１）、ステップＳ１２０２〜Ｓ１２０４の処理を全ブロックについて行う。
【０１４６】
まず、鏡面反射領域特定部１３３は、鏡面反射候補領域および周辺領域検出処理の結果に基づいて、第１の画像の対象ブロックにおいて鏡面反射候補領域および周辺領域が検出されたか否かを判定する。つまり、鏡面反射領域特定部１３３は第１の画像の対象ブロックにＡおよびＢグループが存在するか否かを判定する（ステップＳ１２０２）。
【０１４７】
第１の画像の対象ブロックにＡおよびＢグループが存在しないと（ステップＳ１２０２において、ＮＯ）、鏡面反射領域特定部１３３は次のブロックを対象ブロックとしてステップＳ１２０２の処理を行う。
【０１４８】
一方、対象ブロックにＡおよびＢグループが存在すると（ステップＳ１２０２において、ＹＥＳ）、鏡面反射領域特定部１３３は、鏡面反射候補領域と周辺領域とにおいて、補助光の反射光に係る画素値が近似するか否かを判定する（ステップＳ１２０３）。
【０１４９】
なお、ここでは、所定の閾値Ｔ３と図１５に示す補助光反射光データとを用いて、次の式（２６）が満たされると、鏡面反射領域特定部１３３は補助光の反射光に係る画素値が近似すると判定する。
【０１５０】
｜（２Ａ値−１Ａ値）−（２Ｂ値−１Ｂ値）｜＜Ｔ３      （２６）
画素値がＲＧＢで表現される場合には、式（１３）の代わりに、所定の閾値Ｔ３Ｒ、Ｔ３Ｇ、Ｔ３Ｂを用いて、次の式（２７）〜式（２９）の全てを満たす場合に、鏡面反射領域特定部１３３は補助光の反射光に係る画素値が近似すると判定する。
【０１５１】
｜（２Ａ値−１Ａ値）．Ｒ−（２Ｂ値−１Ｂ値）．Ｒ｜＜Ｔ３Ｒ      （２７）
｜（２Ａ値−１Ａ値）．Ｇ−（２Ｂ値−１Ｂ値）．Ｇ｜＜Ｔ３Ｇ      （２８）
｜（２Ａ値−１Ａ値）．Ｂ−（２Ｂ値−１Ｂ値）．Ｂ｜＜Ｔ３Ｂ      （２９）
鏡面反射候補領域と周辺領域とにおいて補助光の反射光に係る画素値が近似しないと（ステップＳ１２０３において、ＮＯ）、鏡面反射領域特定部１３３はステップＳ１２０２の処理に戻って、次のブロックを対象ブロックとしてステップＳ１２０２の処理を行う。
【０１５２】
一方、鏡面反射候補領域と周辺領域とにおいて補助光の反射光に係る画素値が近似すると（ステップＳ１２０３において、ＹＥＳ）、つまり、上記の式（２６）が満たされると、鏡面反射領域特定部１３３は鏡面反射候補領域と周辺領域とは補助光の拡散反射率がほぼ等しく、同一被写体であると推定する。
【０１５３】
そして、鏡面反射領域特定部１３３は、鏡面反射領域が存在するため、鏡面反射候補領域における光源２００の反射光と周辺領域における光源２００の反射光とに差が生じるとして、鏡面反射候補領域が鏡面反射領域であると特定する（ステップＳ１２０４）。
【０１５４】
なお、式（２６）を満たさない場合には、鏡面反射領域特定部１３３は鏡面反射候補領域と周辺領域とは異なる被写体であるとして、鏡面反射候補領域が鏡面反射領域ではないとする。
【０１５５】
そして、鏡面反射領域特定部１３３は鏡面反射領域であると特定したブロックについて、後述するフラグ格納領域にフラグを格納する。
【０１５６】
図１７は、鏡面反射領域であると特定したブロックに対してフラグを格納するフラグ格納領域（テータ構造）の一例を示す図である。
【０１５７】
図示のフラグ格納領域は、例えば、図１（ａ）に示すメモリ１０６に規定されており、このフラグ格納領域にはフラグテーブルが記録される。フラグテーブルはブロックＮｏ欄を有しており、鏡面反射領域であると特定したブロックに対応付けて、フラグ（ｆｌａｇ）が記録される。
【０１５８】
上述のようにして、全てのブロックについてステップＳ１２０２〜Ｓ１２０４の処理を行うと、鏡面反射領域特定部１３３は全ブロックループ端に達したとして（ステップＳ１２０５）、鏡面反射領域特定処理を終了する。
【０１５９】
図１８は、図９に示すホワイトバランスゲイン算出処理を説明するためのフローチャートである。
【０１６０】
ホワイトバランスゲイン算出処理を開始すると、ＷＢゲイン算出部１３４は全ブロックについて順次ループして（ステップＳ１３０１）、ステップＳ１３０２およびＳ１３０３の処理を全ブロックについて行う。まず、ＷＢゲイン算出部１３４は図１７に示すフラグテーブルを参照して、対象ブロックに鏡面反射領域が存在すると特定されたか否かを判定する（ステップＳ１３０２）。
【０１６１】
対象ブロックに鏡面反射領域が存在しないと（ステップＳ１２０２において、ＮＯ）、ＷＢゲイン算出部１３４は次のブロックを対象ブロックとしてステップＳ１２０２の処理を行う。一方、対象ブロックに鏡面反射領域が存在すると（ステップＳ１２０２において、ＹＥＳ）、ＷＢゲイン算出部１３４は図１５に示す光源反射光データに基づいて、１Ａ値から１Ｂ値を減算して差分Ｄを算出する。そして、ＷＢゲイン算出部１３４は差分Ｄに応じてブロックＷＢゲイン値を算出する（ステップＳ１３０３）。
【０１６２】
なお、画素値がＲＧＢで表現される場合には、差分ＤはＲＧＢで表現され、次の式（３０）および式（３１）を用いてブロックＷＢゲイン値が算出される。
【０１６３】
Ｇａｉｎ．Ｒ＝Ｄ．Ｇ／Ｄ．Ｒ      （３０）
Ｇａｉｎ．Ｂ＝Ｄ．Ｇ／Ｄ．Ｂ      （３１）
上述のようにして、全てのブロックについてステップＳ１２０２およびＳ１２０３の処理を行うと、ＷＢゲイン算出部１３４は全ブロックループ端に達したとして（ステップＳ１２０４）、全ブロックのブロックＷＢバランスゲインの平均をホワイトＷＢゲインとして算出する（ステップＳ１２０５）。そして、ＷＢゲイン算出部１３４はホワイトバランスゲイン算出処理を終了する。つまり、ＷＢゲイン算出部１３４は光源色推定処理を終了する。
【０１６４】
このように、本発明の第２の実施形態では、第１および第２の画像を複数のブロックに分割して、補助光発光装置２０１で発光した際の反射光を用いて、被写体２０２を照らす光源２００による鏡面反射領域を特定する。これによって、鏡面反射領域のみを用いてホワイトバランスゲインを算出することができる結果、画像におけるホワイトバランス補正の精度が向上する。
【０１６５】
上述の説明から明らかなように、図１に示す例では、システム制御部１１０および鏡面反射領域候補検出部１３１が鏡面反射領域検出手段として機能し、システム制御部１１０および反射光抽出部１３２が反射光抽出手段として機能する。
【０１６６】
さらに、システム制御部１１０および鏡面反射領域特定部１３３が特定手段として機能し、システム制御部１１０およびホワイトバランスゲイン算出部１３４が光源色推定手段として機能する。また、システム制御部１１０は調整手段として機能する。
【０１６７】
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【０１６８】
例えば、上記の実施の形態の機能を制御方法として、この制御方法を画像処理装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムを画像処理装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【０１６９】
上記の制御方法および制御プログラムの各々は、少なくとも鏡面反射領域検出ステップ、反射光抽出ステップ、特定ステップ、および光源色推定ステップを有している。
【０１７０】
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵなど）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１７１】
１０３  撮像部
１０５  画像処理部
１０６  メモリ
１０７  メモリ制御部
１１０  システム制御部
１３１  鏡面反射候補領域検出部
１３２  反射光抽出部
１３３  鏡面反射領域特定部
１３４  ホワイトバランスゲイン算出部
２０１  補助光発光装置
【図１】
2015015676.tif 000003
【図２】
2015015676.tif 000004
【図３】
2015015676.tif 000005
【図４】
2015015676.tif 000006
【図５】
2015015676.tif 000007
【図６】
2015015676.tif 000008
【図７】
2015015676.tif 000009
【図８】
2015015676.tif 000010
【図９】
2015015676.tif 000011
【図１０】
2015015676.tif 000012
【図１１】
2015015676.tif 000013
【図１２】
2015015676.tif 000014
【図１３】
2015015676.tif 000015
【図１４】
2015015676.tif 000016
【図１５】
2015015676.tif 000017
【図１６】
2015015676.tif 000018
【図１７】
2015015676.tif 000019
【図１８】
2015015676.tif 000020