説明

画像処理装置、画像処理方法、およびプログラム

【課題】カラー画像データを画像出力機器の色域に合わせて適切に出力する。
【解決手段】カラー画像を構成する画素を複数の画素集合に分類し、各画素集合の代表色を画像出力機器の色域に合わせて変換する。変換に際しては、各代表色を個別に変換するのではなく、各代表色間の彩度差ができるだけ元の彩度差に保たれるような評価関数を用いて変換する。代表色は数が比較的少ないので、こうした複雑な計算も迅速に実行できる。そして変更された代表色に合わせて、各画素のカラー画像データを変更する。こうすれば、代表色間では、できるだけ元の彩度差が維持されるように変換されるので、ある色相だけ、極端に彩度が伸張されたり、あるいは彩度の逆転が発生したり、更には、全ての色相が同じように高彩度に伸張されてしまうといった問題が生じることなく、適切なカラー画像を出力することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データに基づいてカラー画像を出力(表示あるいは印刷など)する技術に関する。
【背景技術】
【0002】
人間は、彩度の低い色彩(淡い色や、くすんだ色など)から彩度の高い色彩(鮮やかな色)まで、広い範囲の色彩を認識可能である。これに対して、カラー画像データでは、取り扱うことのできる色彩の範囲(色域)が限られており、取り扱うことの可能な彩度の限界が、色相によっては人間の知覚可能な範囲に対して大きく制限されている。
【0003】
一方、カラーモニタやカラープリンタなど、カラー画像を出力可能な画像出力機器についても、機器が再現可能な色彩の範囲(色域)には限界がある。その上、画像出力機器が再現可能な色域と、カラー画像データで取り扱うことのできる色域とは異なっているため、カラー画像データでは取り扱うことが可能な色彩であっても、画像出力機器では再現できない場合も生じ得る。
【0004】
そこで、入力画像データの色域と画像出力機器の色域とを比較して、画像データの色域が広い色相では画像の色域を圧縮し、逆に、画像データの色域が狭い色相では画像の色域を伸張することで、両者の色域の違いを吸収しつつ、画像出力機器の色域をできるだけ広く使うことにより、良好なカラー画像を出力することを狙った技術が提案されている(特許文献1)。
【0005】
【特許文献1】特許第4016234号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかし、提案されている従来の技術では、必ずしも良好なカラー画像を出力することができないという問題があった。これは、例えば入力画像が、ある色相では低彩度の領域しか使われていないような画像であっても、画像出力機器の色域に合わせて彩度が伸張されるので、その色相の彩度が過剰に伸張されてしまうことがあるためである。更には、このような過剰な伸張が行われた結果として、入力画像では、ある色相よりも他の色相の方が鮮やかな色で表現されているにも拘わらず、出力画像では、この関係が逆転する場合も生じ得る。また、このような事態が生じない場合でも、全ての色相で同じように高彩度の領域が使用される結果、メリハリの無い画像になってしまいがちであり、このため、必ずしも良好なカラー画像が得られないという問題があった。
【0007】
この発明は、従来の技術が有する上述した課題を解決するためになされたものであり、カラー画像データが表現する画像の色域と、画像出力機器の色域との違いを吸収して、カラー画像を適切に出力することが可能な技術の提供を目的とする。
【課題を解決するための手段】
【0008】
上述した課題の少なくとも一部を解決するために、本発明の画像処理装置は次の構成を採用した。すなわち、
カラー画像データを受け取ると、画像出力機器が表現可能な色域に合わせて、該カラー画像データを変換する処理を行う画像処理装置であって、
前記カラー画像データに含まれる画素を分類することによって生成された複数の画素集合毎に、該画素集合を代表する色彩である代表色を決定する代表色決定手段と、
複数の前記代表色の所定の色空間内での分布を、初期分布として設定する初期分布設定手段と、
一の前記代表色と他の前記代表色との彩度差が、前記初期分布の状態での彩度差から乖離するほど大きな値となる所定の評価関数を記憶している評価関数記憶手段と、
前記画像出力機器が表現可能な色域を示すデータである機器色域データを取得する機器色域データ取得手段と、
複数の前記代表色の中の特定の代表色の彩度を、前記画像出力機器の色域に合わせて変更した後、各々の代表色間で算出した前記評価関数の値の総和が所定値以下となるように、残余の代表色の彩度を変更する彩度変更手段と、
前記各画素についてのカラー画像データを、変更された前記代表色に従って変換する画像データ変換手段と
を備えることを要旨とする。
【0009】
また、上記の画像処理装置に対応する本発明の画像処理方法は、
カラー画像データを受け取ると、画像出力機器が表現可能な色域に合わせて、該カラー画像データを変換する処理を行う画像処理方法であって、
前記カラー画像データに含まれる画素を分類することによって生成された複数の画素集合毎に、該画素集合を代表する色彩である代表色を決定する代表色決定工程と、
複数の前記代表色の所定の色空間内での分布を、初期分布として設定する初期分布設定工程と、
一の前記代表色と他の前記代表色との彩度差が、前記初期分布の状態での彩度差から乖離するほど大きな値となる所定の評価関数を記憶しておく評価関数記憶工程と、
前記画像出力機器が表現可能な色域を示すデータである機器色域データを取得する機器色域データ取得工程と、
複数の前記代表色の中の特定の代表色の彩度を、前記画像出力機器の色域に合わせて変更した後、各々の代表色間で算出した前記評価関数の値の総和が所定値以下となるように、残余の代表色の彩度を変更する彩度変更工程と、
前記各画素についてのカラー画像データを、変更された前記代表色に従って変換する画像データ変換工程と
を備えることを要旨とする。
【0010】
かかる本発明の画像処理装置および画像処理方法においては、カラー画像データを受け取ると、画素集合毎に代表色を決定し、それら代表色の中の特定代表色の彩度を、画像出力機器の色域に合わせて変更する。そして、各代表色間での評価関数の値を求め、それら評価関数の総和が所定値以下となるように、特定代表色以外の各代表色の彩度を変更する。ここで、評価関数としては、代表色間での彩度差が、初期の状態から変化するほど大きな値となる評価関数を使用する。このため、特定代表色を画像出力機器の色域に合わせて変更した時に、各代表色間の彩度差が初期の状態から大きく変わらないようにしながら、その他の代表色の彩度を変更することができる。そして、こうして変更された代表色に従って、画素集合内の各画素のカラー画像データを変換する。
【0011】
こうすれば、各代表色については、各代表色間での彩度の位置関係を考慮しながら、画像出力機器の色域に合わせて変換することができる。そして、こうして変換された代表色に従って変換することによって、各画素のカラー画像データについても、画像出力機器の色域に合わせて変換することができる。また、代表色間では、互いの彩度の位置関係が考慮されて、できるだけ元の彩度差が維持されるように変換されるので、ある色相だけ、極端に彩度が伸張されたり、あるいは彩度の逆転が発生したり、更には、全ての色相が同じように高彩度に伸張されてしまうといった問題が生じることもない。加えて、画像を構成する多数の画素を、画素集合にまとめて、画素集合毎に代表色を決定しているので、代表色の数は比較的少なくすることができる。このため、代表色については画像出力機器の色域に合わせて迅速に変換することができ、その結果、画素毎のカラー画像データについても迅速に変換することが可能となる。
【0012】
また、かかる本発明の画像処理装置においては、次のようにして生成された画素集合について、代表色を決定することとしても良い。すなわち、カラー画像データが表現する画像を区分して複数の領域を生成し、各領域に含まれる画素を画素集合としてまとめる。そして、このような画素集合毎に、代表色を決定しても良い。
【0013】
このような画素集合は容易に生成することができるので、代表色を迅速に決定することができる。また、領域の大きさを同じ大きさにしておけば、各領域に含まれる画素数も同じにすることができる。その結果、高い頻度で使用されている色彩が存在する場合には、その色彩に近い色彩を有する代表色の個数が多く発生することとなり、色彩の使用頻度を、代表色の数に反映させることができる。そして、代表色を画像出力機器の色域に合わせて変換する際に、代表色の数を考慮しながら変換することで、画像中での色彩の使用頻度を反映させることが可能となり、最終的には、色彩の使用頻度を反映させて、カラー画像データを変換することが可能となる。
【0014】
また、かかる本発明の画像処理装置においては、次のようにして生成された画素集合について、代表色を決定することとしても良い。すなわち、カラー画像データを色空間の座標値に変換して、色空間内での位置関係に基づいて、画素を複数の画素集合にまとめる。そして、こうして生成した画素集合毎に、代表色を決定しても良い。
【0015】
こうすれば、画像中で用いられている色彩に応じて、適切に代表色を決定することができる。そして、適切に決定された代表色を、画像出力機器の色域に合わせて変更し、変更後の代表色に従って変換することで、カラー画像データを適切に変換することが可能となる。
【0016】
また、上述した本発明の画像処理装置においては、代表色の間の色相が異なるほど小さな重みで評価するような評価関数を用いることとしてもよい。
【0017】
こうすれば、色相の近い代表色間では、彩度差を保とうとする作用が強く、逆に色相が遠い代表色間では、彩度差を保とうとする作用が弱い状態で、各代表色の彩度を、画像出力機器の色域に合わせて変更することができる。経験上、カラー画像データを変換したときに、彩度差が大きく変わってしまった場合でも、色相が異なっていれば、色相が近い場合ほどには、違和感を与えないことが知られている。従って、代表色の間の色相が異なるほど小さな重みで評価するような評価関数を用いれば、各代表色の彩度を、色相の違いに応じて、適切に変更することが可能となる。
【0018】
同様に、上述した本発明の画像処理装置においては、代表色の間の明度が異なるほど小さな重みで評価するような評価関数を用いることとしてもよい。
【0019】
こうすれば、明度の近い代表色間では、彩度差を保とうとする作用が強く、逆に、明度が大きく異なる代表色間では、彩度差を保とうとする作用が弱い状態で、各代表色の彩度を、画像出力機器の色域に合わせて変更することができる。経験上、カラー画像データを変換したときに、彩度差が大きく変わってしまった場合でも、明度が大きく異なっていれば、明度が近い場合ほどには、違和感を与えないことが知られている。従って、代表色の間の明度が異なるほど小さな重みで評価するような評価関数を用いれば、各代表色の彩度を、明度の違いに応じて、適切に変更することが可能となる。
【0020】
また、上述した本発明の画像処理装置においては、画素集合に含まれる画素数の多い代表色ほど大きな重みで評価するような評価関数を用いることとしても良い。
【0021】
こうすれば、画像中で使用頻度の高い色彩を、使用頻度の低い色彩よりも高い重みで評価することができるので、使用頻度の高い色彩が適切に出力されるように、カラー画像データを変換することが可能となる。
【0022】
また、上述した本発明の画像処理装置においては、次のようにして代表色を決定しても良い。先ず、画素集合内の画素によって表現されている色彩の範囲を示す色域データを、カラー画像データに付加しておく。そして、このようなカラー画像データを受け取ると、付加されている色域データを読み出して、各画素集合の色域データに基づいて、各代表色を決定するようにしても良い。
【0023】
こうすれば、どのような画素集合であっても、カラー画像データに予め色域データを付加しておくことで、各画素集合の代表色を迅速に決定することが可能となり、最終的には、画像出力機器の色域に合わせて、カラー画像データを迅速に変換することが可能となる。
【0024】
また、上述した本発明の画像処理方法は、コンピュータの機能を用いて実現することも可能である。従って、本発明の画像処理方法は、以下のようなコンピュータプログラムの形態で把握することも可能である。すなわち、本発明のプログラムは、
カラー画像データを受け取ると、画像出力機器が表現可能な色域に合わせて、該カラー画像データを変換する処理を、コンピュータを用いて実現するためのプログラムであって、
前記カラー画像データに含まれる画素を分類することによって生成された複数の画素集合毎に、該画素集合を代表する色彩である代表色を決定する代表色決定機能と、
複数の前記代表色の所定の色空間内での分布を、初期分布として設定する初期分布設定機能と、
一の前記代表色と他の前記代表色との彩度差が、前記初期分布の状態での彩度差から乖離するほど大きな値となる所定の評価関数を記憶しておく評価関数記憶機能と、
前記画像出力機器が表現可能な色域を示すデータである機器色域データを取得する機器色域データ取得機能と、
複数の前記代表色の中の特定の代表色の彩度を、前記画像出力機器の色域に合わせて変更した後、各々の代表色間で算出した前記評価関数の値の総和が所定値以下となるように、残余の代表色の彩度を変更する彩度変更機能と、
前記各画素についてのカラー画像データを、変更された前記代表色に従って変換する画像データ変換機能と
をコンピュータを用いて実現することを要旨とする。
【0025】
こうしたプログラムをコンピュータに読み込んで、上記の各種機能を実現させれば、カラー画像データが表現する画像の色域を、画像出力機器の色域に合わせて適切に変換して、良好なカラー画像を出力することが可能となる。
【発明を実施するための最良の形態】
【0026】
以下では、上述した本願発明の内容を明確にするために、次のような順序に従って実施例を説明する。
A.全体構成:
B.色域マッピング処理:
C.変形例:
C−1.第1の変形例:
C−2.第2の変形例:
【0027】
A.全体構成 :
図1は、本実施例の画像処理装置100が用いられるシステムの全体構成を示した説明図である。画像処理装置100には、CPUやROM、RAMなどが、バスを介して互いにデータをやり取り可能に設けられている。画像処理装置100は、カラー画像を表すカラー画像データを受け取ると、画像を出力する機器(例えばカラーモニタ10や、カラープリンタ20など)にカラー画像データを供給する。もっとも、カラーモニタ10やカラープリンタ20は、それぞれに再現可能な色彩の範囲(機器の色域)が異なっており、また、これらの色域は、カラー画像データが表現可能な色彩の範囲(画像データの色域)とも異なっている。従って、カラー画像データに表現されている色彩によっては、カラーモニタ10やカラープリンタ20などの画像出力機器で再現できない場合が生じ得る。
【0028】
そこで、本実施例の画像処理装置100は、画像出力機器で表現可能な色域(機器の色域)を示すデータを画像出力機器から取得して、機器の色域に合わせて、カラー画像データを変換する。そして、得られたカラー画像データを、カラーモニタ10やカラープリンタ20などの画像出力機器に供給することによって、カラー画像を出力する。ここで、カラー画像データを、機器の色域に合わせて変換するに際しては、先ず、カラー画像データを構成する画素を分類して、複数の画素集合に分類する。次に、それぞれの画素集合を代表する色彩(代表色)を求めて、それぞれの代表色の彩度を、機器の色域に合わせて変換する。このとき、機器の色域と各代表色と関係だけでなく、代表色間の相互の関係も考慮しながら、代表色の彩度を変換する。画像を構成する全画素の色彩を対象とするのではなく、複数の画素集合にまとめて、画素集合の代表色を対象としているので、機器の色域だけでなく代表色間の相互の関係を考慮した場合でも、機器の色域に合わせて迅速に代表色の彩度を変換することができる。こうして、各画素集合についての代表色の彩度を変換したら、画素集合に含まれる各画素についても、同様に彩度が変更されるようにカラー画像データを変換する。
【0029】
本実施例の画像処理装置100では、このようにしてカラー画像データを変換している結果、カラー画像データが表現する画像の色域と、画像出力機器の色域との違いを吸収しながら、常に良好なカラー画像を出力することが可能となっている。以下、本実施例の画像処理装置100が、カラー画像データを変換する処理について説明する。
【0030】
B.色域マッピング処理 :
図2は、本実施例の画像処理装置100が画像出力機器の色域に合わせてカラー画像データを変換する処理(色域マッピング処理)の流れを示したフローチャートである。色域マッピング処理(ステップS10)では、先ず始めに、出力しようとする画像のカラー画像データを読み込む処理を行う(ステップS12)。カラー画像データとしては、種々の形式の画像データを用いることもできるが、ここでは最も広く用いられているRGB画像データ、すなわち画素毎にR成分、G成分、B成分の階調値が記述された画像データであるものとして説明する。
【0031】
カラー画像データを読み込んだら、代表色を抽出する処理を開始する(ステップS100)。ここで代表色とは、次のようなものである。先ず、カラー画像データは、画像を小さな複数の画素に細分して、各画素の色を三つの成分(RGB画像データであれば、R成分、G成分、B成分)を用いて表現したものである。本実施例の色マッピング処理では、これら画像をそのまま扱うのではなく、画素を分類して複数の画素集合を生成し、これら画素集合が集まったものとして画像を取り扱う。この画素集合を代表する色が、代表色である。
【0032】
尚、画素を分類するに際しては、種々の分類の方法を適用することができる。例えば、最も単純には、画像を複数の領域に区分して、各領域を構成する画像を画素集合としてまとめることができる。あるいは、画像が複数のレイヤーによって構成されているのであれば、各レイヤーを画素集合として用いることができる。更には、画像を解析して物体を抽出し、各物体を構成する画素を画素集合としてまとめても良い。ここでは理解の便宜を図るために、最も単純な場合、すなわち、画像を複数の領域に区分して、各領域を画素集合とする場合について説明する。
【0033】
図3は、本実施例の色マッピング処理中で代表色を抽出する処理の流れを示すフローチャートである。代表色抽出処理(ステップS100)を開始すると、先ず始めに、対象とする画素集合を1つ選択する(ステップS102)。図4には、画像を複数の領域に区分することによって画素集合が生成されている様子が示されている。ステップS102では、これら複数の領域の中から1つの領域を、代表色を抽出する対象の画素集合として選択する。
【0034】
続いて、選択した画素集合内での画像データの平均値を算出する(ステップS104)。すなわち、画素集合内に含まれる各画素の画像データを、成分毎に平均することによって、画素集合を代表する画像データを算出するのである。こうして画素集合の画像データの平均値を算出したら、その平均値を、画素集合の代表色として設定する(ステップS106)。
【0035】
尚、ここでは、画素集合内の画像データの平均値を代表色として用いるものとして説明するが、平均値に限らず、種々の値を代表色として採用することができる。例えば、画素集合内の画像データの中で、最も彩度の高い画像データを代表色として用いることができる。あるいは、次のようにしても良い。先ず、画素集合内の各画素によって表現されている色彩の分布(すなわち、画素集合の色域)を検出する。次に、画素集合内での平均の色相(画像データの平均値の色相)を求め、平均の色相での最大彩度の画像データを代表色として用いることができる。
【0036】
また、画素集合の色域は、画像処理装置100が画像データを解析することによって抽出するのではなく、画素集合毎の色域のデータを、カラー画像データに予め付加しておき、付加された色域を読み出すことによって、画素集合の代表色を抽出することとしても良い。更に、このように、付加されている色域のデータを用いて代表色を決定する場合には、色域の中心の色彩を表す画像データを代表色として用いても良いし、あるいは色域の中心の色相での最大彩度の画像データを代表色として用いることとしても良い。図5には、画素集合の代表色を決定するための種々の方法がまとめて示されている。
【0037】
以上のようにして、1つの画素集合についての代表色を決定したら(図3のステップS106)、画像中の全ての画素集合について、代表色を決定したか否かを判断する(ステップS108)。そして、未だ代表色を決定していない画素集合が残っている場合は(ステップS108:no)、処理の先頭に戻って新たな画素集合を1つ選択し(ステップS102)、選択した画素集合について、続く一連の処理を行う。こうした操作を繰り返して、全ての画素集合について代表色を決定したと判断されたら(ステップS108:yes)、図3に示す代表色抽出処理を終了して、図2の色マッピング処理に復帰する。
【0038】
図2に示されているように、本実施例の色マッピング処理では、各画素集合についての代表色を抽出すると(ステップS100)、今度は、カラー画像を出力しようとしている画像出力機器の色域に関するデータを取得する(ステップS14)。
【0039】
図6は、画像出力機器の色域を例示した説明図である。機器の色域は、任意の色空間(ここでは、Luv色空間とする)内で表示可能な色彩の最外郭点を連ねたものとして表現することができる。より簡単には、代表的な色相での最外郭点を求めておき、これらを結ぶことによって表現することもできる。このような色域のデータは、画像出力機器毎に予め求めておく。図2のステップS14では、画像出力機器と通信を行って、予め記憶されている色域のデータを画像出力機器から取得する処理を行う。もちろん、機器毎の色域のデータを画像処理装置100の内部に記憶しておき、画像出力機器に応じて、記憶されているデータを読み出すようにしても良い。
【0040】
こうして各画素集合についての代表色と、機器の色域とを取得したら、今度は、機器の色域に合わせて代表色を変換する処理を行う(ステップS200)。図7は、画素集合毎に得られた代表色を、画像出力機器の色域に合わせて変換する代表色変換処理の流れを示したフローチャートである。代表色変換処理では、先ず始めに、各代表色を画像出力機器の色域に合わせて正規化する(ステップS202)。
【0041】
図8は、画素集合毎に得られた代表色を画像出力機器の色域に合わせて正規化する様子を示す説明図である。図8(a)には、正規化する前の状態、すなわち、画像出力機器の色域と、各代表色との位置関係が示されている。図中では、代表色は白丸で示されており、画像出力機器の色域は実線の多角形で示されている。正規化は次のようにして行う。例えば、ある代表色に着目すると、その代表色の彩度Cmは、Luv色空間内でのL軸からの距離(uv平面で表せば、原点からの距離)となる。また、その代表色の色相は、uv平面で表すとu軸からの角度θmとなる。そこで、同じ色相θmで、画像出力機器が表現可能な最大彩度Cm_maxを求め、代表色の彩度Cmを、機器の最大彩度Cm_maxで除算することにより、正規化した彩度cmを算出する。図8(b)には、このような操作を全ての代表色について行った結果が示されている。正規化を行うと、画像出力機器の色域は、半径が1.0の円によって表され、代表色は、画像出力機器の色域に対する相対値として表されることになる。尚、以下では、正規化していない彩度は大文字のCを用いて表し、正規化した彩度は小文字のcを用いて表すものとする。
【0042】
こうして得られた正規化後の代表色に、無彩色の代表色を追加する(ステップS204)。図8(b)には、追加された無彩色の代表色c0が、星印によって表されている。そして、追加した代表色を含めて各代表色の間の彩度差を算出した後、それらを初期分布として記憶する(ステップS206)。すなわち、正規化した代表色の中から2つの代表色を選択した全ての組合せに対して彩度差を算出し、それらを記憶しておくのである。
【0043】
次に、正規化した彩度が最大となる代表色(特定代表色)を選択する(ステップS208)。通常、最大彩度の代表色は1つであることが多いが、たまたま最大彩度の代表色が複数存在する場合は、その中から1つを特定代表色として選択しても良いし、それら全てを特定代表色として選択しても良い。図8(b)に示した例では、彩度cmの代表色が特定代表色として選択される。
【0044】
こうして特定代表色を選択したら、今度は、特定代表色の彩度を、画像出力機器の色域に合わせて変更する(ステップS210)。上述したように、各代表色の彩度は、画像出力機器の彩度に合わせて予め正規化されているから、特定代表色の彩度を、1.0よりも小さな一定値(例えば、0.9など)に変更するだけでよい。
【0045】
尚、1.0ではなく、1.0よりも小さな値に変更するのは次のような理由による。図3を用いて前述したように、ここでは画素集合内の画像データの平均値を、その画素集合の代表色としている。従って、画素集合の中には、代表色よりも高彩度の画像データを有する画素も存在していると考えられる。このことから、特定代表色の彩度を1.0に変更したのでは、特定代表色に対応する画素集合の中の一部の画素が、画像出力機器の色域からはみ出してしまうと考えられる。そこで、このような画素も画像出力機器の色域内に収まるように、特定代表色の彩度を1.0よりも小さな値に変更するのである。このことから、画素集合内の画像データの平均値を代表色とするのではなく、図5に示したように、画素集合内の最大彩度の色彩を代表色として採用した場合には、図7のステップS210において、特定代表色の彩度を1.0に変更するようにしてもよい。
【0046】
次に、特定代表色の彩度を変更したことに合わせて、その他の代表色の彩度を変更する処理を行う(ステップS212)。その他の代表色の彩度を変更するに際しては、予め設定しておいた評価関数を用いて行う。ここで、評価関数は次のような性質を有するように設定されている。
(性質1)2つの代表色の間の彩度差が初期値から変化するほど、大きな値となる。ここで、彩度差の変化は、彩度差が増加する場合と減少する場合とを区別することなく取り扱うものとする。
(性質2)2つの代表色の間の彩度差が初期値と同じ場合は、値が0となる。
これら2つの性質を有する関数は多数存在しており、何れも評価関数として用いることができる。評価関数の具体例については後ほど説明するが、ここでは理解の便宜を図るため、ひとまず評価関数が与えられたものとして、評価関数を用いて代表色の彩度を変更する処理の概要について説明する。
【0047】
図9は、画像出力機器の色域に合わせて特定代表色の彩度を変更した後、その他の代表色の彩度を変更する様子を示した説明図である。図9では、代表色の色相に対応する角度を横軸に取り、代表色の正規化した彩度を縦軸に取って表している。彩度を正規化している関係上、画像出力機器の色域は彩度1.0となる。
【0048】
図9(a)は、画像出力機器の色域に対して正規化した各代表色の分布(初期分布)を表している。また、図9(b)は、画像出力機器の色域に合わせて、特定代表色の彩度を変更した状態を表している。図示した例では、特定代表色の彩度を変更すると、特定代表色の彩度が他の代表色の彩度に近付くので、特定代表色と他の代表色との間の彩度差が、初期分布の状態よりも小さくなる。従って、特定代表色と他の代表色との間では、評価関数の値が増加する。そこで、変更後の特定代表色および無彩色の代表色を固定した状態で、評価関数の値ができるだけ小さな値となるように、他の代表色の彩度を変更する。図9(b)に示した状態では、特定代表色の彩度が小さくなったために、他の代表色との間で評価関数の値が増加したのであるから、他の代表色(無彩色の代表色は除く)の彩度を小さくすれば、評価関数の値を減少させることができる。図9(b)には、特定代表色の彩度を小さくした結果、他の代表色の彩度を小さくする方向に変更する様子が、矢印によって概念的に示されている。言わば、特定代表色の彩度を小さくすることで、他の代表色には、矢印で示されるような力が作用するものと考えることもできる。
【0049】
一方、無彩色の代表色は動かさないとしているから、図9(b)に示したように、他の代表色の彩度を小さくすると、今度は、無彩色の代表色との間の彩度差が、初期分布の状態よりも小さくなる。従って、特定代表色との彩度差を確保するために、他の代表色の彩度を小さくしようとしても、無彩色の代表色との関係では、この動きを押し止める方向の力を受けることになる。図9(c)には、他の代表色が、無彩色の代表色から受ける力が、矢印によって表されている。
【0050】
以上では、特定代表色の彩度を変更したときに、特定代表色と他の代表色との間の評価関数に基づいて他の代表色に働く力(図9(b)参照)、および、無彩色の代表色との間の評価関数に基づいて他の代表色に働く力(図9(c)参照)について説明した。もちろん、他の代表色同士の間でも評価関数を算出することができ、それら代表色の間にも、評価関数の値が小さくなるように働く力を想定することができる。そして、各代表色の彩度を、全ての代表色間での評価関数の総和が最も小さくなるような彩度に決定してやれば、各代表色の彩度を、画像出力機器の色域に合わせて、適切に変更することができるものと考えられる。
【0051】
以上が、評価関数を用いて、各代表色の彩度を画像出力機器の色域に合わせて変更する基本的な考え方である。実際には、この考え方を発展させて、例えば代表色間の色相が離れるほど、評価関数の値が小さくなるような重みを付けておくことが望ましい。同様に、代表色間の明度が異なるほど、評価関数の値が小さくなるような重みを付けておくことが望ましい。
【0052】
図10は、代表色変換処理の中で用いられる評価関数の一例を示した説明図である。図10(a)は、評価関数の総和SFを求めるための計算式が示されており、図10(b)には評価関数Fの具体例が、図10(c)には評価関数にかける重み係数Wの具体例が示されている。先ず、図10(a)に示した計算式について説明する。図10(a)に示したFijは、i番目の代表色とj番目の代表色との間の評価関数を示している。また、Wijは、i番目の代表色とj番目の代表色との間の重み係数を示している。また、「ci」はi番目の代表色についての正規化した彩度を示しており、「c’i」は、変更後のその代表色の正規化した彩度を示している。更に、「Li」はi番目の代表色の明度を表しており、「θi」はi番目の代表色の色相を表している。
【0053】
図10(a)の計算式では、i番目の代表色に着目して、その代表色と全ての代表色との間で、評価関数Fに重み係数Wを乗算した値を求める。この操作を、特定代表色および無彩色の代表色を除く全ての代表色について行い、こうして得られた値の総和を表している。図10(a)の計算式で、変数jは0〜Nとなっているのに対して、変数iは1〜(N−1)となっているのは、特定代表色および無彩色の代表色を除いていることに対応したものである。
【0054】
評価関数Fとしては、例えば図10(b)に示した関数を用いることができる。図示した関数は、前述した2つの性質、すなわち(性質1)「2つの代表色の間の彩度差が初期値から変化するほど、大きな値となる」という性質および、(性質2)「2つの代表色の間の彩度差が初期値と同じ場合は、値が0となる」という性質を満たしており、評価関数として用いることができる。また、重み係数Wとしては、例えば図10(c)に示した関数を用いることができる。このような重み係数Wを用いれば、代表色間の明度が異なるほど、重み係数の値も小さくなる。特に、代表色の色相の角度差がπの時には、重み係数の値は0となる。補色の関係にある代表色の間では彩度差が考慮されないことになって、互いに影響を与えることなく彩度を変更することが可能となる。
【0055】
最も単純な評価関数としては、上述した(性質1)および(性質2)のみを満足する関数を用いることができる。しかし、実際の処理の都合からは、彩度差が増加する場合と減少する場合とを区別した上で、更に次のような性質を有する関数を用いることが望ましい。
(性質3)2つの代表色の間の彩度差が、初期値から増加した場合と減少した場合とで、符号が逆になる。
そして、このような関数を二乗した関数、もしくは絶対値を取った関数を、評価関数として用いることができる。図7に示した代表色変換処理では、このような評価関数を用いて代表色を変換している。
【0056】
図11は、本実施例の代表色変換処理で用いられる評価関数を例示した説明図である。図11(a)あるいは図11(b)に示した例では、変更後の彩度差(c’j−c’i)が、初期分布の状態での彩度差(cj−ci)よりも小さくなると、符号が負になるような関数となっている。そして、これら関数の何れかを二乗した関数を評価関数として使用する。もちろん、二乗する代わりに、これら何れかの関数の絶対値を評価関数として用いても良い。
【0057】
図7に示した代表色変換処理のステップS212では、特定代表色の彩度を画像出力機器の色域に合わせて変更した後(ステップS210)、変更後の各代表色間で、図11(c)に示した計算式に従って、評価関数の総和を算出する。続いて、算出した総和の値が所定の閾値より小さいか否かを判断する(ステップS214)。そして、総和の値が所定の閾値よりも大きかった場合は(ステップS214:no)、各代表色の彩度を修正する(ステップS216)。
【0058】
ここで、図11(a)または図11(b)に示した関数を二乗値、あるいは絶対値を評価関数として用いた場合には、各代表点の彩度を適切に修正することができる。すなわち、図11(a)または図11(b)に示した関数は、2つの代表色間の彩度差が、初期分布の彩度差よりも大きくなった場合には正の値となり、逆に、初期分布の彩度差よりも小さくなった場合には負の値となる。そこで、ある代表色に着目して、その代表色と他の全ての代表色についての関数値の総和を算出する。そして、関数値の総和が正であれば、その代表色については彩度を小さくする方向に修正し、逆に、関数値の総和が負であれば、彩度を大きくする方向に修正する。また、修正量は、関数値の総和に比例した値とすればよい。図7のステップS216では、固定されている代表色(特定代表色および無彩色の代表色)を除いた全ての代表色について、このようにして算出した修正量に従って、彩度を修正する処理を行う。
【0059】
尚、図11(b)に例示した関数を用いた場合、2つの代表点の間の彩度差が0に近付くと、関数値が急に大きくなり、彩度差0では、負の無限大に発散する。従って、このような関数を用いると、代表色間での彩度の関係が初期分布の状態から逆転しそうになると、逆転を阻止する方向に、非常に大きな力が作用することになる。このため、図11(b)に例示した関数を用いることで、代表色間の彩度の逆転が起きないように、代表色を変更することができる。これに対して、図11(a)に例示した関数を用いた場合には、場合によっては、代表色間の彩度の逆転を許容しながら、代表色を変更することが可能となる。
【0060】
以上のようにして代表色の彩度を修正したら、修正後の代表色の分布について、再び各代表色間での評価関数の総和を算出し(ステップS212)、新たに算出した総和の値が所定の閾値以下か否かを判断する(ステップS214)。そして、総和の値が閾値よりも大きかった場合には(ステップS214:no)、再び、各代表色の彩度を修正した後(ステップS216)、新たな代表色の分布で、各代表色間での評価関数の総和を算出する。このような操作を繰り返すことによって、評価関数の総和が次第に小さくなり、やがて、閾値の値よりも小さいと判断される(ステップS214:yes)。そこで、得られた各代表色の彩度(正規化した彩度)を記憶した後(ステップS218)、図7の代表色変換処理を終了して、図2の色マッピング処理に復帰する。
【0061】
尚、以上の説明では、評価関数の総和が閾値より小さくなった時点で(図7のステップS214:yes)、繰り返し計算を打ち切って、各代表色の彩度を記憶するものとして説明した。しかし、代表値の分布状態や評価関数の設定によっては、総和が最小値になっても、閾値より大きな値となる場合も起こり得る。このような場合は、総和が最小値になったことを検出して、あるいは総和の変化量が所定値以下となったことを検出して、繰り返し計算を打ち切ることとしても良い。
【0062】
以上のようにして、各画素集合について得られた代表色を、画像出力機器の色域に合わせて変更したら、今度は、画素集合内の各画素の画像データを変換する処理を開始する(図2のステップS300)。
【0063】
図12は、画素集合内の各画素の画像データを変換する処理の流れを示したフローチャートである。各画素の画像データを変換するための画像データ変換処理(ステップS300)を開始すると、先ず始めに、変換しようとする画像(変換画素)を1つ選択する(ステップS302)。そして、変換画素が含まれる画素集合を検出する(ステップS304)。ここでは、図4に示したように、画像を複数の領域に区分して、それぞれの領域を画素集合としているから、ステップS304では、変換画素が含まれる領域を検出する。
【0064】
また、前述したように、それぞれの画素集合(ここでは領域)には代表色が求められており、各代表色は、画像出力機器の色域に合わせて変換されて、機器の色域に対して正規化された状態で記憶されている。そこで、変換画素が含まれる領域を検出したら、その領域についての変換後の代表色の正規化した彩度を取得する(ステップS306)。
【0065】
続いて、変換画素の画像データをLuv色空間内の座標値に変換する(ステップS308)。ここでは、画像データはRGB画像データであり、RGB画像データからLuv色空間内の座標値へは、周知の変換式を用いて直ちに変換することができる。そして、正規化した彩度に従って、変換画素のLuv座標値を変換した後(ステップS310)、変換したLuv座標値を、再びRGB画像データに変換する(ステップS312)。こうすることによって、変換画素の画像データを、画像出力機器の色域に合わせて色マッピング処理が施された画像データに変換することができる。
【0066】
図13は、変換した代表色の正規化した彩度に基づいて、変換画素の画像データを変換する様子を示した説明図である。図示されるように、変換画素のRGB画像データを、Luv座標値に変換する。これら座標値の中で彩度に関係するのは、u成分およびv成分であるから、これらの成分に正規化した彩度c’を乗算することによって、Luv座標値を変換する。その後、得られたLuv座標値をRGB画像データに変換し直すことによって、変換した画像データを得ることができる。
【0067】
こうして、変換画素について、変換後の画像データが得られたら、画像に含まれる全ての画素について、画像データを変換したか否かを判断する(ステップS314)。そして、未だ画像データを変換していない画素が存在している場合は(ステップS314:no)、処理の先頭に戻って、新たな変換画素を選択した後(ステップS302)、選択した変換画素について、上述した一連の処理を行う。このような操作を繰り返して、全ての画素について画像データを変換したと判断されたら(ステップS314:yes)、図12に示す画像データ変換処理を終了し、図2の色マッピング処理に復帰する。
【0068】
以上に説明した本実施例の色マッピング処理では、カラー画像データに表現されている色彩を、画像出力機器の色域に合わせて変換する際に、画像を複数の画素集合にまとめて代表色を抽出し、代表色間の彩度差ができるだけ変わらないようにしながら、カラー画像データを変換している。このため、画像出力機器の色域を広く使用しながらも、良好なカラー画像を出力することが可能となる。すなわち、代表色間の彩度差ができるだけ維持されるように変換されるので、ある色相の彩度が他の色相の彩度に較べて過剰に伸張されたり、逆に過剰に圧縮されるといったことを回避することができる。また、色相間で彩度が逆転してしまったり、更には、全ての色相で同じように高彩度の領域が使用されるように彩度が伸張されて、メリハリの無い画像になってしまうといったことを回避して、良好なカラー画像を出力することが可能となる。
【0069】
また、画像を複数の画素集合にまとめて、各画素集合についての代表色を、画像出力機器の色域に合わせて変換しているので、代表色の数を比較的少なく抑えることができる。このため、代表色を画像出力機器の色域に合わせて変換する際に、各代表色間での彩度差を考慮しながら変換したとしても、機器の色域に合わせて迅速に変換することができる。このため、カラー画像データが表現する画像の色域と、画像出力機器の色域との違いを吸収しながら、良好なカラー画像を迅速に出力することが可能となる。
【0070】
C.変形例 :
上述した本実施例の色マッピング処理には幾つかの変形例が存在している。以下では、これら変形例について簡単に説明する。
【0071】
C−1.第1の変形例 :
上述した実施例では、変換画素のカラー画像データを変換する際に、変換画素が含まれる画素集合を検出して、その画素集合について記憶されている変換後の代表色の正規化した彩度c’を用いて、カラー画像データを変換するものとした。この方法は、単純であり、従って迅速にカラー画像データを変換することができる。しかし、画質を向上させる観点からは、変換画素が含まれる画素集合について得られた変換後の彩度c’をそのまま用いるのではなく、次のようにして求めた彩度C’を用いて、カラー画像データを変換しても良い。
【0072】
図14は、第1の変形例において、変換画素のカラー画像データを変換するための彩度c’を算出する様子を示した説明図である。図中に示した白丸は、変換後の代表色の分布を示している。また、図中に示した×印は、変換画像のカラー画像データを示している。尚、代表色および変換画素のカラー画像データは、画像出力機器に合わせて正規化した値を用いても良いし、正規化前の値を用いても良い。
【0073】
変換画素のカラー画像データを変換するに際しては、図14中に×印で示した変換画素の座標点の周囲にある代表色を検出し、それら代表色について得られている変換後の彩度c’から補間することによって、変換画素の座標値での正規化した彩度c’を算出する。そして、こうして求めた正規化後の彩度c’を用いて、前述したようにして、変換画素のカラー画像データを変換するようにしても良い。
【0074】
こうすれば、代表色の彩度の変更に合わせて、変換画素の彩度を適切に伸張あるいは圧縮して、カラー画像データを変換することができるので、良好なカラー画像を出力することが可能となる。
【0075】
C−2.第2の変形例 :
上述した実施例では、図4に例示したように、画像を複数の領域に分割して、各領域に含まれる画素を、画素集合としてまとめるものとして説明した。しかし、画素集合は、このような態様に限らず、種々の画素集合を生成することが可能である。例えば、画像中に含まれる画素を、画素の画像データが表す色によって分類し、色のまとまり毎に画素集合を生成しても良い。
【0076】
図15は、第2の変形例において、画素の画像データが表す色のまとまりによって、画素集合を生成している様子を示した説明図である。例えば、画像中の全ての画素について、カラー画像データをLuv色空間の座標値に変換すると、似た色同士は、近い座標点に変換されるから、画像に含まれる画素を、色のまとまりとして、幾つかのグループ(すなわち画素集合)に分類することが可能である。図15に示した例では、画素集合1ないし画素集合5の5つのグループに分類された様子を表している。
【0077】
そして、画素毎に、対応する画素集合を予め記憶しておき、画素集合の代表色を決定するにあたっては、該当する画素集合の画素を抽出して、それら画素についての代表色を決定するようにしても良い。
【0078】
また、各画素の画素集合を記憶しておくだけでなく、図15に示す画素集合毎に、予め色域を求めておき、それら色域を表すデータを、画像データに添付しておいても良い。
【0079】
図16は、画素集合毎に色域を示すデータが記憶されている様子を示した説明図である。このように画素集合毎の色域が分かっていれば、各色域の中心の色を、代表色として用いるようにしても良い。更には、各画素集合に含まれる画素数も、画素集合毎に記憶しておき、画素集合に含まれる画素数も考慮して、評価関数を算出するようにしても良い。図17には、画素集合に含まれる画素数を考慮して評価関数を算出する計算式が例示されている。図17中に示したniは、i番目の画素集合に含まれる画素数を表している。このようにして画素数も考慮してやれば、画像中で頻繁に使用されている色と、希にしか使用されていない色との違いも考慮して、頻繁に使用されている色が適切な色で出力されるように、カラー画像データを変換することが可能となる。
【0080】
以上、本実施例の画像処理装置について説明したが、本発明は上記すべての実施例に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することが可能である。
【図面の簡単な説明】
【0081】
【図1】本実施例の画像処理装置が用いられるシステムの全体構成を示した説明図である。
【図2】本実施例の画像処理装置が画像出力機器の色域に合わせてカラー画像データを変換する色域マッピング処理の流れを示したフローチャートである。
【図3】本実施例の色マッピング処理中で代表色を抽出する処理の流れを示すフローチャートである。
【図4】画像を複数の領域に区分することによって画素集合が生成される様子を示した説明図である。
【図5】画素集合の代表色を決定するための種々の方法をまとめて示した説明図である。
【図6】画像出力機器の色域を例示した説明図である。
【図7】画素集合毎に得られた代表色を画像出力機器の色域に合わせて変換する代表色変換処理の流れを示したフローチャートである。
【図8】画素集合毎に得られた代表色を画像出力機器の色域に合わせて正規化する様子を示す説明図である。
【図9】画像出力機器の色域に合わせて特定代表色の彩度を変更した後に、その他の代表色の彩度を変更する様子を示した説明図である。
【図10】最も単純な評価関数を例示した説明図である。
【図11】本実施例で用いられる評価関数を例示した説明図である。
【図12】画素集合内の各画素の画像データを変換する処理の流れを示したフローチャートである。
【図13】変換した代表色の正規化した彩度に基づいて変換画素の画像データを変換する様子を示した説明図である。
【図14】第1の変形例において変換画素のカラー画像データを変換するための彩度を算出する様子を示した説明図である。
【図15】第2の変形例において画素の画像データが表す色のまとまりによって画素集合を生成する様子を示した説明図である。
【図16】画素集合毎に色域を示すデータが記憶されている様子を示した説明図である。
【図17】画素集合に含まれる画素数を考慮して評価関数を算出する計算式を例示した説明図である。
【符号の説明】
【0082】
10…カラーモニタ、 20…カラープリンタ、 100…画像処理装置

