(57)【要約】【課題】入力された画像内の被写体を照らす光源の色を推定する際に、画素間の画素差分値の算出結果に基づいて光源の色を高精度で推定する画像処理技術を提供する。【解決手段】画像処理装置は、入力画像に対して、注目画素の画素値と前記注目画素に近接する近接画素の画素値との差分値をそれぞれ複数の異なる画素間隔で算出する算出手段１０６，１０８，１１０，１１２と、前記入力画像の被写体を照らしている光源の色を推定する光源推定手段１１３と、を備える。光源推定手段１１３は、前記算出手段１０６，１０８，１１０，１１２により複数の異なる画素間隔で算出された複数の差分値から選択した差分値に基づいて、前記光源の色を推定する。【選択図】図１
2015211318.tif 000002
【特許請求の範囲】
【請求項１】
入力画像に対して、注目画素の画素値と前記注目画素に対して間隔をあけて配置される他の画素の画素値との差分値をそれぞれ複数の異なる画素間隔で算出する算出手段と、
前記入力画像の被写体を照らしている光源の色を推定する光源推定手段と、を備え、
前記光源推定手段は、前記算出手段により複数の異なる画素間隔で算出された複数の差分値から選択した差分値に基づいて、前記光源の色を推定することを特徴とする画像処理装置。
【請求項２】
前記光源推定手段は、前記算出手段により複数の異なる画素間隔で算出された複数の差分値のそれぞれについて、有効画素として判定された画素が入力画像に占める割合を算出し、算出した有効画素の割合に基づいて、前記光源の色を推定する際に用いる差分値を選択することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記算出手段は、前記複数の差分値ごとに前記差分値を成分とする画素値差分ベクトルを生成し、
前記光源推定手段は、前記算出手段により生成した複数の前記画素値差分ベクトルの方向の類似の度合いを表す値である類似度を算出し、前記類似度が基づいて前記有効画素か否かを判定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記光源推定手段は、前記光源の色を推定する際に、前記算出手段により複数の異なる画素間隔で算出された複数の差分値のうち、対応する前記有効画素の割合が閾値以上で、かつ前記画素間隔が最も離れている差分値を選択することを特徴とする請求項２又は３に記載の画像処理装置。
【請求項５】
入力画像に対して、注目画素の画素値と前記注目画素に対して間隔をあけて配置される他の画素の画素値との差分値をそれぞれ複数の異なる画素間隔で算出する算出手段と、
前記入力画像の被写体を照らしている光源の色を推定する光源推定手段と、を備え、
前記光源推定手段は、前記算出手段により複数の異なる画素間隔で算出された複数の差分値のそれぞれについて、有効画素として判定された画素が入力画像に占める割合を算出し、算出した有効画素の割合に基づいて設定した重みをかけて算出した結果に基づいて、前記光源の色を推定することを特徴とする画像処理装置。
【請求項６】
前記入力画像を異なる縮小率で縮小した複数の縮小画像を生成する画像縮小手段を備え、
前記算出手段は、前記入力画像、及び前記複数の縮小画像からそれぞれ複数の異なる画素間隔での差分値を算出することを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
入力画像に対して、注目画素の画素値と前記注目画素に対して間隔をあけて配置される他の画素の画素値との差分値をそれぞれ複数の異なる画素間隔で算出する算出ステップと、
前記入力画像の被写体を照らしている光源の色を推定する光源推定ステップと、を備え、
前記光源推定ステップは、前記算出ステップで複数の異なる画素間隔で算出された複数の差分値から選択した差分値に基づいて、前記光源の色を推定することを特徴とする画像処理装置の制御方法。
【請求項８】
入力画像に対して、注目画素の画素値と前記注目画素に対して間隔をあけて配置される他の画素の画素値との差分値をそれぞれ複数の異なる画素間隔で算出する算出ステップと、
前記入力画像の被写体を照らしている光源の色を推定する光源推定ステップと、をコンピュータに実行させ、
前記光源推定ステップは、前記算出ステップで複数の異なる画素間隔で算出された複数の差分値から選択した差分値に基づいて、前記光源の色を推定することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばデジタルカメラやデジタルビデオカメラ等の撮像装置を含む電子機器における画像処理技術に関し、特に入力された画像内の被写体を照らしている光源の色を推定する画像処理技術に関する。
【背景技術】
【０００２】
デジタルカメラ等の撮像装置では、２色性反射モデルに基づいた光源推定処理を行うものがある。２色性反射モデルとは、被写体からの反射光が、被写体色に依存する乱反射光成分と、光源色に依存する鏡面反射光成分とからなるモデルである。
【０００３】
従来、例えば、入力画像中の近接した位置にあり、かつ輝度差のある２点Ａ，Ｂの画素値の差分を取ることによって、被写体からの反射光から鏡面反射成分のみを抽出して、光源色を推定する画像処理装置が開示されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１３４１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記特許文献１では、近接する画素間での差分を取る点については開示されているが、差分を取る画素間の間隔の決定方法については開示も示唆もされていない。差分を取る画素間の間隔が狭すぎると、鏡面反射成分に対応する画素差分値が小さい値となり、差分値に基づく光源推定の精度が低下する。逆に、差分を取る画素間の間隔が広すぎると、異なる被写体間での画素差分値を算出してしまう場合が多くなり、光源推定を誤る可能性がある。
【０００６】
そこで、本発明は、入力された画像内の被写体を照らす光源の色を推定する際に、画素間の画素差分値の算出結果に基づいて光源の色を高精度で推定する画像処理技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の画像処理装置は、入力画像に対して、注目画素の画素値と前記注目画素に対して間隔をあけて配置される他の画素の画素値との差分値をそれぞれ複数の異なる画素間隔で算出する算出手段と、前記入力画像の被写体を照らしている光源の色を推定する光源推定手段と、を備え、前記光源推定手段は、前記算出手段により複数の異なる画素間隔で算出された複数の差分値から選択した差分値に基づいて、前記光源の色を推定することを特徴とする。
【０００８】
また、本発明の画像処理装置は、入力画像に対して、注目画素の画素値と前記注目画素に対して間隔をあけて配置される他の画素の画素値との差分値をそれぞれ複数の異なる画素間隔で算出する算出手段と、前記入力画像の被写体を照らしている光源の色を推定する光源推定手段と、を備え、前記光源推定手段は、前記算出手段により複数の異なる画素間隔で算出された複数の差分値のそれぞれについて、有効画素として判定された画素が入力画像に占める割合を算出し、算出した有効画素の割合に基づいて設定した重みをかけて算出した結果に基づいて、前記光源の色を推定することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、入力された画像内の被写体を照らす光源の色を推定する際に、画素間の画素差分値の算出結果に基づいて光源の色を高精度で推定することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の画像処理装置の実施形態の一例であるデジタルカメラの概略部録図である。
【図２】光源推定部における光源推定処理を示すフローチャート図である。
【図３】図２のステップＳ２０１、ステップＳ２０３、ステップＳ２０５、ステップＳ２０７で行う画素値差分算出部の処理例を示すフローチャート図である。
【図４】入力画像の画素を示す図である。
【図５】画素値差分ベクトルの方向のヒストグラムを示す図である。
【図６】図２のステップＳ２０８におけるＷＢゲイン算出部による縮小率の選択処理、及び光源推定処理を示すフローチャート図である。
【図７】画像の縮小率と有効画素割合と閾値との関係を示すグラフ図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、本発明の実施形態の一例を説明する。
【００１２】
図１は、本発明の画像処理装置の実施形態の一例であるデジタルカメラの概略部録図である。
【００１３】
図１に示すように、本実施形態のデジタルカメラ１００は、レンズ１０１及びシャッタ１０２を通過して入射した被写体光が結像する撮像素子１０３を有する。撮像素子１０３は、ＣＣＤセンサやＣＭＯＳセンサ等で構成され、入射した被写体光を電気信号に光電変換して画像信号生成部１０４、及び光源推定部１０５に出力する。
【００１４】
画像信号生成部１０４は、入力画像の画像信号（Ｒ，Ｇ，Ｂ）を生成し、生成した画像信号をホワイトバランス（ＷＢ）補正部１１４に出力する。光源推定部１０５は、４つの画素値差分算出部１０６，１０８，１１０，１１２、３つの画像縮小部１０７，１０９，１１１、及びＷＢゲイン算出部１１３を有する。
【００１５】
ＷＢ補正部１１４は、設定されたＷＢゲインに基づいて、画像信号に対するホワイトバランス補正して画像信号補正部１１５に出力する。画像信号補正部１１５は、ガンマ補正やカラーバランス補正など、画像信号に対する各種の補正処理を行う。記録部１１６は、画像信号補正部１１５で補正処理が施された画像信号を不図示の記録媒体に保存する。
【００１６】
次に、図１に示すデジタルカメラ１００の動作例を説明する。ユーザが不図示のレリーズボタンを押下操作すると、シャッタ１０２が所定の時間だけ開く。これにより、レンズ１０１を介して、撮像素子１０３へ被写体光が入射する。撮像素子１０３は入射した光を電気信号に変換して画像信号生成部１０４へ出力する。画像信号生成部１０４は入力された電気信号に基づいて各画素に対する画素値（Ｒ，Ｇ、Ｂ）を生成し、光源推定部１０５とＷＢ補正部１１４へ出力する。
【００１７】
光源推定部１０５は、入力された画像信号に基づいて光源の色を推定し、ＷＢゲインを算出する。ここでの光源推定処理の詳細については後述する。ＷＢ補正部１１４は、算出されたＷＢゲインに基づいて入力された画像信号に対するホワイトバランス補正を行い、補正後の画像信号を画像信号補正部１１５へ出力する。画像信号補正部１１５は、入力された画像信号に対して各種の補正処理を行い、記録部１１６へ出力する。記録部１１６は、入力画像信号を不図示の記録媒体へ記録する。
【００１８】
次に、図２乃至図７を参照して、光源推定部１０５における光源推定処理について具体的に説明する。図２は、光源推定部１０５における光源推定処理を示すフローチャート図である。なお、図２での各処理は、不図示のＲＯＭ等に記憶された制御プログラムが不図示のＲＡＭに展開されて不図示の制御回路のＣＰＵ等により実行される。
【００１９】
図２において、ステップＳ２０１では、制御回路は、画素値差分算出部１０６により入力画像信号を画像信号生成部１０４から読み出し、画素値差分ベクトルとその差分ヒストグラムＡＨを算出する。そして、制御回路は、画素値差分算出部１０６で算出した差分ヒストグラムＡＨをＷＢゲイン算出部１１３へ出力し、ステップＳ２０２に進む。なお、ここでの処理の詳細については、図３等を用いて後述する。
【００２０】
ステップＳ２０２では、制御回路は、画像縮小部１０７により入力画像信号を画像信号生成部１０４から読み出し、公知の画像縮小法を用いて例えば１／２の縮小率の縮小画像ＢＳを生成し、ステップＳ２０３に進む。
【００２１】
ステップＳ２０３では、制御回路は、画素値差分算出部１０８により画像縮小部１０７から縮小画像ＢＳを読み出し、画素値差分ベクトルとその差分ヒストグラムＢＨを算出する。そして、制御回路は、画素値差分算出部１０８で算出した差分ヒストグラムＢＨをＷＢゲイン算出部１１３へ出力し、ステップＳ２０４に進む。ここでの処理は、ステップＳ２０１と同様であるため、詳細については、図３等を用いて後述する。
【００２２】
ステップＳ２０４では、制御回路は、画像縮小部１０９により縮小画像ＢＳを画像縮小部１０７から読み出し、公知の画像縮小法を用いて例えば１／２の縮小率の縮小画像ＣＳを生成し、ステップＳ２０５に進む。
【００２３】
ステップＳ２０５では、制御回路は、画素値差分算出部１１０により画像縮小部１０９から縮小画像ＣＳを読み出し、画素値差分ベクトルとその差分ヒストグラムＣＨを生成する。そして、制御回路は、画素値差分算出部１１０で算出した差分ヒストグラムＣＨをＷＢゲイン算出部１１３へ出力し、ステップＳ２０６に進む。ここでの処理は、ステップＳ２０１と同様であるため、詳細については、図３等を用いて後述する。
【００２４】
ステップＳ２０６では、制御回路は、画像縮小部１１１により縮小画像ＣＳを画像縮小部１０９から読み出し、公知の画像縮小法を用いて例えば１／２の縮小率の縮小画像ＤＳを生成し、ステップＳ２０７に進む。
【００２５】
ステップＳ２０７では、制御回路は、画素値差分算出部１１２により画像縮小部１１１から縮小画像ＤＳを読み出し、画素値差分ベクトルとその差分ヒストグラムＤＨを算出する。そして、制御回路は、画素値差分算出部１１２により算出した差分ヒストグラムＤＨをＷＢゲイン算出部１１３へ出力し、ステップＳ２０８に進む。ここでの処理は、ステップＳ２０１と同様であるため、詳細については、図３等を用いて後述する。
【００２６】
以上の処理により、入力画像、入力画像を１／２に縮小した縮小画像ＢＳ、入力画像を１／４に縮小した縮小画像ＣＳ、及び入力画像を１／８に縮小した縮小画像ＤＳの計４枚の画像それぞれに対して画素値差分ベクトルの差分ヒストグラムＡＨ〜ＤＨが算出される。そして、算出された差分ヒストグラムＡＨ〜ＤＨは、ＷＢゲイン算出部１１３へ出力されることになる。
【００２７】
ステップＳ２０８では、制御回路は、ＷＢゲイン算出部１１３により、入力された画素値差分ベクトルの差分ヒストグラムＡＨ〜ＤＨを比較して最適な縮小率を選択する。そして、制御回路は、ＷＢゲイン算出部１１３により、選択した縮小率の画像から算出されたヒストグラムに基づいて光源色を推定してＷＢゲインを算出し、算出したＷＢゲインをＷＢ補正部１１４へ出力する。なお、ＷＢゲイン算出部１１３による縮小率の選択処理、及び光源推定処理の詳細については、図６及び図７を用いて後述する。
【００２８】
次に、図３乃至図５を参照して、４つの画素値差分算出部１０６，１０８，１１０，１１２がそれぞれ行う処理の詳細を説明する。図３は、画素値差分算出部１０６，１０８，１１０，１１２がそれぞれ図２のステップＳ２０１、ステップＳ２０３、ステップＳ２０５、ステップＳ２０７で行う処理例を示すフローチャート図である。図４は、入力画像の画素を示す図である。なお、画素値差分算出部１０６，１０８，１１０，１１２での基本的処理は、同一であるため、ここでは、制御回路によって制御される画素値差分算出部１０６の処理についてのみ説明する。
【００２９】
まず、図４において、メッシュ枠は、入力画像の各画素を表す。そして、図４（ａ）に示すように、入力画像の座標（ｉ，ｊ）における画素値をＰ（ｉ，ｊ）とすると、画素値は、Ｒ，Ｇ，Ｂの３成分から成り立つので、Ｐ（ｉ，ｊ）＝（Ｒ（ｉ，ｊ）、Ｇ（ｉ，ｊ）、Ｂ（ｉ，ｊ））となる。
【００３０】
図３に戻って、ステップＳ３０１では、画素値差分算出部１０６は、生成された画像の画素値Ｐ（ｉ，ｊ）を読み出し、ステップＳ３０２に進む。ここで、画素値Ｐ（ｉ、ｊ）を読み出す際には、注目する画素の画素値と、当該画素から所定の間隔ｄ（例えば、１画素）の位置にある複数の近接画素の画素値も併せて読み出す。具体的には、画素値Ｐ（ｉ，ｊ）の画素の位置から上下左右の方向にそれぞれ間隔ｄだけ離れた位置における複数の画素の画素値Ｐ（ｉ，ｊ−ｄ）、Ｐ（ｉ，ｊ＋ｄ）、Ｐ（ｉ−ｄ，ｊ）、Ｐ（ｉ＋ｄ，ｊ）を併せて読み出す。
【００３１】
ステップＳ３０２では、画素値差分算出部１０６は、ステップＳ３０１で読み出した注目画素と近接画素との間の画素差分値を算出し、ステップＳ３０３に進む。ここで、図４（ｂ）に示すに、注目画素の画素値Ｐ（ｉ，ｊ）と複数の近接画素の画素値Ｐ（ｉ，ｊ−ｄ）、Ｐ（ｉ，ｊ＋ｄ）、Ｐ（ｉ−ｄ，ｊ）、Ｐ（ｉ＋ｄ，ｊ）との差分をそれぞれｄＵ（ｉ，ｊ）、ｄＤ（ｉ，ｊ）、ｄＬ（ｉ，ｊ）、ｄＲ（ｉ，ｊ）とする。即ち、ｄＵ（ｉ，ｊ）＝Ｐ（ｉ，ｊ）−Ｐ（ｉ，ｊ−ｄ）、ｄＤ（ｉ，ｊ）＝Ｐ（ｉ，ｊ）−Ｐ（ｉ，ｊ＋ｄ）、ｄＬ（ｉ，ｊ）＝Ｐ（ｉ，ｊ）−Ｐ（ｉ−ｄ，ｊ）、ｄＲ（ｉ，ｊ）＝Ｐ（ｉ，ｊ）−Ｐ（ｉ＋ｄ，ｊ）とする。
【００３２】
画素値Ｐは（Ｒ，Ｇ，Ｂ）の３つの成分から成るので、画素値差分は、ｄＵ（ｉ，ｊ）＝Ｐ（ｉ，ｊ）−Ｐ（ｉ，ｊ−ｄ）＝（Ｒ（ｉ，ｊ）−Ｒ（ｉ，ｊ−ｄ）、Ｇ（ｉ，ｊ）−Ｇ（ｉ，ｊ−ｄ）、Ｂ（ｉ，ｊ）−Ｂ（ｉ，ｊ−ｄ））となる。このことは、Ｒ差分値、Ｇ差分値、Ｂ差分値の３つの成分からなるベクトルと見なすことができる。ｄＤ（ｉ，ｊ）、ｄＬ（ｉ，ｊ）、ｄＲ（ｉ，ｊ）についても、同様である。
【００３３】
ステップＳ３０３では、画素値差分算出部１０６は、ステップＳ３０２で算出した画素値差分ベクトルの絶対値を算出し、ステップＳ３０４に進む。具体的には、画素値差分算出部１０６は、｜ｄＵ（ｉ，ｊ）｜、｜ｄＤ（ｉ，ｊ）｜、｜ｄＬ（ｉ，ｊ）｜、｜ｄＲ（ｉ，ｊ）｜を算出する。
【００３４】
ステップＳ３０４では、画素値差分算出部１０６は、ステップＳ３０３で算出した画素値差分ベクトルの絶対値が所定の閾値範囲内にあるか否かを判定する。ここで、画素値差分ベクトルの絶対値が所定の下限閾値を下回る場合は、被写体からの反射光がほぼ一様である場合に相当し、画素値の差分に基づいて鏡面反射成分を正確に推定することはできない。逆に、画素値差分ベクトルの絶対値が所定の上限閾値を上回る場合は、被写体間の境界や、光の当たり方が一様でない領域に相当する場合が多く、算出した差分値を鏡面反射成分の推定に用いることはできない。
【００３５】
したがって、算出した画素値差分ベクトルの絶対値のうち、何れか一つでも閾値範囲外にある場合には、その画素は光源推定に用いないこととし、ステップＳ３０８へ進み、閾値範囲内にある場合には、ステップＳ３０５へ進む。
【００３６】
ステップＳ３０５では、画素値差分算出部１０６は、算出した画素値差分ベクトル間の類似度を算出し、ステップＳ３０６に進む。ここでの類似度とは、画素値差分ベクトルの方向の類似の度合を表す指標である。ここでは、類似度として、画素値差分ベクトル間の成す角の方向余弦を算出し、その絶対値を用いるものとする。具体的には、ｄＵとｄＬ間の類似度をｓＵＬ、ｄＬとｄＤ間の類似度をｓＬＤ、ｄＤとｄＲ間の類似度をｓＤＲ、ｄＲとｄＵ間の類似度をｓＲＵとすると、ｓＵＬ（ｉ，ｊ）は、次式で表される。
ｓＵＬ（ｉ，ｊ）＝｜ｄｏｔ（ｄＵ（ｉ，ｊ）、ｄＬ（ｉ，ｊ））／（｜ｄＵ（ｉ，ｊ）｜｜ｄＬ（ｉ，ｊ）｜）｜
【００３７】
ただし、ｄｏｔ（Ａ，Ｂ）は、ベクトルＡとベクトルＢの内積を表す。他の方向の類似度ｓＬＤ，ｓＤＲ，ｓＲＵについても同様に表すことができる。
【００３８】
ステップＳ３０６では、画素値差分算出部１０６は、算出した４つの類似度を所定の類似度閾値（ｔｈ＿ｓｉｍ）と比較する。本実施形態では、類似度閾値（ｔｈ＿ｓｉｍ）は、例えば０．９とする。そして、画素値差分算出部１０６は、算出した類似度（ｓＵＬ、ｓＬＤ、ｓＤＲ、ｓＲＵ）が全て類似度閾値（ｔｈ＿ｓｉｍ）を上回る場合、その注目画素を有効画素と見なし、ステップＳ３０７へ進む。また、画素値差分算出部１０６は、算出した類似度（ｓＵＬ、ｓＬＤ、ｓＤＲ、ｓＲＵ）の何れか一つでも類似度閾値（ｔｈ＿ｓｉｍ）を下回る場合、その注目画素を無効画素と見なし、ステップＳ３０８へ進む。
【００３９】
このように、画素値差分ベクトルの類似度を用いて、被写体間の境界を含まない平坦な領域から算出した画素値差分ベクトルのみを抽出する。逆に、被写体間の境界や境界付近の領域で算出した画素値差分ベクトルは光源推定処理から除外する。
【００４０】
このような判別が可能となるのは次の理由による。即ち、比較する画素値差分ベクトルが全て同一被写体に属する画素間での差分である場合、その差分ベクトルの方向は光源色に対応した方向に揃う。一方、比較する画素値差分ベクトルが異なる被写体間の差分を含む場合、差分ベクトルの方向は、光源色に対応した方向と被写体物体色の差に対応した方向とにばらつく事になるからである。
【００４１】
ステップＳ３０７では、画素値差分算出部１０６は、有効画素と判定された画素の画素値差分ベクトルを、画素値差分ベクトルのヒストグラムに加算し、ステップＳ３０８に進む。
【００４２】
図５に、画素値差分ベクトルの方向のヒストグラムの一例を示す。図５（ａ）は画素値差分ベクトルのＲ成分についての分布を示すヒストグラム図、図５（ｂ）は画素値差分ベクトルのＢ成分についての分布を示すヒストグラム図である。また、横軸Ｇ／Ｒは画素値差分ベクトルのＧ成分とＲ成分の比であり、横軸Ｇ／Ｂは画素値差分ベクトルのＧ成分とＢ成分の比である。具体的には、Ｇ／Ｒ＝（Ｇ（ｉ，ｊ）−Ｇ（ｉ−ｄ，ｊ））／（Ｒ（ｉ，ｊ）−Ｒ（ｉ−ｄ，ｊ））、Ｇ／Ｂ＝（Ｇ（ｉ，ｊ）−Ｇ（ｉ−ｄ，ｊ））／（Ｂ（ｉ，ｊ）−Ｂ（ｉ−ｄ，ｊ））である。
【００４３】
なお、ここでは、画素値差分ベクトルとしてｄＬ（ｉ，ｊ）を用いる場合で例示したが、ｄＬ（ｉ，ｊ）の他に、ｄＵ（ｉ，ｊ）、ｄＤ（ｉ，ｊ）、ｄＲ（ｉ，ｊ）の何れを用いてもよい。また、ｄＬ（ｉ，ｊ）とｄＵ（ｉ，ｊ）との平均値を用いるなど、複数の画素値差分ベクトルに基づいてヒストグラムを算出しても良い。このように、算出した画素値差分ベクトルに対して、Ｇ／Ｒ、及びＧ／Ｂを算出し、算出した値に対応するヒストグラムの区間の頻度を加算する。
【００４４】
ステップＳ３０８では、画素値差分算出部１０６は、読みだした画像の全ての画素に対して処理が完了したか否かを判定し、完了していればステップＳ３０９へ進み、完了していなければステップＳ３０１へ戻って一連の処理を繰り返し行う。
【００４５】
ステップＳ３０９では、画素値差分算出部１０６は、算出した画素値差分ベクトルのヒストグラムのデータをＷＢゲイン算出部１１３へ出力し、処理を終了する。画素値差分算出部１０８，１１０，１１２についても、同様に、ステップＳ３０１〜ステップＳ３０９の処理を行う。
【００４６】
次に、図６及び図７を参照して、図２のステップＳ２０８におけるＷＢゲイン算出部１１３による縮小率の選択処理、及び光源推定処理について説明する。
【００４７】
図６において、ステップＳ６０１では、ＷＢゲイン算出部１１３は、画素値差分算出部１０６，１０８，１１０，１１２がそれぞれ算出した画素値差分ベクトルのヒストグラムＡＨ〜ＤＨのデータを読み出し、ステップＳ６０２に進む。
【００４８】
ステップＳ６０２では、ＷＢゲイン算出部１１３は、ステップＳ６０１で読み出した差分ヒストグラムＡＨ〜ＤＨのそれぞれに対して、有効画素として判定された画素が入力画像中に占める割合を算出し、ステップＳ６０３に進む。具体的には、ヒストグラムの全区間の頻度を合算し、その値をそれぞれのヒストグラムを算出するのに用いた画像の画素数で除して、割合を算出する。入力画像、縮小画像ＢＳ、ＣＳ、ＤＳから算出した有効画素の割合をそれぞれ、Ｒ＿Ａ、Ｒ＿Ｂ、Ｒ＿Ｃ、Ｒ＿Ｄとする。
【００４９】
ステップＳ６０３では、ＷＢゲイン算出部１１３は、算出した有効画素の割合に基づいて、光源推定に最適な縮小率を選択し、ステップＳ６０４に進む。
【００５０】
ここで、図７を参照して、縮小率の選択方法を説明する。図７において、縦軸は有効画素の割合、横軸は縮小率である。符号７０１〜７０４は、それぞれ、Ｒ＿Ａ、Ｒ＿Ｂ、Ｒ＿Ｃ、Ｒ＿Ｄを示す。
【００５１】
縮小率を高くすると、画素値差分ベクトルを算出する際に、異なる被写体間の差分が含まれる可能性が高くなるため、有効画素割合が低くなると考えられる。一方、縮小率を高くすると、画素値差分ベクトルを算出する画素の間の間隔は広がるため、画素値差分ベクトルの大きさは大きくなり、その方向を精度よく求めることが容易になる。このため、有効画素割合が所定の閾値（Ｔｈ＿Ｒ）以上で、縮小率が最も高いものを選択する。図７の例では、縮小率１／４（有効画素割合７０３）を最適な縮小率として選択する。
【００５２】
ステップＳ６０４では、ＷＢゲイン算出部１１３は、ステップＳ６０１で読み出した画素値差分ベクトルのヒストグラムのうち、ステップＳ６０３で選択した縮小率での縮小画像から算出されたヒストグラムに基づいて、光源色を推定し、ステップＳ６０５に進む。具体的には、縮小率１／４で縮小した縮小画像ＣＳから算出した差分ヒストグラムＣＨを用いる（ステップＳ２０５）。
【００５３】
光源色の推定方法として、本実施形態では、ヒストグラムの分布のピークの位置を判定する方法を用いる。具体的には、図５に示す画素値差分ベクトルのヒストグラムに対して、その頻度が最も高い区間を検出し、その区間に対応するＧ／Ｒ、Ｇ／Ｂの値を算出する。なお、頻度が最も高い区間を検出し、その前後の所定の範囲の区間を抽出して、各区間の頻度で重みづけしながら対応するＧ／Ｒ、Ｇ／Ｂの値の平均値を算出するようにしても良い。
【００５４】
ここで算出したＧ／Ｒ、Ｇ／Ｂ値が、画素値差分に基づいて推定した光源色の推定結果を表す。このように、画素値差分ベクトルの方向に対するヒストグラムのピーク位置情報を用いることにより、鏡面反射成分を精度よく抽出することができる。なぜならば、入力画像中に鏡面反射する被写体が複数ある一般的な場合には、光源色に対応した画素値差分ベクトルが入力画像中の複数の箇所で算出されることになる。このため、ヒストグラムの中で光源色に対応した方向に対する度数が高くなり、ピークを形成すると考えられるからである。
【００５５】
ステップＳ６０５では、ＷＢゲイン算出部１１３は、算出したＧ／Ｒ、Ｇ／Ｂの値をホワイトバランス補正時のＲゲイン、ＢゲインとしてＷＢ補正部１１４に出力し、処理を終了する。
【００５６】
以上説明したように、本実施形態では、画素値の差分に基づいて光源色を推定する際に、複数の縮小率の中から光源推定に最適な縮小率を選択し、その縮小率で縮小した画像からの画素値差分に基づいて光源色を推定するようにしている。具体的には、画素値差分ベクトルの方向の類似度合が高い画素を有効画素としたときの有効画素の割合に基づいて最適な縮小率を決定するようにしている。これにより、鏡面反射成分の抽出に最適な画素間の間隔を決定して画素値差分を算出し、入力された画像内の被写体を照らす光源の色を高精度で推定することができる。
【００５７】
なお、本発明は、上記実施形態に例示したものに限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
【００５８】
例えば、上記実施形態では、画像の縮小率として、１／２、１／４、１／８の３通りを用いる場合を例示したが、これに限定されず、例えば１／１６等の異なる値を用いてもよい。また、縮小率を予め設定された値に固定せず、入力画像に合わせて設定するようにしてもよい。
【００５９】
例えば、エッジ検出などの既知の方法を用いて、入力画像中の被写体の輪郭を検出し、輪郭線の量に応じて、縮小率を決定する。具体的には、輪郭線が多く含まれる場合は、縮小率を１／２、１／４等の低い値に設定し、異なる被写体間での差分算出が生じないようにする。逆に、輪郭線があまり含まれていない場合は、縮小率を１／８、１／１６等の高い値に設定し、画素値差分ベクトルの方向を算出し易いように制御する。
【００６０】
また、上記実施形態では、３つの画像縮小部１０７，１０９，１１１により、順次縮小画像を生成する場合を例示したが、これに限定されない。例えば、画像縮小部１０７，１０９，１１１を並列に配置し、それぞれの縮小率を１／２、１／４、１／８に設定して、同時に縮小画像を生成するようにしてもよい。これにより、処理に要する時間を短縮する事が可能となる。
【００６１】
また、上記実施形態では、有効画素の割合を算出し、その値に基づいて最適な縮小率を選択したが、最適な縮小率の選択方法はこれに限定されない。例えば、それぞれの縮小率で生成した画素値差分ベクトルの分布に基づいて縮小率を選択するようにしてもよい。具体的には、図５に示す画素値差分ベクトルのヒストグラムにおいて、ヒストグラムの頻度が所定の閾値を超える区間の個数を算出し、その値が最も小さくなるヒストグラムに対応した縮小率を選択する。この方法で選択された縮小率での縮小画像は、画素値差分ベクトルの方向が揃う場合に対応しており、異なる被写体間での差分などの影響が小さいと考えられるからである。
【００６２】
また、上記実施形態では、複数の縮小率から最適な縮小率を一つ選択する場合を例示したが、これに限定されない。例えば、複数の縮小率で生成した画素値差分の結果に重み付けをしながら足し合わせて光源推定するようにしてもよい。具体的には、複数の縮小率のうち、有効画素の割合が高い場合ほど大きな重みをかけるようにして、画素値差分ベクトルのヒストグラムを足し合わせ、足し合わせたヒストグラムのピークを検出することによって、光源推定する。すなわち、複数の縮小率で算出した画素値差分の結果に基づいて光源推定する方法であれば、特に限定されない。
【００６３】
また、上記実施形態では、複数の異なる縮小率で縮小画像を生成し、それぞれに対して画素値差分ベクトルを算出したが、画素値差分ベクトルの算出方法はこれに限定されない。すなわち、複数の異なる画素間隔で画素値差分ベクトルを算出する方法であれば、どのような方法を用いてもよい。例えば、入力画像から画素値差分ベクトルを算出する際に、画素の間隔を２、４、８と順に変えて算出するようにしてもよい。
【００６４】
なお、画素値差分ベクトルを算出する際に、入力画像に対して公知の方法でノイズ除去処理などを行い、画素値差分ベクトルの算出がノイズの影響を受けない様にしてもよい。この場合、画素間隔を大きくした場合が縮小率を大きく（例えば１／８）した場合に相当しており、画素値差分ベクトルの大きさは大きくなるが、異なる被写体間の差分を取ってしまう可能性が高くなる。そこで、画素の間隔を順に変えた場合の有効画素の割合をそれぞれ算出し、有効画素の割合が所定の閾値以上であるものの中から、最も画素の間隔が離れているものを選択して光源推定に用いるようにする。
【００６５】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。ネットワーク又は各種記憶媒体を介して取得したソフトウェア（プログラム）をパーソナルコンピュータ（ＣＰＵ，プロセッサ）にて実行することでも実現できる。
【符号の説明】
【００６６】
１００  デジタルカメラ
１０４  画像信号生成部
１０５  光源推定部
１０６  画素値差分算出部
１０７  画像縮小部
１０８  画素値差分算出部
１０９  画像縮小部
１１０  画素値差分算出部
１１１  画像縮小部
１１２  画素値差分算出部
１１３  ＷＢゲイン算出部
【図１】
2015211318.tif 000003
【図２】
2015211318.tif 000004
【図３】
2015211318.tif 000005
【図４】
2015211318.tif 000006
【図５】
2015211318.tif 000007
【図６】
2015211318.tif 000008
【図７】
2015211318.tif 000009