(57)【要約】【課題】特定画像にかかる代表色を正確に取得することが困難であった。【解決手段】入力画像内における特定画像の少なくとも一部を含む領域を検出する特定画像検出部と、上記入力画像の状態を判定する状態判定部と、上記特定画像に対応する色域として所定の表色系において予め定められた色域に対して上記状態判定部による判定結果に応じた変更を施す色域変更部と、上記特定画像検出部によって検出された領域に含まれる画素のうち色が上記色域変更部による変更後の色域に属する画素を抽出する画素抽出部と、上記画素抽出部によって抽出された画素に基づいて上記特定画像を代表する代表色を算出する代表色算出部とを備える構成とした。【選択図】図２
2010003118.tif 000002
【特許請求の範囲】
【請求項１】
入力画像内における特定画像の少なくとも一部を含む領域を検出する特定画像検出部と、
上記入力画像の状態を判定する状態判定部と、
上記特定画像に対応する色域として所定の表色系において予め定められた色域に対して上記状態判定部による判定結果に応じた変更を施す色域変更部と、
上記特定画像検出部によって検出された領域に含まれる画素のうち色が上記色域変更部による変更後の色域に属する画素を抽出する画素抽出部と、
上記画素抽出部によって抽出された画素に基づいて上記特定画像を代表する代表色を算出する代表色算出部とを備えることを特徴とする画像処理装置。
【請求項２】
上記状態判定部は、入力画像から所定の特徴値を取得するとともに当該特徴値に基づいて入力画像が色かぶり画像であるか否か判定し、上記色域変更部は、上記状態判定部によって入力画像は色かぶり画像であると判定された場合には少なくとも、上記予め定められた色域を色相範囲が変更されるように移動及びまたは変形させることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
上記状態判定部は、入力画像から所定の特徴値を取得するとともに当該特徴値に基づいて入力画像がアンダー画像であるか否か判定し、上記色域変更部は、上記状態判定部によって入力画像はアンダー画像であると判定された場合には少なくとも、上記予め定められた色域を変更前と比較して低彩度側の色域が含まれるように移動及びまたは変形させることを特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
上記代表色算出部は、上記画素抽出部によって抽出された各画素の要素色別の平均値を算出し、当該算出した要素色別の平均値からなる色を上記代表色とすることを特徴とする請求項１〜請求項３のいずれかに記載の画像処理装置。
【請求項５】
上記画素抽出部は、上記特定画像検出部によって検出された領域内において上記特定画像の輪郭を検出するとともに、当該検出した輪郭内の画素のうち色が上記変更後の色域に属する画素を抽出することを特徴とする請求項１〜請求項４のいずれかに記載の画像処理装置。
【請求項６】
上記特定画像検出部は、入力画像内における顔画像の少なくとも一部を含む領域を検出し、上記色域変更部は、所定の表色系において予め定められた肌色域に対して変更を施すことを特徴とする請求項１〜請求項５のいずれかに記載の画像処理装置。
【請求項７】
入力画像内における特定画像の少なくとも一部を含む領域を検出する特定画像検出工程と、
上記入力画像の状態を判定する状態判定工程と、
上記特定画像に対応する色域として所定の表色系において予め定められた色域に対して上記状態判定工程における判定結果に応じた変更を施す色域変更工程と、
上記特定画像検出工程において検出された領域に含まれる画素のうち色が上記色域変更工程による変更後の色域に属する画素を抽出する画素抽出工程と、
上記画素抽出工程において抽出された画素に基づいて上記特定画像を代表する代表色を算出する代表色算出工程とを備えることを特徴とする画像処理方法。
【請求項８】
入力画像内における特定画像の少なくとも一部を含む領域を検出する特定画像検出機能と、
上記入力画像の状態を判定する状態判定機能と、
上記特定画像に対応する色域として所定の表色系において予め定められた色域に対して上記状態判定機能による判定結果に応じた変更を施す色域変更機能と、
上記特定画像検出機能によって検出された領域に含まれる画素のうち色が上記色域変更機能による変更後の色域に属する画素を抽出する画素抽出機能と、
上記画素抽出機能によって抽出された画素に基づいて上記特定画像を代表する代表色を算出する代表色算出機能とをコンピュータに実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法および画像処理プログラムに関する。
【背景技術】
【０００２】
画像処理の分野では、デジタルスチルカメラ等から得られた入力画像に含まれている顔画像の色を理想的な肌色にするための補正が試みられている。かかる補正を行なう場合、画像処理を実行するプリンタ等は、補正前の入力画像における顔画像の肌部分を代表する色（適宜、肌代表色と呼ぶ）を求め、当該求めた肌代表色に応じて決定した補正量によって入力画像の画素に対する補正を行なっていた。この種の技術として、対象画像から顔領域を特定し、顔領域内に含まれる全画素の画素値（ＲＧＢ）をＲ値、Ｇ値、Ｂ値毎に平均して算出したＲＧＢ値を肌色代表値ＦＶとして採用する画像処理装置が知られている（特許文献１参照。）。
【特許文献１】特開２００６‐２６１８７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記補正を適切に行うには、補正前の入力画像における顔画像の肌部分の色を正確に反映した肌代表色を得る必要がある。
従来は、入力画像上において顔画像を含む矩形領域を検出し、当該検出した矩形領域に含まれる画素の色に基づいて肌代表色を算出する手法が採られていた。しかし、上記矩形領域には、顔の輪郭外の画素や、顔内であっても肌部分には対応していない画素（頭髪や目や眉毛や唇に対応した画素）も含まれ得る。そのため、上記のように矩形領域内の画素の色に基づいて算出した肌代表色は、必ずしも顔画像の肌部分の色を正確に反映しているとは言えなかった。
【０００４】
また、標準的な肌色を含む色域（肌色域）を所定の表色系で予め定義しておき、入力画像に含まれる画素のうち当該肌色域に属する画素を抽出し、当該抽出した画素の色に基づいて肌代表色を求める手法も採られていた。しかし、ユーザが任意に選ぶ入力画像は、全体的に暗かったり、逆に全体的に明るかったり、あるいはいわゆる色かぶりの状態であったりするため、入力画像における顔画像の肌部分の色が上記肌色域から外れることもある。このように顔画像の肌部分の色が上記肌色域から外れている場合、顔画像の肌部分を構成している画素が肌代表色の算出に用いられなくなり、その結果、正確な肌代表色の算出が不可能となっていた。
【０００５】
本発明は上記各課題に鑑みてなされたもので、画像処理の対象となる入力画像内の特定画像の色を正確に反映した情報を得ることが可能な画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の画像処理装置は、入力画像内における特定画像の少なくとも一部を含む領域を検出する特定画像検出部と、上記入力画像の状態を判定する状態判定部と、上記特定画像に対応する色域として所定の表色系において予め定められた色域に対して上記状態判定部による判定結果に応じた変更を施す色域変更部と、上記特定画像検出部によって検出された領域に含まれる画素のうち色が上記色域変更部による変更後の色域に属する画素を抽出する画素抽出部と、上記画素抽出部によって抽出された画素に基づいて上記特定画像を代表する代表色を算出する代表色算出部とを備える構成としてある。
【０００７】
本発明によれば、所定の表色系において予め定められた色域が入力画像の状態に応じて変更される。また、入力画像から検出された特定画像にかかる領域内の画素であって且つその色が上記変更後の色域に属する画素だけに基づいて、特定画像の代表色が算出される。そのため、入力画像の状態がどのようなものであっても、入力画像内の特定画像の色を正確に反映した代表色を得ることができる。
【０００８】
上記状態判定部は、入力画像から所定の特徴値を取得するとともに当該特徴値に基づいて入力画像が色かぶり画像であるか否か判定し、上記色域変更部は、上記状態判定部によって入力画像は色かぶり画像であると判定された場合には少なくとも、上記予め定められた色域を色相範囲が変更されるように移動及びまたは変形させるとしてもよい。当該構成によれば、入力画像が色かぶりの状態であっても、上記予め定められた色域を色相範囲が変更されるように移動及びまたは変形させることにより、上記代表色を算出するために適した画素を精度よく抽出することができる。
【０００９】
上記状態判定部は、入力画像から所定の特徴値を取得するとともに当該特徴値に基づいて入力画像がアンダー画像であるか否か判定し、上記色域変更部は、上記状態判定部によって入力画像はアンダー画像であると判定された場合には少なくとも、上記予め定められた色域を変更前と比較して低彩度側の色域が含まれるように移動及びまたは変形させるとしてもよい。当該構成によれば、入力画像が露出不足のいわゆるアンダー画像（全体的に暗い画像）に該当する場合であっても、上記予め定められた色域を変更前と比較して低彩度側の色域が含まれるように移動及びまたは変形させることにより、上記代表色を算出するために適した画素を精度よく抽出することができる。
【００１０】
上記代表色算出部は、上記画素抽出部によって抽出された各画素の要素色別の平均値を算出し、当該算出した要素色別の平均値からなる色を上記代表色としてもよい。当該構成によれば、特定画像の色の特徴を的確に表した代表色を得ることができる。
上記画素抽出部は、上記特定画像検出部によって検出された領域内において上記特定画像の輪郭を検出するとともに、当該検出した輪郭内の画素のうち色が上記変更後の色域に属する画素を抽出するとしてもよい。当該構成によれば、上記検出された領域内かつ輪郭内という位置的条件を満たし更にその色が上記変更後の色域に属する画素だけが抽出される。そのため、代表色の算出に不要な画素を極力排除した上で代表色を算出することができる。
【００１１】
上記特定画像検出部は、入力画像内における顔画像の少なくとも一部を含む領域を検出し、上記色域変更部は、所定の表色系において予め定められた肌色域に対して変更を施すとしてもよい。当該構成によれば、入力画像における顔の色が標準的な肌色からずれた状態であっても、その顔の色を正確に反映した代表色を得ることができる。
【００１２】
本発明の技術的思想は、上述した画像処理装置の発明以外にも、上述した画像処理装置が備える各部が行なう各処理工程を備えた画像処理方法の発明や、上述した画像処理装置が備える各部に対応した各機能をコンピュータに実行させる画像処理プログラムの発明としても捉えることができる。また、上記の画像処理装置、画像処理方法および画像処理プログラムは具体的には、ＰＣやサーバ等のハードウェアによって実現される他、画像入力装置としてのデジタルスチルカメラやスキャナ、あるいは、画像出力装置としてのプリンタやプロジェクタやフォトヴューワ等、様々な製品によって実現することができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の実施形態を説明する。
図１は、本発明の画像処理装置の一例に該当するプリンタ１０の構成を概略的に示している。プリンタ１０は、記録メディア（例えば、メモリカードＭＣ等）から取得した画像データに基づき画像を印刷する、いわゆるダイレクトプリントに対応したカラープリンタ（例えば、カラーインクジェットプリンタ）である。プリンタ１０は、プリンタ１０の各部を制御するＣＰＵ１１と、例えばＲＯＭやＲＡＭによって構成された内部メモリ１２と、ボタンやタッチパネルにより構成された操作部１４と、液晶ディスプレイにより構成された表示部１５と、プリンタエンジン１６と、カードインターフェース（カードＩ／Ｆ）１７と、ＰＣやサーバやデジタルスチルカメラ等の各種外部機器との情報のやり取りのためのＩ／Ｆ部１３とを備えている。プリンタ１０の各構成要素は、バスを介して互いに接続されている。
【００１４】
プリンタエンジン１６は、印刷データに基づき印刷を行う印刷機構である。カードＩ／Ｆ１７は、カードスロット１７２に挿入されたメモリカードＭＣとの間でデータのやり取りを行うためのＩ／Ｆである。メモリカードＭＣには画像データが格納されており、プリンタ１０は、カードＩ／Ｆ１７を介してメモリカードＭＣに格納された画像データを取得することができる。画像データ提供のための記録メディアとしてはメモリカードＭＣ以外にも種々の媒体を用いることができる。むろんプリンタ１０は、記録メディア以外にも、Ｉ／Ｆ部１３を介して接続した上記外部機器から画像データを入力することも可能である。プリンタ１０は、コンシューマ向けの印刷装置であってもよいし、ＤＰＥ向けの業務用印刷装置（いわゆるミニラボ機）であってもよい。プリンタ１０は、Ｉ／Ｆ部１３を介して接続したＰＣやサーバ等から印刷データを入力することもできる。
【００１５】
内部メモリ１２には、画像処理部２０と、表示制御部３０と、印刷制御部４０とが格納されている。画像処理部２０は、所定のオペレーティングシステムの下で、画像データに対し、後述する肌代表色取得処理を含む各種画像処理を実行するためのコンピュータプログラムである。表示制御部３０は、表示部１５を制御することにより表示部１５の画面に所定のユーザインターフェース（ＵＩ）画像やメッセージやサムネイル画像などを表示させるディスプレイドライバである。印刷制御部４０は、画像処理が施された後の画像データに基づいて各画素の記録材（インクやトナー）の記録量を規定した印刷データを生成し、プリンタエンジン１６を制御して、印刷データに基づく画像の印刷媒体への印刷を実行するためのコンピュータプログラムである。
【００１６】
ＣＰＵ１１は、内部メモリ１２から、これらの各プログラムを読み出して実行することにより、これら各部の機能を実現する。画像処理部２０はさらに、プログラムモジュールとして、顔画像検出部２１と、状態判定部２２と、色域変更部２３と、画素抽出部２４と、代表色算出部２５とを少なくとも含んでいる。顔画像検出部２１は、特定画像検出部に該当する。これら各部の機能については後述する。さらに、内部メモリ１２には、肌色域定義情報１２ａや顔テンプレート１２ｂ等の各種データやプログラムが格納されている。プリンタ１０は、印刷機能以外にも、コピー機能やスキャナ機能（画像読取機能）など多種の機能を備えたいわゆる複合機であってもよい。
次に、プリンタ１０において画像処理部２０に従って実行される肌代表色取得処理を説明する。肌代表色とは、入力画像内に存在する顔画像を代表する色を意味し、より具体的には、当該顔画像の肌部分の色を代表する色を意味する。
【００１７】
図２は、肌代表色取得処理をフローチャートにより示している。
ステップＳ（以下、ステップの表記を省略。）１００では、画像処理部２０は、処理対象となる画像を表した画像データＤをメモリカードＭＣ等の記録メディアから取得する。つまり、ユーザが表示部１５に表示されたＵＩ画像を参照して操作部１４を操作し、処理対象とする画像データＤを指定した場合に、当該指定された画像データＤを画像処理部２０が読み込む。画像処理部２０は、Ｉ／Ｆ部１３を介してＰＣやサーバやデジタルスチルカメラ等から画像データＤを取得してもよい。画像データＤは、各画素の色が要素色（ＲＧＢ）毎の階調値で表されたビットマップデータである。画像データＤは、記録メディア等に記録されている段階で圧縮されていてもよいし、他の表色系で各画素の色が表現されていてもよい。これらの場合、画像データＤの展開や表色系の変換を実行し、画像処理部２０がＲＧＢビットマップデータとしての画像データＤを取得する。このように取得された画像データＤは入力画像に該当する。
【００１８】
Ｓ１１０では、顔画像検出部２１が画像データＤから顔領域を検出する。顔領域とは、少なくとも顔画像の一部を含む領域を意味する。顔画像検出部２１は、顔領域を検出可能な手法であればあらゆる手法を採用することができる。例えば、顔画像検出部２１は、複数のテンプレート（上記顔テンプレート１２ｂ）を利用したいわゆるパターンマッチングによって画像データＤから顔領域を検出する。パターンマッチングを行うにあたっては、画像データＤ上に矩形状の検出領域ＳＡを設定し、画像データＤ上での検出領域ＳＡの位置と大きさを変えながら、検出領域ＳＡ内の画像と各顔テンプレート１２ｂの画像との類似性を評価する。そして、類似性が一定の基準を満足する検出領域ＳＡを顔領域として特定（検出）する。画像データＤ全体に検出領域ＳＡを移動させることにより、画像データＤ内に存在する単数または複数の顔についての顔領域を検出できる。本実施形態では、一つの顔を含む一つの顔領域が検出されたものとして説明を続ける。なお顔画像検出部２１は、検出領域ＳＡ単位で画像の各種情報（例えば、輝度情報やエッジ量やコントラスト等。）を入力し検出領域ＳＡに顔画像が存在するか否かを示す情報を出力する、予め学習されたニューラルネットワークを用いることにより、顔領域の検出を行なっても良いし、サポートベクタマシンを利用して検出領域ＳＡ毎に顔領域であるか否かを判断してもよい。
【００１９】
図３は、Ｓ１１０において画像データＤから顔領域として検出された検出領域ＳＡの矩形を示している。以下では、Ｓ１１０において顔領域として検出された検出領域ＳＡを顔領域ＳＡと呼ぶ。
Ｓ１２０では、状態判定部２２が画像データＤの状態を判定する。画像データＤの状態とは、画像データＤの画像における色のバランスや明るさや、画像中に含まれる被写体の特徴等に基づいて決定される状態を言う。本実施形態では特にＳ１２０において、画像データＤが色かぶり画像であるか否かの判定および画像データＤがアンダー画像であるか否かの判定を所定の判定手法に従って行う。
【００２０】
状態判定部２２は、画像データＤが色かぶり画像であるか否かの判定を、例えば以下のように行なう。まず状態判定部２２は、画像データＤの全範囲を対象として所定の抽出率に基づいて画素をサンプリングするとともに当該サンプリングした画素のＲＧＢ毎の度数分布（ヒストグラム）をそれぞれ生成する。そして、Ｒ，Ｇ，Ｂそれぞれのヒストグラムにおける特徴値、例えば最大値（ただし平均値やメジアンや最大分布値であってもよい。）Ｒmax，Ｇmax，Ｂmaxを求め、これら特徴値間の相対的な大小関係に基づいて、画像データＤが色かぶり画像であるか判定する。
【００２１】
図４Ａ，４Ｂ，４Ｃは、状態判定部２２が生成したＲＧＢ毎のヒストグラムを例示している。図４に示した各ヒストグラムはそれぞれ横軸を階調値（０〜２５５）、縦軸を画素数（度数）としている。例えば、状態判定部２２は、最大値Ｒmax，Ｇmax，Ｂmax間の差分｜Ｒmax−Ｇmax｜、｜Ｒmax−Ｂmax｜、｜Ｂmax−Ｇmax｜のうち、｜Ｒmax−Ｇmax｜および｜Ｒmax−Ｂmax｜が｜Ｂmax−Ｇmax｜よりもある所定値以上の差をもって大きく、かつＲmax＞Ｇmax、かつＲmax＞Ｂmaxであれば、画像データＤにかかる画像はいわゆる赤かぶりあるいはオレンジかぶりの状態（画像が全体的に赤みがかった状態。色かぶりの一種。）であると判定する。あるいは、状態判定部２２は、顔領域ＳＡ内から画素をサンプリングし、このサンプリングした画素を対象としてＲＧＢ毎の平均値Ｒave，Ｇave，Ｂaveを算出し、これら平均値Ｒave，Ｇave，Ｂave間の大小関係に基づいて、画像データＤが色かぶり画像であるか否か判定してもよい。つまり、顔領域ＳＡ内の画素の多くは顔画像の肌部分に対応した画素であるため、顔領域ＳＡ内の画素から算出した平均値Ｒave，Ｇave，Ｂave間のバランスを上述したような判定手法にて判断することで入力画像内の顔が色かぶり状態であるか否か判定し、その判定結果をもって入力画像の状態についての判定結果とする。
【００２２】
また、状態判定部２２は、画像データＤがアンダー画像であるか否かの判定を、例えば以下のように行なう。状態判定部２２は、上記のように画像データＤの全範囲を対象として所定の抽出率に基づいて画素をサンプリングした場合に、サンプリングした画素の輝度の平均値（輝度平均値）も求める。輝度平均値も画像データＤの特徴値の一種である。そして、当該輝度平均値と所定のしきい値とを比較し、輝度平均値がしきい値以下である場合に、画像データＤが全体的に暗い画像すなわちアンダー画像であると判定する。ここで用いるしきい値とは、例えば、予め算出されてプリンタ１０の内部メモリ１２等に保存されたデータである。本実施形態では、アンダー画像であると評価される複数の異なる画像を当該しきい値を算出するために予め用意し、当該しきい値を算出するためのこれら画像毎に輝度平均値を求め、これら求めた輝度平均値のうちの最大値を当該しきい値として保存している。
あるいは、状態判定部２２は、画像データＤのエリア毎に異なる重みを与えて画像データＤの輝度平均値を算出してもよい。例えば、状態判定部２２は、画像データＤ内を中央領域と周囲領域とに分ける。中央領域と周囲領域との分け方は様々であるが、例えば状態判定部２２は、画像データＤにかかる画像の４辺に沿った枠状の領域を周囲領域とし、周囲領域以外の領域を中央領域とする。
【００２３】
図５は、状態判定部２２が画像データＤの画像領域を中央領域ＣＡと周囲領域ＰＡとに分けた様子を例示している。
状態判定部２２は、画像データＤから画素をサンプリングする際に、周囲領域ＰＡよりも中央領域ＣＡにおいて高い抽出率で画素をサンプリングし、サンプリングした画素を対象とした輝度平均値を求める。このように中央領域ＣＡに重きをおいて求めた輝度平均値と上記しきい値とを比較すれば、中央領域ＣＡの輝度の影響を強く反映させて、画像データＤがアンダー画像であるか否かを判定できる。つまり、周囲領域ＰＡが比較的明るくても顔などの主要な被写体が存在している可能性の高い中央領域ＣＡが比較的暗ければ、結果的にアンダー画像と判定されやすい。そのため、画像データＤが、画像中央部が暗いいわゆる逆光画像である場合にも、アンダー画像であると判定されやすくなる。
なお、画像データＤが色かぶり画像であるか否かの判定手法および画像データＤがアンダー画像であるか否かの判定手法は、上述した手法に限られない。
【００２４】
Ｓ１３０では、色域変更部２３が内部メモリ１２から肌色域定義情報１２ａを読み出す。肌色域定義情報１２ａは、顔画像検出部２１が検出する画像（顔画像）が対応する色（肌色）の標準的な範囲（肌色域）を所定の表色系において予め定義した情報である。本実施形態では一例として、肌色域定義情報１２ａは、国際照明委員会（ＣＩＥ）で規定されたＬ*ａ*ｂ*表色系（以下、「*」の表記は省略。）において肌色域を定義している。ただし、肌色域定義情報１２ａによる肌色域の定義には、ＨＳＶ表色系や、ＸＹＺ表色系や、ＲＧＢ表色系等、様々な表色系を採用可能である。肌色域定義情報１２ａは、ある表色系において肌色らしい色域を規定した情報であればよい。
【００２５】
図６は、Ｌａｂ表色系において肌色域定義情報１２ａが定義する肌色域Ａ１の一例を示している。肌色域定義情報１２ａは、肌色域Ａ１を明度Ｌ、彩度Ｃ、色相Ｈの各範囲Ｌｓ≦Ｌ≦Ｌｅ、Ｃｓ≦Ｃ≦Ｃｅ、Ｈｓ≦Ｈ≦Ｈｅによって定義している。図６の例では、肌色域Ａ１は６面からなる立体である。図６では、ａｂ平面上への肌色域Ａ１の投影図もハッチングを施して併せて示している。ただし、肌色域定義情報１２ａが定義する肌色域は、上記のような６面体である必要はなく、例えば、肌色域の中心点を示すＬａｂ表色系における一つの座標と、当該一つの座標を中心とした半径ｒとによって定義される球状の領域であってもよいし、それ以外の形状であってもよい。
【００２６】
Ｓ１４０では、色域変更部２３は、状態判定部２２による判定結果に応じて肌色域Ａ１に対する変更を施す。具体的には、色域変更部２３は、Ｓ１２０において状態判定部２２によって画像データＤが色かぶり画像であると判定された場合には、少なくともその色かぶりの状態に合わせて肌色域Ａ１の色相範囲に変更を加える。また、色域変更部２３は、Ｓ１２０において状態判定部２２によって画像データＤがアンダー画像であると判定された場合には、変更前と比較して低彩度側および高彩度側に拡大するように肌色域Ａ１に変更を加える。
【００２７】
図７は、状態判定部２２によって画像データＤが赤かぶり状態の画像であると判定された場合に色域変更部２３が行なう色域変更の様子を例示している。図７では、Ｌａｂ表色系におけるａｂ平面上に変更前の肌色域Ａ１（鎖線）と変更後の肌色域Ａ２（実線）とを示している。色域変更部２３は、画像データＤが赤かぶり状態の画像である場合には、図７に示すように、肌色域Ａ１の色相範囲が赤方向を指すａ軸に接近するように（あるいは色相範囲がａ軸を跨ぐように）、肌色域Ａ１を、Ｌ軸（グレー軸）を中心として時計周り方向に移動させる。つまり、画像データＤは全体的に赤みがかった画像であるため顔画像の肌部分の色も赤みが強いと言え、そのため、赤みがかった肌部分の画素の色と肌色域定義情報１２ａが元々定義していた肌色域とのずれを修正するのである。上記移動後の色相範囲をＨｓ´≦Ｈ≦Ｈｅ´とすると、肌色域Ａ２は明度Ｌ、彩度Ｃ、色相Ｈの各範囲Ｌｓ≦Ｌ≦Ｌｅ、Ｃｓ≦Ｃ≦Ｃｅ、Ｈｓ´≦Ｈ≦Ｈｅ´によって定義される。なお、ａｂ平面の第４象限（ａが正かつｂが負の領域）における色相Ｈは、ａ軸（０度）からの時計回りの角度で表すものとし、負の値であるものとする。
【００２８】
あるいは色域変更部２３は、画像データＤが赤かぶり状態の画像であると判定された場合、肌色域Ａ１の色相範囲の一端（Ｈｓ）がａ軸に接近するように（あるいはａ軸を跨ぐように）、肌色域Ａ１をＬ軸周りに変形（拡大）させ、拡大後の色域を肌色域Ａ２としてもよい。拡大後の色相範囲をＨｓ´≦Ｈ≦Ｈｅとすると、肌色域Ａ２は各範囲Ｌｓ≦Ｌ≦Ｌｅ、Ｃｓ≦Ｃ≦Ｃｅ、Ｈｓ´≦Ｈ≦Ｈｅによって定義される。
あるいは色域変更部２３は、画像データＤが色かぶり画像であると判定された場合、肌色域Ａ１の色相範囲を拡大させかつ移動させることにより変更後の肌色域Ａ２を取得するとしてもよい。
【００２９】
図８は、状態判定部２２によって画像データＤがアンダー画像であると判定された場合に色域変更部２３が行なう色域変更の様子を例示している。図８でも図７と同様に、ａｂ平面上に変更前の肌色域Ａ１（鎖線）と変更後の肌色域Ａ２（実線）とを示している。色域変更部２３は、画像データＤがアンダー画像である場合には、肌色域Ａ１の彩度範囲を低彩度側（Ｌ軸側）と高彩度側とにそれぞれ拡大させ、拡大後の色域を肌色域Ａ２とする。画素毎の彩度（ここでは彩度Ｓと表す）は、画素毎のＲＧＢを用いて以下の式によっても表すことができる。
彩度Ｓ=｛（ｍａｘ−ｍｉｎ）／ｍａｘ｝・１００  …（１）
ただし、ｍａｘ=ｍａｘ（Ｒ，Ｇ，Ｂ）、ｍｉｎ=ｍｉｎ（Ｒ，Ｇ，Ｂ）とする。
アンダー画像においては、上記ｍａｘが低い傾向にあるため彩度Ｓの決定には上記ｍａｘ−ｍｉｎが強く影響を及ぼし、上記ｍａｘ−ｍｉｎの値によって彩度Ｓは高くも低くもなり得る（彩度が不安定）。つまり、画像データＤがアンダー画像である場合には、顔画像の肌部分の画素の彩度も不安定であると推測されるため、本実施形態では肌色域定義情報１２ａが元々定義していた肌色域を低彩度側と高彩度側とに拡大し、上記不安定さをカバーできるようにしている。上記拡大後の彩度範囲をＣｓ´≦Ｃ≦Ｃｅ´とすると、肌色域Ａ２は明度Ｌ、彩度Ｃ、色相Ｈの各範囲Ｌｓ≦Ｌ≦Ｌｅ、Ｃｓ´≦Ｃ≦Ｃｅ´、Ｈｓ≦Ｈ≦Ｈｅによって定義される。
【００３０】
ただし、色域変更部２３は、画像データＤがアンダー画像であると判定された場合に少なくとも変更前と比較して低彩度側の色域が含まれるように肌色域Ａ１に変更を加えるという視点に立てば、図９に示すように肌色域Ａ１全体を低彩度側に移動させてもよい（移動後の肌色域を肌色域Ａ２とする。）し、あるいは肌色域Ａ１を低彩度側だけに拡大したりしてもよい。色域変更部２３は、肌色域Ａ１を低彩度側だけに拡大する場合は、肌色域Ａ１の彩度範囲の下限（Ｃｓ）がＬ軸に接近するように肌色域Ａ１をＬ軸側に変形（拡大）させ、拡大後の色域を肌色域Ａ２としてもよい。拡大後の彩度範囲をＣｓ´≦Ｃ≦Ｃｅとすると、肌色域Ａ２は各範囲Ｌｓ≦Ｌ≦Ｌｅ、Ｃｓ´≦Ｃ≦Ｃｅ、Ｈｓ≦Ｈ≦Ｈｅによって定義される。
あるいは色域変更部２３は、画像データＤがアンダー画像であると判定された場合、肌色域Ａ１の彩度範囲を拡大させかつ移動させることにより変更後の肌色域Ａ２を取得するとしてもよい。
【００３１】
色域変更部２３は、画像データＤが色かぶり画像であり且つアンダー画像であると判定された場合には、肌色域Ａ１の色相範囲および彩度範囲について上述したようにそれぞれ変更を施す。また色域変更部２３は、Ｓ１２０における画像データＤについての状態の判定結果に応じ、肌色域Ａ１の明度範囲についても変更を施しても良い。なお、Ｓ１２０において画像データＤが色かぶり画像であると判定されず、かつアンダー画像であると判定されなかった場合には、色域変更部２３はＳ１４０において色域変更は実行しない。
本実施形態ではＳ１４０において色域変更が実行されたものとして説明を続ける。
【００３２】
Ｓ１５０では、画素抽出部２４が画像データＤ内の画素であって顔領域ＳＡ内に属する画素を一つ選択し、Ｓ１６０に進む。
Ｓ１６０では、画素抽出部２４は、直近のＳ１５０で選択した画素の色が上記色域変更後の肌色域Ａ２に属するか否かを判定する。この場合、画素抽出部２４は、上記選択した画素のＲＧＢデータを、肌色域Ａ２が採用する表色系（Ｌａｂ表色系）のデータ（Ｌａｂデータ）に変換し、変換後のＬａｂデータが肌色域Ａ２に属するか否か判定する。そして、画素抽出部２４は、上記Ｌａｂデータが肌色域Ａ２に属すると判定した場合にはＳ１７０に進み、一方、属さないと判定した場合にはＳ１７０をスキップしてＳ１８０に進む。画素抽出部２４は、ＲＧＢデータからＬａｂデータへの変換は、ＲＧＢ表色系からＬａｂ表色系への変換を行なう所定の色変換プロファイルなどを用いることで可能である。内部メモリ１２には、かかる色変換プロファイルも保存されているとしてもよい。
【００３３】
Ｓ１７０では、画素抽出部２４は、直近のＳ１５０において選択した画素を肌画素として認定する。この結果、顔画像検出部２１によって検出された領域に含まれる画素のうち色が変更後の肌色域Ａ２に属する画素が抽出されたことになる。このように抽出された肌画素は、基本的には、画像データＤ内に表された顔画像の肌部分に対応する画素であると言える。これら肌画素は、その色は必ずしも上記肌色域定義情報１２ａが元々定義していた色域に含まれるとは限らないが、理想的な肌色で表現されるべき画素である。
【００３４】
Ｓ１８０では、画素抽出部２４は、顔領域ＳＡ内に属する画素の全てをＳ１５０において一度ずつ選択し終えたか否か判定し、全ての画素を選択済みであればＳ１９０に進む。一方、顔領域ＳＡ内に属する画素であってＳ１５０において未選択の画素が存在している場合には、Ｓ１５０に戻り、未選択の画素を一つ選択しＳ１６０以降の処理を繰り返す。
なお本実施形態は、画像データＤから一つの顔領域ＳＡが検出された場合について説明している。しかし、画像データＤから複数の顔領域ＳＡが検出された場合には、Ｓ１５０〜Ｓ１８０では、画素抽出部２４は、複数の顔領域ＳＡ内の各画素について一つずつ肌色域Ａ２に属するか否か判定し、属する画素については肌画素として認定する。
【００３５】
Ｓ１９０では、代表色算出部２５は、Ｓ１７０において認定（抽出）された複数の肌画素に基づいて肌代表色を算出する。肌代表色の算出方法は様々であるが本実施形態では、代表色算出部２５は、肌画素のＲＧＢ毎の平均値Ｒave，Ｇave，Ｂaveを算出し、当該算出した肌画素のＲＧＢ毎の平均値Ｒave，Ｇave，Ｂaveからなる色（ＲＧＢデータ）を肌代表色とする。代表色算出部２５は、肌代表色のＲＧＢデータを内部メモリ１２等の所定の記憶領域に保存して図２のフローチャートを終了する。
【００３６】
画像処理部２０は、上記のように算出した肌代表色を、様々な画像処理に用いることができる。例えば、画像処理部２０は、肌代表色のＲＧＢデータと予め定められている理想的な肌色を示すＲＧＢデータとのＲＧＢ毎の差異に応じて、ＲＧＢ毎の補正関数（例えばトーンカーブ）を生成し、かかる補正関数を用いて画像データＤの画素のＲＧＢを補正することができる。
【００３７】
このように本実施形態によれば、プリンタ１０は、入力画像から顔領域を検出し、入力画像が色かぶり画像であるか否かやアンダー画像であるか否か等を、入力画像を解析して判定し、この判定結果に応じて、肌色域定義情報１２ａが定義する肌色域Ａ１に対する変更を行ない、変更後の肌色域Ａ２を生成する。そしてプリンタ１０は、顔領域内に属する画素のうち色が肌色域Ａ２に属する画素を抽出し、当該抽出した画素の色を平均することにより、入力画像内における顔画像の肌代表色を取得する。つまり、肌代表色の算出に用いる画素を顔領域内から抽出する際に参照する肌色域を、入力画像の状態に合わせて変更することにより、入力画像がカラーバランスが崩れて例えば全体的に赤みがかった画像であったり全体的に暗い画像であっても、顔の肌部分の色味と上記肌色域とのずれを解消する。その結果、入力画像の状態にかかわらず入力画像内の顔の肌部分に対応する画素を確実に抽出することができ、入力画像毎に正確な肌代表色を得ることができる。また、かかる肌代表色を用いることで入力画像に最適な補正等を行うことができる。
【００３８】
上述した内容に加えまたは替えて、本実施形態では以下に示すような変形例を採用することができる。
例えば、状態判定部２２はＳ１２０において、画像データＤが、露出が高めのオーバー画像（全体的に明るい画像）に該当するか否かを画像データＤの特徴値（例えば、輝度平均値）に基づいて判定してもよい。そして色域変更部２３は、状態判定部２２によって画像データＤがオーバー画像であると判定された場合、変更前と比較して低彩度側の色域が含まれるように肌色域Ａ１に変更を加えるとしてもよい。オーバー画像においては、上記式（１）のｍａｘ−ｍｉｎが小さくかつ上記ｍａｘが高い傾向にあるため、各画素の彩度は全体的に低めである。従って、画像データＤがオーバー画像である場合に、肌色域Ａ１を低彩度側に移動させたり、低彩度側に拡大したりすれば、画像データＤが露出高めの傾向にある場合でも、肌代表色を的確に取得することができる。
【００３９】
さらに、状態判定部２２は、顔領域ＳＡに含まれる顔画像を解析して人種（黄色人種、白人、黒人等）を判定するとしてもよい。顔画像の人種の判定手法は公知の手法を採用可能である。そして色域変更部２３は、状態判定部２２によって判定された人種に応じて、肌色域Ａ１に変更を加える。例えば、状態判定部２２は、肌色域Ａ１が元々定義していた範囲は残しつつ、さらに上記判定された人種に応じて肌色域Ａ１の彩度範囲を拡大する。かかる構成によれば、入力画像に写っている顔の人種の違いにかかわらず、その顔の肌の色を表した代表色を正確に取得することができる。
【００４０】
さらに、画素抽出部２４は、顔領域ＳＡ内において顔画像の輪郭を検出するとしてもよい。顔画像の輪郭とは、顎のラインや頬のライン等によって構成される輪郭である。画素抽出部２４は、例えば、顔領域ＳＡ内における目鼻口といった顔器官よりも外側の所定範囲においてエッジ検出を行なうことにより、顔画像の輪郭を検出する。画素抽出部２４は、検出した輪郭の形状に基づいて当該輪郭の内側と外側とを特定する。そしてＳ１５０では、画素抽出部２４は、顔領域ＳＡに属する画素のうち当該輪郭の内側に存在する画素だけを選択し、Ｓ１６０では、Ｓ１５０で選択した画素の色が上記変更後の肌色域Ａ２に属するか否かを判定する。つまり、単純に顔領域ＳＡの矩形内の画素をＳ１５０で選択すると、顔領域ＳＡ内の画素であって顔の輪郭外の画素も、その色次第で肌画素として抽出されてしまう恐れがある。そこで上記のように、上記輪郭によってＳ１５０で選択する画素を限定すれば、顔画像の肌部分に対応する画素だけを肌画素として抽出することができ、その結果、極めて正確な肌代表色を得ることが可能となる。
【００４１】
なお本実施形態では、特定画像は顔画像であるとして説明を行なったが、本発明の構成を用いて検出可能な特定画像は顔画像に限られない。つまり本発明では、人工物や、生物や、自然物や、風景など、様々な対象を特定画像として検出することが可能であり、算出される代表色も、そのとき検出の対象としている特定画像を代表する色となる。
【図面の簡単な説明】
【００４２】
【図１】プリンタの概略構成を示すブロック図である。
【図２】プリンタが実行する肌代表色取得処理を示すフローチャートである。
【図３】画像データ内において検出された顔領域を示す図である。
【図４】要素色毎のヒストグラムを示す図である。
【図５】画像データの領域を中央領域と周囲領域とに分けた様子を示す図である。
【図６】肌色域定義情報が定義する肌色域を示す図である。
【図７】肌色域を変更する様子を示す図である。
【図８】肌色域を変更する様子を示す図である。
【図９】肌色域を変更する様子を示す図である。
【符号の説明】
【００４３】
１０…プリンタ、１１…ＣＰＵ、１２…内部メモリ、１２ａ…肌色域定義情報、１２ｂ…顔テンプレート、１６…プリンタエンジン、１７…カードＩ／Ｆ、２０…画像処理部、２１…顔画像検出部、２２…状態判定部、２３…色域変更部、２４…画素抽出部、２５…代表色算出部、３０…表示制御部、４０…印刷制御部、１７２…カードスロット
【図１】
2010003118.tif 000003
【図２】
2010003118.tif 000004
【図３】
2010003118.tif 000005
【図４】
2010003118.tif 000006
【図５】
2010003118.tif 000007
【図６】
2010003118.tif 000008
【図７】
2010003118.tif 000009
【図８】
2010003118.tif 000010
【図９】
2010003118.tif 000011