(57)【要約】【課題】マテリアル成分の等しい部分を手動で特定することなく、撮像の際の光源の種類を推定する。【解決手段】分光分布保持部２１０は候補となる光源の分光エネルギー分布を鏡面反射成分（スペキュラー成分）として保持する。半平面生成部２２０は、入力画像の座標（ｘ，ｙ）における画素データの各々について、仮定した光源のスペキュラー成分との間で特定される半平面の角度θ（ｘ，ｙ）を求めて半平面リストに登録する。領域サイズ生成部２３０は半平面リストに基づいて、各画素データの近傍で同じ角度θの他の画素データをグループ化して、そのグループ化により分割された領域の平均的なサイズを求める。判定部２４０は半平面生成部２２０から供給された光源毎の平均領域サイズに基づいて仮定した光源が正しいかを判定する。【選択図】図１０
2007306325.tif 000002
【特許請求の範囲】
【請求項１】
入力画像の撮像の際の光源の種類を推定する光源推定装置において、
特定の光源の分光エネルギー分布を鏡面反射成分として保持する分布保持手段と、
所定の空間において前記鏡面反射成分および前記入力画像の画素データによって定められる集合を前記入力画像の画素データの各々について生成する集合生成手段と、
前記入力画像の画素データの各々について当該画素データの近傍で前記集合に含まれる他の画素データを検出する検出手段と、
前記他の画素データが存在する場合には前記特定の光源が前記撮像の際の光源に該当する確度を高くし、前記他の画素データが存在しない場合には前記特定の光源が前記撮像の際の光源に該当する確度を低くすることによって前記特定の光源が前記撮像の際の光源に該当するか否かを判定する判定手段と
を具備することを特徴とする光源推定装置。
【請求項２】
前記集合は、色空間における２次元平面の少なくとも一部を含むことを特徴とする請求項１記載の光源推定装置。
【請求項３】
前記鏡面反射成分は、色空間の原点を始点とするベクトル成分であることを特徴とする請求項１記載の光源推定装置。
【請求項４】
入力画像の撮像の際の光源の種類を推定する光源推定装置において、
複数の光源の分光エネルギー分布を鏡面反射成分として保持する分布保持手段と、
所定の空間において前記複数の光源毎に前記鏡面反射成分および前記入力画像の画素データによって定められる集合を前記入力画像の画素データの各々について生成する集合生成手段と、
前記複数の光源毎に前記入力画像の画素データの各々について当該画素データの近傍で前記集合に含まれる領域のサイズを求める領域サイズ生成手段と、
前記複数の光源のうち前記領域サイズの最も大きい光源を前記撮像の際の光源に該当するものと判定する判定手段と
を具備することを特徴とする光源推定装置。
【請求項５】
入力画像を撮像する撮像手段と、
複数の光源の分光エネルギー分布を鏡面反射成分として保持する分布保持手段と、
所定の空間において前記複数の光源毎に前記鏡面反射成分および前記入力画像の画素データによって定められる集合を前記入力画像の画素データの各々について生成する集合生成手段と、
前記複数の光源毎に前記入力画像の画素データの各々について当該画素データの近傍で前記集合に含まれる領域のサイズを求める領域サイズ生成手段と、
前記複数の光源のうち前記領域サイズの最も大きい光源を撮像の際の光源に該当するものと判定する判定手段と、
前記判定の結果に応じて前記入力画像のホワイトバランス処理を行うホワイトバランス処理手段と、
前記判定の結果に応じて前記ホワイトバランス処理の出力に対して色再現処理を行う色再現処理手段と
を具備することを特徴とする撮像装置。
【請求項６】
複数の光源の分光エネルギー分布を鏡面反射成分として保持する分布保持手段を備える光源推定装置において入力画像の撮像の際の光源の種類を推定する光源推定方法であって、
所定の空間において前記複数の光源毎に前記鏡面反射成分および前記入力画像の画素データによって定められる集合を前記入力画像の画素データの各々について生成する集合生成手順と、
前記複数の光源毎に前記入力画像の画素データの各々について当該画素データの近傍で前記集合に含まれる領域のサイズを求める領域サイズ生成手順と、
前記複数の光源のうち前記領域サイズの最も大きい光源を前記撮像の際の光源に該当するものと判定する判定手順と
を具備することを特徴とする光源推定方法。
【請求項７】
複数の光源の分光エネルギー分布を鏡面反射成分として保持する分布保持手段を備える光源推定装置において入力画像の撮像の際の光源の種類を推定するプログラムであって、
所定の空間において前記複数の光源毎に前記鏡面反射成分および前記入力画像の画素データによって定められる集合を前記入力画像の画素データの各々について生成する集合生成手順と、
前記複数の光源毎に前記入力画像の画素データの各々について当該画素データの近傍で前記集合に含まれる領域のサイズを求める領域サイズ生成手順と、
前記複数の光源のうち前記領域サイズの最も大きい光源を前記撮像の際の光源に該当するものと判定する判定手順と
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置に関し、特に入力画像の撮像の際の光源の種類を推定する機能を有する撮像装置、および、その処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
人間の目には、光源が変わった場合でも白い物体を白と認識する色順応という機能がある。この機能により、太陽高度により光源の分光分布が変化するにもかかわらず、人間は白い物体を白いと認識することができる。同様に、太陽光とは全く分光分布が異なる蛍光灯下においても、白い物体を白いと認識することができるのも、色順応の機能によるものである。これらの機能を装置において実現しようとしたものが、「ホワイトバランス機能」である。
【０００３】
さらに、ホワイトバランス機能によって白い物体が白く見えるようになっても、「イメージセンサーの分光感度」と「人の目の分光感度」の違いによる影響で、色が見た目通り再現されない場合がある。これを補正するための機能として、「色再現機能」が用意されている。「ホワイトバランス機能」と「色再現機能」のパラメータは、それぞれ行列で表されるため、実装の段階では１つの行列による１つの処理にまとめられることもある。
【０００４】
ホワイトバランス機能を実現するためには、エバンスの原理（グレーワールド仮説）をベースとし、黒体輻射軌跡情報を組み合わせ総合的に制御するアルゴリズムが一般的に用いられてきた。ここで、エバンスの原理とは、世の中の被写体の色を加算すると無彩色になるという仮説である。また、黒体輻射軌跡とは、完全な黒体を加熱した場合に黒体から発せられる赤銅色、赤、オレンジ、黄色、色、青色と変化する色の軌跡である。一般的に、自然光は黒体輻射軌跡に乗ることから、自然光の色情報を扱う際の基準として用いられる。
【０００５】
ところが、全面に空が写っているシーンや、木々に囲まれているようなシーンなどのように、画面中の有効画素を全て積分しても、無彩色にはならない条件下においては、エバンスの原理が成り立たない場合がある。たとえば、全面に空が写っているシーンにおいて、エバンスの原理が成り立つとして仮定して制御を行うと、間違えた光源を推定することがある。
【０００６】
そのため、精度の良い光源推定方法として、スペキュラー成分を用いた推定方法（以下、スペキュラー法という。）が従来より提案されている。このスペキュラー法では、物体における反射には物体固有の分光反射率により各色を反射させる拡散反射成分（マテリアル成分）と物体の色に依存しない鏡面反射成分（スペキュラー成分）の２つの成分があることに着目し、マテリアル成分の等しい物体同士をグループ化してグループ毎に色空間上で平面を生成する。そして、そのようにして生成された各平面の交線方向のベクトルがスペキュラー成分（すなわち、光源の分光エネルギー分布）として出力される（例えば、非特許文献１参照。）。
【非特許文献１】富永昌治（Shoji Tominaga）、ブライアン・ワンデル（Brian A. Wandell），「スタンダード・サーフェイス・リフレクタンス・モデル・アンド・イルミナント・エスティメーション（Standard surface-reflectance model and illuminant estimation）」，ジャーナル・オブ・オプティカル・ソサエティ・オブ・アメリカ（Journal of Optical Society of America），第６巻，第４号，１９８９年４月，ｐ．５７６−５８４
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述のスペキュラー法では、その前提として、マテリアル成分の等しい物体同士をグループ化する必要がある。すなわち、マテリアル成分の等しい物体が投影された画素が何れの画素であるかを、予め把握しておく必要がある。これは、撮像された画像の中からマテリアル成分の等しい部分、すなわち単一色である物体の画像中に存在するその投影像部分を手動で特定する必要があることを意味する。撮像の度にこのような処理を行うことは煩雑であり、それを前提とすることは実用的ではないと考えられる。
【０００８】
そこで、本発明は、マテリアル成分の等しい部分を手動で特定することなく、撮像の際の光源の種類を推定することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は上記課題を解決するためになされたものであり、従来のスペキュラー法では「画素をグループ化」して「光源の分光エネルギー分布」を求めていたのに対して、本発明は「光源の分光エネルギー分布を仮定」して「画素がどのようにグループ化」されるかを求めることにより、仮定した光源が正しい光源であったか否かを推定するものである。
【００１０】
すなわち、本発明の第１の側面は、入力画像の撮像の際の光源の種類を推定する光源推定装置において、特定の光源の分光エネルギー分布を鏡面反射成分として保持する分布保持手段と、所定の空間において上記鏡面反射成分および上記入力画像の画素データによって定められる集合を上記入力画像の画素データの各々について生成する集合生成手段と、上記入力画像の画素データの各々について当該画素データの近傍で上記集合に含まれる他の画素データを検出する検出手段と、上記他の画素データが存在する場合には上記特定の光源が上記撮像の際の光源に該当する確度を高くし、上記他の画素データが存在しない場合には上記特定の光源が上記撮像の際の光源に該当する確度を低くすることによって上記特定の光源が上記撮像の際の光源に該当するか否かを判定する判定手段とを具備することを特徴とする光源推定装置である。これにより、仮定した光源の鏡面反射成分と入力画像の画素データとによって定められる集合に含まれる近傍の画素データとの関係から、仮定した光源が撮像の際の光源に該当するか否かを判定させるという作用をもたらす。
【００１１】
また、この第１の側面において、上記集合は色空間における２次元平面の少なくとも一部を含むものとしてもよい。このような集合としては、例えば、半平面が該当する。
【００１２】
また、この第１の側面において、上記鏡面反射成分は色空間の原点を始点とするベクトル成分であってもよい。
【００１３】
また、本発明の第２の側面は、入力画像の撮像の際の光源の種類を推定する光源推定装置において、複数の光源の分光エネルギー分布を鏡面反射成分として保持する分布保持手段と、所定の空間において上記複数の光源毎に上記鏡面反射成分および上記入力画像の画素データによって定められる集合を上記入力画像の画素データの各々について生成する集合生成手段と、上記複数の光源毎に上記入力画像の画素データの各々について当該画素データの近傍で上記集合に含まれる領域のサイズを求める領域サイズ生成手段と、上記複数の光源のうち上記領域サイズの最も大きい光源を上記撮像の際の光源に該当するものと判定する判定手段とを具備することを特徴とする光源推定装置である。これにより、仮定した光源の鏡面反射成分と入力画像の画素データとによって定められる集合に含まれる近傍の領域のサイズから、撮像の際の光源を推定させるという作用をもたらす。
【００１４】
また、本発明の第３の側面は、入力画像を撮像する撮像手段と、複数の光源の分光エネルギー分布を鏡面反射成分として保持する分布保持手段と、所定の空間において上記複数の光源毎に上記鏡面反射成分および上記入力画像の画素データによって定められる集合を上記入力画像の画素データの各々について生成する集合生成手段と、上記複数の光源毎に上記入力画像の画素データの各々について当該画素データの近傍で上記集合に含まれる領域のサイズを求める領域サイズ生成手段と、上記複数の光源のうち上記領域サイズの最も大きい光源を撮像の際の光源に該当するものと判定する判定手段と、上記判定の結果に応じて上記入力画像のホワイトバランス処理を行うホワイトバランス処理手段と、上記判定の結果に応じて上記ホワイトバランス処理の出力に対して色再現処理を行う色再現処理手段とを具備することを特徴とする撮像装置である。これにより、仮定した光源の鏡面反射成分と入力画像の画素データとによって定められる集合に含まれる近傍の領域のサイズから、撮像の際の光源を推定して撮像させるという作用をもたらす。
【００１５】
また、本発明の第４の側面は、複数の光源の分光エネルギー分布を鏡面反射成分として保持する分布保持手段を備える光源推定装置において入力画像の撮像の際の光源の種類を推定する光源推定方法またはプログラムであって、所定の空間において上記複数の光源毎に上記鏡面反射成分および上記入力画像の画素データによって定められる集合を上記入力画像の画素データの各々について生成する集合生成手順と、上記複数の光源毎に上記入力画像の画素データの各々について当該画素データの近傍で上記集合に含まれる領域のサイズを求める領域サイズ生成手順と、上記複数の光源のうち上記領域サイズの最も大きい光源を上記撮像の際の光源に該当するものと判定する判定手順とを具備することを特徴とする光源推定方法またはこれら手順をコンピュータに実行させることを特徴とするプログラムである。これにより、仮定した光源の鏡面反射成分と入力画像の画素データとによって定められる集合に含まれる近傍の領域のサイズから、撮像の際の光源を推定させるという作用をもたらす。
【発明の効果】
【００１６】
本発明によれば、マテリアル成分の等しい部分を手動で特定することなく、撮像の際の光源の種類を推定することができるという優れた効果を奏し得る。
【発明を実施するための最良の形態】
【００１７】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００１８】
図１は、本発明の実施の形態における撮像装置１００の一構成例を示す図である。この撮像装置１００は、撮像素子１１０と、Ａ／Ｄ（Analog to Digital）変換回路１２０と、デモザイクブロック１３０と、ホワイトバランス回路１４０と、色再現処理回路１５０と、信号変換処理回路１６０と、ガンマ補正回路１７０と、表示部１８１と、データ保持部１８２と、ユーザインターフェース（図中「ユーザＩ／Ｆ」と略す。）１９０と、光源推定回路２００と、画像処理パラメータ設定部３００とを備えている。
【００１９】
撮像素子１１０は、入力画像の光情報を電気信号（電圧値）に変換する光電変換素子であり、イメージセンサーとも呼ばれる。この撮像素子１１０としては、例えば、ＣＣＤ（Charge Coupled Device）などが用いられる。
【００２０】
撮像素子１１０としては、赤（Ｒ：Red）、緑（Ｇ：Green）、青（Ｂ：Blue）の３種類のカラーフィルタを有するイメージセンサーが一般的であるが、これ以外にも、例えばエメラルド（Ｅ：Emerald）やオレンジ（Ｏ：Orange）等のカラーフィルタを追加してもよい。
【００２１】
Ａ／Ｄ変換回路１２０は、撮像素子１１０から供給されたアナログ信号をデジタル信号に変換する回路である。このＡ／Ｄ変換回路１２０により、入力画像の各画素について例えば１４ビットの画素データに量子化される。
【００２２】
デモザイクブロック１３０は、画素データに対してデモザイク処理を施すものである。ここで、デモザイク処理とは、１画素につき１色ずつの画素データに対して、周辺の画素データを利用して１画素につき各色（例えば、ＲＧＢ）の色が揃うように補間する処理である。この補間処理の結果は、信号線１３８を介してホワイトバランス回路１４０に、信号線１３９を介して光源推定回路２００にそれぞれ供給されるものとする。
【００２３】
光源推定回路２００は、デモザイクブロック１３０から供給された画素データに基づいて、入力画像が撮像された際の光源を推定するものである。この構成および処理内容については後述する。この光源推定回路２００による推定結果は、信号線２０９を介して画像処理パラメータ設定部３００に供給される。
【００２４】
画像処理パラメータ設定部３００は、光源推定回路２００によって推定された光源に応じた画像処理のパラメータを設定するものである。すなわち、画像処理パラメータ設定部３００は、ホワイトバランスゲインを、信号線３０８を介してホワイトバランス回路１４０に供給するとともに、光源推定回路２００によって推定された光源に応じた色補正行列を、信号線３０９を介して色再現処理回路１５０に供給する。
【００２５】
なお、画像処理パラメータ設定部３００は、例えばマイクロプロセッサなどのＣＰＵ（Central Processing Unit）により実現することができる。
【００２６】
ホワイトバランス回路１４０は、デモザイクブロック１３０から供給されたＲＧＢの画素データに、画像処理パラメータ設定部３００から供給されたホワイトバランスゲインの対応するゲインを掛け合わせてホワイトバランス処理を行うものである。
【００２７】
色再現処理回路１５０は、ホワイトバランス回路１４０によってホワイトバランス処理が施された画素データに、画像処理パラメータ設定部３００から供給された色補正行列を掛け合わせて色再現処理を行うものである。色再現処理回路１５０は、この色再現処理の結果、例えばＲＧＢ画素データをＸＹＺ空間へ写像する。
【００２８】
信号変換処理回路１６０は、ＸＹＺ空間上の座標からＹＣＣ形式、すなわち明度Ｙ、青の色差Ｃｂおよび赤の色差Ｃｒに変換するものである。ガンマ補正回路１７０は、表示部１８１などのガンマ値に応じたガンマ補正を行うものである。
【００２９】
表示部１８１は、ＬＣＤ（Liquid Crystal Display）などのディスプレイであり、シャッターボタンが押下されていない場合にガンマ補正回路１７０から供給された入力画像をモニター表示するものである。データ保持部１８２は、記録媒体であり、シャッターボタンが押下された場合にガンマ補正回路１７０から供給された入力画像を保持するものである。
【００３０】
ユーザインターフェース１９０は、撮像装置１００に設けられたハードウェアスイッチもしくはソフトウェアによるＧＵＩ（Graphical User Interface）である。上述のシャッターボタンも、このユーザインターフェース１９０の１つである。
【００３１】
図２は、カラー画像の撮像モデルを示す図である。ここでは、光源１０から照射された光が物体２０および３０の表面に反射して、撮像装置４０に受光されるまでの流れについて説明する。
【００３２】
物体２０および３０はそれぞれ単一色の物体であり、したがってこれら物体２０および３０のマテリアル成分（拡散反射成分）は単一（すなわち、物体の分光反射率が一定）である。ここで、物体２０および３０の表面においてそれぞれ３点の位置を想定すると、光源１０から照射された光は、図２（ａ）のようにそれぞれ軌跡２４乃至２６および３４乃至３６を通じて撮像装置４０に受光される。
【００３３】
図２（ｂ）は、撮像装置４０による撮像画像の例である。軌跡２４乃至２６を通じて受光された光は、物体２０の表面の点２１乃至２３として投影される。また、軌跡３４乃至３６を通じて受光された光は、物体３０の表面の点３１乃至３３として投影される。
【００３４】
図３は、拡散反射成分（マテリアル成分）および鏡面反射成分（スペキュラー成分）の例を示す図である。光源１０から照射された光が物体５０の表面に反射した際の光線５９は、物体固有の分光反射率により各色を反射させる拡散反射成分（マテリアル成分５７）と物体の色に依存しない鏡面反射成分（スペキュラー成分５８）の２つの成分を含んでいる。
【００３５】
光源１０から出力された光の成分を（Ｒｓ，Ｇｓ，Ｂｓ）とする。ここで、Ｒｓは光源１０の赤色の成分であり、Ｇｓは光源１０の緑色の成分であり、Ｂｓは光源１０の青色の成分である。
【００３６】
また、物体５０のマテリアル成分５７を（Ｒｍ，Ｇｍ，Ｂｍ）とする。ここで、Ｒｍは「（物体５０の赤色の分光反射率）×（光源１０の赤色成分）」であり、Ｇｍは「（物体５０の緑色の分光反射率）×（光源１０の緑色成分）」であり、Ｂｍは「（物体５０の青色の分光反射率）×（光源１０の青色成分）」である。一方、物体５０のスペキュラー成分５８は物体の性質に依存するものではなく、光源１０から照射された光の成分（Ｒｓ，Ｇｓ，Ｂｓ）と一致する。これら２つの成分の線形和が、光線５９となる。なお、この線形和における各成分の重みＷ（Ｗは０以上の実数）は、物体５０への光の入射角と反射角に依存する。
【００３７】
図４は、色空間における画素データの例を示す図である。光線５９による画素データは、マテリアル成分５７とスペキュラー成分５８の合計した値となる。すなわち、色空間（ここでは、ＲＧＢ３次元色空間）における画素データ７０３は、マテリアル成分のベクトル７０２とスペキュラー成分のベクトル７０１の加算として表現される。
【００３８】
そこで、図５のように、物体２０および３０のそれぞれについて、それぞれ軌跡２４乃至２６および３４乃至３６による色空間上の画素データを求める。
【００３９】
図５（ａ）は、物体２０に反射した軌跡２４乃至２６による画素データの色空間における分布例を示す図である。すなわち、画素データ７２４乃至７２６は、それぞれ軌跡２４乃至２６による画素データである。
【００４０】
これら画素データ７２４乃至７２６は、同じ光源１０から照射された光が同じ物体２０に反射したものであることから、同一平面上に存在することになる。この平面は、光源１０のスペキュラー成分のベクトル７０１および物体２０のマテリアル成分のベクトル７２２によって特定される。すなわち、ベクトル（Ｒｓ，Ｇｓ，Ｂｓ）（大きさは１に正規化しておくことにする。）と、ベクトル（Ｒｍ２，Ｇｍ２，Ｂｍ２）（大きさは１に正規化しておくことにする。）の張る平面７２０上に、物体２０の投影像のデータが存在することになる。
【００４１】
同様に、図５（ｂ）は、物体３０に反射した軌跡３４乃至３６による画素データの色空間における分布例を示す図である。すなわち、画素データ７３４乃至７３６は、それぞれ軌跡３４乃至３６による画素データである。
【００４２】
これら画素データ７３４乃至７３６は、同じ光源１０から照射された光が同じ物体３０に反射したものであることから、同一平面上に存在することになる。この平面は、光源１０のスペキュラー成分のベクトル７０１および物体３０のマテリアル成分のベクトル７３２によって特定される。すなわち、ベクトル（Ｒｓ，Ｇｓ，Ｂｓ）（大きさは１に正規化しておくことにする。）と、ベクトル（Ｒｍ３，Ｇｍ３，Ｂｍ３）（大きさは１に正規化しておくことにする。）の張る平面７３０上に、物体３０の投影像のデータが存在することになる。
【００４３】
図６は、色空間上の平面とスペキュラー成分との関係例を示す図である。図５において生成した平面７２０および７３０に加えて、同様に光源１０から照射された光を他の物体により反射させた際の平面７４０および７５０を考慮した場合、これら平面７２０乃至７５０の交線は、スペキュラー成分のベクトル７０１となる。これが、スペキュラー法の原理である。
【００４４】
従来のスペキュラー法では、画素データをグループ化することによって、上述のような平面７２０乃至７５０を求め、これら平面７２０乃至７５０の交線を求めることによって、スペキュラー成分、すなわち光源の分光エネルギー分布を生成していた。これに対して、本発明の実施の形態では、光源の分光エネルギー分布を既知のものの中から予め仮定して平面を生成し、画素データがどのようにグループ化されるかを求めることによって、仮定した光源が正しい光源であったか否かを推定する。
【００４５】
図７は、本発明の実施の形態において半平面を特定する例を示す図である。図６により説明したように、スペキュラー成分のベクトル７０１は、画素データにより形成される平面の交線となる。そこで、ＲＧＢの３次元色空間上のある単位ベクトル７０７を中心とする半平面を想定して、基準となる半平面との関係を表す角度によって各半平面を特定することを考える。
【００４６】
ここでは、基準となる半平面として、Ｒ軸の正の部分を含む半平面７６０を想定する。そして、原点から見て時計回りの角度をθとし、このθを用いて半平面７７０を特定することにする。ここで、θは０度以上３６０度未満である。このとき、半平面７７０は、Ｇ＝０の平面（Ｒ軸とＢ軸により特定される面）において、点（ｃｏｓθ，０，ｓｉｎθ）を含むことになる。
【００４７】
なお、半平面とは、ある点Ｕ＝（Ｕｒ，Ｕｇ，Ｕｂ）と、単位ベクトル（７０７）Ｖ＝（Ｖｒ，Ｖｇ，Ｖｂ）に対して、α（Ｕｒ，Ｕｇ，Ｕｂ）＋β（Ｖｒ，Ｖｇ，Ｖｂ）と表現できる点の集まりである。ここで、αは０以上の実数であり、βは実数である。
【００４８】
図８は、光源と色空間における画素データの関係を示す図である。図８（ａ）は、ＲＧＢの３次元色空間上の単位ベクトル７０８が、光源１０から出力された光の成分（Ｒｓ，Ｇｓ，Ｂｓ）と同じ方向であった場合の例である。ここで、（Ｒｓ，Ｇｓ，Ｂｓ）のベクトルとしての大きさは１に正規化されているものとする。この場合、図５により説明したように、図８（ａ）の画素データ７８４乃至７８６は、単位ベクトル７０８を含む半平面７８０上に存在している。なお、画素データ７８４乃至７８６は、同じマテリアル成分の画素データである。
【００４９】
一方、図８（ｂ）は、ＲＧＢの３次元色空間上の単位ベクトル７０９が、光源１０から出力された光の成分（Ｒｓ，Ｇｓ，Ｂｓ）と異なる方向であった場合の例である。ここでは、画素データ７９７乃至７９９は、それぞれ異なる半平面７９４乃至７９６に含まれることになる。なお、画素データ７９７乃至７９９は、同じマテリアル成分の画素データである。
【００５０】
このように、中心となる単位ベクトルをどのように仮定するかによって、それにより特定される半平面が異なり、また、単位ベクトルが光源の成分と同方向の場合にはマテリアル成分が同じ画素データは同じ半平面に存在するようになる。
【００５１】
そこで、本発明の実施の形態では、予め特定の光源を仮定して、その光源の分光分布を上述の単位ベクトルとして入力画像における各画素データについて角度θを求めて半平面を特定し、近傍の画素データの角度θが等しいほど仮定した光源が正しかったものと推定する。これは、仮定した光源が正しくない場合には図８（ｂ）のように近傍の画素データの角度θにばらつきが生じることを利用したものである。近傍の画素データ同士は同じ物体（同じマテリアル成分）の投影像の一部である場合が多いため、仮定した光源が正しければ、近傍の画素データの角度θは同一の値となる場合が多いからである。
【００５２】
図９は、本発明の実施の形態における角度θを表す画像の具体例である。この画像は、ある入力画像においてマテリアル成分が同一の部分について角度θを表したものである。角度θは輝度により表現されており、角度θが近ければ輝度も近くなる。
【００５３】
図９（ａ）は仮定した光源が正しかった場合の例であり、図９（ｂ）は仮定した光源が正しくなかった場合の例である。両者を比較すると、仮定した光源が正しくなかった場合には正しかった場合よりも小さな領域が多く存在していることが分かる。
【００５４】
図１０は、本発明の実施の形態における光源推定回路２００の一構成例を示す図である。この光源推定回路２００は、分光分布保持部２１０と、半平面生成部２２０と、領域サイズ生成部２３０と、判定部２４０とを備えている。
【００５５】
分光分布保持部２１０は、候補となる光源の分光エネルギー分布を鏡面反射成分（スペキュラー成分）として保持するものである。ここでは、一例として、（１）太陽光、（２）電球、（３）蛍光灯、および、（４）ＬＥＤ照明の４種類の光源の分光エネルギー分布を予めＲＯＭ（Read Only Memory）に保持しておくものとする。
【００５６】
この分光分布保持部２１０において保持されるスペキュラー成分のベクトルを（Ｒｓｉ，Ｇｓｉ，Ｂｓｉ）とする。ここで、ｉは１から４の整数であり、上述の４種類の光源の何れかを特定するものである。
【００５７】
半平面生成部２２０は、信号線１３９を介してデモザイクブロック１３０から供給された入力画像の座標（ｘ，ｙ）における画素データの各々について、仮定した光源のスペキュラー成分との間で特定される半平面の角度θ（ｘ，ｙ）を求めるものである。ここで、仮定した光源のスペキュラー成分は、分光分布保持部２１０に保持されたスペキュラー成分の中から選択される。また、入力画像の大きさをｘｍａｘ×ｙｍａｘ画素とする。すなわち、１≦ｘ≦ｘｍａｘ、１≦ｙ≦ｙｍａｘ、である。但し、ｘ、ｙ、ｘｍａｘ、および、ｙｍａｘは、正の整数である。
【００５８】
角度θ（ｘ，ｙ）を求めるに際しては、入力画像における画素データの誤差を考慮することが望ましい。この誤差の範囲をＲＧＢ色空間において（±δｒ，±δｇ，±δｂ）とする。すなわち、求めるべき角度θ（ｘ，ｙ）は、｛θ｜Ｒ（ｘ，ｙ）−δｒ≦Ｒ'≦Ｒ（ｘ，ｙ）＋δｒ、Ｇ（ｘ，ｙ）−δｇ≦Ｇ'≦Ｇ（ｘ，ｙ）＋δｇ、Ｂ（ｘ，ｙ）−δｂ≦Ｂ'≦Ｂ（ｘ，ｙ）＋δｂを満たす任意の１点（Ｒ'，Ｇ'，Ｂ'）と、ベクトル（Ｒｓｉ，Ｇｓｉ，Ｂｓｉ）を含む半平面を特定するθ｝という集合になる。なお、例外処理として、Ｒ（ｘ，ｙ）−δｒ≦Ｒ'≦Ｒ（ｘ，ｙ）＋δｒ、Ｇ（ｘ，ｙ）−δｇ≦Ｇ'≦Ｇ（ｘ，ｙ）＋δｇ、Ｂ（ｘ，ｙ）−δｂ≦Ｂ'≦Ｂ（ｘ，ｙ）＋δｂを満たす点（Ｒ'，Ｇ'，Ｂ'）が、ベクトル（Ｒｓｉ，Ｇｓｉ，Ｂｓｉ）と同じ方向である場合、半平面を特定することができないため、このような場合は、｛θ｜０度≦θ＜３６０度｝とする。
【００５９】
上述のように、半平面は、Ｇ＝０の平面において、点（ｃｏｓθ，０，ｓｉｎθ）を含む。そこで、まず、ＲＧＢの３次元色空間上の原点と、点（ｃｏｓθ，０，ｓｉｎθ）と、（Ｒｓｉ，Ｇｓｉ，Ｂｓｉ）の３点を含む平面の式は、以下のようになる。
Ｓｒ×Ｒ＋Ｓｇ×Ｇ＋Ｓｂ×Ｂ＝０
但し、
Ｓｒ＝−ｓｉｎθ
Ｓｇ＝（Ｒｓｉ×ｓｉｎθ−Ｂｓｉ×ｃｏｓθ）÷Ｇｓｉ
Ｓｂ＝ｃｏｓθ
である。
【００６０】
また、あるθにより特定される半平面上の任意の点（Ｒ'，Ｇ'，Ｂ'）は、
Ｓｒ×Ｒ'＋Ｓｇ×Ｇ'＋Ｓｂ×Ｂ'＝０    （式Ａ）
および
ｃｏｓθ×｛Ｒ'−（Ｒ'×Ｒｓｉ＋Ｇ'×Ｇｓｉ＋Ｂ'×Ｂｓｉ）×Ｒｓｉ｝
＋ｓｉｎθ×｛Ｂ'−（Ｂ'×Ｒｓｉ＋Ｇ'×Ｇｓｉ＋Ｂ'×Ｂｓｉ）×Ｂｓｉ｝
≧  ０    （式Ｂ）
の２式を満たす。換言すれば、これら式ＡおよびＢを満たせば、点（Ｒ'，Ｇ'，Ｂ'）は、θにより特定される半平面上に存在することになる。なぜなら、原点と（Ｒｓｉ，Ｇｓｉ，Ｂｓｉ）を通る直線上の点の中で、点（Ｒ'，Ｇ'，Ｂ'）に最も近い点のＲ座標は、
（Ｒ'×Ｒｓｉ＋Ｇ'×Ｇｓｉ＋Ｂ'×Ｂｓｉ）×Ｒｓｉ
であり、Ｇ座標は、
（Ｒ'×Ｒｓｉ＋Ｇ'×Ｇｓｉ＋Ｂ'×Ｂｓｉ）×Ｇｓｉ
であり、Ｂ座標は、
（Ｒ'×Ｒｓｉ＋Ｇ'×Ｇｓｉ＋Ｂ'×Ｂｓｉ）×Ｂｓｉ
であるが、この点を起点として、（Ｒ'，Ｇ'，Ｂ'）を終点とするベクトルを考えると、このベクトルと（ｃｏｓθ，０，ｓｉｎθ）との内積は０以上になるからである。
【００６１】
半平面生成部２２０において角度θを求めるためには、θの値を０．０から３６０．０まで増加させていき、
点（Ｒ（ｘ，ｙ）−δｒ，Ｇ（ｘ，ｙ）−δｇ，Ｂ（ｘ，ｙ）−δｂ）、
点（Ｒ（ｘ，ｙ）＋δｒ，Ｇ（ｘ，ｙ）−δｇ，Ｂ（ｘ，ｙ）−δｂ）、
点（Ｒ（ｘ，ｙ）−δｒ，Ｇ（ｘ，ｙ）＋δｇ，Ｂ（ｘ，ｙ）−δｂ）、
点（Ｒ（ｘ，ｙ）＋δｒ，Ｇ（ｘ，ｙ）＋δｇ，Ｂ（ｘ，ｙ）−δｂ）、
点（Ｒ（ｘ，ｙ）−δｒ，Ｇ（ｘ，ｙ）−δｇ，Ｂ（ｘ，ｙ）＋δｂ）、
点（Ｒ（ｘ，ｙ）＋δｒ，Ｇ（ｘ，ｙ）−δｇ，Ｂ（ｘ，ｙ）＋δｂ）、
点（Ｒ（ｘ，ｙ）−δｒ，Ｇ（ｘ，ｙ）＋δｇ，Ｂ（ｘ，ｙ）＋δｂ）、
点（Ｒ（ｘ，ｙ）＋δｒ，Ｇ（ｘ，ｙ）＋δｇ，Ｂ（ｘ，ｙ）＋δｂ）、
の８個の点を頂点とする立方体（すなわち、画素位置（ｘ，ｙ）における誤差を考慮した画素データ）の１２個の辺上で、「θにより特定される半平面」上に含まれる点があるかを調べる。そして、１２個の辺上の中で半平面上に含まれる点が少なくとも１つでもあれば、現在のθの値が半平面リストに登録される。すなわち、上述の式ＡおよびＢの２式を満たす（Ｒ'，Ｇ'，Ｂ'）が、１２個の辺上の点の中で１つでも存在すれば、現在のθの値が半平面リストに登録される。
【００６２】
このようにして生成された半平面リストは領域サイズ生成部２３０に供給される。なお、半平面リストとは角度θの値を任意の数保持するものであり、そのデータ構造は特に制約されるものではない。但し、任意の数の角度θが追加されていくため、可変構造になっていることが望ましい。
【００６３】
領域サイズ生成部２３０は、半平面生成部２２０から供給された半平面リストに基づいて、各画素データの近傍で同じ角度θの他の画素データをグループ化して、そのグループ化により分割された領域の平均的なサイズを求めるものである。
【００６４】
この領域サイズ生成部２３０は、入力画像の全ての画素位置（ｘ、ｙ）において「画素位置（ｘ，ｙ）を含む領域の大きさＳ」を求め、これら求められた領域の大きさＳの平均を「グループ化により分割された領域の平均的な大きさＭＳ」として出力する。すなわち、
ＭＳ＝（ΣＳ）÷（ｘｍａｘ×ｙｍａｘ）
である。なお、上式内のΣは、ｘおよびｙについての和である。
【００６５】
また、θ'∈｛θ（ｘ，ｙ）｝を満たすθ'の中で、領域Ａ（ｘ，ｙ，θ'）の要素数が最大となるθ'をθ０としたときの、領域Ａ（ｘ，ｙ，θ０）の要素数が「画素位置（ｘ，ｙ）を含む領域の大きさＳ」になる。ここで、領域Ａ（ｘ，ｙ，θ'）は、隣接する２つの画素位置（ｘ１，ｙ１）および（ｘ２，ｙ２）において両者ともθ'∈｛θ（ｘ１，ｙ１）｝およびθ'∈｛θ（ｘ２，ｙ２）｝を満たす場合にのみ接続する線分を考えたときに、これら線分を辿ることで（ｘ，ｙ）から（ｘ０，ｙ０）へ到達できるという画素位置（ｘ０，ｙ０）全体より成る領域である。
【００６６】
隣接する位置関係のもので同じθの画素位置があればグループ化するという操作の結果、画像は複数の領域に分割される。これら領域の中で、「着目している画素位置（ｘ，ｙ）」を含むものを考える。入力データに誤差があるため、角度θが一意に定まらず、グループ化（領域分割）も一意に定まらない。そのため、誤差範囲内でθを変化させて、「着目している画素位置（ｘ，ｙ）」を含む領域が最大となるものを求める。これがＡ（ｘ，ｙ，θ０）である。「着目している画素位置（ｘ，ｙ）」を含む領域は、誤差を考慮しても、Ａ（ｘ，ｙ，θ０）を越えた大きさになることはないということを意味している。
【００６７】
この様子を表したものが図１１である。ここでは、画素位置（ｘ，ｙ）７１の角度θは０．５であると想定している。また、画素位置（ｘ０，ｙ０）７２の角度θも０．５である。画素位置７１と７２の隣接する画素位置においても角度θは０．５であることから、画素位置７２は画素位置７１と同じ領域内に存在することになる。実際には、画素位置７１および７２を含む領域７０が上述の領域Ａの条件を満たす。
【００６８】
このような領域を抽出するためには、例えば、入力画像の各画素に１ビットずつ割り当てたメモリマップＭ（１〜ｘｍａｘ，１〜ｙｍａｘ）を想定して、このメモリマップを更新していくことによって、最終的に「１」となっている画素数がその領域サイズの候補として得られる。すなわち、予め、メモリマップの全てを「０」にリセットして、着目している画素位置（ｘ，ｙ）に対応するＭ（ｘ，ｙ）のみを「１」にセットする。そして、以下の３つの判断がラスタスキャン順に全ての画素位置に対して行われる。
【００６９】
（判断１）調査を行う対象となるメモリマップの画素位置にすでに「１」というデータが割り当てられている場合には、そのまま「１」として、その画素位置に割り当てられているデータを更新しない。
（判断２）調査を行う対象となるメモリマップの画素位置に「０」というデータが割り当てられていて、かつ、その画素位置の上下左右の４つの隣接画素位置の少なくとも１つの画素位置に「１」というデータが割り当てられている場合には、調査を行う対象となる画素位置の角度θが同じであればそのデータを「０」から「１」に更新する。調査を行う対象となる画素位置の角度θが同じでなければそのデータを更新しない。
（判断３）調査を行う対象となるメモリマップの画素位置に「０」というデータが割り当てられていて、かつ、その画素位置の上下左右の４つの隣接画素位置にすべて「０」というデータが割り当てられている場合には、調査を行う対象となる画素位置のデータを「０」のままとして、その画素位置に割り当てられているデータを更新しない。
【００７０】
これら３つの判断をラスタスキャン順に全ての画素位置に対して行った結果、何れかの画素位置において更新が行われた場合には、さらにその処理を繰り返す。何れの画素位置においても更新が行われなくなった場合には、その際のメモリマップにおいて「１」となっている画素数がその領域サイズの候補になる。角度θ'の値を０．０から３６０．０まで増加させて、このような処理を行った結果、領域サイズの候補のうち最大のものが領域サイズとして得られる。
【００７１】
領域サイズ生成部２３０は、このようにして得られた領域サイズの全画素位置の平均を仮定した光源毎に求めて、平均領域サイズとして判定部２４０に供給する。
【００７２】
判定部２４０は、半平面生成部２２０から供給された光源毎の平均領域サイズに基づいて何れの光源が正しいかを判定するものである。すなわち、判定部２４０は、平均領域サイズの最も大きい光源を正しい光源として判断する。この判定結果は、信号線２０９を介して画像処理パラメータ設定部３００に供給される。
【００７３】
次に本発明の実施の形態における撮像装置の動作について図面を参照して説明する。
【００７４】
図１２は、本発明の実施の形態における撮像装置１００の処理手順の一例を示す流れ図である。電源が投入されると、（図示しない）レンズを介して撮像素子１１０の受光した光が入力画像として取り込まれるようになる。
【００７５】
入力画像は、撮像素子１１０によって光電変換されて、電気信号（電圧値）として出力される（ステップＳ９１１）。この電気信号はＡ／Ｄ変換回路１２０によってアナログ信号からデジタル信号に変換される（ステップＳ９１２）。そして、このデジタル信号は、デモザイクブロック１３０によってデモザイク処理が施される（ステップＳ９１３）。このデモザイク処理の施された画素データは、光源推定回路２００およびホワイトバランス回路１４０に供給される。
【００７６】
光源推定回路２００では、画素データに基づいてその入力画像が撮像された際の光源が推定される（ステップＳ９３０）。この光源推定処理によって推定された光源の種類は、画像処理パラメータ設定部３００に供給される。
【００７７】
画像処理パラメータ設定部３００は、推定された光源の種類に基づいて、画像処理のパラメータとしてホワイトバランスゲインおよび色補正行列をルックアップテーブルから読み出す（ステップＳ９１５）。ホワイトバランスゲインはホワイトバランス回路１４０に供給され、色補正行列は色再現処理回路１５０に供給される。
【００７８】
ホワイトバランス回路１４０は、デモザイクブロック１３０から供給された画素データに、画像処理パラメータ設定部３００から供給されたホワイトバランスゲインの対応するゲインを掛け合わせてホワイトバランス処理を行う（ステップＳ９１６）。また、色再現処理回路１５０は、ホワイトバランス回路１４０によってホワイトバランス処理が施された画素データに、画像処理パラメータ設定部３００から供給された色補正行列を掛け合わせて色再現処理を行う（ステップＳ９１７）。この色再現処理により、画素データはＸＹＺ空間上の１点となる。
【００７９】
信号変換処理回路１６０は、ＸＹＺ空間からＹＣＣ形式に変換を行う（ステップＳ９１８）。また、ガンマ補正回路１７０は、表示部１８１などのガンマ値に応じたガンマ補正を行う（ステップＳ９１９）。
【００８０】
このような処理を経た入力画像は、ユーザインターフェース１９０におけるシャッターボタンが押下されていない状態であれば表示部１８１にモニター画像として出力される（ステップＳ９２２）。一方、シャッターボタンが押下されるとその際の入力画像が画像データとしてデータ保持部１８２に記録される（ステップＳ９２３）。これらの処理は電源がオフになるまで繰り返される（ステップＳ９２４）。
【００８１】
図１３は、本発明の実施の形態における光源推定処理（ステップＳ９３０）の処理手順の一例を示す流れ図である。撮像素子１１０において撮像された画像は、Ａ／Ｄ変換回路１２０およびデモザイクブロック１３０を介して光源推定回路２００に入力される（ステップＳ９３１）。そして、仮定する光源の番号を表す変数ｉおよびその最大値を保持する変数ｉＭＡＸがともに「１」に設定される（ステップＳ９３２、Ｓ９３３）。
【００８２】
なお、ここでは、光源として、太陽光（第１光源）、電球（第２光源）、蛍光灯（第３光源）、および、ＬＥＤ照明（第４光源）の４種類を想定する。変数ｉを「１」ずつ増加させながら（ステップＳ９３８）、これら４種類の光源についてそれぞれ以下の処理を行う（ステップＳ９３４）。
【００８３】
まず、第ｉ光源について半平面リストが生成される（ステップＳ９４０）。この半平面リストは、入力画像の各画素データと第ｉ光源のスペキュラー成分によって特定される半平面の角度θを登録したものである。この半平面リストは、入力画像の全ての画素データについて生成される。なお、この半平面リストの生成手順については図１４により説明する。
【００８４】
そして、生成された半平面リストに基づいて、入力画像の各画素データについて領域サイズが生成される（ステップＳ９５０）。この領域は、図１１により説明したように、注目する画素位置（ｘ，ｙ）近傍における角度θの等しい領域である。この領域サイズは、入力画像の全ての画素データを「注目する画素位置」として、それぞれ生成される。なお、この領域サイズの生成手順については図１５により説明する。
【００８５】
入力画像の各画素データについて生成された領域サイズは、入力画像の全画素データ分加算され、全画素数によって除算されることにより、平均領域サイズが生成される（ステップＳ９３５）。そして、その平均領域サイズが他の光源による平均領域サイズよりも大きければ（ステップＳ９３６）、変数ｉＭＡＸに変数ｉの値が保持される（ステップＳ９３７）。
【００８６】
このようにして４種類の光源について平均領域サイズが生成された後に変数ｉＭＡＸに保持されている値が、推定された光源の番号となる。すなわち、第（ｉＭＡＸ）光源が推定結果となる（ステップＳ９３９）。
【００８７】
図１４は、本発明の実施の形態における半平面リスト生成処理（ステップＳ９４０）の処理手順の一例を示す流れ図である。ここでは、半平面を特定する角度θを「０．０」から「３５９．９」まで「０．１」ずつ増加させることによって、その角度θが半平面に含まれるか否かを逐一チェックしている。
【００８８】
まず、角度θには初期値として「０．０」が設定される（ステップＳ９４１）。そして、角度θを「０．１」ずつ増加させながら（ステップＳ９４５）、角度θが「３６０．０」になるまで（ステップＳ９４２）、注目する画素位置（ｘ，ｙ）が半平面に含まれるか否かが判断される（ステップＳ９４３）。注目する画素位置（ｘ，ｙ）が半平面に含まれる場合には、そのときの角度θが半平面リストに追加される（ステップＳ９４４）。
【００８９】
注目する画素位置（ｘ，ｙ）が半平面に含まれるかの判断においては、上述のように画素位置（ｘ，ｙ）における誤差を考慮した立方体の１２個の辺上で「θにより特定される半平面」上に含まれる点があるかを調べられる。すなわち、上述の式ＡおよびＢの２式を満たす（Ｒ'，Ｇ'，Ｂ'）が、１２個の辺上の点の中で１つでも存在すれば、そのときのθの値が半平面リストに登録される。
【００９０】
なお、この図１４の流れ図では１つの画素位置（ｘ，ｙ）に関する処理が示されているが、全体の処理では入力画像の全ての画素データについて上記処理が行われる。
【００９１】
図１５は、本発明の実施の形態における領域サイズ生成処理（ステップＳ９５０）の処理手順の一例を示す流れ図である。ここでは、半平面を特定する角度θ'を「０．０」から「３５９．９」まで「０．１」ずつ増加させることによって、その角度θ'を半平面リストに含む画素位置（ｘ，ｙ）においてその近傍の領域サイズを求めている。
【００９２】
まず、角度θ'には初期値として「０．０」が設定され（ステップＳ９５１）、領域サイズを保持する変数Ｎｕｍには初期値として「０」が設定される（ステップＳ９５２）。そして、角度θ'を「０．１」ずつ増加させながら（ステップＳ９６３）、角度θ'が「３６０．０」になるまで（ステップＳ９５３）、注目する画素位置（ｘ，ｙ）の半平面リストにその角度θ'が含まれるか否かが判断される（ステップＳ９５４）。注目する画素位置（ｘ，ｙ）の半平面リストにその角度θ'が含まれる場合には、以下の処理が行われる。
【００９３】
画素位置（ｘ，ｙ）の近傍の領域サイズを求めるために、入力画像の各画素に１ビットずつ割り当てたメモリマップＭ（１〜ｘｍａｘ，１〜ｙｍａｘ）の全てが「０」に設定された後（ステップＳ９５５）、着目する画素位置（ｘ，ｙ）に対応するＭ（ｘ，ｙ）のみが「１」に設定される（ステップＳ９５６）。そして、上述の３つの判断によってメモリマップＭの更新処理が行われる（ステップＳ９５７）。この３つの判断は、ラスタスキャン順に全ての画素位置（ｐ，ｑ）に対して行われる（ループＬ９０５）。但し、ｐおよびｑは正の整数であり、１≦ｐ≦ｘｍａｘ、１≦ｑ≦ｙｍａｘ、である。
【００９４】
メモリマップＭの更新処理（ステップＳ９５７）において、何れかの画素位置で実際に更新が行われた場合には、さらにラスタスキャン順に全ての画素位置（ｐ，ｑ）に対してメモリマップＭの更新処理が行われる（ステップＳ９５８）。
【００９５】
メモリマップＭの更新処理（ステップＳ９５７）において更新が行われなくなると（ステップＳ９５８）、メモリマップＭの各画素位置において「１」となっている数（以下、要素数という。）が変数Ｎｕｍの値と比較される（ステップＳ９６１）。そして、要素数が変数Ｎｕｍの値よりも大きければ、変数Ｎｕｍに要素数が保持される（ステップＳ９６２）。
【００９６】
角度θ'が「３５９．９」になるまで上記処理が行われ、角度θ'が「３６０．０」になった際の変数Ｎｕｍの値が注目する画素位置（ｘ，ｙ）における領域サイズとなる（ステップＳ９６９）。
【００９７】
なお、この図１５の流れ図では１つの画素位置（ｘ，ｙ）に関する処理が示されているが、全体の処理では入力画像の全ての画素データについて上記処理が行われる。
【００９８】
このように、本発明の実施の形態によれば、仮定された光源について半平面生成部２２０において生成された半平面リストに基づいて、領域サイズ生成部２３０において入力画像の各画素位置における領域サイズが生成されることにより、仮定された光源が正しかったか否かを判定部２４０によって判定することができる。これにより、従来のスペキュラー法では「画素をグループ化」して「光源の分光エネルギー分布」を求めていたのに対して、本発明実施の形態では「光源の分光エネルギー分布を仮定」して「画素がどのようにグループ化」されるかを求めることにより、マテリアル成分の等しい部分を手動で特定することなく、仮定した光源が正しい光源であったか否かを推定することができる。
【００９９】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、以下に示すように特許請求の範囲における発明特定事項とそれぞれ対応関係を有するが、これに限定されるものではなく本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
【０１００】
すなわち、請求項１において、分布保持手段は例えば分光分布保持部２１０に対応する。また、集合生成手段は例えば半平面生成部２２０に対応する。また、検出手段は例えば領域サイズ生成部２３０に対応する。また、判定手段は例えば判定部２４０に対応する。
【０１０１】
また、請求項４において、分布保持手段は例えば分光分布保持部２１０に対応する。また、集合生成手段は例えば半平面生成部２２０に対応する。また、領域サイズ生成手段は例えば領域サイズ生成部２３０に対応する。また、判定手段は例えば判定部２４０に対応する。
【０１０２】
また、請求項５において、撮像手段は例えば撮像素子１１０に対応する。また、分布保持手段は例えば分光分布保持部２１０に対応する。また、集合生成手段は例えば半平面生成部２２０に対応する。また、領域サイズ生成手段は例えば領域サイズ生成部２３０に対応する。また、判定手段は例えば判定部２４０に対応する。また、ホワイトバランス処理手段は例えばホワイトバランス回路１４０に対応する。また、色再現処理手段は例えば色再現処理回路１５０に対応する。
【０１０３】
また、請求項６および７において、集合生成手順は例えばステップＳ９４０に対応する。また、領域サイズ生成手順は例えばステップＳ９５０に対応する。また、判定手順は例えばステップＳ９３６乃至Ｓ９３９に対応する。
【０１０４】
なお、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。
【図面の簡単な説明】
【０１０５】
【図１】本発明の実施の形態における撮像装置１００の一構成例を示す図である。
【図２】カラー画像の撮像モデルを示す図である。
【図３】拡散反射成分（マテリアル成分）および鏡面反射成分（スペキュラー成分）の例を示す図である。
【図４】色空間における画素データの例を示す図である。
【図５】色空間における画素データの分布と半平面の関係の例を示す図である。
【図６】色空間上の平面とスペキュラー成分との関係例を示す図である。
【図７】本発明の実施の形態において半平面を特定する例を示す図である。
【図８】光源と色空間における画素データの関係を示す図である。
【図９】本発明の実施の形態における角度θを表す画像の具体例である。
【図１０】本発明の実施の形態における光源推定回路２００の一構成例を示す図である。
【図１１】本発明の実施の形態における画素位置（ｘ，ｙ）近傍の領域の一例を示す図である。
【図１２】本発明の実施の形態における撮像装置１００の処理手順の一例を示す流れ図である。
【図１３】本発明の実施の形態における光源推定処理（ステップＳ９３０）の処理手順の一例を示す流れ図である。
【図１４】本発明の実施の形態における半平面リスト生成処理（ステップＳ９４０）の処理手順の一例を示す流れ図である。
【図１５】本発明の実施の形態における領域サイズ生成処理（ステップＳ９５０）の処理手順の一例を示す流れ図である。
【符号の説明】
【０１０６】
１０  光源
２０、３０、５０  物体
４０  撮像装置
１００  撮像装置
１１０  撮像素子
１２０  変換回路
１３０  デモザイクブロック
１４０  ホワイトバランス回路
１５０  色再現処理回路
１６０  信号変換処理回路
１７０  ガンマ補正回路
１８１  表示部
１８２  データ保持部
１９０  ユーザインターフェース
２００  光源推定回路
２１０  分光分布保持部
２２０  半平面生成部
２３０  領域サイズ生成部
２４０  判定部
３００  画像処理パラメータ設定部
【図１】
2007306325.tif 000003
【図２】
2007306325.tif 000004
【図３】
2007306325.tif 000005
【図４】
2007306325.tif 000006
【図５】
2007306325.tif 000007
【図６】
2007306325.tif 000008
【図７】
2007306325.tif 000009
【図８】
2007306325.tif 000010
【図１０】
2007306325.tif 000011
【図１１】
2007306325.tif 000012
【図１２】
2007306325.tif 000013
【図１３】
2007306325.tif 000014
【図１４】
2007306325.tif 000015
【図１５】
2007306325.tif 000016
【図９】
2007306325.tif 000017