(57)【要約】【課題】  画像全体の明るさや色の変換では補正しきれない画像に対して、所定色領域内の色相および彩度の補正を簡単かつ効果的に行うことが望まれる。【解決手段】  入力画像をRAM 202にロードし(S1)、入力画像のコントラストおよびカラーバランスを補正し(S2、S3)、補正後の画像から所定色領域を抽出し(S4)、所定色領域があるか否かを判定し(S5)、所定色領域がある場合は、所定色領域の色補正処理を行う(S6)。【選択図】    図3
2006033383.tif 000002
【特許請求の範囲】
【請求項１】
入力画像から所定の色領域を抽出し、
前記所定の色領域ごとに、その代表色を抽出し、
前記所定の色領域ごとに、前記代表色を含む補正対象の色領域、並びに、前記入力画像上の補正対象領域、前記代表色と目標色の差から色補正量を制御する補正係数を設定し、
前記所定の色領域ごとに設定された補正係数に基づき、前記入力画像の各所定の色領域を補正することを特徴とする画像処理方法。
【請求項２】
画像中の所定色領域の目標色を予め記憶するメモリと、
入力画像から前記所定色領域を抽出する第一の抽出手段と、
前記所定色領域ごとに、その代表色を抽出する第二の抽出手段と、
前記所定色領域ごとに、前記代表色を含む補正対象の色領域、並びに、前記入力画像上の補正対象領域、前記代表色と前記目標色の差から色補正量を制御する補正係数を設定する設定手段と、
前記設定に基づき、前記入力画像の前記所定色領域の色が前記目標色に近付くように補正する補正手段とを有することを特徴とする画像処理装置。
【請求項３】
前記補正手段は、注目画素が属する前記所定色領域の前記設定に基づき、前記注目画素を補正することを特徴とする請求項2に記載された画像処理装置。
【請求項４】
前記設定手段は、前記代表色と前記目標色の差が大きくなると前記補正係数が小さくなるように設定することを特徴とする請求項2または請求項3に記載された画像処理装置。
【請求項５】
前記補正手段は、前記代表色の色相と前記目標色の色相の差、および、前記設定手段の設定に基づき、前記補正を実行することを特徴とする請求項2から請求項4の何れかに記載された画像処理装置。
【請求項６】
前記補正手段は、前記代表色の彩度と前記目標色の彩度の差、および、前記設定手段の設定に基づき、前記補正を実行することを特徴とする請求項2から請求項5の何れかに記載された画像処理装置。
【請求項７】
前記設定手段は、彩度を下げる場合の前記補正量は、前記彩度を上げる場合の前記補正量よりも小さくなるように、前記補正係数を設定することを特徴とする請求項2から請求項6の何れかに記載された画像処理装置。
【請求項８】
前記所定の被写体領域は人肌領域であることを特徴とする請求項2から請求項7の何れかに記載された画像処理装置。
【請求項９】
画像処理装置を制御して、請求項1に記載された画像処理を実現することを特徴とするプログラム。
【請求項１０】
請求項9に記載されたプログラムが記録されたことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置およびその方法に関し、例えば、ディジタルカメラ、スキャナ、ディスプレイ、プリンタなどのカラー画像機器および画像処理ソフトウェアにおけるカラー画像の色補正処理に関する。
【背景技術】
【０００２】
カラー画像機器の色再現においては、元の色を忠実に再現することが要求される。一方、人間が好ましいと感じる色再現も重要で、特に、肌色、空の青、草木の緑などは、人間が好ましいと感じる色再現が要求される。そのため、例えばディジタルカメラで被写体を撮影し、ディジタル画像データとして記録する場合、適正な明るさの画像が得られうように、撮影時に露出を制御するとともに、イメージセンサから出力されるカラー画像データのカラーバランス、色相、彩度および階調を補正する。
【０００３】
しかし、これら色変換に関する処理は、画像全体の明るさや色を補正するものであり、補正したい色を個別に補正することはできない。このため、補正したい色を目標色に補正すると別の色に影響が及び、画像全体としては、必ずしも好ましい色に補正されるわけではない。例えば、日陰にいる人物を撮影する場合、その肌の明るさを目標の明るさまで明るくすれば、元々好ましい明るさである他の領域が過剰に明るくなる。また、部分的な照明の影響で肌色が青味を帯びたり、逆に黄色すぎる場合、肌色を好ましい色に補正すれば、元々好ましい色である他の領域の色が不自然になる。
【０００４】
このような問題を解決するため、例えば、小寺「ハードコピーのための画像信号処理」テレビジョン学会誌 Vol.43、No.11 (1989)、pp.1205-1212に、選択的色調整のモデルが紹介されている。これは、色補正を行う色領域を指定し、指定した色領域内の色相および彩度を好ましい方向へと補正するものである。
【０００５】
上記の文献によれば色相補正量、彩度倍率を用いて知覚的に色の調整を行うとしているが、色相補正量、彩度倍率をどのように定めるかは具体的に示されていない。仮に、色相補正量、彩度倍率を適当な値に設定して色の調整を行うと、補正量が強すぎて画像が不自然になったり、補正量が弱すぎて期待した効果が得られない。また、補正結果の画像をディスプレイに表示したり、プリンタで印刷して確認し、知覚的に調整しながら最適な色相補正量、彩度倍率を探索するという方法は、調整に専門的な経験が必要であったり、膨大な回数の試行が必要になる。
【０００６】
画像全体の明るさや色の変換では補正しきれない画像に対して、所望の色領域内の色相および彩度の補正を簡単かつ効果的に行うことが望まれる。
【０００７】
【非特許文献１】小寺「ハードコピーのための画像信号処理」テレビジョン学会誌 Vol.43、No.11 (1989)、pp.1205-1212
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上述の問題を個々にまたはまとめて解決するもので、所定の色領域内の色相および彩度の補正を簡単かつ効果的に行うことを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１０】
本発明の画像処理方法は、入力画像から所定の色領域を抽出し、前記所定の色領域ごとに、その代表色を抽出し、前記所定の色領域ごとに、前記代表色を含む補正対象の色領域、並びに、前記入力画像上の補正対象領域、前記代表色と目標色の差から色補正量を制御する補正係数を設定し、前記所定の色領域ごとに設定された補正係数に基づき、前記入力画像の各所定の色領域を補正することを特徴とする。
【００１１】
本発明の画像処理装置は、画像中の所定色領域の目標色を予め記憶するメモリと、入力画像から前記所定色領域を抽出する第一の抽出手段と、前記所定色領域ごとに、その代表色を抽出する第二の抽出手段と、前記所定色領域ごとに、前記代表色を含む補正対象の色領域、並びに、前記入力画像上の補正対象領域、前記代表色と前記目標色の差から色補正量を制御する補正係数を設定する設定手段と、前記設定に基づき、前記入力画像の前記所定色領域の色が前記目標色に近付くように補正する補正手段とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、画像全体の明るさや色の変換では補正しきれない画像に対して、所定の色領域内の色相および彩度の補正を簡単かつ効果的に行うことができる。
【発明を実施するための最良の形態】
【００１３】
以下、添付図面を参照して、本発明の好適な実施例を詳細に説明する。
【実施例１】
【００１４】
実施例の画像処理装置はパーソナルコンピュータ(PC)やワークステーション(WS)などのコンピュータにより構成され、ディジタルカメラやスキャナからの入力、インターネットからのダウンロード、CD-ROMやDVD-ROMなどの記憶媒体からの読み込みなどにより入力される画像において、所定の色領域または被写体領域を検出し、適切な補正を行うものである。以下では、このような処理を行う実施例の画像処理装置について、より詳細に説明する。とくに、実施例では、ディジタルカメラで撮影した画像から所定の色領域（例えば人肌領域）や所定の被写体領域（人の顔領域）を検出し、適切な補正を行う例を説明する。
【００１５】
［構成］
図1は実施例の画像処理装置の基本構成を示すブロック図である。
【００１６】
CPU 201は、RAM 202やROM 203に格納されているプログラムやデータを用いて、装置全体の制御を行うとともに、後述する各種処理を実行する。
【００１７】
RAM 202は、ハードディスクなどの外部記憶装置207や記憶媒体ドライブ装置208に装着された記憶媒体から読み込んだプログラムやデータを一時的に記憶するためのエリアを備えるとともに、CPU 201が各種処理を実行するためのワークエリアも備える。また、ROM 203には、ブートプログラムや装置の設定データなどが格納されている。
【００１８】
キーボード204、マウス205はそれぞれ、ユーザがCPU 201に各種指示や情報を入力するための入力デバイスである。表示部206は、CRTや液晶画面などにより構成され、CPU 201により、グラフィックユーザインタフェイスや、処理結果を示す文字や画像などが表示される。
【００１９】
外部記憶装置207は、ハードディスクドライブ装置などの大容量記憶装置で、ここにはオペレーティングシステム(OS)や、後述する各種処理をCPU 201に実行させるためのプログラムやデータが格納されている。外部記憶装置207に格納されたプログラムやデータは、必要に応じて、CPU 201の制御により読み出されRAM 202に格納される。
【００２０】
記憶媒体ドライブ装置208に装着されたCD-ROMやDVD-ROMなどの記憶媒体に記録されたプログラムやデータは、必要に応じて、CPU 201の制御により読み出されRAM 202や外部記憶装置207に格納される。なお、外部記憶装置207に記憶されているプログラムやデータの一部を記憶媒体に記録しておいてもよい。それらプログラムやデータを使用する場合、CPU 201は、それらプログラムやデータを記憶媒体ドライブ装置208に読み出させ、RAM 202に格納する。
【００２１】
インタフェイス(I/F) 209は、ディジタルカメラやプリンタなどを接続するUSB (Universal Serial Bus)やIEEE1394などのシリアルバスインタフェイスや、インターネットやLANなどのネットワーク回線を接続するネットワークインタフェイスを備える。
【００２２】
上記の各構成は、システムバス210によって相互に接続されている。
【００２３】
［機能構成］
図2は画像処理装置の機能構成を示すブロック図である。
【００２４】
画像入力部10は、I/F 209に接続されたディジタルカメラなどから処理対象の画像データを入力する。勿論、処理対象の画像データ（以下「入力画像」と呼ぶ）は、外部記憶装置207、記憶媒体、あるいは、ネットワーク上のサーバ装置から入力してもよい。なお、入力画像の中には、被写体として人の顔が写っていることにする。
【００２５】
画像補正部20は、入力画像のコントラストやカラーバランスなどを調整するが、その調整の方法は限定されず、例えば、ヒストグラムやトーンカーブを利用した調整方法などが好適に例示される。画像補正部20による調整にも関わらず、肌色などの所定の色が好ましい色に再現されない画像は、後述する色補正により、所定の色領域の色補正を行うことになる。なお、以下では、所定の色領域として肌色を示す人肌領域を代表例に説明するが、人間が好ましいと感じる色再現に関係する、空の青、草木の緑、夕日の赤、海の青などの色領域にも適用することができる。
【００２６】
所定色領域設定部30は、画像補正部20によって補正された画像から、補正を行う所定色領域を設定するが、その設定方法は限定されず、例えば、顔検出部により検出された顔の情報を利用する方法や、任意の色相や彩度を指定する方法などが例示される。あるいは、ユーザがキーボード204やマウス205を操作して、色領域を指示してもよいし、任意の色相や彩度を指定または選択する方法などでもよい。勿論、ユーザは、おおよその画像領域を指定し、指定された画像領域に対して顔検出を行ったり、さらに、色相や彩度を指定する方法も考えられる。
【００２７】
代表色抽出部40は、所定色域設定部30が設定した所定色領域の色情報から代表色を抽出する。ただし、集合写真のように一枚の画像に多数の人物が写っている場合の人肌領域のように、入力画像中に所定色領域が複数ある場合がある。この場合、代表色抽出部40は、各所定色領域の色情報からそれぞれ代表色を抽出する。また、代表色は、例えば、所定色領域内の画素の色相および彩度の平均値や中央値、あるいは、最頻値などである。
【００２８】
色領域設定部70は、所定色領域設定部30が設定した所定色領域の色情報から、前記代表色抽出部40が抽出した代表色を含む補正対象の色領域を、所定色領域ごとに決定する。目標色メモリ50は、所定色領域の色に対応する補正目標色を、所定色領域の種類ごとに記憶する。補正係数設定部60は、目標色メモリ50に記憶された補正目標色、並びに、代表色抽出部40が抽出した代表色から、色補正部90が用いる補正係数を設定する。領域補正情報メモリ85は、画像領域設定部30が設定した所定色領域ごとに、補正係数設定部60が設定した補正係数、および、色領域設定部70が設定した補正対象の色領域を記憶する。
【００２９】
領域判定部86は、補正対象の画素（注目画素）が所定色領域に属するか否か、属する場合はその所定色領域を判定する。色補正部90は、領域判定部86の判定結果に基づき、注目画素が所定色領域に属する場合、その所定色領域に対応する補正係数および補正対象の色領域を領域補正情報メモリ85から読み出し、それらを用いて注目画素を色補正する。
【００３０】
色補正された画像は、画像出力部100により、例えばプリンタ、外部記憶装置207、または、ネットワーク上のサーバ装置へ出力される。あるいは、色補正した画像を、原画像を入力したディジタルカメラに戻し、その記憶媒体に新たに格納または上書きしてもよい。
【００３１】
［処理の手順］
図3はCPU 201が実行する画像補正処理を示すフローチャートである。
【００３２】
まず、入力画像をRAM 202にロードする(S1)。ロードの形態は限定されるものではないが、例えば、ユーザがキーボード204やマウス205を用いて、外部記憶装置207、記憶媒体またはサーバ装置に保存された処理対象の画像データのファイル名を指定することで、CPU 201にロードを指示してもよいし、あるいは、ユーザがI/F 209にディジタルカメラ（またはスキャナ）を接続し、キーボード204やマウス205を用いてディジタルカメラ（またはスキャナ、実際にはRAM 202にロードされている、それらデバイス用のドライバソフトウェア）に、ディジタルカメラの内部メモリに保存された（またはスキャナで読み取った）画像のデータをRAM 202に転送するよう指示することで、処理対象の画像データをRAM 202にロードしてもよい。
【００３３】
処理対象の画像データは一画素の各チャネルが8ビットで表現されるRGB画像で、かつ、その画像サイズはM×N画素（Mは横方向の画素数、Nは縦方向の画素数）である。また、処理対象の画像データは、R（赤）の画素値のみで構成されるプレーン、G（緑）の画素値のみで構成されるプレーン、および、B（青）の画素値のみで構成されるプレーンの合計三つのプレーンで構成されるが、これに限定されるものではなく、一つのプレーンで構成されるようなカラー画像であってもよい。さらに、処理対象の画像データがJPEG圧縮などされている場合、CPU 201は、画像データを伸長し、各画素がR、G、Bの色成分で表現される画像を生成する。
【００３４】
また、画像データの各チャネルのビット長は8に限るものではなく、その他、例えば各チャネル12、16ビットなどであっても良い。あるいは、画素値の表現を整数に限る必要はなく、実数値であっても構わない。
【００３５】
また、ここではRGB画像を用いて説明するが、他のLCH、YCbCr、L*u*v*、HSV、HSL等他の色空間であっても、前段で、本実施例が処理を行う色空間に色変換することで、適切に処理が行えることは言うまでもない。また、その際、画像データの色空間と、本処理を行う色空間と同一である場合には、元画像のデータを直接用いて処理を行うのであっても構わない。
【００３６】
次に、RAM 202にロードした入力画像のコントラストを補正する(S2)。このコントラスト補正処理の補正方法は限定されないが、輝度ヒストグラムや入出力関係を表すトーンカーブを用いてコントラストを適切に補正する方法などが例示される。続いて、入力画像のカラーバランスを適切に補正する(S3)。このカラーバランス補正方法は限定されないが、例えばヒストグラムや入出力関係を表すトーンカーブを用いたカラーバランス方法などが挙げられる。
【００３７】
次に、所定色領域設定部30の所定色領域の設定に従い、補正後の画像から所定色領域を抽出し(S4)、所定色領域があるか否かを判定する(S5)。所定色領域がない場合、補正後の画像を、例えばプリンタ、外部記憶装置207、または、ネットワーク上のサーバ装置などへ出力する(S7)。また、所定色領域がある場合は、前述した色補正部90による所定色領域の色補正処理(S6)を行った後、補正後の画像を出力する(S7)。
【００３８】
所定色領域の抽出方法は限定されないが、人肌領域であれば顔検出処理により検出した顔の情報を利用する方法や、任意の色相や彩度を指定する方法などが例示される。
【００３９】
被写体の顔を含む顔領域を用いる場合、上記の顔検出処理を用いて自動的に設定する、あるいは、表示部206に画像を表示してキーボード204やマウス205を用いて対話的にユーザが設定する、の何れであっても良い。本実施例の処理においては顔領域の位置情報があれば、以後説明する処理には充分であるから、上記の顔領域設定の際に用いる画像はステップS2、S3による処理前の画像であっても、処理後の画像であっても良い。
【００４０】
顔検出結果の顔の情報を利用する方法を一例として説明する。画像中の顔領域を検出する処理としては、Yang, et al.「Detecting Faces in Images: A Survey」 IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL.24, No.1, January 2002に挙げられているような方式を用いて顔矩形領域を検出すればよい。そして、検出した両目の位置情報を取得し、両目を結ぶ線分とその線分に垂直な線分を辺とする所定の矩形領域を定め、その矩形領域内の画素のRGB値の平均値および共分散行列を求める。このRGB平均値および共分散行列、並びに、検出された顔矩形領域内の各画素のRGB値のマハラノビス距離を計算し、閾値以下の画素を肌色画素とし、その集合を人肌領域とする。
【００４１】
さらに、人肌領域の画像上での空間的な連結を調べ、連結した肌色画素をまとめて画像領域に設定する。これは、例えば、肌色画素の連結を調べ、連結した肌色画素には同一のラベルを付与することによって実現される。また、必須ではないが、好ましくは、その際、小領域である画像領域を除去する。これは、例えば小領域判定のための閾値を予め設定しておき、画像領域の画素数が閾値以下の場合、その画像領域を除外するなどの処理を行う。
【００４２】
このように、抽出した所定色領域にはラベリングを施す。つまり、所定色領域に属す画素にはラベル番号（例えば、所定色領域外は「0」、j番目の所定色領域は「j」がラベル番号になる）を付与する。なお、ラベル番号は入力画像の画素位置に対応させてRAM 202に格納する。
【００４３】
● 所定色領域の色補正処理(S6)
図4はCPU 201が実行する所定色領域の色補正処理(S6)を示すフローチャートである。
【００４４】
まず、RGB色空間の各値で表現されている入力画像を、LCH色空間（明度L、彩度C、色相H）に変換する(S11)。なお、変換後の色空間は、LCHに限らず、YCbCr、L*u*v*、HSV、HSLなど他の色空間であってもよい。
【００４５】
次に、反復処理を行うために、抽出した所定色領域の数を変数Nに設定し、カウンタkを零に初期化する(S12)。そして、k番目の所定色領域について代表色を抽出する(S13)。
【００４６】
図5は代表色の抽出処理(S13)を示すフローチャートである。
【００４７】
まず、入力画像から注目画素を取得し(S41)、注目画素に対するラベル番号を参照して、注目画素がk番目の所定色領域の画素か否かを判定し(S42)、注目画素がk番目の所定色領域の画素であれば、注目画素の明度Lが閾値Lth以上か否かを判定する(S43)。例えば、人肌領域の場合、抽出した領域に目、眉、髭または陰影が含まれると代表色が適切に得られない場合がある。そこでステップS42およびS43の判定により、補正対象の肌色よりも明度が低いと考えられる陰影、目、眉または髭といった領域を構成する画素を除外する。
【００４８】
次に、ステップS42およびS43の条件を満たす注目画素について、その画素の彩度Cおよび色相Hを集計する(S44)。この集計方法は、代表色として何を採用するかによって変わるが、例えば代表色を画素の平均値とする場合は、彩度Cおよび色相Hを単純に加算し、加算値を集計した画素数をカウントする。
【００４９】
次に、注目画素を移動し(S45)、入力画像の全画素を調べたか否かを判定し(S46)、全画素を調べるまでステップS41からS45の処理を繰り返す。そして、入力画像の全画素について調査が終了すると、k番目の所定色領域の代表色を設定する(S47)。代表色を所定色領域内の画素の彩度Cおよび色相Hの平均値とする場合、ステップS44の加算結果をカウント値で除算した値CrおよびHrを代表色(Hr(k), Cr(k))に設定する。
【００５０】
次に、補正対象の色領域を設定する(S14)。図6は補正対象の色領域の設定処理(S14)を示すフローチャートである。
【００５１】
色領域の設定では、k番目の所定色領域内の画素の色相に注目し、補正対象とする代表色を含む色領域を設定し、その領域を色補正の対象領域にする。これは、入力画像の全領域に対して、例えば人肌を好ましい肌色にする補正を行えば、元々好ましい色であった画像中の他の領域の色が不自然になってしまう問題を防ぐためである。
【００５２】
まず、入力画像から注目画素を取得し(S31)、注目画素がk番目の所定色領域の画素か否かを判定し(S32)、注目画素がk番目の所定色領域の画素であれば、注目画素の明度Ltが閾値Lth以上か否かを判定する(S33)。ステップS32およびS33の判定は、代表色の抽出と同様に、例えば、人肌領域の場合、抽出した領域に含まれる目、眉、髭または陰影といった領域を構成する画素を除外するためである。
【００５３】
次に、ステップS32およびS33の条件を満たす画素について、その画素の彩度Cが無彩色の彩度閾値Cth以上であるか否かを判定する(S34)。注目画素の彩度Cが閾値Cth未満であるということは、注目画素が無彩色に限りなく近いことを意味する。ここで無彩色画素を除く理由は、無彩色領域においてはRGB値の僅かな差で色相が大きく変わり、k番目の所定色領域に対応する色相領域を高精度に決めることができなくなる問題を防ぐためである。
【００５４】
次に、ステップS32からS34の条件を満たす注目画素について、その画素の色相Hを集計する(S35)。この集計方法は、所定色領域を示す特定色相として何を採用するかによって変わるが、例えば、ステップS32からS34の条件を満たす画素の色相分布を解析し、最大色相Hmax(k)および最小色相Hmin(k)によって補正対象の色領域を示す方法が例示される。
【００５５】
次に、注目画素を移動し(S36)、入力画像の全画素を調べたか否かを判定し(S37)、全画素を調べるまでステップS31からS36の処理を繰り返す。そして、入力画像の全画素について調査が終了すると、補正対象の色領域を設定する(S38)。前述した最大色相Hmax(k)および最小色相Hmin(k)によって補正対象の色領域を示す場合、例えば式(4)に示すように、集計結果である最大色相および最小色相を用いて、代表色相Hr(k)との差から補正対象とする色領域を設定する。
ΔH(k) = max(|Hmax(k) - Hr(k)|, |Hmin(k) - Hr(k)|)      …(1)
ここで、関数max()は括弧の中で最大のものを選択する関数
【００５６】
つまり、補正対象の色領域は、図3に示すステップS4において抽出されるk番目の所定色領域を包含するような色相範囲として設定される。
【００５７】
なお、ステップS32からS34の条件を満たす画素群の色相分布から、最大色相Hmax(k)および最小色相Hmin(k)を自動的に導出する例を示した。しかし、補正対象の色領域を示す特定色相の設定方法はこれに限定されるものではない。入力画像の状態によっては、例えば、ユーザが任意の色相領域をマニュアル設定する、あるいは、目標色メモリ50に予め登録された色相領域を選択するなどした方が好ましい場合もある。ただし、この場合でも補正対象の色領域は、ステップS4において抽出されるk番目の所定色領域を包含するような、色相範囲として設定することが望ましく、ユーザの設定または選択に対して、k番目の所定色領域の包含が不充分の場合に警告を発するなどの処置をとることが望ましい。
【００５８】
次に、設定した色領域に対して、後述する色補正において使用する色領域の重みを色相範囲と彩度範囲ごとに設定する(S39)。
【００５９】
まず、色相の重みWh(k)は代表色で「1」、補正対象の色領域外では「0」になるように、式(2)のように定める。これは、後述する色補間を行う場合に、補正対象の色相領域内外で色の連続性が破綻するのを防ぐためである。
HがHr(k)±ΔHの範囲内  Wh(k) = |H - Hr(k)|/ΔH
Hが上記範囲外          Wh(k) = 0                  …(2)
【００６０】
ただし、重みの設定方法は、式(2)に示す方法に限らず、例えば、補正対象の色領域を示す色相範囲、代表色、および、任意の定数を用いて非線形に変化する設定方法などが例示される。
【００６１】
また、彩度の重みWc(k)は、目標色の彩度Crおよび無彩色の彩度閾値Cthから、式(3)のように定める。
C ＜ Cthの場合          Wc(k) = 0
Cth ≦ C ≦ Cr(k)の場合  Wc(k) = (C - Cth)/(Cr(k) - Cth)      …(3)
C ＞ Cr(k)の場合        Wc(k) = 1
【００６２】
ただし、重みの設定方法は、式(3)に示す方法に限らず、例えば、所定色領域を包含する彩度範囲ΔC(k)を色相領域の設定方法と同様な方法で求め、彩度の重みWc(k)を設定する方法なども挙げられる。
【００６３】
このように補正対象とする色領域を重み付ける理由は、後述する色補正を行う場合に、補正対象の色相領域内外で色の連続性が破綻することを防ぐためである。
【００６４】
次に、図4に示す処理に戻り、入力画像におけるk番目の所定色領域の位置情報から、色補正に用いる画像領域重みWp(k)を設定する(S15)。後述する色補正においては、ステップS14で設定した、各所定色領域の重みを利用して所定色に対してのみ色補正を行うことで、元々好ましい色であった画像中の他の領域の色が不自然になる現象を回避する。しかし、補正対象の色領域のみを設定した場合、例えば入力画像において、ステップS14において設定した色相範囲ΔH(k)に含まれる、所定色領域外の画素が存在すると、同画素も色補正の対象になる。そこで、このような問題を解決する方法として、ステップS15で設定する画像領域重みを利用する。
【００６５】
画像領域重みWp(k)は、k番目の所定色領域内の画素が色補正の対象となり、k番目の所定色領域外の画素が色補正の非対象になるように0以上1以下の値Wp(k)(x, y)を設定する。ただし、0≦x≦M-1、0≦y≦N-1である。また、色補正により所定色領域の境界付近で色の連続性が破綻するのを防ぐように、画像領域の重みを設定することが望ましい。
【００６６】
画像領域重みWp(k)の設定方法は、限定されないが、k番目の所定色領域の重心を求め、重心と各画素の距離に応じた重みを付ける方法などが例示される。この設定方法を用いると、後述する色補正において、k番目の所定色領域の境界付近の画素に対する補正量は、k番目の所定色領域の中心付近の画素に比べて小さくなり、k番目の所定色領域の境界付近で色の連続性が破綻するのを防ぐことができる。また、k番目の所定色領域にガウシアンフィルタなどによりローパス処理を施し、k番目の所定色領域の境界付近をぼかすことで、k番目の所定色領域内外の色の連続性の破綻を和らげる方法なども挙げられる。
【００６７】
次に、カウンタkをインクリメントし(S16)、ステップS17の判定によりk=NになるまでステップS13からS16の処理を繰り返して、抽出された各所定色領域の代表色、補正対象の色領域、および、画像領域重みを設定する。なお、これら設定値は所定色領域ごとにRAM 202に格納され、処理対象の所定色領域ごとに読み出すことができる。
【００６８】
次に、目標色メモリ50から目標色のデータを取得し(S18)、代表色と目標色の差から色補正における補正量を制御する補正係数を設定する(S19)。色補正における補正量は色相Hと彩度Cごとに定めるため、補正係数も色相Hと彩度Cごとに色相補性係数Phおよび彩度補正係数Pcとして設定する。
【００６９】
色相補正係数Phは、例えば式(4)に示すように、補正目標色の色相Htと代表色の色相Hr(k)の差が大きくなると、減少するように設定する。
Ph(dist) = K1・exp(-Hdist2/t1)      …(4)
ここで、K1、t1は定数
Hdist = |Ht - Hr(k)|
【００７０】
つまり、補正対象の色の代表色の色相Hr(k)が目標色の色相Htに近いほど、代表色の色相Hr(k)を目標色の色相Htにより近付けるような補正を行い、代表色の色相Hr(k)が目標色の色相Htから大きく離れている場合は、あまり補正を行わないように補正係数Phを設定する。このように補正係数を設定する理由として、補正対象とする色の代表色の色相Hr(k)が目標色の色相Htから大きく離れている場合、代表色を目標色により近付けるような補正を行うと、入力画像全体のカラーバランスが崩れてしまうからである。
【００７１】
同様に、彩度補正係数Pcは、目標色の彩度Ctと代表色の彩度Cr(k)の差が大きくなると、減少するように設定する。つまり、補正対象とする色の代表色の彩度Cr(k)が目標色の彩度Ctに近いほど代表色の彩度Cr(k)を目標色の彩度Ctにより近付けるような補正を行い、代表色の彩度Cr(k)が目標色の彩度Ctから大きく離れている場合は、あまり補正を行わないように補正係数Pcを設定する。ただし、彩度補正係数Pcは、彩度を下げるように補正する場合と、彩度を上げるように補正をする場合とで設定方法が異なる。これは、彩度を下げる場合、補正により画像の印象が地味になる現象を防ぐように補正係数を設定する方が望ましく、逆に、彩度を上げる場合は、補正対象とする色の代表色の彩度Cr(k)が、目標色の彩度Ctから離れていても、目標色の彩度Ctに近付けるような補正を行う方が画像の印象がよくなる効果が期待できるからである。このような彩度補正係数Pcの設定方法として、例えば、彩度を上げる場合は式(5)、彩度を下げる場合は式(6)を用いる。
Ct ＜ Cr(k)の場合  Pc(dist) = -a1・Cdist2 + b1      …(5)
Ct ≧ Cr(k)の場合  Pc(dist) = K2・exp(-Cdist2/t2)    …(6)
ここで、a1、b1、K2、t2は定数
Cdist = |Ct - Cr(k)|
【００７２】
図7は式(5)(6)を示すグラフで、横軸は目標色の彩度Ctと代表色の彩度Cr(k)の差、縦軸は彩度補正係数Pcを示す。図7に示すように、彩度を下げる補正における彩度補正係数（実線）と、彩度を上げる補正における彩度補正係数（点線）の値は、彩度の差が等しくても、図にC1で示すように異なり、彩度を下げる補正における彩度補正係数（実線）がより小さいことがわかる。これは、彩度を下げるように補正する場合、彩度を上げるように補正する場合に比べて補正量が小さくなることを示す。
【００７３】
次に、各所定色領域の代表色、補正係数、補正対象の色領域、および、画像領域重みを利用して、入力画像中の補正対象の画素の色相および彩度を補正する(S20)。図8は色補正(S20)を示すフローチャートである。
【００７４】
まず、入力画像から注目画素を取得し(S51)、注目画素に対するラベル番号を参照して、注目画素が所定色領域の画素か否かを判定し(S52)、所定色領域の画素であれば、注目画素が属する所定色領域の番号を変数jに設定する(S53)。
【００７５】
次に、注目画素がj番目の所定色領域に属す場合、j番目の所定色領域の設定値を使用して式(7)により注目画素の色相を補正する(S54)。
H' = H + W(j)・Dh(j)
Dh(j) = Ph(Ht - Hr(j))      …(7)
W(j) = Wh(j)・Wc(j)・Wp(j)
ここで、Hは色補正前の画素の色相
H'は色補正後の画素の色相
【００７６】
同様に、j番目の所定色領域の設定値を使用して式(8)により注目画素の彩度を補正する(S55)。具体的には、彩度補正係数Pcから代表色における彩度補正率Kc(j)を算出し、彩度補正率Kc(j)に色相領域の重みWh(j)、彩度領域の重みWc(j)、並びに、画像領域重みWp(j)を色補正前の画素の彩度Cに掛けた分、入力画像内の画素の彩度Cを補正する（式(8)参照）。彩度補正率Kc(j)は、式(8)に示すように、目標色の彩度Ct、代表色の彩度Cr(j)の差、および、補正彩度係数Pcによって表される。
C' = C{W(j)・Kc(j) + 1}
Kc(j) = Pc{Ct - Cr(j)}/Cr(j)  (Ct≠0)      …(8)
W(j) = Wh(j)・Wc(j)・Wp(j)
ここで、Cは色補正前の画素の彩度
C'は色補正後の画素の彩度
【００７７】
次に、注目画素を移動し(S56)、入力画像の全画素を調べたか否かを判定し(S57)、全画素を調べるまでステップS51からS56の処理を繰り返す。
【００７８】
次に、図4に示す処理に戻り、補正後の画像をRGB色空間に変換し(S24)、その後、図3に示すステップS7で補正後の画像を出力する。
【００７９】
［変形例］
上記の実施例では、ディジタルカメラで撮影した画像をコンピュータで処理する場合を中心について説明したが、写真などをスキャナで読み取った画像の処理にも適用することができる。また、本実施例の機能は、コンピュータだけでなく、ディジタルカメラ、スキャナ、ディスプレイ、プリンタなどのカラー画像機器本体に組み込むこともできる。
【００８０】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００８１】
また、本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００８２】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００８３】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００８４】
【図１】実施例の画像処理装置の基本構成を示すブロック図、
【図２】画像処理装置の機能構成を示すブロック図、
【図３】CPUが実行する画像補正処理を示すフローチャート、
【図４】CPUが実行する所定色領域の色補正処理を示すフローチャート、
【図５】代表色の抽出を示すフローチャート、
【図６】補正対象の色領域の設定処理を示すフローチャート、
【図７】彩度補正係数Pcの設定方法を説明する図、
【図８】色補正を示すフローチャートである。
【図１】
2006033383.tif 000003
【図２】
2006033383.tif 000004
【図３】
2006033383.tif 000005
【図４】
2006033383.tif 000006
【図５】
2006033383.tif 000007
【図６】
2006033383.tif 000008
【図７】
2006033383.tif 000009
【図８】
2006033383.tif 000010