【特許請求の範囲】
【請求項1】
カラー画像データを受け取ると、画像出力機器が表現可能な色域に合わせて、該カラー画像データを変換する処理を行う画像処理装置であって、
前記カラー画像データに含まれる画素を分類することによって生成された複数の画素集合毎に、該画素集合を代表する色彩である代表色を決定する代表色決定手段と、
複数の前記代表色の所定の色空間内での分布を、初期分布として設定する初期分布設定手段と、
一の前記代表色と他の前記代表色との彩度差が、前記初期分布の状態での彩度差から乖離するほど大きな値となる所定の評価関数を記憶している評価関数記憶手段と、
前記画像出力機器が表現可能な色域を示すデータである機器色域データを取得する機器色域データ取得手段と、
複数の前記代表色の中の特定の代表色の彩度を、前記画像出力機器の色域に合わせて変更した後、各々の代表色間で算出した前記評価関数の値の総和が所定値以下となるように、残余の代表色の彩度を変更する彩度変更手段と、
前記各画素についてのカラー画像データを、変更された前記代表色に従って変換する画像データ変換手段と
を備える画像処理装置。
【請求項2】
請求項1に記載の画像処理装置であって、
前記代表色決定手段は、前記カラー画像データが表現する画像が区分された複数の領域毎に、該領域を前記画素集合として、前記代表色を決定する手段である画像処理装置。
【請求項3】
請求項1に記載の画像処理装置であって、
前記代表色決定手段は、前記カラー画像データを色空間の座標値に変換した時の、該色空間内での位置関係に基づいて生成された前記画素集合毎に、前記代表色を決定する手段である画像処理装置。
【請求項4】
請求項1ないし請求項3の何れか一項に記載の画像処理装置であって、
前記評価関数記憶手段は、前記代表色の間の色相が異なるほど小さな重みで評価する前記評価関数を記憶している手段である画像処理装置。
【請求項5】
請求項1ないし請求項4の何れか一項に記載の画像処理装置であって、
前記評価関数記憶手段は、前記代表色の間の明度が異なるほど小さな重みで評価する前記評価関数を記憶している手段である画像処理装置。
【請求項6】
請求項1ないし請求項5の何れか一項に記載の画像処理装置であって、
前記評価関数記憶手段は、前記画素集合に含まれる画素数の多い前記代表色ほど大きな重みで評価する前記評価関数を記憶している手段である画像処理装置。
【請求項7】
請求項1ないし請求項6の何れか一項に記載の画像処理装置であって、
前記画素集合内の画素によって表現されている色彩の範囲を示す色域データを、前記カラー画像データから読み出す色域データ読出手段を備え、
前記代表色決定手段は、前記画素集合毎に読み出された前記色域データに基づいて、各画素集合についての前記代表色を決定する手段である画像処理装置。
【請求項8】
カラー画像データを受け取ると、画像出力機器が表現可能な色域に合わせて、該カラー画像データを変換する処理を行う画像処理方法であって、
前記カラー画像データに含まれる画素を分類することによって生成された複数の画素集合毎に、該画素集合を代表する色彩である代表色を決定する代表色決定工程と、
複数の前記代表色の所定の色空間内での分布を、初期分布として設定する初期分布設定工程と、
一の前記代表色と他の前記代表色との彩度差が、前記初期分布の状態での彩度差から乖離するほど大きな値となる所定の評価関数を記憶しておく評価関数記憶工程と、
前記画像出力機器が表現可能な色域を示すデータである機器色域データを取得する機器色域データ取得工程と、
複数の前記代表色の中の特定の代表色の彩度を、前記画像出力機器の色域に合わせて変更した後、各々の代表色間で算出した前記評価関数の値の総和が所定値以下となるように、残余の代表色の彩度を変更する彩度変更工程と、
前記各画素についてのカラー画像データを、変更された前記代表色に従って変換する画像データ変換工程と
を備える画像処理方法。
【請求項9】
カラー画像データを受け取ると、画像出力機器が表現可能な色域に合わせて、該カラー画像データを変換する処理を、コンピュータを用いて実現するためのプログラムであって、
前記カラー画像データに含まれる画素を分類することによって生成された複数の画素集合毎に、該画素集合を代表する色彩である代表色を決定する代表色決定機能と、
複数の前記代表色の所定の色空間内での分布を、初期分布として設定する初期分布設定機能と、
一の前記代表色と他の前記代表色との彩度差が、前記初期分布の状態での彩度差から乖離するほど大きな値となる所定の評価関数を記憶しておく評価関数記憶機能と、
前記画像出力機器が表現可能な色域を示すデータである機器色域データを取得する機器色域データ取得機能と、
複数の前記代表色の中の特定の代表色の彩度を、前記画像出力機器の色域に合わせて変更した後、各々の代表色間で算出した前記評価関数の値の総和が所定値以下となるように、残余の代表色の彩度を変更する彩度変更機能と、
前記各画素についてのカラー画像データを、変更された前記代表色に従って変換する画像データ変換機能と
をコンピュータを用いて実現させるプログラム。

【図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

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2009−239418(P2009−239418A)
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【出願番号】特願2008−79961(P2008−79961)
【出願日】平成20年3月26日(2008.3.26)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】