(57)【要約】【課題】逆光補正を行なうと画像中の明るい部分の色味が飛んでしまっていた。【解決手段】入力画像内における特定画像の少なくとも一部を含む領域を検出する特定画像検出部と、上記特定画像検出部によって検出された領域における明るさと上記入力画像内における背景領域の明るさとの差を取得する差取得部と、上記差に基づいて階調補正のための補正曲線を取得する補正曲線取得部と、上記入力画像を構成する画素のうち暗部を定義した色域に属する画素の階調値を上記補正曲線を用いて補正する補正部とを備える構成とした。【選択図】図２
2009290661.tif 000002
【特許請求の範囲】
【請求項１】
入力画像内における特定画像の少なくとも一部を含む領域を検出する特定画像検出部と、
上記特定画像検出部によって検出された領域における明るさと上記入力画像内における背景領域の明るさとの差を取得する差取得部と、
上記差に基づいて階調補正のための補正曲線を取得する補正曲線取得部と、
上記入力画像を構成する画素のうち暗部を定義した色域に属する画素の階調値を上記補正曲線を用いて補正する補正部とを備えることを特徴とする画像処理装置。
【請求項２】
上記補正曲線取得部は、低階調域における曲線の一部を上記差に基づいて上側にシフトさせることにより、当該低階調域において上側に凸状のカーブを描き中間階調域において入力階調値と出力階調値とが等しい関係にある直線に対して接近しかつ中間階調域から高階調域にかけて当該直線に対して収束していく形状の補正曲線を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
上記補正曲線取得部は、上記差が大きいほど曲線をシフトさせる度合いを高めることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
上記補正曲線取得部は、上記特定画像検出部によって検出された領域における明るさが低いほど上記曲線をシフトさせる度合いを高めることを特徴とする請求項２または請求項３に記載の画像処理装置。
【請求項５】
上記補正部は、上記入力画像の輝度分布を取得し、当該輝度分布における谷に相当する階調値を特定し、所定の表色系のグレー軸上における当該特定した階調値に対応する位置を特定し、グレー軸方向における上限が当該特定したグレー軸上の位置である色域を上記表色系において定義することを特徴とする請求項１〜請求項４のいずれかに記載の画像処理装置。
【請求項６】
上記補正部は、上記輝度分布における谷であって上記補正曲線による出力階調値の変化率が低い所定の入力階調範囲に該当する所定の階調値よりも低階調側に存在する谷に相当する階調値を特定することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
上記補正部は、上記色域のグレー軸方向を向く中心軸と補正対象の画素との距離に応じて画素に対する補正の度合いを変更することを特徴とする請求項５または請求項６に記載の画像処理装置。
【請求項８】
上記差取得部は、上記特定画像検出部によって検出された領域に属する画素であって上記特定画像に対応する色域として所定の表色系において設定された色域に属する画素の輝度平均値と上記背景領域の輝度平均値との差を取得することを特徴とする請求項１〜請求項７のいずれかに記載の画像処理装置。
【請求項９】
上記差取得部は、上記背景領域に属する画素であって所定の記憶色に該当する画素の輝度平均値を背景領域についての輝度平均値として算出することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
上記差取得部は、上記入力画像内の領域を、上記特定画像検出部によって検出された領域を含まない領域であって入力画像の縁に沿った周囲領域と当該周囲領域以外の中央領域とに分け、中央領域よりも周囲領域に対して重みを付けて入力画像から算出した輝度平均値を背景領域についての輝度平均値とすることを特徴とする請求項８または請求項９に記載の画像処理装置。
【請求項１１】
上記補正曲線取得部は、形状が異なる複数の予め生成された補正曲線の中から上記差に基づいて補正曲線を選択することを特徴とする請求項１に記載の画像処理装置。
【請求項１２】
上記特定画像検出部は、入力画像内における顔画像の少なくとも一部を含む領域を検出することを特徴とする請求項１〜請求項１１のいずれかに記載の画像処理装置。
【請求項１３】
入力画像内における特定画像の少なくとも一部を含む領域を検出する特定画像検出工程と、
上記特定画像検出工程において検出された領域における明るさと上記入力画像内における背景領域の明るさとの差を取得する差取得工程と、
上記差に基づいて階調補正のための補正曲線を取得する補正曲線取得工程と、
上記入力画像を構成する画素のうち暗部を定義した色域に属する画素の階調値を上記補正曲線を用いて補正する補正工程とを備えることを特徴とする画像処理方法。
【請求項１４】
入力画像内における特定画像の少なくとも一部を含む領域を検出する特定画像検出機能と、
上記特定画像検出機能によって検出された領域における明るさと上記入力画像内における背景領域の明るさとの差を取得する差取得機能と、
上記差に基づいて階調補正のための補正曲線を取得する補正曲線取得機能と、
上記入力画像を構成する画素のうち暗部を定義した色域に属する画素の階調値を上記補正曲線を用いて補正する補正機能とをコンピュータに実行させることを特徴とする画像処理プログラム。
【請求項１５】
入力画像内における特定画像の少なくとも一部を含む領域を検出する特定画像検出部と、
上記特定画像検出部によって検出された領域における明るさと上記入力画像内における背景領域の明るさとの差を取得する差取得部と、
上記差に基づいて階調補正のための補正曲線を取得する補正曲線取得部と、
上記入力画像を構成する画素のうち暗部を定義した色域に属する画素の階調値を上記補正曲線を用いて補正する補正部とを備えることを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、画像処理プログラムおよび印刷装置に関する。
【背景技術】
【０００２】
デジタルスチルカメラ等から得られた入力画像が、画像領域の一部分が暗く当該一部分の周辺部が明るい、いわゆる逆光画像である場合、当該入力画像に対して逆光補正が行われる。このような逆光補正に関する技術として、撮影画像が逆光人物画像であるか否かを判定し、撮影画像が逆光人物画像である場合には、画像を構成する全画素のうち肌色画素について輝度の平均値を取得し、当該平均値を入力値とした場合の出力値が所定値ＦＶとなるトーンカーブを求め、画像の各画素の輝度値あるいはＲ値、Ｇ値、Ｂ値に対して当該トーンカーブを適用することにより、明度補正を実行する画像処理装置が知られている（特許文献１参照。）。
【特許文献１】特開２００４‐３４１８８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来の逆光補正においては、以下のような問題があった。
上述したように、逆光補正のためのトーンカーブは、人物画に略対応する肌色画素の輝度平均値と、予め定められた理想値（所定値ＦＶ）との関係に基づいて決定される。そのため、当該トーンカーブで入力画像を補正すると、元々暗かった人物画の明るさはある程度適切に上昇する。しかし、トーンカーブの決定に際しては逆光画像において元々明るかった部分の状態は考慮されていないため、当該明るかった部分（例えば、人物画の背景等）は上記トーンカーブが適用されることで過剰な補正がなされ、殆ど真っ白な状態（白飛びした状態）になることもあった。つまり従来の逆光補正においては、逆光画像中の明るい部分の色味が飛んでしまっていた。
【０００４】
本発明は上記課題に鑑みてなされたもので、逆光画像において明るい部分の色味を残しつつ、暗い部分に対して適切な補正の効果を生じさせることにより、全体として質の高い画像を得ることが可能な画像処理装置、画像処理方法、画像処理プログラムおよび印刷装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、本発明の画像処理装置は、入力画像内における特定画像の少なくとも一部を含む領域を検出する特定画像検出部と、上記特定画像検出部によって検出された領域における明るさと上記入力画像内における背景領域の明るさとの差を取得する差取得部と、上記差に基づいて階調補正のための補正曲線を取得する補正曲線取得部と、上記入力画像を構成する画素のうち暗部を定義した色域に属する画素の階調値を上記補正曲線を用いて補正する補正部とを備える構成としてある。
【０００６】
本発明によれば、上記特定画像にかかる領域の明るさと背景領域の明るさとの差に基づいて補正曲線が取得され、かつ、入力画像の画素のうち暗部に該当する画素のみが補正曲線によって補正される。つまり、入力画像が逆光画像等である場合、暗い部分の階調だけが、特定画像にかかる領域と背景領域との明るさの差に応じて補正されるため、元々明るい部分の色味を残しつつ、暗い部分の明るさを上記元々明るい部分の明るさと同程度まで上昇させることができる。
【０００７】
上記補正曲線取得部は、低階調域における曲線の一部を上記差に基づいて上側にシフトさせることにより、当該低階調域において上側に凸状のカーブを描き中間階調域において入力階調値と出力階調値とが等しい関係にある直線に対して接近しかつ中間階調域から高階調域にかけて当該直線に対して収束していく形状の補正曲線を生成するとしてもよい。当該構成によれば、全階調域に渡って入力階調値＝出力階調値の関係を持つ直線に比べて、低階調域から中間階調域に渡る範囲が部分的に上側に凸となった特殊な形状の補正曲線を得ることができ、かかる補正曲線を用いれば画像の暗部だけを的確に補正することができる。
【０００８】
上記補正曲線取得部は、上記差が大きいほど曲線をシフトさせる度合いを高めるとしてもよい。当該構成によれば、上記特定画像にかかる領域の明るさと背景領域の明るさとの差が大きいほど、暗部に対する補正の度合いが大きくなる。
また、上記補正曲線取得部は、上記特定画像検出部によって検出された領域における明るさが低いほど上記曲線をシフトさせる度合いを高めるとしてもよい。当該構成によれば、上記特定画像にかかる領域が暗いほど、暗部に対する補正の度合いが大きくなる。
【０００９】
上記補正部は、上記入力画像の輝度分布を取得し、当該輝度分布における谷に相当する階調値を特定し、所定の表色系のグレー軸上における当該特定した階調値に対応する位置を特定し、グレー軸方向における上限が当該特定したグレー軸上の位置である色域を上記表色系において定義するとしてもよい。入力画像が逆光画像である場合、その輝度分布では低階調側と高階調側とに分布数が集中し、低階調側と高階調側との間には分布の谷が生じやすい。上記構成によれば、上記谷の階調値に応じて、暗部を規定する色域のグレー軸方向の上限位置を決めるため、輝度分布において低階調側に集中して分布する画素を対象として補正を行うことができる。
【００１０】
上記補正部は、上記輝度分布における谷であって上記補正曲線による出力階調値の変化率が低い所定の入力階調範囲に該当する所定の階調値よりも低階調側に存在する谷に相当する階調値を特定するとしてもよい。補正曲線においてはその形状の特殊性故に、入力階調値の変化率よりも出力階調値の変化率の方が緩やかな範囲が中間階調域あたりに生じることがあり、かかる階調域に属する画素に対しては、階調性維持の観点からできるだけ補正曲線を適用しないほうがよい。上記構成によれば、上記輝度分布に複数の谷が存在する場合であっても、補正曲線における出力階調値の変化率が低い入力階調範囲に該当する所定の階調値よりも低階調側に存在する谷の階調値に応じて、上記色域のグレー軸方向における上限が決定される。そのため、画像の階調性を損なうことなく、暗部の補正を行うことができる。
【００１１】
上記補正部は、上記色域のグレー軸方向を向く中心軸と補正対象の画素との距離に応じて画素に対する補正の度合いを変更するとしてもよい。当該構成によれば、上記暗部を規定する色域に属する画素であっても当該色域の中心軸から遠い画素ほど補正の度合いを弱めることで、補正後の入力画像における階調性を適切に維持することができる。
【００１２】
上記差取得部は、上記特定画像検出部によって検出された領域に属する画素であって上記特定画像に対応する色域として所定の表色系において設定された色域に属する画素の輝度平均値と上記背景領域の輝度平均値との差を取得するとしてもよい。当該構成によれば、特定画像の明るさを正確に反映した輝度平均値と背景領域の輝度平均値とを比較することができ、その結果得られる補正曲線も、入力画像の状態に応じた最適なものとなる。
【００１３】
上記差取得部は、上記背景領域に属する画素であって所定の記憶色に該当する画素の輝度平均値を背景領域についての輝度平均値として算出するとしてもよい。ここで言う記憶色とは、例えば、緑色や青色等が挙げられる。記憶色に該当する画素だけに基づいて背景領域の輝度平均値を算出すれば、空や山や森等といった背景の明るさを正確に算出することができる。
【００１４】
上記差取得部は、上記入力画像内の領域を、上記特定画像検出部によって検出された領域を含まない領域であって入力画像の縁に沿った周囲領域と当該周囲領域以外の中央領域とに分け、中央領域よりも周囲領域に対して重みを付けて入力画像から算出した輝度平均値を背景領域についての輝度平均値としてもよい。当該構成によれば、逆光画像において明るいと推測される周囲領域に重きを置いて輝度平均値が算出され、特定画像にかかる領域の輝度平均値と比較されるため、入力画像の暗部を明るくしつつ元々明るい部分の色味を残すために適した補正曲線を得ることができる。
【００１５】
上記補正曲線取得部は、形状が異なる複数の予め生成された補正曲線の中から、上記差に基づいて補正曲線を選択してもよい。当該構成によれば、補正曲線を生成するための演算処理が不要となり、画像補正を迅速に終えることができる。
上記特定画像検出部は、入力画像内における顔画像の少なくとも一部を含む領域を検出するとしてもよい。当該構成によれば、入力画像において重要な被写体である顔画像の明るさと背景の明るさとの差に基づいて入力画像の暗部を補正することができるため、顔が暗く写った逆光画像において最適な補正結果を得ることができる。
【００１６】
本発明の技術的思想は、上述した画像処理装置の発明以外にも、上述した画像処理装置が備える各部が行なう各処理工程を備えた画像処理方法の発明や、上述した画像処理装置が備える各部に対応した各機能をコンピュータに実行させる画像処理プログラムの発明としても捉えることができる。また、上記の画像処理装置、画像処理方法および画像処理プログラムは具体的には、ＰＣやサーバ等のハードウェアによって実現される他、画像入力装置としてのデジタルスチルカメラやスキャナ、あるいは、画像出力装置としてのプリンタ（印刷装置）やプロジェクタやフォトヴューワ等、様々な製品によって実現することができる。
【発明を実施するための最良の形態】
【００１７】
以下の順序に従って、本発明の実施形態を説明する。
１．プリンタの概略構成
２．肌代表色の算出
３．補正曲線の生成
４．補正処理
５．変形例
６．まとめ
【００１８】
１．プリンタの概略構成
図１は、本発明の画像処理装置や印刷装置の一例に該当するプリンタ１０の構成を概略的に示している。プリンタ１０は、記録メディア（例えば、メモリカードＭＣ等）から取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したカラープリンタ（例えば、カラーインクジェットプリンタ）である。プリンタ１０は、プリンタ１０の各部を制御するＣＰＵ１１と、例えばＲＯＭやＲＡＭによって構成された内部メモリ１２と、ボタンやタッチパネルにより構成された操作部１４と、液晶ディスプレイにより構成された表示部１５と、プリンタエンジン１６と、カードインターフェース（カードＩ／Ｆ）１７と、ＰＣやサーバやデジタルスチルカメラ等の各種外部機器との情報のやり取りのためのＩ／Ｆ部１３とを備えている。プリンタ１０の各構成要素は、バスを介して互いに接続されている。
【００１９】
プリンタエンジン１６は、印刷データに基づき印刷を行う印刷機構である。カードＩ／Ｆ１７は、カードスロット１７２に挿入されたメモリカードＭＣとの間でデータのやり取りを行うためのＩ／Ｆである。メモリカードＭＣには画像データが格納されており、プリンタ１０は、カードＩ／Ｆ１７を介してメモリカードＭＣに格納された画像データを取得することができる。画像データ提供のための記録メディアとしてはメモリカードＭＣ以外にも種々の媒体を用いることができる。むろんプリンタ１０は、記録メディア以外にも、Ｉ／Ｆ部１３を介して接続した上記外部機器から画像データを入力することも可能である。プリンタ１０は、コンシューマ向けの印刷装置であってもよいし、ＤＰＥ向けの業務用印刷装置（いわゆるミニラボ機）であってもよい。プリンタ１０は、Ｉ／Ｆ部１３を介して接続したＰＣやサーバ等から印刷データを入力することもできる。
【００２０】
内部メモリ１２には、画像処理部２０と、表示制御部３０と、印刷制御部４０とが格納されている。画像処理部２０は、所定のオペレーティングシステムの下で、画像データに対し補正処理等の各種画像処理を実行するためのコンピュータプログラムである。表示制御部３０は、表示部１５を制御することにより表示部１５の画面に所定のユーザインターフェース（ＵＩ）画像やメッセージやサムネイル画像などを表示させるディスプレイドライバである。印刷制御部４０は、画像処理部２０によって補正処理等が施された後の画像データに基づいて各画素の記録材（インクやトナー）の記録量を規定した印刷データを生成し、プリンタエンジン１６を制御して、印刷データに基づく画像の印刷媒体への印刷を実行するためのコンピュータプログラムである。
【００２１】
ＣＰＵ１１は、内部メモリ１２から、これらの各プログラムを読み出して実行することにより、これら各部の機能を実現する。画像処理部２０はさらに、プログラムモジュールとして、顔画像検出部２１と、代表色算出部２２と、差取得部２３と、逆光補正曲線取得部２４と、カラーバランス（ＣＢ）補正曲線取得部２５と、逆光補正部２６と、ＣＢ補正部２７と、ホワイトバランス（ＷＢ）補正部２８とを少なくとも含んでいる。顔画像検出部２１は、特定画像検出部に該当し、逆光補正曲線取得部２４は、第一補正曲線取得部または補正曲線取得部に該当し、ＣＢ補正曲線取得部２５は、第二補正曲線取得部に該当し、逆光補正部２６は、第一補正部または補正部に該当し、ＣＢ補正部２７は、第二補正部に該当し、ＷＢ補正部２８は、事前補正部に該当する。これら各部の機能については後述する。さらに内部メモリ１２には、肌色域定義情報１２ａや、顔テンプレート１２ｂや、記憶色域定義情報１２ｃや、各関数を始めとして、各種データやプログラムが格納されている。プリンタ１０は、印刷機能以外にも、コピー機能やスキャナ機能（画像読取機能）など多種の機能を備えたいわゆる複合機であってもよい。
次に、プリンタ１０において画像処理部２０に従って実行される処理を説明する。
【００２２】
２．肌代表色の算出
図２は、画像処理部２０が実行する処理をフローチャートにより示している。
本実施形態で画像処理部２０が実行する処理には、少なくとも逆光補正とカラーバランス補正とが含まれ、かつ、これら各補正に用いるための各補正曲線を生成する処理も含まれる。各補正曲線を生成するための前提として、画像処理部２０は、入力画像における肌代表色を求める。肌代表色とは、入力画像内に存在する顔画像を代表する色を意味し、より具体的には、顔画像の肌部分の色を代表する色を意味する。
【００２３】
ステップＳ（以下、ステップの表記を省略。）１００では、画像処理部２０は、処理対象となる画像を表した画像データＤをメモリカードＭＣ等の記録メディアから取得する。つまり、ユーザが表示部１５に表示されたＵＩ画像を参照して操作部１４を操作し、処理対象とする画像データＤを指定した場合に、当該指定された画像データＤを画像処理部２０が読み込む。画像処理部２０は、Ｉ／Ｆ部１３を介してＰＣやサーバやデジタルスチルカメラ等から画像データＤを取得してもよい。画像データＤは、各画素の色が要素色（ＲＧＢ）毎の階調（例えば、０〜２５５の２５６階調）で表されたビットマップデータである。画像データＤは、記録メディア等に記録されている段階で圧縮されていてもよいし、他の表色系で各画素の色が表現されていてもよい。これらの場合、画像データＤの展開や表色系の変換を実行し、画像処理部２０がＲＧＢビットマップデータとしての画像データＤを取得する。このように取得された画像データＤは入力画像に該当する。
なお図２の処理は、逆光画像に対して特に有用な補正処理である。そのため、本実施形態では、Ｓ１００取得された画像データＤは画像領域内に顔画像を含む逆光画像（特に顔画像の部分が暗い画像）を表している前提で説明を行う。
【００２４】
Ｓ２００では、顔画像検出部２１が画像データＤから顔領域を検出する。顔領域とは、少なくとも顔画像（特定画像の一種）の一部を含む領域を意味する。顔画像検出部２１は、顔領域を検出可能な手法であればあらゆる手法を採用することができる。例えば、顔画像検出部２１は、複数のテンプレート（上記顔テンプレート１２ｂ）を利用したいわゆるパターンマッチングによって画像データＤから顔領域を検出する。パターンマッチングを行うにあたっては、画像データＤ上に矩形状の検出領域ＳＡを設定し、画像データＤ上での検出領域ＳＡの位置と大きさを変えながら、検出領域ＳＡ内の画像と各顔テンプレート１２ｂの画像との類似性を評価する。そして、類似性が一定の基準を満足する検出領域ＳＡを顔領域として検出する。画像データＤ全体に検出領域ＳＡを移動させることにより、画像データＤ内に存在する単数または複数の顔についての顔領域を検出できる。本実施形態では、一つの顔を含む一つの顔領域が検出されたものとして説明を続ける。なお顔画像検出部２１は、検出領域ＳＡ単位で画像の各種情報（例えば、輝度情報やエッジ量やコントラスト等。）を入力し検出領域ＳＡに顔画像が存在するか否かを示す情報を出力する、予め学習されたニューラルネットワークを用いることにより、顔領域の検出を行なっても良いし、サポートベクタマシンを利用して検出領域ＳＡ毎に顔領域であるか否かを判断してもよい。
【００２５】
図３は、Ｓ２００において画像データＤから顔領域として検出された検出領域ＳＡの矩形を示している。以下では、Ｓ２００において顔領域として検出された検出領域ＳＡを顔領域ＳＡと呼ぶ。
Ｓ３００では、代表色算出部２２が顔領域ＳＡ内の画素に基づいて肌代表色を算出する。
【００２６】
図４は、Ｓ３００における処理の詳細をフローチャートにより示している。
Ｓ３１０では代表色算出部２２は、画像データＤの状態を判定する。画像データＤの状態とは、画像データＤの画像における明るさや、画像中に含まれる被写体の特徴等に基づいて決定される状態を言う。本実施形態では特にＳ３１０において、画像データＤの画像が逆光画像であるか否かの判定を行なう。逆光画像であるか否かの判定手法は特に限られない。例えば、代表色算出部２２は、画像データＤの全範囲を対象として所定の抽出率に基づいて画素をサンプリングし、サンプリングした画素の輝度分布を生成する。逆光画像の輝度分布においては、一般的に、高階調側と低階調側とに分布数が集中し、その中間階調域において分布の谷が生じる傾向がある。そのため、代表色算出部２２は生成した輝度分布の形状的特徴に応じて逆光画像であるか否か判定することができる。
【００２７】
あるいは、代表色算出部２２は、画像データＤから画素をサンプリングする際に、画像の中央付近の領域と当該中央付近の領域の周囲領域とのうち、中央付近の領域においてより高い抽出率で画素をサンプリングし、サンプリングした画素の輝度の平均値（輝度平均値）を求める。代表色算出部２２は、このように画像中央の領域に重きをおいて求めた輝度平均値と予め用意された所定のしきい値とを比較し、輝度平均値がしきい値以下であれば、画像データＤは画像中央付近が暗い画像すなわち逆光画像であると判定できる。上述したようにＳ１００で取得された画像データＤは逆光画像であるため、代表色算出部２２はＳ３１０で、画像データＤが逆光画像であると判定する。
【００２８】
Ｓ３２０では、代表色算出部２２は、内部メモリ１２から肌色域定義情報１２ａを読み出す。肌色域定義情報１２ａは、顔画像検出部２１が検出する画像（顔画像）が対応する色（肌色）の標準的な範囲（肌色域）を所定の表色系において予め定義した情報である。本実施形態では一例として、肌色域定義情報１２ａは、国際照明委員会（ＣＩＥ）で規定されたＬ*ａ*ｂ*表色系（以下、「*」の表記は省略。）において肌色域を定義している。ただし、肌色域定義情報１２ａによる肌色域の定義には、ＨＳＶ表色系や、ＸＹＺ表色系や、ＲＧＢ表色系等、様々な表色系を採用可能である。肌色域定義情報１２ａは、ある表色系において肌色らしい色域を規定した情報であればよい。
【００２９】
図５は、Ｌａｂ表色系において肌色域定義情報１２ａが定義する肌色域Ａ１の一例を示している。肌色域定義情報１２ａは、肌色域Ａ１を明度Ｌ、彩度Ｃ、色相Ｈの各範囲Ｌｓ≦Ｌ≦Ｌｅ、Ｃｓ≦Ｃ≦Ｃｅ、Ｈｓ≦Ｈ≦Ｈｅによって定義している。図５の例では、肌色域Ａ１は６面からなる立体である。図５では、ａｂ平面上への肌色域Ａ１の投影図もハッチングを施して併せて示している。ただし、肌色域定義情報１２ａが定義する肌色域は、上記のような６面体である必要はなく、例えば、肌色域の中心点を示すＬａｂ表色系における一つの座標と、当該一つの座標を中心とした半径ｒとによって定義される球状の領域であってもよいし、それ以外の形状であってもよい。
Ｓ３３０では、代表色算出部２２は、Ｓ３２０における判定結果に応じて肌色域Ａ１に対する変更を施す。具体的には、Ｓ３２０において画像データＤが逆光画像であると判定した場合には、少なくとも変更前と比較して低彩度側の色域が含まれるように肌色域Ａ１に変更を加える。
【００３０】
図６は、画像データＤが逆光画像であると判定した場合に代表色算出部２２が行なう色域変更の様子を例示している。図６では、Ｌａｂ表色系におけるａｂ平面上に変更前の肌色域Ａ１（鎖線）と変更後の肌色域Ａ２（実線）とを示している。代表色算出部２２は、画像データＤが逆光画像である場合には、肌色域Ａ１の彩度範囲がＬ軸（グレー軸）に接近するように肌色域Ａ１を移動させ、移動後の色域を肌色域Ａ２とする。つまり、画像データＤは逆光画像なので、顔画像の肌部分の色も低彩度の傾向が強いと言え、そのため、肌部分の画素の色と、肌色域定義情報１２ａが元々定義していた標準的な肌色域とのずれを修正するのである。上記移動後の彩度範囲をＣｓ´≦Ｃ≦Ｃｅ´とすると、肌色域Ａ２は明度Ｌ、彩度Ｃ、色相Ｈの各範囲Ｌｓ≦Ｌ≦Ｌｅ、Ｃｓ´≦Ｃ≦Ｃｅ´、Ｈｓ≦Ｈ≦Ｈｅによって定義される。ただし、肌色域の彩度範囲を低彩度側に移動させるのみだと、移動前の肌色域Ａ１と比較して移動後の肌色域Ａ２が小さくなってしまうため、図６に例示すように、彩度範囲の変更と併せて色相範囲を広げるとしてもよい。
【００３１】
あるいは代表色算出部２２は、画像データＤが逆光画像であると判定した場合、肌色域Ａ１の彩度範囲の下限（Ｃｓ）がＬ軸に接近するように肌色域Ａ１をＬ軸側に変形（拡大）させ、拡大後の色域を肌色域Ａ２としてもよい。拡大後の彩度範囲をＣｓ´≦Ｃ≦Ｃｅとすると、肌色域Ａ２は各範囲Ｌｓ≦Ｌ≦Ｌｅ、Ｃｓ´≦Ｃ≦Ｃｅ、Ｈｓ≦Ｈ≦Ｈｅによって定義される。あるいは代表色算出部２２は、画像データＤが逆光画像である場合、肌色域Ａ１の彩度範囲を拡大させかつ移動させることにより変更後の肌色域Ａ２を取得するとしてもよいし、肌色域Ａ１の明度範囲についても変更を施しても良い。変更後の色域Ａ２は、特定画像に対応する色域として所定の表色系において設定された色域に該当する。
【００３２】
Ｓ３４０では、代表色算出部２２は、顔領域ＳＡ内に属する画素のうち色が上記変更後の肌色域Ａ２に属する画素を抽出する。この場合、代表色算出部２２は、顔領域ＳＡ内の各画素のＲＧＢデータを、肌色域Ａ２が採用する表色系（Ｌａｂ表色系）のデータ（Ｌａｂデータ）にそれぞれ変換し、変換後の各Ｌａｂデータが肌色域Ａ２に属するか否か判定する。そして、代表色算出部２２は、上記Ｌａｂデータが肌色域Ａ２に属する画素のみを肌画素として抽出する。代表色算出部２２は、ＲＧＢデータからＬａｂデータへの変換は、ＲＧＢ表色系からＬａｂ表色系への変換を行なう所定の色変換プロファイルなどを用いることで可能である。内部メモリ１２には、かかる色変換プロファイルも保存されているとしてもよい。なお本実施形態は、画像データＤから一つの顔領域ＳＡが検出された場合について説明している。しかし、画像データＤから複数の顔領域ＳＡが検出された場合には、Ｓ３４０では、代表色算出部２２は、複数の顔領域ＳＡ内の各画素についてそれぞれ肌色域Ａ２に属するか否か判定し、属する画素については肌画素として抽出する。
【００３３】
Ｓ３５０では、代表色算出部２２は、Ｓ３４０で抽出した複数の肌画素に基づいて肌代表色を算出する。肌代表色の算出方法は様々であるが本実施形態では、代表色算出部２２は、肌画素のＲＧＢ毎の平均値Ｒave，Ｇave，Ｂaveを算出し、当該平均値Ｒave，Ｇave，Ｂaveからなる色（ＲＧＢデータ）を肌代表色とする。代表色算出部２２は、肌代表色のＲＧＢデータを内部メモリ１２等の所定の記憶領域に保存する。このように代表色算出部２２は、肌代表色を算出するための肌画素を顔領域ＳＡから抽出する際に、単純に肌色域定義情報１２ａが表す肌色域を用いて画素を抽出するのではなく、画像データＤの状態（逆光画像）に応じて肌色域定義情報１２ａが表す肌色域に変更を加え、変更後の肌色域に属する画素を肌画素として抽出する。その結果、入力画像内の顔画像の色味が標準的な肌色ではない場合でも、顔画像の肌部分に対応する画素を確実に抽出でき、入力画像毎の正確な肌代表色を得ることができる。なお上記では、代表色算出部２２は、入力画像が逆光画像である場合に肌色域の変更処理を行なうとしたが、入力画像が、例えばいわゆる色かぶり状態の画像や、露出不足のアンダー画像（全体的に暗い画像）や、露出過多のオーバー画像（全体的に明るい画像）であると判定した場合等においても、判定結果に応じて、肌色域定義情報１２ａが定義する肌色域に変更を施すとしてもよい。
【００３４】
Ｓ４００では、差取得部２３が、画像データＤ内における背景領域の明るさを取得する。差取得部２３は、画像データＤ内の画像領域を複数のエリアに分ける。例えば、差取得部２３は、画像データＤが表す画像の４辺に沿った枠状の領域であって顔領域ＳＡを含まない領域を周囲領域とし、周囲領域以外の領域を中央領域とする。逆光画像においては、顔などの主要な被写体が配置されていることが多い中央領域が暗く、中央領域よりも周囲領域が明るいのが一般的である。
【００３５】
図７は、差取得部２３が画像データＤの画像領域を中央領域ＣＡと周囲領域ＰＡとに分けた様子を例示している。なお、上述したように代表色算出部２２が画像データＤは逆光画像であるか否かを判定する際（Ｓ３１０）にも、図７に示したように画像データＤを中央領域ＣＡと周囲領域ＰＡとに分け、中央領域ＣＡから多めに画素をサンプリングすることがきる。
Ｓ４００における処理の一例として、差取得部２３は、周囲領域ＰＡから画素を所定の抽出率にてサンプリングする。そして、周囲領域ＰＡからサンプリングした画素の輝度平均値を算出し、この輝度平均値を背景領域の明るさとする。つまりこの場合、周囲領域ＰＡが背景領域である。なお各画素の輝度は、画素のＲＧＢの階調値それぞれに所定の重みを付けた上でそれらＲＧＢを加算することにより得られ、このように得られた画素毎の輝度を平均することにより、輝度平均値を得ることができる。
【００３６】
また、Ｓ４００における処理の他の例として、差取得部２３は、画像データＤの全領域を画素サンプリングの対象としつつ、中央領域ＣＡよりも周囲領域ＰＡにおいて高い抽出率で画素をサンプリングし、サンプリングした画素を対象とした輝度平均値を求め、この輝度平均値を背景領域の明るさとしてもよい。つまり、差取得部２３は、中央領域ＣＡよりも周囲領域ＰＡに対して重みを付けて輝度平均値を求める。
さらに、Ｓ４００における処理の他の例として、差取得部２３は、背景領域（例えば、周囲領域ＰＡ。）に属する画素のうち所定の記憶色に該当する画素のみ抽出する。そして、記憶色に該当する画素の輝度平均値を算出し、その輝度平均値を背景領域の明るさとしてもよい。
【００３７】
記憶色としては、例えば、空の色に対応する青色や、山や森の色に対応する緑色等が挙げられる。プリンタ１０は、所定の表色系（例えば、Ｌａｂ表色系）において各記憶色の色域をそれぞれ定義した記憶色域定義情報１２ｃを肌色域定義情報１２ａと同様に内部メモリ１２等に予め保存しておく。そして差取得部２３は、Ｓ４００の際に、背景領域に属する画素のうち色が記憶色域定義情報１２ｃの定義する色域に属する画素を抽出し、抽出した画素の輝度平均値を算出する。背景領域に属する画素であって記憶色に該当する画素だけに基づいて背景領域の輝度平均値を算出することで、画像データＤが表す画像における実際の背景部分（空や山など）の明るさを正確に表した輝度平均値を得ることができる。記憶色は青色や緑色など複数定義されているが、差取得部２３は、いずれかの記憶色に該当する画素であれば輝度平均値算出の対象に入れるとしても良いし、一部の記憶色に該当する画素だけを用いて輝度平均値を算出しても良い。例えば、背景領域に属する画素のうち記憶色“緑色”に該当する画素がある一定数よりも少なく、記憶色“青色”に該当する画素がある一定数以上存在する場合には、数の多い記憶色“青色”に該当する画素だけに基づいて輝度平均値を算出するとしてもよい。
【００３８】
このように差取得部２３は、上述したいずれかの手法によって背景領域の明るさ（輝度平均値）を算出する。以下では、差取得部２３がＳ４００で算出した輝度平均値を便宜上、輝度Ｙｂと表す。
Ｓ５００では、差取得部２３は、顔領域ＳＡの明るさと背景領域の明るさとの差を取得する。この場合、差取得部２３は、Ｓ３００で算出された肌代表色のＲＧＢから上述した重み付け加算の手法により輝度を算出する。以下では、肌代表色のＲＧＢから算出した輝度を輝度Ｙｆと表す。輝度Ｙｆは、肌代表色の明るさであり、肌画素の輝度平均値をほぼ表していると言える。また輝度Ｙｆは顔領域ＳＡの明るさを表しているとも言える。そして差取得部２３は、Ｓ４００で算出した輝度Ｙｂと上記輝度Ｙｆとの輝度差Ｙｄ（輝度Ｙｂ−輝度Ｙｆ）を求め、輝度差Ｙｄを顔領域ＳＡの明るさと背景領域の明るさとの差として取得する。輝度Ｙｂ＞輝度Ｙｆである場合に輝度差Ｙｄは正の値となる。本実施形態では、輝度Ｙｂ＞輝度Ｙｆであるとする。
【００３９】
３．補正曲線の生成
上記のように入力画像における肌代表色や、輝度Ｙｆや、輝度差Ｙｄが求められたら、Ｓ６００では、逆光補正曲線取得部２４が、逆光補正に用いるための逆光補正曲線（第一補正曲線または補正曲線に該当。）を生成し、Ｓ７００では、ＣＢ補正曲線取得部２５が、カラーバランス補正に用いるためのＣＢ補正曲線（第二補正曲線に該当。）を生成する。
【００４０】
図８は、逆光補正曲線取得部２４が生成する逆光補正曲線Ｆ１の一例を示している。
逆光補正曲線Ｆ１は、横軸を入力階調値ｘ（０〜２５５）、縦軸を出力階調値ｙ（０〜２５５）とした二次元座標（ｘｙ平面）上に定義された階調変換特性である。逆光補正曲線Ｆ１は、概略的には図８に示すように、低階調域において、上側に凸状のカーブを描き、中間階調域において、入力階調値ｘ＝出力階調値ｙの関係を規定した直線Ｆ０に対して徐々に接近し、中間階調域から高階調域にかけて当該直線Ｆ０に対して収束していく形状をしている。逆光補正曲線取得部２４は、このような形状の逆光補正曲線Ｆ１を、肌代表色の明るさ（輝度Ｙｆ）や輝度差Ｙｄに基づいて生成する。
【００４１】
図９は、Ｓ６００における処理の詳細をフローチャートにより示している。
Ｓ６１０では、逆光補正曲線取得部２４は、輝度Ｙｆに基づいて、逆光補正における基準補正量ｇを求める。基準補正量ｇは、輝度Ｙｆが低いほど大きく、輝度Ｙｆが高いほど小さい値である。逆光補正曲線取得部２４は、基準補正量ｇを得るための関数ｆ1（Ｙ）を定義する。つまり、ｇ＝ｆ1（Ｙ）である。関数ｆ1（Ｙ）は、輝度Ｙの階調区間０≦Ｙ≦Ｙ１を二次曲線、階調区間Ｙ１≦Ｙ≦Ｙ２を直線で構成した関数であり、
０≦Ｙ≦Ｙ１のとき、ｆ1（Ｙ）＝ｇmax−α１・Ｙ2  …（１）
Ｙ１≦Ｙ≦Ｙ２のとき、ｆ1（Ｙ）＝β１・（Ｙ２−Ｙ）  …（２）
Ｙ２≦Ｙのとき、ｆ1（Ｙ）＝０  …（３）
で表される。
【００４２】
ｇmax、Ｙ１、Ｙ２は予め実験等によって定められた値であり、本実施形態ではｇmax＝５０、Ｙ１＝６４、Ｙ２＝１２８としている。ここでＹ＝Ｙ１である場合に、上記式（１）にかかる二次曲線ｆ1（Ｙ１）と上記式（２）にかかる直線ｆ1（Ｙ１）とが一致し、かつ上記式（１）にかかる二次曲線ｆ1（Ｙ）の導関数ｆ1´（Ｙ１）と上記式（２）にかかる直線ｆ1（Ｙ）の導関数ｆ1´（Ｙ１）とが一致する。従って、逆光補正曲線取得部２４は、係数α１，β１を決定することができ、関数ｆ1（Ｙ）を輝度Ｙの全階調範囲に渡って定義することができる。
【００４３】
図１０は、逆光補正曲線取得部２４が定義した関数ｆ1（Ｙ）の一例を示している。逆光補正曲線取得部２４は、関数ｆ1（Ｙ）に輝度Ｙｆを入力し、出力値ｆ1（Ｙｆ）を、基準補正量ｇとして取得する。
Ｓ６２０では、逆光補正曲線取得部２４は、基準補正量ｇの大きさを輝度差Ｙｄに基づいて調整する。逆光補正曲線取得部２４は、輝度差Ｙｄが小さいほど基準補正量ｇを小さくする。以下では、調整後の基準補正量ｇを、補正量ｇ´と表す。Ｓ６２０において逆光補正曲線取得部２４は、補正量ｇ´を得るための関数ｆ2（ｄ）を定義する。つまり、ｇ´＝ｆ2（ｄ）である。関数ｆ2（ｄ）は、輝度差Ｙｄ（ここでは便宜的に、輝度差をｄと表す。）がとり得る階調区間−２５５〜２５５のうち、階調区間０≦ｄ≦Ｄ１を直線、階調区間Ｄ１≦ｄ≦Ｄ２を二次曲線で構成した関数であり、
ｄ＜０のとき、ｆ2（ｄ）＝０  …（４）
０≦ｄ≦Ｄ１のとき、ｆ2（ｄ）＝α２・ｄ  …（５）
Ｄ１≦ｄ≦Ｄ２のとき、ｆ2（ｄ）＝ｇ−β２・（Ｄ２−ｄ）2  …（６）
Ｄ２≦ｄのとき、ｆ2（ｄ）＝ｇ  …（７）
で表される。
【００４４】
Ｄ１、Ｄ２は予め実験等によって定められた値であり、本実施形態ではＤ１＝７５、Ｄ２＝１５０としている。
ここでｄ＝Ｄ１である場合に、上記式（６）にかかる二次曲線ｆ2（Ｄ１）と上記式（５）にかかる直線ｆ2（Ｄ１）とが一致し、かつ上記式（６）にかかる二次曲線ｆ2（ｄ）の導関数ｆ2´（Ｄ１）と上記式（５）にかかる直線ｆ2（ｄ）の導関数ｆ2´（Ｄ１）とが一致する。従って、逆光補正曲線取得部２４は、係数α２，β２を決定することができ、関数ｆ2（ｄ）を輝度差ｄがとり得る全階調範囲に渡って定義することができる。
【００４５】
図１１は、逆光補正曲線取得部２４が定義した関数ｆ2（ｄ）の一例を示している。逆光補正曲線取得部２４は、関数ｆ2（ｄ）に輝度差Ｙｄを入力し、出力値ｆ2（Ｙｄ）を、補正量ｇ´として取得する。図１１から明らかなように、輝度差ＹｄがＤ２以上である場合には、補正量ｇ´＝基準補正量ｇとなる。
Ｓ６３０では、逆光補正曲線取得部２４は、逆光補正曲線Ｆ１の形状を特徴付ける複数のポイント（座標）を上記ｘｙ平面上に特定する。この場合、逆光補正曲線取得部２４は、座標（ｘ１，ｙ１）で表される補正ポイントＰ１、座標（ｘ２，ｙ２）で表される調整ポイントＰ２および座標（ｘ３，ｙ３）で表される収束ポイントＰ３を、輝度Ｙｆや補正量ｇ´に基づいて特定する。
【００４６】
逆光補正曲線取得部２４は、補正ポイントＰ１を、入力階調値ｘ１＝Ｙｆ、出力階調値ｙ１＝ｘ１＋ｇ´とする。つまり、肌代表色の明るさＹｆを補正量ｇ´分上昇させるような逆光補正曲線Ｆ１を生成するために、補正ポイントＰ１を特定する。なおｘ１には上限（例えば６４）と下限（例えば３２）とを予め設けておき、逆光補正曲線取得部２４は、かかる上限と下限との範囲内でｘ１を特定するとしてもよい。次に、逆光補正曲線取得部２４は、調整ポイントＰ２の入力階調値ｘ２を、ｘ２＝ｘ１＋α３とする。α３は定数である。調整ポイントＰ２は、補正ポイントＰ１の位置に応じて逆光補正曲線Ｆ１の曲がり具合を調整するためのポイントであり、その入力階調値ｘ２は、補正ポイントＰ１の入力階調値ｘ１と常に一定の間隔を保つようにしている。本実施形態では一例として、α３＝１０としている。また、逆光補正曲線取得部２４は、調整ポイントＰ２の出力階調値ｙ２を、補正ポイントＰ１（ｘ１，ｙ１）および調整ポイントＰ２の入力階調値ｘ２をパラメータとする以下の所定の関数に従って特定する。
ｙ２＝ｆ3（ｘ１，ｘ２，ｙ１）  …（８）
【００４７】
次に、逆光補正曲線取得部２４は、収束ポイントＰ３の入力階調値ｘ３を決定する。収束ポイントＰ３は、調整ポイントＰ２より高階調側において、逆光補正曲線Ｆ１を自然な形で直線Ｆ０に収束させるためのポイントであり、入力階調値ｘ３は、補正ポイントＰ１の入力階調値ｘ１および補正量ｇ´をパラメータとする以下の所定の関数に従って特定される。
ｘ３＝ｆ4（ｘ１，ｇ´）  …（９）
また、逆光補正曲線取得部２４は、収束ポイントＰ３の出力階調値ｙ３を、収束ポイントＰ３の入力階調値ｘ３をパラメータとする以下の所定の関数に従って特定する。
ｙ３＝ｆ5（ｘ３）  …（１０）
なお、関数ｆ3，ｆ4，ｆ5は、予め実験等によって決められた関数であり、例えば、内部メモリ１２に保存されている。
【００４８】
図８では、上記のようにして特定された補正ポイントＰ１（ｘ１，ｙ１）、調整ポイントＰ２（ｘ２，ｙ２）および収束ポイントＰ３（ｘ３，ｙ３）も示している。補正ポイントＰ１（ｘ１，ｙ１）、調整ポイントＰ２（ｘ２，ｙ２）および収束ポイントＰ３（ｘ３，ｙ３）を特定したら、逆光補正曲線取得部２４は、Ｓ６４０において、これら各ポイント（ｘ１，ｙ１）、（ｘ２，ｙ２）、（ｘ３，ｙ３）と、直線Ｆ０の両端（０，０）、（２５５，２５５）とを所定の補間方法によって補間することにより、逆光補正曲線Ｆ１を生成する。逆光補正曲線取得部２４は、例えば、スプライン補間によって逆光補正曲線Ｆ１を生成する。
【００４９】
このような逆光補正曲線Ｆ１は、低階調域における曲線の一部（輝度Ｙｆに対応する補正ポイントＰ１の出力階調値ｙ１）を、輝度差Ｙｄに基づいて決定した補正量ｇ´の分だけ上側に持ち上げた（シフトさせた）形状であると言える。また、出力階調値ｙ１をシフトさせる度合い（補正量ｇ´の大きさ）は、輝度Ｙｆが低いほど大きくなる。そのため、入力画像内において暗い状態の顔領域ＳＡを明るくするために適した逆光補正曲線Ｆ１となる。ただし、輝度差Ｙｄが低い場合には、背景も含めて入力画像が全体的に暗いと言える。そのため、輝度差Ｙｄが大きいほど出力階調値ｙ１をシフトさせる度合いを大きくし、輝度差Ｙｄが小さい場合には逆光補正の度合いを控えめにしている。なお、輝度差Ｙｄが小さく入力画像が全体的に暗い場合には、逆光補正の度合いを控えめにする分、後述するようにカラーバランス補正の度合いが上昇することで、最終的に得られる画像は常に明るさが適切となるようにしている。
【００５０】
Ｓ７００では、ＣＢ補正曲線取得部２５は、Ｓ６００で生成された逆光補正曲線Ｆ１に応じたＣＢ補正曲線Ｆ２を生成する。本実施形態では、画像処理部２０は、入力画像に対して逆光補正を施した後にカラーバランス補正を施すため、カラーバランス補正の度合いは、逆光補正の度合いに応じて変化するようにしている。具体的には、ＣＢ補正曲線取得部２５は、肌代表色のＲＧＢ毎の階調値をそれぞれ逆光補正曲線Ｆ１に入力して補正する。逆光補正曲線Ｆ１による補正後の肌代表色のＲＧＢを、Ｒｆ´Ｇｆ´Ｂｆ´と表す。次に、ＣＢ補正曲線取得部２５は、肌色のカラーバランス補正のための理想値として内部メモリ１２等に予め保存されている階調値ＲｓＧｓＢｓ（基準値）を取得するとともに、Ｒｆ´Ｇｆ´Ｂｆ´とＲｓＧｓＢｓＱとの差分ΔＲ＝Ｒｓ−Ｒｆ´、ΔＧ＝Ｇｓ−Ｇｆ´、ΔＢ＝Ｂｓ−Ｂｆ´を算出する。そしてＣＢ補正曲線取得部２５は、差分ΔＲ，ΔＧ，ΔＢに基づいて、ＲＧＢ毎のカラーバランス補正用のトーンカーブＦ２Ｒ，Ｆ２Ｇ，Ｆ２Ｂを生成する。
【００５１】
図１２Ａ〜Ｃは、トーンカーブＦ２Ｒ，Ｆ２Ｇ，Ｆ２Ｂをそれぞれ例示している。トーンカーブＦ２Ｒは、入力階調値＝Ｒｆ´とした場合に出力階調値＝Ｒｓとなるトーンカーブであり、トーンカーブＦ２Ｇは、入力階調値＝Ｇｆ´とした場合に出力階調値＝Ｇｓとなるトーンカーブであり、トーンカーブＦ２Ｂは、入力階調値＝Ｂｆ´とした場合に出力階調値＝Ｂｓとなるトーンカーブである。つまり、逆光補正曲線Ｆ１を用いた補正による肌代表色のＲＧＢの上昇率が大きい場合には、トーンカーブＦ２Ｒ，Ｆ２Ｇ，Ｆ２Ｂにおける補正の度合い（カーブの膨らみ度合い）は小さいものとなり、逆に、逆光補正曲線Ｆ１を用いた補正による肌代表色のＲＧＢの上昇率が小さい場合には、トーンカーブＦ２Ｒ，Ｆ２Ｇ，Ｆ２Ｂにおける補正の度合いは大きくなる。本実施形態では、トーンカーブＦ２Ｒ，Ｆ２Ｇ，Ｆ２ＢをまとめてＣＢ補正曲線Ｆ２と呼ぶ。
【００５２】
４．補正処理
逆光補正曲線Ｆ１とＣＢ補正曲線Ｆ２とが生成されたら、Ｓ８００では、逆光補正部２６が画像データＤの暗部に対する逆光補正を行い、Ｓ９００では、ＣＢ補正部２７が画像データＤ全体のカラーバランス補正を行う。ただしＳ６００〜Ｓ９００の順序は図２に示した順序に限られず、逆光補正曲線Ｆ１の生成（Ｓ６００）後に、逆光補正を行い（Ｓ８００）、ＣＢ補正曲線Ｆ２の生成（Ｓ７００）後に、カラーバランス補正を行なう（Ｓ９００）としてもよい。
【００５３】
図１３は、Ｓ８００における処理の詳細をフローチャートにより示している。
逆光補正部２６は、Ｓ８１０〜Ｓ８３０において、画像データＤの暗部の範囲を定義するための色域（暗部色域Ｊと呼ぶ。）を、所定の表色系において生成する。本実施形態では、ＲＧＢの３軸が互いに直行するＲＧＢ表色系におけるグレー軸方向を向く略楕円状の色立体を暗部色域Ｊとして生成する。
図１４は、逆光補正部２６が生成した暗部色域Ｊの一例を示している。以下、暗部色域Ｊの生成手順について説明する。Ｓ８１０では、逆光補正部２６は、ＲＧＢ表色系のグレー軸に一つの軸が一致するｘｙｚ座標系を、暗部色域Ｊを定義するための座標系として設定する。
【００５４】
具体的には、逆光補正部２６は、原点０がＲＧＢ表色系の原点０と一致し、ｘ軸がＲ軸に、ｙ軸がＧ軸に、ｚ軸がＢ軸にそれぞれ一致するｘｙｚ座標系を設定する。次に、逆光補正部２６は、当該ｘｙｚ座標系を、Ｒ軸からＧ軸へ向かう方向へｚ軸を中心にして４５度回転させ、更にその後、ｘ軸がＲＧＢ表色系のグレー軸と一致するように、ｘｙｚ座標系をｙ軸を中心にして回転させる。この結果、ｘ軸がＲＧＢ表色系のグレー軸と一致したｘｙｚ座標系が設定される。図１４では、このように設定されたｘｙｚ座標系とＲＧＢ表色系との関係も示している。
Ｓ８２０では、逆光補正部２６は、ｘｙｚ座標系における暗部色域Ｊの中心点ＯＪの位置および暗部色域Ｊのｘｙｚ各方向における長さを設定する。
【００５５】
図１５は、暗部色域Ｊのｘｚ平面と平行な断面であって、暗部色域Ｊのｘ方向およびｚ方向における長さがいずれも最大となる断面を例示している。
図１６は、暗部色域Ｊのｙｚ平面と平行な断面（ｘ軸に対して垂直な断面）であって、暗部色域Ｊのｙ方向およびｚ方向における長さがいずれも最大となる断面を例示している。逆光補正部２６は、ｘｚｙ座標系の原点０からｘ軸プラス側への中心点ＯＪのずれ量ｘoff、当該原点０からｙ軸プラス側への中心点ＯＪのずれ量ｙoff、中心点ＯＪからｘ軸プラス側への長さＡｔ、中心点ＯＪからｘ軸マイナス側への長さＡｂ、中心点ＯＪからｙ軸プラス側への長さＢｔ、中心点ＯＪからｙ軸マイナス側への長さＢｂ、中心点ＯＪからｚ軸プラス側への長さＣｔおよび中心点ＯＪからｚ軸マイナス側への長さＣｂをそれぞれ設定する。
【００５６】
本実施形態では、逆光補正部２６は、ずれ量ｘoff，ｙoffをいずれも０に設定する。従って、中心点ＯＪはｘｙｚ座標系の原点（ＲＧＢ表色系の原点）と一致する。なお、図１５，１６および後述の図１７では、ずれ量ｘoff，ｙoffがいずれも０でない場合を例示している。また本実施形態では、上記長さＡｂ，Ｂｔ，Ｂｂ，Ｃｔ，Ｃｂについても、それぞれの固定長が内部メモリ１２等の所定の記憶領域に情報として定められており、逆光補正部２６は、このような予め定められている各固定長を上記長さＡｂ，Ｂｔ，Ｂｂ，Ｃｔ，Ｃｂとして設定する。本実施形態ではＢｔ＝Ｂｂ、Ｃｔ＝Ｃｂである。ただし、中心点ＯＪからｘ軸プラス側への長さＡｔは予め定められていない。長さＡｔは、暗部色域Ｊのグレー軸方向における上限（暗部色域Ｊの明るさの上限）を定義する値である。そのため本実施形態では、長さＡｔについては固定値とせず、逆光補正部２６が画像データＤの状態に応じて設定する。
【００５７】
図１７は、逆光補正部２６が行う上記長さＡｔの設定手順を説明するための図である。図１７では、上段において、暗部色域Ｊのｘｚ平面と平行な断面であって暗部色域Ｊのｘ方向およびｚ方向における長さが最大となる断面を例示し、下段において、画像データＤの全範囲を対象として所定の抽出率に基づいてサンプリングされた画素から得られる輝度分布を示している。なお、逆光補正部２６はＳ８２０において、当該輝度分布を生成してもよいし、上述したＳ３１０において代表色算出部２２によって画像データＤの輝度分布が生成済みであれば、代表色算出部２２が生成した輝度分布を取得してもよい。
【００５８】
上記長さＡｔの設定手順においては、まず逆光補正部２６は、ｘ軸（グレー軸）上に、初期上限ポイントＸｔ０を設定する。初期上限ポイントＸｔ０は、逆光補正曲線Ｆ１による出力階調値の変化率が低い所定の入力階調範囲に該当する階調値に対応するポイントである。図８に示したように、逆光補正曲線Ｆ１における出力階調値の変化率（傾き）は、直線Ｆ０による変化率と比較して、概略的には入力階調値ｘ１を含む入力階調値０〜ｘ２の範囲で大きく、入力階調値ｘ２〜ｘ３までの範囲においては逆に低く、入力階調値ｘ３以降において直線Ｆ０とほぼ同等となる。よって、逆光補正曲線Ｆ１による出力階調値の変化率が低い入力階調範囲には、入力階調範囲ｘ２〜ｘ３が相当する。そこで、逆光補正部２６は、入力階調範囲ｘ２〜ｘ３に該当するある階調値、特に入力階調値ｘ３近傍の階調値に相当するグレー軸上の位置を初期上限ポイントＸｔ０とする。
【００５９】
より具体的には、逆光補正部２６は、以下の所定の関数に従って初期上限ポイントＸｔ０を特定する。
Ｘｔ０＝ｆ6（ｘ１，ｇ´）・√３  …（１１）
上述したように入力階調値ｘ３は、入力階調値ｘ１および補正量ｇ´によって決まる値であるため、初期上限ポイントＸｔ０も、入力階調値ｘ１および補正量ｇ´をパラメータとする上記関数ｆ6（ｘ１，ｇ´）に従って特定する。関数ｆ6は予め実験等によって決められた関数であり、例えば内部メモリ１２に保存されている。
√３は、３の平方根を意味する。ｆ6（ｘ１，ｇ´）に√３を乗じるのは、ｆ6（ｘ１，ｇ´）がとり得るレンジとグレー軸のレンジとの整合を図るためである。なお、逆光補正部２６は、上記入力階調値ｘ３に√３を乗じた値をＸｔ０としてもよい。
【００６０】
初期上限ポイントＸｔ０をグレー軸上に設定したら（図１７の上段参照。）、次に、逆光補正部２６は、初期上限ポイントＸｔ０を輝度分布の階調値に正規化し、正規化した後の階調値を初期上限階調値Ｘｔ０´とする。つまり、グレー軸のレンジは輝度分布のレンジ（０〜２５５）の√３倍であるため、逆光補正部２６は、初期上限ポイントＸｔ０に（１／√３）を乗じることにより、初期上限階調値Ｘｔ０´を取得する。図１７の下段では、輝度分布の階調範囲内に初期上限階調値Ｘｔ０´を記している。
次に、逆光補正部２６は輝度分布における谷を特定する。つまり逆光補正部２６は、輝度分布における極小値を見つけ、極小値に対応する階調値（輝度）を特定する。図１７に示した輝度分布では、３つの谷が存在する場合を例示しており、それぞれの谷に対応する階調値を階調値Ｙｖ１，Ｙｖ２，Ｙｖ３と表している。上述したように逆光画像においては、低階調側と高階調側とに輝度の分布が集中しその間に分布の谷が生じる傾向があるが、生じる谷の数は１つとは限らない。そこで、逆光補正部２６は、輝度分布において生じた谷を上記のように一旦全て特定する。
【００６１】
逆光補正部２６は、初期上限階調値Ｘｔ０´よりも低階調側の谷に対応する階調値のうち、初期上限階調値Ｘｔ０´に最も近い階調値を特定する。そして、初期上限階調値Ｘｔ０´を、当該特定した階調値に変更する。図１７の例では、輝度分布の谷に対応する階調値Ｙｖ１，Ｙｖ２，Ｙｖ３のうち、階調値Ｙｖ１，Ｙｖ２が初期上限階調値Ｘｔ０´より低階調側に在り、そのうち階調値Ｙｖ２が初期上限階調値Ｘｔ０´に最も近い。そのため、初期上限階調値Ｘｔ０´を階調値Ｙｖ２に変更する。ただし逆光補正部２６は、初期上限階調値Ｘｔ０´と初期上限階調値Ｘｔ０´よりも低階調側で最も近い谷の階調値との差分が、予め定められたしきい値を超える場合には、初期上限階調値Ｘｔ０´の変更を行なわない。これは、暗部色域Ｊの明るさの上限が低くなり過ぎないようにするためである。
【００６２】
次に、逆光補正部２６は、上記変更後の階調値（階調値Ｙｖ２）に√３を乗じた値を、グレー軸上に設定する。本実施形態では、上記変更後の階調値に√３を乗じた値を、上限ポイントＸｔ１と表す（図１７の上段参照。）。そして、逆光補正部２６は、ｘ軸方向における中心点ＯＪと上限ポイントＸｔ１との距離を、長さＡｔとして設定する。なお、初期上限階調値Ｘｔ０´の変更を行なわなかった場合には、逆光補正部２６は、ｘ軸方向における中心点ＯＪと初期上限ポイントＸｔ０との距離を長さＡｔとする。
【００６３】
Ｓ８３０では、逆光補正部２６は、Ｓ８２０で設定した中心点ＯＪの位置およびｘｙｚ各方向における各長さに基づいて、暗部色域Ｊをｘｙｚ座標系内に生成する。つまり逆光補正部２６は、中心点ＯＪを基準としてｘ軸プラス側へ長さＡｔを有しｘ軸マイナス側へ長さＡｂを有しｚ軸プラス側へ長さＣｔを有しｚ軸マイナス側へ長さＣｂを有する、ｘｚ平面と平行なｘｚ断面と、中心点ＯＪを基準としてｙ軸プラス側へ長さＢｔを有しｙ軸マイナス側へ長さＢｂを有しｚ軸プラス側へ長さＣｔを有しｚ軸マイナス側へ長さＣｂを有する、ｙｚ平面と平行なｙｚ断面と、を含む略楕円状（略卵型）の立体を生成し、これを暗部色域Ｊとする。当該ｘｚ断面は、暗部色域Ｊのｘｚ平面と平行な断面のうち面積が最大となる断面であり、当該ｙｚ断面は、暗部色域Ｊのｙｚ平面と平行な断面のうち面積が最大となる断面である。
【００６４】
Ｓ８４０以降では、逆光補正部２６は、画像データＤの画素のうち暗部色域Ｊに属する画素に対してのみ、逆光補正を行なう。つまりＳ８４０では、逆光補正部２６は、画像データＤを構成する画素のうち一つの画素を選択し、Ｓ８５０では、直近のＳ８４０で選択した画素のＲＧＢデータが、暗部色域Ｊに属するか否か判定する。
逆光補正部２６は、Ｓ８５０において画素のＲＧＢデータが暗部色域Ｊに属すると判定した場合にはＳ８６０に進み、一方、画素のＲＧＢデータが暗部色域Ｊに属さないと判定した場合にはＳ８６０をスキップしてＳ８７０に進む。
【００６５】
Ｓ８６０では、逆光補正部２６は、直近のＳ８４０で選択した画素を逆光補正曲線Ｆ１を用いて補正する。具体的には、画素のＲＧＢ毎の階調値をそれぞれ逆光補正曲線Ｆ１に入力して補正する。Ｓ８６０における逆光補正曲線Ｆ１による補正後のＲＧＢを、Ｒ´Ｇ´Ｂ´と表す。
なおＳ８６０においては、逆光補正部２６は、暗部色域Ｊのグレー軸方向を向く中心軸と、そのとき補正対象とした画素との距離に応じて、画素に対する補正の度合いを変更するとしてもよい。
【００６６】
図１８は、暗部色域Ｊのグレー軸方向を向く中心軸に対して垂直な面における暗部色域Ｊの断面と、各逆光補正曲線との対応関係を例示している。逆光補正部２６は図１８に示すように、暗部色域Ｊの中心軸からの距離に応じて、暗部色域Ｊ内の領域を複数の領域Ｊ１，Ｊ２，Ｊ３…に分ける。上述したように、本実施形態では、暗部色域Ｊの中心点ＯＪのｙ軸方向へのずれ量ｙoffは０であるため、暗部色域Ｊの中心軸とグレー軸とは一致している。逆光補正部２６は、中心軸から遠い領域に対応する補正曲線ほど補正の度合いが弱くなるように、各領域Ｊ１，Ｊ２，Ｊ３…に対応する複数の逆光補正曲線Ｆ１１，Ｆ１２，Ｆ１３…を生成する。具体的には、中心軸に最も近い領域（中心軸を含む領域Ｊ１）には、Ｓ６００で生成された逆光補正曲線Ｆ１そのものを対応付ける（つまり、逆光補正曲線Ｆ１＝逆光補正曲線Ｆ１１である。）。また、中心軸から遠ざかる各領域Ｊ２，Ｊ３…に対しては、逆光補正曲線Ｆ１の形状を基礎として曲線の湾曲度合いを徐々に緩くした逆光補正曲線Ｆ１２，Ｆ１３…を生成し、対応付ける。Ｓ８６０では、逆光補正部２６は、補正対象の画素が属する領域（領域Ｊ１，Ｊ２，Ｊ３…のいずれか）に対応する逆光補正曲線を用いて画素の補正を行う。
【００６７】
このように暗部領域Ｊの中心軸からの距離に応じて徐々に逆光補正の度合いを弱めることにより、逆光補正を行なった際に画像データＤの暗部色域Ｊに属する色と暗部色域Ｊに属さない色との間で階調性の欠損（階調つぶれ）が生じることを、的確に防止することができる。Ｓ８７０では、逆光補正部２６は、画像データＤに属する画素の全てをＳ８４０において一度ずつ選択し終えたか否か判定し、全ての画素を選択済みであれば図１３の処理を終える。一方、画像データＤに属する画素であってＳ８４０におい未選択の画素が存在している場合には、Ｓ８４０に戻り、未選択の画素を一つ選択しＳ８５０以降の処理を繰り返す。
【００６８】
このように本実施形態では、画像データＤを構成する画素のうち、色が暗部色域Ｊに属する画素だけが逆光補正曲線Ｆ１によって補正される。特に、画像データＤの輝度分布における谷に対応するグレー軸上の位置を、暗部色域Ｊのグレー軸方向における上限としている。そのため、逆光画像である画像データＤ内の暗部に該当する画素だけを確実に逆光補正の対象とし、逆行補正が不要な明るい部分まで逆光補正の対象としてしまうことを防止している。また本実施形態では、輝度分布における谷であって、逆光補正曲線Ｆ１による出力階調値の変化率が低い入力階調範囲に該当する階調値（初期上限階調値Ｘｔ０´）よりも低階調側の谷に対応するグレー軸上の位置を、暗部色域Ｊのグレー軸方向における上限としている。そのため、逆光補正曲線Ｆ１を構成する曲線区間のうち、出力階調値の変化率が低い曲線区間（例えば、調整ポイントＰ２から収束ポイントＰ３までの区間）は、実質的に殆ど逆光補正に用いられない。その結果、逆光補正曲線Ｆ１によって補正を施した部分の階調性が損なわれる（コントラストが低下する）ことを極力防止することができる。
【００６９】
Ｓ９００では、ＣＢ補正部２７が、Ｓ８００において暗部に逆光補正が施された後の画像データＤを対象として、ＣＢ補正曲線Ｆ２を用いて補正を行う。ＣＢ補正部２７は、画像データＤを構成する全画素のＲＧＢ（逆光補正がなされた画素についてはＲ´Ｇ´Ｂ´）の階調値を、トーンカーブＦ２Ｒ，Ｆ２Ｇ，Ｆ２Ｂに入力することにより、各画素の各要素色を個別に補正する。この結果、画像データＤ全体のカラーバランスが整えられ、画像データＤにおけるＲＧＢ間の分布特性のばらつきが小さくなる。また、顔画像の肌部分の色も理想的な肌色に極めて近くなる。当該補正が終了したら、画像処理部２０は図２のフローチャートを終える。以後、画像処理部２０は、画像データＤに対してさらなる他の画像処理を施しても良いし、画像データＤを印刷制御部４０に受け渡してもよい。
【００７０】
５．変形例
本実施形態の内容は上述したものに限られず、以下に示す様々な変形例を採用することができる。
ＷＢ補正部２８は、上述した逆光補正およびカラーバランス補正が行なわれる前に、画像データＤに対してホワイトバランス補正を行うとしてもよい。例えば、ＷＢ補正部２８は、Ｓ１００の後であってＳ２００の前にホワイトバランス補正を行う。ホワイトバランス補正とは、画像データＤにおけるＲＧＢの最大値間のばらつきを抑制するように画像データＤの各画素を補正する処理を言う。ＷＢ補正部２８は、まず、画像データＤから画素をサンプリングし、サンプリングした画素のＲＧＢ毎の度数分布（ヒストグラム）を生成する。
【００７１】
図１９Ａ，１９Ｂ，１９Ｃは、ＷＢ補正部２８が生成したＲＧＢ毎のヒストグラムを例示している。ＷＢ補正部２８は、各ヒストグラムの最大値Ｒmax，Ｇmax，Ｂmaxのうち、一つの値（例えば、Ｇmaxとする。）を選択し、当該選択した最大値Ｇmaxに対する他の要素色の最大値Ｒmax，Ｂmaxの差分ΔＧＲ＝Ｇmax−Ｒmax，ΔＧＢ＝Ｇmax−Ｂmaxをそれぞれ算出する。そして、ＷＢ補正部２８は、差分ΔＧＲをオフセット量としてＲが最大値Ｒmaxである画素のＲに加算するとともに、Ｒが最大値Ｒmaxでない他の画素のＲに対し、Ｒのレベルに応じたオフセット量（例えば、Ｒのレベルに応じて０〜１の係数を差分ΔＧＲに乗算して得られるオフセット量）を加算する。同様に、ＷＢ補正部２８は、差分ΔＧＢをオフセット量としてＢが最大値Ｂmaxである画素のＢに加算するとともに、Ｂが最大値Ｂmaxでない他の画素のＢに対し、Ｂのレベルに応じたオフセット量（例えば、Ｂのレベルに応じて０〜１の係数を差分ΔＧＢに乗算して得られるオフセット量）を加算する。
【００７２】
このような加算処理を行なうことで、少なくとも画像データＤを構成するＲＧＢの最大値間のばらつきが是正される（ホワイトバランスが整えられる）。なお、ＷＢ補正部２８によるホワイトバランス補正の具体的手法は上述した手法に限られない。逆光補正に用いる逆行補正曲線Ｆ１は、図８に示したように一部の階調範囲だけを上昇させる特殊な変換特性を有しており、入力画像に対して大きな変化を生じさせる。そのため、元々ホワイトバランスが崩れているような入力画像に対してそのまま逆光補正を行ってしまうと、結果的にホワイトバランスの崩れが拡大されて画像の色が破綻してしまう恐れもある。そこで、逆光補正部２６による逆光補正の前に、ＷＢ補正部２８が入力画像に対してホワイトバランス補正を行って画像のホワイトバランスを整えることにより、逆光補正の結果において画像の色が破綻することを防止している。
【００７３】
上記では、逆光補正曲線取得部２４はＳ６００において、輝度Ｙｆや輝度差Ｙｄに基づいて補正量ｇ´を算出するとともに、３つのポイントＰ１，Ｐ２，Ｐ３を求めることにより逆光補正曲線Ｆ１を生成するとした。しかし他の例として、逆光補正曲線取得部２４はＳ６００において、形状が異なる予め生成された複数の逆光補正曲線Ｆ１の中から、輝度Ｙｆや輝度差Ｙｄに基づいて一つの補正曲線を選択するとしてもよい。例えば、内部メモリ１２に、補正の度合いが異なる複数の逆光補正曲線Ｆ１が予め保存されているものとする。そして、逆光補正曲線取得部２４は、入力画像から得た輝度差Ｙｄの大きさに基づいて、当該輝度差Ｙｄを解消するために最適な補正度合いの逆光補正曲線Ｆ１を一つ選択する。Ｓ８００では、Ｓ６００で選択された逆光補正曲線Ｆ１が使用される。かかる構成とすれば、複雑な演算を行なうことなく極めて簡易に逆光補正曲線Ｆ１を取得することができる。
【００７４】
上記では、暗部色域Ｊを定義するパラメータのうち、ずれ量ｘoff，ｙoffおよび長さＡｂ，Ｂｔ，Ｂｂ，Ｃｔ，Ｃｂについては固定値であるとしたが、これらパラメータについて、画像データＤの状態等に応じて適宜、その値を変更してもよい。また、顔画像が暗い状態の逆光画像を補正するという視点に立てば、暗部色域Ｊは肌色を多く含む色域であると有効である。そこで、中心点ＯＪのｙ軸プラス側へのずれ量ｙoffは、所定の負値であるとしてもよい。ずれ量ｙoffが所定の負値であると、暗部色域Ｊは、上述したように中心軸がグレー軸と一致している場合と比較して、ＲＧＢ表色系における肌色系統の色を多く含むようになる。その結果、暗部色域Ｊに基づいて逆光補正の対象画素を限定すれば、画像データＤ内の暗い画素であってかつ顔画像の肌部分に対応した画素を精度良く逆光補正の対象とすることができる。
【００７５】
６．まとめ
このように本実施形態によれば、プリンタ１０は、画像データＤから検出した顔領域ＳＡの明るさ（顔領域ＳＡから算出した肌代表色の明るさ）と背景領域の明るさとの差（輝度差Ｙｄ）や、顔領域ＳＡの明るさに基づいて補正量を決定した逆光補正曲線Ｆ１を生成する。そして、プリンタ１０は、画像データＤを構成する画素のうち、画像データＤの輝度分布の谷の位置に応じて明るさの上限が規定された暗部色域Ｊに属する画素だけを、逆光補正曲線Ｆ１によって補正する。そのため、画像データＤ内の暗部だけが上記輝度差Ｙｄや肌代表色の明るさを考慮した最適な補正度合いにて明るさが補正され、画像データＤ内の暗部に該当しない画素の色は白飛びすることなくその色味が維持される。
【００７６】
さらにプリンタ１０は、肌代表色の各要素色を逆光補正曲線Ｆ１によって補正するとともに、当該補正後の肌代表色の各要素色に基づいて、要素色毎のＣＢ補正曲線Ｆ２を生成する。そしてプリンタ１０は、上記のように画像データＤの暗部を逆光補正曲線Ｆ１で補正した後に、画像データＤの全画素を対象としてＣＢ補正曲線Ｆ２を用いて要素色毎の補正を行う。つまり、逆光補正曲線Ｆ１による逆光補正だけでは、画像データＤの要素色間のバランスがばらついている可能性もあるが、さらにＣＢ補正曲線Ｆ２によるカラーバランス補正を行うことにより、暗部の明度不足が解消され且つカラーバランスが整えられた極めて理想的な画像を得ることができる。ＣＢ補正曲線Ｆ２は、逆光補正曲線Ｆ１によって補正した肌代表色と肌色の理想値として予め定められた基準値との比較に基づいて生成されるため、逆光補正後のカラーバランス補正が過剰な補正となることはない。このような逆光補正とカラーバランス補正との組み合わせは、画像領域内に顔画像を含む逆光画像に対して特に有効である。
【００７７】
なお、逆光補正とカラーバランス補正とを行なう順番も重要である。つまり、入力画像に対して逆光補正よりも先にカラーバランス補正を実行すると、補正の度合いが大きいために画像の明るい部分が白飛びする恐れがあり、かかる白飛びは修正されないままとなってしまう。また、カラーバランス補正後に逆光補正を行うと、カラーバランス補正によって整えられた顔画像などの色のバランスが、逆光補正によって再び崩れてしまうことも考えられる。従って、高い画質の画像を得るためには、本実施形態のように逆光補正を行なった上でカラーバランス補正を行う必要がある。
本実施形態では、特定画像は顔画像であるとして説明を行なったが、本発明の構成を用いて検出可能な特定画像は顔画像に限られない。つまり本発明では、人工物や、生物や、自然物や、風景など、様々な対象を特定画像として検出することが可能であり、算出される代表色も、そのとき検出の対象としている特定画像を代表する色となる。
【図面の簡単な説明】
【００７８】
【図１】プリンタの概略構成を示すブロック図である。
【図２】画像処理部によって実行される処理を示すフローチャートである。
【図３】画像データ内において検出された顔領域を示す図である。
【図４】肌代表色算出処理の詳細を示したフローチャートである。
【図５】肌色域定義情報が定義する肌色域を示す図である。
【図６】肌色域を変更する様子を示す図である。
【図７】画像データの領域を中央領域と周囲領域とに分けた様子を示す図である。
【図８】逆光補正曲線を示す図である。
【図９】逆光補正曲線生成処理の詳細を示したフローチャートである。
【図１０】基準補正量を算出するための関数を示す図である。
【図１１】補正量を算出するための関数を示す図である。
【図１２】ＣＢ補正曲線を示す図である。
【図１３】逆光補正処理の詳細を示すフローチャートである。
【図１４】暗部色域を示す図である。
【図１５】暗部色域の断面図である。
【図１６】暗部色域の断面図である。
【図１７】暗部色域の長さを決定する様子を示す図である。
【図１８】暗部色域の各領域と各逆光補正曲線との対応関係を示す図である。
【図１９】要素色毎のヒストグラムを示す図である。
【符号の説明】
【００７９】
１０…プリンタ、１１…ＣＰＵ、１２…内部メモリ、１２ａ…肌色域定義情報、１２ｂ…顔テンプレート、１２ｃ…記憶色域定義情報、１６…プリンタエンジン、１７…カードＩ／Ｆ、２０…画像処理部、２１…顔画像検出部、２２…代表色算出部、２３…差取得部、２４…逆光補正曲線取得部、２５…ＣＢ補正曲線取得部、２６…逆光補正部、２７…ＣＢ補正部、２８…ＷＢ補正部、３０…表示制御部、４０…印刷制御部、１７２…カードスロット
【図１】
2009290661.tif 000003
【図２】
2009290661.tif 000004
【図３】
2009290661.tif 000005
【図４】
2009290661.tif 000006
【図５】
2009290661.tif 000007
【図６】
2009290661.tif 000008
【図７】
2009290661.tif 000009
【図８】
2009290661.tif 000010
【図９】
2009290661.tif 000011
【図１０】
2009290661.tif 000012
【図１１】
2009290661.tif 000013
【図１２】
2009290661.tif 000014
【図１３】
2009290661.tif 000015
【図１４】
2009290661.tif 000016
【図１５】
2009290661.tif 000017
【図１６】
2009290661.tif 000018
【図１７】
2009290661.tif 000019
【図１８】
2009290661.tif 000020
【図１９】
2009290661.tif 000021