(57)【特許請求の範囲】
【請求項１】
ラスタ形式の画像データに対する境界線抽出を行う画像処理装置であって、
前記画像データにおける着目画素の周囲に斜め方向の接続があるか判定する判定手段と、
前記判定手段により前記着目画素の周囲に斜め方向の接続があると判定された場合、当該斜め方向の接続を４連結接続に修正するべく前記着目画素の画素値を修正したとしても、他の４連結接続が生じず、かつ、前記斜め方向の接続が切れないということを条件として、前記着目画素の画素値を修正する修正手段と、
前記修正手段により前記着目画素の画素値の修正された画像データから境界線を抽出する抽出手段と
を有することを特徴とする画像処理装置。
【請求項２】
ラスタ形式の画像データに対する境界線抽出を行う画像処理装置であって、
前記画像データにおける着目画素に隣接する斜め方向の接続があるか判定する判定手段と、
前記判定手段により前記着目画素に隣接する斜め方向の接続があると判定された場合、当該斜め方向の接続を４連結接続に修正するべく前記着目画素の画素値を修正したとしても、他の４連結接続が生じず、かつ、前記斜め方向の接続が切れないということを条件として、前記着目画素の画素値を修正する修正手段と、
前記修正手段により前記着目画素の画素値の修正された画像データから境界線を抽出する抽出手段と
を有することを特徴とする画像処理装置。
【請求項３】
前記抽出手段は、抽出した境界線を関数近似してベクトルデータとすることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記修正手段は、前記条件の他に前記着目画素が孤立点でないことを条件とし、
前記着目画素の画素値を修正することを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記修正手段は、前記斜め方向で接続している画素から縦方向もしくは横方向に連結された連結画素において、連結した画素数が予め定められた閾値以上である場合、前記斜め方向の接続を４連結接続に修正しないことを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項６】
前記修正手段は、前記斜め方向で接続している画素から縦方向と横方向に連結した画素数の閾値を、前記画像データの解像度に基づいて変更することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記画像データを所定の倍率で拡大する拡大手段を更に有し、
前記判定手段は、前記拡大手段にて拡大された画像データに対して前記判定を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項８】
ラスタ形式の画像データに対する境界線抽出を行う画像処理方法であって、
前記画像データにおける着目画素の周囲に斜め方向の接続があるか判定する判定工程と、
前記判定工程にて前記着目画素の周囲に斜め方向の接続があると判定された場合、当該斜め方向の接続を４連結接続に修正するべく前記着目画素の画素値を修正したとしても、他の４連結接続が生じず、かつ、前記斜め方向の接続が切れないということを条件として、前記着目画素の画素値を修正する修正工程と、
前記修正工程にて前記着目画素の画素値の修正された画像データから境界線を抽出する抽出工程と
を有することを特徴とする画像処理方法。
【請求項９】
ラスタ形式の画像データに対する境界線抽出を行う画像処理方法であって、
前記画像データにおける着目画素に隣接する斜め方向の接続があるか判定する判定工程と、
前記判定工程にて前記着目画素に隣接する斜め方向の接続があると判定された場合、当該斜め方向の接続を４連結接続に修正するべく前記着目画素の画素値を修正したとしても、他の４連結接続が生じず、かつ、前記斜め方向の接続が切れないということを条件として、前記着目画素の画素値を修正する修正工程と、
前記修正工程にて前記着目画素の画素値の修正された画像データから境界線を抽出する抽出工程と
を有することを特徴とする画像処理方法。
【請求項１０】
コンピュータに、請求項８または９に記載の画像処理方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はカラー画像をベクトル化する画像処理装置、およびその制御方法、プログラムに関する。特に色領域（同色と見なしうる画素で構成される領域）に８連結接続が含まれる場合において、輪郭座標点列から色領域間の共通境界線を抽出する技術に関する。
【背景技術】
【０００２】
画像のベクトル化に関連する技術は文字を対象としたものからスタートし、輪郭情報の抽出方法（特許文献１）や座標点列の関数近似方法（特許文献２）が提案されている。さらに一般的なイラスト画像へと対象が広がり、線画像に対するベクトル化（特許文献３）や、カラー画像に対するベクトル化（特許文献４）等、様々な種類の画像にベクトル化処理を施す技術が提案されている。
【０００３】
ベクトル化されたデータは、所望のサイズに変倍してもジャギーのないスムーズな輪郭表現が可能である。またイラスト画像等においてはデータサイズの削減効果も有し、コンピュータでの編集処理等が容易となる利点もある。文字や線画像といった種類の画像は２値、あるいは単色画像として扱えるものが多く、色連結領域（同じ色の画素）毎に抽出した輪郭を関数近似すれば好ましいベクトル化結果を得ることができる。しかし、イラストは多色で構成されるものが多く、隣接する色領域間の境界線の扱い方が問題となる。例えば、２値画像での処理をそのまま多値画像に対して適用すると、色領域ごとに輪郭（境界線）を抽出し、当該抽出した各色領域に輪郭（境界線）を関数近似することになる。しかしながら、隣接する色領域間の境界線を個別に関数近似すると、近似誤差により、１つの境界線に対して２つの異なる近似曲線が得られてしまい、隙間や重なりが生じるという問題があった。この様子を図３に示す。図３（ａ）は入力画像から領域の輪郭形状を抽出した例を示している。背景の白地を数えないものとすると、隣接する（他領域と境界線を持つ）色領域が３つ存在している。図３（ｂ）は、図３（ａ）の輪郭情報を色領域毎に個別に関数近似した場合の処理結果を示しており、色領域間に隙間や重なりが生じている。
【０００４】
上記の問題を踏まえ、色領域間に隙間を生じさせないベクトル化法も提案されている。例えば特許文献５では、色差が一定以上ある画素同士の境界を輪郭として追跡し、色領域の交点に突き当たる度に分岐して探索を繰り返し行う。色領域の交点間で区切られた部分輪郭を関数近似の処理単位とし、関数近似後のデータを再度つなぎ合わせてベクトルデータを生成するため、境界線に共通の関数近似結果が適用され隙間や重なりが原理的に生じない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特登録３０２６５９２号
【特許文献２】特登録４３７８２０８号
【特許文献３】特開２００７−２９３８２９号公報
【特許文献４】特開２００６−３４４０６９号公報
【特許文献５】特開２００６−０３１２４５号公報
【非特許文献】
【０００６】
【非特許文献１】鳥脇著“画像理解のためのディジタル画像処理（２）”初版３刷，ＩＳＢＮ４−７８５６−２００４−８，昭晃堂，１９９３年４月２０日発行，Ｐ．６６−Ｐ．７９
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般的に、画素の連結状態に対して、２つの考え方がある。１つ目は、注目画素を中心として上下左右の４方向の画素を検査して同色の画素があれば、当該画素と着目画素とが接続しているとみなす４連結接続である。２つ目は、注目画素を中心として上下左右斜め方向の８方向の画素を検査して同色の画素があれば、当該画素と着目画素とが接続しているとみなす８連結接続である。輪郭は領域の外側の境界を構成する輪郭（以降外輪郭と呼ぶ）と内側の境界を構成する輪郭（以降内輪郭と呼ぶ）に分けることができる。ここで、斜め方向のみで接続している箇所を含む８連結接続の画素集合が画像に含まれる場合において、当該画素集合の領域の輪郭について抽出しようとした際、次のような問題がある。当該画素集合を８連結接続として抽出した外輪郭は、斜め方向のみで接続している箇所も含めて１つの外輪郭として抽出される。一方、当該画素集合の外側に隣接する別の画素集合を８連結接続として抽出した内輪郭は、斜め方向のみで接続している箇所で切断され、２つの内輪郭として抽出されることになる。すなわち、斜め方向のみで接続している箇所を含む第１の画素集合に基づき抽出される外輪郭と、当該第１の画素集合の周りを囲む第２の画素集合に基づき抽出される内輪郭は、異なる形状の輪郭になってしまう。そのため、画素集合間の共通の境界線を同定することが難しい。
【０００８】
４連結接続および８連結接続における、連結性による輪郭抽出結果の違いを図４に示す。図４（ａ）では７つのグレー画素が４連結で接続しており、図４（ｂ）では５つのグレー画素が８連結で接続している。図４（ａ）の色輪郭を抽出する場合、４連結接続と８連結接続のどちらの考え方を適用しても、白画素の内輪郭とグレー画素の外輪郭は一致する。しかし図４（ｂ）の場合、４連結接続の考え方で白画素の内輪郭とグレー画素の外輪郭とを抽出すると、白画素の内輪郭は１つのつながった座標点列（１つの内輪郭）となるが、グレー画素の外輪郭は、斜め方向のみで隣接している箇所は繋がっていないと判断されるので、３つの座標点列（３つの外輪郭）で抽出される。また８連結接続の考え方で白画素の内輪郭とグレー画素の外輪郭とを抽出すると、グレーの画素の外輪郭は１つの座標点列（１つの外輪郭）で抽出されるが、白画素の内輪郭は斜め方向のみで隣接している箇所が繋がっていると判断され３つの座標点列（３つの内輪郭）で抽出される。共通の境界線を抽出しようとすると、輪郭を構成するループ数や、各ループに含まれる座標点数の違いが問題となり、共通する境界線を同定することが非常に難しい。この問題の解決方法は特許文献１では開示されていない。
【０００９】
これに対して、外輪郭として抽出した座標点列と、内輪郭として抽出した座標点列それぞれにおいて、斜め方向のみで接続されている箇所で分断し、分断後のそれぞれの座標点列を境界線として比較することが考えられる。しかし、図５に入力画像として示すような８連結接続の細線が入力された場合、境界線が斜め方向で接続している箇所で細かく分断されることになる。そして、分断された輪郭ごとに関数近似してベクトル化すると、ベクトル化結果として出力される出力ベクトルデータの画質が著しく劣化してしまう。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明は以下の構成を有する。すなわち、ラスタ形式の画像データに対する境界線抽出を行う画像処理装置であって、前記画像データにおける着目画素の周囲に斜め方向の接続があるか判定する判定手段と、前記判定手段により前記着目画素の周囲に斜め方向の接続があると判定された場合、当該斜め方向の接続を４連結接続に修正するべく前記着目画素の画素値を修正したとしても、他の４連結接続が生じず、かつ、前記斜め方向の接続が切れないということを条件として、前記着目画素の画素値を修正する修正手段と、前記修正手段により前記着目画素の画素値の修正された画像データから境界線を抽出する抽出手段とを有する。
【発明の効果】
【００１１】
入力画像中に８連結接続を含むパターンがあっても、ベクトル化処理に適した境界線を抽出でき、ベクトル化結果の画質を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】第一実施形態に係る情報処理装置のメイン処理のブロック図。
【図２】第一実施形態に係る情報処理装置のブロック図。
【図３】関数近似によって色領域に重なりや隙間が生じる例を説明する図。
【図４】連結性の違いによる抽出される輪郭の違いを説明する図。
【図５】輪郭を４連結接続とし、境界線を関数近似して作成したベクトル化結果を示す図。
【図６】第一実施形態に係る処理全体のフローチャート図。
【図７】８連結接続を４連結接続に置き換える条件を説明するための図。
【図８】第一実施形態に係る境界線抽出処理のフローチャート図。
【図９】本発明に係る交点の検出条件を説明する図。
【図１０】本発明に係る抽出した境界線を説明するための図。
【図１１】本発明に係る抽出した境界線に関する情報を説明するための図。
【図１２】本発明に係る領域の再構成情報を説明するための図。
【図１３】図１１に示した境界線に対する関数近似の結果を示す図。
【図１４】第三実施形態に係る拡大した入力画像に８連結接続の修正結果を示す図。
【発明を実施するための形態】
【００１３】
＜第一実施形態＞
［システム構成］
以下、添付の図面を参照して本発明の実施の形態を説明する。ただし、この実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１４】
本実施形態の画像処理装置の構成例について、図２のブロック図を参照して説明する。図２において、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７は、装置全体を制御する。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）６は変更を必要としないプログラムやパラメータを格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５は外部装置等から供給されるプログラムやデータを一時記憶する。スキャナ１は、文書等を光電走査して電子的な画像データを得る際に用いられ、画像入出力Ｉ／Ｏ３はこのスキャナ１と画像処理装置とを接続する。画像メモリ２は、スキャナ１で読み取られた画像データ等を保持する。ここで、スキャナ１により読み取られた画像データは格子状に配列された画素から構成されたラスタ形式であり、各画素はＲＧＢ等で示される色に対応する画素値を有する。このような画像データをドット画像データ、あるいはラスタ画像データと呼ぶ。外部記憶装置１２は、固定して設置されたハードディスクやメモリカード、あるいは着脱可能なフレキシブルディスク（ＦＤ）やＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）等の光ディスク、磁気や光カード、ＩＣカード、メモリカード等を含む。
【００１５】
また、Ｉ／Ｏ１３は、これら外部記憶装置１２とコンピュータ装置とのインタフェースである。Ｉ／Ｏ１５は、ユーザの操作を受け、データを入力するポインティングデバイス（マウス１０等）やキーボード９等の入力デバイスとのインタフェースである。映像Ｉ／Ｏ１４は画像処理装置の保持するデータや供給されたデータを表示するためのディスプレイモニタ８とのインタフェースである。通信Ｉ／Ｆ４は、インターネット等のネットワーク回線に接続するためのインタフェースである。システムバス１１は、上記で述べた画像形成装置内の各ユニットを通信可能に接続する。
【００１６】
［処理フロー］
以下、ＲＯＭ６等の記憶部から読み出され、ＣＰＵ７上で実行されるプログラムにより本発明を実現する処理手順を、図１に示すブロック図と図６に示すフローチャートを用いて説明する。処理を開始されると、Ｓ１００で処理対象となる画像領域を含む画像データを入力する。画像入力に関しては、スキャナ１にて読み取られた画像データを画像入出力Ｉ／Ｏ３を介して画像メモリ２に入力する。また、通信Ｉ／Ｆ４を介して、装置外部より前記処理対象となる画像領域を含む画像を入力してもよく、あるいは、外部記憶装置１２に予め記憶される画像データをＩ／Ｏ１３を介して読み込むものであってもよい。得られた入力画像は、画像メモリ２上に保持される。
【００１７】
ここで、スキャナなどの入力手段を用いた場合、入力画像にノイズが重畳され、代表色の特定が難しいことが起こりうる。そこでＳ１００では入力画像に対して色領域分割処理を施してもよい。これによりスキャン画像入力等で生じるノイズ除去することができる。例えば、特許文献４で開示されている手法（入力画像中の画素から色情報を元にクラスタを構成し、類似するクラスタやノイズと思われるクラスタを統合することでスキャンノイズを除去する手法）を適用することができる。
【００１８】
次にＳ１００で読み取った画像データに対して、Ｓ２００でラベリング処理を行う。ラベリング処理は連結する同じ値を持つ画素集合に同一の番号をつける処理であり、各領域の情報（面積、形状）を取得するための前処理としてよく用いられる。ここでは色領域を後処理で識別できるようにするための識別子（領域番号）を画像データの各画素に対して付与する。そして、記憶領域に各画素に対して識別子が付与されたデータを保持する。またラベリング処理にも４連結接続と８連結接続の考え方があるが、後で行う輪郭抽出処理と同じ連結状態となるラベリング処理を行う必要がある。ここまでの処理により、図１における画像入力手段２１を実現している。
【００１９】
次にラベリング処理結果に対して、Ｓ３００で８連結接続（斜め方向の接続）の検知処理を行う。ここではラベリング処理結果に対して、３×３のウィンドウをラスタ走査させながらずらしていき、着目画素である中心位置の画素（中心画素）の周囲に８連結接続が存在するかを確認する。８連結接続が着目画素に対して、１．左上、２．右上、３．左下、４．右下の４方向に存在する可能性がある。そのため、上記に示した順に確認を行う。例えば左上の確認（着目画素の上の画素と着目画素の左の画素とが８連結接続しているかどうかの確認）であれば、以下の３つの条件について確認をする。
【００２０】
１．着目画素の上に位置する画素と左に位置する画素との領域番号が一致すること
２．着目画素と上に位置する画素との領域番号が一致しないこと
３．着目画素の上に位置する画素と左上に位置する画素との領域番号が一致しないこと
その他の方向の確認の場合も同様であるが、それぞれの方向に応じた画素に基づいて確認する。
【００２１】
４方向のいずれかに上述したような条件を満たす８連結接続を検知したら（Ｓ４００にてＹＥＳ）、Ｓ５００に処理を進める。８連結接続を検知しなかった場合は、Ｓ８００へ進む。本処理により、図１における８連結接続検知手段２２を実現している。
【００２２】
Ｓ５００では接続修正判断を行う。Ｓ３００で８連結接続の検知を行ったが、検知した８連結接続を全て４連結接続に修正すると入力画像パターンが持っていた特徴が失われる場合がある。そこで着目画素を修正することにより画像パターンの特徴が大きく変化しないか否かを、予め定義されたいくつかの判断基準に従って判断する。
【００２３】
図７を用いて、起こりうる８連結接続の連結例を示す。ここで、図中の黒丸は着目画素を示している。ウィンドウ７０１では、着目画素の下と左に位置する画素が８連結接続となっている（この場合、着目画素の左下に８連結接続が存在する）。着目画素を、左下にある８連結接続の領域と同じ領域に修正しても入力画像の特徴が大きく失われることは無いので、この後の処理で着目画素の領域番号を、８連結接続を構成する画素の領域番号に置き換えることで４連結接続に修正する。すなわち、該注目画素を修正することで、４連結接続で抽出したとしても左と下に位置する画素は同じ領域として抽出可能になる。
【００２４】
ウィンドウ７０２では、着目画素の右と上に位置する画素が８連結接続となっている（着目画素の右上に８連結画素が存在）。着目画素の領域番号を置き換えることにより４連結接続に修正することができるが、着目画素が１画素からなる孤立点である。ここで、孤立点とは、周囲８画素のいずれの画素値とも異なる値（領域番号）を有する画素を意味する。孤立点の領域番号を他の領域番号に置き換えてしまうと色領域が消滅してしまう問題が生じるため、置き換えはできないと判断する。ただし、大きいサイズの画像が入力され、面積が１画素の領域をノイズとして扱っても問題ない場合はこの条件を除外することも可能である。
【００２５】
ウィンドウ７０３では、着目画素の左、右、左、右の４方向に位置する画素が８連結接続となっている。しかし着目画素の領域番号を置き換えると、修正すべき８連結接続以外の接続関係に影響を与えてしまう。例えば１画素単位で構成される千鳥格子上の画像パターンがあれば１つの領域番号に値を置き換えることにより、千鳥格子としての画像パターンが消えてしまうことが考えられる。従ってある方向に検知した８連結接続を４連結接続に修正した際に、新たな接続が発生するものは置き換えができないと判断する。
【００２６】
ウィンドウ７０４では、着目画素の右と上に位置する画素が８連結接続となっている（着目画素の右上に８連結接続が存在）。しかし、着目画素の値を置き換え、検出した８連結接続を修正すると、着目画素を含む既存の８連結接続（別の８連結接続）を切ってしまう。そのため、修正できないと判断する。
【００２７】
ウィンドウ７０５では、着目画素の左と下に位置する画素が８連結接続となっている（着目画素の左下に８連結接続が存在）。しかし、ここでの画素における８連結接続は、細線同士の８連結接続ではない。この場合、８連結接続のままにする方が元の図形特徴が残せるとし、８連結接続の修正は行わない。この判断は交点検出に用いる３×３のウィンドウ（７０１乃至７０５）とは別に確認用のウィンドウ７１０、７１１を用いてできる。例えば連結した画素数に対する所定の閾値を３画素として、３画素幅以上の領域は細線と考えないとする場合、確認用のウィンドウ７１０、７１１に示すような３×３の確認用のウィンドウを用いる。そして、検出した８連結を構成する画素を含むウィンドウ内の領域が全て同じ領域番号かどうかを確認する。確認用のウィンドウに含まれる画素が全て同じ領域番号であれば、縦方向もしくは横方向において閾値以上の幅を持つ領域同士の８連結接続点であると判断する。
【００２８】
以上をまとめると、第１の条件として、着目画素の画素値を修正することで着目している８連結接続以外に新たな４連結接続が生じない。第２の条件として、着目画素の画素値を修正することで既存の接続（既存の８連結接続）が切れない。第３の条件として、ウィンドウにおける着目画素が孤立点でない。以上の３つの条件を満たす場合に着目画素の修正を行うと判断する。図７に示した各構成に対する着目画素の修正の可否は以下のようになる。
【００２９】
着目画素の修正可能：ウィンドウ７０１
着目画素の修正不可：ウィンドウ７０２〜７０５
修正を行う場合は、（Ｓ６００にてＹＥＳ）Ｓ７００に進み、修正不可と判断された場合（Ｓ６００にてＮＯ）はＳ８００へ進む。上記処理は図１における接続修正判断手段２３を実現している。
【００３０】
Ｓ７００ではＳ５００で８連結接続の修正が可能と判断された場合、当該８連結接続が４連結接続となるように、着目画素の修正を行う。すなわち、当該着目画素の領域番号を、検出した８連結接続を構成する領域番号の値に置き換えることで、該検出した８連結接続を４連結接続に修正することができる。
【００３１】
Ｓ８００では全ての画素をチェックしたかを確認する。未確認の画素があれば３×３のウィンドウを次の着目画素へと移動し、Ｓ３００に戻って処理を続ける。上記処理により図１における８連結接続修正手段２４を実現している。
【００３２】
全ての画素に対して８連結接続の検知処理を終えたら、次にＳ９００において、画像データにおける色領域の輪郭を抽出する。輪郭が未抽出の色領域番号を選択し、選択した色領域の輪郭を抽出する。ここでは特許文献１で開示されている輪郭抽出方法を適用することができる。選択色が１（図形画素）、それ以外の領域が０（背景画素）で構成される２値画像として輪郭を抽出する。なお、本実施形態において、白画素を背景画素として、説明しているが、輪郭抽出の際に他の色を背景色としても構わない。この場合には、白色の値を有する画素の輪郭を抽出することも可能である。
【００３３】
入力画像に対して左上からラスタスキャンを開始し、水平・垂直方向のテーブルを作成し、保持する。その後水平・垂直テーブルを元に輪郭情報を構成するが、輪郭抽出処理を予め連結状態に基づいて分けた領域毎に行うため、得られる輪郭は外輪郭が１つと、０以上の内輪郭から構成される。これにより輪郭抽出の途中で追跡方向の考慮が容易になる。ここでは例としてラスタスキャンで輪郭抽出を行う例を示したが、輪郭を追跡する場合でも必ず外輪郭が１つになるため、外輪郭を優先して抽出すれば以降抽出する輪郭は内輪郭として扱うことができる。上記処理を未抽出の色領域番号が無くなるまで繰り返し実行することで、全ての色領域に対して輪郭情報を抽出することができる。
【００３４】
ここでＳ９００ではラスタスキャン型ではなく、輪郭追跡型の輪郭抽出処理を行ってもよい。輪郭抽出を行う際は画素輪郭を追跡する手法の方が一般的である。非特許文献１では追跡型の輪郭抽出法が開示されている。追跡法としては画素を追跡する画素追跡型、辺を追跡する辺追跡型、頂点を追跡する頂点追跡型が紹介されているが、頂点追跡型の輪郭抽出を行うと特許文献１と同様の処理結果を得ることができる。外輪郭と内輪郭の区別は、追跡の開始点をラスタスキャンで探すことで解消することができる。性質上外輪郭は内輪郭の外側に位置しており、ラスタスキャンでは必ず外輪郭が先に見つかる。またラベリング処理での識別結果より、外輪郭は必ず１つであることが保証される。よって最初に見つかる輪郭線は外輪郭として扱い、以降見つかった輪郭は内輪郭として考えることができる。
【００３５】
次にＳ１０００において、Ｓ９００で抽出した輪郭座標を元に色領域の境界線を抽出する。Ｓ１０００の詳細なフローを、図８を用いて説明する。境界線抽出処理では交点を検出するため輪郭座標に対応する位置のラベリング処理結果を参照する。
【００３６】
まずＳ１００１において、２×２画素のサイズのウィンドウを使って画像データから交点を検出する。交点の検出方法を、図９を用いて説明する。交点と判断するのは図９のウィンドウ９０１のように２×２のウィンドウ内に異なる色領域が３つ以上存在する時、または図９のウィンドウ９０２のように斜め方向（右上と左下、左上と右下の画素）が同じ色領域である場合の２通りである。後者を色交点と考える理由は、色領域の外輪郭と内輪郭で８連結接続が影響して接続が変わってしまうためである。後の処理で必要な境界線の同定が難しくなるため、８連結接続箇所を切れていると考えて４連結接続に統一することで境界線の同定処理を容易に行うことができる。これを行わない場合には、複数の座標点列を組み合わせた抽出済み境界線との比較演算が必要となる。
【００３７】
Ｓ１００１で交点が見つかった場合（Ｓ１００２にてＹＥＳ）、Ｓ１００３で分割境界線を記録する。分割境界線とは１つ目の交点から、２つ目の交点の間に存在する、輪郭座標点列から構成される情報である。従って、Ｓ１００１で交点が見つかった場合でも、その交点がある色領域の輪郭から検出した最初の交点だった場合は何も行わない。分割境界線で記録する情報を図１０に示した画像を例にとって図１１に示す。１つの境界線に対して、一意に識別するための線番号、開始点と終了点から構成される輪郭座標、開始点から次の点への方向（上下左右の四方向）、そして端点間の座標点列情報を保持する。全ての色領域から抽出した輪郭を元に境界線を抽出すると、境界線は２回抽出されることになる。これは境界線が２つの色領域に接していることに起因する。
【００３８】
同じ座標点列で表される境界線は、後の処理で関数近似結果をつなぎ合わせる際に同じ情報が参照される必要がある。そこで境界線検出した境界線が抽出済みでないかを効率的に確認できるよう画像の左上を原点として、より左上に位置する点を開始点となるように選択し、開始点から次の点への接続情報を合わせて記録する。
【００３９】
例として図１０では座標（４，８）と座標（５，７）の間に線４、線５、線６の３つの線が存在している。これらの分割境界線を検出した際、色領域の交点として座標（５，７）が先に検出され、座標（４，８）が後で検出されることが起こりうる。この際、座標（４，８）と座標（５，７）の水平方向の座標（この場合は線４と線５）を比較し、より小さい値を持つ座標（４，８）が開始点となるように座標を並び替える。水平方向の座標値が等しかった場合は垂直方向の座標値が小さいほうを開始点として選択する。線４、線５、線６は、開始点と終了点とは一致するが、開始点から次の座標に向かう方向がそれぞれ左、上、右と異なる。そのため、開始点と終了点、開始点からの方向の３つを合わせることで任意の線を識別することができる。また各線には開始点から終了点に至る輪郭の座標点列を合わせて記録する。例えば線５では３点から構成されるため、座標点列として「（４，８），（４，７），（５，７）」を記録する。
【００４０】
また、開始点と終了点とが同じ場合は時計回りで座標情報を記録する。線２と線３はどちらも開始点と終了点が座標（４，３）で同じである。この場合は座標点列の並びが右回りになるように記録する。線２は開始点から次の点へ向かう方向が左向きになり、線３は開始点から次の点へ向かう方法が右向きになるため、それぞれ識別できるようになる。この場合も座標点列を並び変えた値を合わせて記録する。例えば線２では５点から構成されるため、座標点列「（４，３），（２，３），（２，２），（４，２），（４，３）」を記録する。以上、線２、線３、線４、線５、線６に関連して記録する境界線情報をまとめたものを図１１に示す。これらの情報は、検出され、ＲＡＭ５等の記憶部に保持される。
【００４１】
この基準により、抽出済みか否かを判断する際は開始点と終了点の座標、そして開始点から次の点までの向きを用いれば一意に境界線を比較することができる。より左上に位置する点を選択するのは一例であり、処理において一貫して同じ基準を採用するのであれば、その他の基準を適用してもよい。
【００４２】
また、抽出した境界線は後の処理でつなぎ合わせる必要があるため、つなぎ合わせる際に必要となる領域再構成情報を保持する必要がある。領域再構成情報の例を図１２に示す。抽出した境界線の線番号を順に記録すれば、領域を再構成するのに必要な情報を求めることができる。抽出した境界線が既に抽出済みの場合、先に抽出して記録済みの境界線番号を代わりに記録する。境界線によっては開始点と終了点の位置を入れ替えて情報を保持しているため、再構成時に逆順でつなぎ合わせる場合はその旨も合わせて記録する。
【００４３】
図１０の下部にある色領域の抽出を例にとると、領域番号３の輪郭を元に境界線を抽出するとまず線４が抽出でき、次に線５が逆順で抽出できる。よって、領域番号３の領域再構成情報として「線４、線５（逆順）」を記録する。次に領域番号４の輪郭を元に境界線を抽出すると線６が逆順で抽出でき、次に線５が正順で抽出できる。よって、領域番号４の領域再構成情報として「線６（逆順）、線５」を記録する。
【００４４】
Ｓ１００３の処理の後、Ｓ１００４では全ての輪郭座標を処理したか調べる。まだ未処理の輪郭座標があれば（Ｓ１００４にてＮＯ）、Ｓ１００１へ戻って交点の検出処理を繰り返す。全ての輪郭座標を処理し終えたら（Ｓ１００４にてＹＥＳ）、Ｓ１００５でＳ１００３の分割境界線記録が行われたか否かを確認する。領域によっては色領域の交点が１つも検出されないことがあり、これは抽出対象の色領域が外側に位置する色領域に包含されている場合である。例えば、図１０において、領域番号１の外輪郭がこれに該当する。この場合、Ｓ１００５にてＮＯとなり、Ｓ１００６にて抽出した輪郭線を分割することなく境界線として保存する（非分割境界線記録）。
【００４５】
非分割境界線を記録する場合も、抽出済みか否かを後で判断する必要が生じるため、座標点列を並び替えておくとよい。ここでは輪郭座標中の最も左上に位置する点を開始点とし、座標点列の回りを右回りに統一して記録する。図１０中の領域番号１の外輪郭に対応する輪郭は、６点から構成される。このうち、水平方向の座標値が最も小さい座標は（１，１）と（１，４）の２つがある。このうち、垂直方向が最も小さい値を持つ（１，１）を記録上の開始点として選択し、右回りで座標点列を記録する。結果として線１は座標（１，１）を開始点・終了点とし、開始点からの方向を右、座標点列として「（１，１），（６，１），（６，５），（３，５），（３，４），（１，４），（１，１）」を記録する。ここで、開始点と終了点である座標（１，１）は、同一の座標であるため、重複して記録される。
【００４６】
図１１に境界線に関連付けて保存する情報の構成例を示す。この時の領域再構成情報として、外輪郭と内輪郭が存在する場合、外輪郭を先に記録する。結果として領域番号１の再構成情報は図９に示すように「線１、線２、線３」となる。最も左上に位置する点を開始点として右回りに並び替える基準は一例であり、処理において一貫して同じ基準を採用するのであれば、その他の基準を適用してもよい。
【００４７】
境界線抽出処理を全ての色領域から抽出した輪郭座標に対して行うことで、境界線をもれなく、矛盾を生じることなく抽出することができる。以上Ｓ１００１からＳ１００６までに述べた処理により、図１における境界線抽出手段２５を実現している。
【００４８】
次にＳ１１００において、Ｓ１０００で抽出した輪郭座標を関数近似する。ここでは特許文献２で開示された手法を使うことができる。輪郭座標を以下の条件を満たす点で分割し、分割区間に対してベジェ曲線を当てはめることで近似を行う。
【００４９】
第１の角点：隣接する点列を結ぶベクトルの変化が鋭角となる点
第２の角点：連続する点と点との距離が所定の閾値より大きい場合の両端の点
変曲点：連続するベクトルの外積の符号が変化する点
図１３に図１１に示した境界線を直線と３次ベジェ曲線で近似した結果を示す。近似結果はそれぞれ、直線またはベジェ曲線の端点座標（Ｌ）、コントロールポイント（Ｃ）、曲線が閉曲線（Ｚ）であることを示している。
【００５０】
最後にＳ１２００において、Ｓ１１００で近似した境界線の曲線情報を再構成してベクトルデータとして出力する。境界線の関数近似結果を図１２に示す領域再構成情報に従って元の輪郭情報へとつなぎ合わせ、ベクトルデータとする。関数近似結果は逆順で用いても描画される曲線の形状は変わらないため、領域再構成情報が逆順でつなぐようになっていれば、そのまま関数近似結果を逆順で用いればよい。
【００５１】
例えば領域番号１の再構成情報は、線１、線２、線３を全て正順でつなぎ合わせるようになっている。よって領域番号１に対応する外輪郭の近似結果は「Ｌ（１，１），Ｌ（６，１），Ｌ（６，５），Ｃ（３，５），Ｃ（３，４），Ｌ（１，４），Ｚ」となる。また内輪郭は「Ｌ（４，３），Ｌ（２，３），Ｌ（２，２），Ｌ（４，２），Ｌ（４，３），Ｌ（５，３），Ｌ（５，４），Ｌ（４，４）Ｚ」となる。上記処理により、図１におけるベクトルデータ出力手段２６を実現している。以上により、本処理フローを終了する。
【００５２】
以上の構成により、入力画像中に８連結接続を含むパターンがあっても、ベクトル化処理に適した境界線を抽出でき、ベクトル化結果の画質を向上させることができる。
【００５３】
＜第二実施形態＞
第一実施形態では入力画像をそのままのサイズで処理を行ったが、８連結接続を検知しても修正しないと判断する場合があった。これは置き換えによる修正を行うと画像パターンを破壊してしまう恐れがあるからである。例えば図７のウィンドウ７０４に示すような１画素幅の細線が隣接している場合、８連結接続を修正すると線が途中で分断されてしまう。
【００５４】
そこで第二実施形態では入力画像を予め定められた倍率だけ拡大（高解像度化）した後に８連結接続を４連結接続に修正する。図１４に入力画像を拡大した後に８連結接続を修正する例を示す。図１４では入力画像の１画素を縦横３倍したものを８連結接続検知手段２２による処理を行う。図１４の左の図を３倍に拡大し、修正した一部を右の図に示している。拡大後の画像を示す図１４の右側において、破線で示された箇所の画素１４０１を含む４箇所の８連結接続が４連結接続に修正されている。検出した８連結接続を修正しても既存の連結関係を壊すことなく修正を行うことができる。この時、図７のウィンドウ７０５に示す細線同士でない８連結接続を判断する際には、判断に用いるウィンドウサイズを、入力画像を拡大した時と同じだけ大きくしたものを使用してもよい。また、画像の拡大倍率を３倍としたが、これに限定されるものではなく、２倍もしくは４倍以上に画像を拡大して処理を行っても構わない。
【００５５】
以上により、第一実施形態の効果に加え、例えば図７のウィンドウ７０４に示すような１画素幅の細線が隣接している場合に８連結接続を修正すると線が途中で分断されてしまうような出力結果を防ぐことができる。
【００５６】
＜第三実施形態＞
第一実施形態と第二実施形態ではＳ５００において、細線同士の８連結接続か否かを判断する際に、確認用のウィンドウとして、３×３画素のサイズのウィンドウ７１０、７１１を用いた。しかし、細線の定義はユーザの用途、または入力画像の取得状況によって変わるものであり、３×３画素のウィンドウサイズが常に最適値とは限らない。
【００５７】
そこで第三実施形態では、このウィンドウサイズを画像の入力方法に連動して変更、または細線の検出処理を省略する。例えば図１に示すスキャナ１から画像を入力した際に、併せてスキャナ１の読み取り解像度情報を取得し、ウィンドウサイズを変更する。入力解像度が高くなるにつれて、取得画像の画素数は多くなるため、同じ幅の細線を検出し、修正するにはウィンドウサイズを大きくする必要がある。読み取り解像度が３００ｄｐｉの時に３×３画素のサイズのウィンドウで検知できる細線を６００ｄｐｉ入力時に検知するにはウィンドウサイズを倍の６×６画素にする必要がある。逆に読み取り解像度が低い場合、８連結接続を４連結接続に変換するメリットは小さいため、この処理を省略することもできる。
【００５８】
スキャナ以外から読み取り解像度を得る方法として、画像データのヘッダ部を用いる方法もある。ＪＰＥＧなど一般的な画像フォーマットではヘッダに縦横の読み取り解像度を記録することができる。また通信Ｉ／Ｆ４経由で画像入力がある場合は、画像転送前に別途解像度情報を送信元から受け取り、処理することもできる。
【００５９】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005600524.tif 000002
【図２】
0005600524.tif 000003
【図３】
0005600524.tif 000004
【図４】
0005600524.tif 000005
【図５】
0005600524.tif 000006
【図６】
0005600524.tif 000007
【図７】
0005600524.tif 000008
【図８】
0005600524.tif 000009
【図９】
0005600524.tif 000010
【図１０】
0005600524.tif 000011
【図１１】
0005600524.tif 000012
【図１２】
0005600524.tif 000013
【図１３】
0005600524.tif 000014
【図１４】
0005600524.tif 000015