画像処理装置、画像処理方法、及び、プログラム
【課題】入力画像のグラデーション部分のベクトル化を高速に行う。
【解決手段】色差に基づいて入力画像を複数の色領域に分割し、境界における色勾配情報を算出する。そして色勾配情報を用いて、当該境界における色勾配の特性を示すグラデーション属性を判定し、前記複数の色領域の中から同じグラデーションに属する色領域を判定してグラデーションクラスタを生成し、当該生成されたグラデーションクラスタに属する色領域と当該グラデーションクラスタのグラデーションの種別とに関する情報を含むグラデーションクラスタ情報を生成する。前記色領域と前記色勾配情報と前記グラデーションクラスタ情報とを用いて、前記グラデーション領域ごとにグラデーションのパラメータを生成し、更に、前記グラデーションクラスタ情報を用いて、前記色領域を統合し、当該統合した後の色領域に基づいて、グラデーション領域の輪郭のベクトル記述を生成する。
【解決手段】色差に基づいて入力画像を複数の色領域に分割し、境界における色勾配情報を算出する。そして色勾配情報を用いて、当該境界における色勾配の特性を示すグラデーション属性を判定し、前記複数の色領域の中から同じグラデーションに属する色領域を判定してグラデーションクラスタを生成し、当該生成されたグラデーションクラスタに属する色領域と当該グラデーションクラスタのグラデーションの種別とに関する情報を含むグラデーションクラスタ情報を生成する。前記色領域と前記色勾配情報と前記グラデーションクラスタ情報とを用いて、前記グラデーション領域ごとにグラデーションのパラメータを生成し、更に、前記グラデーションクラスタ情報を用いて、前記色領域を統合し、当該統合した後の色領域に基づいて、グラデーション領域の輪郭のベクトル記述を生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理技術に関し、特にラスタ画像からグラデーション部分を抽出し、ベクタ画像へ変換を行う画像処理技術に関する。
【背景技術】
【0002】
近年、一つの画像情報を異なる機器で用いる機会が増えてきている。このため機器間の送信コストを低減するための高圧縮性や、機器間の解像度の違いに対応するための高画質性も要求されている。またユーザの利便性に関しても、部分的に画像を再編集できる編集性といった面も要求されている。これによりラスタ形式で表現された画像を、解像度に依存せず再編集も容易なベクタ形式へ変換する、ベクトル化技術が必要となってきている。
【0003】
しかしラスタ形式で表現された画像中の全ての色をベクトルで再現した場合、ノイズ等も全て再現してしまうためベクトル形式の利点である高画質性、高圧縮性、再編集性が損なわれてしまう。そこでベクトル化技術においてはラスタ画像における色数をある程度まで絞り込み減色を行うような減色処理が必要となる。
【0004】
画像のベクトル化技術における減色処理の手法が特許文献1で開示されている。この手法では画像を入力し、色の類似度を使って入力画像の色数を減色する。次に各色領域の輪郭線を抽出した後に関数近似を行い、色情報を加えてベクトルデータを出力する。しかし、上記のような色の類似度による減色処理は、グラデーション領域を処理した場合に原画にはない色領域間の輪郭、即ち擬似輪郭を生じさせてしまい画質の劣化を招いてしまう。
【0005】
そこで特許文献2では減色処理によって得られる色領域のグラデーションの属性を判別し、属性に応じたベクトル化する手法を開示している。この手法では上述の減色処理で同一領域と判定された領域を更に詳細に解析する、即ち各色領域中の各画素間の色変化方向を検出し、その結果を用いてグラデーション属性の判別を行う。また特許文献3では画像からグラデーション領域を判別し、ベクトル化を行う手法を開示している。この手法では画像中の各画素間の色勾配を算出し、その結果を用いてグラデーション領域を判別し、得られたグラデーション領域に対しほぼ同じ色の画素を有するパスを生成する。このパスにほぼ垂直な垂線を定義し、この垂線上に代表色値を計算し、ベクトル化を行う。しかし上記に示される手法では画像全域に対し色勾配を算出するための演算を必要とするため低速化を招いてしまう。
【0006】
したがって、画像中のグラデーション領域を高速に同定し、その特徴に応じたグラデーションパラメータを生成する技術はこれまでなかった。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−344069号公報
【特許文献2】特開2007−272456号公報
【特許文献3】特表2009−508239号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は、上記課題を鑑みてなされたものであり、グラデーションベクトル化処理を高速に行う。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明に係る画像処理装置は以下の構成を備える。すなわち、色差に基づいて入力画像を複数の色領域に分割する分割手段と、前記分割された色領域間の境界における色勾配情報を、前記入力画像の色情報から算出する色勾配情報算出手段と、前記色勾配情報を用いて、当該境界における色勾配の特性を示すグラデーション属性を判定する属性判定手段と、前記境界のグラデーション属性を用いて、前記複数の色領域の中から同じグラデーションに属する色領域を判定してグラデーションクラスタを生成し、当該生成されたグラデーションクラスタに属する色領域と当該グラデーションクラスタのグラデーションの種別とに関する情報を含むグラデーションクラスタ情報を生成するグラデーションクラスタ情報生成手段と、前記色領域と前記色勾配情報と前記グラデーションクラスタ情報とを用いて、前記グラデーション領域ごとにグラデーションのパラメータを生成するグラデーションパラメータ生成手段と、前記グラデーションクラスタ情報を用いて、前記同じグラデーションに属する色領域を統合する色領域統合手段と、前記色領域統合手段にて統合した後の色領域に基づいて、輪郭のベクトル記述を生成し、当該輪郭のベクトル記述と前記グラデーションのパラメータとに基づいてグラデーション領域のベクトルデータを生成する輪郭ベクトル記述生成手段とを備える。
【発明の効果】
【0010】
本発明によると、入力画像のグラデーションの特徴に応じたグラデーション領域のベクトル化を高速に行える。
【図面の簡単な説明】
【0011】
【図1】画像処理装置のメイン処理を示すフローチャート。
【図2】画像処理装置のブロック構成図。
【図3】第一実施形態に係る境界色勾配情報の例を示す図。
【図4】第一実施形態に係る境界色勾配情報算出フローを示す図。
【図5】第一実施形態に係るラスタスキャンを行う際の着目画素と比較画素を示す図。
【図6】第一実施形態に係る色勾配を算出する窓関数を示す図。
【図7】第一実施形態に係る属性判定処理フローを示す図。
【図8】第一実施形態に係る放射グラデーションの入力例とその色領域識別結果を示す図。
【図9】第一実施形態に係る線形グラデーションの入力例とその色領域識別結果を示す図。
【図10】第一実施形態に係る複雑グラデーションの入力例とその色領域識別結果を示す図。
【図11】第一実施形態に係るグラデーションクラスタ情報生成処理フローを示す図。
【図12】第一実施形態に係るグラデーションクラスタ情報生成処理の具体例を示す図。
【図13】第一実施形態に係る図12の境界色勾配情報及び境界属性を示す図。
【図14】第一実施形態に係る図12のグラデーションクラスタ情報を示す図。
【図15】第一実施形態に係る線形グラデーションパラメータ生成の概念図。
【図16】第一実施形態に係る線形グラデーションパラメータの具体例を示す図。
【図17】第一実施形態に係る放射グラデーションパラメータ生成の概念図。
【図18】第一実施形態に係る放射グラデーションパラメータの具体例を示す図。
【図19】第一実施形態に係る色領域統合処理後の新しい色領域識別結果の具体例を示す図。
【図20】ベクトル化結果をレンダリングしたベクトル画像を示す図。
【図21】第一実施形態に係る線形グラデーションベクトル化の概念図。
【図22】第二実施形態に係る線形グラデーション始終点のオフセットを補完する概念図。
【図23】第二実施形態に係る放射グラデーション中心のオフセットを補完する概念図。
【図24】第二実施形態に係るメイン処理を示すフローチャート。
【図25】第二実施形態に係るオフセット補完フローを示す図。
【発明を実施するための形態】
【0012】
<第一実施形態>
以下、添付の図面を参照して本発明に係る実施形態を説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【0013】
[機器構成]
本実施形態の画像処理装置の構成例について、図2のブロック図を参照して説明する。図2において、CPU(Central Processing Unit)7は、装置全体を制御する。ROM(Read Only Memory)6は、変更を必要としないプログラムやパラメータを格納する。RAM(Random Access Memory)5は、外部装置等から供給されるプログラムやデータを一時記憶する。スキャナ1は、文書等を光電走査して電子的な画像データを得て入力データとし、画像入出力I/O3はこのスキャナ1と画像処理装置を接続する。画像メモリ2は、スキャナ1で読み取られた画像データ等を保持する。外部記憶装置12は、固定して設置されたハードディスクやメモリカード、あるいは着脱可能なフレキシブルディスク(FD)やCD(Compact Disk)等の光ディスク、磁気や光カード、ICカード、メモリカード等を含む。また、I/O13は、これら外部記憶装置12とコンピュータ装置との入出力インタフェース。I/O15は、ユーザの操作を受け、データを入力するマウス等のポインティングデバイス10やキーボード9等の入力デバイスとの入出力インタフェースである。映像I/O14は、画像処理装置の保持するデータや供給されたデータを表示するためのディスプレイモニタ8との入出力インタフェースである。通信I/F4は、インターネット等のネットワーク回線に接続するためのインタフェースである。システムバス11は、画像処理装置内の各ユニットを通信可能に接続する。
【0014】
[処理フロー]
以下、CPU7上で実行されるプログラムにより本願発明を実現する処理手順を、図1のフローチャートを用いて説明する。
【0015】
図1のフローチャートにおいて、S100で処理を開始すると、処理対象となる画像領域を含む画像データを入力する。画像入力に関しては、図2のスキャナ1にて読み取られた画像データを画像入出力I/O3を介して画像メモリ2に入力する。また、通信I/F4を介して、装置外部より処理対象となる画像領域を含む画像を入力してもよく、あるいは、外部記憶装置12に予め記憶される画像データをI/O13を介して読み込んでもよい。得られた入力画像は、画像メモリ2上に保持される。
【0016】
[色領域識別処理]
次に読み取った画像データに対してS200で色領域識別処理を行う。スキャナなどの入力手段を用いた場合、入力画像にノイズが重畳され、代表色の特定が難しいことが起こりうる。この場合、減色処理を行い、色差が小さい画素をまとめて同じ色情報を有するようにすることで、同色領域として、複数の色領域に分割することができる。まず、S201では入力画像に対して減色処理を施すことで、上記問題を解消することができる。例えば特許文献1で開示されている手法では、入力画像中の画素から色情報を元にクラスタを構成し、類似するクラスタやノイズと思われるクラスタを統合することでスキャンノイズを除去するものがある。これを適用することで、スキャン画像入力等で生じるノイズ除去することができる。なお、ノイズ除去の方法については、他の手法を用いても構わない。
【0017】
次にS202でラベリング処理を行うことにより色領域を抽出する。ラベリング処理は連結する同じ値を有する画素集合に同一の番号(識別情報)を付与する処理であり、各色領域の情報(面積、形状)を取得するための前処理としてよく用いられる。ここでは色領域を後処理で識別できるようにするための識別番号、即ちラベルを付与する。以上、S201とS202とにより、図1における色領域識別処理(S200)を実現している。
【0018】
[境界色勾配情報算出処理]
次にS300ではS200における色領域識別結果を基に、境界色勾配情報算出処理を行う。ここでは図3に示すように境界の情報と色勾配の情報を、各色領域の境界ごとに得る。今後、図3に示した情報を「境界色勾配情報」と呼称し説明する。また境界色勾配情報は図3に示したように、境界番号、境界を挟むラベルAとラベルB(すなわち当該境界を挟む2つの色領域の情報)、境界長、上下左右の各方向色勾配強度、平均色勾配の情報を含む。
【0019】
S300の詳細なフローを、図4を用いて説明する。尚、ラスタスキャンを説明する際の言葉の定義として、図5に示すように着目画素をPt、横方向の比較画素をPr1、縦方向の比較画素をPr2と呼称することとする。
【0020】
まずS301ではCPU7は、Ptをラスタスキャンの始点Pstartに設定する。ここではPstartを入力画像に含まれる画素のうち、最も左上に位置する画素とする。次にS302ではCPU7は、PtのラベルとPr1のラベルとが同一か否かを判定する。同一ではない場合は(S302にてYES)S303に移り、同一の場合は(S302にてNO)S305に移る。
【0021】
次にS303ではCPU7は、窓関数を用いて横方向の色勾配を算出する。この時、色勾配を算出するための色値は保持された入力画像から取得される。ここでは、図6(a)の窓関数を用いてRGB値におけるR値、G値、B値それぞれに対する値dr、dg、dbの算出を行い、求めた値の中で絶対値が最大となる値を色勾配dcとする。例えば図6(a)の各画素位置の(R,G,B)をそれぞれ以下の値とする。
Pc1:(30,20,10)
Pt:(40,15,8)
Pc2:(80,10,6)
Pc3:(90,5,4)
【0022】
この時の図6(a)の窓関数により、値dr、dg、dbは下記に示すようになる。
dr=(−2×30)+(−1×40)+(1×80)+(2×90)=160
dg=(−2×20)+(−1×15)+(1×10)+(2×5)=−35
db=(−2×10)+(−1×8)+(1×6)+(2×4)=−14
【0023】
よってこの場合は、drの絶対値が最大となるため、色勾配dcは“160”となる。またこの時、色勾配dcが正である場合は左方向の色勾配、負である場合は右方向の色勾配であると定義する。もちろん、逆に定義しても構わない。尚、色勾配算出に用いる色値は、RGBやYCC等どの色空間のものでも良い。また色勾配を演算する色のコンポーネント数は例示したように一つに限定しても良いし、全てのコンポーネントを用いて算出しても良い。また、他の窓関数や、別の算出式を用いても構わない。以上の処理を終えた後、S304に移る。
【0024】
S304ではCPU7は、境界色勾配情報を更新する。まずCPU7は、参照中の境界をなす2つのラベルの組み合わせを、既存の境界色勾配情報(図3)に登録されている各境界に対するラベルの組み合わせと比較し、既に登録済みか否かを判定する。登録済みであった場合、CPU7は、該当する境界色勾配情報の境界長を1加算する。このとき、前ステップで得た色勾配dcをその方向に応じた項目に足し合わせる。前述の例の場合、色勾配dcは160であり、符号は正であるため左方向色勾配の項目に足し合わせる。未登録であった場合は、CPU7は、新しい境界色勾配情報を生成する。具体的にはCPU7は、参照中の境界をなす2つのラベルを境界色勾配情報のラベルA、ラベルBの項目に書き込む。そして、CPU7は、境界長に1を、色勾配dcをその方向に応じた項目にセットし、その他の値を全て0で初期化する。以上の処理を終えた後、S305に移る。
【0025】
次にS305では、CPU7は、PtのラベルとPr2のラベルとが同一か否かを判定する。同一ではない場合は(S305にてYES)S306に、同一の場合は(S305にてNO)S308に移る。
【0026】
S306では、CPU7は、窓関数を用いて縦方向の色勾配を算出する。例えば図6(b)に示すような窓関数を用いて算出する。この時、色勾配を算出するための色値はS303と同様に保持された入力画像から得る。色勾配の算出は、縦方向の窓関数を用いてS303と同様の手順で行う。この時、色勾配dcが正である場合は上方向の色勾配、負である場合は下方向の色勾配であると定義する。もちろん、逆に定義しても構わない。以上の処理を終えた後、S307に移る。
【0027】
S307では、CPU7は、境界色勾配情報を更新する。更新する手順はS304と同様である。以上の処理を終えた後、S308に移る。
【0028】
S308では、CPU7は、Ptがラスタスキャンの終点Pendに至ったか否かを判定する。ここではPendを入力画像に含まれる画素のうち、最も右下に位置する画素とする。PtがPendと同位置となった場合は(S308にてYES)S308に移り、同位置ではない場合は(S308にてNO)S309へ移る。
【0029】
S309では、CPU7は、着目画素を変更するため、Ptを一つずらし、S302に戻る。
【0030】
S310では、CPU7は、得られた境界色勾配情報を用いて、それぞれの平均色勾配を算出する。具体的には、CPU7は、境界色勾配情報における平均色勾配の項目に、上方向色勾配、下方向色勾配、右方向色勾配、左方向色勾配の値を全て足し合わせ、境界長で割った値を代入する。図3に示す境界nの場合、平均色勾配は、(1200+0+0+0)/6=200となる。これにより、図3に示した各値が境界の数だけ抽出できることになる。以上、S301からS310は図1における境界色勾配情報算出処理(S300)を実現している。
【0031】
尚、ここでは簡略化のため割愛したが、Ptが画像右端に至ったためPr1が得られない場合や、Ptが画像下端に至ったためPr2が得られない場合は比較を行わず次の処理へ遷移する。また同様にPtが画像端に至ったため窓関数分の画素値が得られない場合は窓関数の形状を変更してもよいし、算出を行わなくてもよい。
【0032】
[境界属性判定処理]
次にS400では境界色勾配情報を用いて境界属性の判定を行い、その属性の付記を行う。すなわち、当該判定した各境界の属性を、境界色勾配情報の各境界と関連付けて保存する。S400の詳細なフローを、図7を用いて説明する。
【0033】
まずS401では、CPU7は、境界色勾配情報を用いて、参照中の境界がエッジ境界か擬似輪郭境界かを判別する。ここでは前ステップまでで得た境界色勾配情報における平均色勾配が予め定められた閾値T1よりも大きい場合、エッジ境界であると判定する。閾値T1の一例としてはT1=20、等がある。この閾値T1は、経験的に求めてもよいし、任意の算出式により求めても構わない。平均色勾配が閾値T1以下であった場合、擬似輪郭境界と判定する。エッジ境界であると判定した場合(S401にてYES)、S402へ進み、擬似輪郭境界であると判定した場合(S401にてNO)、S407へ進む。なお、ここでの「擬似輪郭境界」とは、画像中のグラデーション内に形成される輪郭であり、処理上、グラデーションの領域を分割するために用いられる。
【0034】
CPU7は、S402とS403でグラデーションの属性判定を行う。ここでは参照中の擬似輪郭境界が、下記に示すいずれのグラデーション領域に属するものかを境界色勾配情報の特性を用いて、放射グラデーション、線形グラデーション、複雑グラデーションのいずれであるかを判定する。ここで、「放射グラデーション」とは、図8の(a)のようにある点を中心として色が同心円状に移り変わっていくグラデーションを指す。また「線形グラデーション」とは、図9の(a)や(c)のように色が一定の方向に移り変わっていくグラデーションを指す。また「複雑グラデーション」とは、図10(a)のように放射グラデーションや線形グラデーションに属さないグラデーションを指す。
【0035】
まずS402では、CPU7は、参照中の擬似輪郭境界が放射グラデーションに属するか否かを判別する。図8(a)に示すような放射グラデーションに対し色領域識別処理(S200)をした場合、図8(b)に示すような色領域識別結果が得られる。このような色領域識別結果に基づいて境界色勾配情報算出処理(S300)を実行することにより各境界の色勾配を算出すると、図8(b)に示したように、境界ごとに算出される上下左右全ての勾配方向に対し色勾配がほぼ均一の値をとる。これは放射グラデーションの色勾配が同心円状に、つまり全ての勾配方向に一定の値を取るためである。この特性を利用し、S402において、CPU7は、参照中の擬似輪郭境界の境界色勾配情報が下記の条件全てを満たした場合、放射グラデーション属性と判定する。
条件1:上方向色勾配×閾値T2>下方向色勾配
条件2:下方向色勾配×閾値T2>上方向色勾配
条件3:右方向色勾配×閾値T2>左方向色勾配
条件4:左方向色勾配×閾値T2>右方向色勾配
条件5:上方向色勾配×閾値T2>右方向色勾配
条件6:右方向色勾配×閾値T2>上方向色勾配
【0036】
上記6つの条件を満たした場合、擬似輪郭境界の上下左右全ての勾配方向に対し色勾配がほぼ均一であるとみなし、放射グラデーション属性とする。閾値T2の一例としてはT2=2、等がある。この閾値T2は、経験的に求めてもよいし、任意の算出式により求めても構わない。放射グラデーションと判定された場合(S402にてYES)、S404に移る。放射グラデーションではないと判定された場合(S402にてNO)、S403に移る。
【0037】
S403では、CPU7は、参照中の擬似輪郭境界が線形グラデーション属性によるものか否かを判別する。図9(a)または図9(c)に示すように線形グラデーションを入力した場合、図9(b)または図9(d)に示すような色領域識別結果が得られる。このような色領域識別結果に基づいて境界色勾配情報算出処理を実行することにより各境界の色勾配を算出すると、図9(b)に示したように上下左右の色勾配の内一つの勾配方向、もしくは、図9(d)のように相対しない二つの勾配方向が、大きな値を取る。これは線形グラデーションの色勾配が一定の勾配方向を取るためである。この特性を利用し、S403において、CPU7は参照中の擬似輪郭境界の境界色勾配情報が下記の条件7(7.1〜7.3)か、条件8(8.1〜8.5)のいずれかを満たした場合、線形グラデーション属性と判定する。尚、上下左右の色勾配において、値が大きい順番にG1、G2、G3、G4とする。
【0038】
(条件7)
条件7.1:G1>閾値T3×G2
条件7.2:G1>閾値T3×G3
条件7.3:G1>閾値T3×G4
【0039】
(条件8)
条件8.1:G1>閾値T4×G3
条件8.2:G1>閾値T4×G4
条件8.3:G2>閾値T4×G3
条件8.4:G2>閾値T4×G4
条件8.5:G1の方向とG2の方向が相対でない。
【0040】
閾値T3、T4の例としてはT3=3、T4=2、等がある。この閾値T3およびT4は、経験的に求めてもよいし、任意の算出式により求めても構わない。上記条件7もしくは条件8のいずれかを満たし線形グラデーションと判定された場合(S403にてYES)、S405に移る。線形グラデーションではないと判定された場合(S403にてNO)、S406に移る。
【0041】
次にS404、S405、S406、S407ではそれぞれ判定した属性が境界毎に境界属性情報へ付記される。つまり、S404では、CPU7は、当該判定対象の境界に対して放射グラデーション属性を付記する。S405では、CPU7は、当該判定対象の境界に対して線形グラデーション属性を付記する。S406では、CPU7は、当該判定対象の境界に対して複雑グラデーション属性を付記する。S407では、CPU7は、当該判定対象の境界に対してエッジ属性を付記する。S404、S405、S406、S407いずれかの処理が終了した後、本処理フローを終了する。以上、S401からS407の処理は、図1における境界属性判定処理(S400)を実現している。
【0042】
[グラデーションクラスタ情報生成処理]
次にS500では、同種(同属性)のグラデーションで表現されているグラデーション領域を同定し、グラデーション領域に対応するクラスタ情報を生成するためのグラデーションクラスタ情報生成処理を行う。本実施形態において、グラデーションクラスタ情報は、グラデーション領域内の色領域を指すラベルのリスト、グラデーション領域内の境界のリスト、対応するグラデーション領域の種別を含む。S500の詳細を、図11の処理フローと、図12(a)が入力画像として入力された場合の具体例とを用いて説明する。
【0043】
図12(a)が入力された場合、色領域識別処理(S200)により、図12(b)に示す色領域識別結果が得られる。この結果に対し、境界色勾配情報算出処理(S300)、境界属性判定処理(S400)を行うと図13に示すような情報が得られる。以下、入力された情報において、着目する境界をBtとして記載する。
【0044】
S501では、CPU7は、参照中の境界Btが未処理かどうかを判定する。この処理は後の処理であるグラデーションクラスタ情報生成の際に優先して処理される境界があるため、処理された境界を再度処理しないようにするために必要となる。未処理であると判定された場合は(S501にてYES)、S502に移り、処理済みであると判定された場合は(S501にてNO)、S506に移る。
【0045】
S502では、CPU7は、参照中の境界Btを成している二つのラベル領域が未処理かどうかを判定する。この処理もS501と同様に、後の処理であるグラデーションクラスタ情報生成の際に優先して処理される境界があり、処理された境界をなす二つのラベルを再度処理しないようにするために必要となる。境界Btをなすラベル(すなわち境界Btを挟む2つのラベル領域)が未処理であると判定された場合は(S502にてYES)S503に移り、処理済みであると判定された場合は(S502にてNO)S506に移る。
【0046】
S503では、CPU7は、境界属性の判定を行う。参照中の境界Btに関連付けられている属性が「線形グラデーション」であった場合はS504へ、「放射グラデーション」であった場合はS505へ、それ以外の場合はS506へそれぞれ移る。
【0047】
S504では、CPU7は、線形グラデーションクラスタ情報の生成を行う。ここではまず、CPU7は、参照中の境界Btの境界番号を線形グラデーションクラスタ情報に登録する。次にCPU7は、参照中の境界Btをなす2つのラベルを線形グラデーションクラスタ情報に登録する。次にCPU7は、生成した線形グラデーションクラスタ情報固有の勾配角度を算出する。このときの勾配角度は、境界色勾配情報における上下左右の色勾配を用いて下記の式(1)を用いて求められる。
勾配角度=arctan((上方向色勾配−下方向色勾配)/(右方向色勾配−左方向色勾配)) ・・・(1)
【0048】
そして、CPU7は、生成した線形グラデーションクラスタ情報における種別に「線形グラデーション」をセットする。ここで、便宜上、線形グラデーションをセットされた境界のクラスタを線形グラデーションクラスタ情報Glと記載する。
【0049】
当該線形グラデーションクラスタ情報に登録した二つのラベルに対応する色領域の少なくともいずれかが更に他の色領域と接している場合、当該他の色領域との間の境界を順次評価し、当該他の色領域を線形グラデーションクラスタ情報に登録するか否かを判定していく。この処理を図13の例を用いて説明する。
【0050】
まず参照中の境界Btが図13の境界8であると仮定して説明する。この時、線形グラデーションクラスタ情報Glには境界8と、境界8を成すラベル5とラベル6が登録される。またこの場合の勾配角度は前述の式(1)により、以下のように求められる。
勾配角度=arctan((0−0)/(800−0))=0
【0051】
更に、図13の境界色勾配情報を参照すると、ラベル5は参照中の境界8以外に、境界4にも接していると判定される。そこで境界4が当該生成した線形グラデーションクラスタ情報Glに属するか否かを判別する。この時、境界4はその境界属性がエッジ属性であるため、線形グラデーションクラスタ情報Glには属さないと判別される。
【0052】
また、ラベル6は、参照中の境界8以外に、境界5と境界9とに接していると、図13の境界色勾配情報に基づいて判定される。境界5はエッジ属性であるために線形グラデーションクラスタ情報Glには属さないが、境界9は線形グラデーション属性である。よって、境界9が線形グラデーションクラスタ情報Glに属するかが判定される。具体的にはまず、境界9を成すラベル6、ラベル7が他のグラデーションクラスタ情報に含まれているか否かが判定される。他のグラデーションクラスタ情報に含まれている場合、境界9は生成中のグラデーションクラスタ情報に属さないと判別される。含まれていない場合、次の判定に移る。境界9の勾配角度は式(1)を用いて算出することができる。即ち境界9の勾配角度は以下のように算出される。
勾配角度=arctan((0−0)/(1200−0))=0
【0053】
ここで得られた勾配角度と、線形グラデーションクラスタ情報固有の勾配角度との差が閾値T5以内であった場合、当該境界およびそれを構成するラベルが線形グラデーションクラスタ情報に登録される。閾値T5は例えばT5=22.5、等がある。この閾値T5は、経験的に求めてもよいし、任意の算出式により求めても構わない。上述した図13の境界9の勾配角度と線形グラデーションクラスタ情報の勾配角度差は0であるため、境界9は線形グラデーションクラスタ情報Glに属する境界であると判定される。よって境界9と、境界9を成すラベル6とラベル7を線形グラデーションクラスタ情報Glに登録する。ただしラベル6は、実際には既に生成中の線形グラデーションクラスタ情報に登録済みであるため、ここではラベル7のみが登録される。なお、所定の閾値より大きいもしくは閾値以上などの判定については、閾値の設定に合わせて変更して構わない。
【0054】
次にラベル7が属している境界を同様に評価し、線形グラデーションとして登録していくと、図14に示すグラデーションクラスタ情報におけるグラデーションクラスタ2のような結果が得られる。図14の例では、グラデーションクラスタ2は、ラベル5,6,7,8の色領域で構成される線形グラデーションで、且つ勾配角度は0度である。なお、図14に示す「種別」とは、各境界が有するグラデーション属性に対応し、グラデーションクラスタが有する属性となる。以上の処理により、線形グラデーションクラスタ情報の生成を終えたら、S506に移る。
【0055】
S505ではCPU7は、放射グラデーションクラスタ情報の生成を行う。ここではまず、CPU7は、参照中の境界Btの境界番号を放射グラデーションクラスタ情報に登録する。次にCPU7は、参照中の境界Btをなす2つのラベルをグラデーションクラスタ情報に登録する。次にCPU7は、生成した放射グラデーションクラスタ情報には勾配角度を要しないためダミーの値を初期値として代入する。そしてCPU7は、生成した放射グラデーションクラスタ情報における種別に「放射グラデーション」をセットする。ここで、便宜上、放射グラデーションをセットされた境界のクラスタを線形グラデーションクラスタ情報Grと記載する。
【0056】
当該放射グラデーションクラスタ情報に登録した二つのラベルに対応する色領域の少なくともいずれかが更に他の色領域と接している場合、CPU7は、当該他の色領域との間の境界を順次評価し、当該他の色領域を放射グラデーションクラスタ情報に登録するか否かを判定していく。この処理を図13の例を用いて説明する。
【0057】
まず参照中の境界Btが図13の境界2であると仮定して説明する。この時、放射グラデーションクラスタ情報Grには境界2と、境界2を成すラベル2、ラベル3が登録される。更に、図13の境界色勾配情報を参照して、ラベル2は参照中の境界2以外に、境界1にも接していると判定される。そこで境界1が当該生成した放射グラデーションクラスタ情報Grに属するか否かを判別される。この時、境界1はその境界属性がエッジ属性であるため、放射グラデーションクラスタ情報Grには属さないと判別される。
【0058】
また、ラベル3は参照中の境界2以外に、境界3に属していると、図13の境界色勾配情報に基づいて判定される。境界3は放射グラデーション属性である。よって境界3が放射グラデーションクラスタ情報Grに属するかを判定する。具体的には、境界3を成すラベル3、ラベル4が他のグラデーションクラスタ情報に含まれているか否かを判定する。他のグラデーション情報に含まれている場合、境界3は生成中のグラデーションクラスタ情報に属さないと判別する。含まれていない場合、境界3と、境界3を成すラベルを放射グラデーションクラスタ情報Grに登録する。ただしラベル3は実際には生成中の放射グラデーションクラスタ情報に既に登録済みであるため、ここではラベル4のみが登録される。
【0059】
次にラベル4が属している境界を同様に評価し、放射グラデーションとして登録していくと、図14に示すグラデーションクラスタ情報におけるグラデーションクラスタ1のような結果が得られる。図14のグラデーションクラスタ1は、ラベル2,3,4の色領域で構成される放射グラデーションクラスタとして登録されている。以上の処理により、放射グラデーションクラスタ情報の生成を終えたら、S506に移る。
【0060】
S506では、CPU7は、参照中の境界が最後の境界かを判定する。最後の境界である場合は(S506にてYES)そのまま処理を終え、最後の境界でない場合は(S506にてNO)S507に移る。S507ではCPU7は、参照中の境界を次の境界へ更新し、S501に移る。以上のS501からS507により、図1におけるグラデーションクラスタ情報生成処理(S500)を実現している。
【0061】
[グラデーションパラメータ生成処理]
次にS600では、グラデーションクラスタ情報毎にグラデーションのパラメータ生成を行う、グラデーションパラメータ生成処理を行う。ここでは色領域識別結果と、グラデーションクラスタ情報、及び境界色勾配情報を用いて、線形グラデーションと放射グラデーションのパラメータ生成を行う。
【0062】
まずグラデーションクラスタ情報における種別が、「線形グラデーション」の場合のパラメータの生成方法の詳細を説明する。例として図12の線形グラデーション領域におけるパラメータ生成の概念図である図15を示す。ここで生成する線形グラデーションのパラメータは、グラデーション端点を定義する始点ps、終点pe、及び色の移り変わりを定義するオフセットである。尚、オフセットはグラデーション領域中の相対位置を示すオフセット値と、相対位置における色を定義する色値を含む。
【0063】
まず、線形グラデーション領域(線形グラデーションクラスタ情報に登録されたラベルで構成される領域)の外接矩形Rを求め、その外接矩形Rの重心Cを求める。なお、重心の求め方については、ここでは説明を省略する。次に求めた重心Cを通り、かつ角度θがグラデーションクラスタ情報に付記されている勾配角度となるベクトルvを求める。次に外接矩形Rとの交点をそれぞれ始点ps(a,b),終点pe(c,d)とする。次に求めたpsからpeまでの距離を求め、この距離を100に正規化するための定数Kを求める。即ち、以下の式(2)を用いて定数Kを求めることができる。
・・・(2)
【0064】
図15に示す例の場合、正規化するための定数Kは下記のようになる。
【0065】
次にグラデーションクラスタ情報に登録されているN個のラベルに対し、各ラベルに対応する色領域の重心Cln(n=1,2,…,N)をそれぞれ求める。図15に示す例の場合、Cl1〜Cl4が含まれる。次に求めた各色領域の重心Clnから、ベクトルvに対し法線を下ろし、その交点をオフセット点Ofn(n=1,2,…,N)としてそれぞれ導出する。図15に示す例の場合、Of1〜Of4が含まれる。そして、次に始点psから、オフセット点Ofnまでの距離dn(n=1,2,…,N)を算出し、前述の定数Kを掛け合わせた値をオフセット点Ofnにおけるオフセット値とする。
【0066】
図15の例で言うと、Of1(140,100)とps(100,100)との距離d1は40である。定数Kは前述で求めた通り0.5なので、Of1におけるオフセット値は0.5×40=20となる。最後にオフセット点Ofnに対応する色領域の平均色をオフセットの色値として用いる。図15の例の場合、以上の処理を全てのオフセット点Ofnに行うことで、図16に例示したような線形グラデーションパラメータを得ることができる。図16に示すように、本実施形態では、線形グラデーションパラメータには、グラデーションの端点情報(始点、終点の座標)、各オフセットの情報(オフセット値、色値)が含まれる。
【0067】
次にグラデーションクラスタ情報における種別が、「放射グラデーション」の場合のパラメータの生成方法の詳細を説明する。例として図12の放射グラデーション領域におけるパラメータ生成の概念図である図17を示す。ここで生成する放射グラデーションのパラメータは、グラデーション端点を定義する中心pcと半径r、及び色の移り変わりを定義するオフセットである。尚、オフセットは、位置情報としてグラデーション領域中の相対位置を示すオフセット値と、相対位置における色を定義する色値を含む。
【0068】
まず、放射グラデーションクラスタ情報に登録されているN個のラベルに対し、それぞれ対応する色領域の外接矩形を求めその大きさ順でソートしたものをそれぞれRn(n=1,2,…,N)とする。つまり外接矩形は、図17の例の場合、R1,R2,R3のようになる。
【0069】
次に求めた外接矩形R1は最内郭に位置する色領域による外接矩形となるため、対応する色領域の重心を求め、その重心を放射グラデーションの中心pcとする。次に求めた外接矩形RNは最外郭に位置する色領域による外接矩形となるため、その外接矩形の右端を定義する直線LRNから、中心pcまでの距離を半径rとする。図17の例の場合、中心pc(200,100)から最外郭に位置する色領域の外接矩形R3の右端を定義する直線LR3(x=280)までの距離が80となり、この値を半径rとする。
【0070】
次に半径rを100に正規化するための定数Kを求める。即ち、式(3)を参照して求めると、以下のように求められる。
・・・(3)
【0071】
図17の例で言えば、正規化するための定数Kは下記のようになる。
【0072】
次に放射グラデーションのオフセットOfn(n=1,2,…,N)を求める。放射グラデーションにおけるオフセットは、まず一つ目のオフセット点Of1を中心pcと同一の点とし、オフセット値を0とする。そして二つ目からのオフセット点の生成方法を説明する。
【0073】
まず中心pcを通り、x軸に水平な直線Lcを定義する。そして次に生成中のオフセット点がi番目(i=2,3,…,N)であるとすると、外接矩形Ri−1の右端を定義する直線LRi−1と外接矩形Riの右端を定義する直線LRiとの中間を通る直線Lmiを算出する。次に求めた直線Lmiと直線Lcとの交点を求め、この交点をオフセット点Ofiとする。図17の例の場合、中心pc(200,100)を通り、x軸に水平な直線Lcはy=100となる。そしてi=2の時、直線LR1(x=220)と直線LR2(x=260)の中間を通る直線Lm2はx=240となる。よってオフセット点Of2は直線Lcと直線Lm2の交点である(240,100)となる。以上の処理により、ラベルの数N個分だけオフセット点Ofnが生成される。図17bに示す例の場合、Of1〜Of3が含まれる。
【0074】
次に中心pcから、オフセット点Ofnまでの距離dn(n=1,2,…,N)を算出し、前述の定数Kを掛け合わせた値をオフセット点Ofnにおけるオフセット値とする。図17の例の場合、Of1は中心pcと同一点なので距離d1=0となり、定数Kに関わらずオフセット値は0となる。Of2(240,100)と中心pc(200,100)との距離d2は40である。定数Kは前述で求めた通り、1.25なので、Of2におけるオフセット値は1.25×60=50となる。最後にオフセット点Ofnに対応する色領域の平均色をオフセットの色値として用いる。
【0075】
以上の処理を全てのオフセット点Ofnに行うことで、図18に例示したような放射グラデーションパラメータを得ることができる。図18に示すように、本実施形態では、放射グラデーションパラメータには、放射グラデーションの中心座標、半径、各オフセットの情報(オフセット値、色値)が含まれる。以上の処理は図1におけるグラデーションパラメータ生成処理(S600)を実現している。
【0076】
[色領域統合処理]
次にS700ではグラデーションクラスタ情報毎にラベルの指す色領域を一つに統合する、色領域統合処理を行う。この処理では各グラデーションクラスタ情報に登録されているラベルを一つに統合し、新しい色領域識別結果を得る。図12と図14を用いて述べると、グラデーションクラスタ1にラベル2,3,4が登録されている。よってこのラベルが指す色領域を統合し、新しいラベルとしてラベル9を振り、一つの色領域とする。グラデーションクラスタ2に登録されているラベル5,6,7,8に関しても同様に統合し、新しいラベルとしてラベル10を振る。以上の処理を行うと、図19に示すようなラベルが付与された各色領域が新たに得られ、原画にないような擬似輪郭境界は消える。また、グラデーションクラスタ情報に基づき、ラベル9は放射グラデーションの領域であり、ラベル10は線形グラデーションの領域であることが分かる。この処理により、図1における色領域統合処理(S700)を実現する。
【0077】
[輪郭ベクトル記述生成処理]
最後にS800では、色領域の輪郭ベクトル記述を生成する、輪郭ベクトル記述生成処理を行う。ここで輪郭ベクトルを求める対象となる色領域は、S700で色領域統合後に得られる色領域である。まず、S700で統合した後の色領域間の境界線を求め、当該境界線を関数近似することにより、各色領域の輪郭を表すベクトル記述(輪郭ベクトルデータ)を生成する。なお、隣接する色領域が接している区間ごとに境界線を関数近似してベクトル記述を求めることにより、隣接する色領域間で隙間や重なりが生じない輪郭のベクトル記述を得ることができる。図19の例の場合、ラベル1とラベル9の色領域間の境界線と、ラベル1とラベル10の色領域間の境界線とを求め、関数近似を行うことで、各色領域の輪郭のベクトル記述を得ることができる。
【0078】
そして、グラデーションクラスタに属するグラデーション領域に関しては、当該求めた輪郭ベクトル記述と、S600で得たグラデーションをベクトル表現するためのグラデーションパラメータとを合わせて出力する。すなわち、色領域輪郭のベクトル記述で定義される輪郭内を当該グラデーションパラメータでグラデーション表現するように記述することによって、グラデーション領域のベクトルデータ(グラデーション付き輪郭ベクトルデータ)を生成する。また、グラデーション領域以外の色領域(エッジ属性の境界線で囲まれる単一色の色領域)に関しては、当該色領域の代表色(例えば当該色領域の平均色)を求め、当該色領域の輪郭ベクトル記述と代表色とを合わせて出力することによって、グラデーション領域以外の色領域のベクトルデータを生成する。このようにして、グラデーション領域を含む画像のベクトル化の結果が得られる。
【0079】
以上の処理により得られたベクトル化の結果をレンダリングすると、図20に示すようなベクトル画像を得ることができる。
【0080】
以上により、画像中のグラデーション領域を高速に同定し、その特徴に応じたグラデーションパラメータを生成することができる。
【0081】
<第二実施形態>
第一実施形態では、色領域の重心を用いて線形グラデーションのオフセット値を生成し、色領域の平均色をオフセットの色値とした。しかし、この手法を用いると線形グラデーションの始点部/終点部(端部)には色は付記されず、場合によっては原画との差異が目立つ事がある。また放射グラデーションに関しても同様であり、色領域の平均色をオフセットの色値としているためグラデーション中心部と終点部に原画と誤差が生じてしまう。
【0082】
例えば図21(a)のようなRGB値がC1(0,0,0)から始まり、x軸に対して水平方向に色が変化する線形グラデーション画像を入力したとする。この入力の左端をオフセット値0、右端をオフセット値100と定義する。この時、例としてR値とオフセットの関係をグラフにすると、図21(b)のような図が得られる。この入力画像に対し色領域識別処理を行い、色領域ごとの平均色を得ると図21(c)のような結果が得られる。この時、例としてR値とオフセットの関係をグラフにすると、図21(d)のような図が得られる。そして得られた色領域識別結果に従い、第一実施形態で示したグラデーションベクトル化を行うと図21(e)のような結果が得られる。この時、グラデーションベクトル化結果の左端と入力画像の左端を比較すると色に差異がある事がわかる。右端も同様である。この時、例として図21(f)のようにR値とオフセットの関係をグラフにすると、オフセット値が0となる付近と、オフセット値が100となる付近で色変化がない。これは前述のように第一実施形態ではオフセットを、色領域の重心からのみ設定しており、始終点には設定していない事に起因する。
【0083】
[オフセット補間処理]
そこで本実施形態ではこの課題を解決するために、グラデーションパラメータ生成を終えた後に、オフセットの補完を行う。この処理を図24の処理フローを使って説明する。本処理フローは記憶部に格納されたプログラムをCPU7が実行することにより、実現される。なお、S2100からS2600までは第一実施形態と同様の処理を行うため、ここでは説明を割愛する。
【0084】
S2700では、CPU7は、S2600で得たグラデーションパラメータの補完を行う。図25を用いてこのグラデーションパラメータ補完処理の具体的な処理フローを説明する。まず説明を行う前提として、得られたN個のオフセットの中で、オフセット値が一番小さいものから順番にOs[n](n=1,2,…,N)と呼称する。また、オフセットOs[n]におけるオフセット値をOs[n]_val、オフセットOs[n]におけるRGB値をそれぞれOs[n]_r、Os[n]_g、Os[n]_bと呼称する。また、参照中のグラデーションクラスタ情報をGtと呼称する。
【0085】
S2701では、CPU7は、参照中のグラデーションクラスタ情報の種別を判定する。種別が「線形グラデーション」であった場合はS2702へ、「放射グラデーション」であった場合はS2704へ移る。S2702では、CPU7は、線形グラデーションのグラデーション始点におけるオフセットOssの補完を行う。まず、線形グラデーション始点におけるオフセット値は必ず0となるため、CPU7は、Oss_valに0をセットする。次にCPU7は、始点近傍のオフセットにおける色値の変化からOssにおける色値を推定する。OssのRGB値Oss_r、Oss_g、Oss_bは下記式(4)を用いて算出できる。
・・・(4)
【0086】
上記処理により、図22(a)に例示したOssのように始点におけるオフセットの推定を行うことができる。上記処理を終えたら、S2703へ移る。
【0087】
次に、S2703では、CPU7は、線形グラデーション終点におけるオフセットOseの補完を行う。まず、線形グラデーション終点におけるオフセット値は必ず100となるため、CPU7は、Ose_valに100をセットする。次に、CPU7は、終点近傍のオフセットにおける色値の変化からOseにおける色値を推定する。OseのRGB値Ose_r、Ose_g、Ose_bは下記式(5)を用いて算出できる。
・・・(5)
【0088】
上記処理により、図22(b)に示すOseのように終点におけるオフセットの推定を行うことができる。上記処理を終えたら、S2707へ移る。
【0089】
次にS2704では、CPU7は、放射グラデーションにおける一番初めのオフセットOs[1]を補正する。補正を行う前は、放射グラデーションの一番初めのオフセット点Of1を放射グラデーション中心、すなわちOs[1]_val=0としている。このため、例えばR値とオフセットの関係を、Os[1]近辺にクローズアップして図示すると、図23(a)のようになっている。よって放射グラデーション中心のオフセット補完を行うためにはOs[1]_valを補正した、Os[1]_val’が必要となる。よってこの処理ではOs[1]_val’を隣接するオフセットOs[2]_valを基に下記式(6)により設定する。
Os[1]_val’= Os[2]_val/2 ・・・(6)
【0090】
以上の処理を終えた後、S2705に移る。
【0091】
次にS2705では、CPU7は、放射グラデーション中心のオフセットOscの補完を行う。まず、放射グラデーション中心におけるオフセット値は必ず0となるため、CPU7は、Osc_valに0をセットする。次に中心近傍のオフセットにおける色値の変化から、CPU7は、Oscにおける色値を推定する。OscのRGB値Osc_r、Osc_g、Oss_bは、下記式(7)を用いて算出できる。
・・・(7)
【0092】
以上の処理により、図23(b)に例示したOscのように放射グラデーション中心におけるオフセットの推定を行うことができる。上記処理を終えた後、S2706に移る。
【0093】
S2706では、CPU7は、放射グラデーションにおける終点オフセットの補完を行う。この処理はS2703と同様の処理を行うため、説明は割愛する。この処理を終えた後、S2707に移る。
【0094】
S2707では、CPU7は、Gtが最後のグラデーションクラスタ情報か否かを判定する。最後である場合は(S2707にてYES)そのまま処理を終え、最後でない場合は(S2707にてNO)S2708に移る。S2708では、CPU7は、Gtを次のグラデーションクラスタ情報に更新し、S2701へ移る。以上、S2701からS2707の処理により、図24におけるS2700を実現する。
【0095】
S2800とS2900は第一実施形態と同様の処理を行う。
【0096】
以上の処理により原画に近いグラデーションのベクトル化を行うことができる。
【0097】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【0098】
また、本発明の画像処理装置は、上述した実施形態の各機能を実現する専用のハードウェア(ASICなど)を用いて構成するようにしてもよい。
【技術分野】
【0001】
本発明は画像処理技術に関し、特にラスタ画像からグラデーション部分を抽出し、ベクタ画像へ変換を行う画像処理技術に関する。
【背景技術】
【0002】
近年、一つの画像情報を異なる機器で用いる機会が増えてきている。このため機器間の送信コストを低減するための高圧縮性や、機器間の解像度の違いに対応するための高画質性も要求されている。またユーザの利便性に関しても、部分的に画像を再編集できる編集性といった面も要求されている。これによりラスタ形式で表現された画像を、解像度に依存せず再編集も容易なベクタ形式へ変換する、ベクトル化技術が必要となってきている。
【0003】
しかしラスタ形式で表現された画像中の全ての色をベクトルで再現した場合、ノイズ等も全て再現してしまうためベクトル形式の利点である高画質性、高圧縮性、再編集性が損なわれてしまう。そこでベクトル化技術においてはラスタ画像における色数をある程度まで絞り込み減色を行うような減色処理が必要となる。
【0004】
画像のベクトル化技術における減色処理の手法が特許文献1で開示されている。この手法では画像を入力し、色の類似度を使って入力画像の色数を減色する。次に各色領域の輪郭線を抽出した後に関数近似を行い、色情報を加えてベクトルデータを出力する。しかし、上記のような色の類似度による減色処理は、グラデーション領域を処理した場合に原画にはない色領域間の輪郭、即ち擬似輪郭を生じさせてしまい画質の劣化を招いてしまう。
【0005】
そこで特許文献2では減色処理によって得られる色領域のグラデーションの属性を判別し、属性に応じたベクトル化する手法を開示している。この手法では上述の減色処理で同一領域と判定された領域を更に詳細に解析する、即ち各色領域中の各画素間の色変化方向を検出し、その結果を用いてグラデーション属性の判別を行う。また特許文献3では画像からグラデーション領域を判別し、ベクトル化を行う手法を開示している。この手法では画像中の各画素間の色勾配を算出し、その結果を用いてグラデーション領域を判別し、得られたグラデーション領域に対しほぼ同じ色の画素を有するパスを生成する。このパスにほぼ垂直な垂線を定義し、この垂線上に代表色値を計算し、ベクトル化を行う。しかし上記に示される手法では画像全域に対し色勾配を算出するための演算を必要とするため低速化を招いてしまう。
【0006】
したがって、画像中のグラデーション領域を高速に同定し、その特徴に応じたグラデーションパラメータを生成する技術はこれまでなかった。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−344069号公報
【特許文献2】特開2007−272456号公報
【特許文献3】特表2009−508239号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
本発明は、上記課題を鑑みてなされたものであり、グラデーションベクトル化処理を高速に行う。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明に係る画像処理装置は以下の構成を備える。すなわち、色差に基づいて入力画像を複数の色領域に分割する分割手段と、前記分割された色領域間の境界における色勾配情報を、前記入力画像の色情報から算出する色勾配情報算出手段と、前記色勾配情報を用いて、当該境界における色勾配の特性を示すグラデーション属性を判定する属性判定手段と、前記境界のグラデーション属性を用いて、前記複数の色領域の中から同じグラデーションに属する色領域を判定してグラデーションクラスタを生成し、当該生成されたグラデーションクラスタに属する色領域と当該グラデーションクラスタのグラデーションの種別とに関する情報を含むグラデーションクラスタ情報を生成するグラデーションクラスタ情報生成手段と、前記色領域と前記色勾配情報と前記グラデーションクラスタ情報とを用いて、前記グラデーション領域ごとにグラデーションのパラメータを生成するグラデーションパラメータ生成手段と、前記グラデーションクラスタ情報を用いて、前記同じグラデーションに属する色領域を統合する色領域統合手段と、前記色領域統合手段にて統合した後の色領域に基づいて、輪郭のベクトル記述を生成し、当該輪郭のベクトル記述と前記グラデーションのパラメータとに基づいてグラデーション領域のベクトルデータを生成する輪郭ベクトル記述生成手段とを備える。
【発明の効果】
【0010】
本発明によると、入力画像のグラデーションの特徴に応じたグラデーション領域のベクトル化を高速に行える。
【図面の簡単な説明】
【0011】
【図1】画像処理装置のメイン処理を示すフローチャート。
【図2】画像処理装置のブロック構成図。
【図3】第一実施形態に係る境界色勾配情報の例を示す図。
【図4】第一実施形態に係る境界色勾配情報算出フローを示す図。
【図5】第一実施形態に係るラスタスキャンを行う際の着目画素と比較画素を示す図。
【図6】第一実施形態に係る色勾配を算出する窓関数を示す図。
【図7】第一実施形態に係る属性判定処理フローを示す図。
【図8】第一実施形態に係る放射グラデーションの入力例とその色領域識別結果を示す図。
【図9】第一実施形態に係る線形グラデーションの入力例とその色領域識別結果を示す図。
【図10】第一実施形態に係る複雑グラデーションの入力例とその色領域識別結果を示す図。
【図11】第一実施形態に係るグラデーションクラスタ情報生成処理フローを示す図。
【図12】第一実施形態に係るグラデーションクラスタ情報生成処理の具体例を示す図。
【図13】第一実施形態に係る図12の境界色勾配情報及び境界属性を示す図。
【図14】第一実施形態に係る図12のグラデーションクラスタ情報を示す図。
【図15】第一実施形態に係る線形グラデーションパラメータ生成の概念図。
【図16】第一実施形態に係る線形グラデーションパラメータの具体例を示す図。
【図17】第一実施形態に係る放射グラデーションパラメータ生成の概念図。
【図18】第一実施形態に係る放射グラデーションパラメータの具体例を示す図。
【図19】第一実施形態に係る色領域統合処理後の新しい色領域識別結果の具体例を示す図。
【図20】ベクトル化結果をレンダリングしたベクトル画像を示す図。
【図21】第一実施形態に係る線形グラデーションベクトル化の概念図。
【図22】第二実施形態に係る線形グラデーション始終点のオフセットを補完する概念図。
【図23】第二実施形態に係る放射グラデーション中心のオフセットを補完する概念図。
【図24】第二実施形態に係るメイン処理を示すフローチャート。
【図25】第二実施形態に係るオフセット補完フローを示す図。
【発明を実施するための形態】
【0012】
<第一実施形態>
以下、添付の図面を参照して本発明に係る実施形態を説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【0013】
[機器構成]
本実施形態の画像処理装置の構成例について、図2のブロック図を参照して説明する。図2において、CPU(Central Processing Unit)7は、装置全体を制御する。ROM(Read Only Memory)6は、変更を必要としないプログラムやパラメータを格納する。RAM(Random Access Memory)5は、外部装置等から供給されるプログラムやデータを一時記憶する。スキャナ1は、文書等を光電走査して電子的な画像データを得て入力データとし、画像入出力I/O3はこのスキャナ1と画像処理装置を接続する。画像メモリ2は、スキャナ1で読み取られた画像データ等を保持する。外部記憶装置12は、固定して設置されたハードディスクやメモリカード、あるいは着脱可能なフレキシブルディスク(FD)やCD(Compact Disk)等の光ディスク、磁気や光カード、ICカード、メモリカード等を含む。また、I/O13は、これら外部記憶装置12とコンピュータ装置との入出力インタフェース。I/O15は、ユーザの操作を受け、データを入力するマウス等のポインティングデバイス10やキーボード9等の入力デバイスとの入出力インタフェースである。映像I/O14は、画像処理装置の保持するデータや供給されたデータを表示するためのディスプレイモニタ8との入出力インタフェースである。通信I/F4は、インターネット等のネットワーク回線に接続するためのインタフェースである。システムバス11は、画像処理装置内の各ユニットを通信可能に接続する。
【0014】
[処理フロー]
以下、CPU7上で実行されるプログラムにより本願発明を実現する処理手順を、図1のフローチャートを用いて説明する。
【0015】
図1のフローチャートにおいて、S100で処理を開始すると、処理対象となる画像領域を含む画像データを入力する。画像入力に関しては、図2のスキャナ1にて読み取られた画像データを画像入出力I/O3を介して画像メモリ2に入力する。また、通信I/F4を介して、装置外部より処理対象となる画像領域を含む画像を入力してもよく、あるいは、外部記憶装置12に予め記憶される画像データをI/O13を介して読み込んでもよい。得られた入力画像は、画像メモリ2上に保持される。
【0016】
[色領域識別処理]
次に読み取った画像データに対してS200で色領域識別処理を行う。スキャナなどの入力手段を用いた場合、入力画像にノイズが重畳され、代表色の特定が難しいことが起こりうる。この場合、減色処理を行い、色差が小さい画素をまとめて同じ色情報を有するようにすることで、同色領域として、複数の色領域に分割することができる。まず、S201では入力画像に対して減色処理を施すことで、上記問題を解消することができる。例えば特許文献1で開示されている手法では、入力画像中の画素から色情報を元にクラスタを構成し、類似するクラスタやノイズと思われるクラスタを統合することでスキャンノイズを除去するものがある。これを適用することで、スキャン画像入力等で生じるノイズ除去することができる。なお、ノイズ除去の方法については、他の手法を用いても構わない。
【0017】
次にS202でラベリング処理を行うことにより色領域を抽出する。ラベリング処理は連結する同じ値を有する画素集合に同一の番号(識別情報)を付与する処理であり、各色領域の情報(面積、形状)を取得するための前処理としてよく用いられる。ここでは色領域を後処理で識別できるようにするための識別番号、即ちラベルを付与する。以上、S201とS202とにより、図1における色領域識別処理(S200)を実現している。
【0018】
[境界色勾配情報算出処理]
次にS300ではS200における色領域識別結果を基に、境界色勾配情報算出処理を行う。ここでは図3に示すように境界の情報と色勾配の情報を、各色領域の境界ごとに得る。今後、図3に示した情報を「境界色勾配情報」と呼称し説明する。また境界色勾配情報は図3に示したように、境界番号、境界を挟むラベルAとラベルB(すなわち当該境界を挟む2つの色領域の情報)、境界長、上下左右の各方向色勾配強度、平均色勾配の情報を含む。
【0019】
S300の詳細なフローを、図4を用いて説明する。尚、ラスタスキャンを説明する際の言葉の定義として、図5に示すように着目画素をPt、横方向の比較画素をPr1、縦方向の比較画素をPr2と呼称することとする。
【0020】
まずS301ではCPU7は、Ptをラスタスキャンの始点Pstartに設定する。ここではPstartを入力画像に含まれる画素のうち、最も左上に位置する画素とする。次にS302ではCPU7は、PtのラベルとPr1のラベルとが同一か否かを判定する。同一ではない場合は(S302にてYES)S303に移り、同一の場合は(S302にてNO)S305に移る。
【0021】
次にS303ではCPU7は、窓関数を用いて横方向の色勾配を算出する。この時、色勾配を算出するための色値は保持された入力画像から取得される。ここでは、図6(a)の窓関数を用いてRGB値におけるR値、G値、B値それぞれに対する値dr、dg、dbの算出を行い、求めた値の中で絶対値が最大となる値を色勾配dcとする。例えば図6(a)の各画素位置の(R,G,B)をそれぞれ以下の値とする。
Pc1:(30,20,10)
Pt:(40,15,8)
Pc2:(80,10,6)
Pc3:(90,5,4)
【0022】
この時の図6(a)の窓関数により、値dr、dg、dbは下記に示すようになる。
dr=(−2×30)+(−1×40)+(1×80)+(2×90)=160
dg=(−2×20)+(−1×15)+(1×10)+(2×5)=−35
db=(−2×10)+(−1×8)+(1×6)+(2×4)=−14
【0023】
よってこの場合は、drの絶対値が最大となるため、色勾配dcは“160”となる。またこの時、色勾配dcが正である場合は左方向の色勾配、負である場合は右方向の色勾配であると定義する。もちろん、逆に定義しても構わない。尚、色勾配算出に用いる色値は、RGBやYCC等どの色空間のものでも良い。また色勾配を演算する色のコンポーネント数は例示したように一つに限定しても良いし、全てのコンポーネントを用いて算出しても良い。また、他の窓関数や、別の算出式を用いても構わない。以上の処理を終えた後、S304に移る。
【0024】
S304ではCPU7は、境界色勾配情報を更新する。まずCPU7は、参照中の境界をなす2つのラベルの組み合わせを、既存の境界色勾配情報(図3)に登録されている各境界に対するラベルの組み合わせと比較し、既に登録済みか否かを判定する。登録済みであった場合、CPU7は、該当する境界色勾配情報の境界長を1加算する。このとき、前ステップで得た色勾配dcをその方向に応じた項目に足し合わせる。前述の例の場合、色勾配dcは160であり、符号は正であるため左方向色勾配の項目に足し合わせる。未登録であった場合は、CPU7は、新しい境界色勾配情報を生成する。具体的にはCPU7は、参照中の境界をなす2つのラベルを境界色勾配情報のラベルA、ラベルBの項目に書き込む。そして、CPU7は、境界長に1を、色勾配dcをその方向に応じた項目にセットし、その他の値を全て0で初期化する。以上の処理を終えた後、S305に移る。
【0025】
次にS305では、CPU7は、PtのラベルとPr2のラベルとが同一か否かを判定する。同一ではない場合は(S305にてYES)S306に、同一の場合は(S305にてNO)S308に移る。
【0026】
S306では、CPU7は、窓関数を用いて縦方向の色勾配を算出する。例えば図6(b)に示すような窓関数を用いて算出する。この時、色勾配を算出するための色値はS303と同様に保持された入力画像から得る。色勾配の算出は、縦方向の窓関数を用いてS303と同様の手順で行う。この時、色勾配dcが正である場合は上方向の色勾配、負である場合は下方向の色勾配であると定義する。もちろん、逆に定義しても構わない。以上の処理を終えた後、S307に移る。
【0027】
S307では、CPU7は、境界色勾配情報を更新する。更新する手順はS304と同様である。以上の処理を終えた後、S308に移る。
【0028】
S308では、CPU7は、Ptがラスタスキャンの終点Pendに至ったか否かを判定する。ここではPendを入力画像に含まれる画素のうち、最も右下に位置する画素とする。PtがPendと同位置となった場合は(S308にてYES)S308に移り、同位置ではない場合は(S308にてNO)S309へ移る。
【0029】
S309では、CPU7は、着目画素を変更するため、Ptを一つずらし、S302に戻る。
【0030】
S310では、CPU7は、得られた境界色勾配情報を用いて、それぞれの平均色勾配を算出する。具体的には、CPU7は、境界色勾配情報における平均色勾配の項目に、上方向色勾配、下方向色勾配、右方向色勾配、左方向色勾配の値を全て足し合わせ、境界長で割った値を代入する。図3に示す境界nの場合、平均色勾配は、(1200+0+0+0)/6=200となる。これにより、図3に示した各値が境界の数だけ抽出できることになる。以上、S301からS310は図1における境界色勾配情報算出処理(S300)を実現している。
【0031】
尚、ここでは簡略化のため割愛したが、Ptが画像右端に至ったためPr1が得られない場合や、Ptが画像下端に至ったためPr2が得られない場合は比較を行わず次の処理へ遷移する。また同様にPtが画像端に至ったため窓関数分の画素値が得られない場合は窓関数の形状を変更してもよいし、算出を行わなくてもよい。
【0032】
[境界属性判定処理]
次にS400では境界色勾配情報を用いて境界属性の判定を行い、その属性の付記を行う。すなわち、当該判定した各境界の属性を、境界色勾配情報の各境界と関連付けて保存する。S400の詳細なフローを、図7を用いて説明する。
【0033】
まずS401では、CPU7は、境界色勾配情報を用いて、参照中の境界がエッジ境界か擬似輪郭境界かを判別する。ここでは前ステップまでで得た境界色勾配情報における平均色勾配が予め定められた閾値T1よりも大きい場合、エッジ境界であると判定する。閾値T1の一例としてはT1=20、等がある。この閾値T1は、経験的に求めてもよいし、任意の算出式により求めても構わない。平均色勾配が閾値T1以下であった場合、擬似輪郭境界と判定する。エッジ境界であると判定した場合(S401にてYES)、S402へ進み、擬似輪郭境界であると判定した場合(S401にてNO)、S407へ進む。なお、ここでの「擬似輪郭境界」とは、画像中のグラデーション内に形成される輪郭であり、処理上、グラデーションの領域を分割するために用いられる。
【0034】
CPU7は、S402とS403でグラデーションの属性判定を行う。ここでは参照中の擬似輪郭境界が、下記に示すいずれのグラデーション領域に属するものかを境界色勾配情報の特性を用いて、放射グラデーション、線形グラデーション、複雑グラデーションのいずれであるかを判定する。ここで、「放射グラデーション」とは、図8の(a)のようにある点を中心として色が同心円状に移り変わっていくグラデーションを指す。また「線形グラデーション」とは、図9の(a)や(c)のように色が一定の方向に移り変わっていくグラデーションを指す。また「複雑グラデーション」とは、図10(a)のように放射グラデーションや線形グラデーションに属さないグラデーションを指す。
【0035】
まずS402では、CPU7は、参照中の擬似輪郭境界が放射グラデーションに属するか否かを判別する。図8(a)に示すような放射グラデーションに対し色領域識別処理(S200)をした場合、図8(b)に示すような色領域識別結果が得られる。このような色領域識別結果に基づいて境界色勾配情報算出処理(S300)を実行することにより各境界の色勾配を算出すると、図8(b)に示したように、境界ごとに算出される上下左右全ての勾配方向に対し色勾配がほぼ均一の値をとる。これは放射グラデーションの色勾配が同心円状に、つまり全ての勾配方向に一定の値を取るためである。この特性を利用し、S402において、CPU7は、参照中の擬似輪郭境界の境界色勾配情報が下記の条件全てを満たした場合、放射グラデーション属性と判定する。
条件1:上方向色勾配×閾値T2>下方向色勾配
条件2:下方向色勾配×閾値T2>上方向色勾配
条件3:右方向色勾配×閾値T2>左方向色勾配
条件4:左方向色勾配×閾値T2>右方向色勾配
条件5:上方向色勾配×閾値T2>右方向色勾配
条件6:右方向色勾配×閾値T2>上方向色勾配
【0036】
上記6つの条件を満たした場合、擬似輪郭境界の上下左右全ての勾配方向に対し色勾配がほぼ均一であるとみなし、放射グラデーション属性とする。閾値T2の一例としてはT2=2、等がある。この閾値T2は、経験的に求めてもよいし、任意の算出式により求めても構わない。放射グラデーションと判定された場合(S402にてYES)、S404に移る。放射グラデーションではないと判定された場合(S402にてNO)、S403に移る。
【0037】
S403では、CPU7は、参照中の擬似輪郭境界が線形グラデーション属性によるものか否かを判別する。図9(a)または図9(c)に示すように線形グラデーションを入力した場合、図9(b)または図9(d)に示すような色領域識別結果が得られる。このような色領域識別結果に基づいて境界色勾配情報算出処理を実行することにより各境界の色勾配を算出すると、図9(b)に示したように上下左右の色勾配の内一つの勾配方向、もしくは、図9(d)のように相対しない二つの勾配方向が、大きな値を取る。これは線形グラデーションの色勾配が一定の勾配方向を取るためである。この特性を利用し、S403において、CPU7は参照中の擬似輪郭境界の境界色勾配情報が下記の条件7(7.1〜7.3)か、条件8(8.1〜8.5)のいずれかを満たした場合、線形グラデーション属性と判定する。尚、上下左右の色勾配において、値が大きい順番にG1、G2、G3、G4とする。
【0038】
(条件7)
条件7.1:G1>閾値T3×G2
条件7.2:G1>閾値T3×G3
条件7.3:G1>閾値T3×G4
【0039】
(条件8)
条件8.1:G1>閾値T4×G3
条件8.2:G1>閾値T4×G4
条件8.3:G2>閾値T4×G3
条件8.4:G2>閾値T4×G4
条件8.5:G1の方向とG2の方向が相対でない。
【0040】
閾値T3、T4の例としてはT3=3、T4=2、等がある。この閾値T3およびT4は、経験的に求めてもよいし、任意の算出式により求めても構わない。上記条件7もしくは条件8のいずれかを満たし線形グラデーションと判定された場合(S403にてYES)、S405に移る。線形グラデーションではないと判定された場合(S403にてNO)、S406に移る。
【0041】
次にS404、S405、S406、S407ではそれぞれ判定した属性が境界毎に境界属性情報へ付記される。つまり、S404では、CPU7は、当該判定対象の境界に対して放射グラデーション属性を付記する。S405では、CPU7は、当該判定対象の境界に対して線形グラデーション属性を付記する。S406では、CPU7は、当該判定対象の境界に対して複雑グラデーション属性を付記する。S407では、CPU7は、当該判定対象の境界に対してエッジ属性を付記する。S404、S405、S406、S407いずれかの処理が終了した後、本処理フローを終了する。以上、S401からS407の処理は、図1における境界属性判定処理(S400)を実現している。
【0042】
[グラデーションクラスタ情報生成処理]
次にS500では、同種(同属性)のグラデーションで表現されているグラデーション領域を同定し、グラデーション領域に対応するクラスタ情報を生成するためのグラデーションクラスタ情報生成処理を行う。本実施形態において、グラデーションクラスタ情報は、グラデーション領域内の色領域を指すラベルのリスト、グラデーション領域内の境界のリスト、対応するグラデーション領域の種別を含む。S500の詳細を、図11の処理フローと、図12(a)が入力画像として入力された場合の具体例とを用いて説明する。
【0043】
図12(a)が入力された場合、色領域識別処理(S200)により、図12(b)に示す色領域識別結果が得られる。この結果に対し、境界色勾配情報算出処理(S300)、境界属性判定処理(S400)を行うと図13に示すような情報が得られる。以下、入力された情報において、着目する境界をBtとして記載する。
【0044】
S501では、CPU7は、参照中の境界Btが未処理かどうかを判定する。この処理は後の処理であるグラデーションクラスタ情報生成の際に優先して処理される境界があるため、処理された境界を再度処理しないようにするために必要となる。未処理であると判定された場合は(S501にてYES)、S502に移り、処理済みであると判定された場合は(S501にてNO)、S506に移る。
【0045】
S502では、CPU7は、参照中の境界Btを成している二つのラベル領域が未処理かどうかを判定する。この処理もS501と同様に、後の処理であるグラデーションクラスタ情報生成の際に優先して処理される境界があり、処理された境界をなす二つのラベルを再度処理しないようにするために必要となる。境界Btをなすラベル(すなわち境界Btを挟む2つのラベル領域)が未処理であると判定された場合は(S502にてYES)S503に移り、処理済みであると判定された場合は(S502にてNO)S506に移る。
【0046】
S503では、CPU7は、境界属性の判定を行う。参照中の境界Btに関連付けられている属性が「線形グラデーション」であった場合はS504へ、「放射グラデーション」であった場合はS505へ、それ以外の場合はS506へそれぞれ移る。
【0047】
S504では、CPU7は、線形グラデーションクラスタ情報の生成を行う。ここではまず、CPU7は、参照中の境界Btの境界番号を線形グラデーションクラスタ情報に登録する。次にCPU7は、参照中の境界Btをなす2つのラベルを線形グラデーションクラスタ情報に登録する。次にCPU7は、生成した線形グラデーションクラスタ情報固有の勾配角度を算出する。このときの勾配角度は、境界色勾配情報における上下左右の色勾配を用いて下記の式(1)を用いて求められる。
勾配角度=arctan((上方向色勾配−下方向色勾配)/(右方向色勾配−左方向色勾配)) ・・・(1)
【0048】
そして、CPU7は、生成した線形グラデーションクラスタ情報における種別に「線形グラデーション」をセットする。ここで、便宜上、線形グラデーションをセットされた境界のクラスタを線形グラデーションクラスタ情報Glと記載する。
【0049】
当該線形グラデーションクラスタ情報に登録した二つのラベルに対応する色領域の少なくともいずれかが更に他の色領域と接している場合、当該他の色領域との間の境界を順次評価し、当該他の色領域を線形グラデーションクラスタ情報に登録するか否かを判定していく。この処理を図13の例を用いて説明する。
【0050】
まず参照中の境界Btが図13の境界8であると仮定して説明する。この時、線形グラデーションクラスタ情報Glには境界8と、境界8を成すラベル5とラベル6が登録される。またこの場合の勾配角度は前述の式(1)により、以下のように求められる。
勾配角度=arctan((0−0)/(800−0))=0
【0051】
更に、図13の境界色勾配情報を参照すると、ラベル5は参照中の境界8以外に、境界4にも接していると判定される。そこで境界4が当該生成した線形グラデーションクラスタ情報Glに属するか否かを判別する。この時、境界4はその境界属性がエッジ属性であるため、線形グラデーションクラスタ情報Glには属さないと判別される。
【0052】
また、ラベル6は、参照中の境界8以外に、境界5と境界9とに接していると、図13の境界色勾配情報に基づいて判定される。境界5はエッジ属性であるために線形グラデーションクラスタ情報Glには属さないが、境界9は線形グラデーション属性である。よって、境界9が線形グラデーションクラスタ情報Glに属するかが判定される。具体的にはまず、境界9を成すラベル6、ラベル7が他のグラデーションクラスタ情報に含まれているか否かが判定される。他のグラデーションクラスタ情報に含まれている場合、境界9は生成中のグラデーションクラスタ情報に属さないと判別される。含まれていない場合、次の判定に移る。境界9の勾配角度は式(1)を用いて算出することができる。即ち境界9の勾配角度は以下のように算出される。
勾配角度=arctan((0−0)/(1200−0))=0
【0053】
ここで得られた勾配角度と、線形グラデーションクラスタ情報固有の勾配角度との差が閾値T5以内であった場合、当該境界およびそれを構成するラベルが線形グラデーションクラスタ情報に登録される。閾値T5は例えばT5=22.5、等がある。この閾値T5は、経験的に求めてもよいし、任意の算出式により求めても構わない。上述した図13の境界9の勾配角度と線形グラデーションクラスタ情報の勾配角度差は0であるため、境界9は線形グラデーションクラスタ情報Glに属する境界であると判定される。よって境界9と、境界9を成すラベル6とラベル7を線形グラデーションクラスタ情報Glに登録する。ただしラベル6は、実際には既に生成中の線形グラデーションクラスタ情報に登録済みであるため、ここではラベル7のみが登録される。なお、所定の閾値より大きいもしくは閾値以上などの判定については、閾値の設定に合わせて変更して構わない。
【0054】
次にラベル7が属している境界を同様に評価し、線形グラデーションとして登録していくと、図14に示すグラデーションクラスタ情報におけるグラデーションクラスタ2のような結果が得られる。図14の例では、グラデーションクラスタ2は、ラベル5,6,7,8の色領域で構成される線形グラデーションで、且つ勾配角度は0度である。なお、図14に示す「種別」とは、各境界が有するグラデーション属性に対応し、グラデーションクラスタが有する属性となる。以上の処理により、線形グラデーションクラスタ情報の生成を終えたら、S506に移る。
【0055】
S505ではCPU7は、放射グラデーションクラスタ情報の生成を行う。ここではまず、CPU7は、参照中の境界Btの境界番号を放射グラデーションクラスタ情報に登録する。次にCPU7は、参照中の境界Btをなす2つのラベルをグラデーションクラスタ情報に登録する。次にCPU7は、生成した放射グラデーションクラスタ情報には勾配角度を要しないためダミーの値を初期値として代入する。そしてCPU7は、生成した放射グラデーションクラスタ情報における種別に「放射グラデーション」をセットする。ここで、便宜上、放射グラデーションをセットされた境界のクラスタを線形グラデーションクラスタ情報Grと記載する。
【0056】
当該放射グラデーションクラスタ情報に登録した二つのラベルに対応する色領域の少なくともいずれかが更に他の色領域と接している場合、CPU7は、当該他の色領域との間の境界を順次評価し、当該他の色領域を放射グラデーションクラスタ情報に登録するか否かを判定していく。この処理を図13の例を用いて説明する。
【0057】
まず参照中の境界Btが図13の境界2であると仮定して説明する。この時、放射グラデーションクラスタ情報Grには境界2と、境界2を成すラベル2、ラベル3が登録される。更に、図13の境界色勾配情報を参照して、ラベル2は参照中の境界2以外に、境界1にも接していると判定される。そこで境界1が当該生成した放射グラデーションクラスタ情報Grに属するか否かを判別される。この時、境界1はその境界属性がエッジ属性であるため、放射グラデーションクラスタ情報Grには属さないと判別される。
【0058】
また、ラベル3は参照中の境界2以外に、境界3に属していると、図13の境界色勾配情報に基づいて判定される。境界3は放射グラデーション属性である。よって境界3が放射グラデーションクラスタ情報Grに属するかを判定する。具体的には、境界3を成すラベル3、ラベル4が他のグラデーションクラスタ情報に含まれているか否かを判定する。他のグラデーション情報に含まれている場合、境界3は生成中のグラデーションクラスタ情報に属さないと判別する。含まれていない場合、境界3と、境界3を成すラベルを放射グラデーションクラスタ情報Grに登録する。ただしラベル3は実際には生成中の放射グラデーションクラスタ情報に既に登録済みであるため、ここではラベル4のみが登録される。
【0059】
次にラベル4が属している境界を同様に評価し、放射グラデーションとして登録していくと、図14に示すグラデーションクラスタ情報におけるグラデーションクラスタ1のような結果が得られる。図14のグラデーションクラスタ1は、ラベル2,3,4の色領域で構成される放射グラデーションクラスタとして登録されている。以上の処理により、放射グラデーションクラスタ情報の生成を終えたら、S506に移る。
【0060】
S506では、CPU7は、参照中の境界が最後の境界かを判定する。最後の境界である場合は(S506にてYES)そのまま処理を終え、最後の境界でない場合は(S506にてNO)S507に移る。S507ではCPU7は、参照中の境界を次の境界へ更新し、S501に移る。以上のS501からS507により、図1におけるグラデーションクラスタ情報生成処理(S500)を実現している。
【0061】
[グラデーションパラメータ生成処理]
次にS600では、グラデーションクラスタ情報毎にグラデーションのパラメータ生成を行う、グラデーションパラメータ生成処理を行う。ここでは色領域識別結果と、グラデーションクラスタ情報、及び境界色勾配情報を用いて、線形グラデーションと放射グラデーションのパラメータ生成を行う。
【0062】
まずグラデーションクラスタ情報における種別が、「線形グラデーション」の場合のパラメータの生成方法の詳細を説明する。例として図12の線形グラデーション領域におけるパラメータ生成の概念図である図15を示す。ここで生成する線形グラデーションのパラメータは、グラデーション端点を定義する始点ps、終点pe、及び色の移り変わりを定義するオフセットである。尚、オフセットはグラデーション領域中の相対位置を示すオフセット値と、相対位置における色を定義する色値を含む。
【0063】
まず、線形グラデーション領域(線形グラデーションクラスタ情報に登録されたラベルで構成される領域)の外接矩形Rを求め、その外接矩形Rの重心Cを求める。なお、重心の求め方については、ここでは説明を省略する。次に求めた重心Cを通り、かつ角度θがグラデーションクラスタ情報に付記されている勾配角度となるベクトルvを求める。次に外接矩形Rとの交点をそれぞれ始点ps(a,b),終点pe(c,d)とする。次に求めたpsからpeまでの距離を求め、この距離を100に正規化するための定数Kを求める。即ち、以下の式(2)を用いて定数Kを求めることができる。
・・・(2)
【0064】
図15に示す例の場合、正規化するための定数Kは下記のようになる。
【0065】
次にグラデーションクラスタ情報に登録されているN個のラベルに対し、各ラベルに対応する色領域の重心Cln(n=1,2,…,N)をそれぞれ求める。図15に示す例の場合、Cl1〜Cl4が含まれる。次に求めた各色領域の重心Clnから、ベクトルvに対し法線を下ろし、その交点をオフセット点Ofn(n=1,2,…,N)としてそれぞれ導出する。図15に示す例の場合、Of1〜Of4が含まれる。そして、次に始点psから、オフセット点Ofnまでの距離dn(n=1,2,…,N)を算出し、前述の定数Kを掛け合わせた値をオフセット点Ofnにおけるオフセット値とする。
【0066】
図15の例で言うと、Of1(140,100)とps(100,100)との距離d1は40である。定数Kは前述で求めた通り0.5なので、Of1におけるオフセット値は0.5×40=20となる。最後にオフセット点Ofnに対応する色領域の平均色をオフセットの色値として用いる。図15の例の場合、以上の処理を全てのオフセット点Ofnに行うことで、図16に例示したような線形グラデーションパラメータを得ることができる。図16に示すように、本実施形態では、線形グラデーションパラメータには、グラデーションの端点情報(始点、終点の座標)、各オフセットの情報(オフセット値、色値)が含まれる。
【0067】
次にグラデーションクラスタ情報における種別が、「放射グラデーション」の場合のパラメータの生成方法の詳細を説明する。例として図12の放射グラデーション領域におけるパラメータ生成の概念図である図17を示す。ここで生成する放射グラデーションのパラメータは、グラデーション端点を定義する中心pcと半径r、及び色の移り変わりを定義するオフセットである。尚、オフセットは、位置情報としてグラデーション領域中の相対位置を示すオフセット値と、相対位置における色を定義する色値を含む。
【0068】
まず、放射グラデーションクラスタ情報に登録されているN個のラベルに対し、それぞれ対応する色領域の外接矩形を求めその大きさ順でソートしたものをそれぞれRn(n=1,2,…,N)とする。つまり外接矩形は、図17の例の場合、R1,R2,R3のようになる。
【0069】
次に求めた外接矩形R1は最内郭に位置する色領域による外接矩形となるため、対応する色領域の重心を求め、その重心を放射グラデーションの中心pcとする。次に求めた外接矩形RNは最外郭に位置する色領域による外接矩形となるため、その外接矩形の右端を定義する直線LRNから、中心pcまでの距離を半径rとする。図17の例の場合、中心pc(200,100)から最外郭に位置する色領域の外接矩形R3の右端を定義する直線LR3(x=280)までの距離が80となり、この値を半径rとする。
【0070】
次に半径rを100に正規化するための定数Kを求める。即ち、式(3)を参照して求めると、以下のように求められる。
・・・(3)
【0071】
図17の例で言えば、正規化するための定数Kは下記のようになる。
【0072】
次に放射グラデーションのオフセットOfn(n=1,2,…,N)を求める。放射グラデーションにおけるオフセットは、まず一つ目のオフセット点Of1を中心pcと同一の点とし、オフセット値を0とする。そして二つ目からのオフセット点の生成方法を説明する。
【0073】
まず中心pcを通り、x軸に水平な直線Lcを定義する。そして次に生成中のオフセット点がi番目(i=2,3,…,N)であるとすると、外接矩形Ri−1の右端を定義する直線LRi−1と外接矩形Riの右端を定義する直線LRiとの中間を通る直線Lmiを算出する。次に求めた直線Lmiと直線Lcとの交点を求め、この交点をオフセット点Ofiとする。図17の例の場合、中心pc(200,100)を通り、x軸に水平な直線Lcはy=100となる。そしてi=2の時、直線LR1(x=220)と直線LR2(x=260)の中間を通る直線Lm2はx=240となる。よってオフセット点Of2は直線Lcと直線Lm2の交点である(240,100)となる。以上の処理により、ラベルの数N個分だけオフセット点Ofnが生成される。図17bに示す例の場合、Of1〜Of3が含まれる。
【0074】
次に中心pcから、オフセット点Ofnまでの距離dn(n=1,2,…,N)を算出し、前述の定数Kを掛け合わせた値をオフセット点Ofnにおけるオフセット値とする。図17の例の場合、Of1は中心pcと同一点なので距離d1=0となり、定数Kに関わらずオフセット値は0となる。Of2(240,100)と中心pc(200,100)との距離d2は40である。定数Kは前述で求めた通り、1.25なので、Of2におけるオフセット値は1.25×60=50となる。最後にオフセット点Ofnに対応する色領域の平均色をオフセットの色値として用いる。
【0075】
以上の処理を全てのオフセット点Ofnに行うことで、図18に例示したような放射グラデーションパラメータを得ることができる。図18に示すように、本実施形態では、放射グラデーションパラメータには、放射グラデーションの中心座標、半径、各オフセットの情報(オフセット値、色値)が含まれる。以上の処理は図1におけるグラデーションパラメータ生成処理(S600)を実現している。
【0076】
[色領域統合処理]
次にS700ではグラデーションクラスタ情報毎にラベルの指す色領域を一つに統合する、色領域統合処理を行う。この処理では各グラデーションクラスタ情報に登録されているラベルを一つに統合し、新しい色領域識別結果を得る。図12と図14を用いて述べると、グラデーションクラスタ1にラベル2,3,4が登録されている。よってこのラベルが指す色領域を統合し、新しいラベルとしてラベル9を振り、一つの色領域とする。グラデーションクラスタ2に登録されているラベル5,6,7,8に関しても同様に統合し、新しいラベルとしてラベル10を振る。以上の処理を行うと、図19に示すようなラベルが付与された各色領域が新たに得られ、原画にないような擬似輪郭境界は消える。また、グラデーションクラスタ情報に基づき、ラベル9は放射グラデーションの領域であり、ラベル10は線形グラデーションの領域であることが分かる。この処理により、図1における色領域統合処理(S700)を実現する。
【0077】
[輪郭ベクトル記述生成処理]
最後にS800では、色領域の輪郭ベクトル記述を生成する、輪郭ベクトル記述生成処理を行う。ここで輪郭ベクトルを求める対象となる色領域は、S700で色領域統合後に得られる色領域である。まず、S700で統合した後の色領域間の境界線を求め、当該境界線を関数近似することにより、各色領域の輪郭を表すベクトル記述(輪郭ベクトルデータ)を生成する。なお、隣接する色領域が接している区間ごとに境界線を関数近似してベクトル記述を求めることにより、隣接する色領域間で隙間や重なりが生じない輪郭のベクトル記述を得ることができる。図19の例の場合、ラベル1とラベル9の色領域間の境界線と、ラベル1とラベル10の色領域間の境界線とを求め、関数近似を行うことで、各色領域の輪郭のベクトル記述を得ることができる。
【0078】
そして、グラデーションクラスタに属するグラデーション領域に関しては、当該求めた輪郭ベクトル記述と、S600で得たグラデーションをベクトル表現するためのグラデーションパラメータとを合わせて出力する。すなわち、色領域輪郭のベクトル記述で定義される輪郭内を当該グラデーションパラメータでグラデーション表現するように記述することによって、グラデーション領域のベクトルデータ(グラデーション付き輪郭ベクトルデータ)を生成する。また、グラデーション領域以外の色領域(エッジ属性の境界線で囲まれる単一色の色領域)に関しては、当該色領域の代表色(例えば当該色領域の平均色)を求め、当該色領域の輪郭ベクトル記述と代表色とを合わせて出力することによって、グラデーション領域以外の色領域のベクトルデータを生成する。このようにして、グラデーション領域を含む画像のベクトル化の結果が得られる。
【0079】
以上の処理により得られたベクトル化の結果をレンダリングすると、図20に示すようなベクトル画像を得ることができる。
【0080】
以上により、画像中のグラデーション領域を高速に同定し、その特徴に応じたグラデーションパラメータを生成することができる。
【0081】
<第二実施形態>
第一実施形態では、色領域の重心を用いて線形グラデーションのオフセット値を生成し、色領域の平均色をオフセットの色値とした。しかし、この手法を用いると線形グラデーションの始点部/終点部(端部)には色は付記されず、場合によっては原画との差異が目立つ事がある。また放射グラデーションに関しても同様であり、色領域の平均色をオフセットの色値としているためグラデーション中心部と終点部に原画と誤差が生じてしまう。
【0082】
例えば図21(a)のようなRGB値がC1(0,0,0)から始まり、x軸に対して水平方向に色が変化する線形グラデーション画像を入力したとする。この入力の左端をオフセット値0、右端をオフセット値100と定義する。この時、例としてR値とオフセットの関係をグラフにすると、図21(b)のような図が得られる。この入力画像に対し色領域識別処理を行い、色領域ごとの平均色を得ると図21(c)のような結果が得られる。この時、例としてR値とオフセットの関係をグラフにすると、図21(d)のような図が得られる。そして得られた色領域識別結果に従い、第一実施形態で示したグラデーションベクトル化を行うと図21(e)のような結果が得られる。この時、グラデーションベクトル化結果の左端と入力画像の左端を比較すると色に差異がある事がわかる。右端も同様である。この時、例として図21(f)のようにR値とオフセットの関係をグラフにすると、オフセット値が0となる付近と、オフセット値が100となる付近で色変化がない。これは前述のように第一実施形態ではオフセットを、色領域の重心からのみ設定しており、始終点には設定していない事に起因する。
【0083】
[オフセット補間処理]
そこで本実施形態ではこの課題を解決するために、グラデーションパラメータ生成を終えた後に、オフセットの補完を行う。この処理を図24の処理フローを使って説明する。本処理フローは記憶部に格納されたプログラムをCPU7が実行することにより、実現される。なお、S2100からS2600までは第一実施形態と同様の処理を行うため、ここでは説明を割愛する。
【0084】
S2700では、CPU7は、S2600で得たグラデーションパラメータの補完を行う。図25を用いてこのグラデーションパラメータ補完処理の具体的な処理フローを説明する。まず説明を行う前提として、得られたN個のオフセットの中で、オフセット値が一番小さいものから順番にOs[n](n=1,2,…,N)と呼称する。また、オフセットOs[n]におけるオフセット値をOs[n]_val、オフセットOs[n]におけるRGB値をそれぞれOs[n]_r、Os[n]_g、Os[n]_bと呼称する。また、参照中のグラデーションクラスタ情報をGtと呼称する。
【0085】
S2701では、CPU7は、参照中のグラデーションクラスタ情報の種別を判定する。種別が「線形グラデーション」であった場合はS2702へ、「放射グラデーション」であった場合はS2704へ移る。S2702では、CPU7は、線形グラデーションのグラデーション始点におけるオフセットOssの補完を行う。まず、線形グラデーション始点におけるオフセット値は必ず0となるため、CPU7は、Oss_valに0をセットする。次にCPU7は、始点近傍のオフセットにおける色値の変化からOssにおける色値を推定する。OssのRGB値Oss_r、Oss_g、Oss_bは下記式(4)を用いて算出できる。
・・・(4)
【0086】
上記処理により、図22(a)に例示したOssのように始点におけるオフセットの推定を行うことができる。上記処理を終えたら、S2703へ移る。
【0087】
次に、S2703では、CPU7は、線形グラデーション終点におけるオフセットOseの補完を行う。まず、線形グラデーション終点におけるオフセット値は必ず100となるため、CPU7は、Ose_valに100をセットする。次に、CPU7は、終点近傍のオフセットにおける色値の変化からOseにおける色値を推定する。OseのRGB値Ose_r、Ose_g、Ose_bは下記式(5)を用いて算出できる。
・・・(5)
【0088】
上記処理により、図22(b)に示すOseのように終点におけるオフセットの推定を行うことができる。上記処理を終えたら、S2707へ移る。
【0089】
次にS2704では、CPU7は、放射グラデーションにおける一番初めのオフセットOs[1]を補正する。補正を行う前は、放射グラデーションの一番初めのオフセット点Of1を放射グラデーション中心、すなわちOs[1]_val=0としている。このため、例えばR値とオフセットの関係を、Os[1]近辺にクローズアップして図示すると、図23(a)のようになっている。よって放射グラデーション中心のオフセット補完を行うためにはOs[1]_valを補正した、Os[1]_val’が必要となる。よってこの処理ではOs[1]_val’を隣接するオフセットOs[2]_valを基に下記式(6)により設定する。
Os[1]_val’= Os[2]_val/2 ・・・(6)
【0090】
以上の処理を終えた後、S2705に移る。
【0091】
次にS2705では、CPU7は、放射グラデーション中心のオフセットOscの補完を行う。まず、放射グラデーション中心におけるオフセット値は必ず0となるため、CPU7は、Osc_valに0をセットする。次に中心近傍のオフセットにおける色値の変化から、CPU7は、Oscにおける色値を推定する。OscのRGB値Osc_r、Osc_g、Oss_bは、下記式(7)を用いて算出できる。
・・・(7)
【0092】
以上の処理により、図23(b)に例示したOscのように放射グラデーション中心におけるオフセットの推定を行うことができる。上記処理を終えた後、S2706に移る。
【0093】
S2706では、CPU7は、放射グラデーションにおける終点オフセットの補完を行う。この処理はS2703と同様の処理を行うため、説明は割愛する。この処理を終えた後、S2707に移る。
【0094】
S2707では、CPU7は、Gtが最後のグラデーションクラスタ情報か否かを判定する。最後である場合は(S2707にてYES)そのまま処理を終え、最後でない場合は(S2707にてNO)S2708に移る。S2708では、CPU7は、Gtを次のグラデーションクラスタ情報に更新し、S2701へ移る。以上、S2701からS2707の処理により、図24におけるS2700を実現する。
【0095】
S2800とS2900は第一実施形態と同様の処理を行う。
【0096】
以上の処理により原画に近いグラデーションのベクトル化を行うことができる。
【0097】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【0098】
また、本発明の画像処理装置は、上述した実施形態の各機能を実現する専用のハードウェア(ASICなど)を用いて構成するようにしてもよい。
【特許請求の範囲】
【請求項1】
色差に基づいて入力画像を複数の色領域に分割する分割手段と、
前記分割された色領域間の境界における色勾配情報を、前記入力画像の色情報から算出する色勾配情報算出手段と、
前記色勾配情報を用いて、当該境界における色勾配の特性を示すグラデーション属性を判定する属性判定手段と、
前記境界のグラデーション属性を用いて、前記複数の色領域の中から同じグラデーションに属する色領域を判定してグラデーションクラスタを生成し、当該生成されたグラデーションクラスタに属する色領域と当該グラデーションクラスタのグラデーションの種別とに関する情報を含むグラデーションクラスタ情報を生成するグラデーションクラスタ情報生成手段と、
前記色領域と前記色勾配情報と前記グラデーションクラスタ情報とを用いて、前記グラデーション領域ごとにグラデーションのパラメータを生成するグラデーションパラメータ生成手段と、
前記グラデーションクラスタ情報を用いて、前記同じグラデーションに属する色領域を統合する色領域統合手段と、
前記色領域統合手段にて統合した後の色領域に基づいて、輪郭のベクトル記述を生成し、当該輪郭のベクトル記述と前記グラデーションのパラメータとに基づいてグラデーション領域のベクトルデータを生成する輪郭ベクトル記述生成手段と
を備える画像処理装置。
【請求項2】
前記境界のグラデーション属性は、
該境界における色勾配が一の方向もしくは相対しない二の方向に一定である線形グラデーション属性、もしくは、
該境界における色勾配が全ての方向に一定である放射グラデーション属性
のいずれかを含むことを特徴する請求項1に記載の画像処理装置。
【請求項3】
前記属性判定手段は、更に、該境界における色勾配の強度が予め定められた所定の閾値よりも大きい場合に、当該境界がエッジであると判定することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記グラデーションのパラメータは、少なくともグラデーションを表現するための点の位置情報と色情報とを含むことを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記グラデーションパラメータ生成手段は、前記入力画像から前記同じグラデーションに属する各色領域の平均色を算出し、前記色情報を生成する際に当該色領域の平均色を用いることを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記グラデーションパラメータ生成手段が生成したパラメータに対し、前記グラデーション領域の端部または中心部における、色情報の補完を行うグラデーションパラメータ補完手段を更に備えることを特徴とする請求項5に記載の画像処理装置。
【請求項7】
分割手段が、色差に基づいて入力画像を複数の色領域に分割する分割工程と、
色勾配情報算出手段が、前記分割された色領域間の境界における色勾配情報を、前記入力画像の色情報から算出する色勾配情報算出工程と、
属性判定手段が、前記色勾配情報を用いて、当該境界における色勾配の特性を示すグラデーション属性を判定する属性判定工程と、
グラデーションクラスタ情報生成手段が、前記境界のグラデーション属性を用いて、前記複数の色領域の中から同じグラデーションに属する色領域を判定してグラデーションクラスタを生成し、当該生成されたグラデーションクラスタに属する色領域と当該グラデーションクラスタのグラデーションの種別とに関する情報を含むグラデーションクラスタ情報を生成するグラデーションクラスタ情報生成工程と、
グラデーションパラメータ生成手段が、前記色領域と前記色勾配情報と前記グラデーションクラスタ情報とを用いて、前記グラデーション領域ごとにグラデーションのパラメータを生成するグラデーションパラメータ生成工程と、
色領域統合手段が、前記グラデーションクラスタ情報を用いて、前記同じグラデーションに属する色領域を統合する色領域統合工程と、
輪郭ベクトル記述生成手段が、前記色領域統合工程にて統合した後の色領域に基づいて、輪郭のベクトル記述を生成し、当該輪郭のベクトル記述と前記グラデーションのパラメータとに基づいてグラデーション領域のベクトルデータを生成する輪郭ベクトル記述生成工程と
を有する画像処理方法。
【請求項8】
コンピュータ装置を、請求項1乃至6のいずれか一項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項1】
色差に基づいて入力画像を複数の色領域に分割する分割手段と、
前記分割された色領域間の境界における色勾配情報を、前記入力画像の色情報から算出する色勾配情報算出手段と、
前記色勾配情報を用いて、当該境界における色勾配の特性を示すグラデーション属性を判定する属性判定手段と、
前記境界のグラデーション属性を用いて、前記複数の色領域の中から同じグラデーションに属する色領域を判定してグラデーションクラスタを生成し、当該生成されたグラデーションクラスタに属する色領域と当該グラデーションクラスタのグラデーションの種別とに関する情報を含むグラデーションクラスタ情報を生成するグラデーションクラスタ情報生成手段と、
前記色領域と前記色勾配情報と前記グラデーションクラスタ情報とを用いて、前記グラデーション領域ごとにグラデーションのパラメータを生成するグラデーションパラメータ生成手段と、
前記グラデーションクラスタ情報を用いて、前記同じグラデーションに属する色領域を統合する色領域統合手段と、
前記色領域統合手段にて統合した後の色領域に基づいて、輪郭のベクトル記述を生成し、当該輪郭のベクトル記述と前記グラデーションのパラメータとに基づいてグラデーション領域のベクトルデータを生成する輪郭ベクトル記述生成手段と
を備える画像処理装置。
【請求項2】
前記境界のグラデーション属性は、
該境界における色勾配が一の方向もしくは相対しない二の方向に一定である線形グラデーション属性、もしくは、
該境界における色勾配が全ての方向に一定である放射グラデーション属性
のいずれかを含むことを特徴する請求項1に記載の画像処理装置。
【請求項3】
前記属性判定手段は、更に、該境界における色勾配の強度が予め定められた所定の閾値よりも大きい場合に、当該境界がエッジであると判定することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記グラデーションのパラメータは、少なくともグラデーションを表現するための点の位置情報と色情報とを含むことを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記グラデーションパラメータ生成手段は、前記入力画像から前記同じグラデーションに属する各色領域の平均色を算出し、前記色情報を生成する際に当該色領域の平均色を用いることを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記グラデーションパラメータ生成手段が生成したパラメータに対し、前記グラデーション領域の端部または中心部における、色情報の補完を行うグラデーションパラメータ補完手段を更に備えることを特徴とする請求項5に記載の画像処理装置。
【請求項7】
分割手段が、色差に基づいて入力画像を複数の色領域に分割する分割工程と、
色勾配情報算出手段が、前記分割された色領域間の境界における色勾配情報を、前記入力画像の色情報から算出する色勾配情報算出工程と、
属性判定手段が、前記色勾配情報を用いて、当該境界における色勾配の特性を示すグラデーション属性を判定する属性判定工程と、
グラデーションクラスタ情報生成手段が、前記境界のグラデーション属性を用いて、前記複数の色領域の中から同じグラデーションに属する色領域を判定してグラデーションクラスタを生成し、当該生成されたグラデーションクラスタに属する色領域と当該グラデーションクラスタのグラデーションの種別とに関する情報を含むグラデーションクラスタ情報を生成するグラデーションクラスタ情報生成工程と、
グラデーションパラメータ生成手段が、前記色領域と前記色勾配情報と前記グラデーションクラスタ情報とを用いて、前記グラデーション領域ごとにグラデーションのパラメータを生成するグラデーションパラメータ生成工程と、
色領域統合手段が、前記グラデーションクラスタ情報を用いて、前記同じグラデーションに属する色領域を統合する色領域統合工程と、
輪郭ベクトル記述生成手段が、前記色領域統合工程にて統合した後の色領域に基づいて、輪郭のベクトル記述を生成し、当該輪郭のベクトル記述と前記グラデーションのパラメータとに基づいてグラデーション領域のベクトルデータを生成する輪郭ベクトル記述生成工程と
を有する画像処理方法。
【請求項8】
コンピュータ装置を、請求項1乃至6のいずれか一項に記載の画像処理装置の各手段として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図11】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図22】
【図23】
【図24】
【図25】
【図8】
【図9】
【図10】
【図12】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図11】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図22】
【図23】
【図24】
【図25】
【図8】
【図9】
【図10】
【図12】
【図20】
【図21】
【公開番号】特開2012−238925(P2012−238925A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2011−104743(P2011−104743)
【出願日】平成23年5月9日(2011.5.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願日】平成23年5月9日(2011.5.9)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]