説明

画像処理装置と画像処理プログラム

【課題】 HSV基準画像データを用いてHSV対象画像データを適切に補正すること。
【解決手段】 多機能機は、以下の各処理を実行する。
(1)HSV対象画像データ内の特定範囲の色相を有する画素群を代表する対象代表値(OH,OS,OV)を算出する(S44)。
(2)対象代表値(OH,OS,OV)をvab色空間内の値である対象座標値(Ov,Oa,Ob)に変換する(S48)。
(3)HSV基準画像データ内の上記の特定範囲の色相を有する画素群を代表する基準代表値(SH,SS,SV)を算出する(S46)。
(4)基準代表値(SH,SS,SV)をvab色空間内の値である基準座標値(Sv,Sa,Sb)に変換する(S50)。
(5)対象座標値(Ov,Oa,Ob)の周囲の領域に含まれる各画素の座標値(Pv,Pa,Pb)を基準座標値(Sv,Sa,Sb)に近づくように補正する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、基準画像データを用いて対象画像データを補正する画像処理技術に関する。
【背景技術】
【0002】
下記の特許文献1には、教師画像データを用いて入力画像データを補正する技術が開示されている。この技術では、教師画像データが示す画像再現の傾向(例えば肌色、青色、緑色等の色相)に従って画像処理パラメータを決定し、この画像処理パラメータに基づいて入力画像データを補正する。
【0003】
【特許文献1】特開2006−80746号公報
【特許文献2】特開平8−321957号公報
【特許文献3】特開2002−223366号公報
【特許文献4】特開2005−197996号公報
【特許文献5】特開平10−173947号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明者は、基準画像データの特定範囲の色相内の色(例えば青色)に近づくように、対象画像データの上記の特定範囲の色相内の色を補正するための技術の開発に携わっている。本発明者は、対象画像データの上記の特定範囲の色相内の色を補正する場合に、対象画像データを適切に補正することができないことがあることを見出した。例えば、対象画像データ内に無彩色付近の色(非常に小さい彩度)を有する複数の画素が存在する可能性がある。無彩色付近の色を有する画素群は、見た目の色の差がほとんどない。これらの画素群の中に、補正対象の色相(上記の特定範囲の色相)を有する画素と、補正対象の色相を有さない画素と、が存在する可能性がある。この場合、前者の画素の値のみが補正され、後者の画素の値は補正されない。この結果、補正前には見た目の色の差がほとんどない両者の画素が、補正後には大きく異なる色になってしまう。
【0005】
本明細書では、基準画像データを用いて対象画像データの特定範囲の色相を適切に補正することができる技術を提供する。
【課題を解決するための手段】
【0006】
本明細書では、基準画像データを用いて対象画像データを補正して補正済み画像データを生成する画像処理装置を開示する。この画像処理装置は、第1決定部と第1算出部と第2決定部と第2算出部と補正部とを備える。第1決定部は、対象画像データ内の特定範囲の色相を有する第1画素群を代表する値であって、極座標系の色空間内の値である第1極座標値を決定する。第1算出部は、第1極座標値を直交変換することによって、第1直交座標系の色空間内の値である第1直交座標値を算出する。第2決定部は、基準画像データ内の上記の特定範囲の色相を有する第2画素群を代表する値であって、極座標系の色空間内の値である第2極座標値を決定する。第2算出部は、第2極座標値を直交変換することによって、第1直交座標系の色空間内の値である第2直交座標値を算出する。補正部は、対象画像データ内の全ての画素のうち、第1直交座標系の色空間内における第1直交座標値の周囲の領域に含まれる各画素の座標値を、第2直交座標値に近づくように補正することによって、対象画像データから補正済み画像データを生成する。
【0007】
上記の画像処理装置では、極座標系の色空間において、対象画像データと基準画像データのそれぞれについて、上記の特定範囲の色相を有する画素群を代表する代表値(第1極座標値と第2極座標値)が決定される。極座標系の色空間において代表値が決定されるために、この極座標系の色空間において第1極座標値が第2極座標値に近づくような補正ベクトルを利用して、対象画像データ内の上記の特定範囲の色相を有する各画素の値を補正する手法を採用することも考えられる。しかしながら、この手法では、見た目の色の差がほとんどない無彩色付近の色を有する画素群が存在する場合に、それらの画素群のうちの上記の特定範囲の色相を有する画素のみが補正される事象が発生してしまう。この事象が発生するのを抑制するために、上記の画像処理装置では、直交座標系(第1直交座標系)の色空間において対象画像データの各画素の値が補正される。即ち、第1極座標値が第1直交座標値に変換され、その第1直交座標値の周囲の領域に含まれる画素の値が補正される。無彩色付近の色を有しており、見た目の色の差がほとんどない画素群は、直交座標系(第1直交座標系)の色空間において、互いに近接する座標値を有する可能性が高い。このために、無彩色付近の色を有する画素群の中に上記の特定範囲の色相を有さない画素が存在する場合でも、その画素の値が補正され得る。上記の事象が発生するのを抑制することができる。
【0008】
なお、上記の対象画像データは、直交座標系(例えば上記の第1直交座標系や後述の第2直交座標系)の色空間内の値によって各画素の値が表わされるものであってもよいし、極座標系の色空間内の値によって各画素の値が表わされるものであってもよい。前者の場合、上記の第1決定部と第2決定部は、対象画像データ内の各画素の値を極座標系の色空間内の値に変換した後に、第1極座標値と第2極座標値を決定してもよい。また、後者の場合、補正部は、対象画像データ内の各画素を第1直交座標系の色空間内の値に変換した後に、補正を行なってもよい。
【0009】
上記の周囲の領域の形状については、特に限定されない。上記の周囲の領域は、例えば、第1直交座標値と第2直交座標値との双方を含む特定領域であってもよい。なお、この場合、上記の特定領域は、第1直交座標値と第2直交座標値とを2つの焦点とする楕円体内の領域であってもよい。一方において、上記の周囲の領域は、例えば、第1直交座標値のみを含む領域であってもよい。
【0010】
ヒトの視覚特性では、例えば、緑色は、色の変化が認識しくい。従って、例えば、緑色の色相を補正する場合には、補正後に緑色が変化したことが認識できるように、補正されるべき画素の値の範囲(即ち上記の周囲の領域)を比較的に大きくすることが好ましい。これに対し、例えば、肌色は、色の変化が認識しやすい。従って、例えば、肌色の色相を補正する場合には、補正後に肌色が大きく変化して違和感を与えることがないように、補正されるべき画素の値の範囲(即ち上記の周囲の領域)を比較的に小さくすることが好ましい。この技術思想は、以下のように表現することができる。即ち、上記の特定範囲が第1範囲の場合に設定される上記の周囲の領域のサイズは、上記の特定範囲が第1範囲と異なる第2範囲の場合に設定される上記の周囲の領域のサイズと異なってもよい。この構成によると、補正されるべき色相に応じて、上記の周囲の領域の大きさを変えることができる。例えば、上記の特定範囲が緑色の色相を示す第1範囲の場合には、上記の特定範囲が肌色の色相を示す第2範囲の場合と比べて、上記の周囲の領域を大きくすることができる。
【0011】
対象画像データにおいて見た目の色が似ている2つの画素が隣り合っている場合でも、一方の画素の値のみが補正され、他方の画素の値が補正されないおそれがある。この場合、補正された画素と補正されなかった画素との間において色が大きく異なり得る。この現象が発生するのを抑制するために、以下の構成を採用してもよい。即ち、補正部は、第1直交座標値と補正対象の画素の第1直交座標系の色空間内の座標値との間の第1距離と、第2直交座標値と補正対象の画素の第1直交座標系の色空間内の座標値との間の第2距離と、の和が小さい程、補正量が大きくなるように、補正対象の画素の第1直交座標系の色空間内の座標値を補正してもよい。
【0012】
上記の構成によると、第1直交座標値と第2直交座標値の双方に対する補正対象の画素の座標値が近いほど、補正量が大きくなる。逆に言うと、第1直交座標値と第2直交座標値の双方に対する補正対象の画素の座標値が遠いほど、補正量が小さくなる。これは、上記の周囲の領域の境界付近に存在する画素の座標値は、補正量が小さくなることを意味する。対象画像データにおいて2つの画素の見た目の色が似ているということは、それらの2つの画素は、直交座標系(第1直交座標系)の色空間において、互いに近接する座標値を有する可能性が高い。それにもかかわらず、一方の画素のみが補正されるということは、その一方の画素が上記の周囲の領域の境界付近において内側に存在する座標値を有しており、他方の画素が上記の周囲の領域の境界付近において外側に存在する座標値を有している可能性が高い。上記の構成によると、上記の周囲の領域の境界付近において内側に存在する座標値を有する画素の補正量が小さくなる。このために、見た目の色が似ていて隣り合っている2つの画素のうちの一方の画素のみが補正されても、その補正量は小さいために、それらの2つの画素の間で大きく色が異なることを抑制することができる。
【0013】
補正部は、補正対象の画素の第1直交座標系の色空間内の座標値が第1直交座標値と同じ場合に、その補正対象の画素の第1直交座標系の色空間内の座標値を、第1直交座標値と第2直交座標値との間の第3直交座標値に補正してもよい。また、補正部は、補正対象の画素の第1直交座標系の色空間内の座標値が第1直交座標値と第2直交座標値との間の第4直交座標値である場合に、その補正対象の画素の第1直交座標系の色空間内の座標値を、第3直交座標値と第2直交座標値との間の第5直交座標値に補正してもよい。
【0014】
なお、第1決定部と第2決定部が第1極座標値と第2極座標値を決定するための手法は、特に限定されない。例えば、第1決定部は、上記の第1画素群に含まれる各画素の極座標系の色空間内の座標値の平均値を算出することによって、第1極座標値を決定してもよい。また、第2決定部は、上記の第2画素群に含まれる各画素の極座標系の色空間内の座標値の平均値を算出することによって、第2極座標値を決定してもよい。なお、第1極座標値及び第2極座標値は、他の手法で得られる値(例えば中央値)であってもよい。
【0015】
上記の画像処理装置は、第1直交座標系と異なる第2直交座標系の色空間内の座標値で各画素の値が表わされる特定画像データを、極座標系の色空間内の座標値で各画素の値が表わされる対象画像データに変換する変換部をさらに備えていてもよい。この場合、補正部は、以下の各処理を実行することによって、第2直交座標系の色空間内の座標値で各画素の値が表わされる補正済み画像データを生成してもよい。
(1)対象画像データ内の各画素の座標値を、第1直交座標系の色空間内の座標値である特定直交座標値に変換する。
(2)上記の周囲の領域に含まれる各特定直交座標値を、第2直交座標値に近づくように補正する。
(3)補正後の各特定直交座標値を、極座標系の色空間内の座標値である特定極座標値に変換する。
(4)各特定極座標値を、第2直交座標系の色空間内の座標値である直交座標値に変換する。
【0016】
なお、上記の画像処理装置を実現するためのコンピュータプログラムも有用である。このコンピュータプログラムを利用すると、基準画像データを用いて対象画像データの特定範囲の色相を適切に補正することができる画像処理装置を実現することができる。
【発明を実施するための最良の形態】
【0017】
ここでは、以下の実施例に記載の技術の一部を列挙しておく。
(形態1)上記の極座標系は、円柱座標系であってもよい。上記の円柱座標系は、輝度を示す軸を有していてもよい。上記の円柱座標系では、動径によって彩度が表現されてもよい。上記の円柱座標系では、偏角によって色相が表現されてもよい。
【0018】
(形態2)上記の補正部は、第1直交座標値と第2直交座標値とに基づいて、上限値(例えば実施例のUv)と下限値(例えば実施例のLv)とを決定してもよい。また、補正部は、補正対象の画素の値が上限値と下限値との間の場合に、第1直交座標値と第2直交座標値とに基づいて補正基準値(例えば実施例のCurvv)を決定してもよい。
【0019】
(形態3)上記の補正部は、第1直交座標値と第2直交座標値との間の距離(例えば実施例のrange)を算出してもよい。補正部は、第1直交座標値と第2直交座標値との間の距離と、上記の第1距離と第2距離との和とに基づいて、補正量を決定してもよい。
【実施例】
【0020】
(第1実施例)
図面を参照して実施例を説明する。図1は、本実施例の多機能機10の概略図を示す。多機能機10は、操作部12と表示部14とスロット部16とスキャナ部20と印刷部22とネットワークインターフェイス24と制御部28等を有する。操作部12は、複数のキーによって構成される。ユーザは、操作部12を操作することによって、様々な指示や命令を多機能機10に入力することができる。表示部14は、様々な情報を表示することができる。スロット部16は、メモリカード18を収容するためのスペースを有する。ユーザは、画像データを記憶しているメモリカード18をスロット部16に挿入することができる。本実施例では、メモリカード18に記憶されている画像データは、RGB形式の画像データである。
【0021】
スキャナ部20は、CCD、CIS等の読取機構を有する。スキャナ部20は、原稿、写真等をカラースキャンすることによって画像データを生成することができる。本実施例では、スキャナ部20によって生成される画像データは、RGB形式の画像データである。印刷部22は、インクジェットタイプ、レーザタイプ等の印刷機構を有する。印刷部22は、メモリカード18に記憶されている画像データ、又は、スキャナ部20によって生成された画像データに基づいて印刷することができる。また、印刷部22は、ネットワークインターフェイス24に入力されたデータに基づいて印刷することができる。ネットワークインターフェイス24は、LAN26に接続されている。
【0022】
制御部28は、CPU30とROM32とRAM40等を有する。CPU30は、ROM32に記憶されているプログラム34〜38に従って様々な処理を実行する。ROM32は、様々なプログラム34〜38を記憶している。基本プログラム34は、多機能機10の基本的な動作を制御するためのプログラムである。基本プログラム34は、例えば、表示部14に表示されるデータを生成するためのプログラムを含んでいる。また、基本プログラム34は、例えば、スキャナ部20、印刷部22等を制御するためのプログラムを含んでいる。補正プログラム36は、画像データを補正するためのプログラムである。CPU30が補正プログラム36に従って実行する処理の内容については、後で詳しく説明する。プログラム38は、上記のプログラム34,36以外のプログラムである。RAM40は、CPU30が処理を実行する過程で生成されるデータを一時的に記憶することができる。
【0023】
本実施例の多機能機10は、スキャナ部20によって生成された画像データを用いて、メモリカード18に記憶されている画像データ(ユーザによって選択された画像データ)を補正することができる。より具体的に言うと、多機能機10は、スキャナ部20によって生成された画像データの色相(ユーザによって選択された色相)内の色に近づくように、メモリカード18に記憶されている画像データの色相内の色を補正することができる。
【0024】
以下では、補正の対象となる画像データ(メモリカード18に記憶されている画像データ)のことをRGB対象画像データと呼ぶ。また、補正の基準となる画像データ(スキャナ部20によって生成された画像データ)のことをRGB基準画像データと呼ぶ。図2は、RGB基準画像データ60を用いてRGB対象画像データ50が補正される様子を簡単に示す。処理の詳細については後で詳しく説明するが、ここでは、RGB対象画像データ50を補正する手順について簡単に説明する。
【0025】
RGB対象画像データ50は、複数の画素を有する。各画素の値は、三軸の直交座標系の色空間内(以下ではRGB色空間内と呼ぶことがある)の値によって表現される。具体的に言うと、各画素の値は、R(赤)を示す値(0〜255)と、G(緑)を示す値(0〜255)と、B(青)を示す値(0〜255)とによって表わされる。多機能機10は、RGB対象画像データ50をHSV形式の画像データ52に変換する。以下では、この画像データ52のことをHSV対象画像データ52と呼ぶ。多機能機10は、RGB対象画像データ50を構成する各画素の値(直交座標値)を極座標値に変換することによって、HSV対象画像データ52を生成する。従って、HSV対象画像データ52が有する画素の数は、RGB対象画像データ50が有する画素の数に等しくなる。HSV対象画像データ52が有する各画素の値は、円柱極座標系の色空間内(以下ではHSV色空間内と呼ぶことがある)の値によって表現される。具体的に言うと、各画素の値は、色相(H)を示す値(0〜360°)と、彩度(S)を示す値(0〜1.0)と、輝度(V)を示す値(0〜1.0)とによって表わされる。
【0026】
多機能機10は、RGB対象画像データ50をHSV対象画像データ52に変換する上記の手法と同様にして、RGB基準画像データ60をHSV形式の画像データ62に変換する。以下では、この画像データ62のことをHSV基準画像データ62と呼ぶ。RGB基準画像データ60が有する各画素の値は、RGB色空間内の値によって表現される。また、HSV基準画像データ62が有する各画素の値は、HSV色空間内の値によって表現される。
【0027】
多機能機10は、後述する様々な処理を実行することによって、HSV基準画像データ62を用いてHSV対象画像データ52を補正する。これにより、補正後の画像データ56が生成される。以下では、この画像データ56のことを補正済みRGB画像データ56と呼ぶ。補正済みRGB画像データ56が有する各画素の値は、RGB色空間内の値によって表現される。
【0028】
続いて、多機能機10が実行する補正印刷処理の内容について詳しく説明する。ユーザは、操作部12を操作することによって、補正印刷モードを選択することができる。この操作が実行された場合に、補正印刷処理が実行される。図3は、補正印刷処理のフローチャートを示す。補正印刷処理は、基本プログラム34と補正プログラム36に従ってCPU30によって実行される。なお、図3のフローチャートに示される各処理のうち、S18の処理は補正プログラム36に従って実行され、それ以外の処理は基本プログラム34に従って実行される。
【0029】
ユーザは、操作部12を操作することによって、メモリカード18に記憶されている複数の画像データの中から1つの画像データを選択することができる。ここで選択された画像データが補正対象の画像データ(即ちRGB対象画像データ50)になる。CPU30は、RGB対象画像データ50が選択されるまで待機する(S10)。
【0030】
ユーザは、操作部12を操作することによって、RGB対象画像データ50を補正するために用いられる基準の画像(例えば写真)をスキャナ部20によってスキャンさせることができる。CPU30は、この操作が実行されるまで待機する(S12)。ユーザによって操作が実行されると、CPU30は、スキャナ部20にスキャンすることを指示する(S14)。これにより、スキャナ部20は、ユーザによって選択された基準の画像をカラースキャンすることによって、画像データ(即ちRGB基準画像データ60)を生成する。
【0031】
次いで、CPU30は、複数の補正モードを示す文字列を表示部14に表示させる。具体的に言うと、CPU30は、「空モード」、「緑モード」、及び「肌モード」という文字列を表示部14に表示させる。各補正モードについて簡単に説明する。空モードは、RGB基準画像データ60が有する青色の色相内の色に近づくように、RGB対象画像データ50が有する青色の色相内の色を補正するためのモードである。緑モードは、RGB基準画像データ60が有する緑色の色相内の色に近づくように、RGB対象画像データ50が有する緑色の色相内の色を補正するためのモードである。肌モードは、RGB基準画像データ60が有する肌色の色相内の色に近づくように、RGB対象画像データ50が有する肌色の色相内の色を補正するためのモードである。ユーザは、操作部12を操作することによって、表示部14に表示された3つの補正モードの中から1つの補正モードを選択することができる。CPU30は、この操作が実行されるまで待機する(S16)。ユーザによって選択された補正モードを示す情報は、RAM40に記憶される。
【0032】
次いで、CPU30は、補正処理を実行する(S18)。補正処理の内容については、後で詳しく説明する。補正処理によって補正済みRGB画像データ56が得られる。CPU30は、補正済みRGB画像データ56を印刷データ(CMYK形式のビットマップデータ)に変換する(S20)。続いて、CPU30は、S20で生成された印刷データに基づいて印刷することを印刷部22に指示する(S22)。この結果、印刷部22は、印刷データに基づいて印刷媒体に印刷する。ユーザは、補正済みRGB画像データ56が印刷された印刷媒体を得ることができる。
【0033】
続いて、S18で実行される補正処理の内容について詳しく説明する。図4及び図5は、補正処理のフローチャートを示す。CPU30は、RGB対象画像データ50をHSV対象画像データ52に変換する(S40)。図6は、RGB色空間内の座標値をHSV色空間内の座標値に変換するための数式を示す。CPU30は、RGB対象画像データ50を構成する1つの画素(変換対象の画素)を選択する。図6(a)に示されるように、変換対象の画素の座標値を(R,G,B)と表現し、その座標値から変換されたHSV色空間内の座標値を(H,S,V)と表現する。図6(b)に示されるように、CPU30は、R/255とG/255とB/255をそれぞれ算出し、その中の最も大きい値をVとして特定する。また、CPU30は、図6(c)に示される数式に従って、Sを算出する。次いで、CPU30は、図6(d)に示される数式に従って、媒介変数r,g,bを算出する。CPU30は、図6(e)に示される数式に従って、Hを算出する。ここで算出されたHがマイナスの値である場合、CPU30は、図6(f)に示されるように、Hに360を加算することによって、新たなHを算出する。これにより、変換対象の画素の座標値(R,G,B)からHSV色空間内の座標値(H,S,V)を得ることができる。
【0034】
図7は、HSV色空間を模式的に示す。図7を見ると、HSV色空間が円柱座標系の色空間であることがよくわかる。色相を示すHは、0〜360°のいずれかの値である。彩度を示すSは、0〜1.0のいずれかの値である。輝度を示すVは、0〜1.0のいずれかの値である。
【0035】
CPU30は、RGB対象画像データ50の他の全ての画素のそれぞれについて、図6(a)〜図6(f)の数式に従って、HSV色空間内の座標値(H,S,V)を算出する。これにより、HSV対象画像データ52が得られる。CPU30は、HSV対象画像データ52をRAM40に記憶させる。
【0036】
続いて、CPU30は、RGB基準画像データ60をHSV基準画像データ62に変換する(S42)。S42の処理は、上記のS40の処理と同様の手法によって行なわれる。即ち、CPU30は、RGB基準画像データ60の全ての画素のそれぞれについて、図6(a)〜図6(f)に従って、HSV色空間内の座標値(H,S,V)を算出する。これにより、HSV基準画像データ62が得られる。CPU30は、HSV基準画像データ62をRAM40に記憶させる。
【0037】
次いで、CPU30は、HSV対象画像データ52から代表値を算出する(S44)。以下では、この代表値のことを対象代表値(OH,OS,OV)と呼ぶ。S44の処理は、図3のS16で選択された補正モードに従って実行される。図8は、補正モードと、HとSとVのそれぞれの範囲との対応関係の一例を示す。例えば、補正モードが空モードの場合、Hが180〜240°であり、Sが0〜1.0であり、Vが0〜1.0である。これは、補正モードが空モードの場合には、CPU30は、Hが180〜240°であり、Sが0〜1.0であり、かつ、Vが0〜1.0である画素群に基づいて、代表値を算出することを意味している。
【0038】
より具体的に言うと、補正モードが空モードの場合、CPU30は、HSV対象画像データ52を構成する全ての画素のうち、Hが180〜240°(図8(a)参照)である画素群を特定する。なお、ここでは、SとVを考慮しない。空モードの場合のSとVのそれぞれの範囲は0〜1.0であり(図8(a)参照)、いずれの画素であってもSとVが0〜1.0の範囲に含まれるからである。次いで、CPU30は、特定された画素群のHの平均値を算出することによってOHを特定し、特定された画素群のSの平均値を算出することによってOSを特定し、特定された画素群のVの平均値を算出することによってOVを特定する。これにより、対象代表値(OH,OS,OV)が得られる。なお、図3のS16で選択された補正モードが緑モードの場合、CPU30は、Hが50〜170°(図8(b)参照)である画素群から対象代表値(OH,OS,OV)を特定する。また、図3のS16で選択された補正モードが肌モードの場合、CPU30は、Hが10〜40°であり、Sが0.1〜0.6であり、かつ、Vが0.2〜1.0(図8(c)参照)である画素群から対象代表値(OH,OS,OV)を特定する。
【0039】
続いて、CPU30は、HSV基準画像データ62から代表値を算出する(S46)。以下では、この代表値のことを基準代表値(SH,SS,SV)と呼ぶ。S46の処理は、S44の処理と同様に実行される。例えば、図3のS16で選択された補正モードが空モードの場合、CPU30は、HSV基準画像データ62を構成する全ての画素のうち、Hが180〜240°(図8(a)参照)である画素群を特定する。次いで、CPU30は、特定された画素群のHの平均値を算出することによってSHを特定し、特定された画素群のSの平均値を算出することによってSSを特定し、特定された画素群のVの平均値を算出することによってSVを特定する。これにより、基準代表値(SH,SS,SV)が得られる。
【0040】
次いで、CPU30は、S44で特定された対象代表値(OH,OS,OV)をvab色空間内の座標値に変換する(S48)。以下では、この座標値のことを対象座標値(Ov,Oa,Ob)と呼ぶ。なお、vab色空間は、RGB色空間と異なる三軸の直交座標系の色空間である。vab色空間は、本実施例特有の色空間であり、周知の色空間ではない。図9を参照しながら、S48の処理の内容について説明する。図9は、HSV色空間内の座標値をvab色空間内の座標値に変換するための数式を示す。図9では、変換対象の座標値を(H,S,V)と表現し、その座標値から変換されたvab色空間内の座標値を(v,a,b)と表現している。図9に示される数式において、(H,S,V)を(OH,OS,OV)に置き換えるとともに、(v,a,b)を(Ov,Oa,Ob)に置き換えると、対象座標値(Ov,Oa,Ob)を得るための数式が得られる。CPU30は、この数式に従って、対象座標値(Ov,Oa,Ob)を算出する。
【0041】
次いで、CPU30は、S46で特定された基準代表値(SH,SS,SV)をvab色空間内の座標値に変換する(S50)。以下では、この座標値のことを基準座標値(Sv,Sa,Sb)と呼ぶ。S50の処理は、S48の処理と同様に実行される。図9に示される数式において、(H,S,V)を(SH,SS,SV)に置き換えるとともに、(v,a,b)を(Sv,Sa,Sb)に置き換えると、基準座標値(Sv,Sa,Sb)を得るための数式が得られる。CPU30は、この数式に従って、基準座標値(Sv,Sa,Sb)を算出する。
【0042】
続いて、CPU30は、HSV対象画像データ52を構成する1つの画素を選択する(S52)。S52で選択された画素の座標値(以下では画素値と言い換えることもある)を(PH,PS,PV)と表現する。CPU30は、S52で選択された画素の座標値(PH,PS,PV)をvab色空間内の座標値(Pv,Pa,Pb)に変換する(S54)。S54の処理は、S48の処理と同様に実行される。図9に示される数式において、(H,S,V)を(PH,PS,PV)に置き換えるとともに、(v,a,b)を(Pv,Pa,Pb)に置き換えると、座標値(Pv,Pa,Pb)を得るための数式が得られる。CPU30は、この数式に従って、座標値(Pv,Pa,Pb)を算出する。
【0043】
次いで、CPU30は、座標値(Pv,Pa,Pb)の補正量(Cv,Ca,Cb)を算出する(S56)。図10は、補正量を算出するための数式を示す。CPU30は、S54で算出されたPvと、S48で算出されたOvと、S50で算出されたSvとに基づいて、Cvを算出する。まず、CPU30は、図10(a)に示される数式に従って、下限値Lvと上限値Uvを算出する。次いで、CPU30は、図10(b)に示される数式に従って、Curvvを算出する。なお、図10(b)に示される数式に含まれるAdjSとAdjOは、PvとOvとSvに依存する数値ではなく、予め設定されている定数である。続いて、CPU30は、図10(c)に示される数式に従って、Cvを算出する。
【0044】
図11は、Pvが横軸であり、PvとCvの和(ここではMvと呼ぶ)が縦軸であるグラフを示す。図11のグラフは、Ovが0.25であるとともにSvが0.38である場合を例にしている。なお、Mvは、PvをCvで補正した場合の補正後の値である。後で詳しく説明するが、本実施例では、PvにCvを加算することのみによってMvを求めない。ただし、Cvについての理解を容易にするために、図11では、PvとCvの和をMvとしている。
【0045】
図11のグラフから明らかなように、Pvが下限値Lvと上限値Uvの間の値である場合、PvはSvに近づくような補正カーブになっている。この補正カーブは、Svを境界として、上に凸である領域と下に凸である領域とに分けられる。例えば、PvがOvに等しい場合、CvはC1になる。この場合のMvは、OvとC1の和であるV1になる。V1は、OvとSvの間の値である。また、例えば、PvがOvとSvの間の値V2である場合、CvはC2になる。この場合のMvは、V2とC2の和であるV3になる。V3は、V2とSvの間の値である。より具体的には、V3は、V1とSvの間の値である。即ち、補正前の値PvがSvに近い程、補正後の値Mvは、Svに近い値になる。なお、PvがOvである場合にV1に補正される様子と、PvがV2の場合にV3に補正される様子は、図12(a)にも示されている。
【0046】
CPU30は、補正量Cvを算出する場合と同様の手法を用いて、補正量Caを算出する。CPU30は、PaとOaとSaとに基づいて、Caを算出する。Caは、図10に示される数式と同様の数式に従って算出される。具体的に言うと、図10(a)と図10(b)において、LvをLaに変更し、UvをUaに変更し、OvをOaに変更し、SvをSaに変更し、CurvvをCurvaに変更すると、Curvaを算出することができる。CPU30は、図10(c)に示される数式に従って、Caを算出する。
【0047】
Paが横軸であり、PaとCaの和(ここではMaと呼ぶ)が縦軸であるグラフを描くと、図11のグラフと同様のグラフが得られる。即ち、Paが下限値Laと上限値Uaの間の値である場合、PaはSaに近づくように補正される。図12(b)は、Paが補正される様子の一例を示す。PaがOaに等しい場合、Paは、OaとSaの間の値A1に補正される。また、PaがOaとSaの間の値A2である場合、Paは、A1とSaの間の値A3に補正される。即ち、補正前の値PaがSaに近い程、補正後の値は、Saに近くなる。
【0048】
さらに、CPU30は、補正量Cvを算出する場合と同様の手法を用いて、補正量Cbを算出する。CPU30は、PbとObとSbとに基づいて、Cbを算出する。図10(a)と図10(b)において、LvをLbに変更し、UvをUbに変更し、OvをObに変更し、SvをSbに変更し、CurvvをCurvbに変更すると、Curvbを算出することができる。CPU30は、図10(c)に示される数式に従って、Cbを算出する。
【0049】
Pbが横軸であり、PbとCbの和(ここではMbと呼ぶ)が縦軸であるグラフを描くと、図11のグラフと同様のグラフが得られる。即ち、Pbが下限値Lbと上限値Ubの間の値である場合、PbはSbに近づくように補正される。図12(c)は、Pbが補正される様子の一例を示す。PbがObに等しい場合、Pbは、ObとSbの間の値B1に補正される。また、PbがObとSbの間の値B2である場合、Pbは、B1とSbの間の値B3に補正される。即ち、補正前の値PbがSbに近い程、補正後の値は、Sbに近くなる。
【0050】
図12から明らかなように、補正対象の画素(図4のS52で選択された画素)の座標値(Pv,Pa,Pb)が対象座標値(Ov,Oa,Ob)に等しい場合、座標値(Pv,Pa,Pb)は、対象座標値(Ov,Oa,Ob)と基準座標値(Sv,Sa,Sb)の間の座標値(V1,A1,B1)に補正される。また、補正対象の画素の座標値(Pv,Pa,Pb)が対象座標値(Ov,Oa,Ob)と基準座標値(Sv,Sa,Sb)の間の座標値(V2,A2,B2)である場合、座標値(V2,A2,B2)は、座標値(V1,A1,B1)と基準座標値(Sv,Sa,Sb)の間の座標値(V3,A3,B3)に補正される。
【0051】
CPU30は、補正量(Cv,Ca,Cb)を算出すると、図5のS58に進む。S58では、CPU30は、パラメータdとパラメータrangeを算出する。図13(a)は、パラメータdとパラメータrangeを算出するための数式を示す。CPU30は、図13(a)に示される数式に従って、パラメータdとパラメータrangeを算出する。パラメータdは、補正対象の画素の座標値(Pv,Pa,Pb)と対象座標値(Ov,Oa,Ob)との間の距離と、補正対象の画素の座標値(Pv,Pa,Pb)と基準座標値(Sv,Sa,Sb)との間の距離との和である。また、パラメータrangeは、対象座標値(Ov,Oa,Ob)と基準座標値(Sv,Sa,Sb)との間の距離である。
【0052】
次いで、CPU30は、パラメータdとパラメータrangeに基づいて、パラメータwを算出する(S60)。図13(b)は、wを算出するための数式を示す。なお、図13(b)の数式において、suiの値は、図3のS16で選択された補正モードに応じて設定される。図13(c)は、補正モードとsuiの値の対応関係を示す。緑モードの場合のsuiの値が最も大きく、肌モードの場合のsuiの値が最も小さい。空モードの場合のsuiの値は、緑モードの場合のsuiの値と肌モードの場合のsuiの値との間の値である。図13(b)から分かるように、dがrangeに等しい場合、wは、最も大きい値(1.0)になる。また、dがrangeより大きい場合、dが大きくなるにつれて、wが小さくなる。dがrangeとsuiを乗算することによって得られる値より大きい場合、wは、最も小さい値(0)になる。図13(b)の数式によると、wは、dが大きくなる程、小さくなる値であると言える。逆に言うと、wは、dが小さくなる程、大きくなる値であると言える。
【0053】
図14は、Pvが横軸であり、wが縦軸であるグラフを示す。図14のグラフは、Ovが0.2であるとともにSvが0.31である場合を例にしている。なお、図14のグラフから明らかなように、PvがOvとSvの間の値である場合(即ちd=rangeである場合)、wは1.0である。PvがOvより小さくなるにつれて、wが滑らかに小さくなっている。また、PvがSvより大きくなるにつれて、wが滑らかに小さくなっている。OvとSvの両者からPvが遠くなる程、wが小さくなる。逆に言うと、OvとSvの両者にPvが近い程、wが大きくなる。なお、Paが横軸であってwが縦軸であるグラフと、Pbが横軸であってwが縦軸であるグラフも、図14のグラフと同様の形状を示す。
【0054】
CPU30は、補正対象の画素の座標値(Pv,Pa,Pb)を、パラメータwと補正量(Cv,Ca,Cb)に基づいて補正する(S62)。これにより、補正後の座標値(Mv,Ma,Mb)が得られる。図15は、補正後の座標値(Mv,Ma,Mb)を算出するための数式を示す。CPU30は、パラメータwを補正量(Cv,Ca,Cb)に乗算することによって得られる座標値を、補正対象の画素の座標値(Pv,Pa,Pb)に加算することによって、補正後の座標値(Mv,Ma,Mb)を算出する。
【0055】
上述したように、wを補正量(Cv,Ca,Cb)に乗算することによって、実際の補正量が算出される。wは、図13(b)に示される数式に従って算出されるものであり、dが小さくなる程、大きくなる値である。dが小さくなる程、実際の補正量(w×(Cv,Ca,Cb))が大きくなる。即ち、dが小さくなる程、補正対象の画素の座標値(Pv,Pa,Pb)が大きく補正されることになる。図16は、va平面上の対象座標値Oと基準座標値Sを示す。図16は、色が白に近づく程、大きく補正されることを意味している。逆に言うと、図16は、色が黒に近づく程、小さく補正されることを意味している。完全に黒色の領域は、補正されないことを意味している。この図16からも、上記のパラメータdが小さい程、補正対象の画素の座標値(Pv,Pa,Pb)が大きく補正されることが理解できる。
【0056】
なお、図16において完全に黒色の領域は、対象座標値Oと基準座標値Sを2つの焦点とする楕円の外側の領域である。即ち、対象座標値Oと基準座標値Sを2つの焦点とする楕円の外側の領域に、補正対象の画素の座標値(Pv,Pa,Pb)が存在する場合、その座標値は補正されない。逆に言うと、対象座標値Oと基準座標値Sを2つの焦点とする楕円の内側の領域に、補正対象の画素の座標値(Pv,Pa,Pb)が存在する場合、その座標値が補正される。図16はva平面で表現されているが、vb平面及びab平面でも同様の図になる。即ち、vab空間において、対象座標値Oと基準座標値Sを2つの焦点とする楕円体の外側の領域に、補正対象の画素の座標値(Pv,Pa,Pb)が存在する場合、その座標値は補正されない。逆に言うと、vab空間において、対象座標値Oと基準座標値Sを2つの焦点とする楕円体の内側の領域に、補正対象の画素の座標値(Pv,Pa,Pb)が存在する場合、その座標値が補正される。
【0057】
CPU30は、S62において補正後座標値(Mv,Ma,Mb)を算出すると、S64に進む。S64では、CPU30は、補正後座標値(Mv,Ma,Mb)をHSV色空間内の座標値(MH,MS,MV)に変換する。図17は、vab色空間内の座標値をHSV色空間内の座標値に変換する数式を示す。図17では、変換対象の座標値を(v,a,b)と表現し、その座標値から変換されたHSV色空間内の座標値を(H,S,V)と表現している。図17に示される数式において、(v,a,b)を(Mv,Ma,Mb)に置き換えるとともに、(H,S,V)を(MH,MS,MV)に置き換えると、座標値(MH,MS,MV)を得るための数式が得られる。CPU30は、この数式に従って、座標値(MH,MS,MV)を算出する。
【0058】
次いで、CPU30は、S64で特定された座標値(MH,MS,MV)を、RGB色空間内の座標値(MR,MG,MB)に変換する(S66)。図18は、HSV色空間内の座標値をRGB色空間内の座標値に変換する数式を示す。図18では、変換対象の座標値を(H,S,V)と表現し、その座標値から変換されたRGB色空間内の座標値を(R,G,B)と表現している。図18に示される数式において、(H,S,V)を(MH,MS,MV)に置き換えるとともに、(R,G,B)を(MR,MG,MB)に置き換えると、座標値(MR,MG,MB)を得るための数式が得られる。図18(a)に示されるように、CPU30は、MHから媒介変数in及びflを算出する。なお、図18(b)に示されるように、CPU30は、媒介変数inが偶数の場合、1からflを減算し、新たなflを算出する。次いで、CPU30は、図18(c)に示される数式に従って、MSとMVから媒介変数m及びnを算出する。CPU30は、図18(d)に示される数式に従って、MVとmとnからMRとMGとMBを算出する。これにより、RGB色空間内の座標値(MR,MG,MB)が得られる。
【0059】
上記のS54〜S66の処理が実行されることによって、HSV対象画像データ52内の1つの画素の座標値(PH,PS,PV)が補正され、補正後の座標値としてRGB色空間内の座標値(MR,MG,MB)が得られる。CPU30は、HSV対象画像データ52内の全ての画素についてS54〜S66の処理が実行されたのか否かを判断する(S68)。ここでNOの場合、CPU30は、HSV対象画像データ52内の次の画素を選択する(S70)。CPU30は、S70で選択された画素について、S54〜S66の処理を実行する。一方において、S68でYESの場合、補正処理が終了する。この場合、S54〜S66の処理で得られたRGB色空間内の座標値で各画素の値が表現される補正済みRGB画像データ56(図2参照)が得られることになる。
【0060】
本実施例の多機能機10について詳しく説明した。多機能機10は、図4のS44及びS46において、HSV色空間(図7参照)内で処理を実行する。例えば、図4のS44では、多機能機10は、ユーザが望む補正モードに応じた色相H(例えば空モードの場合は180〜240°)を有する画素群をHSV対象画像データ52から特定し、その画素群から対象代表値を算出する。
【0061】
HSV色空間において対象代表値と基準代表値が求められるために、HSV対象画像データ52内の各画素をHSV色空間内で補正する手法を採用することも考えられる。しかしながら、この場合、次の問題が発生する。図19は、HSV色空間内のHS平面を示す。図19に示すαは、補正モードに応じた色相H(例えば空モードの場合は180〜240°)を示す。HSV色空間内で補正する手法を採用すると、彩度Sの小さい2つの画素120,124が図19に示される位置に存在する場合に、画素120が補正され、画素124が補正されないことになる。この結果、補正前には見た目の色の差がほとんどない両者の画素120,124が、補正後には大きく異なる色になってしまう。HSV色空間内で補正する手法で上記の問題に対処するためには、図20のハッチングで示される領域に含まれる画素群を補正するようにしなければならない。しかしながら、このようなV軸を包含する領域をHSV色空間内で定義するためには、様々なHの値のそれぞれについてS及びVを定義する必要があり、膨大な計算量を必要とする。
【0062】
これに対し、本実施例の多機能機10は、直交座標系のvab色空間において補正を実行する。即ち、多機能機10は、対象代表値(OH,OS,OV)をvab色空間内の対象座標値(Ov,Oa,Ob)に変換し(図4のS48)、その対象座標値(Ov,Oa,Ob)の周囲の領域(対象座標値(Ov,Oa,Ob)と基準座標値(Sv,Sa,Sb)とを2つの焦点とする楕円体内の領域)に含まれる画素の値を補正する。このために、補正モードに応じた色相を有さない画素124が存在する場合でも、その画素124の値が補正され得る。補正前には見た目の色の差がほとんどない2つの画素120,124が、補正後には大きく異なる色になってしまうことを抑制することができる。本実施例の多機能機10は、HSV基準画像データ62を用いてHSV対象画像データ52を適切に補正することができる。
【0063】
また、図13の数式に示されるように、多機能機10では、補正モードに応じて設定されているsuiの値が大きい程、補正されるべき画素の値の範囲(range×sui)が大きくなるように設定されている。suiは、緑モードの場合に最も大きく、肌モードの場合に最も小さい。従って、色の変化が認識しにくい緑色を補正する場合には、補正されるべき画素の値の範囲が大きくなり、色の変化を認識しやすい肌色を補正する場合には、補正されるべき画素の値の範囲が小さくなる。補正されるべき画素の値の範囲が、ヒトの視覚特性に鑑みて適切に設定されている。
【0064】
なお、図11に示される補正カーブは、wが1.0の場合を例にしている。図11の例では、V4は補正されず、V5がV6に補正される。V4とV5は、値が近いために、見た目の色が似ている。V4に対応する画素とV5に対応する画素が隣り合っている場合、補正されない前者の画素(即ちV=V4)と補正される後者の画素(即ちV=V6)の間において、大きく色が異なる可能性がある。このような事象が発生するのを抑制するために、本実施例では、以下の構成が採用されている。即ち、対象座標値(Ov,Oa,Ob)と補正対象の画素の座標値(Pv,Pa,Pb)との間の距離と、基準座標値(Sv,Sa,Sb)と補正対象の画素の座標値(Pv,Pa,Pb)との間の距離との和dが小さい程、補正量が大きくなるように、パラメータwが採用されている。パラメータwは、dが大きくなるにつれて、小さくなる値である(図13(b)参照)。図11に示されるV5に対応する画素は、対象座標値(図11のOv)と基準座標値(図11のSv)の双方に対して遠い位置に存在するために、補正量が小さくなる。この結果、V4に対応する画素とV5に対応する画素が隣り合っている場合であっても、それらの画素の間で大きく色が異なることを抑制することができる。
【0065】
請求項に記載されている各要素と第1実施例との関係について記載しておく。請求項の画像処理装置は、多機能機10に対応する。請求項の対象画像データは、HSV対象画像データ52に対応する。請求項の基準画像データは、HSV基準画像データ62に対応する。請求項の補正済み画像データは、補正済みRGB画像データ56に対応する。請求項の特定範囲は、各補正モードに応じて決められている色相Hの範囲(図8参照)に対応する。請求項の極座標系の色空間は、HSV色空間に対応する。請求項の第1極座標値は、対象代表値(OH,OS,OV)に対応する。請求項の第1決定部は、補正プログラム36に従って図4のS44の処理を実行するCPU30に対応する。請求項の第1直交座標値は、対象座標値(Ov,Oa,Ob)に対応する。請求項の第1直交座標系の色空間は、vab色空間に対応する。請求項の第1算出部は、補正プログラム36に従って図4のS48の処理を実行するCPU30に対応する。請求項の第2極座標値は、基準代表値(SH,SS,SV)に対応する。請求項の第2決定部は、補正プログラム36に従って図4のS46の処理を実行するCPU30に対応する。請求項の第2直交座標値は、基準座標値(Sv,Sa,Sb)に対応する。請求項の第2算出部は、補正プログラム36に従って図4のS50の処理を実行するCPU30に対応する。請求項の第1直交座標値の周囲の領域(特定領域、及び、楕円体内の領域)は、図13の数式に従って求められるw>0の領域(図16の黒色以外の領域)に対応する。請求項の補正部は、補正プログラム36に従って図4のS52〜S56、及び、図5のS58〜S70の処理を実行するCPU30に対応する。
【0066】
請求項の第1距離と第2距離との和は、パラメータdに対応する。請求項の第3直交座標値は、図12の(V1,A1,B1)に対応する。請求項の第4直交座標値は、図12の(V2,A2,B2)に対応する。請求項の第5直交座標値は、図12の(V3,A3,B3)に対応する。請求項の第2直交座標系の色空間は、RGB色空間に対応する。請求項の特定画像データは、RGB対象画像データ50に対応する。請求項の変換部は、補正プログラム36に従って図4のS40の処理を実行するCPU30に対応する。請求項の特定直交座標値は、座標値(Pv,Pa,Pb)に対応する。請求項の特定極座標値は、座標値(MH,MS,MV)に対応する。
【0067】
(第2実施例)
続いて、第2実施例について説明する。本実施例では、図3のS18の補正処理の内容が第1実施例と異なる。第1実施例では、vab色空間内において補正対象の画素の座標値が補正される。これに対し、本実施例では、RGB色空間内において補正対象の画素の座標値が補正される。
【0068】
図21は、本実施例の補正処理のフローチャートを示す。CPU30は、図4のS40〜S46の処理を実行することによって、対象代表値(OH,OS,OV)を算出するとともに、基準代表値(SH,SS,SV)を算出する。次いで、CPU30は、対象代表値(OH,OS,OV)をRGB色空間内の対象座標値(OR,OG,OB)に変換する(S148)。さらに、CPU30は、基準代表値(SH,SS,SV)をRGB色空間内の対象座標値(SR,SG,SB)に変換する(S150)。S148とS150の処理は、図18に示される数式に従って実行される。
【0069】
次いで、CPU30は、RGB対象画像データ50を構成する1つの画素を選択する(S152)。なお、以下では、S152で選択された画素の座標値を(PR,PG,PB)と表現する。CPU30は、S152で選択された画素の座標値(PR,PG,PB)の補正量(CR,CG,CB)を算出する。この補正量は、図10に示される数式によって算出される。具体的に言うと、図10において、LvをLRに変更し、UvをURに変更し、OvをORに変更し、SvをSRに変更し、PvをPRに変更し、CurvvをCurvRに変更し、CvをCRに変更すると、CRを算出することができる。なお、本実施例では、図10(a)の「Lv>1.0の場合 Lv=1.0」という記載は、「LR>255の場合 LR=255」に変更される。また、図10(a)の「Uv>1.0の場合 Uv=1.0」という記載は、「UR>255の場合 UR=255」に変更される。CGとCBを算出する手法は、CRを算出する手法と同様である。
【0070】
続いて、CPU30は、パラメータdとパラメータrangeを算出する(S158)。パラメータdとパラメータrangeは、図13(a)に示される数式に従って算出される。パラメータdは、補正対象の画素の座標値(PR,PG,PB)と対象座標値(OR,OG,OG)との間の距離と、補正対象の画素の座標値(PR,PG,PB)と基準座標値(SR,SG,SB)との間の距離との和である。また、パラメータrangeは、対象座標値(OR,OG,OB)と基準座標値(SR,SG,SB)との間の距離である。
【0071】
次いで、CPU30は、パラメータdとパラメータrangeに基づいて、パラメータwを算出する(S160)。パラメータwは、図13(b)に示される数式に従って算出される。続いて、CPU30は、補正対象の画素の座標値(PR,PG,PB)を、パラメータwと補正量(CR,CG,CB)に基づいて補正する(S162)。これにより、補正後の座標値(MR,MG,MB)が得られる。S162の処理は、図15に示される数式に従って算出される。即ち、CPU30は、パラメータwを補正量(CR,CG,CB)に乗算することによって得られる座標値を、補正対象の画素の座標値(PR,PG,PB)に加算することによって、補正後の座標値(MR,MG,MB)を算出する。
【0072】
CPU30は、S162において補正後座標値(MR,MG,MB)を算出すると、S168に進む。S168では、CPU30は、RGB対象画像データ50内の全ての画素についてS156〜S162の処理が実行されたのか否かを判断する。ここでNOの場合、CPU30は、RGB対象画像データ50内の次の画素を選択し(S170)、S156〜S162の処理を実行する。一方において、S168でYESの場合、補正処理が終了する。この場合、補正済みRGB画像データ56(図2参照)が得られることになる。
【0073】
第1実施例では、図5のS62において補正後の座標値(Mv,Ma,Mb)が算出された後に、座標値(Mv,Ma,Mb)をHSV色空間内の座標値(MH,MS,MV)に変換する処理(S64)と、座標値(MH,MS,MV)をRGB色空間内の座標値(MR,MG,MB)に変換する処理(S66)とが必要とされる。これに対し、本実施例では、図21のS162の処理で得られる座標値(MR,MG,MB)がRGB色空間内の座標値であるために、変換処理が不要である。
【0074】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0075】
(1)上記の第1実施例では、図5のS60で算出されるパラメータwが0である場合には、図4のS52で選択された画素に対して補正が行なわれない。従って、パラメータwが0の場合には、図5のS62とS64をスキップしてもよい。この場合、CPU30は、図4のS52で選択された画素の座標値(PH,PS,PV)を座標値(MH,MS,MV)として、図5のS66の処理を実行してもよい。なお、座標値(PH,PS,PV)に対応するRGB対象画像データ50内の座標値がわかっている場合には、S66をスキップすることもできる。
【0076】
(2)上記の各実施例では、メモリカード18に記憶されている画像データを、補正の対象となるRGB対象画像データ50としている。しかしながら、他の画像データをRGB対象画像データ50としてもよい。例えば、スキャナ部20によって生成される画像データをRGB対象画像データ50としてもよい。また、上記の各実施例では、スキャナ部20によって生成される画像データをRGB基準画像データ60としている。しかしながら、他の画像データをRGB基準画像データ60としてもよい。例えば、メモリカード18に記憶されている画像データをRGB基準画像データ60としてもよい。
【0077】
(3)上記の各実施例では、極座標系の色空間として円柱座標系の色空間(HSV色空間)を採用している。しかしながら、極座標系の色空間として球座標系の色空間を採用してもよい。
【0078】
(4)上記の各実施例では、ユーザによって選択された補正モードに応じて、補正対象の色相の範囲が決定される。しかしながら、補正印刷処理では、1つの補正モードのみが存在していてもよい(即ち補正対象の色相の範囲が固定されていてもよい)。また、補正印刷処理では、複数の補正モード(上記の実施例では3つの補正モード)のそれぞれについて補正処理を順次実行してもよい。この場合、多機能機10は、補正後の複数の画像データを表示し、その中から1つの画像データを選択することをユーザに許容し、ユーザによって選択された画像データに基づいて印刷を実行してもよい。
【0079】
(5)上記の各実施例において、wを利用して補正しなくてもよい。即ち、図15に示される数式において、wを常に1としてもよい。この場合、図11に示される下限値Lvと上限値Uvの間の値のみが補正され、それ以外の値が補正されないことになる(a軸とb軸の場合も同様に補正される)。この変形例では、請求項の周囲の領域は、下限値Lvと上限値Uvの間の領域に対応する。
【0080】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【0081】
【図1】多機能機の構成を示す。
【図2】画像データが補正される様子を簡単に示す。
【図3】補正印刷処理のフローチャートを示す。
【図4】補正処理のフローチャートを示す。
【図5】図4の続きのフローチャートを示す。
【図6】RGBからHSVに変換するための数式を示す。
【図7】HSV色空間を示す。
【図8】補正モードとHSVの範囲との対応関係の一例を示す。
【図9】HSVからvabに変換するための数式を示す。
【図10】補正量を算出するための数式を示す。
【図11】Pvが横軸であり、PvとCvの和が縦軸であるグラフの一例を示す。
【図12】座標値が補正される様子を示す。
【図13】パラメータwを算出するための数式を示す。
【図14】Pvが横軸であり、パラメータwが縦軸であるグラフの一例を示す。
【図15】補正後の座標値(Mv,Ma,Mb)を算出するための数式を示す。
【図16】va平面において補正量が大きいほど白色に近づく様子を示す。
【図17】vabからHSVに変換するための数式を示す。
【図18】HSVからRGBに変換するための数式を示す。
【図19】SH平面を示す。
【図20】HSV色空間を示す。
【図21】第2実施例の補正処理のフローチャートを示す。
【符号の説明】
【0082】
10:多機能機、12:操作部、14:表示部、16:スロット部、18:メモリカード、20:スキャナ部、22:印刷部、24:ネットワークインターフェイス、28:制御部、30:CPU、32:ROM、34:基本プログラム、36:補正プログラム、50 :RGB対象画像データ、52:HSV対象画像データ、56:補正済みRGB画像データ、60:RGB基準画像データ、62:HSV基準画像データ

