(57)【要約】【課題】色空間に任意に設定された基準色に基づく入力色の補間処理を高速に実行する。【解決手段】色空間に設定された複数の基準色Ｐ1、Ｐ2、Ｐ3、Ｐ4を頂点とし、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体Ｓ1、Ｓ2のそれぞれが占める領域の情報を含むテーブルＴＢＬを記憶する記憶部１１と、テーブルＴＢＬを参照して入力色ＰINを含む立体Ｓ1を特定し、特定した立体Ｓ1の頂点に対応する基準色Ｐ1、Ｐ2、Ｐ3を用いて入力色ＰINの補間処理を実行する演算部１２と、を有する、情報処理装置１０が提供される。【選択図】図１
2015149581.tif 000002
【特許請求の範囲】
【請求項１】
色空間に設定された複数の基準色を頂点とし、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体のそれぞれが占める領域の情報を含むテーブルを記憶する記憶部と、
前記テーブルを参照して入力色を含む前記立体を特定し、特定した前記立体の頂点に対応する前記基準色を用いて前記入力色の補間処理を実行する演算部と、
を有する、情報処理装置。
【請求項２】
前記立体は、三角錐であり、
前記評価値は、前記三角錐の４辺の長さが短いほど大きな値をとり、
前記テーブルは、前記色空間の領域を特定するための位置情報と、前記立体を特定するための識別情報とを対応付けたルックアップテーブルである
請求項１に記載の情報処理装置。
【請求項３】
前記テーブルは、前記色空間が有する座標軸のそれぞれについて、１つの前記座標軸上の各値と前記立体との対応関係を記載したマップを含み、
前記演算部は、前記マップを用いて前記入力色を含む前記立体を特定する
請求項１又は２に記載の情報処理装置。
【請求項４】
前記記憶部は、画像に含まれる前記基準色から特定される前記色空間内の位置を、当該基準色に対して設定された前記色空間内の位置へと変換する変換情報を記憶し、
前記演算部は、前記変換情報に基づいて前記入力色に対する変換量を計算する
請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記演算部は、前記入力色が前記複数の立体に含まれない場合、前記色空間で前記入力色の近傍に位置する前記基準色に基づいて前記入力色の補間処理を実行する
請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記演算部は、前記入力色を含む前記立体の前記評価値が設定した閾値より小さい場合、前記色空間で前記入力色の近傍に位置する前記基準色に基づいて前記入力色の補間処理を実行する
請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項７】
色空間に設定された複数の基準色を頂点とし、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体のそれぞれが占める領域の情報を含むテーブルを記憶する記憶部から、前記テーブルを読み出すことが可能なコンピュータが、
前記テーブルを参照して入力色を含む前記立体を特定し、特定した前記立体の頂点に対応する前記基準色を用いて前記入力色の補間処理を実行する
色補間方法。
【請求項８】
色空間に設定された複数の基準色を頂点とし、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体のそれぞれが占める領域の情報を含むテーブルを記憶する記憶部から、前記テーブルを読み出すことが可能なコンピュータに、
前記テーブルを参照して入力色を含む前記立体を特定し、特定した前記立体の頂点に対応する前記基準色を用いて前記入力色の補間処理を実行する
処理を実行させる、プログラム。
【請求項９】
色空間に設定された複数の基準色の位置を示す情報を記憶する記憶部と、
前記基準色を頂点とする複数の立体から、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体を抽出し、抽出した前記複数の立体のそれぞれが占める領域の情報を含むテーブルを生成する演算部と、
を有する、情報処理装置。
【請求項１０】
前記演算部は、
前記色空間に含まれる全ての座標のそれぞれについて、前記座標を内包する前記立体を立体候補として抽出し、抽出した前記立体候補について前記評価値を計算し、
前記色空間に含まれる前記座標の１つを順次選択し、選択した前記座標について抽出された前記立体候補の中から前記評価値が最大となる前記立体候補を決定し、決定した前記立体候補と交わる前記立体を前記立体候補から除去し、
前記領域の情報として、残った前記立体候補がそれぞれ占める領域の情報を前記テーブルに含める
請求項９に記載の情報処理装置。
【請求項１１】
色空間に設定された複数の基準色の位置を示す情報を記憶する記憶部から、前記位置を示す情報を読み出すことが可能なコンピュータが、
前記基準色を頂点とする複数の立体から、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体を抽出し、抽出した前記複数の立体のそれぞれが占める領域の情報を含むテーブルを生成する
テーブル生成方法。
【請求項１２】
色空間に設定された複数の基準色の位置を示す情報を記憶する記憶部から、前記位置を示す情報を読み出すことが可能なコンピュータに、
前記基準色を頂点とする複数の立体から、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体を抽出し、抽出した前記複数の立体のそれぞれが占める領域の情報を含むテーブルを生成する
処理を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、色補間方法、プログラム、及びテーブル生成方法に関する。
【背景技術】
【０００２】
撮影した画像の色合いが本来の色合いからずれている場合に、画像中の各画素が有する色を本来の色へと変換する処理が行われる。この処理は色補正と呼ばれる。色補正を実現する方法としては、例えば、既知の色（以下、基準色）を含むサンプルを被写体と同時に撮影し、基準色の変化に基づいて各画素の色を本来の色へと変換する方法がある。
【０００３】
但し、画像の各画素が取り得る色の数は膨大であり、全ての取り得る色を基準色に設定し、各基準色について本来の色への変換を予め与えることは難しい。そのため、上記の方法を適用する場合、予め与えられた基準色から各画素の色（以下、入力色）を求める補間処理により、基準色に対する変換から入力色に対する変換を得る処理が行われ、得られた入力色に対する変換に基づいて色補正が行われる。
【０００４】
例えば、体積補間により入力色に対する変換を得る方法がある。この方法では、色空間内で基準色を頂点とする立体を設定し、入力色を内包する立体の頂点となる基準色の変換を利用して入力色の変換が求められる。この方法を適用する場合、色補正の精度は、補間処理に用いる基準色と入力色との距離が近いほど良くなる。そのため、色補正の精度を向上させる方法として、色空間に多くの立体を設定できるように、多数の基準色を撮影する方法が提案されている。
【０００５】
なお、３次元の色空間内に基準色を格子状に配置し、その基準色を用いて色補正を行う方法が提案されている。この方法では、格子を成す各立方体の頂点に位置する基準点が補間処理に利用される。また、入力色を内包する四面体を特定し、特定した四面体の内部を詳細に測定するためのチャートを印刷し、印刷したチャートの測色結果に基づいて入力色の補正を行う方法が提案されている。また、体積補間を用いず、入力色の近傍に位置する基準点を用いて入力色の変換を決める方法が提案されている。また、基準色を含む撮影画像から基準色の位置を検出し、画像から基準色の色を抽出する方法も提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−４８１７９号公報
【特許文献２】特開平２−２３７７６号公報
【特許文献３】特開２０１０−４５５６０号公報
【特許文献４】特開２００３−１２５２２４号公報
【特許文献５】ＷＯ２０１３／１４５２９５Ａ１
【発明の概要】
【発明が解決しようとする課題】
【０００７】
色空間内に基準色を格子状に配置する方法の場合、色空間における入力色の座標から、入力色を内包する立方体を一意に特定することができる。一方、格子状に基準色が配置されていない場合、基準色を頂点とする立体の選び方に自由度が生じる。この場合、補間処理に利用する立体を予め設定しておき、入力色を内包する立体の頂点を示す基準色を用いて色補正が行われる。
【０００８】
色補正の精度は、立体の選び方に依存する。また、入力色を内包する好適な立体の頂点（基準色）を決める処理は負荷が高い。例えば、入力色を内包する四面体を考えた場合、基準色がＮ個あると、基準色の組み合わせ数はＮ4のオーダーとなる。このような多数の組み合わせの中から補間処理に好適な組み合わせを探索する処理は負荷が高い。そのため、画像に含まれる全ての入力色について補間処理を行うには長い時間がかかる。
【０００９】
そこで、１つの側面によれば、本発明の目的は、色空間に任意に設定された基準色に基づく入力色の補間処理を高速に実行することが可能な情報処理装置、色補間方法、プログラム、及びテーブル生成方法を提供することにある。
【課題を解決するための手段】
【００１０】
本開示の１つの側面によれば、色空間に設定された複数の基準色を頂点とし、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体のそれぞれが占める領域の情報を含むテーブルを記憶する記憶部と、テーブルを参照して入力色を含む立体を特定し、特定した立体の頂点に対応する基準色を用いて入力色の補間処理を実行する演算部と、を有する、情報処理装置が提供される。
【００１１】
また、本開示の他の１つの側面によれば、色空間に設定された複数の基準色を頂点とし、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体のそれぞれが占める領域の情報を含むテーブルを記憶する記憶部から、テーブルを読み出すことが可能なコンピュータが、テーブルを参照して入力色を含む立体を特定し、特定した立体の頂点に対応する基準色を用いて入力色の補間処理を実行する色補間方法が提供される。
【００１２】
また、本開示の他の１つの側面によれば、色空間に設定された複数の基準色を頂点とし、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体のそれぞれが占める領域の情報を含むテーブルを記憶する記憶部から、テーブルを読み出すことが可能なコンピュータに、テーブルを参照して入力色を含む立体を特定し、特定した立体の頂点に対応する基準色を用いて入力色の補間処理を実行する処理を実行させる、プログラムが提供される。
【００１３】
また、本開示の他の１つの側面によれば、色空間に設定された複数の基準色の位置を示す情報を記憶する記憶部と、基準色を頂点とする複数の立体から、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体を抽出し、抽出した複数の立体のそれぞれが占める領域の情報を含むテーブルを生成する演算部と、を有する、情報処理装置が提供される。
【００１４】
また、本開示の他の１つの側面によれば、色空間に設定された複数の基準色の位置を示す情報を記憶する記憶部から、位置を示す情報を読み出すことが可能なコンピュータが、基準色を頂点とする複数の立体から、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体を抽出し、抽出した複数の立体のそれぞれが占める領域の情報を含むテーブルを生成するテーブル生成方法が提供される。
【００１５】
また、本開示の他の１つの側面によれば、色空間に設定された複数の基準色の位置を示す情報を記憶する記憶部から、位置を示す情報を読み出すことが可能なコンピュータに、基準色を頂点とする複数の立体から、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体を抽出し、抽出した複数の立体のそれぞれが占める領域の情報を含むテーブルを生成する処理を実行させる、プログラムが提供される。
【発明の効果】
【００１６】
本発明によれば、色空間に任意に設定された基準色に基づく入力色の補間処理を高速に実行することが可能になる。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態に係る情報処理装置の一例を示した図である。
【図２】第２実施形態に係る画像処理装置のハードウェアの一例を示した図である。
【図３】第２実施形態に係る画像処理装置が有する機能の一例を示したブロック図である。
【図４】第２実施形態に係るテーブル作成部が有する機能の一例を示したブロック図である。
【図５】第２実施形態に係る基準色の設定例を示した図である。
【図６】第２実施形態に係る立体番号リストの一例を示した図である。
【図７】第２実施形態に係る座標リストの一例を示した図である。
【図８】第２実施形態に係る頂点リストの一例を示した図である。
【図９】第２実施形態に係る立体除去処理について説明するための図である。
【図１０】第２実施形態に係るマップ作成処理について説明するための図である。
【図１１】第２実施形態に係るテーブル作成処理の流れを示したフロー図である。
【図１２】第２実施形態に係る立体候補算出処理の流れを示したフロー図である。
【図１３】第２実施形態に係る評価処理及び立体決定処理の流れを示したフロー図である。
【図１４】第２実施形態に係る立体除去処理の流れを示したフロー図である。
【図１５】第２実施形態に係る画像補正部が有する機能の一例を示したブロック図である。
【図１６】第２実施形態に係る立体候補検索処理について説明するための図である。
【図１７】第２実施形態に係る変換処理について説明するための第１の図である。
【図１８】第２実施形態に係る変換処理について説明するための第２の図である。
【図１９】第２実施形態に係る画像補正処理の流れを示したフロー図である。
【図２０】第２実施形態に係る立体確定処理の流れを示したフロー図である。
【図２１】第２実施形態の一変形例（変形例＃１）について説明するための図である。
【図２２】第２実施形態の一変形例（変形例＃１）に係る立体確定処理の流れを示したフロー図である。
【図２３】第２実施形態の一変形例（変形例＃２）に係る評価処理及び立体決定処理の流れを示したフロー図である。
【図２４】第２実施形態の一変形例（変形例＃２）に係る立体確定処理の流れを示したフロー図である。
【図２５】第２実施形態の変形例（変形例＃１、＃２）に適用可能なマップ不使用方式の例について説明するための図である。
【図２６】第２実施形態の変形例（変形例＃１、＃２）に適用可能なマップ不使用方式に係る処理の流れを示した第１の図である。
【図２７】第２実施形態の変形例（変形例＃１、＃２）に適用可能なマップ不使用方式に係る処理の流れを示した第２の図である。
【図２８】第２実施形態の変形例（変形例＃１、＃２）に適用可能なマップ不使用方式に係る処理の流れを示した第３の図である。
【図２９】第２実施形態の変形例（変形例＃１、＃２）に適用可能なマップ不使用方式に係る処理の流れを示した第４の図である。
【図３０】第２実施形態の変形例（変形例＃１、＃２）に適用可能なマップ不使用方式に係る処理の流れを示した第５の図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照しながら、本発明の実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
【００１９】
＜１．第１実施形態＞
図１を参照しながら、第１実施形態について説明する。なお、図１は、第１実施形態に係る情報処理装置の一例を示した図である。また、図１に示した情報処理装置１０は、第１実施形態に係る情報処理装置の一例である。
【００２０】
図１に示すように、情報処理装置１０は、記憶部１１及び演算部１２を有する。
記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置、或いは、ＨＤＤ（Hard Disk Drive）やフラッシュメモリなどの不揮発性記憶装置である。演算部１２は、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）などのプロセッサである。但し、演算部１２は、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）などの電子回路であってもよい。演算部１２は、例えば、記憶部１１又は他のメモリが記憶するプログラムを実行する。
【００２１】
記憶部１１は、テーブルＴＢＬを記憶する。テーブルＴＢＬは、複数の立体Ｓ1、Ｓ2のそれぞれが占める領域の情報を含む。立体Ｓ1は、色空間に設定された基準色Ｐ1、Ｐ2、Ｐ3を頂点に含む。立体Ｓ2は、色空間に設定された基準色Ｐ1、Ｐ3、Ｐ4を頂点に含む。立体Ｓ1、Ｓ2のそれぞれは、辺の長さが短いほど大きな値をとる評価値が設定値より大きい。また、立体Ｓ1、Ｓ2は、互いに交わらないように配置されている。
【００２２】
図１の例では、色空間に４つの基準色Ｐ1、Ｐ2、Ｐ3、Ｐ4が設定されている。なお、ここではＲ（赤色）軸、Ｇ（緑色）軸、Ｂ（青色）軸で規定される３次元の色空間を想定しているが、表現の都合上、図１ではＢ軸の記載、及び立体Ｓ1、Ｓ2がそれぞれ有する頂点の１つを省略している。
【００２３】
テーブルＴＢＬに含まれる２つの表において、Ｒの欄に記載された値はＲ軸の座標値（以下、Ｒ座標値）を表し、Ｇの欄に記載された値はＧ軸の座標値（以下、Ｇ座標値）を表す。つまり、図１に例示したテーブルＴＢＬは、Ｒ座標値と立体を特定する立体番号（立体Ｓ1の立体番号は１、立体Ｓ2の立体番号は２）を対応付けるマップ、及びＧ座標値と立体を特定する立体番号とを対応付けるマップを含む。これら２つのマップは、領域の情報の一例である。テーブルＴＢＬに含まれるマップの数は、例えば、色空間の次元数より少ない数に設定される。
【００２４】
上記の評価値としては、例えば、立体が有する全ての辺の長さを合計した値や辺の長さの平均値などを用いることができる。また、立体が有する各辺の長さを評価値とし、辺毎の評価値が設定値より大きい立体に関する情報がテーブルＴＢＬに含まれていてもよい。また、上記の設定値としては、例えば、ユーザが予め設定した値や、実験に基づく評価により色補正の精度が所望のレベルに達する値を用いることができる。
【００２５】
演算部１２は、テーブルＴＢＬを参照して入力色ＰINを含む立体Ｓ1を特定する。また、演算部１２は、特定した立体Ｓ1の頂点に対応する基準色Ｐ1、Ｐ2、Ｐ3を用いて入力色ＰINの補間処理を実行する。
【００２６】
例えば、Ｐ1の座標が（５０，５０，…）、Ｐ2の座標が（１５０，５０，…）、Ｐ3の座標が（１００，１００，…）、Ｐ4の座標が（５０，２００，…）であり、ＰINの座標が（１１０，６０，…）である場合について考える。但し、図１ではＢ軸を省略しているため、Ｂ軸の座標値を「…」と表現している。
【００２７】
この場合、演算部１２は、テーブルＴＢＬを参照し、ＰINのＲ座標値（１１０）に対応する立体番号の集合｛１｝、及びＰINのＧ座標値（６０）に対応する立体番号の集合｛１，２｝を抽出する。さらに、演算部１２は、抽出した立体番号の積集合（｛１｝∧｛１，２｝＝｛１｝）を求める。また、演算部１２は、入力色ＰINを含む立体として、求めた積集合が表す立体（この例ではＳ1）を得る。そして、演算部１２は、立体Ｓ1の頂点に対応する基準色Ｐ1、Ｐ2、Ｐ3を用いて補間処理を実行する。
【００２８】
上記のように、辺の長さに基づく評価値により設定された立体を補間処理に用いることで、補間処理に基づく色補正を精度良く行うことができる。また、補間処理に好適な立体の情報をテーブルＴＢＬとして保持しているため、入力色を含む立体を容易に特定することが可能になり、補間処理を高速に実行することができる。
【００２９】
以上、第１実施形態について説明した。
＜２．第２実施形態＞
次に、第２実施形態について説明する。第２実施形態は、色補正に用いる基準点の組み合わせ（立体）を決めるためのマップを生成し、そのマップを利用して高速に入力色の色補正を行う方法に関する。以下、この方法を実現可能な画像処理装置のハードウェア、機能、及び動作などについて説明する。
【００３０】
［２−１．ハードウェア］
図２を参照しながら、画像処理装置１００のハードウェアについて説明する。図２に示した画像処理装置１００は、第２実施形態に係る画像処理装置の一例である。なお、図２は、第２実施形態に係る画像処理装置のハードウェアの一例を示した図である。
【００３１】
図２に示すように、画像処理装置１００は、ＣＰＵ１０１、及びメモリ１０２を有する。ＣＰＵ１０１は、ＤＳＰなどのプロセッサであってもよいし、ＡＳＩＣやＦＰＧＡなどの電子回路であってもよい。メモリ１０２は、ＲＡＭなどの揮発性記憶装置、或いは、ＨＤＤやフラッシュメモリなどの不揮発性記憶装置である。ＣＰＵ１０１は、例えば、メモリ１０２又は後述する記録媒体５１に記憶されたプログラムを実行する。
【００３２】
画像処理装置１００には、例えば、記録媒体５１、撮像装置５２、カラーチャート検出装置５３が接続される。記録媒体５１は、例えば、磁気記録媒体、光記録媒体、光磁気記録媒体、半導体メモリなどの可搬記録媒体である。記録媒体５１に記録されたプログラムやデータは、ＣＰＵ１０１により読み込まれる。
【００３３】
撮像装置５２は、例えば、デジタルカメラやカメラ機能を搭載した情報端末などである。撮像装置５２により撮像された画像（以下、入力画像）は、画像処理装置１００に入力され、ＣＰＵ１０１を介してメモリ１０２に格納される。なお、ここでは説明の都合上、撮像装置５２から入力画像がメモリ１０２に格納される例を紹介したが、例えば、外部記憶装置からＣＰＵ１０１が入力画像を読み出してメモリ１０２に格納する仕組みに変形することも可能である。
【００３４】
カラーチャート検出装置５３は、基準色を配置したカラーチャートを含む入力画像から基準色の位置を検出し、入力画像から基準色の情報を抽出する装置である。カラーチャート検出装置５３の機能は、例えば、パーソナルコンピュータや情報端末などの情報処理装置を用いて実現可能である。入力画像から抽出された基準色の情報は、ＣＰＵ１０１を介してメモリ１０２に格納される。なお、入力画像に配置するカラーチャートの位置を予め決めておけば、カラーチャート検出装置５３を省略することができる。
【００３５】
画像処理装置１００が有する機能は、１台又は複数台のコンピュータにより実現可能である。例えば、パーソナルコンピュータやサーバ装置などのコンピュータと、携帯電話やスマートフォンなどのコンピュータとを組み合わせたシステムにより画像処理装置１００の機能を実現することができる。また、撮像装置５２及びカラーチャート検出装置５３の少なくとも１つと画像処理装置１００とを一体に形成することも可能である。以下、図２に例示した画像処理装置１００を例に説明を進める。
【００３６】
以上、画像処理装置１００のハードウェアについて説明した。
［２−２．画像処理装置の機能］
次に、図３を参照しながら、画像処理装置１００の機能について説明する。なお、図３は、第２実施形態に係る画像処理装置が有する機能の一例を示したブロック図である。
【００３７】
図３に示すように、画像処理装置１００は、テーブル作成部１１１、及び画像補正部１１２を有する。テーブル作成部１１１、及び画像補正部１１２の機能は、上述したＣＰＵ１０１及びメモリ１０２を用いて実現される。
【００３８】
テーブル作成部１１１は、色空間に設定された基準色の集合から、入力色の補間処理に利用する複数のマップを含むテーブルを作成する。テーブルには、任意の入力色に対する補間処理に好適な基準色の組み合わせを示す情報が含まれる。なお、色空間における基準色の組み合わせは、基準色を頂点とする立体で表現される。以下、説明の都合上、立体の形状として４つの基準色を頂点とする三角錐（凸包の一種）を想定する。
【００３９】
画像補正部１１２は、テーブル作成部１１１が作成したテーブルに含まれるマップを参照して入力色を内包する三角錐を特定し、特定した三角錐の頂点に対応する４つの基準色に基づいて入力色の色補正を行う。このとき、画像補正部１１２は、補間処理により基準色に対する変換の情報を入力色に対する変換の情報へと置き換え、置き換えた情報に基づいて入力色を本来の色へと変換する。なお、基準色に対する変換の情報は、カラーチャートの画像から抽出した基準色と、その基準色に対して予め設定された色との間の変換式を与える情報である。
【００４０】
以下、テーブル作成部１１１及び画像補正部１１２について、さらに説明する。
（２−２−１．テーブル作成部について）
まず、テーブル作成部１１１について説明する。
【００４１】
（機能ブロック）
図４を参照しながら、テーブル作成部１１１の機能について、さらに説明する。なお、説明の中で、図５〜図１０を適宜参照する。
【００４２】
図４は、第２実施形態に係るテーブル作成部が有する機能の一例を示したブロック図である。図５は、第２実施形態に係る基準色の設定例を示した図である。図６は、第２実施形態に係る立体番号リストの一例を示した図である。
【００４３】
図７は、第２実施形態に係る座標リストの一例を示した図である。図８は、第２実施形態に係る頂点リストの一例を示した図である。図９は、第２実施形態に係る立体除去処理について説明するための図である。図１０は、第２実施形態に係るマップ作成処理について説明するための図である。
【００４４】
図４に示すように、テーブル作成部１１１は、立体候補算出部１３１、評価部１３２、立体決定部１３３、立体除去部１３４、及びマップ作成部１３５を有する。
立体候補算出部１３１は、色空間に含まれる全ての座標のそれぞれを内包する立体を抽出し、抽出した立体を立体候補に設定する。なお、色空間は、例えば、Ｒ座標値が０から２５５、Ｇ座標値が０から２５５、Ｂ座標値が０から２５５の範囲に設定される。評価部１３２は、立体候補算出部１３１により設定された立体候補のそれぞれに対し、立体候補が有する辺の長さに基づく評価値を与える。
【００４５】
立体決定部１３３は、評価部１３２が立体候補に与えた評価値に基づいてマップに記載する立体を決定する。立体除去部１３４は、立体決定部１３３が決定した立体に重複する立体候補を除去する。立体決定部１３３及び立体除去部１３４は、既に決定した立体を除去せずに残しつつ、立体決定部１３３により決定された立体で色空間が充填されるまで、立体の決定及び立体候補の除去を繰り返し実行する。色空間が充填された後、マップ作成部１３５は、色空間の各座標と、各座標を内包する立体決定部１３３により決定された立体とを対応付けるルックアップテーブル（マップ）を作成する。
【００４６】
ここで、図５に示した色空間及び基準色の例を参照しながら、テーブル作成部１１１の機能について、さらに説明する。
なお、Ｒ軸、Ｇ軸、Ｂ軸で規定される３次元の色空間を想定して説明を進めるが、表現の都合上、図５に例示した色空間はＢ（青色）軸を省略して記載されている。さらに、色空間内の立体は、３つの基準色を頂点とする三角形で表現されている。こうした表現上の制約に伴い、以下の説明においては、Ｂ座標値を「…」などの表記を用いて省略する場合がある。また、色空間内にＮ個の基準色が配置されているものとする。
【００４７】
図５の例では、７個の基準色Ｐ1、…、Ｐ7が例示されている。また、Ｐ1、Ｐ2、Ｐ4を頂点とする立体、Ｐ1、Ｐ4、Ｐ7を頂点とする立体、Ｐ1、Ｐ3、Ｐ6を頂点とする立体が例示されている。このように、基準色の組み合わせ方により様々な立体を構築することができる。そのため、ある入力色が与えられた場合に、その入力色を内包する立体が多数得られる可能性がある。立体候補算出部１３１は、色空間に含まれる全ての座標のそれぞれを入力色と仮定し、入力色を内包する立体を立体候補として抽出する。
【００４８】
ここで、Ｎ個の基準色をそれぞれ｛（ｒn，ｇn，ｂn）、ｎ＝１，…，Ｎ｝と表現する。但し、ｒnは、ｎ番目の基準色ＰnのＲ座標値を示す。ｇnは、ｎ番目の基準色ＰnのＧ座標値を示す。ｂnは、ｎ番目の基準色ＰnのＢ座標値を示す。また、入力色を（ｒm，ｇm，ｂm）と表現する。３次元の色空間を考えた場合、入力色を内包する最小の立体は、４つの頂点を有する三角錐である。従って、以下では立体の形状として三角錐を考える。
【００４９】
（立体候補算出部１３１）
立体候補算出部１３１は、立体に入力色が内包されるか否かを判定する際、立体の頂点を成す４つの基準色に対する重心（ｒg，ｇg，ｂg）を計算する。入力色が立体に内包されている場合、立体の面で分割される半空間の一方に立体の重心と入力色とが共に存在する。この性質を利用し、立体候補算出部１３１は、立体の重心から立体の各面に向かう向きと、入力色から立体の各面に向かう向きとが一致するか否かを判定し、その判定結果に基づいて立体に入力色が内包されているか否かを判定する。これら２つの向きが一致する場合、立体候補算出部１３１は、立体に入力色が内包されていると判定する。
【００５０】
例えば、下記の式（１）で表現される平面の方程式を考える。但し、４つの係数ｋ1、…、ｋ4は、下記の式（２）〜式（５）のように与えられる。（ｒn1，ｇn1，ｂn1）、（ｒn2，ｇn2，ｂn2）、（ｒn3，ｇn3，ｂn3）は、平面を規定する３つの頂点である。
【００５１】
三角錐が有する４つの頂点から３つの頂点を選択する組み合わせは４通りある。立体候補算出部１３１は、これら４通りの組み合わせのそれぞれについて、（ｒg，ｇg，ｂg）を（ｒ，ｇ，ｂ）に代入して得られるＪの符号と、（ｒm，ｇm，ｂm）を（ｒ，ｇ，ｂ）に代入して得られるＪの符号とが一致するか否かを判定する。
【００５２】
全ての組み合わせについてＪの符号が一致した場合、立体候補算出部１３１は、立体に入力色（ｒm，ｇm，ｂm）が内包されていると判定する。一方、少なくとも１つの組み合わせについてＪの符号が一致しない場合、立体候補算出部１３１は、立体に入力色（ｒm，ｇm，ｂm）が内包されていないと判定する。立体候補算出部１３１は、この判定処理を基準色の全組み合わせについて実行する。
【００５３】
Ｊ＝ｋ1・ｒ＋ｋ2・ｇ＋ｋ3・ｂ＋ｋ4
…（１）
ｋ1＝（ｇn2−ｇn1）・（ｂn3−ｂn1）−（ｇn3−ｇn1）・（ｂn2−ｂn1）
…（２）
ｋ2＝（ｂn2−ｂn1）・（ｒn3−ｒn1）−（ｂn3−ｂn1）・（ｒn2−ｒn1）
…（３）
ｋ3＝（ｒn2−ｒn1）・（ｇn3−ｇn1）−（ｒn3−ｒn1）・（ｇn2−ｇn1）
…（４）
ｋ4＝−（ｋ1・ｒn1＋ｋ2・ｇn1＋ｋ3・ｂn1）
…（５）
図５に示した例の場合、立体候補算出部１３１は、上記の判定処理の結果として、図６に示すような立体番号リストを作成することができる。立体番号リストは、色空間内の座標と、その座標を内包する立体の立体番号とを対応付けたテーブルである。
【００５４】
立体候補算出部１３１は、上記の判定処理により立体に内包される入力色の座標と、その入力色を内包する立体の立体番号とを対応付けて立体番号リストに記載する。このとき、同じ入力色を内包する立体が複数存在する場合には、図６に示すように、同じ座標に対して複数の立体番号が対応付けられる。
【００５５】
また、立体候補算出部１３１は、立体番号リストに記載した立体番号の立体が有する頂点と、その頂点の座標とを対応付ける座標リスト（図７を参照）を作成する。座標リストは、基準色を特定する頂点番号と、色空間における基準色の座標値とを対応付けたテーブルである。
【００５６】
また、立体候補算出部１３１は、立体番号リストに記載した立体番号と、その立体番号の立体が有する頂点とを対応付ける頂点リスト（図８を参照）を作成する。頂点リストは、立体を特定する立体番号と、立体の頂点を特定する４つの頂点番号とを対応付けたテーブルである。なお、立体番号リスト、座標リスト、及び頂点リストは、メモリ１０２に格納される。これらのリストを参照することにより、立体が有する頂点の座標や、ある座標を内包する立体を容易に特定することが可能になる。
【００５７】
（評価部１３２）
ここで、立体番号をｓと表記し、立体番号ｓの立体が有する４つの頂点を示す頂点番号を｛ｎs1，ｎs2，ｎs3，ｎs4｝と表記する。評価部１３２は、立体番号リストに記載された立体番号の立体毎に評価値を計算する。この評価値は、立体が小さいほど良い評価（小さい値）となる。なお、ここで言う小さい立体とは、辺の長さが短い立体を意味する。つまり、同じ体積の立体でも、辺の長さが短い立体ほど評価値が小さくなる。立体番号ｓの立体に対する評価値Ｊsは、例えば、下記の式（６）により与えられる。
【００５８】
なお、評価値Ｊsとして、下記の式（７）を用いてもよい。下記の式（７）に示した評価値Ｊsは、色空間の全ての座標に対して、上記の式（６）に示した評価値Ｊsを足し合わせたものである。このような方法により、評価部１３２は、立体番号リストに記載された立体番号の立体毎に評価値Ｊsを計算する。
【００５９】
【数１】
2015149581.tif 000003
【００６０】
【数２】
2015149581.tif 000004
【００６１】
（立体決定部１３３、立体除去部１３４）
評価部１３２により計算された評価値Ｊsは、立体決定部１３３に入力される。立体決定部１３３は、立体番号リストに記載された座標毎に、評価値Ｊsが最も小さい値となる立体を抽出する。立体決定部１３３は、抽出した立体の立体番号ｓminを決定立体番号リストに記載する。決定立体番号リストは、評価部１３２が抽出した立体の立体番号ｓminを記載したリストである。決定立体番号リストは、メモリ１０２に格納される。
【００６２】
例えば、図６に例示した立体番号リストの場合、座標（６０，５０，…）に２つの立体番号１、２が対応付けられている。この場合、評価部１３２は、立体番号１の立体に対する評価値Ｊ1と、立体番号２の立体に対する評価値Ｊ2とを比較し、より小さい値に対応する立体の立体番号を決定立体番号リストに記載する。例えば、評価値Ｊ1が評価値Ｊ2より小さい場合（ｓmin＝１の場合）、立体決定部１３３は、立体番号１を決定立体番号リストに記載する。
【００６３】
立体番号ｓminが決定立体番号リストに記載されると、立体除去部１３４は、立体番号ｓminの立体と重複する立体の立体番号を立体番号リストから除去する。さらに、立体除去部１３４は、立体番号リストから除去した立体番号を立体除去リストに記載する。例えば、ｓmin＝１の場合、立体除去部１３４は、図９に示すように、立体番号１の立体と同じ座標を内包する立体（重複する立体）の立体番号３を立体番号リストから除去する。さらに、立体除去部１３４は、図９に示すように、立体番号ｓminを立体番号リストから除去する。
【００６４】
（マップ作成部１３５）
立体決定部１３３及び立体除去部１３４による処理を繰り返すことで、色空間を充填する好適な立体の組み合わせが決定される。マップ作成部１３５は、決定立体番号リストに記載された立体番号に基づき、任意の入力色を補間する際に用いる基準色の組み合わせを特定するためのマップ（ルックアップテーブル）を作成する。
【００６５】
マップは、色空間の座標軸毎に作成される。例えば、マップ作成部１３５は、各Ｒ座標値と立体番号とを対応付けるマップＭＰR、各Ｇ座標値と立体番号とを対応付けるマップＭＰG、及び各Ｂ座標値と立体番号とを対応付けるマップＭＰBを作成する。
【００６６】
一例として、マップＭＰRを作成する場合について考える。この場合、マップ作成部１３５は、立体番号リストを参照し、Ｒ座標値１つ１つに対応する立体番号を抽出する。
例えば、Ｒ座標値が５０（Ｒ＝５０）に立体番号１、２が対応する場合、マップ作成部１３５は、図１０に示すように、そのＲ座標値（５０）と立体番号１、２とを対応付ける記載をマップＭＰRに追加する。このとき、マップ作成部１３５は、立体番号１、２に対応するＧ座標値及びＢ座標値を考慮しない。他のＲ座標値についても同様である。また、マップ作成部１３５は、同様の方法でマップＭＰG、ＭＰBを作成する。マップＭＰR、ＭＰG、ＭＰBを含むテーブルＴＢＬは、画像補正部１１２に入力される。
【００６７】
上記の作成処理において、マップ作成部１３５は、例えば、立体番号リストに記載されている立体番号の立体毎に、立体が占める領域について各座標値の最大及び最小を抽出し、抽出した最大と最小との間の範囲に属する各座標値と立体番号とを対応付ける。なお、これらの最大と最小とは立体が有する頂点の座標値のいずれかである。従って、立体が有する４つの頂点の座標値を比較することでＲ座標値の最大及び最小、Ｇ座標値の最大及び最小、Ｂ座標値の最大及び最小を容易に取得することができる。
【００６８】
以上、テーブル作成部１１１の機能について説明した。
（全体的な処理の流れ）
次に、図１１を参照しながら、テーブル作成部１１１が実行する処理の流れについて説明する。なお、図１１は、第２実施形態に係るテーブル作成処理の流れを示したフロー図である。
【００６９】
図１１に示すように、テーブル作成部１１１は、立体候補算出部１３１の機能により、色空間の各座標を内包する立体を立体候補として抽出し、抽出した立体候補の立体番号と座標とを対応付ける情報を立体番号リストに記載する（Ｓ１０１）。
【００７０】
次いで、テーブル作成部１１１は、評価部１３２の機能により、立体番号リストに記載されている立体番号ｓの立体に対して上記の式（６）又は式（７）で表現される評価値Ｊsを計算する（Ｓ１０２）。
【００７１】
次いで、テーブル作成部１１１は、立体決定部１３３の機能により、同じ座標を内包する立体候補の中から評価値Ｊsが最小となる立体候補を決定し、決定した立体候補の立体番号を決定立体番号リストに記載する（Ｓ１０３）。
【００７２】
次いで、テーブル作成部１１１は、立体除去部１３４の機能により、決定立体番号リストに記載された立体番号の立体と重複する立体を抽出し、抽出した立体の立体番号を立体番号リストから除去する（Ｓ１０４）。また、テーブル作成部１１１は、立体除去部１３４の機能により、立体番号リストから除去した立体番号を立体除去リストに記載する。また、テーブル作成部１１１は、立体除去部１３４の機能により、決定立体番号リストに記載された立体番号を立体番号リストから除去する。
【００７３】
次いで、テーブル作成部１１１は、Ｓ１０４の処理後に立体候補が残るか否かを判定する（Ｓ１０５）。立体候補が残る場合、処理はＳ１０３へと進む。一方、立体候補が残らない場合、処理はＳ１０６へと進む。処理がＳ１０６へと進んだ場合、テーブル作成部１１１は、マップ作成部１３５の機能により、決定立体番号リストに基づいてマップを作成する（Ｓ１０６）。Ｓ１０６で作成されたマップは、画像補正部１１２に入力される。また、Ｓ１０６の処理が完了すると、図１１に示した一連の処理は終了する。
【００７４】
以上、テーブル作成部１１１が実行する全体的な処理の流れについて説明した。
（立体候補算出について）
ここで、図１２を参照しながら、Ｓ１０１の処理について、さらに説明する。なお、図１２は、第２実施形態に係る立体候補算出処理の流れを示したフロー図である。また、図１２に示した処理は、立体候補算出部１３１により実行される。
【００７５】
図１２に示すように、立体候補算出部１３１は、基準色の組み合わせに基づいて立体番号を設定する（Ｓ１１１）。例えば、立体候補算出部１３１は、４つの基準色の組み合わせを順次選択し、選択した基準色を頂点とする立体に対して順番に立体番号を設定する。また、Ｓ１１１の処理において、立体候補算出部１３１は、頂点の基準色を特定する頂点番号を用いて、立体番号と頂点とを対応付ける頂点リストを生成する。
【００７６】
次いで、立体候補算出部１３１は、入力色を指定するためのパラメータ（入力色パラメータ（ｒ，ｇ，ｂ））を（０，０，０）に設定する（Ｓ１１２）。次いで、立体候補算出部１３１は、立体番号を指定するためのパラメータ（立体番号パラメータｓ）を０に設定する。次いで、立体候補算出部１３１は、立体番号ｓの立体が有する頂点を頂点リストから抽出する（Ｓ１１４）。
【００７７】
次いで、立体候補算出部１３１は、立体番号ｓの立体が入力色（ｒ、ｇ、ｂ）を内包するか否かを判定する（Ｓ１１５）。立体番号ｓの立体が入力色（ｒ、ｇ、ｂ）を内包する場合、処理はＳ１１６へと進む。一方、立体番号ｓの立体が入力色（ｒ、ｇ、ｂ）を内包しない場合、処理はＳ１１７へと進む。処理がＳ１１６へと進んだ場合、立体候補算出部１３１は、立体番号ｓと入力色（ｒ，ｇ，ｂ）の組を立体番号リストに追加する（Ｓ１１６）。Ｓ１１６の処理が完了すると、処理はＳ１１７へと進む。
【００７８】
処理がＳ１１７へと進んだ場合、立体候補算出部１３１は、ｓが立体番号の最大値であるか否かを判定する（Ｓ１１７）。ｓが立体番号の最大値である場合、処理はＳ１１９へと進む。一方、ｓが立体番号の最大値でない場合、処理はＳ１１８へと進む。処理がＳ１１８へと進んだ場合、立体候補算出部１３１は、ｓを１増加させる更新処理を実行する（Ｓ１１８）。Ｓ１１８の処理が完了すると、処理はＳ１１４へと進む。
【００７９】
処理がＳ１１９へと進んだ場合、立体候補算出部１３１は、（ｒ，ｇ，ｂ）が入力色の最後であるか否かを判定する（Ｓ１１９）。（ｒ，ｇ，ｂ）が入力色の最後である場合、図１２に示した一連の処理は終了する。一方、（ｒ，ｇ，ｂ）が入力色の最後でない場合、処理はＳ１２０へと進む。
【００８０】
処理がＳ１２０へと進んだ場合、立体候補算出部１３１は、（ｒ，ｇ，ｂ）を次の座標へと変更する更新処理を実行する（Ｓ１２０）。例えば、色空間内を走査する方向が予め設定されている場合、その走査方向に沿って隣り合う座標を指定するように（ｒ，ｇ，ｂ）の値が変更される。Ｓ１２０の処理が完了すると、処理はＳ１１３へと進む。
【００８１】
以上、Ｓ１０１の処理について説明した。
（評価・立体決定について）
次に、図１３を参照しながら、Ｓ１０２、Ｓ１０３の処理について、さらに説明する。なお、図１３は、第２実施形態に係る評価処理及び立体決定処理の流れを示したフロー図である。図１３に示した処理は、評価部１３２、立体決定部１３３により実行される。
【００８２】
図１３に示すように、評価部１３２は、評価値が最小となる立体番号を特定するための最小立体番号パラメータｓminを０に設定する（Ｓ１３１）。次いで、評価部１３２は、最小の評価値を計算するために用いる最小評価値パラメータＪminを０に設定する（Ｓ１３２）。次いで、評価部１３２は、立体番号を指定するための立体番号パラメータｓを０に設定する（Ｓ１３３）。なお、Ｓ１３１、Ｓ１３２、Ｓ１３３の処理は、順序を入れ替えることが可能である。
【００８３】
次いで、評価部１３２は、立体番号ｓの立体に対する評価値Ｊsを計算する（Ｓ１３４）。例えば、評価部１３２は、上記の式（６）又は式（７）に基づいて評価値Ｊsを計算する。次いで、立体決定部１３３は、立体番号ｓが立体番号リストにあるか否かを判定する（Ｓ１３５）。立体番号ｓが立体番号リストにある場合、処理はＳ１３８へと進む。一方、立体番号ｓが立体番号リストにない場合、処理はＳ１３６へと進む。
【００８４】
処理がＳ１３６へと進んだ場合、立体決定部１３３は、最小評価値パラメータＪminと評価値Ｊsとを比較し、最小評価値パラメータＪminが評価値Ｊsよりも大きいか否かを判定する（Ｓ１３６）。最小評価値パラメータＪminが評価値Ｊsよりも大きい場合、処理はＳ１３７へと進む。一方、最小評価値パラメータＪminが評価値Ｊsよりも大きくない場合、処理はＳ１３８へと進む。
【００８５】
処理がＳ１３７へと進んだ場合、立体決定部１３３は、最小評価値パラメータＪminをＪsに設定し、最小立体番号パラメータｓminをｓに設定する（Ｓ１３７）。Ｓ１３７の処理が完了すると、処理はＳ１３８へと進む。処理がＳ１３８に進んだ場合、立体決定部１３３は、ｓが立体番号の最大値か否かを判定する（Ｓ１３８）。ｓが立体番号の最大値である場合、処理はＳ１４０へと進む。一方、ｓが立体番号の最大値でない場合、処理はＳ１３９へと進む。
【００８６】
処理がＳ１３９へと進んだ場合、立体決定部１３３は、ｓを１増加させる更新処理を実行する（Ｓ１３９）。Ｓ１３９の処理が完了すると、処理はＳ１３４へと進む。処理がＳ１４０へと進んだ場合、立体決定部１３３は、立体番号ｓminを決定立体番号リストに追加する（Ｓ１４０）。Ｓ１４０の処理が完了すると、図１３に示した一連の処理は終了する。
【００８７】
以上、Ｓ１０２、Ｓ１０３の処理について説明した。
（立体除去について）
次に、図１４を参照しながら、Ｓ１０４の処理について、さらに説明する。なお、図１４は、第２実施形態に係る立体除去処理の流れを示したフロー図である。図１４に示した処理は、立体除去部１３４により実行される。
【００８８】
図１４に示すように、立体除去部１３４は、最小立体番号ｓminの入力を受け付ける（Ｓ１５１）。なお、決定立体番号リストに記載された最小立体番号ｓminが入力される。次いで、立体除去部１３４は、入力色を指定するための入力色パラメータ（ｒ，ｇ，ｂ）を（０，０，０）に設定する（Ｓ１５２）。
【００８９】
次いで、立体除去部１３４は、（ｒ，ｇ，ｂ）に対応するｓminがあるか否かを判定する（Ｓ１５３）。（ｒ，ｇ，ｂ）に対応するｓminがある場合、処理はＳ１５４へと進む。一方、（ｒ，ｇ，ｂ）に対応するｓminがない場合、処理はＳ１５５へと進む。処理がＳ１５４へと進んだ場合、立体除去部１３４は、立体番号ｓminの立体以外で、（ｒ，ｇ，ｂ）を内包する立体の立体番号を立体除去リストに追加し、その立体番号を立体番号リストから除去する（Ｓ１５４）。Ｓ１５４の処理が完了すると、処理はＳ１５５へと進む。
【００９０】
処理がＳ１５５へと進んだ場合、立体除去部１３４は、（ｒ，ｇ，ｂ）が入力色の最後であるか否かを判定する（Ｓ１５５）。（ｒ，ｇ，ｂ）が入力色の最後である場合、処理はＳ１５７へと進む。一方、（ｒ，ｇ，ｂ）が入力色の最後でない場合、処理はＳ１５６へと進む。処理がＳ１５６へと進んだ場合、立体除去部１３４は、（ｒ，ｇ，ｂ）を次の座標へと変更する更新処理を実行する（Ｓ１５６）。Ｓ１５６の処理が完了すると、処理はＳ１５３へと進む。
【００９１】
処理がＳ１５７へと進んだ場合、立体除去部１３４は、立体番号ｓminを立体除去リストに追加し、立体番号ｓminを立体番号リストから除去する（Ｓ１５７）。Ｓ１５７の処理が完了すると、図１４に示した一連の処理は終了する。
【００９２】
以上、Ｓ１０４の処理について説明した。
以上、テーブル作成部１１１について説明した。
（２−２−２．画像補正部について）
次に、画像補正部１１２について説明する。
【００９３】
（機能ブロック）
図１５を参照しながら、画像補正部１１２の機能について、さらに説明する。なお、説明の中で、図１６〜図１８を適宜参照する。
【００９４】
図１５は、第２実施形態に係る画像補正部が有する機能の一例を示したブロック図である。図１６は、第２実施形態に係る立体候補検索処理について説明するための図である。図１７は、第２実施形態に係る変換処理について説明するための第１の図である。図１８は、第２実施形態に係る変換処理について説明するための第２の図である。
【００９５】
図１５に示すように、画像補正部１１２は、立体候補検索部１４１、立体確定部１４２、及び変換部１４３を有する。立体候補検索部１４１、立体確定部１４２、及び変換部１４３の機能は、上述したＣＰＵ１０１及びメモリ１０２を用いて実現される。また、画像補正部１１２は、テーブル作成部１１１により作成された複数のマップを含むテーブル（ルックアップテーブル）を保持している。
【００９６】
立体候補検索部１４１は、画像に含まれる任意の画素が有する入力色の色情報を取得し、マップを参照して入力色の補正に用いる基準色の候補を算出する。なお、画像は、撮像装置５２から取得されたものであってもよいし、メモリ１０２や記録媒体５１に予め格納されたものであってもよい。立体確定部１４２は、候補となる基準色の組み合わせが複数存在する場合に、複数の候補から１つの組み合わせを決定する。変換部１４３は、立体確定部１４２により決定された基準色の組み合わせに基づく補間処理により入力色に色補正を施す。
【００９７】
ここで、図１６に示したマップＭＰR、ＭＰG、ＭＰB（但し、図１６ではマップＭＰBを省略している。）が与えられた場合を例に、画像補正部１１２の機能について、さらに説明する。また、図１７、図１８を参照しながら、色補正の処理について、さらに説明する。
【００９８】
（立体候補検索部１４１、立体確定部１４２）
立体候補検索部１４１は、マップＭＰR、ＭＰG、ＭＰBを参照し、入力色を内包する立体を立体候補として抽出する。図１６の例では、入力色ＰIN（１１０，６０，…）が与えられている。この場合、立体候補検索部１４１は、入力色ＰINのＲ座標値（１１０）に対応する立体番号をマップＭＰRから抽出する。図１６の例では、立体番号｛１｝が抽出される。
【００９９】
同様に、立体候補検索部１４１は、入力色ＰINのＧ座標値（６０）に対応する立体番号をマップＭＰGから抽出する。図１６の例では、２つの立体番号｛１，２｝が抽出される。入力色ＰINのＢ座標値に対応する立体番号についても同様である。
【０１００】
立体候補検索部１４１は、Ｒ座標値（１１０）に対応する立体番号｛１｝と、Ｇ座標値（６０）に対応する立体番号｛１，２｝と、Ｂ座標値に対応する立体番号｛…｝との積集合（｛１｝∧｛１，２｝∧｛…｝）を生成する。Ｂ座標値に対応する立体番号｛…｝に１が含まれる場合、この積集合は｛１｝となる。なお、「∧」は論理積を表す。このような方法により、立体候補検索部１４１は、３枚のマップＭＰR、ＭＰG、ＭＰBを用いて入力色ＰINを内包する立体候補を抽出する。なお、複数の立体候補が抽出された場合、立体確定部１４２により入力色ＰINを内包する１つの立体候補が抽出される。
【０１０１】
立体確定部１４２は、複数の立体候補から、入力色ＰINを内包する立体候補を決定する。この決定処理は、上記の式（１）〜式（５）に基づいて実現される。つまり、立体確定部１４２は、テーブル作成部１１１が有する立体候補算出部１３１と同様に、立体候補の重心座標を求め、入力色ＰINを上記の式（１）に代入して得られるＪの符号と、重心座標を上記の式（１）に代入して得られるＪの符号とを比較する。そして、立体確定部１４２は、これら２つのＪの符号が一致する立体候補を抽出する。抽出された立体候補は、入力色ＰINの色補正に利用される立体として変換部１４３に入力される。
【０１０２】
（変換部１４３）
変換部１４３は、立体確定部１４２から入力された立体の頂点に位置する基準色を用いて入力色ＰINの色補正を実行する。例えば、図１７に示すように、入力色ＰINの座標を（ｒ，ｇ，ｂ）、色補正に用いる４つの基準色Ｐ0、Ｐ1、Ｐ2、Ｐ3の座標をそれぞれ（ｒ0，ｇ0，ｂ0）、（ｒ1，ｇ1，ｂ1）、（ｒ2，ｇ2，ｂ2）、（ｒ3，ｇ3，ｂ3）と表記する。但し、図１７の例ではＰ３の記載を省略している。
【０１０３】
また、Ｐ0からＰ1へ向かうベクトルＶ1は（ｒ1−ｒ0，ｇ1−ｇ0，ｂ1−ｂ0）となる。また、Ｐ0からＰ2へ向かうベクトルＶ2は（ｒ2−ｒ0，ｇ2−ｇ0，ｂ2−ｂ0）となる。また、Ｐ0からＰ3へ向かうベクトルＶ3は（ｒ3−ｒ0，ｇ3−ｇ0，ｂ3−ｂ0）となる。なお、ベクトルＶ1、Ｖ2、Ｖ3で表現される変換は、予め与えられている。また、入力色ＰIN（ｒ，ｇ，ｂ）は、係数ｈ1、ｈ2、ｈ3を用いて下記の式（８−１）のように表現される。
【０１０４】
【数３】
2015149581.tif 000005
【０１０５】
なお、基準色の座標から３つのベクトルＶ1、Ｖ2、Ｖ3が得られるため、入力色ＰINの座標が与えられると、上記の式（８−１）を変形した下記の式（８−２）から係数ｈ1、ｈ2、ｈ3が求められる。但し、上付きの「−１」は逆行列を表す。
【０１０６】
【数４】
2015149581.tif 000006
【０１０７】
いま、基準色Ｐ0、…、Ｐ3にそれぞれ対応する本来の色を表す座標（基準色毎に予め設定された座標）を（ｒ0s，ｇ0s，ｂ0s）、（ｒ1s，ｇ1s，ｂ1s）、（ｒ2s，ｇ2s，ｂ2s）、（ｒ3s，ｇ3s，ｂ3s）と表記する。この表記を用いると、色補正後の入力色ＰINを表す座標を（ｒs，ｇs，ｂs）は、下記の式（９）により与えられる。変換部１４３は、上記の式（８−２）に基づいて係数ｈ1、ｈ2、ｈ3を求め、図１８に示すように、下記の式（９）に基づいて入力色ＰINを本来の色へと変換する色補正を実行する。
【０１０８】
【数５】
2015149581.tif 000007
【０１０９】
以上、画像補正部１１２について説明した。
（全体的な処理の流れ）
次に、図１９を参照しながら、画像補正部１１２が実行する処理の流れについて説明する。なお、図１９は、第２実施形態に係る画像補正処理の流れを示したフロー図である。
【０１１０】
図１９に示すように、画像補正部１１２は、立体候補検索部１４１の機能により、テーブル作成部１１１が作成したマップＭＰR、ＭＰG、ＭＰBを参照し、入力色ＰINを内包する立体を立体候補として抽出する（Ｓ２０１）。次いで、画像補正部１１２は、立体確定部１４２の機能により、Ｓ２０１で抽出された立体候補の中から入力色ＰINを内包する立体を１つに決定する（Ｓ２０２）。
【０１１１】
次いで、画像補正部１１２は、変換部１４３の機能により、Ｓ２０２で決定された立体の頂点に位置する基準色の変換を用いて、入力色ＰINの色補正を実行する（Ｓ２０３）。Ｓ２０３の処理が完了すると、図１９に示した一連の処理は終了する。
【０１１２】
（立体確定について）
ここで、図２０を参照しながら、Ｓ２０２の処理について、さらに説明する。なお、図２０は、第２実施形態に係る立体確定処理の流れを示したフロー図である。また、図２０に示した処理は、立体確定部１４２により実行される。
【０１１３】
図２０に示すように、立体確定部１４２は、立体候補の数を示す立体数ｃの入力を受け付ける（Ｓ２１１）。また、立体確定部１４２は、立体候補をそれぞれ特定する立体番号ｓj（ｊ＝１，…，ｃ）の入力を受け付ける（Ｓ２１２）。次いで、立体確定部１４２は、ｃが１であるか否かを判定する（Ｓ２１３）。ｃが１である場合、立体確定部１４２により入力された立体番号ｓ1の立体が選択され、処理はＳ２１５へと進む。一方、ｃが１でない場合、処理はＳ２１４へと進む。
【０１１４】
処理がＳ２１４へと進んだ場合、立体確定部１４２は、立体番号ｓj（ｊ＝１，…，ｃ）を有する立体の中から、入力色を内包する立体を１つ選択する（Ｓ２１４）。Ｓ２１４の処理が完了すると、処理はＳ２１５へと進む。処理がＳ２１５へと進んだ場合、立体確定部１４２は、選択した立体を入力色の変換に用いる立体に確定させる（Ｓ２１５）。Ｓ２１５の処理を完了すると、図２０に示した一連の処理は終了する。
【０１１５】
以上、Ｓ２０２の処理について説明した。
以上、画像補正部１１２について説明した。
［２−３．変形例＃１（マップ不使用方式の併用Ａ）］
ここで、図２１、図２２を参照しながら、第２実施形態の一変形例（変形例＃１）について説明する。変形例＃１は、基準色を頂点とする立体で充填された領域外に入力色が位置する場合の処理を追加する方法に関する。なお、図２１は、第２実施形態の一変形例（変形例＃１）について説明するための図である。また、図２２は、第２実施形態の一変形例（変形例＃１）に係る立体確定処理の流れを示したフロー図である。
【０１１６】
これまでは、基準色を頂点とする立体のいずれかに入力色が内包されることを前提に説明を進めてきた。つまり、入力色を内包する立体がない場合、入力色に対する色補正の処理は任意であった。変形例＃１では、入力色を内包する立体がない場合に、マップＭＰR、ＭＰG、ＭＰBを使用せずに入力色ＰINの色補正を実行する方式（以下、マップ不使用方式）を提案する（図２１を参照）。
【０１１７】
変形例＃１を適用する場合、上述した立体確定処理は、図２２のように変形される。また、図２２に示した処理の中で設定される方式フラグに基づいて変換部１４３が色補正の方法（マップを使用する方式、又はマップ不使用方式）を選択する。方式フラグは、色補正の方法を選択する際に参照されるフラグである。方式フラグが１の場合にマップ不使用方式が選択され、方式フラグが０の場合にマップを使用する色補正の方法が選択される。
【０１１８】
図２２に示すように、立体確定部１４２は、方式フラグを０に設定する（Ｓ３０１）。また、立体確定部１４２は、立体候補の数を示す立体数ｃの入力を受け付ける（Ｓ３０２）。また、立体確定部１４２は、立体候補をそれぞれ特定する立体番号ｓj（ｊ＝１，…，ｃ）の入力を受け付ける（Ｓ３０３）。なお、ｃが０の場合、立体番号ｓj（ｊ＝１，…，ｃ）は入力されない。
【０１１９】
次いで、立体確定部１４２は、ｃが０であるか否かを判定する（Ｓ３０４）。ｃが０である場合、処理はＳ３０９へと進む。一方、ｃが０でない場合、処理はＳ３０５へと進む。処理がＳ３０５へと進んだ場合、立体確定部１４２は、ｃが１であるか否かを判定する（Ｓ３０５）。ｃが１である場合、立体確定部１４２により入力された立体番号ｓ1の立体が選択され、処理はＳ３０７へと進む。一方、ｃが１でない場合、処理はＳ３０６へと進む。
【０１２０】
処理がＳ３０６へと進んだ場合、立体確定部１４２は、立体番号ｓj（ｊ＝１，…，ｃ）を有する立体の中から、入力色を内包する立体を１つ選択する（Ｓ３０６）。Ｓ３０６の処理が完了すると、処理はＳ３０７へと進む。処理がＳ３０７へと進んだ場合、立体確定部１４２は、選択した立体を入力色の変換に用いる立体に確定させる（Ｓ３０７）。
【０１２１】
次いで、立体確定部１４２は、Ｓ３０７で確定した立体が入力色を内包するか否かを判定する（Ｓ３０８）。Ｓ３０７で確定した立体が入力色を内包する場合、図２２に示した一連の処理は終了する。一方、Ｓ３０７で確定した立体が入力色を内包しない場合、処理はＳ３０９へと進む。処理がＳ３０９へと進んだ場合、立体確定部１４２は、方式フラグを１に設定する（Ｓ３０９）。Ｓ３０９の処理を完了すると、図２２に示した一連の処理は終了する。
【０１２２】
以上、変形例＃１について説明した。
［２−４．変形例＃２（マップ不使用方式の併用Ｂ）］
次に、図２３、図２４を参照しながら、第２実施形態の一変形例（変形例＃２）について説明する。変形例＃２は、マップを生成する際に評価値Ｊが閾値Ｔｈより小さい立体と、閾値Ｔｈより大きい立体とを特定する方式選択フラグを設定し、方式選択フラグと立体番号とを対応付ける方式選択マップを用いて色補正の方法を選択する方式に関する。
【０１２３】
方式選択フラグは、色補正の方法を選択する際に参照されるフラグである。方式選択フラグが１の場合にマップ不使用方式が選択され、方式選択フラグが０の場合にマップを使用する色補正の方法が選択される。変形例＃２の適用に際し、テーブル作成部１１１により実行される評価処理及び立体決定処理が図２３のように変形される。また、変形例＃２の適用に際し、画像補正部１１２により実行される立体確定処理が図２４のように変形される。以下、これらの処理について説明する。
【０１２４】
（評価・立体決定について）
図２３を参照しながら、変形例＃２に係る評価処理及び立体決定処理について説明する。なお、図２３は、第２実施形態の一変形例（変形例＃２）に係る評価処理及び立体決定処理の流れを示したフロー図である。また、図２３に示した処理は、評価部１３２、立体決定部１３３により実行される。
【０１２５】
図２３に示すように、評価部１３２は、評価値が最小となる立体番号を特定するための最小立体番号パラメータｓminを０に設定する（Ｓ４０１）。次いで、評価部１３２は、最小の評価値を計算するために用いる最小評価値パラメータＪminを０に設定する（Ｓ４０２）。次いで、評価部１３２は、立体番号を指定するための立体番号パラメータｓを０に設定する（Ｓ４０３）。なお、Ｓ４０１、Ｓ４０２、Ｓ４０３の処理は、順序を入れ替えることが可能である。
【０１２６】
次いで、評価部１３２は、立体番号ｓの立体に対する評価値Ｊsを計算する（Ｓ４０４）。例えば、評価部１３２は、上記の式（６）又は式（７）に基づいて評価値Ｊsを計算する。次いで、立体決定部１３３は、立体番号ｓが立体番号リストにあるか否かを判定する（Ｓ４０５）。立体番号ｓが立体番号リストにある場合、処理はＳ４０８へと進む。一方、立体番号ｓが立体番号リストにない場合、処理はＳ４０６へと進む。
【０１２７】
処理がＳ４０６へと進んだ場合、立体決定部１３３は、最小評価値パラメータＪminと評価値Ｊsとを比較し、最小評価値パラメータＪminが評価値Ｊsよりも大きいか否かを判定する（Ｓ４０６）。最小評価値パラメータＪminが評価値Ｊsよりも大きい場合、処理はＳ４０７へと進む。一方、最小評価値パラメータＪminが評価値Ｊsよりも大きくない場合、処理はＳ４０８へと進む。
【０１２８】
処理がＳ４０７へと進んだ場合、立体決定部１３３は、最小評価値パラメータＪminをＪsに設定し、最小立体番号パラメータｓminをｓに設定する（Ｓ４０７）。Ｓ４０７の処理が完了すると、処理はＳ４０８へと進む。処理がＳ４０８に進んだ場合、立体決定部１３３は、ｓが立体番号の最大値か否かを判定する（Ｓ４０８）。ｓが立体番号の最大値である場合、処理はＳ４１０へと進む。一方、ｓが立体番号の最大値でない場合、処理はＳ４０９へと進む。
【０１２９】
処理がＳ４０９へと進んだ場合、立体決定部１３３は、ｓを１増加させる更新処理を実行する（Ｓ４０９）。Ｓ４０９の処理が完了すると、処理はＳ４０４へと進む。処理がＳ４１０へと進んだ場合、立体決定部１３３は、立体番号ｓminを決定立体番号リストに追加する（Ｓ４１０）。次いで、立体決定部１３３は、Ｊminと閾値Ｔｈとを比較し、比較結果に応じて立体番号ｓminに対応する方式選択フラグを設定する（Ｓ４１１）。
【０１３０】
例えば、立体決定部１３３は、Ｊminが閾値Ｔｈよりも大きい場合に方式選択フラグを１に設定し、Ｊminが閾値Ｔｈよりも小さい場合に方式選択フラグを０に設定する。閾値Ｔｈは予め設定される。また、設定された方式選択フラグは、立体番号に対応付けて方式選択マップに記載される。方式選択マップは、テーブル作成部１１１に入力される。Ｓ４１１の処理が完了すると、図２３に示した一連の処理は終了する。
【０１３１】
以上、変形例＃２に係る評価処理及び立体決定処理について説明した。
（立体確定について）
次に、図２４を参照しながら、変形例＃２に係る立体確定処理について説明する。なお、図２４は、第２実施形態の一変形例（変形例＃２）に係る立体確定処理の流れを示したフロー図である。また、図２４に示した処理は、立体確定部１４２により実行される。
【０１３２】
図２４に示すように、立体確定部１４２は、方式フラグを０に設定する（Ｓ４２１）。また、立体確定部１４２は、立体候補の数を示す立体数ｃの入力を受け付ける（Ｓ４２２）。また、立体確定部１４２は、立体候補をそれぞれ特定する立体番号ｓj（ｊ＝１，…，ｃ）の入力を受け付ける（Ｓ４２３）。なお、ｃが０の場合、立体番号ｓj（ｊ＝１，…，ｃ）は入力されない。
【０１３３】
次いで、立体確定部１４２は、ｃが０であるか否かを判定する（Ｓ４２４）。ｃが０である場合、処理はＳ４３０へと進む。一方、ｃが０でない場合、処理はＳ４２５へと進む。処理がＳ４２５へと進んだ場合、立体確定部１４２は、ｃが１であるか否かを判定する（Ｓ４２５）。ｃが１である場合、立体確定部１４２により入力された立体番号ｓ１の立体が選択され、処理はＳ４２７へと進む。一方、ｃが１でない場合、処理はＳ４２６へと進む。
【０１３４】
処理がＳ４２６へと進んだ場合、立体確定部１４２は、立体番号ｓj（ｊ＝１，…，ｃ）を有する立体の中から、入力色を内包する立体を１つ選択する（Ｓ４２６）。Ｓ４２６の処理が完了すると、処理はＳ４２７へと進む。処理がＳ４２７へと進んだ場合、立体確定部１４２は、選択した立体を入力色の変換に用いる立体に確定させる（Ｓ４２７）。
【０１３５】
次いで、立体確定部１４２は、Ｓ４２７で確定した立体に対応する方式選択フラグが１であるか否かを判定する（Ｓ４２８）。Ｓ４２７で確定した立体に対応する方式選択フラグが１である場合、処理はＳ４２９へと進む。一方、Ｓ４２７で確定した立体に対応する方式選択フラグが０である場合、処理はＳ４３０へと進む。
【０１３６】
処理がＳ４２９へと進んだ場合、立体確定部１４２は、Ｓ４２７で確定した立体が入力色を内包するか否かを判定する（Ｓ４２９）。Ｓ４２７で確定した立体が入力色を内包する場合、図２４に示した一連の処理は終了する。一方、Ｓ４２７で確定した立体が入力色を内包しない場合、処理はＳ４３０へと進む。
【０１３７】
処理がＳ４３０へと進んだ場合、立体確定部１４２は、方式フラグを１に設定する（Ｓ４３０）。方式フラグが１の場合にマップ不使用方式が選択され、方式フラグが０の場合にマップを使用する色補正の方法が選択される。Ｓ４３０の処理を完了すると、図２４に示した一連の処理は終了する。
【０１３８】
以上、変形例＃２に係る立体確定処理について説明した。
以上、変形例＃２について説明した。
［２−５．補遺（マップ不使用方式の例）］
ここで、図２５〜図３０を参照しながら、上述したマップ不使用方式の例について説明する。なお、マップ不使用方式に係る色補正の処理は変換部１４３により実行される。
【０１３９】
以下の説明では、図２５に示すように、入力色の座標を（ｒ，ｇ，ｂ）と表記し、Ｎ個の基準色の座標を｛（ｒn，ｇn，ｂn）、ｎ＝１，…，Ｎ｝と表記する。なお、図２５は、第２実施形態の変形例（変形例＃１、＃２）に適用可能なマップ不使用方式の例について説明するための図である。
【０１４０】
また、色空間上で入力色に最も近い位置にある基準色を「特定基準色」（又はクラス１の基準色）と呼び、特定基準色の座標を（ｒm，ｇm，ｂm）と表記する。また、特定基準色以外の基準色を「非特定基準色」（又はクラス２の基準色）と呼び、非特定基準色の座標を（ｒn，ｇn，ｂn）（但し、ｎ≠ｍ）と表記する。以下、マップ不使用方式に係る処理について説明する。
【０１４１】
（全体的な処理の流れ）
図２６を参照しながら、マップ不使用方式に係る処理の全体的な流れについて説明する。なお、図２６は、第２実施形態の変形例（変形例＃１、＃２）に適用可能なマップ不使用方式に係る処理の流れを示した第１の図である。また、図２６に示した処理は、変換部１４３により実行される。
【０１４２】
図２６に示すように、変換部１４３は、基準色を特定基準色及び非特定基準色に分類し、非特定基準色の１つを選択する（Ｓ５０１）。次いで、変換部１４３は、Ｓ５０１で選択した非特定基準色と特定基準色とに基づく補間により入力色の色補正に用いる変換情報を生成する（Ｓ５０２）。次いで、変換部１４３は、非特定基準色に対する加重を計算する（Ｓ５０３）。なお、後段の処理で加重を利用しない場合にはＳ５０３の処理を省略することができる。
【０１４３】
変換部１４３は、全ての非特定基準色を対象にＳ５０１〜Ｓ５０３の処理を繰り返し実行する。この繰り返し処理により、入力色の色変換に用いるＮ−１個の変換情報が得られる。変換部１４３は、Ｎ−１個の変換情報を統合し、統合した変換情報に基づいて入力色の色補正を実行する（Ｓ５０４）。Ｓ５０４の処理が完了すると、図２６に示した一連の処理は終了する。
【０１４４】
（基準色選択について）
ここで、図２７を参照しながら、Ｓ５０１の処理について、さらに説明する。なお、図２７は、第２実施形態の変形例（変形例＃１、＃２）に適用可能なマップ不使用方式に係る処理の流れを示した第２の図である。
【０１４５】
図２７に示すように、変換部１４３は、入力色（ｒ，ｇ，ｂ）の入力を受け付ける（Ｓ５１１）。また、変換部１４３は、基準色｛（ｒn，ｇn，ｂn），ｎ＝１，…，Ｎ｝の入力を受け付ける（Ｓ５１２）。次いで、変換部１４３は、入力色（ｒ，ｇ，ｂ）に最も近い基準色（ｒm，ｇm，ｂm）を選択する（Ｓ５１３）。
【０１４６】
次いで、変換部１４３は、Ｓ５１３で選択した基準色を特定基準色に設定する（Ｓ５１４）。次いで、変換部１４３は、特定基準色以外の基準色を非特定基準色に設定する（Ｓ５１５）。Ｓ５１５の処理が完了すると、図２７に示した一連の処理は終了する。
【０１４７】
なお、変換部１４３は、後段の処理に用いる非特定基準色を制限してもよい。例えば、変換部１４３は、入力色との間の距離が予め設定された閾値Ｔｈlより小さい基準色を非特定基準色に設定してもよい。この場合、変換部１４３は、Ｓ５１５の処理において、下記の式（１０）で与えられる条件を満たす基準色を選択して非特定基準色に設定する。但し、｜…｜は、ベクトルの大きさを表すノルムである。
【０１４８】
｜（ｒn−ｒm，ｇn−ｇm，ｂn−ｂm）｜＜Ｔｈl
…（１０）
以上、Ｓ５０１の処理について説明した。
【０１４９】
（補間について）
次に、図２８を参照しながら、Ｓ５０２の処理について、さらに説明する。なお、図２８は、第２実施形態の変形例（変形例＃１、＃２）に適用可能なマップ不使用方式に係る処理の流れを示した第３の図である。
【０１５０】
図２８に示すように、変換部１４３は、入力色（ｒ，ｇ，ｂ）の入力を受け付ける（Ｓ５２１）。また、変換部１４３は、特定基準色（ｒm，ｇm，ｂm）の入力を受け付ける（Ｓ５２２）。また、変換部１４３は、非特定基準色｛（ｒn，ｇn，ｂn），ｎ≠ｍ｝の入力を受け付ける（Ｓ５２３）。
【０１５１】
次いで、変換部１４３は、入力色の補間に用いる補間変換量を計算する際に利用するパラメータｐn、ｑnを計算する（Ｓ５２４）。次いで、変換部１４３は、Ｓ５２４で計算したパラメータｐn、ｑnを用いて補間変換量（ｓrn，ｓgn，ｓbn）を計算する（Ｓ５２５）。Ｓ５２５の処理が完了すると、図２８に示した一連の処理は終了する。以下、Ｓ５２４、Ｓ５２５の処理について、さらに説明する。説明の中で、図２５を適宜参照する。
【０１５２】
補間変換量を計算する際、変換部１４３は、１つの非特定基準色と特定基準色とを結ぶ色空間上の線分を求め、入力色に最も近い線分上の点（ｘn）を用いて補間変換量を計算する。入力色に最も近い線分上の点ｘnは、線分上に入力色を直交射影することで得られる。つまり、幾何学的には入力色から線分上に垂線を下ろした場合に、垂線と線分とが交わる点が上記の点ｘnとなる（図２５を参照）。
【０１５３】
非特定基準色（ｒn，ｇn，ｂn）と特定基準色（ｒm，ｇm，ｂm）とを結ぶ直線上の点をｗ（ｐn）と表記すると、ｗ（ｐn）は、下記の式（１１）のように与えられる。但し、ｐnはパラメータである。また、下記の式（１１）に含まれるｖnは、下記の式（１２）により定義される。
【０１５４】
【数６】
2015149581.tif 000008
【０１５５】
【数７】
2015149581.tif 000009
【０１５６】
上記の式（１２）で定義されるｖnは、特定基準色（ｒm，ｇm，ｂm）から非特定基準色（ｒn，ｇn，ｂn）へと向かう方向を示す単位ベクトルである。また、ｌnは、下記の式（１３）で定義され、特定基準色（ｒm，ｇm，ｂm）と非特定基準色（ｒn，ｇn，ｂn）との間の距離を表す。なお、０≦ｐn≦ｌnの場合に、入力色を上記の直線上に射影した点ｘnは特定基準色（ｒm，ｇm，ｂm）と非特定基準色（ｒn，ｇn，ｂn）とを結ぶ線分上に位置する。
【０１５７】
点ｘnの座標は、点ｘnから入力色へと向かう方向を示す単位ベクトルをｕnと表記した場合、下記の式（１４）により与えられる。但し、下記の式（１４）に含まれるベクトルｕn、及びパラメータｑnは、下記の式（１５）〜式（１９）により与えられる。なお、添字のＴはベクトルの転置を表す。また、パラメータｑnは、入力色から点ｘnまでの距離を表す。ここまでの処理がＳ５２４の処理に相当する。
【０１５８】
【数８】
2015149581.tif 000010
【０１５９】
（ｒm，ｇm，ｂm）＋ｑn・ｕn
…（１４）
（ｒ−ｒm，ｇ−ｇm，ｂ−ｂm）T＝ｐn・ｖn＋ｑn・ｕn
…（１５）
ｐn＝（ｒ−ｒm，ｇ−ｇm，ｂ−ｂm）・ｖn
…（１６）
【０１６０】
【数９】
2015149581.tif 000011
【０１６１】
ｙn＝｜（ｒ−ｒm，ｇ−ｇm，ｂ−ｂm）T−ｐn・ｖn｜
…（１８）
ｑn＝（ｒ−ｒm，ｇ−ｇm，ｂ−ｂm）・ｕn
…（１９）
次に、点ｘnの補間処理について考える。ここで、特定基準色（ｒm，ｇm，ｂm）の変換が下記の式（２０）で与えられ、非特定基準色（ｒn，ｇn，ｂn）の変換が下記の式（２１）で与えられているものとする。この場合、点ｘnにおける変換は、線形補間により下記の式（２２）で与えられる。変換部１４３は、Ｓ５２５の処理において、補間変換量として変換（ｓrn，ｓgn，ｓbn）を計算する。同様の方法で、変換部１４３は、全ての非特定基準色について補間変換量を計算する。
【０１６２】
（ｔrm，ｔgm，ｔbm）＝（ｒms−ｒm，ｇms−ｇm，ｂms−ｂm）
…（２０）
（ｔrn，ｔgn，ｔbn）＝（ｒns−ｒn，ｇns−ｇn，ｂns−ｂn）
…（２１）
（ｓrn，ｓgn，ｓbn）＝ｐn・（ｔrn，ｔgn，ｔbn）
＋（１−ｐn）・（ｔrm，ｔgm，ｔbm）
…（２２）
以上、Ｓ５０２の処理について説明した。
【０１６３】
（加重算出について）
次に、図２９を参照しながら、Ｓ５０３の処理について、さらに説明する。なお、図２９は、第２実施形態の変形例（変形例＃１、＃２）に適用可能なマップ不使用方式に係る処理の流れを示した第４の図である。
【０１６４】
図２９に示すように、変換部１４３は、特定基準色（ｒm，ｇm，ｂm）及び非特定基準色（ｒn，ｇn，ｂn）の組（ｍ，ｎのペア）に対する補間変換量（ｓrn，ｓgn，ｓbn）の入力を受け付ける（Ｓ５３１）。但し、ｎ＝１，…，Ｎ（ｎ≠ｍ）である。次いで、変換部１４３は、非特定基準点毎に加重を計算する（Ｓ５３１）。Ｓ５３１の処理が完了すると、図２９に示した一連の処理は終了する。以下、Ｓ５３２の処理について３通りの例を示し、さらに説明する。なお、非特定基準色（ｒn，ｇn，ｂn）に対する加重をｗnと表記する。
【０１６５】
（第１の例：内挿を考慮した加重）
第１の例は、特定基準色（ｒm，ｇm，ｂm）と非特定基準色（ｒn，ｇn，ｂn）とを結ぶ線分上に点ｘnが位置する場合の補間変換量だけが入力色の色補正に利用されるように制限する加重ｗnを計算する方法に関する。この方法を適用する場合、加重ｗnは、下記の式（２３）により与えられる。この場合、変換部１４３は、下記の式（２３）に基づいて加重ｗnを計算する。なお、変換部１４３は、Ｓ５０４の処理で用いるパラメータｚを下記の式（２４）に基づいて計算する。
【０１６６】
【数１０】
2015149581.tif 000012
【０１６７】
【数１１】
2015149581.tif 000013
【０１６８】
（第２の例：垂線の長さを考慮した加重）
第２の例は、入力色から点ｘnに下ろした垂線の長さを表すパラメータｑnの大きさに応じて加重ｗnを計算する方法に関する。この方法を適用する場合、加重ｗnは、下記の式（２５）により与えられる。この場合、変換部１４３は、下記の式（２５）に基づいて加重ｗnを計算する。また、変換部１４３は、Ｓ５０４の処理で用いるパラメータｚを上記の式（２４）に基づいて計算する。
【０１６９】
【数１２】
2015149581.tif 000014
【０１７０】
（第３の例：基準色間の距離を考慮した加重）
第３の例は、特定基準色（ｒm，ｇm，ｂm）と非特定基準色（ｒn，ｇn，ｂn）との間の距離ｌnに応じて加重ｗnを計算する方法に関する。距離ｌnが大きい場合、非特定基準色（ｒn，ｇn，ｂn）が入力色の補間に与える影響は小さいと考えられる。そのため、変換部１４３は、下記の式（２６）に基づいて加重ｗnを計算する。また、変換部１４３は、Ｓ５０４の処理で用いるパラメータｚを上記の式（２４）に基づいて計算する。
【０１７１】
【数１３】
2015149581.tif 000015
【０１７２】
以上、Ｓ５０３の処理について説明した。
（統合について）
次に、図３０を参照しながら、Ｓ５０４の処理について、さらに説明する。なお、図３０は、第２実施形態の変形例（変形例＃１、＃２）に適用可能なマップ不使用方式に係る処理の流れを示した第５の図である。
【０１７３】
図３０に示すように、変換部１４３は、特定基準色（ｒm，ｇm，ｂm）及び非特定基準色（ｒn，ｇn，ｂn）の組（ｍ，ｎのペア）に対する補間変換量（ｓrn，ｓgn，ｓbn）の入力を受け付ける（Ｓ５４１）。但し、ｎ＝１，…，Ｎ（ｎ≠ｍ）である。次いで、変換部１４３は、補間結果（非特定基準色毎に計算された補間変換量）を統合する（Ｓ５４２）。Ｓ５４２の処理が完了すると、図３０に示した一連の処理は終了する。以下、Ｓ５４２の処理について、さらに説明する。
【０１７４】
例えば、第１の例として既に説明した加重ｗn（ｎ＝１，…，Ｎ，ｎ≠ｍ）及びパラメータｚを利用した場合、変換部１４３は、下記の式（２７）に基づいて補間変換量を統合し、入力色に対する変換（ｓr，ｓg，ｓb）を計算する。第２の例又は第３の例として既に説明した加重ｗn（ｎ＝１，…，Ｎ，ｎ≠ｍ）及びパラメータｚを利用する場合も同様に、変換部１４３は、下記の式（２７）に基づいて補間変換量を統合する。
【０１７５】
【数１４】
2015149581.tif 000016
【０１７６】
（複数種類の加重を考慮する場合）
また、第１〜第３の例として既に説明した加重ｗn（ｎ＝１，…，Ｎ，ｎ≠ｍ）を複数組み合わせて利用することも可能である。例えば、第１の例に係る加重ｗnをｗn(1)、第２の例に係る加重ｗnをｗn(2)、第３の例に係る加重ｗnをｗn(3)と表記した場合、変換部１４３は、下記の式（２８）に基づいて補間変換量を統合する。但し、パラメータｚは、下記の式（２９）で与えられる。なお、ｗn(j)を全てのｎについて１とすれば、下記の式（２８）は第ｊの例に係る加重ｗnを考慮しない式となる。
【０１７７】
【数１５】
2015149581.tif 000017
【０１７８】
【数１６】
2015149581.tif 000018
【０１７９】
（加重計算を省略する場合）
また、加重ｗｎを考慮せず、Ｓ５０３の処理を省略する場合、変換部１４３は、下記の式（３０）に基づいて補間変換量を統合する。つまり、変換部１４３は、Ｎ−１個の補間変換量を平均して入力色に対する変換（ｓr，ｓg，ｓb）を計算する。
【０１８０】
【数１７】
2015149581.tif 000019
【０１８１】
以上、Ｓ５０４の処理について説明した。
以上、マップ不使用方式の例について説明した。
以上、第２実施形態について説明した。第２実施形態に係る技術を適用することで、マップを利用した体積補間に基づく高精度の色補正を高速に実行することが可能になる。また、上記の変形例を適用することで、基準色を頂点とする立体に入力色が含まれる場合にはマップを利用した高精度の色補正が実現され、さらに立体に入力色が含まれない場合でも基準色を直接用いた入力色の色補正が実現される。
【０１８２】
なお、上記の技術は、例えば、プリンタ、スキャナ、カメラ、或いは、パーソナルコンピュータやスマートフォンなどに用いられるディスプレイなどにおいて行われる色補正の処理に適用可能である。
【０１８３】
＜３．付記＞
以上説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）  色空間に設定された複数の基準色を頂点とし、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体のそれぞれが占める領域の情報を含むテーブルを記憶する記憶部と、
前記テーブルを参照して入力色を含む前記立体を特定し、特定した前記立体の頂点に対応する前記基準色を用いて前記入力色の補間処理を実行する演算部と、
を有する、情報処理装置。
【０１８４】
（付記２）  前記立体は、三角錐であり、
前記評価値は、前記三角錐の４辺の長さが短いほど大きな値をとり、
前記テーブルは、前記色空間の領域を特定するための位置情報と、前記立体を特定するための識別情報とを対応付けたルックアップテーブルである
付記１に記載の情報処理装置。
【０１８５】
（付記３）  前記テーブルは、前記色空間が有する座標軸のそれぞれについて、１つの前記座標軸上の各値と前記立体との対応関係を記載したマップを含み、
前記演算部は、前記マップを用いて前記入力色を含む前記立体を特定する
付記１又は２に記載の情報処理装置。
【０１８６】
（付記４）  前記記憶部は、画像に含まれる前記基準色から特定される前記色空間内の位置を、当該基準色に対して設定された前記色空間内の位置へと変換する変換情報を記憶し、
前記演算部は、前記変換情報に基づいて前記入力色に対する変換量を計算する
付記１〜３のいずれかに記載の情報処理装置。
【０１８７】
（付記５）  前記演算部は、前記入力色が前記複数の立体に含まれない場合、前記色空間で前記入力色の近傍に位置する前記基準色に基づいて前記入力色の補間処理を実行する
付記１〜４のいずれかに記載の情報処理装置。
【０１８８】
（付記６）  前記演算部は、前記入力色を含む前記立体の前記評価値が設定した閾値より小さい場合、前記色空間で前記入力色の近傍に位置する前記基準色に基づいて前記入力色の補間処理を実行する
付記１〜４のいずれかに記載の情報処理装置。
【０１８９】
（付記７）  色空間に設定された複数の基準色を頂点とし、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体のそれぞれが占める領域の情報を含むテーブルを記憶する記憶部から、前記テーブルを読み出すことが可能なコンピュータが、
前記テーブルを参照して入力色を含む前記立体を特定し、特定した前記立体の頂点に対応する前記基準色を用いて前記入力色の補間処理を実行する
色補間方法。
【０１９０】
（付記８）  前記立体は、三角錐であり、
前記評価値は、前記三角錐の４辺の長さが短いほど大きな値をとり、
前記テーブルは、前記色空間の領域を特定するための位置情報と、前記立体を特定するための識別情報とを対応付けたルックアップテーブルである
付記７に記載の色補間方法。
【０１９１】
（付記９）  前記テーブルは、前記色空間が有する座標軸のそれぞれについて、１つの前記座標軸上の各値と前記立体との対応関係を記載したマップを含み、前記入力色を含む立体は、前記マップを用いて特定される
付記７又は８に記載の色補間方法。
【０１９２】
（付記１０）  前記記憶部は、画像に含まれる前記基準色から特定される前記色空間内の位置を、当該基準色に対して設定された前記色空間内の位置へと変換する変換情報を記憶し、
前記変換情報に基づいて前記入力色に対する変換量が計算される
付記７〜９のいずれかに記載の色補間方法。
【０１９３】
（付記１１）  前記入力色が前記複数の立体に含まれない場合、前記色空間で前記入力色の近傍に位置する前記基準色に基づいて前記入力色の補間処理が実行される
付記７〜１０のいずれかに記載の色補間方法。
【０１９４】
（付記１２）  前記入力色を含む前記立体の前記評価値が設定した閾値より小さい場合、前記色空間で前記入力色の近傍に位置する前記基準色に基づいて前記入力色の補間処理が実行される
付記７〜１０のいずれかに記載の色補間方法。
【０１９５】
（付記１３）  色空間に設定された複数の基準色を頂点とし、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体のそれぞれが占める領域の情報を含むテーブルを記憶する記憶部から、前記テーブルを読み出すことが可能なコンピュータに、
前記テーブルを参照して入力色を含む前記立体を特定し、特定した前記立体の頂点に対応する前記基準色を用いて前記入力色の補間処理を実行する
処理を実行させる、プログラム。
【０１９６】
（付記１４）  色空間に設定された複数の基準色の位置を示す情報を記憶する記憶部と、
前記基準色を頂点とする複数の立体から、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体を抽出し、抽出した前記複数の立体のそれぞれが占める領域の情報を含むテーブルを生成する演算部と、
を有する、情報処理装置。
【０１９７】
（付記１５）  前記演算部は、
前記色空間に含まれる全ての座標のそれぞれについて、前記座標を内包する前記立体を立体候補として抽出し、抽出した前記立体候補について前記評価値を計算し、
前記色空間に含まれる前記座標の１つを順次選択し、選択した前記座標について抽出された前記立体候補の中から前記評価値が最大となる前記立体候補を決定し、決定した前記立体候補と交わる前記立体を前記立体候補から除去し、
前記領域の情報として、残った前記立体候補がそれぞれ占める領域の情報を前記テーブルに含める
付記１４に記載の情報処理装置。
【０１９８】
（付記１６）  色空間に設定された複数の基準色の位置を示す情報を記憶する記憶部から、前記位置を示す情報を読み出すことが可能なコンピュータが、
前記基準色を頂点とする複数の立体から、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体を抽出し、抽出した前記複数の立体のそれぞれが占める領域の情報を含むテーブルを生成する
テーブル生成方法。
【０１９９】
（付記１７）  前記テーブルを生成する処理の中で、前記コンピュータが、
前記色空間に含まれる全ての座標のそれぞれについて、前記座標を内包する前記立体を立体候補として抽出し、抽出した前記立体候補について前記評価値を計算し、
前記色空間に含まれる前記座標の１つを順次選択し、選択した前記座標について抽出された前記立体候補の中から前記評価値が最大となる前記立体候補を決定し、決定した前記立体候補と交わる前記立体を前記立体候補から除去し、
前記領域の情報として、残った前記立体候補がそれぞれ占める領域の情報を前記テーブルに含める
付記１６に記載のテーブル生成方法。
【０２００】
（付記１８）  色空間に設定された複数の基準色の位置を示す情報を記憶する記憶部から、前記位置を示す情報を読み出すことが可能なコンピュータに、
前記基準色を頂点とする複数の立体から、辺の長さが短いほど大きな値をとる評価値が設定値より大きく、かつ、互いに交わらないように配置された複数の立体を抽出し、抽出した前記複数の立体のそれぞれが占める領域の情報を含むテーブルを生成する
処理を実行させる、プログラム。
【０２０１】
（付記１９）  付記１３又は１８に記載のプログラムが記録された、前記コンピュータにより読み取り可能な記録媒体。
【符号の説明】
【０２０２】
１０  情報処理装置
１１  記憶部
１２  演算部
Ｐ1、Ｐ2、Ｐ3、Ｐ4  基準色
ＰIN  入力色
Ｓ1、Ｓ2  立体
ＴＢＬ  テーブル
【図１】
2015149581.tif 000020
【図２】
2015149581.tif 000021
【図３】
2015149581.tif 000022
【図４】
2015149581.tif 000023
【図５】
2015149581.tif 000024
【図６】
2015149581.tif 000025
【図７】
2015149581.tif 000026
【図８】
2015149581.tif 000027
【図９】
2015149581.tif 000028
【図１０】
2015149581.tif 000029
【図１１】
2015149581.tif 000030
【図１２】
2015149581.tif 000031
【図１３】
2015149581.tif 000032
【図１４】
2015149581.tif 000033
【図１５】
2015149581.tif 000034
【図１６】
2015149581.tif 000035
【図１７】
2015149581.tif 000036
【図１８】
2015149581.tif 000037
【図１９】
2015149581.tif 000038
【図２０】
2015149581.tif 000039
【図２１】
2015149581.tif 000040
【図２２】
2015149581.tif 000041
【図２３】
2015149581.tif 000042
【図２４】
2015149581.tif 000043
【図２５】
2015149581.tif 000044
【図２６】
2015149581.tif 000045
【図２７】
2015149581.tif 000046
【図２８】
2015149581.tif 000047
【図２９】
2015149581.tif 000048
【図３０】
2015149581.tif 000049