(57)【要約】【課題】  顔画像の中で違和感を生じないように歯の画像領域の色を補正する。【解決手段】  顔画像から歯の画像領域を検出し(S3002)、顔画像から白目の画像領域を検出し(S3005)、歯の画像領域の色の特徴量と、白目の画像領域の色の特徴量に基づき補正パラメータを計算して(S3008)、歯の画像領域の色を補正する(S3009)。【選択図】  図2
2008160474.tif 000002
【特許請求の範囲】
【請求項１】
顔画像から歯の画像領域を検出する第一の検出手段と、
前記顔画像から歯以外の顔の部位の画像領域を検出する第二の検出手段と、
前記歯の画像領域の色の特徴量と、前記歯以外の顔の部位の画像領域の色の特徴量に基づき、前記歯の画像領域の色を補正する補正手段とを有することを特徴とする画像処理装置。
【請求項２】
前記補正手段は、前記歯の画像領域の彩度、および、前記歯以外の顔の部位の画像領域の彩度に基づき、前記歯の画像領域の彩度を補正することを特徴とする請求項1に記載された画像処理装置。
【請求項３】
前記補正手段は、前記歯の画像領域の輝度と彩度、および、前記歯以外の顔の部位の画像領域の輝度と彩度に基づき、前記歯の画像領域の輝度と彩度を補正することを特徴とする請求項1に記載された画像処理装置。
【請求項４】
前記歯以外の顔の部位の画像領域は、白目の画像領域であることを特徴とする請求項1から請求項3の何れか一項に記載された画像処理装置。
【請求項５】
前記補正手段は、前記歯の画像領域の彩度を前記白目の画像領域の彩度に近付けるように補正することを特徴とする請求項4に記載された画像処理装置。
【請求項６】
前記歯以外の顔の部位の画像領域は、肌の画像領域であることを特徴とする請求項1から請求項3の何れか一項に記載された画像処理装置。
【請求項７】
さらに、前記歯の画像領域の色の特徴量と、前記歯以外の顔の部位の画像領域の色の特徴量に基づき、前記補正手段の処理の実行可否を判定する判定手段を有することを特徴とする請求項1に記載された画像処理装置。
【請求項８】
顔画像から歯の画像領域を検出し、
前記顔画像から歯以外の顔の部位の画像領域を検出し、
前記歯の画像領域の色の特徴量と、前記歯以外の画像領域の色の特徴量に基づき、前記歯の画像領域の色を補正することを特徴とする画像処理方法。
【請求項９】
画像処理装置を制御して、請求項8に記載された画像処理を実行することを特徴とするコンピュータプログラム。
【請求項１０】
請求項9に記載されたコンピュータプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、顔画像の画像処理に関する。
【背景技術】
【０００２】
人物画像の画質を向上させる技術への関心は高い。例えば特許文献1に開示された赤目補正技術や、特許文献2に開示された肌が滑らかに見えるように補正する技術などがある。
【０００３】
人物画像の印象を良くするには、目や肌の画質向上だけでなく、口元の画質向上も大きく影響する。例えば、黄ばみや染みがある歯の色を白く補正することで、清潔感がある健康的な歯に見え、その結果、人物画像全体の印象が良くなる。特許文献3は、顔の画像領域（以下、顔画像と呼ぶ）から歯の画像領域（以下、歯画像と呼ぶ）を検出し、検出した歯画像を所定の目標値に従い白色に補正する発明を開示する。
【０００４】
ただし、顔画像の画質に対する人間の感覚は敏感である。一方、顔のある器官の色と、他の器官の色の間にはバランスが必要で、ある器官の色が他の器官の色と大きく異なれば違和感を生じる。例えば、歯画像を白く補正する場合、歯画像の周囲の彩度に対して歯画像の彩度を下げ過ぎれば、顔画像の中の歯だけが目立ち、違和感がある顔画像になる。
【０００５】
とくに、全体の彩度が高い顔画像は歯の周辺部の色味が強い。このような顔画像の歯画像を、全体の彩度が低い顔画像と同様に、白く補正すれば、非常に歯が目立つ顔画像になる。言い換えれば、顔画像全体の彩度を考慮して、歯画像を補正する目標値を決定する必要がある。
【０００６】
【特許文献１】特開2002-247596公報
【特許文献２】特開平11-250227号公報
【特許文献３】特開2006-059162公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、顔画像の中で違和感を生じないように歯の画像領域の色を補正することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【０００９】
本発明にかかる画像処理装置は、顔画像から歯の画像領域を検出する第一の検出手段と、前記顔画像から歯以外の顔の部位の画像領域を検出する第二の検出手段と、前記歯の画像領域の色の特徴量と、前記歯以外の顔の部位の画像領域の色の特徴量に基づき、前記歯の画像領域の色を補正する補正手段とを有することを特徴とする。
【００１０】
本発明にかかる画像処理方法は、顔画像から歯の画像領域を検出し、前記顔画像から歯以外の顔の部位の画像領域を検出し、前記歯の画像領域の色の特徴量と、前記歯以外の顔の部位の画像領域の色の特徴量に基づき、前記歯の画像領域の色を補正することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、顔画像の中で違和感を生じないように歯の画像領域の色を補正することができる。
【発明を実施するための最良の形態】
【００１２】
以下、実施例の画像処理を図面を参照して詳細に説明する。
【実施例１】
【００１３】
［概要］
実施例1では、歯画像を白く補正する際に、白目の画像領域（以下、白目画像と呼ぶ）の彩度を解析して補正の目標値を決定する方法を説明する。
【００１４】
上述したように、歯画像の色を補正する場合、顔画像全体の色とのバランスを保たないと、歯だけが目立つ顔画像になり、違和感がある顔画像になる。そこで、実施例1では、顔画像の中で最も無彩色に近い歯以外の顔の部位（例えば白目画像）の彩度を解析して、歯以外の顔の部位の彩度に対して相対的な彩度を歯画像に与える補正の目標値を決定する。
【００１５】
［装置の構成］
図1は実施例1の画像処理装置の構成例を示すブロック図である。
【００１６】
CPU 104は、RAM 106をワークメモリとして、ROM 105およびハードディスクドライブ(HDD) 102に格納されたプログラムを実行し、システムバス109を介して後述する各構成を制御して、後述する処理を含む様々な処理を実行する。
【００１７】
入力部101は、キーボードやポインティングデバイスなどである。ユーザは、入力部101を介して画像処理装置にデータを入力し、様々な操作をCPU 104に指示する。HDD 102は、様々なバイナリデータやメタデータを格納する。また、後述する処理をCPU 104が実現するための制御プログラムや処理プログラムも格納する。
【００１８】
表示部103は、CRTやLCDである。CPU 104は、ユーザインタフェイス、処理の経過や結果などを表示部103に表示する。インタフェイス(I/F) 107は、例えばUSBやIEEE1394などのシリアルバスインタフェイスである。CPU 104は、I/F 107に接続されたディジタルカメラやメモリカードリーダから画像データを読み込んで、HDD 102に格納することができる。また、CPU 104は、HDD 102に格納された画像データなどをI/F 107を介して外部の装置に出力することができる。
【００１９】
［画像処理］
図2は画像処理を説明するフローチャートで、CPU 104が実行する処理である。
【００２０】
CPU 104は、補正対象の画像データをRAM 106の所定領域に読み込み(S3001)、読み込んだ画像データから顔画像を検出する(S3002)。顔画像の検出は、例えば「動領域内の肌色推定による顔画像および顔部品抽出」本郷仁志、山本和彦、映像情報メディア学会誌、社団法人映像情報メディア学会、1998年12月、第52巻、第12号、86-93頁に記載された方法を利用すればよい。あるいは、特開平7−141506号公報に開示された肌色を利用する方法や、パターンマッチングを利用する方法などでもよい。
【００２１】
次に、CPU 104は、検出した顔画像の中から歯画像を検出し(S3003)、検出した歯画像の平均彩度aveTSを計算する(S3004)。そして、CPU 104は、検出した顔画像の中から白目画像を検出し(S3005)、検出した白目画像の平均彩度aveESを計算する(S3006)。歯画像の検出方法、歯画像の平均彩度の計算方法、白目画像の検出方法、白目画像の平均彩度aveESの計算方法は後述する。
【００２２】
次に、CPU 104は、補正処理が必要な色味をもつ歯画像か否かを判定する(S3007)。この判定は、歯画像が元々白く、白色に補正する必要がない場合は歯画像の補正処理を省略するためである。標準的な顔画像においては、歯画像の彩度が白目画像の彩度よりもある程度高いと、歯画像が色味をもつように感じる。そこで、判定方法としては、歯画像の平均彩度aveTSと白目画像の平均彩度aveESが下式を満たすか否かを判定する。
aveTS/aveES ＞ th1      …(1)
ここで、th1は実験的に求めた閾値（th1＞1）
【００２３】
つまり、CPU 104は、式(1)が満たされる場合は歯画像の補正処理を行うために処理をステップS3008に進め、式(1)が満たされない場合は歯画像の補正処理を省略して処理を終了する。
【００２４】
歯画像の補正処理を行う場合、CPU 104は、歯画像を補正する際の補正パラメータPを計算し(S3008)、補正パラメータPにより歯画像が含む画素の値を補正する(S3009)。なお、CPU 104は、補正後（または未補正）の画像データをHDD 102の所定領域に格納し、ユーザ指示に応じて、当該画像データを外部の装置に出力したり、当該画像データが表す画像を表示部103に表示したりする。
【００２５】
●歯画像の検出(S3003)
図3は歯画像の検出を説明するフローチャートである。
【００２６】
CPU 104は、ステップS3002で検出した顔画像10に、図4に示す口の画像領域（以下、口画像と呼ぶ）を囲む矩形領域（以下、口候補矩形と呼ぶ）11を設定する(S3101)。口候補矩形11は、予め、顔画像の検出結果における口画像の位置を統計的に求め、統計的に求めた口画像の位置に基づき設定する。
【００２７】
ステップS3101で設定する口候補矩形11は、あくまで統計的な口画像の位置を囲むだけで、顔画像10上の口画像に外接する矩形領域ではない。そこで、以降の処理で、口画像に外接する矩形領域（以下、口外接矩形と呼ぶ）を求める。
【００２８】
CPU 104は、口外接矩形を求めるために、口候補矩形11内のエッジ画像を生成する(S3102)。エッジ画像は、特徴量として輝度、彩度、色相の少なくとも一つを用いてエッジを検出することで生成する。
【００２９】
次に、CPU 104は、生成したエッジ画像を解析して口外接矩形を求める(S3103)。
【００３０】
図5は口画像の端に接する線分を求める方法を説明する図である。なお、図5に示す口画像は、口候補矩形11内のエッジ画像に相当する。
【００３１】
図5に示すように、口画像の外側はエッジの数が少なく、口画像の内側は歯や唇などに相当するエッジが多数ある。従って、口候補矩形11内のエッジ画像からエッジが多い領域を検出することで、口外接矩形を求めることができる。
【００３２】
図5に示す線分CDは口候補矩形11を左右に二等分する。CPU 104は、まず、線分CD上のエッジを構成する画素の数Ecdをカウントする。なお、以下では、エッジを構成する画素を「エッジ画素」、エッジ画素の数を「エッジ数」と呼ぶ。次に、口候補矩形11の左上の点Eから左下の点Fに向かって縦方向に、エッジ数Eefをカウントする。そして、エッジ数EefとEcdが下式を満たすか否かを判定する。
Eef/Ecd ＞ th2      …(2)
ここで、th2は予め定めた閾値（0＜th2＜1）
【００３３】
式(2)が満たされない場合、CPU 104は、エッジ数のカウント開始点を点Eから点Cの方向に一座標分移動した点E+1にする。同様に、カウント終了点を点Fから点Dの方向に一座標分移動した点F+1にする。そして、点E+1から点F+1に向かって縦方向に、エッジ数Eefを再カウントする。そして、式(2)が満たされるまで、カウント開始点と終了点の右方向への移動と再カウントを繰り返す。
【００３４】
CPU 104は、式(2)が満たされると、その時点のカウント開始点E+nと終了点F+nを口外接矩形の左側（画像に向かって左側）の端、言い換えれば口外接矩形の左辺の位置にする。
【００３５】
次に、CPU 104は、口候補矩形11の右上の点Gから点Hに向かって縦方向に、エッジ数Eghをカウントし、エッジ数EghとEcdが下式を満たすか否かを判定し、下式が満たされるまでカウント開始点と終了点の左方向への移動と再カウントを繰り返す。そして、下式が満たされると、その時点のカウント開始点G-nと終了点H-nを口外接矩形の右側の端、言い換えれば口外接矩形の右辺の位置にする。
Egh/Ecd ＞ th2      …(3)
【００３６】
口外接矩形の上辺と下辺を同様に求めることができる。つまり、口候補矩形11を上下に二等分する線分IJ上のエッジ数Eijをカウントする。次に、口候補矩形11の左上の点Eから右上の点Gに向かって横方向に、エッジ数Eegをカウントし、エッジ数EegとEijが下式を満たすか否かを判定し、下式が満たされるまで、カウント開始点と終了点の下方向への移動と再カウントを繰り返す。そして、下式が満たされると、その時点のカウント開始点E+nと終了点G+nを口外接矩形の上側の端、言い換えれば口外接矩形の上辺の位置にする。
Eeg/Eig ＞ th3      …(4)
ここで、th3は予め定めた閾値（0＜th3＜1）
【００３７】
そして、口候補矩形11の右下の点Fから点Hに向かって横方向に、エッジ数Efhをカウントし、エッジ数EfhとEijが下式を満たすか否かを判定し、下式が満たされるまで、カウント開始点と終了点の上方向への移動と再カウントを繰り返す。そして、下式が満たされると、その時点のカウント開始点F-nと終了点H-nを口外接矩形の下側の端、言い換えれば口外接矩形の下辺の位置にする。
Efh/Eig ＞ th3      …(5)
【００３８】
上記では、線分CD、IJ上のエッジ数をエッジ数の比較対象にする例を説明したが、例えば、線分CD、IJ付近の複数ラインの平均エッジ数を用いるように構成してもよい。
【００３９】
図6は口候補矩形11と口外接矩形12の関係を示す図である。
【００４０】
次に、CPU 104は、歯画像を検出する。歯画像は、口外接矩形12内の画素の色情報から検出してもよいが、色情報のみの単純な検出では、口外接矩形12の四隅付近にある肌も含んでしまう可能性がある。そこで、唇の画像領域（以下、唇画像と呼ぶ）の特徴点を検出して、概略の唇画像を検出する(S3104)。そして、色情報を用いて、唇画像に囲まれる歯画像を検出する。
【００４１】
唇画像を検出するために、CPU 104は、唇画像の特徴点を求める。唇画像の特徴点として、例えば図7に示すP1〜P6で示すような六点を求める。そして、これら点を結ぶことで形成される六角形（図7に破線で示す）を唇画像とする。
【００４２】
図7に示す特徴点P1は、口外接矩形の左上の点aから点bに向かって縦方向にエッジ画素を検出して行き、最初に検出したエッジ画素である。同様に、特徴点P2は、点cから点dに向かって縦方向にエッジ画素を検出して行き、最初に検出したエッジ画素である。
【００４３】
また、特長点P3は、点aから点cに向かって横方向にエッジ画素を検出して行き、最初に検出したエッジ画素である。特長点P4は、点cから点aに向かって横方向にエッジ画素を検出して行き、最初に検出したエッジ画素である。特長点P5は、点bから点dに向かって横方向にエッジ画素を検出して行き、最初に検出したエッジ画素である。特長点P6は、点dから点cに向かって横方向にエッジ画素を検出して行き、最初に検出したエッジ画素である。この場合、特長点P1-P3-P4-P2-P6-P5-P1の順に結んだ六角形を概略の唇画像にする。
【００４４】
上記では、最初に検出したエッジ画素を唇画像の特徴点にする例を説明したが、連続して所定数のエッジ画素を検出した場合に、それらエッジ画素の何れかを特長点にしてもよい。
【００４５】
次に、CPU 104は、唇画像内に含まれる歯画像の画素（以下、歯画素と呼ぶ）を検出して、検出した歯画素の集合を歯画像とする(S3105)。例えば、唇画像内の画素の色相のヒストグラムを解析して歯画素を検出する。
【００４６】
図8は唇画像のヒストグラム例を示す図で、縦軸は画素数を、横軸は0度（360度）を青色、180度を黄色とする色相角を表す。
【００４７】
唇画像内には、唇画像と歯画像が存在するだけであるあるから、唇画像の色相ヒストグラムには、通常、二つのピークがある筈である。唇画像と歯画像の色相を考えると、二つのピークのうち赤色に近いピークは唇画像の画素（以下、唇画素と呼ぶ）によって構成され、もう一つのピークは歯画素によって構成される筈である。従って、図8の例では、赤色寄りの色相レンジ13は唇画素に、もう一つの色相レンジ14は歯画素にそれぞれ対応する。
【００４８】
つまり、唇画像の色相ヒストグラムを作成し、度数が大きい順に二つのピークを選択して、それらピークの位置（色相）と色相レンジから、唇画素が含まれる色相レンジと、歯画素が含まれる色相レンジを得ることができる。
【００４９】
従って、CPU 104は、唇画像から歯画素の色相レンジに含まれる画素を検出して、検出した歯画素の集合を歯画像にする。
【００５０】
上記では、歯画像の色による弁別の一例として色相に注目し、色相ヒストグラムを用いて唇画像内の歯画素を検出する例を説明した。しかし、唇画像内の彩度に注目して、低彩度の画素を歯画素として検出してもよい。
【００５１】
●歯画像の平均彩度の計算(S3004)
図9は歯画像の平均彩度の計算方法を説明するフローチャートである。
【００５２】
CPU 104は、画像上の座標を表す変数(i, j)にステップS3103で求めた口外接矩形12の左上の座標(mSX, mSY)を設定する。そして、彩度の加算値を表す変数SumTSと、歯画素のカウント値を表す変数countPixを零に初期化する(S3301)。なお、座標(mSX, mSY)は、原画像の左上を原点とする座標系の座標値である。図10は、座標(mSX, mSY)を点Mとし、幅をmW、高さをmHとした口外接矩形12を示す図である。
【００５３】
次に、CPU 104は、座標(i, j)の画素（以下、画素(i, j)とする）が、ステップS3003で検出した歯画素か否かを判定する(S3302)。この判定は、ステップS3003の歯画像の検出結果を基に、図11に示す検出結果を表す二値マスク画像を生成し、二値マスク画像の画素(i, j)の値を参照して行う。図11に示す例では、白色画素は歯画素と判定し、黒色画素は歯画素ではないと判定する。そして、歯画素と判定した場合は処理をステップS3303に進め、歯画素ではないと判定した場合は処理をステップS3305に進める。
【００５４】
画素(i, j)が歯画素の場合、CPU 104は、画素(i, j)のRGB値から下式により彩度tSを計算する(S3303)。
Cb = -0.1687×R - 0.3316×G + 0.5000×B
Cr =  0.5000×R - 0.4186×G - 0.0813×B
tS = √(Cb2 + Cr2)      …(6)
【００５５】
次に、CPU 104は、彩度tSを変数SumTSに加算し、変数countPixをインクリメントする(S3304)。
【００５６】
次に、CPU 104は、変数iをインクリメントして、参照位置を横方向に一画素分移動し(S3305)、変数iと口外接矩形12の右辺mSX+mWを比較する(S3306)。そして、i≦mSX+mWならば処理をステップS3302に戻す。また、i＞mSX+mWならば参照位置が口外接矩形12外として、処理をステップS3307に進める。
【００５７】
次に、CPU 104は、変数iをmSXにリセットして、変数jをインクリメントして、参照位置を縦方向に一画素分移動し(S3307)、変数jと口外接矩形12の下辺mSY+mHを比較する(S3308)。そして、j≦mSY+mHならば処理をステップS3302に戻す。また、j＞mSY+mHならば参照位置が口外接矩形12外として、処理をステップS3309に進める。
【００５８】
次に、CPU 104は、変数SumTSとcountPixから下式により歯画像の平均彩度aveTSを計算する(S3309)。
aveTS = SumTS/countPix      …(7)
【００５９】
●白目画像の検出(S3005)
次に、顔画像の（向かって）左側の目の白目画像を検出する方法を説明するが、右側の目の白目画像も同様の方法で検出する。
【００６０】
図12は白目画像の検出を説明するフローチャートである。
【００６１】
CPU 104は、ステップS3002で検出した顔画像10に、図13に示す目の画像領域（以下、目画像と呼ぶ）を囲む矩形領域（以下、目候補矩形と呼ぶ）15を設定する(S3201)。目候補矩形15は、口候補矩形11と同様に、予め、顔画像の検出結果における目画像の位置を統計的に求め、統計的に求めた目画像の位置に基づき設定する。
【００６２】
ステップS3201で設定する目候補矩形15は、あくまで統計的な目画像に位置を囲むだけで、顔画像10上の目画像に外接する矩形領域ではない。そこで、以降の処理で、目画像に外接する矩形領域（以下、目外接矩形と呼ぶ）を求める。
【００６３】
CPU 104は、目外接矩形を求めるために、目候補矩形15内のエッジ画像を生成する(S3202)。目外接矩形を求める方法は、ステップS3102、S3103で説明した口外接矩形12を求める方法と同様であるから、詳細説明を省略する。
【００６４】
図14は目候補矩形15と目外接矩形16の関係を示す図である。
【００６５】
次に、CPU 104は、白目画像を検出する。白目画像は、目外接矩形16内の画素の色情報から検出してもよいが、色情報のみの単純な検出では、目外接矩形16の四隅付近にある肌も含んでしまう可能性がある。そこで、目画像の特徴点を検出して、概略の目画像を検出する(S3204)。目画像の検出方法は、ステップS3104で説明した唇画像の検出方法と同様であるから、詳細説明を省略する。
【００６６】
図15は目画像の検出を説明する図である。唇画像と同様に、特徴点E1-E3-E4-E2-E6-E5-E1を結んだ六画形として目画像を検出する。
【００６７】
次に、CPU 104は、目画像に含まれる白目画像の画素（以下、白目画素と呼ぶ）を検出して、検出した白目画素の集合を白目画素とする(S3205)。
【００６８】
図16は白目画像の検出方法を説明するフローチャートである。ここでは、目画像から白目画像を検出する方法として、公知の領域拡張(region growing)法を用いる方法を説明する。
【００６９】
CPU 104は、目画像内の横方向に並んだ画素の輝度値をサンプリングする(S3401)。例えば、図17に示すように、目外接矩形16を上下に二等分する線分STを設定し、点Sから点Tに向って各画素の輝度値を取得する。図18は目画像と取得した各画素の輝度値の関係例を示す図である。勿論、サンプリングは1ラインに限らず、線分ST近傍の複数ラインでサンプリングしてもよい。
【００７０】
次に、CPU 104は、取得した各画素の輝度値から虹彩の画像領域（以下、虹彩画像と呼ぶ）17の左右端を検出する(S3402)。取得した各画素の輝度値は、図18に示すように、白目画像部分が高く、虹彩画像部分は低くなるめ、輝度値が急激に変化する位置（図18に示すB1、B2）が白目画像と虹彩画像17の境になる。
【００７１】
位置B1、B2の検出は次のように行う。例えば、線分ST上の画素の輝度値の平均がaveYの場合、図18に示す点Sから点Tに向かって輝度値Y(x)が式(8)を満たす位置xをB1とし、点Tから点Sに向かって輝度値Y(x)が式(9)を満たす位置xをB2とする。
Y(x) ＞ Y(x+1)  かつ  Y(x+1) ＜ aveY      …(8)
Y(x+1) ＞ Y(x)  かつ  Y(x) ＜ aveY        …(9)
【００７２】
次に、CPU 104は、虹彩画像17の左右端B1、B2と、ステップS3204で求めた目の両端の特徴点E1、E2から領域拡張の開始点（シード(seed)）を決定する(S3403)。
【００７３】
図19はシードの決定を説明する図である。まず、線分E1B1の中点Coを求めて、中点Coをシードにする。同様に、線分E2B2の中点Ccをシードにする。
【００７４】
次に、CPU 104は、決定したシードから領域拡張を行い白目画像を検出する(S3404)。領域拡張すると、白目画像の色と目近傍の肌の画像領域の色が近い場合、図20に示すように、拡張領域18が肌の画像領域まで侵入してしまうことがある。そこで、ステップS3204で検出した目画像内を領域拡張範囲にする。図21は、このような条件の下、領域拡張した結果の拡張領域19を示す図である。勿論、中点Cc側も同様に領域拡張して白目画像を検出する。
【００７５】
●白目画像の平均彩度の計算(S3006)
CPU 104は、図22に示すように、ステップS3203で求めた目外接矩形16の左上点Eの座標を(eSX, eSY)、幅をeW、高さをeHとする。そして、図10、11Aに示す歯画像の場合と同様に、図23に示す白目画像の検出結果を表す二値マスク画像を利用して、ステップS3005の歯画像の平均彩度aveTsの計算方法と同様の方法により、白目画像の平均彩度aveESを計算する。
【００７６】
ただし、歯画像とは異なり、通常、白目画像は左右一対あるので、各白目画像の平均彩度aveESを計算した後、それらの平均値を白目画像の平均彩度aveESとする。
【００７７】
●補正パラメータの計算(S3008)
歯画像の目標彩度をaimTSとすると、目標彩度aimTSは白目画像の平均彩度aveESの相対値として下式によって表される。
aimTS = a×aveES      …(10)
ここで、aは係数（a＞1）
【００７８】
係数aは、白目画像に対して歯画像をどの程度まで白くするかを表し、係数aが1に近いほど歯画像の白さは白目画像の白さに近付く。ただし、色味が弱い（薄い）顔画像に対して適正な係数aを、色味が強い（濃い）顔画像に適用すると歯画像が白くなり過ぎる傾向がある。そこで、色味が弱い顔画像に比べて、色味が強い顔画像の係数aが大きくなるように、下式を定義する。
a = b×aveES +c      …(11)
ここで、b、cは実験的に求めた定数
【００７９】
式(10)(11)から歯画像の目標彩度aimTSは下式で表される。
aimTS = (b×aveES + c)×aveES      …(12)
【００８０】
補正パラメータPは、歯画像の目標彩度aimTSと歯画像の平均彩度aveTSから下式のように定義する。
P = aimTS/aveTS      …(13)
【００８１】
従って、式(12)(13)をまとめると補正パラメータPは下式で表される。
P = (b×aveES + c)×aveES/aveTS      …(14)
【００８２】
●歯画像の補正(S3009)
補正パラメータPを用いた補正を歯画素すべてに施すと、歯画像と唇画像の境界付近において、補正画素と未補正画素の色の変化が滑らかにならず、違和感がある画像となる。この問題を解決するために、境界付近から外側に向かって徐々にブレンド率が低くなる、図24に示すブレンドマスク画像を用いて口外接矩形12内の画像を補正した画像と、原画像をアルファブレンドする。
【００８３】
図25は歯画像の補正を説明するフローチャートである。
【００８４】
CPU 104は、口外接矩形12内の画素をステップS3008で算出した補正パラメータPを用いて補正し、補正画像を生成する(S3501)。ステップS3501の処理の詳細は後述する
【００８５】
次に、CPU 104は、補正画像と原画像をアルファブレンドする際の、図24に示すブレンドマスク画像を生成する(S3502)。ブレンドマスク画像は、例えば、図11に示す二値マスク画像をぼかしフィルタ処理することで生成する。図24に示すブレンドマスク画像は、歯画像の境界から外側に向って徐々にブレンド率が低くなるブレンドマスクを示している。つまり、ブレンドマスク画像のブレンド率は、白色領域が100%、黒色領域が0%、グレイ領域が0%超100%未満である。また、ぼかしフィルタは公知のものでよく、例えばガウスぼかしフィルタなどを用いればよい。
【００８６】
次に、CPU 104は、ブレンドマスク画像を用いて、補正画像と原画像をアルファブレンドする(S3503)。ブレンド率100%の場合、補正画像が100%ブレンドされるようにアルファブレンドすることで、歯画像の境界から外側に向かって補正強度（補正パラメータP）が徐々に弱くなるように、補正画像と原画像がブレンドされ、違和感のない補正画像が得られる。
【００８７】
図26は補正画像の生成(S3501)を説明するフローチャートである。
【００８８】
CPU 104は、画像上の座標を表す変数(i, j)にステップS3103で求めた口外接矩形12の左上の座標(mSX, mSY)を設定する(S3601)。なお、座標(mSX, mSY)は、原画像の左上を原点とする座標系の座標値である。また、口外接矩形12の幅と高さは、図10に示すように、mW、mHである。
【００８９】
次に、CPU 104は、下式により、画素(i, j)のRGB値から輝度tY、色度tCb、tCrを計算する(S3602)
tY =  0.2990×R - 0.5870×G + 0.1140×B
tCb = -0.1687×R - 0.3312×G + 0.5000×B      …(15)
tCr =  0.5000×R - 0.4187×G - 0.0813×B
【００９０】
次に、CPU 104は、下式により、画素(i, j)の色度tCb、tCbを補正パラメータPを用いて補正する(S3603)。
tCb' = tCb×P
tCr' = tCr×P      …(16)
ここで、tCb'、tCr'は補正後の色度
【００９１】
次に、CPU 104は、下式により、輝度tYと補正後の色度tCb'、tCr'から補正後のR'G'B'値を計算sして、画素(i, j)の補正後の画素値にする(S3604)。
R' = tY + 1.402×Cr'
G' = tY - 0.344×Cb' - 0.714×Cr'      …(17)
B' = tY + 1.772×Cb'
【００９２】
次に、CPU 104は、変数iをインクリメントして、参照位置を横方向に一画素分移動し(S3605)、変数iと口外接矩形12の右辺mSX+mWを比較する(S3606)。そして、i≦mSX+mWならば処理をステップS3602に戻す。また、i＞mSX+mWならば参照位置が口外接矩形12外として、処理をステップS3607に進める。
【００９３】
次に、CPU 104は、変数iをmSXにリセットして、変数jをインクリメントして、参照位置を縦方向に一画素分移動し(S3607)、変数jと口外接矩形12の下辺mSY+mHを比較する(S3608)。そして、j≦mSY+mHならば処理をステップS3602に戻す。また、j＞mSY+mHならば参照位置が口外接矩形12外として、処理を終了する。
【００９４】
このように、白目画像の彩度に基づき、歯画像を補正する目標値（補正強度）を決定する。従って、全体の彩度が高い顔画像において、歯画像だけが目立つように補正することはなく、違和感のない白い歯画像に補正することができる。
【００９５】
［変形例］
上記では、歯画像と白目画像の彩度の平均値を算出して特徴量として補正の目標値を設定する例を説明したが、彩度の平均値の代わりに最頻値や中央値を用いてもよい。
【００９６】
また、歯画像の彩度を補正する例を説明したが、彩度だけを補正すると、歯画像が黒ずむような場合は、彩度の他に輝度も補正するようにしてもよい。その場合、歯画像の代表的な輝度tYと白目画像の代表的な輝度eYを算出し、tY/eY≦th4の場合に、補正パラメータを算出して歯画像の輝度を補正すればよい。なお、閾値th4は実験的に定める値（0＜th4＜1）である。また、この場合の補正パラメータは、式(11)〜(14)に示したような方法で、白目画像の輝度eYが高いほど歯画像の輝度tYが高くなるように設定する。
【００９７】
また、補正パラメータPは、白目画像の平均彩度aveESに応じて算出した目標彩度aimTSと歯画像の平均彩度aveTSから算出したが、単純に白目画像の平均彩度aveESだけを用いて補正パラメータを算出するようにしてもよい。この場合、歯画像の平均彩度aveTSを下げる割合を補正パラメータPとして下式のように定義する。
P = g×aveES + f      …(18)
ここで、g、fは実験的に求めた定数
【００９８】
補正パラメータPの値が0.0〜1.0になるように定数g、fを設定すれば、白目画像の平均彩度aveESが高いほど、歯画像の彩度を下げる割合を小さくすることができ、実施例1と同様の効果をもつ補正処理が実現する。この場合、補正パラメータPの算出に歯画像の平均彩度aveTSを用いないため、歯画像の平均彩度aveTSを算出する処理を省略することができる。
【００９９】
また、歯画像と白目画像の検出用のユーザインタフェイスを設けて、ユーザが歯画像と白目画像を囲む口候補矩形11と目候補矩形15を設定した後、歯外接矩形12と目外接矩形16を上記の方法で検出するようにしてもよい。
【０１００】
また、図27に示すように、画像20全体に対して顔画像21が傾いている場合は、ステップS3002で顔画像21を検出した後、傾きを補正した顔画像22を作成する。そして、傾き補正した顔画像22に対してステップS3101〜S3104の処理、ステップS3201〜S3204の処理を行い、目画像または唇画像の特徴点を抽出する。
【０１０１】
その後、目画像、唇領域の特徴点の座標値を、先の傾き補正分を逆回転（逆補正）することで、原画像における特徴点の座標値を得る。そして、原画像における特徴点の座標値と原画像を用いて、ステップS3105、ステップS3202の処理を行い目画像、唇画像を検出する。そして、検出した目画像、唇画像に対して、ステップS3004、S3006〜S3009の処理を行う。
【０１０２】
画像の傾きを補正した画像を作成する方法は以下のとおりである。
【０１０３】
図27に示すように、顔画像21を囲む矩形が画像20の垂直軸に対して角度θ傾いている場合に、顔画像21を囲む矩形の左上座標をB1(BX1, BY1)とする。すると、傾きを補正した顔画像22の座標系(X, Y)と、原画像の座標系(x, y)の関係は下式で表される。
X = (x - BX1)cosθ - (y - BY1)sinθ + BX1
Y = (x - BX1)sinθ + (y - BY1)cosθ + BY1      …(19)
【０１０４】
また、逆変換の下式で表される。
x = (X - BX1)cosθ + (Y - BY1)sinθ + BY1
y = (Y - BY1)cosθ - (X - BX1)sinθ + BY1      …(20)
【０１０５】
式(20)によって、傾きを補正した顔画像22の座標値に対応する原画像の座標値を算出することで、傾いた顔画像21を補正することができる。
【実施例２】
【０１０６】
以下、実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１０７】
目が閉じている、または、開いていても極端に細い目の場合、白目画像を検出することができない。このような場合は、顔画像の肌の画像領域（以下、肌領域と呼ぶ）の彩度に基づき歯画像を補正する。実施例2では、肌領域の彩度を解析して、歯画像を補正する目標量を決定する方法を説明する。
【０１０８】
図28は実施例2の画像処理を説明するフローチャートで、CPU 104が実行する処理である。
【０１０９】
CPU 104は、白目画像が検出できたか否かを判定する(S3701)。例えば、ステップS3203で検出した目外接矩形16の高さeHと予め定めた閾値thEを比較して、eH＜thEの場合は白目画像が検出できなかったと判定する。あるいは、ステップS3404の領域拡張処理により検出した白目画像の面積Seと予め定めた閾値thSを比較して、Se＜thSの場合は白目画像が検出できなかったと判定する。なお、白目画像には、左右両目の内側（鼻側）と外側の四つの領域があるが、これらのうち一つでも検出できれば、白目画像が検出されたと判定してよい。
【０１１０】
CPU 104は、白目画像が検出できた場合は処理をステップS3006に進めるが、白目画像が検出できなかった場合は、肌領域に基づき補正パラメータPを計算する(S3702)。そして、補正パラメータPを判定して(S3703)、P≠0の場合は処理をステップS3009に進めて歯画像の補正処理を実行し、P=0の場合は歯画像のの補正処理を省略して処理を終了する。
【０１１１】
図29は肌領域に基づく補正パラメータPの計算を説明するフローチャートである。
【０１１２】
CPU 104は、まず肌領域を検出する(S3801)。肌領域の検出は、例えば特開2004-173328公報や特開2006-011685公報に記載された色差と輝度を利用するものなど、多くの方法が提案されているので、それら技術を利用すればよい。
【０１１３】
次に、CPU 104は、検出した肌領域の平均彩度aveFSを計算する(S3802)。肌領域の平均彩度aveFSは、ステップS3004の処理における歯画像を肌領域に置き換えれば、同様の方法で計算することができる。
【０１１４】
次に、CPU 104は、歯画像の平均彩度aveTSと肌領域の平均彩度aveFSを比較して、下式により、補正処理が必要な色味をもつ歯画像か否かを判定する(S3803)。
aveTS/aveFS ＞ th5      …(21)
ここで、th5は実験的に求めた閾値（th5＜1）
【０１１５】
つまり、CPU 104は、式(21)が満たされる場合は歯画像の補正処理を行うために処理をステップS3804に進め、式(21)が満たされない場合は歯画像の補正処理を省略するために補正パラメータP=0にする(S3805)。
【０１１６】
次に、CPU 104は、補正パラメータPを計算する(S3804)。歯画像の目標彩度をaimTSとすると、目標彩度aimTSは肌領域の平均彩度aveFSの相対値として下式によって表される。
aimTS = af×aveES      …(22)
ここで、afは係数（0＜af＜1）
【０１１７】
係数afは、肌領域に対して歯画像をどの程度まで白くするかを表し、係数afが1に近いほど歯画像の白さは肌領域の白さに近付く。ただし、色味が弱い（薄い）顔画像に対して適正な係数faを、色味が強い（濃い）顔画像に適用すると歯画像が白くなり過ぎる傾向がある。そこで、色味が弱い顔画像に比べて、色味が強い顔画像の係数afが大きくなるように、下式を定義する。
af = bf×aveFS +cf      …(23)
ここで、bf、cfは実験的に求めた定数
【０１１８】
式(22)(23)から歯画像の目標彩度aimTSは下式で表される。
aimTS = (bf×aveES + cf)×aveFS      …(24)
【０１１９】
補正パラメータPは、歯画像の目標彩度aimTSと歯画像の平均彩度aveTSから下式のように定義する。
P = aimTS/aveTS      …(25)
【０１２０】
従って、式(24)(25)をまとめると補正パラメータPは下式で表される。
P = (bf×aveFS + cf)×aveFS/aveTS      …(26)
【０１２１】
上記では、白目画像が検出できなかった場合に肌領域を検出して補正パラメータPを決定する例を説明したが、白目画像の検出を行わずに、最初から肌領域を検出するようにすることもできる。
【０１２２】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１２３】
また、本発明の目的は、上記実施例の機能を実現するソフトウェアを記録した記憶媒体（記録媒体）をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）が前記ソフトウェアを実行することでも達成される。この場合、記憶媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのソフトウェアを記憶した記憶媒体は本発明を構成する。
【０１２４】
また、前記ソフトウェアの実行により上記機能が実現されるだけでなく、そのソフトウェアの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０１２５】
また、前記ソフトウェアがコンピュータに接続された機能拡張カードやユニットのメモリに書き込まれ、そのソフトウェアの指示により、前記カードやユニットのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０１２６】
本発明を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するソフトウェアが格納される。
【図面の簡単な説明】
【０１２７】
【図１】画像処理装置の構成例を示すブロック図、
【図２】画像処理を説明するフローチャート、
【図３】歯画像の検出を説明するフローチャート、
【図４】顔画像の一例を示す図、
【図５】口画像の端に接する線分を求める方法を説明する図、
【図６】口候補矩形と口外接矩形の関係を示す図、
【図７】唇画像の検出を説明する図、
【図８】唇画像のヒストグラム例を示す図、
【図９】歯画像の平均彩度の計算方法を説明するフローチャート、
【図１０】口外接矩形を示す図、
【図１１】二値マスク画像を示す図、
【図１２】白目画像の検出を説明するフローチャート、
【図１３】目候補矩形を示す図、
【図１４】目候補矩形と目外接矩形の関係を示す図、
【図１５】目画像の検出を説明する図、
【図１６】白目画像の検出方法を説明するフローチャート、
【図１７】白目画像の検出方法を説明する図、
【図１８】目画像と取得した各画素の輝度値の関係例を示す図、
【図１９】シードの決定を説明する図、
【図２０】白目画像の検出方法を説明する図、
【図２１】領域拡張した結果の拡張領域を示す図、
【図２２】白目画像の平均彩度の計算を説明する図、
【図２３】二値マスク画像を示す図、
【図２４】ブレンドマスク画像を示す図、
【図２５】歯画像の補正を説明するフローチャート、
【図２６】補正画像の生成を説明するフローチャート、
【図２７】画像全体に対して傾いている顔画像を示す図、
【図２８】実施例2の画像処理を説明するフローチャート、
【図２９】肌領域に基づく補正パラメータの計算を説明するフローチャートである。
【図１】
2008160474.tif 000003
【図２】
2008160474.tif 000004
【図３】
2008160474.tif 000005
【図４】
2008160474.tif 000006
【図５】
2008160474.tif 000007
【図６】
2008160474.tif 000008
【図７】
2008160474.tif 000009
【図８】
2008160474.tif 000010
【図９】
2008160474.tif 000011
【図１０】
2008160474.tif 000012
【図１１】
2008160474.tif 000013
【図１２】
2008160474.tif 000014
【図１３】
2008160474.tif 000015
【図１４】
2008160474.tif 000016
【図１５】
2008160474.tif 000017
【図１６】
2008160474.tif 000018
【図１７】
2008160474.tif 000019
【図１８】
2008160474.tif 000020
【図１９】
2008160474.tif 000021
【図２０】
2008160474.tif 000022
【図２１】
2008160474.tif 000023
【図２２】
2008160474.tif 000024
【図２３】
2008160474.tif 000025
【図２５】
2008160474.tif 000026
【図２６】
2008160474.tif 000027
【図２７】
2008160474.tif 000028
【図２８】
2008160474.tif 000029
【図２９】
2008160474.tif 000030
【図２４】
2008160474.tif 000031