【特許請求の範囲】
【請求項1】
基準画像データを用いて対象画像データを補正して補正済み画像データを生成する画像処理装置であって、
前記対象画像データ内の特定範囲の色相を有する第1画素群を代表する値であって、極座標系の色空間内の値である第1極座標値を決定する第1決定部と、
前記第1極座標値を直交変換することによって、第1直交座標系の色空間内の値である第1直交座標値を算出する第1算出部と、
前記基準画像データ内の前記特定範囲の色相を有する第2画素群を代表する値であって、前記極座標系の色空間内の値である第2極座標値を決定する第2決定部と、
前記第2極座標値を直交変換することによって、前記第1直交座標系の色空間内の値である第2直交座標値を算出する第2算出部と、
前記対象画像データ内の全ての画素のうち、前記第1直交座標系の色空間内における前記第1直交座標値の周囲の領域に含まれる各画素の座標値を、前記第2直交座標値に近づくように補正することによって、前記対象画像データから前記補正済み画像データを生成する補正部と
を備える画像処理装置。
【請求項2】
前記周囲の領域は、前記第1直交座標値と前記第2直交座標値との双方を含む特定領域である
ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記特定領域は、前記第1直交座標値と前記第2直交座標値とを2つの焦点とする楕円体内の領域である
ことを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記特定範囲が第1範囲の場合に設定される前記周囲の領域のサイズは、前記特定範囲が前記第1範囲と異なる第2範囲の場合に設定される前記周囲の領域のサイズと異なる
ことを特徴とする請求項1から3のいずれかに記載の画像処理装置。
【請求項5】
前記補正部は、前記第1直交座標値と補正対象の画素の前記第1直交座標系の色空間内の座標値との間の第1距離と、前記第2直交座標値と前記補正対象の画素の前記第1直交座標系の色空間内の座標値との間の第2距離と、の和が小さい程、補正量が大きくなるように、前記補正対象の画素の前記第1直交座標系の色空間内の座標値を補正する
ことを特徴とする請求項1から4のいずれかに記載の画像処理装置。
【請求項6】
前記補正部は、
補正対象の画素の前記第1直交座標系の色空間内の座標値が前記第1直交座標値と同じ場合に、前記補正対象の画素の前記第1直交座標系の色空間内の座標値を、前記第1直交座標値と前記第2直交座標値との間の第3直交座標値に補正し、
補正対象の画素の前記第1直交座標系の色空間内の座標値が前記第1直交座標値と前記第2直交座標値との間の第4直交座標値である場合に、前記補正対象の画素の前記第1直交座標系の色空間内の座標値を、前記第3直交座標値と前記第2直交座標値との間の第5直交座標値に補正する
ことを特徴とする請求項1から5のいずれかに記載の画像処理装置。
【請求項7】
前記第1決定部は、前記第1画素群に含まれる各画素の前記極座標系の色空間内の座標値の平均値を算出することによって、前記第1極座標値を決定し、
前記第2決定部は、前記第2画素群に含まれる各画素の前記極座標系の色空間内の座標値の平均値を算出することによって、前記第2極座標値を決定する
ことを特徴とする請求項1から6のいずれかに記載の画像処理装置。
【請求項8】
前記第1直交座標系と異なる第2直交座標系の色空間内の座標値で各画素の値が表わされる特定画像データを、前記極座標系の色空間内の座標値で各画素の値が表わされる前記対象画像データに変換する変換部をさらに備え、
前記補正部は、
(1)前記対象画像データ内の各画素の座標値を、前記第1直交座標系の色空間内の座標値である特定直交座標値に変換し、
(2)前記周囲の領域に含まれる各特定直交座標値を、前記第2直交座標値に近づくように補正し、
(3)補正後の各特定直交座標値を、前記極座標系の色空間内の座標値である特定極座標値に変換し、
(4)各特定極座標値を、前記第2直交座標系の色空間内の座標値である直交座標値に変換する
ことによって、前記第2直交座標系の色空間内の座標値で各画素の値が表わされる前記補正済み画像データを生成する
ことを特徴とする請求項1から7のいずれかに記載の画像処理装置。
【請求項9】
基準画像データを用いて対象画像データを補正して補正済み画像データを生成する画像処理プログラムであって、
前記対象画像データ内の特定範囲の色相を有する第1画素群を代表する値であって、極座標系の色空間内の値である第1極座標値を決定する第1決定処理と、
前記第1極座標値を直交変換することによって、第1直交座標系の色空間内の値である第1直交座標値を算出する第1算出処理と、
前記基準画像データ内の前記特定範囲の色相を有する第2画素群を代表する値であって、前記極座標系の色空間内の値である第2極座標値を決定する第2決定処理と、
前記第2極座標値を直交変換することによって、前記第1直交座標系の色空間内の値である第2直交座標値を算出する第2算出処理と、
前記対象画像データ内の全ての画素のうち、前記第1直交座標系の色空間内における前記第1直交座標値の周囲の領域に含まれる各画素の座標値を、前記第2直交座標値に近づくように補正することによって、前記対象画像データから前記補正済み画像データを生成する補正処理と
をコンピュータに実行させる画像処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図16】
image rotate


【公開番号】特開2010−154008(P2010−154008A)
【公開日】平成22年7月8日(2010.7.8)
【国際特許分類】
【出願番号】特願2008−327426(P2008−327426)
【出願日】平成20年12月24日(2008.12.24)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】