説明

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

【課題】出力デバイスの特性によってチャートの構成が変化しても、パッチデータの検出ルールを出力デバイス毎に構築しないパッチデータを生成する画像処理装置を提供する。
【解決手段】出力デバイスにて出力されるチャートのチャートデータを生成する画像処理装置であって、前記出力デバイスが再現できる色の範囲を示す色再現範囲情報を取得する再現情報取得手段と、前記色再現範囲情報にて示された範囲に含まれる色の中から、デバイス非依存の色空間における色を抽出し、パッチ候補のデータとする候補作成手段と、予め指定されたチャートデータに含まれるパッチの数に従って、前記候補作成手段にて作成されたパッチ候補のデータの中から、パッチデータを取得する取得手段と、前記取得手段にて取得されたパッチデータを用いてチャートデータを生成するチャート生成手段と、前記生成手段にて生成したチャートデータをデバイス依存の色空間におけるデータに変換する変換手段とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プリンタの色味を補正するチャートデータを作成するための画像処理装置、画像処理方法、およびプログラムに関する。
【背景技術】
【0002】
近年電子写真装置の性能が向上し、印刷機と同等の画質を実現した機械が登場している。しかし、出力デバイスの耐久や経時変化等により電子写真特有の色味が不安定になってしまい、色の変動量が印刷機に比べて大きいことが課題である。そこで、従来の電子写真装置ではシアン、マゼンタ、イエロー、ブラック(以下、C、M、Y、Kで示す)の各トナーに対応した1次元の階調補正用のLUT(Look Up Table)を作成する単色のキャリブレーション技術が搭載されている。LUTとは、特定の間隔で区切られた入力データに対応した出力データを示すテーブルであり、演算式では表せない非線形な特性を表現することが可能である。しかし、1次元のLUTで単色の階調特性を合わせたとしてもレッド、グリーン、ブルー(以下、R、G、Bで示す)、CMYを使ったグレー等の複数のトナーを使用した「混色」はプリンタに応じて非線形な差分が発生するため色味を保証することは難しい。
【0003】
この問題に対し、プリンタが再現可能な範囲の混色で作成されたチャートを出力してスキャナや測色機で測定して目標値と比較し、目標値と測定値との差分をデバイス非依存色空間(L*a*b*)内で算出し、その差分に基づき補正量を算出する。そして、補正量を元にデバイス非依存色空間(L*a*b*)をデバイス依存色空間(CMYK)に変換する3次元のLUTを更新して混色の色味を補正するという技術がある。
【0004】
例えば、ICCプロファイルが持つデスティネーションプロファイルに着目し、それを修正することで混色の色差を補正する技術が提案されている(例えば特許文献1)。一般に、プロファイルを再作成する場合、多数のパッチを出力して測色するために、膨大な時間がかかる。その問題に対して、特許文献1では、出力デバイスの特性に応じて、デバイス非依存色空間(L*a*b*)上で均等に分布するようなパッチを出力して測色することで、少数のパッチデータでプロファイルの再作成を行い、混色の色味の補正を実現している。ここで、ICCプロファイルとは、ICC(International Color Consortium)が定めた色変換時に使用するデータのことで、デスティネーションプロファイルは、一般的にLUTで構成されている。そして、L*a*b*とはCIE(国際照明委員会)によって定義されているデバイスに依存しない色空間の1つであり、L*は輝度、a*b*は色相及び彩度を表す。また、特許文献1に限らず、CMYKを入力に対して4次元LUTを使いC’、M’、Y’、K’を出力することで、混色の色味を補正することが可能である。
【0005】
一方、キャリブレーションを高精度に行うためには、対象デバイスによって出力されたキャリブレーション用のチャートを高精度に測定する必要がある。スキャナ等のチャートを面で読み込む装置を使ってチャートを読み取る場合、周辺のパッチの散乱光の影響で読み値が正確に得られないことがあるので、これらの外乱の影響を受けないように、チャートのパッチの大きさや位置の正確な検出精度が重要となる。ここで、パッチとは、図10のような用紙上に1個のデータにつき一定の大きさの矩形データとして表現したものである。そして、パッチの大きさや位置を正確に検出するためには、チャートがスキャナの原稿台に置かれた時の傾きも考慮しなければならない問題があった。
【0006】
また、特許文献2では、チャートのパッチデータに基づいて、チャートの向きが正しく置かれていると判定するための判定ルールを作成し、その作成した判定ルールを使って読み取ったチャートの向きを判定する。それによって、チャートに方向検出専用のパッチデータを含ませることなく、チャートの方向判定する技術が開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特許第4393294号明細書
【特許文献2】特開2009−060221号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1では、出力デバイスの混色の特性を考慮した混色で構成した補正用のパッチデータを生成している。このとき、出力デバイスによって色再現範囲や色再現性が異なるため、パッチの数やパッチデータが変化してしまう。よって、チャートの方向判定や傾き検知のためのルールをデバイスに依存しない共通のルールにすることが難しいため、出力エンジンの特性に応じて、パッチを読み取るためのシステムを再構築しなければならない。
【0009】
また、特許文献2では、生成されたパッチデータから方向判定するためのルールを作ることができるが、生成されたパッチ毎に判定ルールを作成しなければならない。よって特許文献1と同様に出力エンジンの特性に応じて、パッチを読み取るためのシステムを再構築しなければならない。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本願発明は以下の構成を有する。すなわち、出力デバイスにて出力されるチャートのチャートデータを生成する画像処理装置であって、前記出力デバイスが再現できる色の範囲を示す色再現範囲情報を取得する再現情報取得手段と、前記色再現範囲情報にて示された範囲に含まれる色の中から、デバイス非依存の色空間における色を抽出し、パッチ候補のデータとする候補作成手段と、予め指定されたチャートデータに含まれるパッチの数に従って、前記候補作成手段にて作成されたパッチ候補のデータの中から、パッチデータを取得する取得手段と、前記取得手段にて取得されたパッチデータを用いてチャートデータを生成するチャート生成手段と、前記生成手段にて生成したチャートデータをデバイス依存の色空間におけるデータに変換する変換手段とを有する。
【発明の効果】
【0011】
本発明によれば、出力デバイスの持つ混色特性を考慮したパッチ配列であっても、チャートの方向判定や傾き検知をするためのアルゴリズムに影響されることなく、パッチを高精度に測定することが可能となる。
【図面の簡単な説明】
【0012】
【図1】画像処理システムの全体構成の例を示す図。
【図2】画像処理の流れを示す図。
【図3】混色のキャリブレーション処理の流れを示す図。
【図4】混色のキャリブレーション処理の中の3次元LUT補正処理を示す図。
【図5】混色のキャリブレーション処理の中の4次元LUT補正処理を示す図。
【図6】チャートを作成する処理の流れを示す図。
【図7】パッチデータを作成する処理の流れを示す図。
【図8】第一実施形態に係るチャートにパッチデータを追加する処理の流れを示す図。
【図9】チャートにパッチを配列する処理の流れを示す図。
【図10】混色のキャリブレーションに用いるチャートの例を示す図。
【図11】L*a*b*色空間上で存在するパッチデータを2次元的に表す図。
【図12】パッチ検出のためのルールを示した例の図。
【図13】パッチデータの測定値を取得する処理の流れを示す図。
【図14】パッチのエッジ検出方法を説明する図。
【図15】第二実施形態に係るチャートにパッチデータを追加する処理の流れを示す図。
【図16】第三実施形態に係るチャートにパッチデータを追加する処理の流れを示す図。
【図17】L*a*b*色空間上に存在する格子点データや基準値と測色値を表す図。
【図18】第一実施形態に係るパッチデータを追加方法について説明した図。
【図19】第三実施形態に係る特定色情報を入力するUIの表示例について説明する図。
【発明を実施するための形態】
【0013】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【0014】
<第一実施形態>
[システム構成]
本発明に係る第一実施形態について説明する。本実施形態では出力デバイス有する混色特性を考慮したチャートを生成し、チャートの方向判定や傾き検知ルールを使って出力デバイスによって印刷されたチャートの測色値を取得する。そしてその測色値を使った出力デバイスの混色の色味を補正する方法について説明する。尚、本実施形態の混色の補正方法については、4次元LUTを用いた混色の補正方法を用いた場合について述べる。
【0015】
図1は本実施形態に係るシステムの構成図である。C、M、Y、Kの各トナーを用いる複合機(MFP:Multifunction Peripheral)101はネットワーク123を介して接続されている。またPC124はネットワーク123を介してMFP101と接続されている。PC124内のドライバ125はMFP101へ印刷データを送信するためのデバイスドライバである。
【0016】
MFP101について詳細に説明する。ネットワークI/F122は、印刷データ等の受信や後述するラスター画像や制御データ等の送信を行う。コントローラ102は、CPU103やレンダラ112、画像処理部114などで構成される。CPU103を使って処理されるインタプリタ104は、受信した印刷データのページ記述言語(PDL:Page Description Language)部分を解釈し、レンダラ112が解釈できる言語に変換した中間言語データ105を生成する。そして、CMS106ではソースプロファイル107及びデスティネーションプロファイル108を用いて色変換を行い、中間言語データ(CMS後)111を生成する。ここでCMS(Color Management System)は、後述するプロファイルの情報を用いて色変換を行う。
【0017】
また、ソースプロファイル107は、RGBやCMYK等のデバイスに依存する色空間をL*a*b*やXYZ等のデバイス非依存の色空間に変換するためのプロファイルである。XYZは、L*a*b*と同様にCIE(国際照明委員会)によって定義されているデバイスに依存しない色空間の1つであり、L*は輝度、a*b*は色相及び彩度を表す。また、XYZは、L*a*b*と同様にCIE(国際照明委員会)によって定義されているデバイス非依存の色空間であり、3種類の刺激値で色を表現する。また、デスティネーションプロファイル108は、デバイス非依存色空間を出力デバイス(プリンタ115)に依存したCMYK色空間に変換するためのカラープロファイルである。
【0018】
一方、CMS109は、デバイスリンクプロファイル110を用いて色変換を行い、中間言語データ(CMS後)111を生成する。ここでデバイスリンクプロファイル110は、RGBやCMYK等のデバイス依存色空間をデバイス(プリンタ115)に依存したCMYK色空間に直接変換するためのプロファイルである。そして、本実施形態において、ユーザは、CMS106とCMS109を選択可能な構成になっている。
【0019】
レンダラ112は、生成した中間言語データ(CMS後)111からラスター画像113を生成する。画像処理部114は、ラスター画像113やスキャナ119で読み込んだ画像に対して画像処理を行う。コントローラ102と接続されたプリンタ115は、シアン・マゼンタ・イエロー・ブラック等の有色トナーを用いて紙上に出力データを形成するプリンタである。プリンタ115は、紙の給紙を行う給紙部116と出力データを形成した紙を排紙する排紙部117を持つ。
【0020】
表示装置118は、ユーザへの指示やMFP101の状態を示すユーザインタフェース(UI:User Interface)を表示する。スキャナ119は、オートドキュメントフィーダを含むスキャナである。スキャナ119は束状のあるいは一枚の原稿画像を光源(不図示)で照射し、原稿反射像をレンズ(不図示)でCCD(Charge Coupled Device)センサ等の固体撮像素子上に結像する。そして、固体撮像素子からラスター状の画像読み取り信号はRGB色空間の画像データとして得る。入力装置120はユーザからの入力を受け付けるためのインタフェースで、例えばキーボードがある。記憶装置121はコントローラ102で処理されたデータやコントローラ102が受け取ったデータ等を保存する。
【0021】
測色機126はチャートを読み取ってL*a*b*やXYZ等のデバイスに依存しない色空間の値を取得できる機械であり、PC124やMFP101へ測色したデータを送信することができる。
【0022】
[処理フロー]
次に画像処理部114の処理の流れについて図2を用いて説明する。なお、図2において、処理工程にはS(ステップ)を参照番号に付与して示す。S201にて画像処理部114は画像データを受信する。そして、S202にて画像処理部114は、受け取ったデータがスキャナ119から受信したスキャンデータか、ドライバ125から送られたラスター画像113か、というジョブの種類を判別する。これらは、コントローラ102の内部でジョブの種類を判断するためのフラグがあり、そのフラグによって判断する。ここで、ジョブがドライバ125を経由したPDLジョブの場合はラスター画像113であり、CMSによってプリンタデバイスに依存するCMYKに変換されたCMYK画像211となる。
【0023】
スキャンデータの場合(S202にてYES)、受信した画像データはRGB画像203であるため、S204にて画像処理部114は色変換処理を行い、共通RGB画像205を生成する。ここで共通RGB画像205とはデバイスに依存しないRGB色空間で定義されており、演算によってL*a*b*等のデバイス非依存の色空間に変換することが可能である。一方、受信した画像データであるRGB画像203に対して、S206にて画像処理部114は文字判定処理を行い、文字判定データ207を生成する。ここでは画像のエッジ等を検出して文字判定データ207を生成する。
【0024】
そして、共通RGB画像205、および文字判定データ207の生成の後、S208にて画像処理部114は、S204にて生成した共通RGB画像205に対してフィルタ処理を行う。ここで、S206にて生成した文字判定データ207を用いて文字部とそれ以外で異なるフィルタ処理を行う。次に画像処理部114は、S209にて下地飛ばし処理、S210で色変換処理を行い、下地を除去したCMYK画像211を生成する。なお、S201にて受信した画像データがラスター画像である場合には(S202にてNO)、受信した画像が、CMYK画像211として扱われる。
【0025】
次にS212にて画像処理部114は、4次元LUT(4D−LUT)を用いてCMYKの混色データ(CMYK画像211)を補正するための処理を行う。混色の色味を補正する4次元LUTの生成方法については後述する。そして混色の色味を補正した後、画像処理部114は、S213にて1次元LUTを用いてシアン、マゼンタ、イエロー、ブラックの各単色の階調特性を補正する。1次元LUTの作成方法は各色の目標値と測定値を比較して目標値が再現できるように補正値を作る処理であり、詳細な説明は省略する。そして、S214にて画像処理部114は、ハーフトーン処理などの画像形成処理を行ってCMYK画像(2値)215を作成する。その後、S216にて画像処理部114は、画像データをプリンタ115へ送信する。
【0026】
<4次元LUT生成手順>
次に図2のS212の4D−LUT補正処理にて用いる混色の色味を補正するための4次元LUTを生成する処理の流れについて図3から図5を用いて説明する。以下の処理はコントローラ102のCPU103の指示により行い、記憶装置121やコントローラ102で記載されていない不揮発性のメモリを使ってデータの格納を行う。なお、各図において、実線で示す矢印は処理の流れを示し、破線で示す矢印は処理の中で用いられるデータの参照や出力といったデータの流れを示すものとする。
【0027】
図3は、4次元LUTを作成する処理の流れを示したものである。まず、S301にてコントローラ102は、チャートデータA302を読み込んで、画像処理部114における処理を行い、プリンタ115へ送信してチャート303を出力する。チャートデータA302は、後述する図10のように複数のパッチの構成からなる4次元LUTを補正するためのチャートのことである。チャートデータA302のパッチデータの生成方法については後述する。
【0028】
次にS304にてコントローラ102は、スキャナ119を用いてチャート303の画像データを取得し、画像データから各パッチの信号値の計測を行うことで測色値(L*a*b*)305を得る。S304のチャートの画像データから測色値を取得する手段については図13を用いて後述する。ここで、基準値(L*a*b*)307とは、出力デバイスの混色特性を目標の状態に補正するためのL*a*b*値であり、有彩色と無彩色のそれぞれで定められている。そして後述する図17では、L*a*b*色空間上にある基準値と測色値が示されており、基準値と測色値の差分を使って、4次元LUTを補正する。
【0029】
次にコントローラ102は、S306にて測色値(L*a*b*)305、基準値(L*a*b*)307及びL*a*b*→CMYの3D−LUT308を読み出し、3次元LUT補正処理を行う。そして、コントローラ102は、3次元LUT補正処理した結果であるL*a*b*→CMYの3D−LUT(補正後)309を出力する。S306の3次元LUTの補正処理については後述する。L*a*b*→CMYとは、L*a*b*からCMYに変換するための色変換用のLUTで、以下「→」で表記されているものは色空間を変換するためのLUTを示している。L*a*b*→CMYの3D−LUT308は既知の手法を用いて作成されたLUTであり、図17のような格子状に一定の間隔で定めたL*a*b*値(図17の格子点データ)に対応したデバイス固有のCMY値を記述したデータである。任意のL*a*b*値に対して補間演算を行い、CMY値を出力する。
【0030】
最後に、コントローラ102は、S310にてCMY→L*a*b*の3D−LUT311とL*a*b*→CMYの3D−LUT(補正後)309とデバイス情報312を用いて、CMYK→C’M’Y’K’の4D−LUT414を作成する。S310の4次元LUTの作成処理については図5を用いて後述する。CMY→L*a*b*の3D−LUT311は既知の手法を用いて作成した色変換用のLUTであり、格子状に一定の間隔で定めたCMY値に対応したL*a*b*値を記述したデータである。コントローラ102は、任意のCMY値に対して補間演算を行い、L*a*b*値を出力する。なお、格子点の一定の間隔は、予め定義されているものとする。
【0031】
(3次元LUT補正処理)
次に図3のS306で示す3次元LUT補正処理の詳細について、図4を用いて説明する。なお、図4において、処理工程にはS(ステップ)を参照番号に付与して示す。まず、S401にてコントローラ102は、記憶装置121から測色値(L*a*b*)305と基準値(L*a*b*)307を用いて有彩色のデータと無彩色のデータのそれぞれに対して差分データ402を算出する。差分データ402は、チャートデータA302のデータの個数分算出され、有彩色と無彩色で分類されている。
【0032】
次にS403にてコントローラ102は、記憶装置121からL*a*b*→CMYの3D−LUT308を読み出し、格子点データ(L*a*b*)の1つを抽出し、有彩色か無彩色かを判定する。本実施形態にて用いられる判定方法の例を説明する。a*及びb*の値は色相/彩度を示すデータであるため、両方のデータが“0”に近いものを無彩色として判定する。この場合に例えば、判定のために閾値を定める方法などが考えられるが、ここでの判定方法は特に限定しない。この判定したデータが格子点データ(L*a*b*及び有彩無彩情報)404となる。ここで、L*a*b*のデータは、L*が0〜100、a*とb*がそれぞれ−128〜128の範囲で、格子点の数が33×33×33の場合、L*が約3ずつ、a*とb*が8ずつ均等に増加したデータとなる。つまり、ここで抽出した格子点データは、(L*,a*,b*)=(0,−128,−128)から(L*,a*,b*)=(100,128,128)の範囲で構成された33×33×33=35937個のデータのうちの1つとなる。さらに、このデータには、有彩色であるか無彩色であるかの情報が付加されているものとする。
【0033】
次に、S405にてコントローラ102は、格子点データ(L*a*b*及び有彩無彩情報)404と基準値(L*a*b*)307との距離を算出する。そしてS406にてコントローラ102は距離が一定の閾値以内の差分データを抽出し、その差分データから格子点データ(L*a*b*及び有彩無彩情報)404の補正量を決定する。その際に格子点データの有彩無彩情報を参照して、有彩色の時は有彩色の差分データを、無彩色の時は無彩色の差分データを用いて抽出処理を行う。
【0034】
次にS407にてコントローラ102は、格子点補正量を格子点データ(L*a*b*及び有彩無彩情報)404に反映し、補正後格子点データ(L*a*b*)408として記憶部に格納する。そして、S409にてコントローラ102は、全ての格子点データに対して処理を行ったか判定を行う。全ての格子点データに対して処理を行っていない場合は(S409にてNO)、コントローラ102は、新しい格子点データをS403にて抽出し、処理を繰り返す。
【0035】
全ての格子点データを処理した場合は(S409にてYES)、S410にてコントローラ102は補間演算処理を行う。全ての格子点データを処理している場合、格子点の数の分だけ補正後格子点データ(L*a*b*)408が作成されている。このデータに対してコントローラ102は、S410にてL*a*b*→CMYの3D−LUT308を用いて補間演算を行い、新しいCMY値を算出する。コントローラ102は、このCMY値を元々の格子点データに対する出力値として記憶部に格納し、L*a*b*→CMYの3D−LUT(補正後)309を作成する。
【0036】
以上のように格子点から一定の距離内にある差分データを参照して格子点の補正量を決定することで、少ないデータ数で多くの格子点データの補正量を決定することが可能となる。なお、本実施形態の例に限らず、L*a*b*→CMYの3D−LUT309を補正する手法であればどのようなものであってもよい。
【0037】
(4次元LUT作成処理)
次に図3のS310の4次元LUTを作成する処理について、図5を用いて説明する。なお、図5において、処理工程にはS(ステップ)を参照番号に付与して示す。まず、S501にてコントローラ102は、CMYK均等データ502からCMY値を抽出する。ここでCMYK均等データの数は、CMYK→C’M’Y’K’の4D−LUT313の格子点と同じ数であり、データの間隔も同じである。例えばCMYK→C’M’Y’K’の4D−LUT313の格子点数が8×8×8×8=4096個の場合は、CMYK均等データ502の数は4096個となる。データが8ビット(0〜255)で表現される場合は、データの間隔は約36となる。
【0038】
次にS503にてコントローラ102は、CMY→L*a*b*の3D−LUT311とL*a*b*→CMYの3D−LUT(補正後)411とを用いて補間演算を行い、CMY値を決定する。まず、コントローラ102は、抽出されたCMY値からCMY→L*a*b*の3D−LUT311を用いて補間演算を実行し、L*a*b*値を求める。次にコントローラ102は、先ほど算出したL*a*b*値からL*a*b*→CMYの3D−LUT(補正後)411を用いて補間演算を実行し、CMY値を算出する。
【0039】
次に、S504にてコントローラ102は、CMYK均等データ502からKの値を抽出し、先ほど決定されたCMY値を組み合わせてCMYK値505を作成する。ここで抽出したK値はS501にて抽出されたCMY値に対応するものである。
【0040】
そしてS506にてコントローラ102は、デバイス情報312を用いて載り量制限処理を行う。ここでデバイス情報312とはプリンタ115が適用可能なトナー量を数値で表現したものであり、本明細書では「載り量」と定義する。例えばCMYKの場合、単色の最大値を100%とすると、各色の合計は最大で400%の信号値が設定できる。しかし、適用可能なトナーの総量が300%として制限されている場合には、その載り量の上限は300%となる。
【0041】
CMYK値505は、その組み合わせによっては規定の載り量を超える可能性があるため、既知の下色除去(UCR:Under Color Removal)処理等を行って載り量制限処理を行う。ここで、UCR処理とはCMYのトナーをKのトナーに置き換える処理のことである。一般に黒を表現する場合、CMYを等量用いて表現する手法とK単独で表現する手法が存在する。K単独で表現した場合、CMYで表現する場合に比べて濃度が低くなってしまうが、載り量を少なくできるというメリットがある。
【0042】
そしてS507にてコントローラ102は、純色化処理を行ってCMYK値(補正後)508を作成する。CMYK→C’M’Y’K’の4D−LUT313で補正する際に、補間演算を行った結果、単色で入力されたデータが、2次色以上の混色で出力されてしまうことがある。実際は、C単色のデータはC単色で出力されることが望ましい。それを実現するため、元となったCMYK均等データ502を参照して、純色データであった場合、CMYK値を純色データに修正する。例えばCMYK均等データ502がC単色であるのにCMYK値(補正後)508にMの値が入っている場合はMの値を“0”にする。
【0043】
そしてS509にてコントローラ102は、CMYK値(補正後)508をCMYK→C’M’Y’K’の4D−LUT313に格納する。最後にS510にてコントローラ102は、CMYK均等データ502を全て処理したかの判定を行う。全てのデータを処理していない場合は(S510にてNO)、コントローラ102は、残りのCMYK均等データ502からCMY値を抽出し、処理を繰り返す。全てのデータをした場合は(S510にてYES)、コントローラ102は処理を終了し、CMYK→C’M’Y’K’の4D−LUT313が完成する。
【0044】
ここで、LUTの格子点の数については、本実施形態の例に限らずどのようなものであってもよい。さらに、格子点数は例えばCMYK→C’M’Y’K’の4D−LUT414でCとMの格子点数が異なるなど、特殊な構成のLUTでもよい。
【0045】
<パッチデータ生成手順>
4次元LUT作成処理で使用するチャートデータAのパッチデータを生成する流れについて図6から図9を用いて説明する。以下の処理はコントローラ102のCPU103の指示により行い、記憶装置121やコントローラ102で記載されていない不揮発性のメモリを使ってデータの格納を行う。なお、各図において、処理工程にはS(ステップ)を参照番号に付与して示す。また、各図において、実線で示す矢印は処理の流れを示し、破線で示す矢印は処理の中で用いられるデータの参照や出力といったデータの流れを示すものとする。
【0046】
(チャートデータ生成処理)
図6は、チャートデータA302を作成する流れについて示している。まず、S601にてコントローラ102は、出力デバイスの色再現範囲が判定できるチャートデータB602を読み込み、画像処理部114で処理を行った後、プリンタ115へ送信してチャート603を出力する。例えば、チャートデータB602は、R、G、B、C、M、Y、Kの各色のパッチデータは信号値が100%となっているデータとなり、KのパッチデータはC、M、Yそれぞれの信号値が100%で表現されたデータである。
【0047】
次に、S604にて、ユーザが測色機126を用いてチャートの測色値である色再現範囲データ(L*a*b*)605を取得し、測色値をコントローラ102に送信する。ここで、本実施形態の構成に限らず、パッチデータを測定し、そのデータをL*a*b*値に変換できる手段があれば、どのようなもの処理方法でもよい。また、色再現範囲データとは、出力デバイスにおいて、色の再現が可能な範囲を色空間上で示す色再現範囲情報である。これにより再現情報取得手段を実現する。
【0048】
次に、S606にてコントローラ102は、色再現範囲データ(L*a*b*)605とパッチ検出ルール607とを用いて、パッチデータ作成処理を行い、検出ルールに使用できるように選別がされる前の状態である選別前パッチデータ608を作成する。S606のパッチデータ作成処理については図7を用いて後述する。
【0049】
本実施形態にて用いられるパッチ検出ルール607とは、チャートデータA302を出力デバイスで出力した後にスキャナを用いてチャートの画像を取得し、チャートの構成に基づく方向判定やパッチの中心位置の検知に使用するためのルールが定義されている。例えば、チャートの方向判定をするために、図10の1行目1列目にあるパッチは「無彩色で高濃度の色である」というルールがある。そして、M行目N列目にあるパッチは、図11の1102のように「L*a*b*色空間上でa*とb*の差分の絶対値が最も大きくなる色である」というルールが格納されている。他にも、画像全体からパッチの中心位置を取得するために、エッジ抽出を用いる場合に判定するためのパッチデータ毎の閾値やパッチデータの最大個数についても格納する。
【0050】
次に、S609にてコントローラ102は、パッチ検出ルール607と選別前パッチデータとを用いて、データ選別処理を行い、選別後パッチデータ610とチャート情報611とを作成する。S609のデータ選別処理については図9を用いて後述する。本実施形態にて用いられるチャート情報611とは、チャート全体を構成する情報が格納されている。例えば、チャートデータA302のパッチ数や主走査方向、副走査方向それぞれのパッチ数やパッチの大きさについて格納している。他にも、パッチの有彩色や無彩色の情報についても格納している。
【0051】
次に、S612にてコントローラ102は、選別後パッチデータ610とL*a*b*→CMY 3D−LUT308とを用いて補間演算を行い、チャートデータA302を作成する。そして、本処理フローを終了する。
【0052】
(パッチデータ作成処理)
図7は、S606のパッチデータ作成処理の流れを示す。パッチデータ作成処理の概要は、以下のようになる。色差均等データ(L*a*b*)703は、(L*,a*,b*)=(0,−128,−128)から(L*,a*,b*)=(100,128,128)の範囲で構成されたP×P×Pのデータを保持している。このとき、デバイス非依存の色空間における色差が均等になるように構成されている。そして、変数Pの範囲は1からPmaxまでとなる格子点数を示している。尚、色差均等データは、デバイス非依存の色空間における色差が厳密に均等であるものに限定されず、デバイス非依存の色空間を略均等に分割した位置に相当するデータであってもよいことは言うまでもない。そして、色差均等データ(L*a*b*)703から、出力デバイスの色再現範囲内にあるデータを抽出し、各格子点数で色再現範囲内にあるパッチデータの個数を保持する。そして、チャートに使用できる最大のパッチ数を超えていない範囲で、一番パッチ数の多い格子点数となる格子点データを抽出し、選別前パッチデータ608として格納する。そして、選別前パッチデータ608をチャートに配置した場合にチャートが矩形状にならない場合は、他のパッチ候補データの中からパッチデータを追加して、矩形状となるようにする。
【0053】
S606のパッチデータ作成処理にて生成された選別前パッチデータ608を用いてチャートを作成した場合に、矩形状にならないことがある。矩形状にならない場合に、矩形状になるまで、選別前パッチデータ608の各パッチデータから一定の色差を超えているパッチデータをパッチ候補データ707から検索し、抽出されたパッチデータを選別前パッチデータ608に追加する。全てのパッチ候補データ707から追加できるデータを検索し、矩形状とならない場合は、矩形状になるまでダミーのパッチデータを追加し、矩形状となる場合は、パッチデータの追加を行わない。以上が、S606におけるパッチデータ作成処理の概要である。
【0054】
まず、S701にてコントローラ102は、変数Pの初期値を“1”とする。次に、S702にてコントローラ102は、色差均等データ(L*a*b*)703から格子点がPのときの格子点データの1つを取得する。これにより、データ取得手段を実現する。次に、S702にてコントローラ102は、色再現範囲データ(L*a*b*)605を用いて、S702で取得した格子点データの色再現領域内外判定を行う。
【0055】
例えば、色再現範囲内外判定方法としては、特許第3566350号などの方法を用いることができる。ここで特許第3566350号は、出力デバイスの色再現範囲がR、G、B、C、M、Y、K、Wの8点によって定義されている場合、8点をL*a*b*値に変換する。そしてR、G、B、C、M、Yの6点とK及びWの陵線から形成される12面体で出力デバイスの色再現範囲を近似する。形成された12面体に対して出力デバイスの色再現範囲の内部に存在する点は、色再現範囲内であると判定する方法である。チャートデータB(CMY)602のデータがR、G、B、C、M、Y、K、Wを表現するパッチである場合、色再現範囲データ(L*a*b*)605から12面体でデバイス色再現範囲を近似できる。その結果、格子点データは出力デバイスの色再現範囲内外判定を行うことができる。
【0056】
S705にて、色再現範囲判定の結果が出力デバイスの色再現範囲外である場合は(S705にてNO)、コントローラ102は、S709にて全てのL*a*b*データで処理したのか判定を行う。S705にて色再現範囲判定の結果が色再現範囲内である場合は(S705にてYES)、コントローラ102は、S706にてS702で取得した格子点データをパッチ候補データ707に格納する。これにより、候補作成手段を実現する。そして、S708にてコントローラ102はP格子点数で色再現範囲内にあるパッチの数を1つ増やす。
【0057】
S709にて、コントローラ102は、格子点がPのときの色差均等データ内の格子点データが全て処理されたかの判定を行う。全ての格子点データを処理していない場合は(S709にてNO)、コントローラ102は、S702にて次の格子点データを取得して処理を繰り返す。S709にて、全ての格子点データを処理した場合は(S709にてYES)、コントローラ102は、S710にて格子点数が生成する最大格子点数(Pmax)を超えたか判定を行う。
【0058】
Pmaxが変数Pよりも小さい場合(S710にてYES)、S711にて、コントローラ102は、変数Pを1つ増やす。そして、コントローラ102はS702にて、格子点がPの時の格子点データを取得し、処理を繰り返す。Pmaxが変数P以上となる場合(S710にてNO)、コントローラ102は、S712の処理を行う。ここで、最大格子点数Pmaxはユーザが指定しても構わないが、L*a*b*→CMY 3D−LUT308の格子点数までになることが望ましい。
【0059】
次に、S712にてコントローラ102は、パッチ検出ルール607にて定義されたパッチデータの最大個数を読み出す。そして、コントローラ102は、読み出したパッチデータの最大個数を超えない範囲で、パッチとして使用する格子点数を決定する。
【0060】
次に、S713にてコントローラ102は、S712で決定された格子点数のパッチデータをパッチ候補データ707の中から抽出し、選別前パッチデータ608へ格納する。次に、S714にてコントローラ102は、選別前パッチデータ608をチャートに配置してチャートが矩形状になっているのか判定を行う。ここで、矩形状とは、パッチデータをチャート上に配置して図10におけるM行N列目にパッチが存在していることをいう。
【0061】
チャートが矩形状となった場合は(S714にてYES)、コントローラ102は、処理を終了する。チャートが矩形状とならない場合は(S714にてNO)、コントローラ102はS715にて、パッチ検出ルール607と選別前パッチデータ608とパッチ候補データ707とを用いて、パッチデータの追加を行う。S715のパッチデータの追加処理については図8を用いて後述する。
【0062】
ただし、チャートに配置したときに、パッチ検出ルール607で検出等に使用しないパッチにデータが存在しない場合、矩形状になる必要がないので、その場合は、コントローラ102は処理を終了する。例えば、M行N列目のルール1を必要としないでも、チャートの方向判定や傾きできる方法があれば、M行N列目のパッチはどのようなパッチデータでもよいので、必ずしも矩形状である必要はなくなる。
【0063】
(パッチデータの追加処理)
図8は、図7のS715のパッチデータの追加処理の流れを示す。パッチデータの追加処理の概要は以下のようになる。S606のパッチデータ作成処理にて生成された選別前パッチデータ608を用いてチャートを作成した場合に、矩形状にならないことがある。矩形状にならない場合に、矩形状になるまで、選別前パッチデータ608の各パッチデータから一定の色差を超えているパッチデータをパッチ候補データ707から抽出する。
【0064】
図18のパッチ候補データ1801のように色差以内に選別前パッチデータが見つからないパッチ候補データを選別前パッチデータ608に追加する。図18のパッチ候補データ1802のように色差以内に選別前パッチデータが見つかったパッチ候補データは、選別前パッチデータ608に追加しない。パッチ候補データ707から1個ずつ条件に合うパッチ追加し、全てのパッチ候補データ707を探索するまでに矩形状とならない場合は、エラーとして処理を終了する。また、矩形状となる場合は、正常終了して、選別前パッチデータ608を使ってチャートの作成を行う。
【0065】
まず、S801にてコントローラ102は、パッチ候補データ707のパッチデータを1つ取得する。なお本実施形態では、追加するパッチデータの色に偏りをなくすために、取得するパッチ候補データ707は、ランダムで取得するようにする。なお取得方法については、これに限定するものではない。次に、S802にてコントローラ102は、選別前パッチデータ608の選別前パッチデータを1つ取得する。
【0066】
次に、S802にてコントローラ102は、S801で取得した候補パッチデータとS802で取得した選別前パッチデータと間の色差を算出する。そして、S804にてS803で算出した色差が閾値を超えているか判定を行う。閾値は、格子点間の補正精度の偏りを避けるためにあるもので、最大格子点数Pmaxの場合の格子点間隔を閾値にしてもよい。
【0067】
S804で色差が閾値を超えていない場合は(S804にてNO)、S806にてコントローラ102は、全ての選別前データを処理したのか判定を行う。S804で色差が閾値を超えている場合は(S804にてYES)、S805にてコントローラ102は、パッチ候補データを選別前パッチデータ608に格納する。S807にてコントローラ102は、パッチ検出ルール607を用いてチャートが矩形状になっているのか判定を行う。尚、この判定方法は、S714と同様である。
【0068】
S807でチャートが矩形状になっている場合は(S807にてYES)、処理を終了する。S807にてチャートが矩形状となっていない場合は(S807にてNO)、S808にてコントローラ102は、全てのパッチ候補データを処理したのか判定を行う。
【0069】
S806で全ての選別前データを処理していない場合は(S806にてNO)、コントローラ102はS802で選別前パッチデータ608の取得を行い、全ての選別前パッチデータを処理するまで繰り返す。全ての選別前データを処理した場合(S806にてYES)、コントローラ102は、S808にて全てのパッチ候補データを処理したか判定を行う。
【0070】
S808で全てのパッチ候補データを処理していない場合は(S808にてNO)、コントローラ102はS801にてパッチ候補データの読み出し、全てのパッチ候補データを処理するまで繰り返す。全てのパッチ候補データを処理した場合は(S808にてYES)、チャートが矩形状にならなかったことでチャートの検出ができない。そのため、コントローラ102はS809にて矩形状になるまで足りないパッチデータにダミーのデータを選別前パッチデータ608に格納し、処理を終了する。例えば、ダミーのデータデータとして、白色のL*a*b*値(L*,a*,b*)=(100,0,0)としてもよい。
【0071】
(データ選別処理)
図9は、図6のS609のデータ選別処理について説明する。データ選別処理の概要は、以下のようになる。選別前パッチデータ608の1個ずつのパッチをパッチ検出に使用できるのか選別を行い、ルール別に一旦データを格納する。そして、検出ルールに基づきルール別に選別されたパッチデータを配列し直し、チャートからパッチ検出が可能となる選別後パッチデータ610を作成する。
【0072】
まず、S901にてコントローラ102は、選別前パッチデータ608のパッチデータを1つ取得する。次に、S902にてコントローラ102は、パッチ検出ルール607の検出ルールを読み出す。
【0073】
ここで、本実施形態の例にある検出ルールは、「無彩色」、「ルール1」、「ルール2」とあるので、それぞれについて図11と図12を使って説明する。図11は選別前パッチデータ608とL*a*b*→CMY 3D−LUT308の格子点データとをa*−b*平面上の2次元で投影したときの例を示す。図11では、選別前パッチデータ608のL*a*b*格子点(図11の▲印)、L*a*b*→CMY 3D−LUT308のL*a*b*格子点(図11の●印)、および出力デバイスの色再現範囲(図11の実線)を示している。
【0074】
無彩色とは、S403で無彩色と判定されるような色であり、図11のパッチデータ1101のようなパッチデータを意味する。ルール1では、図11のパッチデータ1102、1103のようなパッチデータであり、a*とb*の差分の絶対値を算出した場合に、その絶対値が最も大きくなるデータをルール1にて使用可能なデータとして用いる。ルール2では、図11では図示されていないパッチデータであり、L*の値がメディアの下地のL*と比較して所定の値以上の差となるデータがルール2にて使用可能なデータとして用いる。ここで、閾値とはチャートのエッジを検出するときに用いる値である。
【0075】
図12は、検出ルールを適用したチャートの配置したときの例を示したものである。無彩色で高濃度となるパッチデータ、つまり無彩色でL*が低くなるようなパッチデータは、図12のパッチデータ1201の位置である1行目1列目に配置する。ルール1のパッチデータは図12のパッチデータ1202の位置であるM行目N列目に配置する。ルール2のパッチデータは、図12のパッチデータ1203の位置であるM行目1列目とパッチデータ1204の位置である1行目N列目に配置する。
【0076】
もちろん、他のパッチ位置に無彩色のパッチデータに該当するデータを配置させても構わない。検出ルールは本実施形態に示した例に限らず、他のルールとなる場合は、パッチ検出に利用するパッチ位置が変わった場合は、それに応じてパッチ検出に利用するパッチ位置が変わることは言うまでもない。また、本実施形態では、無彩色、ルール1、ルール2、その他の順にパッチを優先付けしてパッチを適用しているが(S903〜S909)、ルールの内容が変更されれば、当然その優先順も変更されることとなる。
【0077】
次に、S903にてコントローラ102は、S901で取得したパッチデータが無彩色であるのか判定する。S903にて無彩色データと判定された場合(S903にてYES)、S904にてコントローラ102は、パッチデータが無彩色データであるという情報を設定する。S903にて無彩色データではないと判定された場合(S903にてNO)、S905にてコントローラ102はパッチデータがルール1に使用可能なパッチデータであるか判定を行う。
【0078】
S905にてルール1に使用可能であると判定された場合(S905にてYES)、S906にてコントローラ102は、パッチデータがルール1のデータであるという情報を設定する。S905にてルール1に使用できないと判定された場合(S905にてNO)、S907にてパッチデータがルール2に使用可能なパッチデータであるか判定を行う。S907にてルール2に使用可能であると判定された場合(S907にてYES)、S908にてコントローラ102は、パッチデータがルール2のデータであるという情報を設定する。S907にてルール2に使用できないと判定された場合(S907にてNO)、S909にてコントローラ102は、パッチデータがその他のパッチデータであるという情報を設定する。
【0079】
次に、S910にてコントローラ102は、設定された情報を元にルール別にパッチデータをルール別パッチデータ911に格納する。次にS912にてコントローラ102は、全てのお選別前パッチデータ608を処理したか判定を行う。全て処理された場合(S912にてYES)、S913にてコントローラ102は、パッチ検出ルール607とルール別パッチデータ911とを用いて検出ルールに基づいたパッチデータの配列を行い、選別後パッチデータ610を作成する。
【0080】
パッチデータの配列方法は、後述する図13に示すようにそれぞれのルールで決められているパッチ位置に該当するパッチデータを優先的に配置することである。例えばその他のパッチ配置方法に、ユーザにチャートの向きをわかりやすくするため、1行目のN列目を除く色に優先的に無彩色のパッチデータを配置しても良い。次に、S914にて、コントローラ102は、S913で配列したパッチに関する情報をチャート情報611に格納する。例えば、S913で配列したパッチの総数や主走査方向と副走査方向それぞれのパッチ数、パッチの有彩無彩情報についても格納する。これにより、チャート生成手段を実現する。
【0081】
本実施形態のパッチデータ生成方法により、経時変化や使用している環境によって出力デバイスの特性が変化した場合でも、現状の出力デバイスの特性に合わせた適切なパッチが作成可能となる。それにより、適切なパッチ数で高精度に混色の補正のための4次元LUTを作成することが可能となる。例えば、パッチデータ作成直後に、出力デバイスを使ってパッチデータを出力し、測色機126を用いて出力したパッチの測色値を取得して、そのデータを測色値(L*a*b*)305として登録してもよい。
【0082】
なお、本実施形態にて示したルールに限らず、パッチ検出可能となるようなルールであればどのようなものでもよい。そして、ルールの数もパッチの検出が可能となる数あればよいので、ルールの数が変われば、それに伴ってルール別に判断する分岐数が変化することは言うまでもない。
【0083】
<パッチデータ取得手順>
S304のスキャナで取得したチャート303の画像データから各パッチの測色値を得る処理の流れについて図13を使って説明する。以下の処理はコントローラ102のCPU103の指示により行い、記憶装置121やコントローラ102の中にある不揮発性のメモリを使ってデータの格納を行う。
【0084】
まず、S1301にてスキャナ119は、チャート303の読み込みを行い、チャート303の画像データ1302を得る。ここでチャート303は、チャートデータA302を出力デバイスで印刷したものである。次に、S1303にてコントローラ102は、取得した画像データ1302とRGB→L*a*b* 3D−LUT1304を使って補間演算を行い、画像データ1302をL*a*b*色空間に変換する。RGB→L*a*b*の3D−LUT1304は既知の手法を用いて作成した色変換用のLUTであり、格子状に一定の間隔で定めたRGB値に対応したL*a*b*値を記述したデータである。
【0085】
次に、S1305にてコントローラ102は、チャート情報611とパッチ検出ルール607とを用いて画像データ1302のチャートのエッジを検出する。主走査方向のチャートのエッジ検出方法について図14を使って説明する。ここで、主走査方向とは、図14のx方向のことで、副走査方向とは図14のy方向であるとする。図14に示すStepとは副走査方向へエッジ検出を行う幅のことで、1以上の整数値となる。
【0086】
まず、副走査方向に着目画素と前の画素との輝度L*の差分を計算し、差分値が閾値を超えた場合にエッジと判断する。しかし、スキャナのガラス面の付着したゴミがある可能性も想定されるため、さらに副走査方向に一定の画素数だけエッジ検出を行い、副走査方向に再度エッジがない場合には、先のエッジをチャートのエッジと判断する。副走査方向へエッジ検出をして見つからなかった場合は、主走査方向へ何画素か移動させ、同様の処理を行ってエッジ検出を行い、最初に見つかったエッジ部分をx1とする。そして、x1から主走査方向にチャート情報から(N−1)パッチ分の画素を移動させ、エッジ検出を行うことでx2を検出する。
【0087】
エッジが検出されない場合は、再度x1から検索し直すようにする。以上の処理を行うことでチャートの上辺の位置を検出することが可能になる。そして、副走査方向でも同様の処理を行い、チャートの左辺のy1とy2を検出する。本実施形態では、図12に示す1201、1202、1204のパッチデータは、L*において紙白との差分があるので、エッジの検出ができるが、エッジ検出のためのルールが異なっても同様の効果を得られればどのようなものでもよい。
【0088】
次に、S1306にてコントローラ102は、チャートの傾きが閾値以下であることを判定する。傾きの判定方法は、S1305で検出されたx1とx2のy座標の差分の絶対値であるdyと、y1とy2のx座標の差分の絶対値であるdxとが閾値以下である場合に傾きがないと判定する。例えば、閾値を決める方法として、5度傾いた場合のdxとdyの値を算出し、閾値としてもよい。S1306にてチャートが傾いていると判定された場合(S1306にてNO)、S1308にて表示装置118は、チャートが傾いているという内容を表示し、もう一度チャートを置き直すようにユーザに促して再度チャートを読み直す。
【0089】
S1306にてチャートが傾いていないと判定された場合(S1306にてYES)、S1307にてコントローラ102は、チャートの先端部を算出する。チャートの先端部の算出方法として、例えば、x1とx2を通る直線と、y1とy2を通る直線の交点がチャートの先端部であるとする。
【0090】
次に、S1309にてコントローラ102は、チャート情報611に格納されているパッチの大きさとS1307で算出したチャートの先端部、S1306で算出したdxとdyを使って各パッチの中心位置を算出する。このとき、dxとdyから1パッチあたりの傾きが算出することができるので、傾きを考慮した各パッチの中心位置を高精度で決めることが可能となる。
【0091】
次にS1310にてコントローラ102は、S1309で求めた各パッチの中心位置から各パッチの信号値(画素値)を取得する。信号値を求める場合、中心位置の画素だけでなく周辺画素の信号値を用いて平均値を算出したものを信号値としてもよい。
【0092】
次に、S1311にてコントローラ102は、S1310で求めた各パッチの信号値とパッチ検出ルール607とを用いて方向判定を行う。例えば方向判定の方法として、図10の1行1列目に図12の無彩色で高濃度のパッチデータ1201と図10のM行N列目に図12のルール1のパッチデータ1202とがある場合、パッチデータのa*とb*の差分の絶対値の違いを使った判定方法がある。
【0093】
なお、他にも、チャートを作成したときにチャート情報611の各パッチデータのL*a*b*値を保持させて、S1310で求めた各パッチの信号値と比較を行い、各信号値の差分結果が大きい場合に間違いであると判定する方法を用いても良い。その場合には、ルール1を設定する必要がなく、チャートが矩形状になる必要もなくなる。以上のような例のようにパッチルールを設定しても、チャートの方向判定することができ、同様の効果が得られる。
【0094】
次に、S1312にてコントローラ102は、S1311で得られたチャートの向きが正しくセットされているのか判定を行う。チャートの向きが間違っている場合(S1312にてNO)、S1314にて表示装置118は、チャートの向きが正しくないという内容を表示し、もう一度チャートを置き直すようにユーザに促して再度チャートを読み直す。S1312にてチャートの向きが正しい場合(S1312にてYES)、S1313にてコントローラ102は、S1310で得られた信号値を有彩色と無彩色に分類し、その結果を測色値(L*a*b*)305として記憶部に格納し、処理を終了する。
【0095】
本実施形態におけるパッチデータの取得方法について述べたが、これに限らず、スキャン画像パッチから向きや傾きについて判定し、パッチデータの値を取得できる方法であればどのような方法でもよい。
【0096】
本発明により、出力デバイスが有する混色特性を考慮したチャートを生成し、適切なパッチ数で高精度に混色の補正のための4次元LUTを作成することが可能となる。また、本実施形態のパッチデータ生成方法により、経時変化や使用している環境によって出力デバイスの特性が変化した場合でも、現状の出力デバイスの特性に合わせた適切なパッチが作成可能となる。
【0097】
また、出力デバイスに依存したチャートのパッチ配列であっても、チャートの方向判定や傾き検知などのルールが出力デバイスに依存しないため、チャートのパッチデータを高精度に測定することが可能となる。また、チャートのエッジ検出を行った傾き検知を行うことで、各パッチの中心位置を正確に得ることができ、高精度なパッチデータの測定を行うことができる。
【0098】
また、チャートの方向判定については、2つのパッチに特徴を持たせることで判定するので、計算量も少ない判定が可能となる。
【0099】
<第二実施形態>
次に出力デバイスにおけるチャートの濃度ムラを考慮したパッチデータの追加処理方法について説明する。第一実施形態では、出力デバイスの持つ混色特性を考慮したチャートを生成し、適切なパッチ数で高精度に混色の補正のための4次元LUTを作成することを実現する構成としていた。
【0100】
しかし、図7のパッチデータの追加処理において、チャートが矩形上となるまで、パッチ間の色差が一定の間隔以上になるパッチデータを追加するので、計算時間がかかってしまう可能性があった。また、出力デバイスにおけるトナーの転写工程や定着工程は、出力デバイス周辺の温度や湿度、もしくは経時変化などの影響を受けやすく、紙上に定着トナー量が変化してしまい、濃度ムラが起きる可能性がある。これに対し、本実施形態では、チャートのパッチデータの追加処理においてパッチ間の色差が一定の間隔以上になるパッチデータを追加させるだけでなく、出力デバイスにおけるチャートの濃度ムラを考慮した処理方法について説明する。なお、ここでは、第一実施形態との差分のみを述べ、重複する箇所については第一実施形態と同様の処理を行う。なお、図4において、処理工程にはS(ステップ)を参照番号に付与して示す。また、各図において、実線で示す矢印は処理の流れを示し、破線で示す矢印は処理の中で用いられるデータの参照や出力といったデータの流れを示すものとする。
【0101】
(パッチデータの追加処理)
図15は、第一実施形態にて図7のS715のパッチデータの追加処理の流れについて説明しており、第一実施形態の図8に対応する。図7で行っていた他のパッチ候補データの中から色差が一定の間隔以上となるパッチデータを選びだすのではなく、ダミーフラグを付加したものである。
【0102】
本実施形態では、選別前パッチデータ608やルール別パッチデータ911に対してパッチ毎にダミーフラグが付加できるようにする。そして、チャート情報611にも同様にダミーフラグに関する情報が記載されているようにする。以下の処理はコントローラ102のCPU103の指示により行い、記憶装置121やコントローラ102の中にある不揮発性のメモリを使ってデータの格納を行う。
【0103】
まず、S1501にてコントローラ102は、パッチ検出ルールを使って、図7のS714と同様にチャートが矩形状になっているか判定をする。S1501にて矩形状であると判定された場合(S1501にてYES)、処理を終了する。S1501にて矩形状ではないと判定された場合(S1501にてNO)、S1502にてコントローラ102は、パッチデータにダミーフラグを付加する。このとき付加されたパッチデータの色を表すデータに関しては、白色等のどのような色でもよい。
【0104】
次に、S1503にてコントローラ102は、選別前パッチデータ608にS1502でダミーフラグを付加したパッチデータを格納し、同様の処理を矩形状になるまで繰り返す。矩形状にした場合に、空白になっているパッチデータにダミーフラグを付加させることになるので、図8のように、パッチ候補データ707の中から使用できるパッチデータを探索する方法に比べて計算量を少なくすることが可能となる。
【0105】
第一実施形態で述べたS913の検出ルールに基づきデータを配列する処理では、ルール別パッチデータ911を使ってデータを配列するが、ダミーフラグが付加されたデータに関しては、そのパッチデータから離れているパッチのデータに置き換える処理を行う。例えば、M行4列のパッチにダミーフラグが付加された場合は、1行(N−4)列のパッチデータに置き換えを行う。そして、パッチ検出ルールで使用するパッチ位置に、ダミーフラグが付加されているパッチを配置しないようにする。
【0106】
第一実施形態で述べたS1313のデータを有彩色と無彩色に分類する処理の後で、さらにダミーフラグの付加されているパッチデータに関しては置き換え元となるパッチデータとの平均化を行う。これにより、出力デバイスでチャートのチャート内の濃度ムラについて考慮することができ、濃度ムラに影響しないパッチデータを得ることができる。
【0107】
本実施形態におけるパッチデータの追加処理方法について述べたが、これに限らず、パッチデータに対して、ダミーとなるパッチデータを追加することで、出力デバイスによるチャート面の濃度ムラの影響を抑える方法であればどのような方法でもよい。
【0108】
本発明により、パッチ間の色差が一定の間隔以上となるように考慮しているだけでなく、作成されたチャートが出力デバイスで印刷されたチャートにおける濃度ムラ等を考慮した構成となった。その結果、濃度ムラに影響しないパッチデータを得ることができ、さらに、第一実施形態と比べて計算量を少なくさせてパッチデータを作成することが可能となる。
【0109】
<第三実施形態>
次に特定の色を考慮した場合のパッチデータの追加処理方法について説明する。先の実施形態では出力デバイスが有する混色特性を考慮して、さらにパッチ間の色差が一定の間隔以上になるパッチデータを追加する処理について述べた。しかし、上述した方法では特に補正精度を向上させたい色を指定することができなかった。これに対し、本実施形態では、チャートのパッチデータの追加処理において特定色情報を用いたパッチデータを追加処理方法について説明する。なお、ここでは、第一実施形態との差分のみを述べ、重複する箇所については第一実施形態と同様の処理を行う。
【0110】
まず、特定色情報1603の作成方法について説明する。表示装置118は特定色を入力するための特定色入力画面を表示する。受付手段である特定色入力画面の例は図19を用いて説明する。
【0111】
表示装置118は、UI1901において特定色を指定するためのC、M、Y、Kをそれぞれ入力するためのフォーム1902、1903、1904、1905を表示する。それぞれのフォームには、入力装置120を使って、数値の入力を行うことができ、入力値の範囲についてはCMYK値の場合はそれぞれ0〜100とする。フォーム1902はCの数値を入力するためのものであり、同様にフォーム1903はM、フォーム1904はY、フォーム1905はKとなる。
【0112】
「測色機による測定」ボタン1906が押下されると、測色機を使った測定値を入力値に指定することができる。例えば、測色機126にて、特定の色と指定したいカラーパッチの測色を行って測色値を取得する。次に測色値は、ネットワーク123経由でネットワークI/F122を使ってコントローラ102はデータを受信し、特定色の測定値を取得してもよい。測定した色空間がL*a*b*値だった場合は、L*a*b*値として入力されるようにしてもよいし、CMYK値に変換した値としても良い。
【0113】
「L*a*b*切り替え」ボタン1907が押下されると、CMYKによる入力画面から、L*a*b*による入力画面に切り替わる。L*a*b*値の入力範囲の例として、L*が0〜100、a*が−128〜128、b*が−128〜128としてもよい。もちろん、L*a*b*の場合の入力フォームの数は、3個である。「次へ」ボタン1908が押下されると、次の特定色を入力する画面となり、特定色の数を追加することが可能となる。「終了」ボタン1909が押下されると、特定色の入力を終了し、これまで入力した値は、記憶装置121やコントローラ102の中にある不揮発性のメモリを使ってデータの保持を行う。
【0114】
以上の操作を行うことで、特定色情報1603が作成される。
【0115】
(パッチデータの追加処理)
図16は、第一実施形態にて図7のS715のパッチデータの追加処理の流れについて説明しており、第一実施形態の図8に対応する。図7で行っていた他のパッチ候補データの中から一定の色差が離れているパッチデータを選びだすだけではなく、特定色情報1603において特定の色として使用できるパッチデータを追加する。以下の処理はコントローラ102のCPU103の指示により行い、記憶装置121やコントローラ102の中にある不揮発性のメモリを使ってデータの格納を行う。なお、図16において、処理工程にはS(ステップ)を参照番号に付与して示す。また、各図において、実線で示す矢印は処理の流れを示し、破線で示す矢印は処理の中で用いられるデータの参照や出力といったデータの流れを示すものとする。
【0116】
まず、S1601にてコントローラ102は、パッチ候補データ707のパッチデータを1つ取得する。本実施形態では、追加するパッチデータの色に偏りをなくすために、取得するパッチ候補データ707は、ランダムで取得する。なお取得方法については、これに限定するものではない。次に、S1602にてコントローラ102は、特定色情報1603を取得し、S1601にて取得したパッチデータが、特定色のパッチデータになるのか判定する。ここでは、特定色のパッチデータとして使える判定をする時に、特定色情報1603の中にあるL*a*b*値とパッチデータの色差が特定色判定用の閾値より小さいかで判定を行う。
【0117】
次に、S1604にてコントローラ102は、S1602の特定色で使用できるパッチか判定した結果を使った判定を行う。S1604で特定色として使用できるパッチと判定された場合(S1604にてYES)、S1605にてコントローラ102は、選別前パッチデータ608からパッチデータを1つ取得する。次に、S1605にてコントローラ102は、S1601で取得したパッチ候補データとS1605で取得した選別前パッチデータの色差を算出する。
【0118】
そして、S1607にてS1606で算出した色差が閾値を超えているか判定を行う。閾値は、特定色のパッチデータを追加するためであったり、格子点間の補正精度の偏りを避けるためであったりするので、最大格子点数Pmaxの場合の格子点間隔を閾値にしてもよい。
【0119】
色差が閾値を超えていない場合(S1607にてNO)、S1610にてコントローラ102は、全ての選別前データを処理したのか判定を行う。S1607で色差が閾値を超えている場合(S1607にてYES)、S1608にてコントローラ102は、パッチ候補データを選別前パッチデータ608に格納する。S1609にてコントローラ102は、パッチ検出ルール607を用いてチャートが矩形状になっているのか判定を行う。尚、この判定方法は、第一実施形態にて述べたS714の方法と同様である。
【0120】
S1609でチャートが矩形状になっている場合(S1609にてYES)、処理を終了する。S1609にてチャートが矩形状となっていない場合(S1609にてNO)、S1611にてコントローラ102は、全てのパッチ候補データを処理したのか判定を行う。
【0121】
全ての選別前データを処理していない場合(S1610にてNO)、コントローラ102はS1605にて選別前パッチデータ608の取得を行い、全てのデータを処理するまで繰り返す。全ての選別前データを処理した場合(S1610にてYES)、コントローラ102は、S1611にて全てのパッチ候補データを処理したか判定を行う。全てのパッチ候補データを処理していない場合は(S1611にてNO)、コントローラ102はS1601にてパッチ候補データの読み出しを行う。全ての選別前データを処理した場合は(S1611にてYES)、チャートが矩形状にならなかったことでチャートの検出ができない。そのため、コントローラ102は、S1612にて矩形状になるまで足りたいパッチデータにダミーのデータを選別前パッチデータ608に格納し、処理を終了する。例えば、ダミーのデータデータとして、白色のL*a*b*値(L*,a*,b*)=(100,0,0)としてもよいし、第二実施形態にて述べたような方法を行ってもよい。
【0122】
予め特定色となるパッチデータを入れるデータの数を決めておき、S712にて、チャートに使用する格子点数を決定するときに、その特定色パッチデータ用のデータ数も考慮して、格子点数を決定しても良い。その場合には、必ずパッチデータの追加処理を行い、そして追加する特定色パッチデータ用のデータ数の分は追加できるようにする。これより特定色とする色を高精度に混色の補正をする4次元LUTを作成し、補正したい色を中心に補正を行うことが可能となる。
【0123】
本実施形態におけるパッチデータの追加処理方法について述べたが、これに限らず、特定色情報を使ってパッチデータをチャートに追加できる方法であればどのような方法でもよい。
【0124】
本発明により、パッチ間の色差が一定の間隔以上となるように考慮しているだけでなく、補正精度を特に向上させたい色に近い色のパッチデータを追加できる構成となった。その結果、特定色情報を考慮した混色の補正をする4次元LUTを作成し、補正したい色を中心に補正を行うことが可能となる。
【0125】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
出力デバイスにて出力されるチャートのチャートデータを生成する画像処理装置であって、
前記出力デバイスが再現できる色の範囲を示す色再現範囲情報を取得する再現情報取得手段と、
前記色再現範囲情報にて示された範囲に含まれる色の中から、デバイス非依存の色空間における色を抽出し、パッチ候補のデータとする候補作成手段と、
予め指定されたチャートデータに含まれるパッチの数に従って、前記候補作成手段にて作成されたパッチ候補のデータの中から、パッチデータを取得する取得手段と、
前記取得手段にて取得されたパッチデータを用いてチャートデータを生成するチャート生成手段と、
前記生成手段にて生成したチャートデータをデバイス依存の色空間におけるデータに変換する変換手段と
を有することを特徴とする画像処理装置。
【請求項2】
前記候補作成手段は、
デバイス非依存の色空間で色差が均等な間隔の格子点それぞれを示す色差均等データを取得するデータ取得手段と、
前記色差均等データにて示される格子点のうち、前記色再現範囲情報にて示された色再現範囲内にある格子点を判定する判定手段と、
前記判定手段により色再現範囲内と判定された格子点の値を、パッチ候補のデータとして保持する保持手段と
を有することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記取得手段は、
前記取得したパッチデータを用いて、前記予め指定されたチャートデータに含まれるパッチの数から構成されるチャートデータを生成できるか否かを判定する判定手段と、
前記判定手段により、チャートデータが生成できないと判定された場合に、パッチデータを追加する追加手段と
を有することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記追加手段は、取得しているパッチデータそれぞれに対して、一定の値の以上の色差を有するデータをパッチデータとして追加することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記追加手段は、予め定義された値を有するデータをパッチデータとして追加することを特徴とする請求項3に記載の画像処理装置。
【請求項6】
ユーザから前記チャートデータに含める特定色の指定を受け付ける受付手段を更に有し、
前記追加手段は、前記保持しているパッチ候補のデータのうち、前記特定色との色差が所定の値以下であり、かつ、前記取得手段にて取得したパッチデータとの色差が所定の値以上であるパッチ候補のデータをパッチデータとして追加することを特徴とする請求項3に記載の画像処理装置。
【請求項7】
前記チャート生成手段は、
前記取得手段にて取得したパッチデータを、予め定義されたルールに従って分類し、当該分類に従って配置する配置手段と、
前記配置したパッチデータからチャートデータを作成する手段と
を有することを特徴とする請求項1に記載の画像処理装置。
【請求項8】
前記出力デバイスにより出力されたチャートを測定する測定手段を更に有し、
前記測定手段は、
スキャナを用いて前記出力されたチャートから画像データを取得する手段と、
前記取得した画像データを、デバイス依存の色空間からデバイス非依存の色空間に変換する手段と、
前記画像データからチャートのエッジを検出し、当該エッジからチャートの傾きを判定する手段と、
前記傾きが閾値以下であると判定された場合に、前記検出したチャートのエッジから前記チャートの端部を算出する手段と、
前記算出したチャートの端部と前記チャートの構成の情報を用いて、前記画像データに含まれるパッチそれぞれの中心位置を特定し、当該パッチの中心位置から信号値を取得する手段と、
前記取得したパッチの信号値と前記チャートの構成の情報から当該チャートが測定される方向として前記スキャナにて正しく配置されているかを判定する手段と、
前記チャートが正しく配置されていると判定された場合に、前記取得したパッチの信号値を測色値とする手段と
を有することを特徴とする請求項1に記載の画像処理装置。
【請求項9】
出力デバイスにて出力されるチャートのチャートデータを生成する画像処理方法であって、
再現情報取得手段が、前記出力デバイスが再現できる色の範囲を示す色再現範囲情報を取得する再現情報取得工程と、
候補作成手段が、前記色再現範囲情報にて示された範囲に含まれる色の中から、デバイス非依存の色空間における色を抽出し、パッチ候補のデータとする候補作成工程と、
取得手段が、予め指定されたチャートデータに含まれるパッチの数に従って、前記候補作成手段にて作成されたパッチ候補のデータの中から、パッチデータを取得する取得工程と、
チャート生成手段が、前記取得工程にて取得されたパッチデータを用いてチャートデータを生成するチャート生成工程と
変換手段が、前記生成工程にて生成したチャートデータをデバイス依存の色空間におけるデータに変換する変換工程と
を有することを特徴とする画像処理方法。
【請求項10】
コンピュータを、
出力デバイスが再現できる色の範囲を示す色再現範囲情報を取得する再現情報取得手段、
前記色再現範囲情報にて示された範囲に含まれる色の中から、デバイス非依存の色空間における色を抽出し、パッチ候補のデータとする候補作成手段と、
予め指定されたチャートデータに含まれるパッチの数に従って、前記候補作成手段にて作成されたパッチ候補のデータの中から、パッチデータを取得する取得手段、
前記取得手段にて取得されたパッチデータを用いてチャートデータを生成するチャート生成手段、
前記生成手段にて生成したチャートデータをデバイス依存の色空間におけるデータに変換する変換手段
として機能させるためのプログラム。

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

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2013−55427(P2013−55427A)
【公開日】平成25年3月21日(2013.3.21)
【国際特許分類】
【出願番号】特願2011−191079(P2011−191079)
【出願日】平成23年9月1日(2011.9.1)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】