以下、本発明の一実施の形態について、図面を用いて説明する。
まず、本実施の形態に係る色域内外判定システムの構成について説明する。
図1は、本実施の形態に係る色域内外判定システム10のブロック図である。
図1に示すように、色域内外判定システム10は、画像形成装置としてのMFP(Multifunction Peripheral)20と、指定された色度値がMFP20の色域の内外の何れであるかを判定する色域内外判定装置30とを備えている。MFP20と、色域内外判定装置30とは、LAN(Local Area Network)、インターネットなどのネットワーク11を介して通信可能に接続されている。
なお、色度値とは、XYZ色空間、Lab色空間などのデバイスに非依存な色空間で色を表現した値である。以下においては、Lab色空間について代表して説明するが、XYZ色空間など、デバイスに非依存な他の色空間であっても同様である。
図2は、MFP20のブロック図である。
図2に示すように、MFP20は、種々の操作が入力されるボタンなどの入力デバイスである操作部21と、種々の情報を表示するLCD(Liquid Crystal Display)などの表示デバイスである表示部22と、画像を読み取る読取デバイスであるスキャナー23と、用紙などの記録媒体に印刷を実行する印刷デバイスであるプリンター24と、図示していない外部のファクシミリ装置と公衆電話回線などの通信回線経由でファックス通信を行うファックスデバイスであるファックス通信部25と、ネットワーク11(図1参照。)経由で色域内外判定装置30(図1参照。)など、外部の装置と通信を行う通信デバイスである通信部26と、各種のデータを記憶している半導体メモリー、HDD(Hard Disk Drive)などの記憶デバイスである記憶部27と、MFP20全体を制御する制御部28とを備えている。
制御部28は、例えば、CPU(Central Processing Unit)と、プログラムおよび各種のデータを記憶しているROM(Read Only Memory)と、CPUの作業領域として用いられるRAM(Random Access Memory)とを備えている。CPUは、ROMまたは記憶部27に記憶されているプログラムを実行する。
図3は、色域内外判定装置30のブロック図である。
図3に示すように、色域内外判定装置30は、種々の操作が入力されるマウスやキーボードなどの入力デバイスである操作部31と、種々の情報を表示するLCDなどの表示デバイスである表示部32と、ネットワーク11(図1参照。)経由でMFP20(図1参照。)など、外部の装置と通信を行う通信デバイスである通信部33と、プログラムおよび各種のデータを記憶しているHDDなどの記憶デバイスである記憶部34と、色域内外判定装置30全体を制御する制御部35とを備えている。色域内外判定装置30は、例えばPC(Personal Computer)などのコンピューターによって構成されている。
記憶部34は、指定された色度値がMFP20の色域の内外の何れであるかを判定するための色域内外判定プログラム34aを記憶している。色域内外判定プログラム34aは、色域内外判定装置30の製造段階で色域内外判定装置30にインストールされていても良いし、CD(Compact Disk)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリーなどの外部の記憶媒体から色域内外判定装置30に追加でインストールされても良いし、ネットワーク11上から色域内外判定装置30に追加でインストールされても良い。
制御部35は、例えば、CPUと、プログラムおよび各種のデータを予め記憶しているROMと、CPUの作業領域として用いられるRAMとを備えている。CPUは、ROMまたは記憶部34に記憶されているプログラムを実行するようになっている。
制御部35は、記憶部34に記憶されている色域内外判定プログラム34aを実行することによって、MFP20の色域の境界、すなわち、最外殻の基準となる線分としての色域境界線分を取得する色域境界線分取得手段35a、MFP20の色域を特定の平面で切断した断面の境界(以下「断面境界」と言う。)の基準となる線分としての断面境界線分を取得する断面境界線分取得手段35b、および、断面境界線分の端点を取得する端点取得手段35cとして機能する。すなわち、色域内外判定プログラム34aは、MFP20の色域を特定の平面で切断した断面を取得するための色域断面取得プログラムを構成している。また、色域内外判定装置30は、MFP20の色域を特定の平面で切断した断面を取得する色域断面取得装置を構成している。
次に、色域内外判定システム10の動作について説明する。
図4は、MFP20の色域の断面を取得する場合の色域内外判定装置30の動作のフローチャートである。
図4に示すように、色域境界線分取得手段35aは、色域境界線分を取得する色域境界線分取得処理を実行する(S101)。
図5は、図4に示す色域境界線分取得処理のフローチャートである。
図5に示すように、色域境界線分取得手段35aは、MFP20によって印刷させるためのチャートのデータを用意する(S131)。チャートは、MFP20によって印刷される複数の色のパッチを含むものである。チャートのデータにおいては、MFP20に入力されるための色値によってパッチの色が表されている。色域境界線分取得手段35aは、MFP20の色域の最外殻上の色のパッチを少なくとも含むチャートのデータをS131において用意する。すなわち、色域境界線分取得手段35aは、MFP20の色域の最外殻上の色のパッチのみを含むチャートのデータをS131において用意しても良いし、MFP20の色域の最外殻上の色のパッチと、MFP20の色域の最外殻上の色以外の色のパッチとを含むチャートのデータをS131において用意しても良い。
なお、色値とは、RGB色空間、CMYK色空間などのデバイスに依存する色空間で色を表現した値である。ここで、画像形成装置に入力される色値の色空間としては、主として、RGB色空間と、CMYK色空間とが知られている。以下においては、RGB色空間について代表して説明するが、CMYK色空間など、他の色空間であっても同様である。
まず、MFP20の色域の最外殻上の色のパッチのみを含むチャートのデータを色域境界線分取得手段35aがS131において用意する場合について説明する。
MFP20に入力される色値の色空間がRGB色空間である場合、RGB値のRチャンネル、GチャンネルおよびBチャンネルのうちの何れかのチャンネルの値を入力レンジの最小値または最大値にすれば、Rチャンネル、GチャンネルおよびBチャンネルのうちの残りのチャンネルの値が如何なる値であっても、色域の最外殻上の点となる。
したがって、色域境界線分取得手段35aは、例えば入力レンジが0〜1である場合、Rチャンネル、GチャンネルおよびBチャンネルのうちの何れかのチャンネルの値を入力レンジの最小値としての0、または、最大値としての1にし、Rチャンネル、GチャンネルおよびBチャンネルのうちの残りのチャンネルの値としてランダムな値を抽出して、抽出した値を組み合わせることによって、色域の最外殻上の点の集まりを生成しても良い。図6は、色域の最外殻上の点のうちR値が1であってG値およびB値がランダムな値である点の集まり41の一例を示す図である。図6においては、色域の最外殻上の点のうちR値が1である点を示しているが、色域の最外殻上の点のうち、R値が0である点、G値が1である点、G値が0である点、B値が1である点、および、B値が0である点についても同様である。
また、色域境界線分取得手段35aは、例えば入力レンジが0〜1である場合、Rチャンネル、GチャンネルおよびBチャンネルのうちの何れかのチャンネルの値を入力レンジの最小値としての0、または、最大値としての1にし、Rチャンネル、GチャンネルおよびBチャンネルのうちの残りのチャンネルの値として等間隔に値を抽出して、抽出した値を組み合わせることによって、色域の最外殻上の点の集まりを生成しても良い。図7は、色域の最外殻上の点のうちR値が1であってG値およびB値が入力レンジを8等分にした境界の値である点の集まり42の一例を示す図である。すなわち、G値およびB値は、それぞれ、0、1/8、1/4、3/8、1/2、5/8、3/4、7/8および1の何れかである。図7においては、色域の最外殻上の点のうちR値が1である点を示しているが、色域の最外殻上の点のうち、R値が0である点、G値が1である点、G値が0である点、B値が1である点、および、B値が0である点についても同様である。8等分を例に説明したが、何等分であっても良い。
次に、MFP20の色域の最外殻上の色のパッチと、MFP20の色域の最外殻上の色以外の色のパッチとを含むチャートのデータを色域境界線分取得手段35aがS131において用意する場合について説明する。
色域境界線分取得手段35aは、MFP20の色域の最外殻上の色のパッチと、MFP20の色域の最外殻上の色以外の色のパッチとを含むチャートのデータとして、MFP20の色域の全体の把握のために既に存在しているチャートのデータを用意しても良い。
また、色域境界線分取得手段35aは、MFP20の色域の最外殻上の色のパッチと、MFP20の色域の最外殻上の色以外の色のパッチとを含むチャートのデータを生成しても良い。例えば、色域境界線分取得手段35aは、Rチャンネル、GチャンネルおよびBチャンネルのそれぞれの値としてランダムな値を抽出して、抽出した値を組み合わせることによって、MFP20の色域の最外殻上の色のパッチと、MFP20の色域の最外殻上の色以外の色のパッチとを含むチャートのデータを生成しても良い。また、色域境界線分取得手段35aは、Rチャンネル、GチャンネルおよびBチャンネルのそれぞれの値として等間隔に値を抽出して、抽出した値を組み合わせることによって、MFP20の色域の最外殻上の色のパッチと、MFP20の色域の最外殻上の色以外の色のパッチとを含むチャートのデータを生成しても良い。
色域境界線分取得手段35aは、S131の処理の後、S131において用意したデータに応じたチャートを、プリンター24によって印刷する(S132)。
次いで、色域境界線分取得手段35aは、S132において印刷されたチャートが測色されることによって、S132において印刷されたチャートのパッチのうち、MFP20の色域の最外殻上の色のパッチについて色度値としてのLab値を取得する(S133)。なお、色域境界線分取得手段35aは、パッチの色度値と、このパッチの色値との対応関係を、S131において用意したチャートのデータに基づいて判断することができる。したがって、色域境界線分取得手段35aは、何れのパッチの色がMFP20の色域の最外殻上の色に対応しているかということを、S131において用意したチャートのデータにおける色値に基づいて判断することができる。
色域境界線分取得手段35aは、S133の後、MFP20の色域の最外殻上の色について、S131において用意したチャートのデータにおける色値と、S133において取得した色度値とに基づいて、色値および色度値の対応関係を記憶する(S134)。
例えば、MFP20の色域の最外殻上の図8に示す色の色値に応じたパッチを含むチャートがS132においてプリンター24によって印刷された場合、S133において取得された色度値は、Lab色空間において図9に示すようになる。図8に示す色は、R値が0または1であって、G値およびB値がそれぞれ0、1/8、1/4、3/8、1/2、5/8、3/4、7/8および1の何れかである色と、G値が0または1であって、R値およびB値がそれぞれ0、1/8、1/4、3/8、1/2、5/8、3/4、7/8および1の何れかである色と、B値が0または1であって、R値およびG値がそれぞれ0、1/8、1/4、3/8、1/2、5/8、3/4、7/8および1の何れかである色とからなる。
色域境界線分取得手段35aは、S134の後、S134において記憶した色値について、近傍の色値を端点とする線分を取得する(S135)。
まず、S134において記憶した色値が等間隔に配置されている場合について説明する。
S134において記憶した色値が等間隔に配置されている場合には、例えば、S134において記憶した色値の配置に基づいて線分を取得する方法と、S134において記憶した色値の点に基づいてポリゴンを形成することによって線分を取得する方法とが採用可能である。
まず、S134において記憶した色値の配置に基づいて線分を取得する方法について説明する。
以下、S134において記憶した色値が図8に示す色値である場合を例に説明する。
例えば、R値が0である場合、G値およびB値は、それぞれ0、1/8、1/4、3/8、1/2、5/8、3/4、7/8および1の何れかである。
図10(a)は、図8に示す色値のうちR値が0である色値を示す図である。
図10(a)において、G値が0、1/8、1/4、3/8、1/2、5/8、3/4、7/8および1である場合をそれぞれ第1行、第2行、第3行、第4行、第5行、第6行、第7行、第8行および第9行というように行で表現する。同様に、B値が0、1/8、1/4、3/8、1/2、5/8、3/4、7/8および1である場合をそれぞれ第1列、第2列、第3列、第4列、第5列、第6列、第7列、第8列および第9列というように列で表現する。例えば、G値が1/8であって、B値が3/8である色は、「第2行第4列の色」というように表現することができる。
色域境界線分取得手段35aは、図10(b)に太線で示す線分をS135において取得しても良い。すなわち、色域境界線分取得手段35aは、「第i行第j列の色値と、第(i+1)行第j列の色値とを端点とする線分」と、「第i行第j列の色値と、第i行第(j+1)列の色値とを端点とする線分」とをS135において取得しても良い。ここで、i、jは、それぞれ、1、2、・・・、7、8である。
また、色域境界線分取得手段35aは、図11(a)に太線で示す線分をS135において取得しても良い。すなわち、色域境界線分取得手段35aは、「第i行第j列の色値と、第(i+1)行第j列の色値とを端点とする線分」と、「第i行第j列の色値と、第i行第(j+1)列の色値とを端点とする線分」と、「第i行第j列の色値と、第(i+1)行第(j+1)列の色値とを端点とする線分」とをS135において取得しても良い。ここで、i、jは、それぞれ、1、2、・・・、7、8である。
また、色域境界線分取得手段35aは、図11(b)に太線で示す線分をS135において取得しても良い。すなわち、色域境界線分取得手段35aは、「第i行第j列の色値と、第(i+1)行第j列の色値とを端点とする線分」と、「第i行第j列の色値と、第i行第(j+1)列の色値とを端点とする線分」と、「第(i+1)行第j列の色値と、第i行第(j+1)列の色値とを端点とする線分」とをS135において取得しても良い。ここで、i、jは、それぞれ、1、2、・・・、7、8である。
また、色域境界線分取得手段35aは、図11(c)に太線で示す線分をS135において取得しても良い。すなわち、色域境界線分取得手段35aは、「第i行第j列の色値と、第(i+1)行第j列の色値とを端点とする線分」と、「第i行第j列の色値と、第i行第(j+1)列の色値とを端点とする線分」と、「第i行第j列の色値と、第(i+1)行第(j+1)列の色値とを端点とする線分」と、「第(i+1)行第j列の色値と、第i行第(j+1)列の色値とを端点とする線分」とをS135において取得しても良い。ここで、i、jは、それぞれ、1、2、・・・、7、8である。
なお、色域境界線分取得手段35aは、「第i行第j列の色値と、第(i+1)行第j列の色値と、第i行第(j+1)列の色値と、第(i+1)行第(j+1)列の色値とからなる矩形領域」の全てについて、図10(b)に示すパターンにおいては斜めの線分が存在しておらず、図11(a)に示すパターンにおいては斜めの線分として右上がりの線分のみ存在しており、図11(b)に示すパターンにおいては斜めの線分として右下がりの線分のみが存在しており、図11(c)に示すパターンにおいては斜めの線分として右上がりの線分および右下がりの線分の両方が存在している。しかしながら、色域境界線分取得手段35aは、「第i行第j列の色値と、第(i+1)行第j列の色値と、第i行第(j+1)列の色値と、第(i+1)行第(j+1)列の色値とからなる矩形領域」のそれぞれについて、斜めの線分が存在していないパターンと、斜めの線分として右上がりの線分のみ存在しているパターンと、斜めの線分として右下がりの線分のみが存在しているパターンと、図11(c)に示すパターンにおいては斜めの線分として右上がりの線分および右下がりの線分の両方が存在しているパターンとの何れかを別々に採用しても良い。ここで、i、jは、それぞれ、1、2、・・・、7、8である。
以上においては、R値が0である場合について説明したが、R値が1である場合と、G値が0または1である場合と、B値が0または1である場合とについても同様である。
次に、S134において記憶した色値の点に基づいてポリゴンを形成することによって線分を取得する方法について説明する。
色域境界線分取得手段35aは、S134において記憶した色値の点のうち、例えば、R値が0である点に対して、ドロネー三角形分割を行って、近傍の3点によってポリゴンを形成する。そして、各ポリゴンを構成する線分を抽出することによって、線分を取得することができる。なお、各ポリゴンは、境界となる線分を隣接のポリゴンと共有する。したがって、色域境界線分取得手段35aは、各ポリゴンを構成する線分のうち、隣接のポリゴンと共有する線分については、重複分を除去して取得すると良い。
以上においては、R値が0である場合について説明したが、R値が1である場合と、G値が0または1である場合と、B値が0または1である場合とについても同様である。
次に、S134において記憶した色値がランダムに配置されている場合について説明する。
色域境界線分取得手段35aは、S134において記憶した色値の点のうち、例えば、R値が0である点に対して、G値、B値がそれぞれ0、0である点と、G値、B値がそれぞれ0、1である点と、G値、B値がそれぞれ1、0である点と、G値、B値がそれぞれ1、1である点との何れかが存在しない場合、存在しないそれらの点を追加する。また、色域境界線分取得手段35aは、G値が0である幾つかの点と、G値が1である幾つかの点と、B値が0である幾つかの点と、B値が1である幾つかの点とを追加しても良い。これらの増点処理によって、S135において取得される線分によって表現される色域の境界が凸型になる。これらの増点処理の後、色域境界線分取得手段35aは、R値が0である点に対して、ドロネー三角形分割を行って、近傍の3点によってポリゴンを形成する。そして、各ポリゴンを構成する線分を抽出することによって、線分を取得することができる。なお、各ポリゴンは、境界となる線分を隣接のポリゴンと共有する。したがって、色域境界線分取得手段35aは、各ポリゴンを構成する線分のうち、隣接のポリゴンと共有する線分については、重複分を除去して取得すると良い。
以上においては、R値が0である場合について説明したが、R値が1である場合と、G値が0または1である場合と、B値が0または1である場合とについても同様である。
例えば、MFP20の色域の最外殻上の図8に示す色の色値に応じたパッチを含むチャートがS132においてプリンター24によって印刷された場合、色域境界線分取得手段35aは、R値が0である色値と、R値が1である色値と、G値が0である色値と、G値が1である色値と、B値が0である色値と、B値が1である色値との全てに対して図11(a)に示すパターンを適用することによって、図12に示す線分をS135において取得することができる。
色域境界線分取得手段35aは、S135の後、S135において取得したRGB色空間上の線分に対応するLab色空間上の線分を取得する(S136)。具体的には、色域境界線分取得手段35aは、S135において取得したRGB色空間上の線分の端点を、S134において記憶した対応関係に基づいて、Lab色空間上の点に変換することによって、Lab色空間上の線分の端点を取得する。そして、色域境界線分取得手段35aは、取得したLab色空間上の端点に基づいて、数1に示す式によって、Lab色空間上の線分の方程式を取得する。ここで、数1に示す式において、{L
i,a
i,b
i}は、線分上の点を表している。また、{L
s,a
s,b
s}は、線分の2つの端点のうちの1つである始点を表している。また、{L
e,a
e,b
e}は、線分の2つの端点のうちの1つである終点を表している。また、tは、0以上1以下のパラメーターである。
例えば、色域境界線分取得手段35aは、図12に示す線分をS135において取得した場合、Lab色空間上において、図13に示す線分をS136において取得することができる。
なお、色域境界線分取得手段35aは、図10(b)、図11(a)または図11(b)に示すように線分同士が端点以外の位置で交差しないパターンでS135において線分を取得する方法の方が、図11(c)に示すように線分同士が端点以外の位置で交差するパターンでS135において線分を取得する方法と比較して、好ましい。
例えば、図14(a)に示すようにRGB色空間において同一の平面上に存在する点51a、51b、51cおよび51dによって線分52a、52b、52c、52d、52e、52fがS135において取得されたとする。ここで、線分52eと、線分52fとは、端点以外の位置で互いに交差している。RGB色空間上の図14(a)に示す点51a、51b、51cおよび51dは、Lab色空間において、それぞれ、例えば図14(b)に示す点53a、53b、53cおよび53dに対応付けられる。ここで、点53a、53b、53cおよび53dは、四面体の頂点を構成する点である。そして、線分54a、54b、54c、54d、54e、54fは、それぞれ、線分52a、52b、52c、52d、52e、52fに対応付けられる線分である。
図14(b)において、線分54a、54b、54cおよび54dは、MFP20の色域の最外殻の基準となる線分である。しかしながら、点53a、53b、53cおよび53dによってMFP20の色域の最外殻が構成されるので、点53a、53bおよび53cによって構成される三角形と、点53a、53cおよび53dによって構成される三角形とによってMFP20の色域の最外殻が構成される場合には、線分54eおよび線分54fのうち線分54eのみがMFP20の色域の最外殻の基準となる線分になる。同様に、点53a、53bおよび53dによって構成される三角形と、点53b、53cおよび53dによって構成される三角形とによってMFP20の色域の最外殻が構成される場合には、線分54eおよび線分54fのうち線分54fのみがMFP20の色域の最外殻の基準となる線分になる。
このように、色域境界線分取得手段35aは、図11(c)に示すように線分同士が端点以外の位置で交差するパターンでS135において線分を取得する方法においては、MFP20の色域の最外殻の基準となる線分以外の線分を取得してしまう。
一方、色域境界線分取得手段35aは、図10(b)、図11(a)または図11(b)に示すように線分同士が端点以外の位置で交差しないパターンでS135において線分を取得する方法においては、MFP20の色域の最外殻の基準となる線分以外の線分を取得しない。
したがって、色域境界線分取得手段35aは、図10(b)、図11(a)または図11(b)に示すように線分同士が端点以外の位置で交差しないパターンでS135において線分を取得する方法の方が、図11(c)に示すように線分同士が端点以外の位置で交差するパターンでS135において線分を取得する方法と比較して、好ましい。
しかしながら、MFP20の色域の最外殻全体の大きさに対して、図14(b)に示す線分54eおよび線分54fの位置の差異は非常に小さいと考えることが可能である場合、線分54eおよび線分54fの両方をMFP20の色域の最外殻の基準となる線分として取得したとしても、最終的に取得する断面境界には殆ど影響しないと考えられる。したがって、色域境界線分取得手段35aは、図11(c)に示すように線分同士が端点以外の位置で交差するパターンでS135において線分を取得しても良い。
図5に示すように、色域境界線分取得手段35aは、S136の処理が終了すると、図5に示す色域境界線分取得処理を終了する。
図4に示すように、端点取得手段35cは、S101における色域境界線分取得処理が終了すると、断面境界線分の端点を取得する端点取得処理を実行する(S102)。
図15は、図4に示す端点取得処理のフローチャートである。
図15に示すように、端点取得手段35cは、MFP20の色域の断面を取得するための特定の平面の方程式を取得する(S161)。
例えば、規定点X{L
x,a
x,b
x}を含み明度が一定である平面が利用者によって指定されていたり、MFP20の色域を明度L
xである平面で切断した断面境界線分を取得することが決まっていたりする場合には、この平面は、数2に示す式で表される。したがって、端点取得手段35cは、S161において数2に示す式を取得する。
また、規定点X{L
x,a
x,b
x}を含み色相が一定である平面が利用者によって指定されている場合には、この平面は、数3に示す式で表される。すなわち、この平面は、L軸を含むので、L軸上に存在する黒色の点であるK{0,0,0}と、L軸上に存在する白色の点であるW{100,0,0}と、規定点X{L
x,a
x,b
x}との3点に基づいて、数3に示す式のように一意に規定することができる。数3に示す式は、数4に示す式によって表される。したがって、端点取得手段35cは、S161において数4に示す式を取得する。
また、規定の色相角H
dの平面が利用者によって指定されていたり、MFP20の色域を色相角H
dの平面で切断した断面境界線分を取得することが決まっていたりする場合には、この平面は、数5に示す式で表される。したがって、端点取得手段35cは、S161において数5に示す式を取得する。
また、規定点X{L
x,a
x,b
x}を含み法線ベクトルが{p,q,r}である平面が利用者によって指定されている場合には、この平面は、数6に示す式で表される。したがって、端点取得手段35cは、S161において数6に示す式を取得する。
なお、以上における規定点が色値としてのRGB値によって指定されている場合には、端点取得手段35cは、RGB値からLab値への換算LUT(Lookup Table)を照会してLab値に換算しても良い。また、端点取得手段35cは、指定されている規定点の色値としてのRGB値でパッチを形成してプリンター24によって印刷した後、印刷されたパッチが測色されることによって取得したLab値を使用しても良い。
端点取得手段35cは、S161の処理の後、S136において取得した線分のうち、S161において取得した平面と平行な線分を抽出する(S162)。ここで、平面と平行な線分を抽出する理由は、後述するS163の処理において、0で割る計算を実行することになったり、永久に終了しない計算を実行することになったりして処理が停止するエラーの発生を抑えるためである。なお、S161において取得した平面と実際には平行である線分であっても、コンピューターによって計算する際に生じる計算誤差によって平行ではないと判断されてしまう可能性がある。したがって、端点取得手段35cは、S161において取得した平面と略平行である線分も、平面と平行な線分としてS162において抽出する。
端点取得手段35cは、S162の処理の後、S136において取得した線分と、S161において取得した平面との交点を、断面境界線分の端点として取得する(S163)。ここで、端点取得手段35cは、S162において抽出した線分については、S163の処理の対象外とする。
例えば、S161において取得した平面が数4に示す式によって表される場合について説明する。
S161において取得した平面を表す数4に示す式に基づいた数7に示す式と、S136において取得した線分を表す数1に示す式とを連立して解くことによって、{L
i,a
i,b
i}の値と、パラメーターtの値とを求めることができる。ここで、パラメーターtの値が0より小さいか1より大きい場合の{L
i,a
i,b
i}は、S136において取得した線分を含む直線と、S161において取得した平面との交点ではあるが、S136において取得した線分と、S161において取得した平面との交点ではない。したがって、端点取得手段35cは、パラメーターtの値が0以上1以下の場合の{L
i,a
i,b
i}を、S136において取得した線分と、S161において取得した平面との交点の座標として取得する。
以上においては、S161において取得した平面が数4に示す式によって表される場合について説明したが、S161において取得した平面が数4に示す式以外の式によって表される場合についても同様である。
図16(a)は、S161において取得した平面がb=0の平面である場合の色域境界線分61と、平面および色域境界線分61の交点62との一例を示す図である。図16(b)は、S161において取得した平面がb=0の平面である場合の平面および色域境界線分61の交点62の一例を示す図である。
端点取得手段35cは、S161において取得した平面がb=0の平面である場合、図16に示すような交点62を、断面境界線分の端点としてS163において取得することができる。
図15に示すように、端点取得手段35cは、S163の処理が終了すると、図15に示す端点取得処理を終了する。
図4に示すように、断面境界線分取得手段35bは、S102における端点取得処理が終了すると、断面境界線分を取得する断面境界線分取得処理を実行する(S103)。
図17は、図4に示す断面境界線分取得処理のフローチャートである。
図17に示すように、断面境界線分取得手段35bは、巡回セールスマン問題のソルバーのライブラリーを呼び出す(S191)。
次いで、断面境界線分取得手段35bは、S163において取得された全ての端点を1回だけ通る巡回路が最短となるように巡回路を、S191において呼び出したライブラリーによって取得する(S192)。
次いで、断面境界線分取得手段35bは、S192において取得した巡回路を構成する線分を仮の断面境界線分(以下「断面仮境界線分」と言う。)として取得する(S193)。
例えば、図16(b)に示す断面境界線分の端点がS163において取得された場合、断面境界線分取得手段35bは、図18に示す線分71を断面仮境界線分としてS193において取得することができる。
以下、具体例として、図19に示す線分81が断面仮境界線分としてS193において取得された例を使用する。図19に示す線分81は、MFP20の色域を例えば明度Lが19である平面で切断した場合の断面仮境界線分である。すなわち、図19に示す線分81は、MFP20の色域の低明度の部分の断面仮境界線分である。各線分81の端点82は、S163において取得された端点である。
図17に示すように、断面境界線分取得手段35bは、S193の処理の後、S193において取得した断面仮境界線分の1つを対象にする(S194)。
次いで、断面境界線分取得手段35bは、対象の断面仮境界線分の検証用の平面(以下「検証用平面」と言う。)を取得する(S195)。すなわち、断面境界線分取得手段35bは、対象の断面仮境界線分に端点以外の点で交差する平面を検証用平面として取得する。例えば、断面境界線分取得手段35bは、対象の断面仮境界線分の中点を通り、対象の断面仮境界線分に直交する平面を検証用平面として取得する。ここで、対象の断面仮境界線分の中点の座標を{L
m,a
m,b
m}とし、対象の断面仮境界線分の方向ベクトルを数8とすると、数8が対象の断面仮境界線分に直交する平面の法線ベクトルとなるので、検証用平面の方程式は、数9に示す式となる。
なお、断面境界線分取得手段35bは、対象の断面仮境界線分の中点で対象の断面仮境界線分と交差する検証用平面を取得する場合、対象の断面仮境界線分の中点の空間上の座標を対象の断面仮境界線分の2つの端点の座標から容易に取得することができるので、検証用平面を取得するための計算の負担を抑えることができる。しかしながら、検証用平面は、対象の断面仮境界線分の中点以外の点で対象の断面仮境界線分と交差しても良い。例えば、検証用平面は、対象の断面仮境界線分において空間上の座標の数値が適当な切りの良い数値である点で対象の断面仮境界線分と交差しても良い。
また、断面境界線分取得手段35bは、対象の断面仮境界線分に直交する検証用平面を取得する場合、検証用平面の法線ベクトルを対象の断面仮境界線分の2つの端点の座標から容易に取得することができるので、検証用平面を取得するための計算の負担を抑えることができる。しかしながら、検証用平面は、対象の断面仮境界線分に直交する平面以外の平面を検証用平面として取得しても良い。
断面境界線分取得手段35bは、S195の処理の後、S136において取得された線分と、S195において取得した検証用平面との交点を、対象の断面仮境界線分の検証用の線分(以下「検証用線分」と言う)の端点として取得する(S196)。
次いで、断面境界線分取得手段35bは、S196において取得された全ての端点を1回だけ通る巡回路が最短となるように巡回路を、S191において呼び出したライブラリーによって取得する(S197)。
次いで、断面境界線分取得手段35bは、S197において取得した巡回路を構成する線分を検証用線分として取得する(S198)。
次いで、断面境界線分取得手段35bは、S198において取得した検証用線分と、対象の断面仮境界線分とが交差するか否かを判定する(S199)。ここで、検証用線分と、対象の断面仮境界線分とは、互いに交差する場合、検証用平面と、対象の断面仮境界線分との交点で交差する。
例えば、図19に示す例における断面仮境界線分としての複数の線分81のうち線分81aが対象の断面仮境界線分である場合、図20に示すように、S198において取得した検証用線分としての線分83と、対象の断面仮境界線分としての線分81aとは、検証用平面と、線分81aとの交点84で交差する。
また、図19に示す例における断面仮境界線分としての複数の線分81のうち線分81bが対象の断面仮境界線分である場合、図21に示すように、S198において取得した検証用線分としての線分85と、対象の断面仮境界線分としての線分81bとは、検証用平面と、線分81bとの交点86で交差しない。すなわち、線分81bと、線分85とは、ねじれの位置の関係にある。
図17に示すように、断面境界線分取得手段35bは、S198において取得した検証用線分と、対象の断面仮境界線分とが交差するとS199において判定すると、対象の断面仮境界線分を断面仮境界線分から除外して断面境界線分として取得する(S200)。
断面境界線分取得手段35bは、S198において取得した検証用線分と、対象の断面仮境界線分とが交差しないとS199において判定すると、対象の断面仮境界線分を断面仮境界線分から除外する(S201)。
断面境界線分取得手段35bは、S200またはS201の処理の後、断面仮境界線分が未だ残っているか否かを判断する(S202)。
断面境界線分取得手段35bは、断面仮境界線分が未だ残っているとS202において判断すると、S194の処理を実行する。
断面境界線分取得手段35bは、断面仮境界線分が残っていないとS202において判断すると、S200において取得された断面境界線分のみによって、S163において取得された全ての端点を1回だけ通る巡回路が構成されているか否かを判断する(S203)。
断面境界線分取得手段35bは、S163において取得された全ての端点を1回だけ通る巡回路が断面境界線分のみによって構成されていないとS203において判断すると、S163において取得された端点のうち、2本の断面境界線分が接続されていない端点同士を新たな組み合わせで結ぶことによって、断面境界線分の全ての端点を1回だけ通る巡回路を修正する(S204)。ここで、断面境界線分取得手段35bは、以前に断面仮境界線分とした線分における両端の端点を連続して通らないように巡回路を修正することによって、2本の断面境界線分が接続されていない端点同士を新たな組み合わせで結ぶ。なお、断面境界線分取得手段35bは、2本の断面境界線分が接続されていない端点同士の結び方が複数パターン存在する場合には、2本の断面境界線分が接続されていない端点同士を結んだ線分が最短となるパターンを採用することが好ましい。
例えば、図19に示す例における断面仮境界線分としての複数の線分81のうち線分81b、線分81c、線分81dおよび線分81eが断面境界線分ではない場合、図19に示す巡回路は、線分81b、線分81c、線分81dおよび線分81eを除外すると、図22に示すように3本に分割される。図22に示す状態において、線分81bの端点82aは、1本の断面境界線分のみが接続されている。線分81bの端点であって、線分81dの端点でもある端点82bは、断面境界線分が1本も接続されていない。線分81dの端点であって、端点82b以外の端点82cは、1本の断面境界線分のみが接続されている。線分81eの端点82dおよび端点82eは、それぞれ1本の断面境界線分のみが接続されている。線分81cの端点82fおよび端点82gは、それぞれ1本の断面境界線分のみが接続されている。断面境界線分取得手段35bは、図22に示す状態において、例えば、端点82aを、端点82b以外に最も近い端点82gに結ぶ。また、断面境界線分取得手段35bは、例えば、端点82dを、端点82e以外に最も近い端点82cに結ぶ。
図17に示すように、断面境界線分取得手段35bは、S204の処理の後、S204において修正した巡回路を構成する線分のうち、断面境界線分以外の線分を断面仮境界線分として取得する(S205)。
断面境界線分取得手段35bは、S205の処理の後、S194の処理を実行する。
断面境界線分取得手段35bは、S163において取得された全ての端点を1回だけ通る巡回路が断面境界線分のみによって構成されているとS203において判断すると、図17に示す断面境界線分取得処理を終了する。
例えば、図19に示す例における断面仮境界線分としての複数の線分81のうち線分81b、線分81c、線分81dおよび線分81eが断面境界線分ではない場合、断面境界線分取得手段35bは、図17に示す断面境界線分取得処理によって、図23に示すように、断面境界線分のみによって構成されている3つの巡回路を最終的に取得する。すなわち、断面境界線分取得手段35bは、MFP20の色域を明度Lが19である平面で切断した断面として、3つの領域に分かれて形成されている断面を取得する。
なお、断面境界線分取得手段35bは、S163において取得された全ての端点を1回だけ通る巡回路が断面境界線分のみによって構成されていないとS203において判断される限り、S194〜S205の処理を繰り返すが、S194〜S205の処理を何度繰り返しても、S163において取得された全ての端点を1回だけ通る巡回路が断面境界線分のみによって構成されない状況に備えて、S194〜S205の処理の繰り返しの回数の上限が設定されていても良い。
図4に示すように、制御部35は、S103における断面境界線分取得処理が終了すると、図4に示す動作を終了する。
なお、制御部35は、図4に示す動作によって取得された断面境界線分を使用して種々の動作を実行することができる。例えば、制御部35は、色域内外判定プログラム34aを実行することによって、断面境界を断面境界線分によって表示部32に表示したり、指定された色度値が断面境界の内外の何れであるかを判定したりすることができる。
以上に説明したように、色域内外判定装置30は、MFP20の色域の境界の基準となる線分、すなわち、色域境界線分と、特定の平面との全ての交点を1回だけ通る最短の巡回路を構成する線分を、仮の断面境界線分として取得し、取得した仮の断面境界線分が検証用の線分と交差する場合に仮の断面境界線分を断面の境界の基準となる線分、すなわち、断面境界線分として正式に取得するので、MFP20の色域を特定の平面で切断した実際の断面に凹みが形成されていたり、MFP20の色域を特定の平面で切断した実際の断面が複数の領域に分かれて形成されていたりしていたとしても、実際の断面と、取得する断面との差異を抑えることができる。
また、色域内外判定装置30は、仮の断面境界線分が検証用の線分と交差しない場合に新たな仮の断面境界線分を取得し、取得した新たな仮の断面境界線分が新たな検証用の線分と交差する場合に新たな仮の断面境界線分を断面の境界の基準となる線分、すなわち、断面境界線分として正式に取得するので、実際の断面と、取得する断面との差異を抑えることができる。
また、色域内外判定装置30は、巡回セールスマン問題のソルバーを使用して巡回路を取得する(S192)ので、MFP20の色域を特定の平面で切断した断面を取得するための処理負担を低減することができる。なお、色域内外判定装置30は、S163において取得された全ての端点を1回だけ通る最短の巡回路を、巡回セールスマン問題のソルバーを使用せずに取得しても良い。
色域内外判定装置30は、規定点X{Lx,ax,bx}を含み色相が一定である平面を数4に示す式によって取得し、この平面と、色域境界線分との交点を断面境界線分の端点として取得し、この端点に対して巡回セールスマン問題のソルバーのライブラリーを使用して断面境界線分を取得する。したがって、色域内外判定装置30は、Lab値をCHL(彩度、色相、明度)値に逐一変換することなく、規定点X{Lx,ax,bx}が所属する色相でのMFP20の色域の断面の断面境界線分を取得することができる。
本実施の形態において、S161の処理は、S101の処理の後に実行されるようになっているが、S101の処理の以前に実行されても良い。
なお、断面境界線分取得手段35bは、本実施の形態において、S204において巡回路を修正する場合に、2本の断面境界線分が接続されていない端点同士を結ぶとき、2本の断面境界線分が接続されていない端点同士を結んだ線分が最短となるパターンを採用する。しかしながら、断面境界線分取得手段35bは、2本の断面境界線分が接続されていない端点同士を結んだ線分が最短となるパターン以外のパターンで、2本の断面境界線分が接続されていない端点同士を結んでも良い。
断面境界線分取得手段35bは、S204において巡回路を修正する場合に、2本の断面境界線分が接続されていない端点同士を結ぶとき、2本の断面境界線分が接続されていない端点同士を結んだ線分が断面境界線分と交差しないように結んでも良い。このように結ぶことによって、断面境界線分取得手段35bは、断面境界線分にはなり得ない断面仮境界線分を取得することを防止するので、図17に示す断面境界線分取得処理を早期に終了することができる。
断面境界線分取得手段35bは、本実施の形態において、図17に示す断面境界線分取得処理において断面仮境界線分を必ず検証用線分によって検証してから断面境界線分とする。しかしながら、断面境界線分取得手段35bは、他に断面仮境界線分のパターンが残っていない場合、最後のパターンの断面仮境界線分に関しては、検証用線分によって検証することなく断面境界線分としても良い。このようにすることによって、断面境界線分取得手段35bは、図17に示す断面境界線分取得処理を早期に終了することができる。例えば、断面境界線分取得手段35bは、S163において取得された全ての端点を1回だけ通る巡回路が断面境界線分のみによって構成されていないとS203において判断した場合に、2本の断面境界線分が接続されていない端点が4つのみであるとき、その4つの端点A、B、C、Dのうちの端点Aに関して、端点Aと元々断面仮境界線分を構成していた端点Bを除けば、端点Aと新たに断面仮境界線分を構成可能な端点は端点Cおよび端点Dの何れかであるので、端点Aと、端点Cとを結んで新たに取得した断面仮境界線分が検証用線分による検証によって断面境界線分として不適合であったとき、端点Aと、端点Dとを結んだ線分を検証用線分による検証を経ずに断面境界線分としても良い。
断面境界線分取得手段35bは、本実施の形態において、巡回セールスマン問題のソルバーを使用して巡回路を取得する(S197)ので、検証用線分を取得するための処理負担を低減することができる。なお、断面境界線分取得手段35bは、S196において取得された全ての端点を1回だけ通る最短の巡回路を、巡回セールスマン問題のソルバーを使用せずに取得しても良い。
本発明の「コンピューター」および「色域断面取得装置」は、本実施の形態においてMFP20とは異なる色域内外判定装置30であるが、MFP20自体であっても良い。
本発明の「画像形成装置」は、本実施の形態においてMFPであるが、プリンター専用機など、MFP以外の画像形成装置であっても良い。