(57)【特許請求の範囲】
【請求項１】
出力デバイスが出力する画像を観察する際の光源情報を含む観察条件、並びに、入力デバイスの入力色域を示す情報および前記出力デバイスの出力色域を示す情報を入力し、
前記入力色域を示す情報および前記出力色域を示す情報に対応するテーブルから、特定色の色値と前記観察条件に対応する前記特定色の知覚色空間における目標値を取得し、
前記特定色の色値を前記目標値に変換する色処理係数を設定し、
前記色処理係数を用いて、前記入力デバイスから入力した画像データを色処理し、
前記色処理した画像データを前記出力デバイスに出力することを特徴とする色処理方法。
【請求項２】
前記光源情報は、前記出力デバイスが出力する画像を観察する際の光源の光源名、または、前記光源の光源名と照度の組み合わせを示す情報を含むことを特徴とする請求項1に記載された色処理方法。
【請求項３】
前記色処理係数は、前記色処理係数を用いて前記特定色の色値を前記色処理し、前記色処理の結果に対応する前記出力色域における前記知覚色空間の値を算出し、当該値と前記目標値の距離が予め定めた値未満になるように設定することを特徴とする請求項１または請求項２に記載された色処理方法。
【請求項４】
前記目標値の取得を、前記特定色の数分、繰り返すことを特徴とする請求項１から請求項３の何れか一項に記載された色処理方法。
【請求項５】
出力デバイスが出力する画像を観察する際の光源情報を含む観察条件、並びに、入力デバイスの入力色域を示す情報および前記出力デバイスの出力色域を示す情報を入力する入力手段と、
前記入力色域を示す情報に対応するテーブルおよび前記出力色域を示す情報に対応するテーブルから、特定色の色値と前記観察条件に対応する前記特定色の知覚色空間における目標値を取得する取得手段と、
前記特定色の色値を前記目標値に変換する色処理係数を設定する設定手段と、
前記色処理係数を用いて、前記入力デバイスから入力した画像データを色処理する処理手段と、
前記色処理した画像データを前記出力デバイスに出力する出力手段とを有することを特徴とする色処理装置。
【請求項６】
画像処理装置を制御して、請求項１から請求項４の何れか一項に記載された色処理を実現することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、観察環境に応じた色処理に関する。
【背景技術】
【０００２】
近年、ディジタルカメラやスキャナで取得した画像をプリンタで印刷する機会が増えた。一般に、ディジタルカメラやスキャナが出力する画像データの色空間はsRGBやAdobeRGBなどである。
【０００３】
図1はsRGBおよびAdobeRGBの色域を示すxy色度図である。図1に示す三角形の領域RsはsRGBの、Rsを包含する三角形の領域RaはAdobeRGBの、馬蹄形の領域Rvは人間の可視範囲の、領域Rpは代表的なプリンタのそれぞれ色域である。sRGBの色域Rsとプリンタの色域Rp、あるいは、AdobeRGBの色域Raとプリンタの色域Rpは異なる。そのため、sRGBの画像データをプリンタに出力する場合、色域の違いを補正するためにsRGBの色信号値をプリンタの色信号値に対応付ける処理（色域マッピング）が必要である。
【０００４】
図2は一般的な色域マッピングのフローチャートである。なお、以下では入力色空間としてsRGBを例に説明する。
【０００５】
まず、sRGB画像の画素値RGBに対応する知覚色空間のJab値を算出する(S41)。知覚色空間としては例えばCIELAB、CIECAM97s、CIECAM02などがある。以下では、Jab値がCIECAM02の色値を表すものとする。
【０００６】
次に、知覚色空間内でJab値を出力デバイスの色域にマッピングする(S42)。そして、マッピング後のJ'a'b'値を出力デバイスのデバイスRGB値（R'G'B'値）に変換する(S43)。色域マッピングは、例えば出力色域内の値についてはその値を保存し、出力色域外の値については出力色域の表面に貼り付ける測色的(colorimetric)マッピングを行う。または、階調を保存しながら好ましい色にマッピングする知覚的(perceptual)マッピングでもよい。
【０００７】
知覚的マッピングによれば、例えば肌色や空の色といった記憶色など、特定色に対して再現目標を設定し、特定色を目標色に変換するように色域マッピングを行うことで、マッピング後の好ましい色再現を実現することができる。特定色を目標色で再現する技術として、例えば特許文献1に開示された技術がある。これは、マッピング後の特定色と目標色の色差がある範囲に収まるようにマッピングパラメータを予め設定し、特定色以外の色については特定色間で、色の変化が滑らかになるようにマッピングするものである。また、特許文献2には、階調を維持して入力色値を出力色域にマッピングした後、マッピング後の色値について、特定色を目標色に調整する技術が開示されている。
【０００８】
特許文献1の技術は、色変換後の特定色と目標色が一致するようなマスキング係数の最尤解を算出し、最尤解を満たすマスキング係数を用いて画像の各画素値を出力デバイス値に変換する。
【０００９】
一方、特許文献2の技術は、特定色を目標色で再現する際に、特定色を包含する領域（調整範囲）を設け、特定色を写像するとともに、調整範囲内の色値を線形写像することで、特定色とその周辺色の階調性の維持を図る。
【００１０】
また、特許文献3に開示された技術は、特定色と目標色を包含する領域（調整範囲）を設けて、特定色および目標色からの距離に応じて周辺色を調整する。
【００１１】
ところで、プリンタなどの出力画像は様々な場所で観察されるようになった。そのため、ある画像が、一般家庭で多用される4200K程度の青白い蛍光灯の下で観察され、3000K程度の赤黄色の白熱灯の下で観察される場合も多い。このような場合、観察者は、まったく異なる色味を知覚する。さらに、観察時の照度や画像の周囲の色、順応輝度と背景輝度の比率などによって、画像の見え方は異なる。言い換えれば、4200Kの光源下で観察した場合に好ましい色に見えるように目標色を調整し、画像を色調整したとしても、その画像が、3000Kの光源下で観察されれば目標色は好ましい色として知覚されない。つまり、観察環境ごとに適した目標色を設定し、観察環境ごとに目標色を切り替えて画像を色調整しない限り、各環境下において目標色が好ましい色として知覚されることはない。
【００１２】
このように、色域マッピングを行う際は、観察環境ごとに目標色を切り替える必要がある。しかし、上述した技術は、様々な観察環境下における画像の観察までは考慮していない。
【００１３】
【特許文献１】特開平4-362869号公報
【特許文献２】特開平6-021159号公報
【特許文献３】特開2004-112694公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明は、観察環境ごとに目標色の切り替えが可能な色処理にすることを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１６】
本発明にかかる色処理は、出力デバイスが出力する画像を観察する際の光源情報を含む観察条件、並びに、入力デバイスの入力色域を示す情報および前記出力デバイスの出力色域を示す情報を入力し、前記入力色域を示す情報および前記出力色域を示す情報に対応するテーブルから、特定色の色値と前記観察条件に対応する前記特定色の知覚色空間における目標値を取得し、前記特定色の色値を前記目標値に変換する色処理係数を設定し、前記色処理係数を用いて、前記入力デバイスから入力した画像データを色処理し、前記色処理した画像データを前記出力デバイスに出力することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、観察環境ごとに目標色の切り替えが可能な色処理にすることができる。従って、観察環境に応じた目標色を設定して、その観察環境において、好ましい色再現を実現することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明にかかる色処理を図面を参照して詳細に説明する。
【実施例１】
【００２０】
［色変換装置の構成］
図3は実施例1の色変換装置1の構成例を示すブロック図である。
【００２１】
ユーザインタフェイス(UI)部101はユーザの指示を入力する。画像入力部102は、入力デバイス2から画像データを入力し、画像保持部108に保存する。色域データ取得部103は、入力デバイス2の色域を示す色域データ、および、出力デバイス3の色域を示す色域データを色域データ保持部109から取得する。観察条件取得部104は、出力画像の観察環境を取得し、環境パラメータ保持部110に保存する。色変換パラメータ選択部105は、環境別目標色保持部111に保持された観察環境ごとの目標色から、観察環境に応じた目標色を選択する。色変換部106は、選択した目標色に基づき画像データの画素値を色域マッピングする。出力部107は、色域マッピング後の画像データを出力デバイス3に出力する。
【００２２】
また、バッファメモリ112は、演算途中の各データを一時的に保持するが、画像保持部108とともにRAMなどの高速メモリで構成することが好ましい。また、色域データ保持部109、環境パラメータ保持部110および環境別目標色保持部111は、不揮発性のハードディスクの各領域に割り当てることが好ましい。勿論、画像保持部108やバッファメモリ112もハードディスクに割り当ててもよい。
【００２３】
また、上記の構成はシステムバス113によって相互に接続されている。また、入力デバイス2は、ディジタルスチルカメラ、ディジタルビデオカメラ、イメージスキャナ、フィルムスキャナなど画像を入力、撮影または読み取るデバイスである。また、出力デバイス3は、モニタ、プロジェクタ、プリンタ、フィルムレコーダなど画像を出力、表示または記録するデバイスである。勿論、また、画像データが保存された（または保存可能な）メモリカードが挿入されたリーダやハードディスクドライブを入出力デバイス2、3の代わりに接続してもよい。なお、これらのデバイスと色変換装置1は、ネットワークや汎用インタフェイス（例えばUSBやIEEE1394）によって接続される。
【００２４】
図4はUI部101が提供するユーザインタフェイス11の一例を示す図である。
【００２５】
UI部101は、図示しないモニタに図4に一例を示すユーザインタフェイスを表示して、図示しないキーボードやマウスを操作するユーザの指示を入力する。
【００２６】
ユーザは、入力画像設定部12に入力画像データのファイル名を設定し、入力色域データ設定部13に入力色域データを設定し、出力色域データ設定部14に出力色域データを設定する。また、ユーザは、環境パラメータ設定部15によって環境パラメータを設定する。なお、図4には、光源選択部18によって出力画像の観察光源を選択する例を示す。色変換装置1は、UI部101を介して、設定された環境パラメータに応じた目標色、入力色域、出力色域を目標色表示部16に表示する。ユーザは、設定を終えるとOKボタン17を押して、設定終了の旨をUI部101に入力する。
【００２７】
［色変換装置の動作］
図5は色変換装置1が実行する色処理を示すフローチャートである。
【００２８】
まず、ユーザインタフェイス11のOKボタン17が押されたか否か判定する(S1)。OKボタンが押されると、画像入力部102は、入力画像設定部12に設定されたファイル名の画像データを入力デバイス2から入力し、画像保持部108に格納する。
【００２９】
図6は画像保持部108に格納する画像のデータ形式を示す図である。マトリクスImgはPix1、Pix2、…、PixNの画素値配列を格納する。マトリクスImgには、画像の左上から順に画素値を格納する。従って、画像の右下の画素Nの画素値はマトリクスImgの末尾に格納される。また、各画素値は一行三列の配列で構成され、各列はR値、G値、B値を格納する。
【００３０】
次に、色域データ取得部103は、入力色域データ設定部13および出力色域データ設定部14に設定された入力色域データおよび出力色域データを取得する(S3)。
【００３１】
図7は色域データのフォーマット例を示す図で、デバイス色信号値と、それに対応する知覚色空間値の対が記述された対応表である。例えば、プリンタの色域データは次のように作成する。プリンタのデバイスRGB値をRGBそれぞれ9スライスまたは17スライスする。そして、各格子点のRGB値をプリンタに入力して、所定の記録紙に色票を印刷する。次に、測色器により色票のXYZ値を測色する。そして、測色結果のXYZ値をCIECAM02の変換式によりJab値に変換する。このようにして得たJab値とデバイスRGB値の対を色域データとして保存する。
【００３２】
次に、観察条件取得部104は、環境パラメータ設定部15に設定された観察条件に応じた出力画像の観察条件を環境パラメータ保持部110に設定する(S4)。例えば、観察条件取得部104は図8に示すような光源名とそれに対応する光源番号の対応表を保持し、ユーザがD50を選択した場合はD50に対応する光源番号2を環境パラメータ保持部110に格納する。
【００３３】
次に、色変換パラメータ選択部105は、詳細は後述するが、入出力色域および観察条件に応じた目標色を環境パラメータ保持部110から取得する(S5)。続いて、色変換部106は、詳細は後述するが、画像保持部108に格納された画像データの各画素を出力デバイス3の色域にマッピングする(S6)。つまり、各画素値をデバイス色値に変換して画像保持部108に格納する。そして、出力部107は、画像保持部108に格納されたデバイス色値の画像データを出力デバイス3に出力する(S7)。
【００３４】
［色変換パラメータ選択部］
図9は色変換パラメータ選択部105の処理(S5)を示すフローチャートである。
【００３５】
まず、環境パラメータ保持部110から光源番号Lを取得し(S501)、カウンタiを1に初期値する(S502)。続いて、環境別目標色保持部111の後述する目標色テーブルのインデックス番号がiの行から、特定色RGB値を取得し(S503)、光源番号Lに対応する目標色Jab値を取得する(S504)。
【００３６】
図10は目標色テーブルの一例を示す図である。インデックス番号は特定色の番号を表し、インデックスの最大値Npは特定色の数に相当する。また、目標色テーブルの各行には特定色RGB値と、光源番号に対応する目標色Jab値が格納されている。目標色テーブルは、入力色域および出力色域に対応して環境別目標色保持部111に格納されている。従って、色変換パラメータ選択部105は、例えば入力色域データおよび出力色域データのヘッダに記録された色域を示す情報に対応する目標色テーブルを選択して、特定色RGB値および目標色Jab値を取得する。なお、入出力色域の情報は、入出力色域データのヘッダに記録された情報に限らず、色変換装置1に接続された入出力デバイス2、3から直接取得してもよいし、図4に示すユーザインタフェイス11によってユーザが選択または設定してもよい。なお、後述する色変換部106による色変換後の色値が出力色域外にならないように、目標色テーブルには、特定色として入力色域の境界の色値が記述され、当該色値の写像先が目標色として記述されている。
【００３７】
次に、カウンタiをインクリメントし(S505)、すべての特定色について、そのRGB値と光源番号Lに対応する目標色Jab値を取得したか否かを判定する(S506)。つまり、カウンタiの値と特定色の総数Npを比較して、i≦Npであれば未取得の特定色があると判定して処理をステップS503に戻し、i＞Npであれば全特定色に関する取得が終了したと判定する。
【００３８】
全特定色に関する取得が終了した場合は、図5のステップS3で取得した入力色域データおよび出力色域データをバッファメモリ112に読み込む(S507)。続いて、入力色域データ、出力色域データ、特定色RGB値および目標色Jab値に基づき、ユーザインタフェイス11の目標色表示部16に入力色域、出力色域、特定色および目標色を表示する(S508)。その際、特定色のJab値は四面体補間を用いて特定色RGB値から算出するが、その方法は後述する。
【００３９】
［色変換部］
図11は色変換部106の処理(S6)を示すフローチャートである。
【００４０】
まず、色域データ保持部109から出力色域データを取得し(S601)、図5のステップS5で色変換パラメータ選択部105が取得した特定色RGB値（以下「RGBs」とする）を取得する(S602)。色変換部106は、マトリクス演算により色変換を行う。以下では、二次元のマトリクスを例に説明するので、その係数Mは、式(1)に示すように、三行九列のマトリクスで表される。
┌                                   ┐
│a11 a12 a13 a14 a15 a16 a17 a18 a19│
M = │a21 a22 a23 a24 a25 a26 a27 a28 a29│    …(1)
│a31 a32 a33 a34 a35 a36 a37 a38 a39│
└                                   ┘
【００４１】
色変換部106は、特定色を目標色で再現できるように、式(1)に示す係数Mを最適化して色変換を行う。その際に、変換後の色値が出力色域外にならないように、特定色には入力色域の境界の色値が記述され、当該色値の写像先が目標色として記述されていることは、上述したとおりである。
【００４２】
次に、図5のステップS5で色変換パラメータ選択部105が取得した目標色Jab値（以下「Jabd」とする）を取得し(S603)、係数Mの各要素aij (i=1-3, j=1-9)を適当な値で初期化する(S604)。続いて、RGBsの二次の組み合わせベクトルに係数Mを乗算し、式(2)に示す色変換後のRGB値RGBs'を算出する(S605)。
┌   ┐
│Rs'│
│Gs'│= M[Rs2 Gs2 Bs2 RG GB BR Rs Gs Bs]T  …(2)
│Bs'│
└   ┘
ここで、Rs、Gs、BsはRGBsの各色値
Rs'、Gs'、Bs'はRGBs'の各色値
RG = RsGs
GB = GsBs
BR = BsRs
Tは転置行列を示す
【００４３】
次に、RGBs'の各色値に0未満または256以上の値がある場合はその値を0または255に置き換え(S606)、出力色域データおよび後述する四面体補間により、RGBs'に対する出力デバイスの知覚色空間値Jabs'を算出する(S607)。
【００４４】
次に、Jabs'と目標値Jabdの三次元距離の和ΔEを式(3)により算出する(S608)。
ΔE = Σi=1Np√{(Jsi' - Jdi)2 + (asi' - adi)2 + (bsi' - bdi)2}    …(3)
ここで、Jsi'、asi'、bsi'はi番目のJabs'のJ、a、b値
Jdi、adi、bdiはi番目のJabdのJ、a、b値
Npは特定色総数
【００４５】
次に、ΔEが係数Mの最適化終了条件を満たすか否かを判定する(S608)。つまり、予め定めた三次元距離の和の閾値ΔEthとΔEを比較して、ΔE＜ΔEthであれば係数Mは所望する許容範囲で最適化されたと判定して処理をステップS611へ進める。また、ΔE≧ΔEthの場合は最適化が不充分として、係数Mが最適解になるよう更新し(S610)、処理をステップS605へ戻す。なお、係数Mの更新には、数理的手法、探索的手法、Pointer、多目的最適化などの最適化手法を用いる。
【００４６】
係数Mが最適化された場合は、図5のステップS2で取得した入力画像の画像データをバッファメモリ112に読み込む(S611)。そして、読み込んだ画像データの各画素値に係数Mを乗算することで変換後のデバイス色値を算出し(S612)、変換後の画像データを出力する(S613)。
【００４７】
●四面体補間による知覚色空間値の算出方法
図12および図13は四面体補間を用いてデバイス色値から知覚色空間値を算出する方法を説明する図である。
【００４８】
まず、点Pのデバイス色値Rp、Gp、Bpを入力し、RGB値とJab値の対応を記述した色変換テーブルから入力点PのRGBp値を囲む六面体を探索する。該当する六面体を検出すると、その六面体を図12に示す六つの四面体T1〜T6に分割する。
【００４９】
ここで、図13に示すような、点A、B、C、Dを頂点とする四面体を考える。点Pが四面体ABCD内にあるとすると、式(4)から(6)が同時に成り立つ。
↑AP = s↑AB + t↑AC + u↑AD    …(4)
s + t + u ≦ 1                  …(5)
s ≧ 0, t ≧ 0, u ≧ 0          …(6)
ここで、↑はベクトルを表す
例えば↑APは点Aから点Pに向かうベクトル
【００５０】
分割した四面体の中から入力点Pを囲む四面体を見付けるために、入力点Pの色値RGBp、頂点A、B、C、Dに対応する色値RGBa、RGBb、RGBc、RGBdを式(4)に代入して、式(7)を得る。さらに、式(7)を変形した式(8)からs、t、uを算出する。このとき、s、t、uが式(5)と(6)を満たせば、入力点Pは四面体ABCD内にあると判定する。
Rp - Ra = s(Rb - Ra) + t(Rc - Ra) + u(Rd - Ra)
Gp - Ga = s(Gb - Ra) + t(Rc - Ra) + u(Rd - Ra)    …(7)
Rp - Ra = s(Rb - Ra) + t(Rc - Ra) + u(Rd - Ra)
┌ ┐ ┌                 ┐-1┌     ┐
│s│ │Rb-Ra Rc-Ra Rd-Ra│  │Rp-Ra│
│t│=│Gb-Ga Gc-Ga Gd-Ga│  │Gp-Ga│    …(8)
│u│ │Bb-Ba Bc-Ba Bd-Ba│  │Bp-Ba│
└ ┘ └                 ┘  └     ┘
【００５１】
つまり、s、t、uが上記の条件を満たす四面体ABCDの各頂点に対応するJab値Jaba、Jabb、Jabc、Jabdを用いて、式(9)により、入力点PのJab値Jabpを求めることができる。
Jp = Ja + s(Jb - Ja) + t(Jc - Ja) + u(Jd - Ja)
ap = aa + s(ab - aa) + t(ac - aa) + u(ad - aa)    …(9)
bp = ba + s(bb - ba) + t(bc - ba) + u(bd - ba)
【００５２】
このようにして、ステップS607では、四面体補間を用いてデバイス色値RGBs'に対応するJab値Jabs'を算出する。
【００５３】
このように、色変換部106は、特定色を目標色で再現するように最適化した係数Mを、入力画像データの各画素値に乗算することで、各画素値を出力デバイスのデバイス色値に変換する。その際、ユーザが入力する観察光源に従い目標色を切り替えるので、様々な観察環境下に対応した色域マッピングを行うことができる。
【実施例２】
【００５４】
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００５５】
［色変換装置の構成］
図14は実施例2の色変換装置6の構成例を示すブロック図である。
【００５６】
ユーザインタフェイス(UI)部201はユーザの指示を入力する。色変換テーブル取得部202は、デバイス4から色変換テーブルを取得して、色変換テーブル保持部207に保存する。観察条件取得部203は、出力画像の観察環境を取得し、環境パラメータ保持部208に保存する。色変換パラメータ選択部204は、観察環境ごとの目標色を保持する環境別目標値保持部209から観察環境に応じた目標色を選択する。色変換部205は、選択した目標色に基づき、色変換テーブル保持部207に格納された色変換テーブルの特定色に対応するJab値などを調整する。出力部206は、色調整後の色変換テーブルをデバイス5に出力する。
【００５７】
また、バッファメモリ210は、演算途中の各データを一時的に保持するが、RAMなどの高速メモリで構成することが好ましい。また、色変換テーブル保持部207、環境パラメータ保持部208および環境別目標値保持部209は、不揮発性のハードディスクの各領域に割り当てることが好ましい。勿論、バッファメモリ210もハードディスクに割り当ててもよい。
【００５８】
また、上記の構成はシステムバス213によって相互に接続されている。また、デバイス4、5は、画像処理装置、あるいは、色処理機能を有するディジタルスチルカメラ、ディジタルビデオカメラ、イメージスキャナ、フィルムスキャナ、モニタ、プロジェクタ、プリンタ、フィルムレコーダなどのデバイスである。なお、デバイス4、5と色変換装置6は、ネットワークや汎用インタフェイス（例えばUSBやIEEE1394）によって接続される。勿論、デバイス4と5は同じデバイスであっても構わない。その場合、色変換装置6は、あるデバイスから変換テーブルを取得して、色調整後の色変換テーブルを当該デバイスに戻すことになる。
【００５９】
図15はUI部201が提供するユーザインタフェイス21の一例を示す図である。
【００６０】
UI部201は、図示しないモニタに図15に一例を示すユーザインタフェイスを表示して、図示しないキーボードやマウスを操作するユーザの指示を入力する。
【００６１】
ユーザは、色変換テーブル設定部22に色変換テーブルのファイル名を設定する。また、ユーザは、環境パラメータ設定部23によって環境パラメータを設定する。なお、図15には、光源選択部25によって出力画像の観察光源を選択し、照度選択部26によって出力画像を観察する光源の照度を選択する例を示す。ユーザは、設定を終えるとOKボタン24を押して、設定終了の旨をUI部201に入力する。
【００６２】
［色変換装置の動作］
図16は色変換装置6が実行する色処理を示すフローチャートである。
【００６３】
まず、ユーザインタフェイス21のOKボタン24が押されたか否か判定する(S21)。OKボタン24が押されると、色変換テーブル取得部202は、色変換テーブル設定部22に設定されたファイル名の色変換テーブルをデバイス4から取得し、色変換テーブル保持部207へ格納する(S22)。なお、色変換テーブルは、その作成方法は後述するが、図2においてデバイスRGB値をJ'a'b'値に変換する処理用のテーブルのことである。
【００６４】
次に、観察条件取得部203は、環境パラメータ設定部23に設定された観察条件に応じた出力画像の観察条件を環境パラメータ保持部208に設定する(S23)。例えば、観察条件取得部203は、図17に示すような光源名と照度の組み合わせに対応する光源番号の対応表を保持する。そして、ユーザがD50を選択し、照度100ルクスを選択した場合は、その組み合わせに対応する光源番号2を環境パラメータ保持部208に格納する。
【００６５】
次に、色変換パラメータ選択部204は、詳細は後述するが、入出力色域および観察条件に応じた目標値を環境パラメータ保持部208から取得する(S24)。続いて、色変換部205は、詳細は後述するが、特定色から目標色への写像に基づき、色変換テーブル保持部207に格納された色変換テーブルのJab値を書き換え、色変換テーブルを調整する(S25)。そして、出力部206は、色変換テーブル保持部207に格納された調整後の色変換テーブルをデバイス5に出力する(S26)。
【００６６】
［色変換テーブルの作成方法］
色変換テーブルは、入力デバイスのデバイスRGB値と、そのRGB値のJab値を出力色域へマッピングした後のJ'a'b'値の対応関係を記述した対応表である。なお、マッピングは階調を維持しする色域マッピングを用いるものとする。階調を維持する色域マッピングとして、例えば、入力色値と入力色域、および、入力色域と出力色域の関係を判断して入力色値を出力色域の色値に変換する手法がある。
【００６７】
図18は入力色をマッピングする様子を示す図である。Bsは入力色域、Bdは出力色域、Pinは入力色である。出力色域Bd内のある点Pf（例えば明度J=50の点）と、入力色Pinとを結ぶ線分λを考え、線分λ上におい式(10)を満たす点Pin'を入力色Pinのマッピング先とする。
|PsPth|：|PsPin| = |PdPth|：|PdPin'|    …(10)
ここで、PthはPfPth = k・PfPdを満たす点
定数k = 0〜1.0
【００６８】
k=0.8とすればPfとPd間の80%の色域までは維持し、残りの20%の色域、すなわちPthからPsまでの色値をPthとPd間へ階調を保ってマッピングすることになる。
【００６９】
［色変換パラメータ選択部］
図19は色変換パラメータ選択部204の処理(S24)を示すフローチャートである。
【００７０】
まず、環境パラメータ保持部208に保存された光源と照度の組み合わせを示す番号（図17参照）から、光源番号Lを設定し(S241)、照度番号Iを設定する(S242)。つまり、色変換パラメータ選択部204は、光源と照度の組み合わせを示す番号に対応する光源番号Lと照度番号Iを示すテーブルを備える。そして、カウンタiを1に初期値する(S243)。続いて、環境別目標値保持部209の後述する目標値テーブルのインデックス番号がiの行から、特定色RGB値を取得し(S244)、光源番号Lおよび照度番号Iに対応する目標色Jab値を取得する(S245)。
【００７１】
図20は目標値テーブルの一例を示す図である。インデックス番号は特定色の番号を表し、インデックスの最大値Npは特定色の数に相当する。また、目標値テーブルの各行には特定色RGB値と、光源番号Lと照度番号Iに対応する目標色Jab値が格納されている。目標値テーブルは、入力色域および出力色域に対応して環境別目標値保持部209に格納されている。従って、色変換パラメータ選択部204は、例えば色変換テーブルのヘッダに記録された入出力色域を示す情報に対応する目標値テーブルを選択して、特定色RGB値および目標色Jab値を取得する。なお、入出力色域の情報は、色変換テーブルのヘッダに記録された情報に限らず、色変換装置6に接続されたデバイス4、5から直接取得してもよいし、図15に示すユーザインタフェイス21によってユーザが選択または設定してもよい。なお、後述する色変換部205による色変換後の色値が出力色域外にならないように、目標値テーブルには、特定色として入力色域の境界の色値が記述され、当該色値の写像先が目標値として記述されている。
【００７２】
次に、カウンタiをインクリメントし(S246)、すべての特定色について、そのRGB値、光源番号Lおよび照度番号Iに対応する目標色Jab値を取得したか否かを判定する(S247)。つまり、カウンタiの値と特定色の総数Npを比較して、i≦Npであれば未取得の特定色があると判定して処理をステップS244に戻し、i＞Npであれば全特定色に関する取得が終了したと判定する。
【００７３】
［色変換部］
色変換部205は、特定色を目標色で再現するために、色変換テーブル保持部207に格納した色変換テーブルの特定色のJab値を目標色のJab値に書き換える。ただし、それだけでは、特定色の周辺において階調性が悪化する。そこで、階調性を維持し、かつ、特定色を目標色で再現するために、特定色および目標色を包含する領域に調整範囲を設け、その調整範囲内の色のJab値も特定色のJab値の変更に伴い変更することで、階調性の悪化を防ぐ。
【００７４】
図21は色変換部205の処理例を示すフローチャートである。
【００７５】
まず、色変換テーブル保持部207に格納した色変換テーブルの総格子点数Ngを取得し(S701)、特定色の総数Npを取得する(S702)。続いて、カウンタiを1に初期値する(S703)。
【００７６】
次に、i番目の特定色のRGB値に対応するJab値（Jabs）を四面体補間により算出する(S704)。なお、四面体補間を用いてRGB値からJab値を算出する方法は、実施例1において説明したので、ここでの説明は省略する。
【００７７】
次に、i番目の特定色の、光源番号Lと照度番号Iに対応する目標色のJab値（Jabd）を取得する(S705)。そして、カウンタiをインクリメントし(S706)、すべての特定色に対応するJabs値とJabd値を取得したか否かを判定する(S707)。なお、この判定は、特定色の総数Npとカウンタiのカウント値を比較して、i≦Npであれば未取得の特定色があるとして処理をステップS704に戻す。また、i＞Npであればすべての特定色を取得したとして処理をステップS708に進める。
【００７８】
次に、カウンタigを1に初期化し(S708)、色変換テーブルのig番目の格子点のJab値（Jabig）を取得する(S709)。そして、カウンタiを1に初期化し(S710)、ig番目の格子点のJabig値が、i番目の特定色に関して調整すべき範囲内にあるか否かを判定する(S711)。
【００７９】
図22および図23は格子点のJabig値が調整すべき範囲内にあるか否かを判定する（以下「内外判定」と呼ぶ）方法を説明する図である。図22には、Jab空間におけるi番目の特定色Ps、i番目の目標色Pd、調整すべき範囲（以下「調整範囲」と呼ぶ）R、および、色変換テーブルのig番目の格子点Pigが示されている。なお、調整範囲Rは、点PsとPdを焦点とする楕円であるとする。
【００８０】
以下では、説明を簡単にするために、点PsとPdを通る直線がa軸に平行し、かつ、点Ps、Pd、Pigを含む平面がa-b平面に平行するように座標変換する。そして、点Pigの写像先Pig'を算出した後に逆変換を行うことで、元の座標系における写像先を算出することにする。従って、座標変換後の点Ps、Pd、Pigおよび調整範囲Rは、図23に示す二次元のxy座標系に変換される。
【００８１】
図23において、点Pigの内外判定は次のように行う。
【００８２】
まず、点PigとPsを通る式(11)で示される直線λと楕円Rの交点Pc1、Pc2を算出する。
aλ・x + bλ・y +cλ = 0      …(11)
だたし、aλ = yig - ys
bλ = xs - xig
cλ = xig・ys - xs・yig
ここで、xs, ysは点Psのxy座標
xig, yigは点Pigのxy座標
【００８３】
また、楕円（調整範囲）Rは式(12)で表わされる。
x2/ar2 + y2/br2 = 1      …(12)
ここで、2・arは短径
2・brは長径
【００８４】
式(11)(12)から、交点Pc1、Pc2は式(13)のように表わされる。
Pc1 = -B + √(B2 - 4AC)/2A
Pc2 = -B - √(B2 - 4AC)/2A      …(13)
ただし、A = br2bλ2/ar2 + (aλ + bλ)2
B = 2・aλcλ
C = cλ2 + br2bλ2cλ
【００８５】
ベクトル↑PigPc1とベクトル↑PigPc2の成す角θを式(14)により算出する。
θ= cos-1{(↑PigPc1・↑PigPc2)/(|↑PigPc1||↑PigPc2|)}    …(14)
【００８６】
そして、θが180度の場合は、点Pigが点Pc1とPc2の間の線分上に存在するのいで、点Pigは調整範囲内にあると判定する。一方、θが0度の場合は、点Pigは点Pc1とPc2の間の線分上には存在しないので、点Pigは調整範囲外にあると判定する。
【００８７】
以上の内外判定を行い、点Pigが調整範囲外にあると判定した場合は、カウンタiをインクリメントする(S713)。そして、カウンタiと特定色の総数Npを比較して(S714)、i≦Npならば処理をステップS711へ戻し、i＞Npならば処理をステップS715へ進める。
【００８８】
ステップS711で、点Pigが調整範囲内と判定した場合は、点Pigの写像先Pig'を算出し、色変換テーブルのig番目の格子点のJab値（Jabig）をPig'に更新し(S712)、処理をステップS715に進める。
【００８９】
ステップS714において、色変換部205は、すべての調整範囲に対してPigが範囲内か判定し、カウンタiが特定色総数Np以下の場合には、ステップS711へ戻り、カウンタiが特定色総数Npを超える場合には、ステップS715へ進む。
【００９０】
次に、カウンタigをインクリメントし(S715)、色変換テーブルのすべての格子点に対して処理を終了したか否かを判定する(S716)。つまり、カウンタigと総格子点数Ngを比較して、ig≦Ngならば未処理の格子点があるとして処理をステップS709へ戻す。一方、ig＞Ngの場合は、すべての格子点の処理を終了したとして、色変換処理を終了する。
【００９１】
図24は点Pigの写像先Pig'を算出する方法を説明する図である。
【００９２】
まず、PigとPsを通る直線と調整範囲Rの交点Pc1、Pc2を前記のように算出する。次に、Pc1とPc2のうちPigに近い方をPcとする（図24にはPc1がPig近い例を示す）。そして、PcとPdとを通る直線上で式(15)を満たす点を写像先Pig'にする。
|PigPs|：|PigPc| = |Pig'Pd|：|Pig'Pc|    …(15)
【００９３】
従って、Pig'を式(16)で表すことができる。
Pig' = (|↑PigPc|↑PigPc +|↑PigPs|↑PigPd)/(|↑PigPc|+|↑PigPs|)…(16)
【００９４】
以上の処理により、格子点Pigの写像先Pig'を算出し、色変換テーブルにおける格子点PigのJab値をPig'に更新する。
【００９５】
このように、カラー画像の色信号値を異なる色域の知覚色空間値に変換する色処理において、所定の色域マッピング法を用いて作成した色変換テーブルを入力する。そして、出力画像を観察する光源および照度をユーザに選択させ、観察光源および照度ごとに特定色の目標色を切り替えて色変換テーブルを色調整する。このようにすれば、どのような観察環境に対しても最適な色域マッピングを行う色変換テーブルに変換することができる。
【００９６】
［変形例］
上記の実施例においては、CIECAM02色空間を用いる例を説明したが、CIECAM97sなど、カラーアピアランスを考慮した色空間を用いればよい。
【００９７】
また、色変換部106が処理する画素値のビット数を8ビットと想定したため、0と255でクリッピングする例を説明した。しかし、8ビットに限定する必要はなく、例えば、16ビットの場合は、0と65535でクリッピングすればよい。
【００９８】
また、色変換部106が処理する係数Mとして、三行九列の二次の係数を用いる例を説明した。しかし、三行20列の三次の係数や三行三列の係数を用いてもよい。さらに、マスキング法を用いなくてもよく、特定色を目標色で再現できるように設定し、四面体補間やスプライン補間などの補間演算によって色変換テーブルを作成してもよい。
【００９９】
また、調整範囲Rの形状として楕円を例に挙げたが、特定色および目標色を包含する六角形や八角形などの多角形でもよいし、円や自由閉曲線など、どのような形状でもよい。
【０１００】
また、調整領域R内の点の変換に式(16)を用いる例を説明した。しかし、調整領域R内の階調を滑らかに保持し、かつ、調整前後の点の相対的な位置関係を維持する関数であればスプライン曲線や自由曲線など、どのような関数を用いてもよい。
【０１０１】
また、環境パラメータとして光源、または、光源と照度を用いる例を説明した。しかし、周辺輝度や外気温など、人間が知覚する色に影響を及ぼす外的要因であればいかなるパラメータでもよい。
【０１０２】
また、観察条件として、実施例1では光源情報を、実施例2では光源情報と照度情報を説明した。しかし、光源情報、照度情報、観察対象と観察者の距離、観察対象の周囲の色や明るさ、などカラーアピアランスモデルにおける観察条件を目標値または目標色を選択するための観察条件に加えることができる。
【０１０３】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１０４】
また、本発明の目的は、上記実施例の機能を実現するソフトウェアを記録した記憶媒体（記録媒体）をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）が前記ソフトウェアを実行することでも達成される。この場合、記憶媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのソフトウェアを記憶した記憶媒体は本発明を構成する。
【０１０５】
また、前記ソフトウェアの実行により上記機能が実現されるだけでなく、そのソフトウェアの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０１０６】
また、前記ソフトウェアがコンピュータに接続された機能拡張カードやユニットのメモリに書き込まれ、そのソフトウェアの指示により、前記カードやユニットのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０１０７】
本発明を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するソフトウェアが格納される。
【図面の簡単な説明】
【０１０８】
【図１】sRGBおよびAdobeRGBの色域を示すxy色度図、
【図２】一般的な色域マッピングのフローチャート、
【図３】実施例1の色変換装置の構成例を示すブロック図、
【図４】UI部が提供するユーザインタフェイスの一例を示す図、
【図５】色変換装置が実行する色処理を示すフローチャート、
【図６】画像保持部に格納する画像のデータ形式を示す図、
【図７】色域データのフォーマット例を示す図、
【図８】観察条件取得部が保持する光源名とそれに対応する光源番号の対応表を示す図、
【図９】色変換パラメータ選択部の処理を示すフローチャート、
【図１０】目標色テーブルの一例を示す図、
【図１１】色変換部の処理を示すフローチャート、
【図１２】四面体補間を用いてデバイス色値から知覚色空間値を算出する方法を説明する図、
【図１３】四面体補間を用いてデバイス色値から知覚色空間値を算出する方法を説明する図、
【図１４】実施例2の色変換装置の構成例を示すブロック図、
【図１５】UI部が提供するユーザインタフェイスの一例を示す図、
【図１６】色変換装置が実行する色処理を示すフローチャート、
【図１７】観察条件取得部が保持する光源名と照度の組み合わせに対応する光源番号の対応表を示す図、
【図１８】入力色をマッピングする様子を示す図、
【図１９】色変換パラメータ選択部の処理を示すフローチャート、
【図２０】目標値テーブルの一例を示す図、
【図２１】色変換部の処理例を示すフローチャート、
【図２２】格子点のJabig値が調整すべき範囲内にあるか否かを判定する（内外判定）方法を説明する図、
【図２３】格子点のJabig値が調整すべき範囲内にあるか否かを判定する（内外判定）方法を説明する図、
【図２４】点Pigの写像先Pig'を算出する方法を説明する図である。
【図１】
0004757078.tif 000002
【図２】
0004757078.tif 000003
【図３】
0004757078.tif 000004
【図４】
0004757078.tif 000005
【図５】
0004757078.tif 000006
【図６】
0004757078.tif 000007
【図７】
0004757078.tif 000008
【図８】
0004757078.tif 000009
【図９】
0004757078.tif 000010
【図１０】
0004757078.tif 000011
【図１１】
0004757078.tif 000012
【図１２】
0004757078.tif 000013
【図１３】
0004757078.tif 000014
【図１４】
0004757078.tif 000015
【図１５】
0004757078.tif 000016
【図１６】
0004757078.tif 000017
【図１７】
0004757078.tif 000018
【図１８】
0004757078.tif 000019
【図１９】
0004757078.tif 000020
【図２０】
0004757078.tif 000021
【図２１】
0004757078.tif 000022
【図２２】
0004757078.tif 000023
【図２３】
0004757078.tif 000024
【図２４】
0004757078.tif 000025