(57)【特許請求の範囲】
【請求項１】
色差に基づいて入力画像を複数の色領域に分割する分割手段と、
前記分割された色領域間の境界のみについて色勾配を算出し、当該算出した色勾配に基づいて前記分割された色領域間の境界ごとに色勾配情報を算出する色勾配情報算出手段と、
前記境界ごとに算出された色勾配情報の特性を用いて、各境界のグラデーション属性を判定する属性判定手段と、
前記属性判定手段にて判定された各境界のグラデーション属性に基づき、当該入力画像に対してベクトル化を行う手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記ベクトル化を行う手段は、
前記属性判定手段にて判定された各境界のグラデーション属性を用いて、前記複数の色領域の中から同じグラデーションに属する境界及び色領域を判定してグラデーションクラスタを生成し、当該生成されたグラデーションクラスタに属する境界及び色領域と当該グラデーションクラスタに属する境界のグラデーション属性に基づいて決定される当該グラデーションクラスタのグラデーションの種別とに関する情報を含むグラデーションクラスタ情報を生成するグラデーションクラスタ情報生成手段と、
前記色領域と前記色勾配情報と前記グラデーションクラスタ情報とを用いて、前記グラデーションクラスタごとにグラデーションのパラメータを生成するグラデーションパラメータ生成手段と、
前記グラデーションクラスタ情報を用いて、前記同じグラデーションクラスタに属する色領域を統合する色領域統合手段と、
前記色領域統合手段にて統合した後の色領域に基づいて、輪郭のベクトル記述を生成し、当該輪郭のベクトル記述と前記グラデーションのパラメータとに基づいてグラデーション領域のベクトルデータを生成する輪郭ベクトル記述生成手段と
を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記各境界のグラデーション属性は、
該境界における色勾配が一の方向もしくは相対しない二の方向に一定である線形グラデーション属性、もしくは、
該境界における色勾配が全ての方向に一定である放射グラデーション属性
のいずれかを含むことを特徴する請求項１または２に記載の画像処理装置。
【請求項４】
前記属性判定手段は、更に、該境界における色勾配の強度が予め定められた所定の閾値よりも大きい場合に、当該境界がエッジであると判定することを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記グラデーションのパラメータは、少なくともグラデーションを表現するための点の位置情報と色情報とを含むことを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記グラデーションパラメータ生成手段は、前記入力画像から前記同じグラデーションに属する各色領域の平均色を算出し、前記色情報を生成する際に当該色領域の平均色を用いることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記グラデーションパラメータ生成手段が生成したパラメータに対し、前記グラデーション領域の端部または中心部における、色情報の補完を行うグラデーションパラメータ補完手段を更に備えることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
分割手段が、色差に基づいて入力画像を複数の色領域に分割する分割工程と、
色勾配情報算出手段が、前記分割された色領域間の境界のみについて色勾配を算出し、当該算出した色勾配に基づいて前記分割された色領域間の境界ごとに色勾配情報を算出する色勾配情報算出工程と、
属性判定手段が、前記境界ごとに算出された色勾配情報の特性を用いて、各境界のグラデーション属性を判定する属性判定工程と、
ベクトル化手段が、前記属性判定工程にて判定された各境界のグラデーション属性に基づき、前記入力画像に対してベクトル化を行う工程と、
を有することを特徴とする画像処理方法。
【請求項９】
コンピュータを、請求項１乃至７のいずれか一項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理技術に関し、特にラスタ画像からグラデーション部分を抽出し、ベクタ画像へ変換を行う画像処理技術に関する。
【背景技術】
【０００２】
近年、一つの画像情報を異なる機器で用いる機会が増えてきている。このため機器間の送信コストを低減するための高圧縮性や、機器間の解像度の違いに対応するための高画質性も要求されている。またユーザの利便性に関しても、部分的に画像を再編集できる編集性といった面も要求されている。これによりラスタ形式で表現された画像を、解像度に依存せず再編集も容易なベクタ形式へ変換する、ベクトル化技術が必要となってきている。
【０００３】
しかしラスタ形式で表現された画像中の全ての色をベクトルで再現した場合、ノイズ等も全て再現してしまうためベクトル形式の利点である高画質性、高圧縮性、再編集性が損なわれてしまう。そこでベクトル化技術においてはラスタ画像における色数をある程度まで絞り込み減色を行うような減色処理が必要となる。
【０００４】
画像のベクトル化技術における減色処理の手法が特許文献１で開示されている。この手法では画像を入力し、色の類似度を使って入力画像の色数を減色する。次に各色領域の輪郭線を抽出した後に関数近似を行い、色情報を加えてベクトルデータを出力する。しかし、上記のような色の類似度による減色処理は、グラデーション領域を処理した場合に原画にはない色領域間の輪郭、即ち擬似輪郭を生じさせてしまい画質の劣化を招いてしまう。
【０００５】
そこで特許文献２では減色処理によって得られる色領域のグラデーションの属性を判別し、属性に応じたベクトル化する手法を開示している。この手法では上述の減色処理で同一領域と判定された領域を更に詳細に解析する、即ち各色領域中の各画素間の色変化方向を検出し、その結果を用いてグラデーション属性の判別を行う。また特許文献３では画像からグラデーション領域を判別し、ベクトル化を行う手法を開示している。この手法では画像中の各画素間の色勾配を算出し、その結果を用いてグラデーション領域を判別し、得られたグラデーション領域に対しほぼ同じ色の画素を有するパスを生成する。このパスにほぼ垂直な垂線を定義し、この垂線上に代表色値を計算し、ベクトル化を行う。しかし上記に示される手法では画像全域に対し色勾配を算出するための演算を必要とするため低速化を招いてしまう。
【０００６】
したがって、画像中のグラデーション領域を高速に同定し、その特徴に応じたグラデーションパラメータを生成する技術はこれまでなかった。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−３４４０６９号公報
【特許文献２】特開２００７−２７２４５６号公報
【特許文献３】特表２００９−５０８２３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、上記課題を鑑みてなされたものであり、グラデーションベクトル化処理を高速に行う。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明に係る画像処理装置は以下の構成を備える。すなわち、画像処理装置であって、色差に基づいて入力画像を複数の色領域に分割する分割手段と、前記分割された色領域間の境界のみについて色勾配を算出し、当該算出した色勾配に基づいて前記分割された色領域間の境界ごとに色勾配情報を算出する色勾配情報算出手段と、前記境界ごとに算出された色勾配情報の特性を用いて、各境界のグラデーション属性を判定する属性判定手段と、前記属性判定手段にて判定された各境界のグラデーション属性に基づき、当該入力画像に対してベクトル化を行う手段とを備える。
【発明の効果】
【００１０】
本発明によると、入力画像のグラデーションの特徴に応じたグラデーション領域のベクトル化を高速に行える。
【図面の簡単な説明】
【００１１】
【図１】画像処理装置のメイン処理を示すフローチャート。
【図２】画像処理装置のブロック構成図。
【図３】第一実施形態に係る境界色勾配情報の例を示す図。
【図４】第一実施形態に係る境界色勾配情報算出フローを示す図。
【図５】第一実施形態に係るラスタスキャンを行う際の着目画素と比較画素を示す図。
【図６】第一実施形態に係る色勾配を算出する窓関数を示す図。
【図７】第一実施形態に係る属性判定処理フローを示す図。
【図８】第一実施形態に係る放射グラデーションの入力例とその色領域識別結果を示す図。
【図９】第一実施形態に係る線形グラデーションの入力例とその色領域識別結果を示す図。
【図１０】第一実施形態に係る複雑グラデーションの入力例とその色領域識別結果を示す図。
【図１１】第一実施形態に係るグラデーションクラスタ情報生成処理フローを示す図。
【図１２】第一実施形態に係るグラデーションクラスタ情報生成処理の具体例を示す図。
【図１３】第一実施形態に係る図１２の境界色勾配情報及び境界属性を示す図。
【図１４】第一実施形態に係る図１２のグラデーションクラスタ情報を示す図。
【図１５】第一実施形態に係る線形グラデーションパラメータ生成の概念図。
【図１６】第一実施形態に係る線形グラデーションパラメータの具体例を示す図。
【図１７】第一実施形態に係る放射グラデーションパラメータ生成の概念図。
【図１８】第一実施形態に係る放射グラデーションパラメータの具体例を示す図。
【図１９】第一実施形態に係る色領域統合処理後の新しい色領域識別結果の具体例を示す図。
【図２０】ベクトル化結果をレンダリングしたベクトル画像を示す図。
【図２１】第一実施形態に係る線形グラデーションベクトル化の概念図。
【図２２】第二実施形態に係る線形グラデーション始終点のオフセットを補完する概念図。
【図２３】第二実施形態に係る放射グラデーション中心のオフセットを補完する概念図。
【図２４】第二実施形態に係るメイン処理を示すフローチャート。
【図２５】第二実施形態に係るオフセット補完フローを示す図。
【発明を実施するための形態】
【００１２】
＜第一実施形態＞
以下、添付の図面を参照して本発明に係る実施形態を説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１３】
［機器構成］
本実施形態の画像処理装置の構成例について、図２のブロック図を参照して説明する。図２において、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７は、装置全体を制御する。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）６は、変更を必要としないプログラムやパラメータを格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５は、外部装置等から供給されるプログラムやデータを一時記憶する。スキャナ１は、文書等を光電走査して電子的な画像データを得て入力データとし、画像入出力Ｉ／Ｏ３はこのスキャナ１と画像処理装置を接続する。画像メモリ２は、スキャナ１で読み取られた画像データ等を保持する。外部記憶装置１２は、固定して設置されたハードディスクやメモリカード、あるいは着脱可能なフレキシブルディスク（ＦＤ）やＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）等の光ディスク、磁気や光カード、ＩＣカード、メモリカード等を含む。また、Ｉ／Ｏ１３は、これら外部記憶装置１２とコンピュータ装置との入出力インタフェース。Ｉ／Ｏ１５は、ユーザの操作を受け、データを入力するマウス等のポインティングデバイス１０やキーボード９等の入力デバイスとの入出力インタフェースである。映像Ｉ／Ｏ１４は、画像処理装置の保持するデータや供給されたデータを表示するためのディスプレイモニタ８との入出力インタフェースである。通信Ｉ／Ｆ４は、インターネット等のネットワーク回線に接続するためのインタフェースである。システムバス１１は、画像処理装置内の各ユニットを通信可能に接続する。
【００１４】
［処理フロー］
以下、ＣＰＵ７上で実行されるプログラムにより本願発明を実現する処理手順を、図１のフローチャートを用いて説明する。
【００１５】
図１のフローチャートにおいて、Ｓ１００で処理を開始すると、処理対象となる画像領域を含む画像データを入力する。画像入力に関しては、図２のスキャナ１にて読み取られた画像データを画像入出力Ｉ／Ｏ３を介して画像メモリ２に入力する。また、通信Ｉ／Ｆ４を介して、装置外部より処理対象となる画像領域を含む画像を入力してもよく、あるいは、外部記憶装置１２に予め記憶される画像データをＩ／Ｏ１３を介して読み込んでもよい。得られた入力画像は、画像メモリ２上に保持される。
【００１６】
［色領域識別処理］
次に読み取った画像データに対してＳ２００で色領域識別処理を行う。スキャナなどの入力手段を用いた場合、入力画像にノイズが重畳され、代表色の特定が難しいことが起こりうる。この場合、減色処理を行い、色差が小さい画素をまとめて同じ色情報を有するようにすることで、同色領域として、複数の色領域に分割することができる。まず、Ｓ２０１では入力画像に対して減色処理を施すことで、上記問題を解消することができる。例えば特許文献１で開示されている手法では、入力画像中の画素から色情報を元にクラスタを構成し、類似するクラスタやノイズと思われるクラスタを統合することでスキャンノイズを除去するものがある。これを適用することで、スキャン画像入力等で生じるノイズ除去することができる。なお、ノイズ除去の方法については、他の手法を用いても構わない。
【００１７】
次にＳ２０２でラベリング処理を行うことにより色領域を抽出する。ラベリング処理は連結する同じ値を有する画素集合に同一の番号（識別情報）を付与する処理であり、各色領域の情報（面積、形状）を取得するための前処理としてよく用いられる。ここでは色領域を後処理で識別できるようにするための識別番号、即ちラベルを付与する。以上、Ｓ２０１とＳ２０２とにより、図１における色領域識別処理（Ｓ２００）を実現している。
【００１８】
［境界色勾配情報算出処理］
次にＳ３００ではＳ２００における色領域識別結果を基に、境界色勾配情報算出処理を行う。ここでは図３に示すように境界の情報と色勾配の情報を、各色領域の境界ごとに得る。今後、図３に示した情報を「境界色勾配情報」と呼称し説明する。また境界色勾配情報は図３に示したように、境界番号、境界を挟むラベルＡとラベルＢ（すなわち当該境界を挟む２つの色領域の情報）、境界長、上下左右の各方向色勾配強度、平均色勾配の情報を含む。
【００１９】
Ｓ３００の詳細なフローを、図４を用いて説明する。尚、ラスタスキャンを説明する際の言葉の定義として、図５に示すように着目画素をＰｔ、横方向の比較画素をＰｒ１、縦方向の比較画素をＰｒ２と呼称することとする。
【００２０】
まずＳ３０１ではＣＰＵ７は、Ｐｔをラスタスキャンの始点Ｐｓｔａｒｔに設定する。ここではＰｓｔａｒｔを入力画像に含まれる画素のうち、最も左上に位置する画素とする。次にＳ３０２ではＣＰＵ７は、ＰｔのラベルとＰｒ１のラベルとが同一か否かを判定する。同一ではない場合は（Ｓ３０２にてＹＥＳ）Ｓ３０３に移り、同一の場合は（Ｓ３０２にてＮＯ）Ｓ３０５に移る。
【００２１】
次にＳ３０３ではＣＰＵ７は、窓関数を用いて横方向の色勾配を算出する。この時、色勾配を算出するための色値は保持された入力画像から取得される。ここでは、図６（ａ）の窓関数を用いてＲＧＢ値におけるＲ値、Ｇ値、Ｂ値それぞれに対する値ｄｒ、ｄｇ、ｄｂの算出を行い、求めた値の中で絶対値が最大となる値を色勾配ｄｃとする。例えば図６（ａ）の各画素位置の（Ｒ，Ｇ，Ｂ）をそれぞれ以下の値とする。
Ｐｃ１：（３０，２０，１０）
Ｐｔ：（４０，１５，８）
Ｐｃ２：（８０，１０，６）
Ｐｃ３：（９０，５，４）
【００２２】
この時の図６（ａ）の窓関数により、値ｄｒ、ｄｇ、ｄｂは下記に示すようになる。
ｄｒ＝（−２×３０）＋（−１×４０）＋（１×８０）＋（２×９０）＝１６０
ｄｇ＝（−２×２０）＋（−１×１５）＋（１×１０）＋（２×５）＝−３５
ｄｂ＝（−２×１０）＋（−１×８）＋（１×６）＋（２×４）＝−１４
【００２３】
よってこの場合は、ｄｒの絶対値が最大となるため、色勾配ｄｃは“１６０”となる。またこの時、色勾配ｄｃが正である場合は左方向の色勾配、負である場合は右方向の色勾配であると定義する。もちろん、逆に定義しても構わない。尚、色勾配算出に用いる色値は、ＲＧＢやＹＣＣ等どの色空間のものでも良い。また色勾配を演算する色のコンポーネント数は例示したように一つに限定しても良いし、全てのコンポーネントを用いて算出しても良い。また、他の窓関数や、別の算出式を用いても構わない。以上の処理を終えた後、Ｓ３０４に移る。
【００２４】
Ｓ３０４ではＣＰＵ７は、境界色勾配情報を更新する。まずＣＰＵ７は、参照中の境界をなす２つのラベルの組み合わせを、既存の境界色勾配情報（図３）に登録されている各境界に対するラベルの組み合わせと比較し、既に登録済みか否かを判定する。登録済みであった場合、ＣＰＵ７は、該当する境界色勾配情報の境界長を１加算する。このとき、前ステップで得た色勾配ｄｃをその方向に応じた項目に足し合わせる。前述の例の場合、色勾配ｄｃは１６０であり、符号は正であるため左方向色勾配の項目に足し合わせる。未登録であった場合は、ＣＰＵ７は、新しい境界色勾配情報を生成する。具体的にはＣＰＵ７は、参照中の境界をなす２つのラベルを境界色勾配情報のラベルＡ、ラベルＢの項目に書き込む。そして、ＣＰＵ７は、境界長に１を、色勾配ｄｃをその方向に応じた項目にセットし、その他の値を全て０で初期化する。以上の処理を終えた後、Ｓ３０５に移る。
【００２５】
次にＳ３０５では、ＣＰＵ７は、ＰｔのラベルとＰｒ２のラベルとが同一か否かを判定する。同一ではない場合は（Ｓ３０５にてＹＥＳ）Ｓ３０６に、同一の場合は（Ｓ３０５にてＮＯ）Ｓ３０８に移る。
【００２６】
Ｓ３０６では、ＣＰＵ７は、窓関数を用いて縦方向の色勾配を算出する。例えば図６（ｂ）に示すような窓関数を用いて算出する。この時、色勾配を算出するための色値はＳ３０３と同様に保持された入力画像から得る。色勾配の算出は、縦方向の窓関数を用いてＳ３０３と同様の手順で行う。この時、色勾配ｄｃが正である場合は上方向の色勾配、負である場合は下方向の色勾配であると定義する。もちろん、逆に定義しても構わない。以上の処理を終えた後、Ｓ３０７に移る。
【００２７】
Ｓ３０７では、ＣＰＵ７は、境界色勾配情報を更新する。更新する手順はＳ３０４と同様である。以上の処理を終えた後、Ｓ３０８に移る。
【００２８】
Ｓ３０８では、ＣＰＵ７は、Ｐｔがラスタスキャンの終点Ｐｅｎｄに至ったか否かを判定する。ここではＰｅｎｄを入力画像に含まれる画素のうち、最も右下に位置する画素とする。ＰｔがＰｅｎｄと同位置となった場合は（Ｓ３０８にてＹＥＳ）Ｓ３０８に移り、同位置ではない場合は（Ｓ３０８にてＮＯ）Ｓ３０９へ移る。
【００２９】
Ｓ３０９では、ＣＰＵ７は、着目画素を変更するため、Ｐｔを一つずらし、Ｓ３０２に戻る。
【００３０】
Ｓ３１０では、ＣＰＵ７は、得られた境界色勾配情報を用いて、それぞれの平均色勾配を算出する。具体的には、ＣＰＵ７は、境界色勾配情報における平均色勾配の項目に、上方向色勾配、下方向色勾配、右方向色勾配、左方向色勾配の値を全て足し合わせ、境界長で割った値を代入する。図３に示す境界ｎの場合、平均色勾配は、（１２００＋０＋０＋０）／６＝２００となる。これにより、図３に示した各値が境界の数だけ抽出できることになる。以上、Ｓ３０１からＳ３１０は図１における境界色勾配情報算出処理（Ｓ３００）を実現している。
【００３１】
尚、ここでは簡略化のため割愛したが、Ｐｔが画像右端に至ったためＰｒ１が得られない場合や、Ｐｔが画像下端に至ったためＰｒ２が得られない場合は比較を行わず次の処理へ遷移する。また同様にＰｔが画像端に至ったため窓関数分の画素値が得られない場合は窓関数の形状を変更してもよいし、算出を行わなくてもよい。
【００３２】
［境界属性判定処理］
次にＳ４００では境界色勾配情報を用いて境界属性の判定を行い、その属性の付記を行う。すなわち、当該判定した各境界の属性を、境界色勾配情報の各境界と関連付けて保存する。Ｓ４００の詳細なフローを、図７を用いて説明する。
【００３３】
まずＳ４０１では、ＣＰＵ７は、境界色勾配情報を用いて、参照中の境界がエッジ境界か擬似輪郭境界かを判別する。ここでは前ステップまでで得た境界色勾配情報における平均色勾配が予め定められた閾値Ｔ１よりも大きい場合、エッジ境界であると判定する。閾値Ｔ１の一例としてはＴ１＝２０、等がある。この閾値Ｔ１は、経験的に求めてもよいし、任意の算出式により求めても構わない。平均色勾配が閾値Ｔ１以下であった場合、擬似輪郭境界と判定する。エッジ境界であると判定した場合（Ｓ４０１にてＹＥＳ）、Ｓ４０２へ進み、擬似輪郭境界であると判定した場合（Ｓ４０１にてＮＯ）、Ｓ４０７へ進む。なお、ここでの「擬似輪郭境界」とは、画像中のグラデーション内に形成される輪郭であり、処理上、グラデーションの領域を分割するために用いられる。
【００３４】
ＣＰＵ７は、Ｓ４０２とＳ４０３でグラデーションの属性判定を行う。ここでは参照中の擬似輪郭境界が、下記に示すいずれのグラデーション領域に属するものかを境界色勾配情報の特性を用いて、放射グラデーション、線形グラデーション、複雑グラデーションのいずれであるかを判定する。ここで、「放射グラデーション」とは、図８の（ａ）のようにある点を中心として色が同心円状に移り変わっていくグラデーションを指す。また「線形グラデーション」とは、図９の（ａ）や（ｃ）のように色が一定の方向に移り変わっていくグラデーションを指す。また「複雑グラデーション」とは、図１０（ａ）のように放射グラデーションや線形グラデーションに属さないグラデーションを指す。
【００３５】
まずＳ４０２では、ＣＰＵ７は、参照中の擬似輪郭境界が放射グラデーションに属するか否かを判別する。図８（ａ）に示すような放射グラデーションに対し色領域識別処理（Ｓ２００）をした場合、図８（ｂ）に示すような色領域識別結果が得られる。このような色領域識別結果に基づいて境界色勾配情報算出処理（Ｓ３００）を実行することにより各境界の色勾配を算出すると、図８（ｂ）に示したように、境界ごとに算出される上下左右全ての勾配方向に対し色勾配がほぼ均一の値をとる。これは放射グラデーションの色勾配が同心円状に、つまり全ての勾配方向に一定の値を取るためである。この特性を利用し、Ｓ４０２において、ＣＰＵ７は、参照中の擬似輪郭境界の境界色勾配情報が下記の条件全てを満たした場合、放射グラデーション属性と判定する。
条件１：上方向色勾配×閾値Ｔ２＞下方向色勾配
条件２：下方向色勾配×閾値Ｔ２＞上方向色勾配
条件３：右方向色勾配×閾値Ｔ２＞左方向色勾配
条件４：左方向色勾配×閾値Ｔ２＞右方向色勾配
条件５：上方向色勾配×閾値Ｔ２＞右方向色勾配
条件６：右方向色勾配×閾値Ｔ２＞上方向色勾配
【００３６】
上記６つの条件を満たした場合、擬似輪郭境界の上下左右全ての勾配方向に対し色勾配がほぼ均一であるとみなし、放射グラデーション属性とする。閾値Ｔ２の一例としてはＴ２＝２、等がある。この閾値Ｔ２は、経験的に求めてもよいし、任意の算出式により求めても構わない。放射グラデーションと判定された場合（Ｓ４０２にてＹＥＳ）、Ｓ４０４に移る。放射グラデーションではないと判定された場合（Ｓ４０２にてＮＯ）、Ｓ４０３に移る。
【００３７】
Ｓ４０３では、ＣＰＵ７は、参照中の擬似輪郭境界が線形グラデーション属性によるものか否かを判別する。図９（ａ）または図９（ｃ）に示すように線形グラデーションを入力した場合、図９（ｂ）または図９（ｄ）に示すような色領域識別結果が得られる。このような色領域識別結果に基づいて境界色勾配情報算出処理を実行することにより各境界の色勾配を算出すると、図９（ｂ）に示したように上下左右の色勾配の内一つの勾配方向、もしくは、図９（ｄ）のように相対しない二つの勾配方向が、大きな値を取る。これは線形グラデーションの色勾配が一定の勾配方向を取るためである。この特性を利用し、Ｓ４０３において、ＣＰＵ７は参照中の擬似輪郭境界の境界色勾配情報が下記の条件７（７．１〜７．３）か、条件８（８．１〜８．５）のいずれかを満たした場合、線形グラデーション属性と判定する。尚、上下左右の色勾配において、値が大きい順番にＧ１、Ｇ２、Ｇ３、Ｇ４とする。
【００３８】
（条件７）
条件７．１：Ｇ１＞閾値Ｔ３×Ｇ２
条件７．２：Ｇ１＞閾値Ｔ３×Ｇ３
条件７．３：Ｇ１＞閾値Ｔ３×Ｇ４
【００３９】
（条件８）
条件８．１：Ｇ１＞閾値Ｔ４×Ｇ３
条件８．２：Ｇ１＞閾値Ｔ４×Ｇ４
条件８．３：Ｇ２＞閾値Ｔ４×Ｇ３
条件８．４：Ｇ２＞閾値Ｔ４×Ｇ４
条件８．５：Ｇ１の方向とＧ２の方向が相対でない。
【００４０】
閾値Ｔ３、Ｔ４の例としてはＴ３＝３、Ｔ４＝２、等がある。この閾値Ｔ３およびＴ４は、経験的に求めてもよいし、任意の算出式により求めても構わない。上記条件７もしくは条件８のいずれかを満たし線形グラデーションと判定された場合（Ｓ４０３にてＹＥＳ）、Ｓ４０５に移る。線形グラデーションではないと判定された場合（Ｓ４０３にてＮＯ）、Ｓ４０６に移る。
【００４１】
次にＳ４０４、Ｓ４０５、Ｓ４０６、Ｓ４０７ではそれぞれ判定した属性が境界毎に境界属性情報へ付記される。つまり、Ｓ４０４では、ＣＰＵ７は、当該判定対象の境界に対して放射グラデーション属性を付記する。Ｓ４０５では、ＣＰＵ７は、当該判定対象の境界に対して線形グラデーション属性を付記する。Ｓ４０６では、ＣＰＵ７は、当該判定対象の境界に対して複雑グラデーション属性を付記する。Ｓ４０７では、ＣＰＵ７は、当該判定対象の境界に対してエッジ属性を付記する。Ｓ４０４、Ｓ４０５、Ｓ４０６、Ｓ４０７いずれかの処理が終了した後、本処理フローを終了する。以上、Ｓ４０１からＳ４０７の処理は、図１における境界属性判定処理（Ｓ４００）を実現している。
【００４２】
［グラデーションクラスタ情報生成処理］
次にＳ５００では、同種（同属性）のグラデーションで表現されているグラデーション領域を同定し、グラデーション領域に対応するクラスタ情報を生成するためのグラデーションクラスタ情報生成処理を行う。本実施形態において、グラデーションクラスタ情報は、グラデーション領域内の色領域を指すラベルのリスト、グラデーション領域内の境界のリスト、対応するグラデーション領域の種別を含む。Ｓ５００の詳細を、図１１の処理フローと、図１２（ａ）が入力画像として入力された場合の具体例とを用いて説明する。
【００４３】
図１２（ａ）が入力された場合、色領域識別処理（Ｓ２００）により、図１２（ｂ）に示す色領域識別結果が得られる。この結果に対し、境界色勾配情報算出処理（Ｓ３００）、境界属性判定処理（Ｓ４００）を行うと図１３に示すような情報が得られる。以下、入力された情報において、着目する境界をＢｔとして記載する。
【００４４】
Ｓ５０１では、ＣＰＵ７は、参照中の境界Ｂｔが未処理かどうかを判定する。この処理は後の処理であるグラデーションクラスタ情報生成の際に優先して処理される境界があるため、処理された境界を再度処理しないようにするために必要となる。未処理であると判定された場合は（Ｓ５０１にてＹＥＳ）、Ｓ５０２に移り、処理済みであると判定された場合は（Ｓ５０１にてＮＯ）、Ｓ５０６に移る。
【００４５】
Ｓ５０２では、ＣＰＵ７は、参照中の境界Ｂｔを成している二つのラベル領域が未処理かどうかを判定する。この処理もＳ５０１と同様に、後の処理であるグラデーションクラスタ情報生成の際に優先して処理される境界があり、処理された境界をなす二つのラベルを再度処理しないようにするために必要となる。境界Ｂｔをなすラベル（すなわち境界Ｂｔを挟む２つのラベル領域）が未処理であると判定された場合は（Ｓ５０２にてＹＥＳ）Ｓ５０３に移り、処理済みであると判定された場合は（Ｓ５０２にてＮＯ）Ｓ５０６に移る。
【００４６】
Ｓ５０３では、ＣＰＵ７は、境界属性の判定を行う。参照中の境界Ｂｔに関連付けられている属性が「線形グラデーション」であった場合はＳ５０４へ、「放射グラデーション」であった場合はＳ５０５へ、それ以外の場合はＳ５０６へそれぞれ移る。
【００４７】
Ｓ５０４では、ＣＰＵ７は、線形グラデーションクラスタ情報の生成を行う。ここではまず、ＣＰＵ７は、参照中の境界Ｂｔの境界番号を線形グラデーションクラスタ情報に登録する。次にＣＰＵ７は、参照中の境界Ｂｔをなす２つのラベルを線形グラデーションクラスタ情報に登録する。次にＣＰＵ７は、生成した線形グラデーションクラスタ情報固有の勾配角度を算出する。このときの勾配角度は、境界色勾配情報における上下左右の色勾配を用いて下記の式（１）を用いて求められる。
勾配角度＝ａｒｃｔａｎ（（上方向色勾配−下方向色勾配）／（右方向色勾配−左方向色勾配））  ・・・（１）
【００４８】
そして、ＣＰＵ７は、生成した線形グラデーションクラスタ情報における種別に「線形グラデーション」をセットする。ここで、便宜上、線形グラデーションをセットされた境界のクラスタを線形グラデーションクラスタ情報Ｇｌと記載する。
【００４９】
当該線形グラデーションクラスタ情報に登録した二つのラベルに対応する色領域の少なくともいずれかが更に他の色領域と接している場合、当該他の色領域との間の境界を順次評価し、当該他の色領域を線形グラデーションクラスタ情報に登録するか否かを判定していく。この処理を図１３の例を用いて説明する。
【００５０】
まず参照中の境界Ｂｔが図１３の境界８であると仮定して説明する。この時、線形グラデーションクラスタ情報Ｇｌには境界８と、境界８を成すラベル５とラベル６が登録される。またこの場合の勾配角度は前述の式（１）により、以下のように求められる。
勾配角度＝ａｒｃｔａｎ（（０−０）／（８００−０））＝０
【００５１】
更に、図１３の境界色勾配情報を参照すると、ラベル５は参照中の境界８以外に、境界４にも接していると判定される。そこで境界４が当該生成した線形グラデーションクラスタ情報Ｇｌに属するか否かを判別する。この時、境界４はその境界属性がエッジ属性であるため、線形グラデーションクラスタ情報Ｇｌには属さないと判別される。
【００５２】
また、ラベル６は、参照中の境界８以外に、境界５と境界９とに接していると、図１３の境界色勾配情報に基づいて判定される。境界５はエッジ属性であるために線形グラデーションクラスタ情報Ｇｌには属さないが、境界９は線形グラデーション属性である。よって、境界９が線形グラデーションクラスタ情報Ｇｌに属するかが判定される。具体的にはまず、境界９を成すラベル６、ラベル７が他のグラデーションクラスタ情報に含まれているか否かが判定される。他のグラデーションクラスタ情報に含まれている場合、境界９は生成中のグラデーションクラスタ情報に属さないと判別される。含まれていない場合、次の判定に移る。境界９の勾配角度は式（１）を用いて算出することができる。即ち境界９の勾配角度は以下のように算出される。
勾配角度＝ａｒｃｔａｎ（（０−０）／（１２００−０））＝０
【００５３】
ここで得られた勾配角度と、線形グラデーションクラスタ情報固有の勾配角度との差が閾値Ｔ５以内であった場合、当該境界およびそれを構成するラベルが線形グラデーションクラスタ情報に登録される。閾値Ｔ５は例えばＴ５＝２２．５、等がある。この閾値Ｔ５は、経験的に求めてもよいし、任意の算出式により求めても構わない。上述した図１３の境界９の勾配角度と線形グラデーションクラスタ情報の勾配角度差は０であるため、境界９は線形グラデーションクラスタ情報Ｇｌに属する境界であると判定される。よって境界９と、境界９を成すラベル６とラベル７を線形グラデーションクラスタ情報Ｇｌに登録する。ただしラベル６は、実際には既に生成中の線形グラデーションクラスタ情報に登録済みであるため、ここではラベル７のみが登録される。なお、所定の閾値より大きいもしくは閾値以上などの判定については、閾値の設定に合わせて変更して構わない。
【００５４】
次にラベル７が属している境界を同様に評価し、線形グラデーションとして登録していくと、図１４に示すグラデーションクラスタ情報におけるグラデーションクラスタ２のような結果が得られる。図１４の例では、グラデーションクラスタ２は、ラベル５，６，７，８の色領域で構成される線形グラデーションで、且つ勾配角度は０度である。なお、図１４に示す「種別」とは、各境界が有するグラデーション属性に対応し、グラデーションクラスタが有する属性となる。以上の処理により、線形グラデーションクラスタ情報の生成を終えたら、Ｓ５０６に移る。
【００５５】
Ｓ５０５ではＣＰＵ７は、放射グラデーションクラスタ情報の生成を行う。ここではまず、ＣＰＵ７は、参照中の境界Ｂｔの境界番号を放射グラデーションクラスタ情報に登録する。次にＣＰＵ７は、参照中の境界Ｂｔをなす２つのラベルをグラデーションクラスタ情報に登録する。次にＣＰＵ７は、生成した放射グラデーションクラスタ情報には勾配角度を要しないためダミーの値を初期値として代入する。そしてＣＰＵ７は、生成した放射グラデーションクラスタ情報における種別に「放射グラデーション」をセットする。ここで、便宜上、放射グラデーションをセットされた境界のクラスタを線形グラデーションクラスタ情報Ｇｒと記載する。
【００５６】
当該放射グラデーションクラスタ情報に登録した二つのラベルに対応する色領域の少なくともいずれかが更に他の色領域と接している場合、ＣＰＵ７は、当該他の色領域との間の境界を順次評価し、当該他の色領域を放射グラデーションクラスタ情報に登録するか否かを判定していく。この処理を図１３の例を用いて説明する。
【００５７】
まず参照中の境界Ｂｔが図１３の境界２であると仮定して説明する。この時、放射グラデーションクラスタ情報Ｇｒには境界２と、境界２を成すラベル２、ラベル３が登録される。更に、図１３の境界色勾配情報を参照して、ラベル２は参照中の境界２以外に、境界１にも接していると判定される。そこで境界１が当該生成した放射グラデーションクラスタ情報Ｇｒに属するか否かを判別される。この時、境界１はその境界属性がエッジ属性であるため、放射グラデーションクラスタ情報Ｇｒには属さないと判別される。
【００５８】
また、ラベル３は参照中の境界２以外に、境界３に属していると、図１３の境界色勾配情報に基づいて判定される。境界３は放射グラデーション属性である。よって境界３が放射グラデーションクラスタ情報Ｇｒに属するかを判定する。具体的には、境界３を成すラベル３、ラベル４が他のグラデーションクラスタ情報に含まれているか否かを判定する。他のグラデーション情報に含まれている場合、境界３は生成中のグラデーションクラスタ情報に属さないと判別する。含まれていない場合、境界３と、境界３を成すラベルを放射グラデーションクラスタ情報Ｇｒに登録する。ただしラベル３は実際には生成中の放射グラデーションクラスタ情報に既に登録済みであるため、ここではラベル４のみが登録される。
【００５９】
次にラベル４が属している境界を同様に評価し、放射グラデーションとして登録していくと、図１４に示すグラデーションクラスタ情報におけるグラデーションクラスタ１のような結果が得られる。図１４のグラデーションクラスタ１は、ラベル２，３，４の色領域で構成される放射グラデーションクラスタとして登録されている。以上の処理により、放射グラデーションクラスタ情報の生成を終えたら、Ｓ５０６に移る。
【００６０】
Ｓ５０６では、ＣＰＵ７は、参照中の境界が最後の境界かを判定する。最後の境界である場合は（Ｓ５０６にてＹＥＳ）そのまま処理を終え、最後の境界でない場合は（Ｓ５０６にてＮＯ）Ｓ５０７に移る。Ｓ５０７ではＣＰＵ７は、参照中の境界を次の境界へ更新し、Ｓ５０１に移る。以上のＳ５０１からＳ５０７により、図１におけるグラデーションクラスタ情報生成処理（Ｓ５００）を実現している。
【００６１】
［グラデーションパラメータ生成処理］
次にＳ６００では、グラデーションクラスタ情報毎にグラデーションのパラメータ生成を行う、グラデーションパラメータ生成処理を行う。ここでは色領域識別結果と、グラデーションクラスタ情報、及び境界色勾配情報を用いて、線形グラデーションと放射グラデーションのパラメータ生成を行う。
【００６２】
まずグラデーションクラスタ情報における種別が、「線形グラデーション」の場合のパラメータの生成方法の詳細を説明する。例として図１２の線形グラデーション領域におけるパラメータ生成の概念図である図１５を示す。ここで生成する線形グラデーションのパラメータは、グラデーション端点を定義する始点ｐｓ、終点ｐｅ、及び色の移り変わりを定義するオフセットである。尚、オフセットはグラデーション領域中の相対位置を示すオフセット値と、相対位置における色を定義する色値を含む。
【００６３】
まず、線形グラデーション領域（線形グラデーションクラスタ情報に登録されたラベルで構成される領域）の外接矩形Ｒを求め、その外接矩形Ｒの重心Ｃを求める。なお、重心の求め方については、ここでは説明を省略する。次に求めた重心Ｃを通り、かつ角度θがグラデーションクラスタ情報に付記されている勾配角度となるベクトルｖを求める。次に外接矩形Ｒとの交点をそれぞれ始点ｐｓ（ａ，ｂ），終点ｐｅ（ｃ，ｄ）とする。次に求めたｐｓからｐｅまでの距離を求め、この距離を１００に正規化するための定数Ｋを求める。即ち、以下の式（２）を用いて定数Ｋを求めることができる。
0005843474.tif 000002
・・・（２）
【００６４】
図１５に示す例の場合、正規化するための定数Ｋは下記のようになる。
0005843474.tif 000003
【００６５】
次にグラデーションクラスタ情報に登録されているＮ個のラベルに対し、各ラベルに対応する色領域の重心Ｃｌｎ（ｎ＝１，２，…，Ｎ）をそれぞれ求める。図１５に示す例の場合、Ｃｌ１〜Ｃｌ４が含まれる。次に求めた各色領域の重心Ｃｌｎから、ベクトルｖに対し法線を下ろし、その交点をオフセット点Ｏｆｎ（ｎ＝１，２，…，Ｎ）としてそれぞれ導出する。図１５に示す例の場合、Ｏｆ１〜Ｏｆ４が含まれる。そして、次に始点ｐｓから、オフセット点Ｏｆｎまでの距離ｄｎ（ｎ＝１，２，…，Ｎ）を算出し、前述の定数Ｋを掛け合わせた値をオフセット点Ｏｆｎにおけるオフセット値とする。
【００６６】
図１５の例で言うと、Ｏｆ１（１４０，１００）とｐｓ（１００，１００）との距離ｄ１は４０である。定数Ｋは前述で求めた通り０．５なので、Ｏｆ１におけるオフセット値は０．５×４０＝２０となる。最後にオフセット点Ｏｆｎに対応する色領域の平均色をオフセットの色値として用いる。図１５の例の場合、以上の処理を全てのオフセット点Ｏｆｎに行うことで、図１６に例示したような線形グラデーションパラメータを得ることができる。図１６に示すように、本実施形態では、線形グラデーションパラメータには、グラデーションの端点情報（始点、終点の座標）、各オフセットの情報（オフセット値、色値）が含まれる。
【００６７】
次にグラデーションクラスタ情報における種別が、「放射グラデーション」の場合のパラメータの生成方法の詳細を説明する。例として図１２の放射グラデーション領域におけるパラメータ生成の概念図である図１７を示す。ここで生成する放射グラデーションのパラメータは、グラデーション端点を定義する中心ｐｃと半径ｒ、及び色の移り変わりを定義するオフセットである。尚、オフセットは、位置情報としてグラデーション領域中の相対位置を示すオフセット値と、相対位置における色を定義する色値を含む。
【００６８】
まず、放射グラデーションクラスタ情報に登録されているＮ個のラベルに対し、それぞれ対応する色領域の外接矩形を求めその大きさ順でソートしたものをそれぞれＲｎ（ｎ＝１，２，…，Ｎ）とする。つまり外接矩形は、図１７の例の場合、Ｒ１，Ｒ２，Ｒ３のようになる。
【００６９】
次に求めた外接矩形Ｒ１は最内郭に位置する色領域による外接矩形となるため、対応する色領域の重心を求め、その重心を放射グラデーションの中心ｐｃとする。次に求めた外接矩形ＲＮは最外郭に位置する色領域による外接矩形となるため、その外接矩形の右端を定義する直線ＬＲＮから、中心ｐｃまでの距離を半径ｒとする。図１７の例の場合、中心ｐｃ（２００，１００）から最外郭に位置する色領域の外接矩形Ｒ３の右端を定義する直線ＬＲ３（ｘ＝２８０）までの距離が８０となり、この値を半径ｒとする。
【００７０】
次に半径ｒを１００に正規化するための定数Ｋを求める。即ち、式（３）を参照して求めると、以下のように求められる。
0005843474.tif 000004
・・・（３）
【００７１】
図１７の例で言えば、正規化するための定数Ｋは下記のようになる。
0005843474.tif 000005
【００７２】
次に放射グラデーションのオフセットＯｆｎ（ｎ＝１，２，…，Ｎ）を求める。放射グラデーションにおけるオフセットは、まず一つ目のオフセット点Ｏｆ１を中心ｐｃと同一の点とし、オフセット値を０とする。そして二つ目からのオフセット点の生成方法を説明する。
【００７３】
まず中心ｐｃを通り、ｘ軸に水平な直線Ｌｃを定義する。そして次に生成中のオフセット点がｉ番目（ｉ＝２，３，…，Ｎ）であるとすると、外接矩形Ｒｉ−１の右端を定義する直線ＬＲｉ−１と外接矩形Ｒｉの右端を定義する直線ＬＲｉとの中間を通る直線Ｌｍｉを算出する。次に求めた直線Ｌｍｉと直線Ｌｃとの交点を求め、この交点をオフセット点Ｏｆｉとする。図１７の例の場合、中心ｐｃ（２００，１００）を通り、ｘ軸に水平な直線Ｌｃはｙ＝１００となる。そしてｉ＝２の時、直線ＬＲ１（ｘ＝２２０）と直線ＬＲ２（ｘ＝２６０）の中間を通る直線Ｌｍ２はｘ＝２４０となる。よってオフセット点Ｏｆ２は直線Ｌｃと直線Ｌｍ２の交点である（２４０，１００）となる。以上の処理により、ラベルの数Ｎ個分だけオフセット点Ｏｆｎが生成される。図１７ｂに示す例の場合、Ｏｆ１〜Ｏｆ３が含まれる。
【００７４】
次に中心ｐｃから、オフセット点Ｏｆｎまでの距離ｄｎ（ｎ＝１，２，…，Ｎ）を算出し、前述の定数Ｋを掛け合わせた値をオフセット点Ｏｆｎにおけるオフセット値とする。図１７の例の場合、Ｏｆ１は中心ｐｃと同一点なので距離ｄ１＝０となり、定数Ｋに関わらずオフセット値は０となる。Ｏｆ２（２４０，１００）と中心ｐｃ（２００，１００）との距離ｄ２は４０である。定数Ｋは前述で求めた通り、１．２５なので、Ｏｆ２におけるオフセット値は１．２５×６０＝５０となる。最後にオフセット点Ｏｆｎに対応する色領域の平均色をオフセットの色値として用いる。
【００７５】
以上の処理を全てのオフセット点Ｏｆｎに行うことで、図１８に例示したような放射グラデーションパラメータを得ることができる。図１８に示すように、本実施形態では、放射グラデーションパラメータには、放射グラデーションの中心座標、半径、各オフセットの情報（オフセット値、色値）が含まれる。以上の処理は図１におけるグラデーションパラメータ生成処理（Ｓ６００）を実現している。
【００７６】
［色領域統合処理］
次にＳ７００ではグラデーションクラスタ情報毎にラベルの指す色領域を一つに統合する、色領域統合処理を行う。この処理では各グラデーションクラスタ情報に登録されているラベルを一つに統合し、新しい色領域識別結果を得る。図１２と図１４を用いて述べると、グラデーションクラスタ１にラベル２，３，４が登録されている。よってこのラベルが指す色領域を統合し、新しいラベルとしてラベル９を振り、一つの色領域とする。グラデーションクラスタ２に登録されているラベル５，６，７，８に関しても同様に統合し、新しいラベルとしてラベル１０を振る。以上の処理を行うと、図１９に示すようなラベルが付与された各色領域が新たに得られ、原画にないような擬似輪郭境界は消える。また、グラデーションクラスタ情報に基づき、ラベル９は放射グラデーションの領域であり、ラベル１０は線形グラデーションの領域であることが分かる。この処理により、図１における色領域統合処理（Ｓ７００）を実現する。
【００７７】
［輪郭ベクトル記述生成処理］
最後にＳ８００では、色領域の輪郭ベクトル記述を生成する、輪郭ベクトル記述生成処理を行う。ここで輪郭ベクトルを求める対象となる色領域は、Ｓ７００で色領域統合後に得られる色領域である。まず、Ｓ７００で統合した後の色領域間の境界線を求め、当該境界線を関数近似することにより、各色領域の輪郭を表すベクトル記述（輪郭ベクトルデータ）を生成する。なお、隣接する色領域が接している区間ごとに境界線を関数近似してベクトル記述を求めることにより、隣接する色領域間で隙間や重なりが生じない輪郭のベクトル記述を得ることができる。図１９の例の場合、ラベル１とラベル９の色領域間の境界線と、ラベル１とラベル１０の色領域間の境界線とを求め、関数近似を行うことで、各色領域の輪郭のベクトル記述を得ることができる。
【００７８】
そして、グラデーションクラスタに属するグラデーション領域に関しては、当該求めた輪郭ベクトル記述と、Ｓ６００で得たグラデーションをベクトル表現するためのグラデーションパラメータとを合わせて出力する。すなわち、色領域輪郭のベクトル記述で定義される輪郭内を当該グラデーションパラメータでグラデーション表現するように記述することによって、グラデーション領域のベクトルデータ（グラデーション付き輪郭ベクトルデータ）を生成する。また、グラデーション領域以外の色領域（エッジ属性の境界線で囲まれる単一色の色領域）に関しては、当該色領域の代表色（例えば当該色領域の平均色）を求め、当該色領域の輪郭ベクトル記述と代表色とを合わせて出力することによって、グラデーション領域以外の色領域のベクトルデータを生成する。このようにして、グラデーション領域を含む画像のベクトル化の結果が得られる。
【００７９】
以上の処理により得られたベクトル化の結果をレンダリングすると、図２０に示すようなベクトル画像を得ることができる。
【００８０】
以上により、画像中のグラデーション領域を高速に同定し、その特徴に応じたグラデーションパラメータを生成することができる。
【００８１】
＜第二実施形態＞
第一実施形態では、色領域の重心を用いて線形グラデーションのオフセット値を生成し、色領域の平均色をオフセットの色値とした。しかし、この手法を用いると線形グラデーションの始点部／終点部（端部）には色は付記されず、場合によっては原画との差異が目立つ事がある。また放射グラデーションに関しても同様であり、色領域の平均色をオフセットの色値としているためグラデーション中心部と終点部に原画と誤差が生じてしまう。
【００８２】
例えば図２１（ａ）のようなＲＧＢ値がＣ１（０，０，０）から始まり、ｘ軸に対して水平方向に色が変化する線形グラデーション画像を入力したとする。この入力の左端をオフセット値０、右端をオフセット値１００と定義する。この時、例としてＲ値とオフセットの関係をグラフにすると、図２１（ｂ）のような図が得られる。この入力画像に対し色領域識別処理を行い、色領域ごとの平均色を得ると図２１（ｃ）のような結果が得られる。この時、例としてＲ値とオフセットの関係をグラフにすると、図２１（ｄ）のような図が得られる。そして得られた色領域識別結果に従い、第一実施形態で示したグラデーションベクトル化を行うと図２１（ｅ）のような結果が得られる。この時、グラデーションベクトル化結果の左端と入力画像の左端を比較すると色に差異がある事がわかる。右端も同様である。この時、例として図２１（ｆ）のようにＲ値とオフセットの関係をグラフにすると、オフセット値が０となる付近と、オフセット値が１００となる付近で色変化がない。これは前述のように第一実施形態ではオフセットを、色領域の重心からのみ設定しており、始終点には設定していない事に起因する。
【００８３】
［オフセット補間処理］
そこで本実施形態ではこの課題を解決するために、グラデーションパラメータ生成を終えた後に、オフセットの補完を行う。この処理を図２４の処理フローを使って説明する。本処理フローは記憶部に格納されたプログラムをＣＰＵ７が実行することにより、実現される。なお、Ｓ２１００からＳ２６００までは第一実施形態と同様の処理を行うため、ここでは説明を割愛する。
【００８４】
Ｓ２７００では、ＣＰＵ７は、Ｓ２６００で得たグラデーションパラメータの補完を行う。図２５を用いてこのグラデーションパラメータ補完処理の具体的な処理フローを説明する。まず説明を行う前提として、得られたＮ個のオフセットの中で、オフセット値が一番小さいものから順番にＯｓ［ｎ］（ｎ＝１，２，…，Ｎ）と呼称する。また、オフセットＯｓ［ｎ］におけるオフセット値をＯｓ［ｎ］＿ｖａｌ、オフセットＯｓ［ｎ］におけるＲＧＢ値をそれぞれＯｓ［ｎ］＿ｒ、Ｏｓ［ｎ］＿ｇ、Ｏｓ［ｎ］＿ｂと呼称する。また、参照中のグラデーションクラスタ情報をＧｔと呼称する。
【００８５】
Ｓ２７０１では、ＣＰＵ７は、参照中のグラデーションクラスタ情報の種別を判定する。種別が「線形グラデーション」であった場合はＳ２７０２へ、「放射グラデーション」であった場合はＳ２７０４へ移る。Ｓ２７０２では、ＣＰＵ７は、線形グラデーションのグラデーション始点におけるオフセットＯｓｓの補完を行う。まず、線形グラデーション始点におけるオフセット値は必ず０となるため、ＣＰＵ７は、Ｏｓｓ＿ｖａｌに０をセットする。次にＣＰＵ７は、始点近傍のオフセットにおける色値の変化からＯｓｓにおける色値を推定する。ＯｓｓのＲＧＢ値Ｏｓｓ＿ｒ、Ｏｓｓ＿ｇ、Ｏｓｓ＿ｂは下記式（４）を用いて算出できる。
0005843474.tif 000006
0005843474.tif 000007
0005843474.tif 000008
・・・（４）
【００８６】
上記処理により、図２２（ａ）に例示したＯｓｓのように始点におけるオフセットの推定を行うことができる。上記処理を終えたら、Ｓ２７０３へ移る。
【００８７】
次に、Ｓ２７０３では、ＣＰＵ７は、線形グラデーション終点におけるオフセットＯｓｅの補完を行う。まず、線形グラデーション終点におけるオフセット値は必ず１００となるため、ＣＰＵ７は、Ｏｓｅ＿ｖａｌに１００をセットする。次に、ＣＰＵ７は、終点近傍のオフセットにおける色値の変化からＯｓｅにおける色値を推定する。ＯｓｅのＲＧＢ値Ｏｓｅ＿ｒ、Ｏｓｅ＿ｇ、Ｏｓｅ＿ｂは下記式（５）を用いて算出できる。
0005843474.tif 000009
0005843474.tif 000010
0005843474.tif 000011
・・・（５）
【００８８】
上記処理により、図２２（ｂ）に示すＯｓｅのように終点におけるオフセットの推定を行うことができる。上記処理を終えたら、Ｓ２７０７へ移る。
【００８９】
次にＳ２７０４では、ＣＰＵ７は、放射グラデーションにおける一番初めのオフセットＯｓ［１］を補正する。補正を行う前は、放射グラデーションの一番初めのオフセット点Ｏｆ１を放射グラデーション中心、すなわちＯｓ［１］＿ｖａｌ＝０としている。このため、例えばＲ値とオフセットの関係を、Ｏｓ［１］近辺にクローズアップして図示すると、図２３（ａ）のようになっている。よって放射グラデーション中心のオフセット補完を行うためにはＯｓ［１］＿ｖａｌを補正した、Ｏｓ［１］＿ｖａｌ’が必要となる。よってこの処理ではＯｓ［１］＿ｖａｌ’を隣接するオフセットＯｓ［２］＿ｖａｌを基に下記式（６）により設定する。
Ｏｓ［１］＿ｖａｌ’＝  Ｏｓ［２］＿ｖａｌ／２  ・・・（６）
【００９０】
以上の処理を終えた後、Ｓ２７０５に移る。
【００９１】
次にＳ２７０５では、ＣＰＵ７は、放射グラデーション中心のオフセットＯｓｃの補完を行う。まず、放射グラデーション中心におけるオフセット値は必ず０となるため、ＣＰＵ７は、Ｏｓｃ＿ｖａｌに０をセットする。次に中心近傍のオフセットにおける色値の変化から、ＣＰＵ７は、Ｏｓｃにおける色値を推定する。ＯｓｃのＲＧＢ値Ｏｓｃ＿ｒ、Ｏｓｃ＿ｇ、Ｏｓｓ＿ｂは、下記式（７）を用いて算出できる。
0005843474.tif 000012
0005843474.tif 000013
0005843474.tif 000014
・・・（７）
【００９２】
以上の処理により、図２３（ｂ）に例示したＯｓｃのように放射グラデーション中心におけるオフセットの推定を行うことができる。上記処理を終えた後、Ｓ２７０６に移る。
【００９３】
Ｓ２７０６では、ＣＰＵ７は、放射グラデーションにおける終点オフセットの補完を行う。この処理はＳ２７０３と同様の処理を行うため、説明は割愛する。この処理を終えた後、Ｓ２７０７に移る。
【００９４】
Ｓ２７０７では、ＣＰＵ７は、Ｇｔが最後のグラデーションクラスタ情報か否かを判定する。最後である場合は（Ｓ２７０７にてＹＥＳ）そのまま処理を終え、最後でない場合は（Ｓ２７０７にてＮＯ）Ｓ２７０８に移る。Ｓ２７０８では、ＣＰＵ７は、Ｇｔを次のグラデーションクラスタ情報に更新し、Ｓ２７０１へ移る。以上、Ｓ２７０１からＳ２７０７の処理により、図２４におけるＳ２７００を実現する。
【００９５】
Ｓ２８００とＳ２９００は第一実施形態と同様の処理を行う。
【００９６】
以上の処理により原画に近いグラデーションのベクトル化を行うことができる。
【００９７】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００９８】
また、本発明の画像処理装置は、上述した実施形態の各機能を実現する専用のハードウェア（ＡＳＩＣなど）を用いて構成するようにしてもよい。
【図１】
0005843474.tif 000015
【図２】
0005843474.tif 000016
【図３】
0005843474.tif 000017
【図４】
0005843474.tif 000018
【図５】
0005843474.tif 000019
【図６】
0005843474.tif 000020
【図７】
0005843474.tif 000021
【図１１】
0005843474.tif 000022
【図１３】
0005843474.tif 000023
【図１４】
0005843474.tif 000024
【図１５】
0005843474.tif 000025
【図１６】
0005843474.tif 000026
【図１７】
0005843474.tif 000027
【図１８】
0005843474.tif 000028
【図１９】
0005843474.tif 000029
【図２２】
0005843474.tif 000030
【図２３】
0005843474.tif 000031
【図２４】
0005843474.tif 000032
【図２５】
0005843474.tif 000033
【図８】
0005843474.tif 000034
【図９】
0005843474.tif 000035
【図１０】
0005843474.tif 000036
【図１２】
0005843474.tif 000037
【図２０】
0005843474.tif 000038
【図２１】
0005843474.tif 000039