(57)【要約】【課題】  見本の画像データを利用しなくても、対象画像データを適切に補正すること。【解決手段】  多機能機は、以下の各処理を実行する。（１）ＨＳＶ対象画像データ内の特定範囲の色相を有する画素群を代表する対象代表値（ＯＨ，ＯＳ，ＯＶ）を算出する（Ｓ４４）。（２）対象代表値（ＯＨ，ＯＳ，ＯＶ）とユーザ指定補正値ｃｏｌとに基づいて、基準代表値（ＳＨ，ＳＳ，ＳＶ）を算出する（Ｓ４６）（３）対象代表値（ＯＨ，ＯＳ，ＯＶ）をｖａｂ色空間内の値である対象座標値（Ｏｖ，Ｏａ，Ｏｂ）に変換する（Ｓ４８）。（４）基準代表値（ＳＨ，ＳＳ，ＳＶ）をｖａｂ色空間内の値である基準座標値（Ｓｖ，Ｓａ，Ｓｂ）に変換する（Ｓ５０）。（５）対象座標値（Ｏｖ，Ｏａ，Ｏｂ）の周囲の領域に含まれる各画素の座標値（Ｐｖ，Ｐａ，Ｐｂ）を基準座標値（Ｓｖ，Ｓａ，Ｓｂ）に近づくように補正する。【選択図】  図４
2010154009.tif 000002
【特許請求の範囲】
【請求項１】
対象画像データを補正して補正済み画像データを生成する画像処理装置であって、
前記対象画像データ内の特定範囲の色相を有する特定画素群を代表する代表値を決定する第１決定部と、
前記代表値と、ユーザによって指定された補正の程度と、に基づいて、目標値を決定する第２決定部と、
前記対象画像データ内の全ての画素のうち、前記代表値の周囲の領域に含まれる各画素の値を、前記目標値に近づくように補正する補正部と
を備える画像処理装置。
【請求項２】
前記第２決定部は、前記補正の程度の変化に応じて前記目標値が線形に変化するように、前記目標値を決定する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記周囲の領域は、前記代表値と前記目標値との双方を含む特定領域である
ことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記特定領域は、前記代表値と前記目標値とを２つの焦点とする楕円体内の領域である
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記特定範囲が第１範囲の場合に設定される前記周囲の領域のサイズは、前記特定範囲が前記第１範囲と異なる第２範囲の場合に設定される前記周囲の領域のサイズと異なる
ことを特徴とする請求項１から４のいずれかに記載の画像処理装置。
【請求項６】
前記補正部は、前記代表値と補正対象の画素の値との間の第１距離と、前記目標値と前記補正対象の画素の値との間の第２距離と、の和が小さい程、補正量が大きくなるように、前記補正対象の画素の値を補正する
ことを特徴とする請求項１から５のいずれかに記載の画像処理装置。
【請求項７】
前記代表値は、直交座標系の色空間内の座標値であり、
前記目標値は、前記直交座標系の色空間内の座標値であり、
前記補正部は、
補正対象の画素の前記直交座標系の色空間内の座標値が前記代表値と同じ場合に、前記補正対象の画素の前記直交座標系の色空間内の座標値を、前記代表値と前記目標値との間の第１座標値に補正し、
補正対象の画素の前記直交座標系の色空間内の座標値が前記代表値と前記目標値との間の第２座標値である場合に、前記補正対象の画素の前記直交座標系の色空間内の座標値を、前記第１座標値と前記目標値との間の第３座標値に補正する
ことを特徴とする請求項１から６のいずれかに記載の画像処理装置。
【請求項８】
前記第１決定部は、前記特定画素群に含まれる各画素の値の平均値を算出することによって、前記代表値を決定する
ことを特徴とする請求項１から７のいずれかに記載の画像処理装置。
【請求項９】
変換部をさらに備え、
前記代表値は、第１直交座標系の色空間内の値であり、
前記目標値は、前記第１直交座標系の色空間内の値であり、
前記変換部は、前記第１直交座標系と異なる第２直交座標系の色空間内の座標値で各画素の値が表わされる特定画像データを、極座標系の色空間内の座標値で各画素の値が表わされる前記対象画像データに変換し、
前記補正部は、
（１）前記対象画像データ内の各画素の値を、前記第１直交座標系の色空間内の座標値である特定直交座標値に変換し、
（２）前記周囲の領域に含まれる各特定直交座標値を、前記目標値に近づくように補正し、
（３）補正後の各特定直交座標値を、前記極座標系の色空間内の座標値である特定極座標値に変換し、
（４）各特定極座標値を、前記第２直交座標系の色空間内の座標値である直交座標値に変換する
ことによって、前記第２直交座標系の色空間内の座標値で各画素の値が表わされる前記補正済み画像データを生成する
ことを特徴とする請求項１から８のいずれかに記載の画像処理装置。
【請求項１０】
対象画像データを補正して補正済み画像データを生成する画像処理プログラムであって、
前記対象画像データ内の特定範囲の色相を有する特定画素群を代表する代表値を決定する第１決定処理と、
前記代表値と、ユーザによって指定された補正の程度と、に基づいて、目標値を決定する第２決定処理と、
前記対象画像データ内の全ての画素のうち、前記代表値の周囲の領域に含まれる各画素の値を、前記目標値に近づくように補正する補正処理と
をコンピュータに実行させる画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象画像データを補正する画像処理技術に関する。
【背景技術】
【０００２】
下記の特許文献１には、教師画像データを用いて入力画像データを補正する技術が開示されている。この技術では、教師画像データが示す画像再現の傾向（例えば肌色、青色、緑色等の色相）に従って画像処理パラメータを決定し、この画像処理パラメータに基づいて入力画像データを補正する。
【０００３】
【特許文献１】特開２００６−８０７４６号公報
【特許文献２】特開平８−３２１９５７号公報
【特許文献３】特開２００２−２２３３６６号公報
【特許文献４】特開２００５−１９７９９６号公報
【特許文献５】特開平１０−１７３９４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術では、補正の対象である対象画像データ（上記の入力画像データ）を補正するには、見本の画像データ（上記の教師画像データ）が必要になる。見本の画像データを利用しなくても、対象画像データを補正することができる技術が求められている。
【０００５】
本明細書では、見本の画像データを利用しなくても、対象画像データを適切に補正することができる技術を提供する。
【課題を解決するための手段】
【０００６】
本発明者は、見本の画像データを利用せずに対象画像データを補正する技術を開発する過程において、対象画像データの全ての色相内の色を補正するのではなく、対象画像データの特定範囲の色相内の色（例えば青色）を補正するための新規な技術を開発した。この技術は、対象画像データを補正して補正済み画像データを生成する画像処理装置として表現することができる。この画像処理装置は、第１決定部と第２決定部と補正部とを備える。第１決定部は、対象画像データ内の特定範囲の色相を有する特定画素群を代表する代表値を決定する。第２決定部は、代表値と、ユーザによって指定された補正の程度と、に基づいて、目標値を決定する。補正部は、対象画像データ内の全ての画素のうち、代表値の周囲の領域に含まれる各画素の値を、目標値に近づくように補正する。
【０００７】
画像処理装置は、対象画像データ内の特定範囲の色相を有する特定画素群から決定される上記の代表値に基づいて目標値を決定しており、対象画像データに応じて目標値を決定することができる。しかも、画像処理装置は、ユーザによって指定された補正の程度をも加味して目標値を決定するので、ユーザの意図に応じて目標値を決定することができる。即ち、画像処理装置は、対象画像データとユーザの意図とに応じて、上記の特定範囲の色相内の色を補正するために用いられる目標の色（目標値）を決定することができる。画像処理装置は、目標の色に近づくように、上記の特定範囲の色相付近の色（上記の代表値の周囲の領域に含まれる各画素の値）を補正する。このために、対象画像データとユーザの意図とに応じて、対象画像データの上記の特定範囲の色相内の色を補正することができる。本技術によると、見本の画像データを利用しなくても、対象画像データの上記の特定範囲の色相内の色を適切に補正することができる。
【０００８】
なお、上記の対象画像データは、直交座標系の色空間内の値によって各画素の値が表わされるものであってもよいし、極座標系の色空間内の値によって各画素の値が表わされるものであってもよい。前者の場合と後者の場合のいずれであっても、直交座標系の色空間内で補正が実行されてもよいし、極座標系の色空間内で補正が実行されてもよい。
【０００９】
なお、第２決定部は、上記の補正の程度の変化に応じて目標値が線形に変化するように、目標値を決定してもよい。一方において、第２決定部は、上記の補正の程度の変化に応じて目標値が非線形に変化するように、目標値を決定してもよい。
【００１０】
上記の周囲の領域の形状については、特に限定されない。上記の周囲の領域は、例えば、代表値と目標値との双方を含む特定領域であってもよい。なお、この場合、上記の特定領域は、代表値と目標値とを２つの焦点とする楕円体内の領域であってもよい。一方において、上記の周囲の領域は、例えば、代表値のみを含む領域であってもよい。
【００１１】
ヒトの視覚特性では、例えば、緑色は、色の変化が認識しくい。従って、例えば、緑色の色相を補正する場合には、補正後に緑色が変化したことが認識できるように、補正されるべき画素の値の範囲（即ち上記の周囲の領域）を比較的に大きくすることが好ましい。これに対し、例えば、肌色は、色の変化が認識しやすい。従って、例えば、肌色の色相を補正する場合には、補正後に肌色が大きく変化して違和感を与えることがないように、補正されるべき画素の値の範囲（即ち上記の周囲の領域）を比較的に小さくすることが好ましい。この技術思想は、以下のように表現することができる。即ち、上記の特定範囲が第１範囲の場合に設定される上記の周囲の領域のサイズは、上記の特定範囲が第１範囲と異なる第２範囲の場合に設定される上記の周囲の領域のサイズと異なってもよい。この構成によると、補正されるべき色相に応じて、上記の周囲の領域の大きさを変えることができる。例えば、上記の特定範囲が緑色の色相を示す第１範囲の場合には、上記の特定範囲が肌色の色相を示す第２範囲の場合と比べて、上記の周囲の領域を大きくすることができる。
【００１２】
対象画像データにおいて見た目の色が似ている２つの画素が隣り合っている場合でも、一方の画素の値のみが補正され、他方の画素の値が補正されないおそれがある。この場合、補正された画素と補正されなかった画素との間において色が大きく異なり得る。この現象が発生するのを抑制するために、以下の構成を採用してもよい。即ち、補正部は、代表値と補正対象の画素の値との間の第１距離と、目標値と補正対象の画素の値との間の第２距離と、の和が小さい程、補正量が大きくなるように、補正対象の画素の値を補正してもよい。
【００１３】
上記の構成によると、代表値と目標値の双方に対する補正対象の画素の値が近いほど、補正量が大きくなる。逆に言うと、代表値と目標値の双方に対する補正対象の画素の値が遠いほど、補正量が小さくなる。これは、上記の周囲の領域の境界付近において内側に存在する値を有する画素については、補正量が小さくなることを意味する。対象画像データにおいて２つの画素の見た目の色が似ているということは、それらの２つの画素は、互いに近接する値を有する可能性が高い。それにもかかわらず、一方の画素のみが補正されるということは、その一方の画素が上記の周囲の領域の境界付近において内側に存在する値を有しており、他方の画素が上記の周囲の領域の境界付近において外側に存在する値を有している可能性が高い。上記の構成によると、上記の周囲の領域の境界付近において内側に存在する値を有する画素の補正量が小さくなる。このために、見た目の色が似ていて隣り合っている２つの画素のうちの一方の画素のみが補正されても、その補正量は小さいために、それらの２つの画素の間で大きく色が異なることを抑制することができる。
【００１４】
なお、代表値と目標値は、直交座標系の色空間内の座標値であってもよいし、極座標系の色空間内の座標値であってもよい。代表値が直交座標系の色空間内の座標値である場合、第２決定部は、下記のいずれかの手法を利用して、直交座標系の色空間内の座標値である目標値を決定してもよい。例えば、第２決定部は、直交座標系の色空間内の座標値である代表値と上記の補正の程度とに基づいて、直交座標系の色空間内の座標値である目標値を決定してもよい。また、例えば、第２決定部は、極座標系の色空間内の座標値で代表値を表現できる場合、極座標系の色空間内の座標値である代表値と上記の補正の程度とに基づいて、極座標系の色空間内の座標値である目標値を決定し、その目標値を直交変換することによって直交座標系の色空間内の座標値である目標値を決定してもよい。
【００１５】
代表値と目標値が直交座標系の色空間内の座標値である場合、補正部は、以下の処理を実行してもよい。即ち、補正部は、補正対象の画素の上記の直交座標系の色空間内の座標値が代表値と同じ場合に、補正対象の画素の上記の直交座標系の色空間内の座標値を、代表値と目標値との間の第１座標値に補正してもよい。また、補正部は、補正対象の画素の上記の直交座標系の色空間内の座標値が代表値と目標値との間の第２座標値である場合に、補正対象の画素の上記の直交座標系の色空間内の座標値を、第１座標値と目標値との間の第３座標値に補正してもよい。
【００１６】
なお、第１決定部が代表値を決定するための手法は、特に限定されない。例えば、第１決定部は、上記の特定画素群に含まれる各画素の値の平均値を算出することによって、代表値を決定してもよい。なお、代表値は、他の手法で得られる値（例えば中央値）であってもよい。
【００１７】
代表値と目標値は、第１直交座標系の色空間内の値であってもよい。上記の画像処理装置は、第１直交座標系と異なる第２直交座標系の色空間内の座標値で各画素の値が表わされる特定画像データを、極座標系の色空間内の座標値で各画素の値が表わされる上記の対象画像データに変換する変換部をさらに備えていてもよい。補正部は、以下の各処理を実行することによって、第２直交座標系の色空間内の座標値で各画素の値が表わされる上記の補正済み画像データを生成してもよい。
（１）対象画像データ内の各画素の値を、第１直交座標系の色空間内の座標値である特定直交座標値に変換する。
（２）上記の周囲の領域に含まれる各特定直交座標値を、目標値に近づくように補正する。
（３）補正後の各特定直交座標値を、極座標系の色空間内の座標値である特定極座標値に変換する。
（４）各特定極座標値を、第２直交座標系の色空間内の座標値である直交座標値に変換する。
【００１８】
なお、上記の画像処理装置を実現するためのコンピュータプログラムも有用である。このコンピュータプログラムを利用すると、見本の画像データを利用しなくても、対象画像データの特定範囲の色相内の色を適切に補正することができる画像処理装置を実現することができる。
【発明を実施するための最良の形態】
【００１９】
ここでは、以下の実施例に記載の技術の一部を列挙しておく。
（形態１）上記の代表値は、直交座標系の色空間内の値であってもよい。また、上記の目標値は、上記の直交座標系の色空間内の値であってもよい。上記の対象画像データは、極座標系の色空間内の値によって各画素の値が表わされるものであってもよい。この場合、上記の第１決定部は、（１）対象画像データ内の特定範囲の色相を有する上記の特定画素群を代表する値であって、極座標系の色空間内の値である第１極座標値を決定し、（２）その第１極座標値を直交変換することによって、上記の直交座標系の色空間内の値である上記の代表値を決定してもよい。また、上記の第２決定部は、（１）上記の第１極座標値とユーザによって指定された補正の程度とに基づいて、極座標系の色空間内の値である第２極座標値を決定し、（２）その第２極座標値を直交変換することによって、上記の直交座標系の色空間内の値である上記の目標値を決定してもよい。
【００２０】
例えば、対象画像データ内に無彩色付近の色（非常に小さい彩度）を有する複数の画素が存在する可能性がある。無彩色付近の色を有する画素群は、見た目の色の差がほとんどない。これらの画素群の中に、補正対象の色相（上記の特定範囲の色相）を有する画素と、補正対象の色相を有さない画素と、が存在する可能性がある。この場合、前者の画素の値のみが補正され、後者の画素の値は補正されない。この結果、補正前には見た目の色の差がほとんどない両者の画素が、補正後には大きく異なる色になってしまう。本形態では、極座標系の色空間において、対象画像データ内の上記の特定範囲の色相を有する画素群を代表する第１極座標値と、目標の色である第２極座標値とが決定される。極座標系の色空間において、上記の第１極座標値が上記の第２極座標値に近づくような補正ベクトルを利用して、対象画像データ内の上記の特定範囲の色相を有する各画素の値を補正する手法を採用することも考えられる。しかしながら、この手法では、見た目の色の差がほとんどない無彩色付近の色を有する画素群が存在する場合に、それらの画素群のうちの上記の特定範囲の色相を有する画素のみが補正される事象が発生してしまう。この事象が発生するのを抑制するために、本形態では、直交座標系の色空間において対象画像データの各画素の値が補正される。即ち、上記の第１極座標値が直交座標系の色空間内の値である代表値に変換され、その代表値の周囲の領域に含まれる画素の値が補正される。無彩色付近の色を有しており、見た目の色の差がほとんどない画素群は、直交座標系の色空間において、互いに近接する座標値を有する可能性が高い。このために、無彩色付近の色を有する画素群の中に上記の特定範囲の色相を有さない画素が存在する場合でも、その画素の値が補正され得る。上記の事象が発生するのを抑制することができる。
【００２１】
（形態２）上記の極座標系は、円柱座標系であってもよい。上記の円柱座標系は、輝度を示す軸を有していてもよい。上記の円柱座標系では、動径によって彩度が表現されてもよい。上記の円柱座標系では、偏角によって色相が表現されてもよい。
【００２２】
（形態３）上記の補正部は、代表値と目標値とに基づいて、上限値（例えば実施例のＵｖ）と下限値（例えば実施例のＬｖ）とを決定してもよい。また、補正部は、補正対象の画素の値が上限値と下限値との間の場合に、代表値と目標値とに基づいて補正基準値（例えば実施例のＣｕｒｖｖ）を決定してもよい。
【００２３】
（形態４）上記の補正部は、代表値と目標値との間の距離（例えば実施例のｒａｎｇｅ）を算出してもよい。補正部は、代表値と目標値との間の距離と、上記の第１距離と第２距離との和とに基づいて、補正量を決定してもよい。
【実施例】
【００２４】
（第１実施例）
図面を参照して実施例を説明する。図１は、本実施例の多機能機１０の概略図を示す。多機能機１０は、操作部１２と表示部１４とスロット部１６とスキャナ部２０と印刷部２２とネットワークインターフェイス２４と制御部２８等を有する。操作部１２は、複数のキーによって構成される。ユーザは、操作部１２を操作することによって、様々な指示や命令を多機能機１０に入力することができる。表示部１４は、様々な情報を表示することができる。スロット部１６は、メモリカード１８を収容するためのスペースを有する。ユーザは、画像データを記憶しているメモリカード１８をスロット部１６に挿入することができる。本実施例では、メモリカード１８に記憶されている画像データは、ＲＧＢ形式の画像データである。
【００２５】
スキャナ部２０は、ＣＣＤ、ＣＩＳ等の読取機構を有する。スキャナ部２０は、原稿、写真等をカラースキャンすることによって画像データを生成することができる。本実施例では、スキャナ部２０によって生成される画像データは、ＲＧＢ形式の画像データである。印刷部２２は、インクジェットタイプ、レーザタイプ等の印刷機構を有する。印刷部２２は、メモリカード１８に記憶されている画像データ、又は、スキャナ部２０によって生成された画像データに基づいて印刷することができる。また、印刷部２２は、ネットワークインターフェイス２４に入力されたデータに基づいて印刷することができる。ネットワークインターフェイス２４は、ＬＡＮ２６に接続されている。
【００２６】
制御部２８は、ＣＰＵ３０とＲＯＭ３２とＲＡＭ４０等を有する。ＣＰＵ３０は、ＲＯＭ３２に記憶されているプログラム３４〜３８に従って様々な処理を実行する。ＲＯＭ３２は、様々なプログラム３４〜３８を記憶している。基本プログラム３４は、多機能機１０の基本的な動作を制御するためのプログラムである。基本プログラム３４は、例えば、表示部１４に表示されるデータを生成するためのプログラムを含んでいる。また、基本プログラム３４は、例えば、スキャナ部２０、印刷部２２等を制御するためのプログラムを含んでいる。補正プログラム３６は、画像データを補正するためのプログラムである。ＣＰＵ３０が補正プログラム３６に従って実行する処理の内容については、後で詳しく説明する。プログラム３８は、上記のプログラム３４，３６以外のプログラムである。ＲＡＭ４０は、ＣＰＵ３０が処理を実行する過程で生成されるデータを一時的に記憶することができる。
【００２７】
本実施例の多機能機１０は、メモリカード１８に記憶されている画像データ（ユーザによって選択された画像データ）を補正することができる。以下では、補正の対象となる画像データ（メモリカード１８に記憶されている画像データ）のことをＲＧＢ対象画像データと呼ぶ。図２は、ＲＧＢ対象画像データ５０が補正される様子を簡単に示す。処理の詳細については後で詳しく説明するが、ここでは、ＲＧＢ対象画像データ５０を補正する手順について簡単に説明する。
【００２８】
ＲＧＢ対象画像データ５０は、複数の画素を有する。各画素の値は、三軸の直交座標系の色空間内（以下ではＲＧＢ色空間内と呼ぶことがある）の値によって表現される。具体的に言うと、各画素の値は、Ｒ（赤）を示す値（０〜２５５）と、Ｇ（緑）を示す値（０〜２５５）と、Ｂ（青）を示す値（０〜２５５）とによって表わされる。多機能機１０は、ＲＧＢ対象画像データ５０をＨＳＶ形式の画像データ５２に変換する。以下では、この画像データ５２のことをＨＳＶ対象画像データ５２と呼ぶ。多機能機１０は、ＲＧＢ対象画像データ５０を構成する各画素の値（直交座標値）を極座標値に変換することによって、ＨＳＶ対象画像データ５２を生成する。従って、ＨＳＶ対象画像データ５２が有する画素の数は、ＲＧＢ対象画像データ５０が有する画素の数に等しくなる。ＨＳＶ対象画像データ５２が有する各画素の値は、円柱極座標系の色空間内（以下ではＨＳＶ色空間内と呼ぶことがある）の値によって表現される。具体的に言うと、各画素の値は、色相（Ｈ）を示す値（０〜３６０°）と、彩度（Ｓ）を示す値（０〜１．０）と、輝度（Ｖ）を示す値（０〜１．０）とによって表わされる。
【００２９】
後で詳しく述べるが、ユーザは、補正対象のＨＳＶ対象画像データ５２のどの色を補正するのかを選択することができる。しかも、ユーザは、どの程度補正するのかを選択することができる。以下では、ユーザによって選択された補正の程度のことを補正値ｃｏｌと呼ぶ。多機能機１０は、図２に示すように、補正値ｃｏｌに基づいてＨＳＶ対象画像データ５２を補正する。これにより、補正後の画像データ５６が生成される。以下では、この画像データ５６のことを補正済みＲＧＢ画像データ５６と呼ぶ。補正済みＲＧＢ画像データ５６が有する各画素の値は、ＲＧＢ色空間内の値によって表現される。
【００３０】
続いて、多機能機１０が実行する補正印刷処理の内容について詳しく説明する。ユーザは、操作部１２を操作することによって、補正印刷モードを選択することができる。この操作が実行された場合に、補正印刷処理が実行される。図３は、補正印刷処理のフローチャートを示す。補正印刷処理は、基本プログラム３４と補正プログラム３６に従ってＣＰＵ３０によって実行される。なお、図３のフローチャートに示される各処理のうち、Ｓ１６の処理は補正プログラム３６に従って実行され、それ以外の処理は基本プログラム３４に従って実行される。
【００３１】
ユーザは、操作部１２を操作することによって、メモリカード１８に記憶されている複数の画像データの中から１つの画像データを選択することができる。ここで選択された画像データが補正対象の画像データ（即ちＲＧＢ対象画像データ５０）になる。ＣＰＵ３０は、ＲＧＢ対象画像データ５０が選択されるまで待機する（Ｓ１０）。
【００３２】
ＲＧＢ対象画像データ５０が選択されると、ＣＰＵ３０は、複数の補正モードを示す文字列を表示部１４に表示させる。具体的に言うと、ＣＰＵ３０は、「空モード」、「緑モード」、及び「肌モード」という文字列を表示部１４に表示させる。各補正モードについて簡単に説明する。空モードは、ＲＧＢ対象画像データ５０が有する青色の色相内の色を補正するためのモードである。緑モードは、ＲＧＢ対象画像データ５０が有する緑色の色相内の色を補正するためのモードである。肌モードは、ＲＧＢ対象画像データ５０が有する肌色の色相内の色を補正するためのモードである。ユーザは、操作部１２を操作することによって、表示部１４に表示された３つの補正モードの中から１つの補正モードを選択することができる。ＣＰＵ３０は、この操作が実行されるまで待機する（Ｓ１２）。ユーザによって選択された補正モードを示す情報は、ＲＡＭ４０に記憶される。
【００３３】
補正モードが選択されると、ＣＰＵ３０は、補正の程度を示す文字列を表示部１４に表示させる。具体的に言うと、ＣＰＵ３０は、「−２」、「−１」、「０」、「＋１」、及び、「＋２」という文字列を表示部１４に表示させる。数字の絶対値が大きい程、補正の程度が大きいことを意味する。なお、数字が「０」である場合、補正が行なわれないことを意味する。ユーザは、操作部１２を操作することによって、表示部１４に表示された複数の数字の中から１つの数字（即ち補正値ｃｏｌ）を選択することができる。ＣＰＵ３０は、この操作が実行されるまで待機する（Ｓ１４）。ユーザによって選択された補正値ｃｏｌは、ＲＡＭ４０に記憶される。
【００３４】
次いで、ＣＰＵ３０は、補正処理を実行する（Ｓ１６）。補正処理の内容については、後で詳しく説明する。補正処理によって補正済みＲＧＢ画像データ５６が得られる。ＣＰＵ３０は、補正済みＲＧＢ画像データ５６を表示部１４に表示させる（Ｓ１８）。ユーザは、補正済みＲＧＢ画像データ５６を見ることができる。なお、Ｓ１４で選択された補正値ｃｏｌが「０」である場合、Ｓ１６の補正処理はスキップされる。この場合、Ｓ１８では、Ｓ１０で選択されたＲＧＢ対象画像データ５０が表示される。
【００３５】
ユーザは、操作部１２を操作することによって、補正済みＲＧＢ画像データ５６に基づいて印刷を実行するのか否かを選択することができる。ＣＰＵ３０は、この操作を監視する（Ｓ２０）。補正済みＲＧＢ画像データ５６に基づいて印刷を実行しないことが指示された場合（Ｓ２０でＮＯの場合）、ＣＰＵ３０は、Ｓ１２に戻って、補正モードが選択されるまで待機する。一方において、補正済みＲＧＢ画像データ５６に基づいて印刷を実行することが指示された場合（Ｓ２０でＹＥＳの場合）、ＣＰＵ３０は、補正済みＲＧＢ画像データ５６を印刷データ（ＣＭＹＫ形式のビットマップデータ）に変換する（Ｓ２２）。続いて、ＣＰＵ３０は、Ｓ２２で生成された印刷データに基づいて印刷することを印刷部２２に指示する（Ｓ２４）。この結果、印刷部２２は、印刷データに基づいて印刷媒体に印刷する。ユーザは、補正済みＲＧＢ画像データ５６が印刷された印刷媒体を得ることができる。
【００３６】
続いて、Ｓ１６で実行される補正処理の内容について詳しく説明する。図４及び図５は、補正処理のフローチャートを示す。ＣＰＵ３０は、ＲＧＢ対象画像データ５０をＨＳＶ対象画像データ５２に変換する（Ｓ４０）。図６は、ＲＧＢ色空間内の座標値をＨＳＶ色空間内の座標値に変換するための数式を示す。ＣＰＵ３０は、ＲＧＢ対象画像データ５０を構成する１つの画素（変換対象の画素）を選択する。図６（ａ）に示されるように、変換対象の画素の座標値を（Ｒ，Ｇ，Ｂ）と表現し、その座標値から変換されたＨＳＶ色空間内の座標値を（Ｈ，Ｓ，Ｖ）と表現する。図６（ｂ）に示されるように、ＣＰＵ３０は、Ｒ／２５５とＧ／２５５とＢ／２５５をそれぞれ算出し、その中の最も大きい値をＶとして特定する。また、ＣＰＵ３０は、図６（ｃ）に示される数式に従って、Ｓを算出する。次いで、ＣＰＵ３０は、図６（ｄ）に示される数式に従って、媒介変数ｒ，ｇ，ｂを算出する。ＣＰＵ３０は、図６（ｅ）に示される数式に従って、Ｈを算出する。ここで算出されたＨがマイナスの値である場合、ＣＰＵ３０は、図６（ｆ）に示されるように、Ｈに３６０を加算することによって、新たなＨを算出する。これにより、変換対象の画素の座標値（Ｒ，Ｇ，Ｂ）からＨＳＶ色空間内の座標値（Ｈ，Ｓ，Ｖ）を得ることができる。
【００３７】
図７は、ＨＳＶ色空間を模式的に示す。図７を見ると、ＨＳＶ色空間が円柱座標系の色空間であることがよくわかる。色相を示すＨは、０〜３６０°のいずれかの値である。彩度を示すＳは、０〜１．０のいずれかの値である。輝度を示すＶは、０〜１．０のいずれかの値である。
【００３８】
ＣＰＵ３０は、ＲＧＢ対象画像データ５０の他の全ての画素のそれぞれについて、図６（ａ）〜図６（ｆ）の数式に従って、ＨＳＶ色空間内の座標値（Ｈ，Ｓ，Ｖ）を算出する。これにより、ＨＳＶ対象画像データ５２が得られる。ＣＰＵ３０は、ＨＳＶ対象画像データ５２をＲＡＭ４０に記憶させる。
【００３９】
次いで、ＣＰＵ３０は、ＨＳＶ対象画像データ５２から代表値を算出する（Ｓ４４）。以下では、この代表値のことを対象代表値（ＯＨ，ＯＳ，ＯＶ）と呼ぶ。Ｓ４４の処理は、図３のＳ１２で選択された補正モードに従って実行される。図８は、補正モードと、ＨとＳとＶのそれぞれの範囲との対応関係の一例を示す。例えば、補正モードが空モードの場合、Ｈが１８０〜２４０°であり、Ｓが０〜１．０であり、Ｖが０〜１．０である。これは、補正モードが空モードの場合には、ＣＰＵ３０は、Ｈが１８０〜２４０°であり、Ｓが０〜１．０であり、かつ、Ｖが０〜１．０である画素群に基づいて、代表値を算出することを意味している。
【００４０】
より具体的に言うと、補正モードが空モードの場合、ＣＰＵ３０は、ＨＳＶ対象画像データ５２を構成する全ての画素のうち、Ｈが１８０〜２４０°（図８（ａ）参照）である画素群を特定する。なお、ここでは、ＳとＶを考慮しない。空モードの場合のＳとＶのそれぞれの範囲は０〜１．０であり（図８（ａ）参照）、いずれの画素であってもＳとＶが０〜１．０の範囲に含まれるからである。次いで、ＣＰＵ３０は、特定された画素群のＨの平均値を算出することによってＯＨを特定し、特定された画素群のＳの平均値を算出することによってＯＳを特定し、特定された画素群のＶの平均値を算出することによってＯＶを特定する。これにより、対象代表値（ＯＨ，ＯＳ，ＯＶ）が得られる。なお、図３のＳ１２で選択された補正モードが緑モードの場合、ＣＰＵ３０は、Ｈが５０〜１７０°（図８（ｂ）参照）である画素群から対象代表値（ＯＨ，ＯＳ，ＯＶ）を特定する。また、図３のＳ１２で選択された補正モードが肌モードの場合、ＣＰＵ３０は、Ｈが１０〜４０°であり、Ｓが０．１〜０．６であり、かつ、Ｖが０．２〜１．０（図８（ｃ）参照）である画素群から対象代表値（ＯＨ，ＯＳ，ＯＶ）を特定する。
【００４１】
続いて、ＣＰＵ３０は、対象代表値（ＯＨ，ＯＳ，ＯＶ）と、図３のＳ１４で選択された補正値ｃｏｌ（「−２」、「−１」、「＋１」、及び、「＋２」のいずれか）とに基づいて、目標値を算出する（Ｓ４６）。以下では、この目標値のことを基準代表値（ＳＨ，ＳＳ，ＳＶ）と呼ぶ。図９は、対象代表値（ＯＨ，ＯＳ，ＯＶ）と補正値ｃｏｌから基準代表値（ＳＨ，ＳＳ，ＳＶ）を算出するための数式を示す。図９に示される数式から明らかなように、ＳＳとＳＶは、補正値ｃｏｌの変化に応じて線形に変化するものである。ＣＰＵ３０は、図９に示される数式に従って、ＳＨとＳＳとＳＶのそれぞれを算出する。これにより、基準代表値（ＳＨ，ＳＳ，ＳＶ）が得られる。
【００４２】
次いで、ＣＰＵ３０は、Ｓ４４で特定された対象代表値（ＯＨ，ＯＳ，ＯＶ）をｖａｂ色空間内の座標値に変換する（Ｓ４８）。以下では、この座標値のことを対象座標値（Ｏｖ，Ｏａ，Ｏｂ）と呼ぶ。なお、ｖａｂ色空間は、ＲＧＢ色空間と異なる三軸の直交座標系の色空間である。ｖａｂ色空間は、本実施例特有の色空間であり、周知の色空間ではない。図１０を参照しながら、Ｓ４８の処理の内容について説明する。図１０は、ＨＳＶ色空間内の座標値をｖａｂ色空間内の座標値に変換するための数式を示す。図１０では、変換対象の座標値を（Ｈ，Ｓ，Ｖ）と表現し、その座標値から変換されたｖａｂ色空間内の座標値を（ｖ，ａ，ｂ）と表現している。図１０に示される数式において、（Ｈ，Ｓ，Ｖ）を（ＯＨ，ＯＳ，ＯＶ）に置き換えるとともに、（ｖ，ａ，ｂ）を（Ｏｖ，Ｏａ，Ｏｂ）に置き換えると、対象座標値（Ｏｖ，Ｏａ，Ｏｂ）を得るための数式が得られる。ＣＰＵ３０は、この数式に従って、対象座標値（Ｏｖ，Ｏａ，Ｏｂ）を算出する。
【００４３】
次いで、ＣＰＵ３０は、Ｓ４６で特定された基準代表値（ＳＨ，ＳＳ，ＳＶ）をｖａｂ色空間内の座標値に変換する（Ｓ５０）。以下では、この座標値のことを基準座標値（Ｓｖ，Ｓａ，Ｓｂ）と呼ぶ。Ｓ５０の処理は、Ｓ４８の処理と同様に実行される。図１０に示される数式において、（Ｈ，Ｓ，Ｖ）を（ＳＨ，ＳＳ，ＳＶ）に置き換えるとともに、（ｖ，ａ，ｂ）を（Ｓｖ，Ｓａ，Ｓｂ）に置き換えると、基準座標値（Ｓｖ，Ｓａ，Ｓｂ）を得るための数式が得られる。ＣＰＵ３０は、この数式に従って、基準座標値（Ｓｖ，Ｓａ，Ｓｂ）を算出する。
【００４４】
続いて、ＣＰＵ３０は、ＨＳＶ対象画像データ５２を構成する１つの画素を選択する（Ｓ５２）。Ｓ５２で選択された画素の座標値（以下では画素値と言い換えることもある）を（ＰＨ，ＰＳ，ＰＶ）と表現する。ＣＰＵ３０は、Ｓ５２で選択された画素の座標値（ＰＨ，ＰＳ，ＰＶ）をｖａｂ色空間内の座標値（Ｐｖ，Ｐａ，Ｐｂ）に変換する（Ｓ５４）。Ｓ５４の処理は、Ｓ４８の処理と同様に実行される。図１０に示される数式において、（Ｈ，Ｓ，Ｖ）を（ＰＨ，ＰＳ，ＰＶ）に置き換えるとともに、（ｖ，ａ，ｂ）を（Ｐｖ，Ｐａ，Ｐｂ）に置き換えると、座標値（Ｐｖ，Ｐａ，Ｐｂ）を得るための数式が得られる。ＣＰＵ３０は、この数式に従って、座標値（Ｐｖ，Ｐａ，Ｐｂ）を算出する。
【００４５】
次いで、ＣＰＵ３０は、座標値（Ｐｖ，Ｐａ，Ｐｂ）の補正量（Ｃｖ，Ｃａ，Ｃｂ）を算出する（Ｓ５６）。図１１は、補正量を算出するための数式を示す。ＣＰＵ３０は、Ｓ５４で算出されたＰｖと、Ｓ４８で算出されたＯｖと、Ｓ５０で算出されたＳｖとに基づいて、Ｃｖを算出する。まず、ＣＰＵ３０は、図１１（ａ）に示される数式に従って、下限値Ｌｖと上限値Ｕｖを算出する。次いで、ＣＰＵ３０は、図１１（ｂ）に示される数式に従って、Ｃｕｒｖｖを算出する。なお、図１１（ｂ）に示される数式に含まれるＡｄｊＳとＡｄｊＯは、ＰｖとＯｖとＳｖに依存する数値ではなく、予め設定されている定数である。続いて、ＣＰＵ３０は、図１１（ｃ）に示される数式に従って、Ｃｖを算出する。
【００４６】
図１２は、Ｐｖが横軸であり、ＰｖとＣｖの和（ここではＭｖと呼ぶ）が縦軸であるグラフを示す。図１２のグラフは、Ｏｖが０．２５であるとともにＳｖが０．３８である場合を例にしている。なお、Ｍｖは、ＰｖをＣｖで補正した場合の補正後の値である。後で詳しく説明するが、本実施例では、ＰｖにＣｖを加算することのみによってＭｖを求めない。ただし、Ｃｖについての理解を容易にするために、図１２では、ＰｖとＣｖの和をＭｖとしている。
【００４７】
図１２のグラフから明らかなように、Ｐｖが下限値Ｌｖと上限値Ｕｖの間の値である場合、ＰｖはＳｖに近づくような補正カーブになっている。この補正カーブは、Ｓｖを境界として、上に凸である領域と下に凸である領域とに分けられる。例えば、ＰｖがＯｖに等しい場合、ＣｖはＣ１になる。この場合のＭｖは、ＯｖとＣ１の和であるＶ１になる。Ｖ１は、ＯｖとＳｖの間の値である。また、例えば、ＰｖがＯｖとＳｖの間の値Ｖ２である場合、ＣｖはＣ２になる。この場合のＭｖは、Ｖ２とＣ２の和であるＶ３になる。Ｖ３は、Ｖ２とＳｖの間の値である。より具体的には、Ｖ３は、Ｖ１とＳｖの間の値である。即ち、補正前の値ＰｖがＳｖに近い程、補正後の値Ｍｖは、Ｓｖに近い値になる。なお、ＰｖがＯｖである場合にＶ１に補正される様子と、ＰｖがＶ２の場合にＶ３に補正される様子は、図１３（ａ）にも示されている。
【００４８】
ＣＰＵ３０は、補正量Ｃｖを算出する場合と同様の手法を用いて、補正量Ｃａを算出する。ＣＰＵ３０は、ＰａとＯａとＳａとに基づいて、Ｃａを算出する。Ｃａは、図１１に示される数式と同様の数式に従って算出される。具体的に言うと、図１１（ａ）と図１１（ｂ）において、ＬｖをＬａに変更し、ＵｖをＵａに変更し、ＯｖをＯａに変更し、ＳｖをＳａに変更し、ＣｕｒｖｖをＣｕｒｖａに変更すると、Ｃｕｒｖａを算出することができる。ＣＰＵ３０は、図１１（ｃ）に示される数式に従って、Ｃａを算出する。
【００４９】
Ｐａが横軸であり、ＰａとＣａの和（ここではＭａと呼ぶ）が縦軸であるグラフを描くと、図１２のグラフと同様のグラフが得られる。即ち、Ｐａが下限値Ｌａと上限値Ｕａの間の値である場合、ＰａはＳａに近づくように補正される。図１３（ｂ）は、Ｐａが補正される様子の一例を示す。ＰａがＯａに等しい場合、Ｐａは、ＯａとＳａの間の値Ａ１に補正される。また、ＰａがＯａとＳａの間の値Ａ２である場合、Ｐａは、Ａ１とＳａの間の値Ａ３に補正される。即ち、補正前の値ＰａがＳａに近い程、補正後の値は、Ｓａに近くなる。
【００５０】
さらに、ＣＰＵ３０は、補正量Ｃｖを算出する場合と同様の手法を用いて、補正量Ｃｂを算出する。ＣＰＵ３０は、ＰｂとＯｂとＳｂとに基づいて、Ｃｂを算出する。図１１（ａ）と図１１（ｂ）において、ＬｖをＬｂに変更し、ＵｖをＵｂに変更し、ＯｖをＯｂに変更し、ＳｖをＳｂに変更し、ＣｕｒｖｖをＣｕｒｖｂに変更すると、Ｃｕｒｖｂを算出することができる。ＣＰＵ３０は、図１１（ｃ）に示される数式に従って、Ｃｂを算出する。
【００５１】
Ｐｂが横軸であり、ＰｂとＣｂの和（ここではＭｂと呼ぶ）が縦軸であるグラフを描くと、図１２のグラフと同様のグラフが得られる。即ち、Ｐｂが下限値Ｌｂと上限値Ｕｂの間の値である場合、ＰｂはＳｂに近づくように補正される。図１３（ｃ）は、Ｐｂが補正される様子の一例を示す。ＰｂがＯｂに等しい場合、Ｐｂは、ＯｂとＳｂの間の値Ｂ１に補正される。また、ＰｂがＯｂとＳｂの間の値Ｂ２である場合、Ｐｂは、Ｂ１とＳｂの間の値Ｂ３に補正される。即ち、補正前の値ＰｂがＳｂに近い程、補正後の値は、Ｓｂに近くなる。
【００５２】
図１３から明らかなように、補正対象の画素（図４のＳ５２で選択された画素）の座標値（Ｐｖ，Ｐａ，Ｐｂ）が対象座標値（Ｏｖ，Ｏａ，Ｏｂ）に等しい場合、座標値（Ｐｖ，Ｐａ，Ｐｂ）は、対象座標値（Ｏｖ，Ｏａ，Ｏｂ）と基準座標値（Ｓｖ，Ｓａ，Ｓｂ）の間の座標値（Ｖ１，Ａ１，Ｂ１）に補正される。また、補正対象の画素の座標値（Ｐｖ，Ｐａ，Ｐｂ）が対象座標値（Ｏｖ，Ｏａ，Ｏｂ）と基準座標値（Ｓｖ，Ｓａ，Ｓｂ）の間の座標値（Ｖ２，Ａ２，Ｂ２）である場合、座標値（Ｖ２，Ａ２，Ｂ２）は、座標値（Ｖ１，Ａ１，Ｂ１）と基準座標値（Ｓｖ，Ｓａ，Ｓｂ）の間の座標値（Ｖ３，Ａ３，Ｂ３）に補正される。
【００５３】
ＣＰＵ３０は、補正量（Ｃｖ，Ｃａ，Ｃｂ）を算出すると、図５のＳ５８に進む。Ｓ５８では、ＣＰＵ３０は、パラメータｄとパラメータｒａｎｇｅを算出する。図１４（ａ）は、パラメータｄとパラメータｒａｎｇｅを算出するための数式を示す。ＣＰＵ３０は、図１４（ａ）に示される数式に従って、パラメータｄとパラメータｒａｎｇｅを算出する。パラメータｄは、補正対象の画素の座標値（Ｐｖ，Ｐａ，Ｐｂ）と対象座標値（Ｏｖ，Ｏａ，Ｏｂ）との間の距離と、補正対象の画素の座標値（Ｐｖ，Ｐａ，Ｐｂ）と基準座標値（Ｓｖ，Ｓａ，Ｓｂ）との間の距離との和である。また、パラメータｒａｎｇｅは、対象座標値（Ｏｖ，Ｏａ，Ｏｂ）と基準座標値（Ｓｖ，Ｓａ，Ｓｂ）との間の距離である。
【００５４】
次いで、ＣＰＵ３０は、パラメータｄとパラメータｒａｎｇｅに基づいて、パラメータｗを算出する（Ｓ６０）。図１４（ｂ）は、ｗを算出するための数式を示す。なお、図１４（ｂ）の数式において、ｓｕｉの値は、図３のＳ１２で選択された補正モードに応じて設定される。図１４（ｃ）は、補正モードとｓｕｉの値の対応関係を示す。緑モードの場合のｓｕｉの値が最も大きく、肌モードの場合のｓｕｉの値が最も小さい。空モードの場合のｓｕｉの値は、緑モードの場合のｓｕｉの値と肌モードの場合のｓｕｉの値との間の値である。図１４（ｂ）から分かるように、ｄがｒａｎｇｅに等しい場合、ｗは、最も大きい値（１．０）になる。また、ｄがｒａｎｇｅより大きい場合、ｄが大きくなるにつれて、ｗが小さくなる。ｄがｒａｎｇｅとｓｕｉを乗算することによって得られる値より大きい場合、ｗは、最も小さい値（０）になる。図１４（ｂ）の数式によると、ｗは、ｄが大きくなる程、小さくなる値であると言える。逆に言うと、ｗは、ｄが小さくなる程、大きくなる値であると言える。
【００５５】
図１５は、Ｐｖが横軸であり、ｗが縦軸であるグラフを示す。図１５のグラフは、Ｏｖが０．２であるとともにＳｖが０．３１である場合を例にしている。図１５のグラフから明らかなように、ＰｖがＯｖとＳｖの間の値である場合（即ちｄ＝ｒａｎｇｅである場合）、ｗは１．０である。ＰｖがＯｖより小さくなるにつれて、ｗが滑らかに小さくなっている。また、ＰｖがＳｖより大きくなるにつれて、ｗが滑らかに小さくなっている。ＯｖとＳｖの両者からＰｖが遠くなる程、ｗが小さくなる。逆に言うと、ＯｖとＳｖの両者にＰｖが近い程、ｗが大きくなる。なお、Ｐａが横軸であってｗが縦軸であるグラフと、Ｐｂが横軸であってｗが縦軸であるグラフも、図１５のグラフと同様の形状を示す。
【００５６】
ＣＰＵ３０は、補正対象の画素の座標値（Ｐｖ，Ｐａ，Ｐｂ）を、パラメータｗと補正量（Ｃｖ，Ｃａ，Ｃｂ）に基づいて補正する（Ｓ６２）。これにより、補正後の座標値（Ｍｖ，Ｍａ，Ｍｂ）が得られる。図１６は、補正後の座標値（Ｍｖ，Ｍａ，Ｍｂ）を算出するための数式を示す。ＣＰＵ３０は、パラメータｗを補正量（Ｃｖ，Ｃａ，Ｃｂ）に乗算することによって得られる座標値を、補正対象の画素の座標値（Ｐｖ，Ｐａ，Ｐｂ）に加算することによって、補正後の座標値（Ｍｖ，Ｍａ，Ｍｂ）を算出する。
【００５７】
上述したように、ｗを補正量（Ｃｖ，Ｃａ，Ｃｂ）に乗算することによって、実際の補正量が算出される。ｗは、図１４（ｂ）に示される数式に従って算出されるものであり、ｄが小さくなる程、大きくなる値である。ｄが小さくなる程、実際の補正量（ｗ×（Ｃｖ，Ｃａ，Ｃｂ））が大きくなる。即ち、ｄが小さくなる程、補正対象の画素の座標値（Ｐｖ，Ｐａ，Ｐｂ）が大きく補正されることになる。図１７は、ｖａ平面上の対象座標値Ｏと基準座標値Ｓを示す。図１７は、色が白に近づく程、大きく補正されることを意味している。逆に言うと、図１７は、色が黒に近づく程、小さく補正されることを意味している。完全に黒色の領域は、補正されないことを意味している。この図１７からも、上記のパラメータｄが小さい程、補正対象の画素の座標値（Ｐｖ，Ｐａ，Ｐｂ）が大きく補正されることが理解できる。
【００５８】
なお、図１７において完全に黒色の領域は、対象座標値Ｏと基準座標値Ｓを２つの焦点とする楕円の外側の領域である。即ち、対象座標値Ｏと基準座標値Ｓを２つの焦点とする楕円の外側の領域に、補正対象の画素の座標値（Ｐｖ，Ｐａ，Ｐｂ）が存在する場合、その座標値は補正されない。逆に言うと、対象座標値Ｏと基準座標値Ｓを２つの焦点とする楕円の内側の領域に、補正対象の画素の座標値（Ｐｖ，Ｐａ，Ｐｂ）が存在する場合、その座標値が補正される。図１７はｖａ平面で表現されているが、ｖｂ平面及びａｂ平面でも同様の図になる。即ち、ｖａｂ空間において、対象座標値Ｏと基準座標値Ｓを２つの焦点とする楕円体の外側の領域に、補正対象の画素の座標値（Ｐｖ，Ｐａ，Ｐｂ）が存在する場合、その座標値は補正されない。逆に言うと、ｖａｂ空間において、対象座標値Ｏと基準座標値Ｓを２つの焦点とする楕円体の内側の領域に、補正対象の画素の座標値（Ｐｖ，Ｐａ，Ｐｂ）が存在する場合、その座標値が補正される。
【００５９】
ＣＰＵ３０は、Ｓ６２において補正後座標値（Ｍｖ，Ｍａ，Ｍｂ）を算出すると、Ｓ６４に進む。Ｓ６４では、ＣＰＵ３０は、補正後座標値（Ｍｖ，Ｍａ，Ｍｂ）をＨＳＶ色空間内の座標値（ＭＨ，ＭＳ，ＭＶ）に変換する。図１８は、ｖａｂ色空間内の座標値をＨＳＶ色空間内の座標値に変換する数式を示す。図１８では、変換対象の座標値を（ｖ，ａ，ｂ）と表現し、その座標値から変換されたＨＳＶ色空間内の座標値を（Ｈ，Ｓ，Ｖ）と表現している。図１８に示される数式において、（ｖ，ａ，ｂ）を（Ｍｖ，Ｍａ，Ｍｂ）に置き換えるとともに、（Ｈ，Ｓ，Ｖ）を（ＭＨ，ＭＳ，ＭＶ）に置き換えると、座標値（ＭＨ，ＭＳ，ＭＶ）を得るための数式が得られる。ＣＰＵ３０は、この数式に従って、座標値（ＭＨ，ＭＳ，ＭＶ）を算出する。
【００６０】
次いで、ＣＰＵ３０は、Ｓ６４で特定された座標値（ＭＨ，ＭＳ，ＭＶ）を、ＲＧＢ色空間内の座標値（ＭＲ，ＭＧ，ＭＢ）に変換する（Ｓ６６）。図１９は、ＨＳＶ色空間内の座標値をＲＧＢ色空間内の座標値に変換する数式を示す。図１９では、変換対象の座標値を（Ｈ，Ｓ，Ｖ）と表現し、その座標値から変換されたＲＧＢ色空間内の座標値を（Ｒ，Ｇ，Ｂ）と表現している。図１９に示される数式において、（Ｈ，Ｓ，Ｖ）を（ＭＨ，ＭＳ，ＭＶ）に置き換えるとともに、（Ｒ，Ｇ，Ｂ）を（ＭＲ，ＭＧ，ＭＢ）に置き換えると、座標値（ＭＲ，ＭＧ，ＭＢ）を得るための数式が得られる。図１９（ａ）に示されるように、ＣＰＵ３０は、ＭＨから媒介変数ｉｎ及びｆｌを算出する。なお、図１９（ｂ）に示されるように、ＣＰＵ３０は、媒介変数ｉｎが偶数の場合、１からｆｌを減算し、新たなｆｌを算出する。次いで、ＣＰＵ３０は、図１９（ｃ）に示される数式に従って、ＭＳとＭＶから媒介変数ｍ及びｎを算出する。ＣＰＵ３０は、図１９（ｄ）に示される数式に従って、ＭＶとｍとｎからＭＲとＭＧとＭＢを算出する。これにより、ＲＧＢ色空間内の座標値（ＭＲ，ＭＧ，ＭＢ）が得られる。
【００６１】
上記のＳ５４〜Ｓ６６の処理が実行されることによって、ＨＳＶ対象画像データ５２内の１つの画素の座標値（ＰＨ，ＰＳ，ＰＶ）が補正され、補正後の座標値としてＲＧＢ色空間内の座標値（ＭＲ，ＭＧ，ＭＢ）が得られる。ＣＰＵ３０は、ＨＳＶ対象画像データ５２内の全ての画素についてＳ５４〜Ｓ６６の処理が実行されたのか否かを判断する（Ｓ６８）。ここでＮＯの場合、ＣＰＵ３０は、ＨＳＶ対象画像データ５２内の次の画素を選択する（Ｓ７０）。ＣＰＵ３０は、Ｓ７０で選択された画素について、Ｓ５４〜Ｓ６６の処理を実行する。一方において、Ｓ６８でＹＥＳの場合、補正処理が終了する。この場合、Ｓ５４〜Ｓ６６の処理で得られたＲＧＢ色空間内の座標値で各画素の値が表現される補正済みＲＧＢ画像データ５６（図２参照）が得られることになる。
【００６２】
本実施例の多機能機１０について詳しく説明した。多機能機１０は、ＨＳＶ対象画像データ５２とユーザによって選択された補正値ｃｏｌとに基づいて、補正モードに対応する色相内の色を補正するために用いられる目標の色（基準座標値（Ｓｖ，Ｓａ，Ｓｂ））を決定することができる。多機能機１０は、目標の色に近づくように、補正モードに対応する色相付近の色を補正する。このために、ＨＳＶ対象画像データ５２とユーザの意図とに応じて、補正モードに対応する色相内の色を補正することができる。本技術によると、見本の画像データを利用しなくても、ＨＳＶ対象画像データ５２の特定の色相内の色を適切に補正することができる。
【００６３】
多機能機１０は、図４のＳ４４及びＳ４６において、ＨＳＶ色空間（図７参照）内で処理を実行する。例えば、図４のＳ４４では、多機能機１０は、ユーザが望む補正モードに応じた色相Ｈ（例えば空モードの場合は１８０〜２４０°）を有する画素群をＨＳＶ対象画像データ５２から特定し、その画素群から対象代表値を算出する。
【００６４】
ＨＳＶ色空間において対象代表値と基準代表値が求められるために、ＨＳＶ対象画像データ５２内の各画素をＨＳＶ色空間内で補正する手法を採用することも考えられる。しかしながら、この場合、次の問題が発生する。図２０は、ＨＳＶ色空間内のＨＳ平面を示す。図２０に示すαは、補正モードに応じた色相Ｈ（例えば空モードの場合は１８０〜２４０°）を示す。ＨＳＶ色空間内で補正する手法を採用すると、彩度Ｓの小さい２つの画素１２０，１２４が図１９に示される位置に存在する場合に、画素１２０が補正され、画素１２４が補正されないことになる。この結果、補正前には見た目の色の差がほとんどない両者の画素１２０，１２４が、補正後には大きく異なる色になってしまう。ＨＳＶ色空間内で補正する手法で上記の問題に対処するためには、図２１のハッチングで示される領域に含まれる画素群を補正するようにしなければならない。しかしながら、このようなＶ軸を包含する領域をＨＳＶ色空間内で定義するためには、様々なＨの値のそれぞれについてＳ及びＶを定義する必要があり、膨大な計算量を必要とする。
【００６５】
これに対し、本実施例の多機能機１０は、直交座標系のｖａｂ色空間において補正を実行する。即ち、多機能機１０は、対象代表値（ＯＨ，ＯＳ，ＯＶ）をｖａｂ色空間内の対象座標値（Ｏｖ，Ｏａ，Ｏｂ）に変換し（図４のＳ４８）、その対象座標値（Ｏｖ，Ｏａ，Ｏｂ）の周囲の領域（対象座標値（Ｏｖ，Ｏａ，Ｏｂ）と基準座標値（Ｓｖ，Ｓａ，Ｓｂ）とを２つの焦点とする楕円体内の領域）に含まれる画素の値を補正する。このために、補正モードに応じた色相を有さない画素１２４が存在する場合でも、その画素１２４の値が補正され得る。補正前には見た目の色の差がほとんどない２つの画素１２０，１２４が、補正後には大きく異なる色になってしまうことを抑制することができる。本実施例の多機能機１０は、ＨＳＶ対象画像データ５２を適切に補正することができる。
【００６６】
また、図１４の数式に示されるように、多機能機１０では、補正モードに応じて設定されているｓｕｉの値が大きい程、補正されるべき画素の値の範囲（ｒａｎｇｅ×ｓｕｉ）が大きくなるように設定されている。ｓｕｉは、緑モードの場合に最も大きく、肌モードの場合に最も小さい。従って、色の変化が認識しにくい緑色を補正する場合には、補正されるべき画素の値の範囲が大きくなり、色の変化を認識しやすい肌色を補正する場合には、補正されるべき画素の値の範囲が小さくなる。補正されるべき画素の値の範囲が、ヒトの視覚特性に鑑みて適切に設定されている。
【００６７】
なお、図１２に示される補正カーブは、ｗが１．０の場合を例にしている。図１２の例では、Ｖ４は補正されず、Ｖ５がＶ６に補正される。Ｖ４とＶ５は、値が近いために、見た目の色が似ている。Ｖ４に対応する画素とＶ５に対応する画素が隣り合っている場合、補正されない前者の画素（即ちＶ＝Ｖ４）と補正される後者の画素（即ちＶ＝Ｖ６）の間において、大きく色が異なる可能性がある。このような事象が発生するのを抑制するために、本実施例では、以下の構成が採用されている。即ち、対象座標値（Ｏｖ，Ｏａ，Ｏｂ）と補正対象の画素の座標値（Ｐｖ，Ｐａ，Ｐｂ）との間の距離と、基準座標値（Ｓｖ，Ｓａ，Ｓｂ）と補正対象の画素の座標値（Ｐｖ，Ｐａ，Ｐｂ）との間の距離との和ｄが小さい程、補正量が大きくなるように、パラメータｗが採用されている。パラメータｗは、ｄが大きくなるにつれて、小さくなる値である（図１４（ｂ）参照）。図１２に示されるＶ５に対応する画素は、対象座標値（図１２のＯｖ）と基準座標値（図１２のＳｖ）の双方に対して遠い位置に存在するために、補正量が小さくなる。この結果、Ｖ４に対応する画素とＶ５に対応する画素が隣り合っている場合であっても、それらの画素の間で大きく色が異なることを抑制することができる。
【００６８】
請求項に記載されている各要素と第１実施例との関係について記載しておく。請求項の画像処理装置は、多機能機１０に対応する。請求項の対象画像データは、ＨＳＶ対象画像データ５２に対応する。請求項の補正済み画像データは、補正済みＲＧＢ画像データ５６に対応する。請求項の特定範囲は、各補正モードに応じて決められている色相Ｈの範囲（図８参照）に対応する。請求項の代表値は、対象座標値（Ｏｖ，Ｏａ，Ｏｂ）に対応する。請求項の第１決定部は、補正プログラム３６に従って図４のＳ４４及びＳ４８の処理を実行するＣＰＵ３０に対応する。請求項の目標値は、対象座標値（Ｓｖ，Ｓａ，Ｓｂ）に対応する。請求項の補正の程度は、補正値ｃｏｌに対応する。請求項の第２決定部は、補正プログラム３６に従って図４のＳ４６及びＳ５０の処理を実行するＣＰＵ３０に対応する。請求項の代表値の周囲の領域（特定領域、及び、楕円体内の領域）は、図１４の数式に従って求められるｗ＞０の領域（図１７の黒色以外の領域）に対応する。請求項の補正部は、補正プログラム３６に従って図４のＳ５２〜Ｓ５６、及び、図５のＳ５８〜Ｓ７０の処理を実行するＣＰＵ３０に対応する。
【００６９】
請求項の第１距離と第２距離との和は、パラメータｄに対応する。請求項の直交座標系の色空間は、ｖａｂ色空間に対応する。請求項の第１座標値は、図１３の（Ｖ１，Ａ１，Ｂ１）に対応する。請求項の第２座標値は、図１３の（Ｖ２，Ａ２，Ｂ２）に対応する。請求項の第３座標値は、図１３の（Ｖ３，Ａ３，Ｂ３）に対応する。請求項の第１直交座標系の色空間は、ｖａｂ色空間に対応する。請求項の第２直交座標系の色空間は、ＲＧＢ色空間に対応する。請求項の極座標系の色空間は、ＨＳＶ色空間に対応する。請求項の特定画像データは、ＲＧＢ対象画像データ５０に対応する。請求項の変換部は、補正プログラム３６に従って図４のＳ４０の処理を実行するＣＰＵ３０に対応する。請求項の特定直交座標値は、座標値（Ｐｖ，Ｐａ，Ｐｂ）に対応する。請求項の特定極座標値は、座標値（ＭＨ，ＭＳ，ＭＶ）に対応する。
【００７０】
（第２実施例）
続いて、第２実施例について説明する。本実施例では、図３のＳ１６の補正処理の内容が第１実施例と異なる。第１実施例では、ｖａｂ色空間内において補正対象の画素の座標値が補正される。これに対し、本実施例では、ＲＧＢ色空間内において補正対象の画素の座標値が補正される。
【００７１】
図２２は、本実施例の補正処理のフローチャートを示す。ＣＰＵ３０は、図４のＳ４０〜Ｓ４６の処理を実行することによって、対象代表値（ＯＨ，ＯＳ，ＯＶ）を算出するとともに、基準代表値（ＳＨ，ＳＳ，ＳＶ）を算出する。次いで、ＣＰＵ３０は、対象代表値（ＯＨ，ＯＳ，ＯＶ）をＲＧＢ色空間内の対象座標値（ＯＲ，ＯＧ，ＯＢ）に変換する（Ｓ１４８）。さらに、ＣＰＵ３０は、基準代表値（ＳＨ，ＳＳ，ＳＶ）をＲＧＢ色空間内の対象座標値（ＳＲ，ＳＧ，ＳＢ）に変換する（Ｓ１５０）。Ｓ１４８とＳ１５０の処理は、図１９に示される数式に従って実行される。
【００７２】
次いで、ＣＰＵ３０は、ＲＧＢ対象画像データ５０を構成する１つの画素を選択する（Ｓ１５２）。なお、以下では、Ｓ１５２で選択された画素の座標値を（ＰＲ，ＰＧ，ＰＢ）と表現する。ＣＰＵ３０は、Ｓ１５２で選択された画素の座標値（ＰＲ，ＰＧ，ＰＢ）の補正量（ＣＲ，ＣＧ，ＣＢ）を算出する。この補正量は、図１１に示される数式によって算出される。具体的に言うと、図１１において、ＬｖをＬＲに変更し、ＵｖをＵＲに変更し、ＯｖをＯＲに変更し、ＳｖをＳＲに変更し、ＰｖをＰＲに変更し、ＣｕｒｖｖをＣｕｒｖＲに変更し、ＣｖをＣＲに変更すると、ＣＲを算出することができる。なお、本実施例では、図１１（ａ）の「Ｌｖ＞１．０の場合  Ｌｖ＝１．０」という記載は、「ＬＲ＞２５５の場合  ＬＲ＝２５５」に変更される。また、図１１（ａ）の「Ｕｖ＞１．０の場合  Ｕｖ＝１．０」という記載は、「ＵＲ＞２５５の場合  ＵＲ＝２５５」に変更される。ＣＧとＣＢを算出する手法は、ＣＲを算出する手法と同様である。
【００７３】
続いて、ＣＰＵ３０は、パラメータｄとパラメータｒａｎｇｅを算出する（Ｓ１５８）。パラメータｄとパラメータｒａｎｇｅは、図１４（ａ）に示される数式に従って算出される。パラメータｄは、補正対象の画素の座標値（ＰＲ，ＰＧ，ＰＢ）と対象座標値（ＯＲ，ＯＧ，ＯＧ）との間の距離と、補正対象の画素の座標値（ＰＲ，ＰＧ，ＰＢ）と基準座標値（ＳＲ，ＳＧ，ＳＢ）との間の距離との和である。また、パラメータｒａｎｇｅは、対象座標値（ＯＲ，ＯＧ，ＯＢ）と基準座標値（ＳＲ，ＳＧ，ＳＢ）との間の距離である。
【００７４】
次いで、ＣＰＵ３０は、パラメータｄとパラメータｒａｎｇｅに基づいて、パラメータｗを算出する（Ｓ１６０）。パラメータｗは、図１４（ｂ）に示される数式に従って算出される。続いて、ＣＰＵ３０は、補正対象の画素の座標値（ＰＲ，ＰＧ，ＰＢ）を、パラメータｗと補正量（ＣＲ，ＣＧ，ＣＢ）に基づいて補正する（Ｓ１６２）。これにより、補正後の座標値（ＭＲ，ＭＧ，ＭＢ）が得られる。Ｓ１６２の処理は、図１６に示される数式に従って算出される。即ち、ＣＰＵ３０は、パラメータｗを補正量（ＣＲ，ＣＧ，ＣＢ）に乗算することによって得られる座標値を、補正対象の画素の座標値（ＰＲ，ＰＧ，ＰＢ）に加算することによって、補正後の座標値（ＭＲ，ＭＧ，ＭＢ）を算出する。
【００７５】
ＣＰＵ３０は、Ｓ１６２において補正後座標値（ＭＲ，ＭＧ，ＭＢ）を算出すると、Ｓ１６８に進む。Ｓ１６８では、ＣＰＵ３０は、ＲＧＢ対象画像データ５０内の全ての画素についてＳ１５６〜Ｓ１６２の処理が実行されたのか否かを判断する。ここでＮＯの場合、ＣＰＵ３０は、ＲＧＢ対象画像データ５０内の次の画素を選択し（Ｓ１７０）、Ｓ１５６〜Ｓ１６２の処理を実行する。一方において、Ｓ１６８でＹＥＳの場合、補正処理が終了する。この場合、補正済みＲＧＢ画像データ５６（図２参照）が得られることになる。
【００７６】
第１実施例では、図５のＳ６２において補正後の座標値（Ｍｖ，Ｍａ，Ｍｂ）が算出された後に、座標値（Ｍｖ，Ｍａ，Ｍｂ）をＨＳＶ色空間内の座標値（ＭＨ，ＭＳ，ＭＶ）に変換する処理（Ｓ６４）と、座標値（ＭＨ，ＭＳ，ＭＶ）をＲＧＢ色空間内の座標値（ＭＲ，ＭＧ，ＭＢ）に変換する処理（Ｓ６６）とが必要とされる。これに対し、本実施例では、図２２のＳ１６２の処理で得られる座標値（ＭＲ，ＭＧ，ＭＢ）がＲＧＢ色空間内の座標値であるために、変換処理が不要である。
【００７７】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【００７８】
（１）上記の第１実施例では、図５のＳ６０で算出されるパラメータｗが０である場合には、図４のＳ５２で選択された画素に対して補正が行なわれない。従って、パラメータｗが０の場合には、図５のＳ６２とＳ６４をスキップしてもよい。この場合、ＣＰＵ３０は、図４のＳ５２で選択された画素の座標値（ＰＨ，ＰＳ，ＰＶ）を座標値（ＭＨ，ＭＳ，ＭＶ）として、図５のＳ６６の処理を実行してもよい。なお、座標値（ＰＨ，ＰＳ，ＰＶ）に対応するＲＧＢ対象画像データ５０内の座標値がわかっている場合には、Ｓ６６をスキップすることもできる。
【００７９】
（２）上記の各実施例では、メモリカード１８に記憶されている画像データを、補正の対象となるＲＧＢ対象画像データ５０としている。しかしながら、他の画像データをＲＧＢ対象画像データ５０としてもよい。例えば、スキャナ部２０によって生成される画像データをＲＧＢ対象画像データ５０としてもよい。
【００８０】
（３）上記の各実施例では、極座標系の色空間として円柱座標系の色空間（ＨＳＶ色空間）を採用している。しかしながら、極座標系の色空間として球座標系の色空間を採用してもよい。
【００８１】
（４）上記の各実施例では、ユーザによって選択された補正モードに応じて、補正対象の色相の範囲が決定される。しかしながら、補正印刷処理では、１つの補正モードのみが存在していてもよい（即ち補正対象の色相の範囲が固定されていてもよい）。また、補正印刷処理では、複数の補正モード（上記の実施例では３つの補正モード）のそれぞれについて補正処理を順次実行してもよい。この場合、多機能機１０は、補正後の複数の画像データを表示し、その中から１つの画像データを選択することをユーザに許容し、ユーザによって選択された画像データに基づいて印刷を実行してもよい。
【００８２】
（５）上記の各実施例において、ｗを利用して補正しなくてもよい。即ち、図１６に示される数式において、ｗを常に１としてもよい。この場合、図１２に示される下限値Ｌｖと上限値Ｕｖの間の値のみが補正され、それ以外の値が補正されないことになる（ａ軸とｂ軸の場合も同様に補正される）。この変形例では、請求項の周囲の領域は、下限値Ｌｖと上限値Ｕｖの間の領域に対応する。
【００８３】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００８４】
【図１】多機能機の構成を示す。
【図２】画像データが補正される様子を簡単に示す。
【図３】補正印刷処理のフローチャートを示す。
【図４】補正処理のフローチャートを示す。
【図５】図４の続きのフローチャートを示す。
【図６】ＲＧＢからＨＳＶに変換するための数式を示す。
【図７】ＨＳＶ色空間を示す。
【図８】補正モードとＨＳＶの範囲との対応関係の一例を示す。
【図９】基準代表値（ＳＨ，ＳＳ，ＳＶ）を算出するための数式を示す。
【図１０】ＨＳＶからｖａｂに変換するための数式を示す。
【図１１】補正量を算出するための数式を示す。
【図１２】Ｐｖが横軸であり、ＰｖとＣｖの和が縦軸であるグラフの一例を示す。
【図１３】座標値が補正される様子を示す。
【図１４】パラメータｗを算出するための数式を示す。
【図１５】Ｐｖが横軸であり、パラメータｗが縦軸であるグラフの一例を示す。
【図１６】補正後の座標値（Ｍｖ，Ｍａ，Ｍｂ）を算出するための数式を示す。
【図１７】ｖａ平面において補正量が大きいほど白色に近づく様子を示す。
【図１８】ｖａｂからＨＳＶに変換するための数式を示す。
【図１９】ＨＳＶからＲＧＢに変換するための数式を示す。
【図２０】ＳＨ平面を示す。
【図２１】ＨＳＶ色空間を示す。
【図２２】第２実施例の補正処理のフローチャートを示す。
【符号の説明】
【００８５】
１０：多機能機、１２：操作部、１４：表示部、１６：スロット部、１８：メモリカード、２０：スキャナ部、２２：印刷部、２４：ネットワークインターフェイス、２８：制御部、３０：ＣＰＵ、３２：ＲＯＭ、３４：基本プログラム、３６：補正プログラム、５０     ：ＲＧＢ対象画像データ、５２：ＨＳＶ対象画像データ、５６：補正済みＲＧＢ画像データ
【図１】
2010154009.tif 000003
【図２】
2010154009.tif 000004
【図３】
2010154009.tif 000005
【図４】
2010154009.tif 000006
【図５】
2010154009.tif 000007
【図６】
2010154009.tif 000008
【図７】
2010154009.tif 000009
【図８】
2010154009.tif 000010
【図９】
2010154009.tif 000011
【図１０】
2010154009.tif 000012
【図１１】
2010154009.tif 000013
【図１２】
2010154009.tif 000014
【図１３】
2010154009.tif 000015
【図１４】
2010154009.tif 000016
【図１５】
2010154009.tif 000017
【図１６】
2010154009.tif 000018
【図１８】
2010154009.tif 000019
【図１９】
2010154009.tif 000020
【図２０】
2010154009.tif 000021
【図２１】
2010154009.tif 000022
【図２２】
2010154009.tif 000023
【図１７】
2010154009.tif 000024