説明

画像処理装置および画像処理方法

【課題】 簡易かつ精度良く入力画像の光源色を予測可能とする。
【解決手段】 画像処理装置は、画像に照射された光源色を検出する光源色検出部1と、光源色検出部1で検出した光源色の各色値に基づいてホワイトバランスを算出するホワイトバランス算出部2と、算出したホワイトバランスに基づいてホワイトバランスの調整を行うホワイトバランス補正部3とを備えている。入力画像中の近接した2点A,Bの画素値の差分を取ることで光源色を検出し、その光源色を用いてホワイトバランス調整を行うため、画像の色に左右されずに、きわめて簡易かつ精度よくホワイトバランス調整を行うことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、光源色を検出する画像処理装置に関する。
【背景技術】
【0002】
ビデオカメラ等においてホワイトバランスの調整を行うホワイトバランス制御装置が知られている(特許文献1,2、3参照)。この種の従来のホワイトバランス制御装置では、撮像被写体の白色領域内の信号を積分してホワイトバランスのずれを検出するのが一般的である。
【特許文献1】特開平2-94890号公報
【特許文献2】特開平5-344530号公報
【特許文献3】特開平11-205806号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、実際の撮像被写体は、白色に近い色であっても完全な白色ではなく、また、光源の色温度は光源ごとに異なるため、完全な白色領域を特定するのは困難である。例えば、上述した特許文献3では、色信号と輝度信号で構成される色空間を複数の領域に分割し、各領域に含まれる信号量を検出して得られる被写体の色分布に基づいてホワイトバランスのずれを検出しているが、白色領域を基準としてホワイトバランスのずれを検出する点では、他の公知文献と同様である。
【0004】
このように、従来のホワイトバランス制御装置は、白色領域に基づいてホワイトバランスのずれ検出とその調整を行うため、もともと白色部分の少ない撮像被写体を用いて正しくホワイトバランスの調整を行うことは困難である。また、上述したように、光源の色温度や被写体自身の色などを考慮に入れてホワイトバランスの調整を行うおうとすると、複雑な処理を行わなければならず、処理に時間がかかるという問題もある。
【0005】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、簡易かつ精度良く入力画像の光源色を予測可能な画像処理装置および画像処理方法を提供することにある。
【課題を解決するための手段】
【0006】
本発明の一態様によれば、画像の中で平均よりも明るい第1の画素位置での画素値を検出する第1画素値検出手段と、前記第1の領域に近接し前記第1の画素位置よりも暗い第2の画素位置での画素値を検出する第2画素値検出手段と、前記第1画素値検出手段にて検出された画素値と前記第2画素値検出手段にて検出された画素値との差分に基づいて、前記画像に照射される光源の光源色を検出する光源色検出手段と、を備えることを特徴とする画像処理装置が提供される。
【発明の効果】
【0007】
本発明によれば、簡易かつ精度良く入力画像の光源色を予測でき、その予測結果を用いることで、精度よくホワイトバランス調整を行うことができる。
【発明を実施するための最良の形態】
【0008】
以下、図面を参照しながら、本発明の一実施形態について説明する。
【0009】
図1は本発明の一実施形態による画像処理装置の概略構成を示すブロック図である。図1の画像処理装置は、画像に照射された光源色を検出する光源色検出部1と、光源色検出部1で検出した光源色の各色値に基づいてホワイトバランスを算出するホワイトバランス算出部2と、算出したホワイトバランスに基づいてホワイトバランスの調整を行うホワイトバランス補正部3とを備えている。
【0010】
まず、光源色検出部1の動作原理について説明する。物体に光が当たった場合、2つの異なる反射が起きることが知られている。一つは方向性を持たずに反射される乱反射(拡散反射)と呼ばれる反射であり、物体の色を反映している。もう一つは特定方向散乱(鏡面反射)と呼ばれる反射であり、物体の色を反映しない代わりに光源の色を持っている(http://www.rsch.tuis.ac.jp~naka/naka/scola/member/chapter5_html/chapter5.html参照)。
【0011】
ここで、ある画像から検出された輝度の高い部分(より具体的には、その画像の平均輝度よりも高い部分)の色をA、その近傍の少し輝度が落ちている部分の色をBとする。この場合、Aの位置とBの位置は近接しているため、同一物体である可能性が高い。仮に、同一物体でない場合でも、画像から多くの部分を検出して平均化等の処理を施すことで、誤差を少なくすることができる。
【0012】
乱射光をD、特定方向散乱光をSとすると、Aの位置とBの位置は近接しているため、Dは略同一である。一方、Sは、光の入射角と反射角が等しくなる近傍で急激な変化を起こすことが知られている。このため、A,Bは近似的に以下の(1)および(2)式で表すことができる。
A=fa*S+D …(1)
B=fb*S+D …(2)
ここで、faはAの位置での乱反射に対する鏡面反射の比率を表し、fbはBの位置での乱反射に対する鏡面反射の比率を表している。
【0013】
物体に照射される光線を3刺激値R,G,Bでサンプルした場合、A値、B値、D値およびS値は三次元ベクトルとなる。これらベクトルは、以下の(3)〜(6)式で表される。
A=(A.R,A.G,A.B) …(3)
B=(B.R,B.G,B.B) …(4)
D=(D.R,D.G,D.B) …(5)
S=(S.R,S.G,S.B) …(6)
なお、光線を4刺激値C,M,Y,Gでサンプルした場合、A値、B値、D値およびS値は四次元ベクトルになる。
【0014】
ある物体の色(A,B,C)が仮に、(10,20,40)だとする。このとき、この物体に対してより強い光(例えば10倍の強さの光)を照射すると、(100,200,400)となる。(10,20,40)と(100,200,400)は、光の強さが異なるものの同じ色を表している。
【0015】
このように、線形のRGB空間において、ある色(R,G,B)と、その色をf倍した色(f*R,f*G,f*B)とは同一色である。
【0016】
色(R,G,B)のホワイトバランスゲインGainR,GainBは、以下の(7)および(8)式で表される。
GainR=20/10=2.0 …(7)
GainB=20/40=0.5 …(8)
【0017】
R値にゲインGainRを乗算し、B値にゲインGainBを乗算することでホワイトバランスを調整でき、ある物体の色(10,20,40)のホワイトバランス調整値は、(20,20,20)となる。これは、グレーの色を表している。同様に、強い光(100,200,400)のホワイトバランス調整値は(200,200,200)となり、やはりグレーになる。
【0018】
物体の明るい場所で取得(サンプル)された画素値A,Bはそれぞれ、より厳密には以下の(9)および(10)式で表される。
A=fs*S+fd*D …(9)
ここで、fa=fs/fdとおいて、fd=1となるように正規化を行うと、(1)式と同じ式が得られる。B値も同様に正規化を行うことにより、(2)式が得られる。
【0019】
上述した(1)および(2)式の差分を取ると、以下の(11)式が得られる。
A−B=(fa−fb)*S …(11)
【0020】
(11)式より、(A−B)値は、鏡面反射光Sの倍数になることがわかる。これは、(A−B)値が鏡面反射光と同じ色(すなわち、光源色の色)を表し、物体の色にはまったく依存しないことを示している。このように、明るさを問題にして、単に色(専門的には色座標あるいは色度座標)を扱う場合には、物体の色の差(A−B)と鏡面反射光Sとは同一の色として扱うことができる。
【0021】
この場合のホワイトバランスゲインGainR,GainBはそれぞれ(12)および(13)式で表される。
GainR=(fa−fb)*S.G/(fa−fb)*S.R …(12)
GainB=(fa−fb)*S.G/(fa−fb)*S.B …(13)
(12)および(13)式とも、分母と分子の(fa−fb)が打ち消されて、(14)および(15)式のようになる。
GainR=S.G/S.R …(14)
GainB=S.G/S.B …(15)
これら(14)および(15)式は、以下の(16)および(17)式と等価である。
GainR=(A.G−B.G)/(A.R−B.R) …(16)
GainB=(A.G−B.G)/(A.B−B.B) …(17)
これら(16)および(17)式からわかるように、ホワイトバランスゲインには、光源色の明るさは関係ないため、上述した(fa−fb)を無視することができる。
【0022】
以上に説明したように、ある物体の近接した2点A,Bの差分を検出することで、光源色を推測でき、その結果を用いてホワイトバランスゲインを計算することができる。
【0023】
以下、本実施形態の具体的な処理動作を説明する。図2は光源色検出部1の処理手順の一例を示すフローチャートである。まず、画像中の輝度の高い部分Aと、その近傍の輝度が少し落ちている部分Bとを検出するために、画像全体を複数画素からなるブロックに分割する(ステップS1)。以下では、図3に示すように画像を6×5画素の計30個のブロックに分割する例を示している。例えば、デジタルカメラで撮影した画像を用いて図2の処理を行う場合、一つのブロック内の画素数は5万〜50万画素である。ただし、ブロックのサイズには特に制限はなく、適宜最適な値を設定すればよい。
【0024】
次に、画像中の各画素の画素値を分類して格納するためのスキャン結果蓄積バッファ11内の全領域を初期化(ゼロクリア)する(ステップS2)。このバッファには、画像中の各画素の画素値がブロックごとに分類して格納される。図4は蓄積バッファ11のデータ構造を示す図である。図示のように、蓄積バッファ11は、30個のブロックに大きく分けられ、各ブロックが16個の段階を有し、各段階にSumとCntが格納される。例えば各画素値がR値、G値およびB値で構成される場合には、Sumは3次のベクトル量となり、R値、G値およびB値が格納される。あるいは、各画素値がC値、M値、Y値およびG値で構成される場合には、Sumは4次のベクトル量となり、C値、M値、Y値およびB値が格納される。Cntは各段階に格納される画素の数である。
【0025】
スキャン結果蓄積バッファ11の初期化が終わると、次に、画像をスキャンして各画素の画素値を順に取得する(ステップS3)。そして、取得した画素のブロック番号を検出する(ステップS4)。次に、取得した画素の画素値を計算し(ステップS5)、その画素値を格納すべき段階を決定する(ステップS6)。そして、決定した段階中のSumに、計算した画素値を足し合わせ、Cntに1を加算する(ステップS7)。
【0026】
次に、画像中の全画素をスキャンしたか否かを判定する(ステップS8)。まだスキャンしていない画素があれば、ステップS3以降の処理を繰り返す。
【0027】
スキャンが完了した場合には、各ブロックごとに、Cntが0でない段階の中で最も明るい段階のSum/CntをAとし、Cntが0でない二番目に明るい段階のSum/CntをBとし、これらA,BをAB値バッファ12に格納する(ステップS9)。
【0028】
なお、A値とB値は実際にはベクトルであるため、より詳細にはAB値バッファ12には以下の(18)〜(23)式に示す値が格納される。
A.R = 最も明るい段階のSum.R/Cnt …(18)
A.G =最も明るい段階のSum.G/Cnt …(19)
A.B =最も明るい段階のSum.B/Cnt …(20)
B.R = 二番目に明るい段階のSum.R/Cnt …(21)
B.G =二番目に明るい段階のSum.G/Cnt …(22)
B.B =二番目に明るい段階のSum.B/Cnt …(23)
【0029】
図5はAB値バッファ12のデータ構造の一例を示す図である。図示のように、AB値バッファ12は各ブロックごとにA値とB値を格納する領域を有する。
【0030】
上記ステップS9の処理が終了すると、すべてのブロックについてAB値バッファ12への格納が終了したか否かを判定し(ステップS10)、まだ終了していなければステップS9の処理を繰り返し、終了した場合には、AB値バッファ12の全A値の平均値と全B値の平均値との差分Cを計算する(ステップS11)。このステップS11は、上述した(11)式の演算を行っていることと等価であり、この差分Cが光源色になる。
【0031】
上述したステップS10の処理を行う際、全ブロックのA値の平均とB値の平均を計算する代わりに、AB値バッファ12に格納されたA値とB値のそれぞれについて、大きいものからn個(1≦n<30)の平均を計算して、その差分を演算してもよい。
【0032】
あるいは、以下の手法で(A値−B値)の重みを加重平均してもよい。実在する光Cの階調値を(C.R,C.G,C.B)とし、(A値−B値)をS=(S.R,S.G,S.B)とする。このとき、色距離kは以下の(24)式で表される。
【数1】

【0033】
(24)式に示すkを偏差として、その逆数1/kを各ブロックの(A値−B値)の重みとして加重平均することが考えられる。ここで、k=0の場合には、重みが無限大となるため、実装上は重み=1/(k+1)のように近似させればよい。
【0034】
光源色検出部1は、上述したステップS10で計算された差分Cを光源色として記憶する。以上で、光源色検出部1の処理が終了する。
【0035】
光源色検出部1の処理が終わった後、図1のホワイトバランス算出部2は、図6のフローチャートの処理手順に沿ってホワイトバランスゲインを計算する。まず、上述した(16)式に従って、R値のホワイトバランスゲインGainRを計算する(ステップS21)。具体的には、光源色検出部1で検出した光源色のG値/光源色のR値をGainRとして計算する。
【0036】
次に、(17)式に従って、B値のホワイトバランスゲインGainBを計算する(ステップS22)。具体的には、光源色検出部1で検出した光源色のG値/光源色のB値をGainBとして計算する。以上により、ホワイトバランス算出部2の処理が終了する。
【0037】
上述した(16)および(17)式は、光源色が白(R値、G値およびB値が同一値)としているが、光源色は必ずしも白である必要はない。例えば、人間が色順応しにくい低い色温度の光源の場合、若干黄色成分がある方が自然に見えることがある。この場合、例えば、光源色<3500K(ケルビン)のときは、以下の(25)〜(27)式に従ってホワイトバランスゲインを計算すればよい。
R値のホワイトバランスゲイン=0.9*Gc*Rc …(25)
G値のホワイトバランスゲイン=Gc/Gc=1 …(26)
B値のホワイトバランスゲイン=1.1*Gc/Bc …(27)
【0038】
一方、光源色≧3500Kのときは、以下の(28)〜(30)式に従ってホワイトバランスゲインを計算すればよい。
R値のホワイトバランスゲイン=Gc/Rc …(28)
G値のホワイトバランスゲイン=Gc/Gc=1 …(29)
B値のホワイトバランスゲイン=Gc/Bc …(30)
【0039】
ホワイトバランスゲインの算出が終了すると、次に、図1のホワイトバランス補正部3は、図7のフローチャートの処理手順に沿って、ホワイトバランス算出部2が算出したホワイトバランスゲインGainR,GainBを用いて、画像のホワイトバランス調整を行う。
【0040】
まず、画像をスキャンして画素を順に取得し(ステップS31)、各画素のR値およびB値をそれぞれ以下の(31)および(32)式に従って補正する(ステップS32)。
R値=R値*(R値のホワイトバランスゲイン) …(31)
B値=B値*(B値のホワイトバランスゲイン) …(32)
これにより、ホワイトバランス調整を行った最終的な画像データが得られる。
【0041】
このように、本実施形態では、入力画像中の近接した2点A,Bの画素値の差分を取ることで光源色を検出し、その光源色を用いてホワイトバランス調整を行うため、画像の色に左右されずに、きわめて簡易かつ精度よくホワイトバランス調整を行うことができる。
【0042】
上述した図2のステップS9では、AB値バッファ12中でCnt値が0でない段階を対象としてA値とB値を決定したが、Cntが例えば対象ブロック内の全画素数の所定割合(例えば1%)以上となる段階の中で最も明るい段階のSumをA値とし、二番目に明るい段階のSumをB値としてもよい。このように、A値とB値の候補を予め絞り込むことで、画像のノイズの影響を軽減できる。
【0043】
また、上述したステップS9では、最も明るい段階のSumをA値、二番目に明るい段階のSumをB値としたが、最も明るい段階から数段階のSumの平均をA値とし、その次に明るい段階から数段階のSumの平均をB値としてもよい。
【0044】
また、上述したステップS9において、AB値バッファ12に格納されたSumのうち、所定の基準値に満たないSumはA値とB値の対象から予め除外してもよい。
【0045】
図1に示す画像処理装置は、すべての構成部分をソフトウェアで実現することができる。したがって、例えば、パーソナルコンピュータのオペレーティングシステム上で起動するアプリケーションソフトウェアの形態で実現したり、あるいはデジタルカメラ内のファームウェアとして実装することも可能である。いずれの場合も、上述した図2および図6の処理手順はマイクロプロセッサにより実行可能である。
【0046】
本発明の具体的な実装形態は、例えばプリンタ、デジタル現像機、街角にあるデジタルカメラ写真印刷機や、プリント倶楽部(登録商標)などである。
【0047】
また、本発明の構成要件の少なくとも一部を半導体チップ等のハードウェアで構成してもよい。ハードウェアで構成することにより、処理の迅速化が図れる。また、システムLSIの内部に本発明を実装してもよい。
【図面の簡単な説明】
【0048】
【図1】本発明の一実施形態による画像処理装置の概略構成を示すブロック図。
【図2】光源色検出部1の処理手順の一例を示すフローチャート。
【図3】画像を30個のブロックに分割した例を示す図。
【図4】蓄積バッファ11のデータ構造を示す図。
【図5】AB値バッファ12のデータ構造の一例を示す図。
【図6】ホワイトバランス算出部の処理手順の一例を示すフローチャート。
【図7】ホワイトバランス補正部の処理手順の一例を示すフローチャート。
【符号の説明】
【0049】
1 光源色検出部
2 ホワイトバランス算出部
3 ホワイトバランス補正部
11 スキャン結果蓄積バッファ
12 AB値バッファ

【特許請求の範囲】
【請求項1】
画像の中で平均よりも明るい第1の画素位置での画素値を検出する第1画素値検出手段と、
前記第1の領域に近接し前記第1の画素位置よりも暗い第2の画素位置での画素値を検出する第2画素値検出手段と、
前記第1画素値検出手段にて検出された画素値と前記第2画素値検出手段にて検出された画素値との差分に基づいて、前記画像に照射される光源の光源色を検出する光源色検出手段と、を備えることを特徴とする画像処理装置。
【請求項2】
画像をそれぞれが複数画素からなる複数のブロックに分割して、各ブロック内の各画素の輝度を複数段階に分類する輝度分類手段を備え、
前記第1画素値検出手段は、各ブロックごとに、最も明るい段階に分類された画素の平均画素値をそれぞれ検出し、
前記第2画素値検出手段は、各ブロックごとに、二番目に明るい段階に分類された画素の平均画素値をそれぞれ検出し、
前記光源色検出手段は、前記第1画素値検出手段にて検出されたブロックごとの画素値の平均値の少なくとも一部と、前記第2画素値検出手段にて検出されたブロックごとの画素値の平均値の少なくとも一部との差分に基づいて、前記光源色を検出することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記第1画素値検出手段にて検出されたブロックごとの画素値の平均値のうち、平均値の大きい所定個の画素値の平均値を検出する第1の画素平均値検出手段と、
前記第2画素値検出手段にて検出されたブロックごとの画素値の平均値のうち、平均値の大きい所定個の画素値の平均値を検出する第2の画素平均値検出手段と、を備え、
前記光源色検出手段は、前記第1の画素平均値検出手段にて検出された平均値と前記第2の画素平均値検出手段にて検出された平均値との差分に基づいて、前記光源色を検出することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
各ブロックごとに、前記第1画素値検出手段にて検出された平均画素値と前記第2画素値検出手段にて検出された平均画素値との差分を検出する差分検出手段と、
前記差分検出手段にて検出された差分と実際の光源色との偏差を検出する偏差検出手段と、を備え、
前記光源色検出手段は、前記偏差の逆数に基づいて、前記画像に照射される光源色を検出することを特徴とする請求項2に記載の画像処理装置。
【請求項5】
前記光源色検出手段にて検出された光源色に基づいてホワイトバランス調整を行うホワイトバランス調整手段を備えることを特徴とする請求項1乃至4のいずれかに記載の画像処理装置。
【請求項6】
前記光源色検出手段にて検出された光源色を構成する複数の色成分に基づいて、ホワイトバランス調整を行うためのホワイトバランスゲインを算出するホワイトバランス算出手段を備え、
前記ホワイトバランス調整手段は、前記ホワイトバランスゲインに基づいてホワイトバランス調整を行うことを特徴とする請求項5に記載の画像処理装置。
【請求項7】
画像の中で平均よりも明るい第1の画素位置での画素値を検出するステップと、
前記第1の領域に近接し前記第1の画素位置よりも暗い第2の画素位置での画素値を検出するステップと、
前記第1画素位置で検出された画素値と前記第2画素位置で検出された画素値との差分に基づいて、前記画像に照射される光源の光源色を検出するステップと、を備えることを特徴とする画像処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2007−13415(P2007−13415A)
【公開日】平成19年1月18日(2007.1.18)
【国際特許分類】
【出願番号】特願2005−189916(P2005−189916)
【出願日】平成17年6月29日(2005.6.29)
【出願人】(596046118)株式会社市川ソフトラボラトリー (19)
【Fターム(参考)】