(57)【要約】【課題】  複数の色領域から構成されるカラー画像から、より適切に各色領域をベクトル化することができる画像処理装置及びその制御方法、プログラムを提供する。【解決手段】  画像の属性情報に基づいて、画像を複数の領域に分割する。分割した各領域間で、異なる領域同士が隣接している領域の境界線に関する領域境界情報を抽出する。抽出した領域境界情報に基づいて、領域間の境界の交点を端点とした場合に、第１端点から第２端点までを繋ぐ境界毎に、端点間ベクトルデータを生成する。生成した端点間ベクトルデータから、分割した各領域の境界を構成する１つ以上の端点間ベクトルデータを同定して、領域別のベクトルデータを生成する。【選択図】  図１
2008146496.tif 000002
【特許請求の範囲】
【請求項１】
画像をベクトル化するベクトル処理を実行する画像処理装置であって、
処理対象とする画像を入力する入力手段と、
前記入力手段により入力した画像の属性情報に基づいて、前記画像を複数の領域に分割する分割手段と、
前記分割手段により分割した各領域間で、異なる領域同士が隣接している領域の境界線に関する領域境界情報を抽出する抽出手段と、
前記抽出手段により抽出した領域境界情報に基づいて、領域間の境界の交点を端点とした場合に、第１端点から第２端点までを繋ぐ境界毎に、端点間ベクトルデータを生成する端点間ベクトル生成手段と、
前記端点間ベクトル生成手段により生成した端点間ベクトルデータから、前記分割手段により分割した各領域の境界を構成する１つ以上の端点間ベクトルデータを同定して、領域別のベクトルデータを生成する領域別ベクトル生成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記領域別ベクトル生成手段は、
前記分割手段により分割した領域の属性情報に基づいて、前記端点間ベクトル生成手段により生成した端点間ベクトルデータから、前記分割手段により分割した各領域の境界を構成する１つ以上の端点間ベクトルデータを同定する同定手段と、
前記同定手段で同定した端点間ベクトルデータで構成される領域に対して、対応する属性情報を付与する付与手段とを備え、
前記同定手段で同定した端点間ベクトルデータで構成される領域に付与された前記属性情報と、前記領域を構成する端点間ベクトルデータを、１つの領域のベクトルデータとして生成する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記領域境界情報は、異なる領域同士が隣接している領域の境界間にある画素に関する情報である
ことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記抽出手段により抽出した領域境界情報に基づいて、互いに異なる領域間の境界において、互いに異なる境界の交点を示す交点情報を生成する交点情報生成手段を更に備える
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記領域別ベクトル生成手段は、前記交点情報生成手段により生成した交点情報を用いて、前記領域別のベクトルデータを生成する
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記分割手段は、前記画像中の画素同士の特徴の乖離度に基づいて、前記画像中の画素をクラスタリングし、そのクラスタリングで得られるクラスタに基づいて、前記画像を複数の領域に分割する
ことを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記端点間ベクトル生成手段は、前記抽出手段により抽出した領域境界情報が示す境界線単位で、前記端点間ベクトルデータを生成する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項８】
前記端点間ベクトル生成手段は、前記抽出手段により抽出した領域境界情報が示す境界線に対して、前記端点間ベクトルデータを一括して生成する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項９】
前記画像中の処理対象領域を指定する指定手段を更に備える
ことを特徴とする請求項１に記載の画像処理装置。
【請求項１０】
画像をベクトル化するベクトル処理を実行する画像処理装置の制御方法であって、
処理対象とする画像を入力する入力工程と、
前記入力工程により入力した画像の属性情報に基づいて、前記画像を複数の領域に分割する分割工程と、
前記分割工程により分割した各領域間で、異なる領域同士が隣接している領域の境界線に関する領域境界情報を抽出する抽出工程と、
前記抽出工程により抽出した領域境界情報に基づいて、領域間の境界の交点を端点とした場合に、第１端点から第２端点までを繋ぐ境界毎に、端点間ベクトルデータを生成する端点間ベクトル生成工程と、
前記端点間ベクトル生成工程により生成した端点間ベクトルデータから、前記分割工程により分割した各領域の境界を構成する１つ以上の端点間ベクトルデータを同定して、領域別のベクトルデータを生成する領域別ベクトル生成工程と
を備えることを特徴とする画像処理装置の制御方法。
【請求項１１】
画像をベクトル化するベクトル処理を実行する画像処理装置の制御をコンピュータに実行させるためのプログラムであって、
処理対象とする画像を入力する入力工程と、
前記入力工程により入力した画像の属性情報に基づいて、前記画像を複数の領域に分割する分割工程と、
前記分割工程により分割した各領域間で、異なる領域同士が隣接している領域の境界線に関する領域境界情報を抽出する抽出工程と、
前記抽出工程により抽出した領域境界情報に基づいて、領域間の境界の交点を端点とした場合に、第１端点から第２端点までを繋ぐ境界毎に、端点間ベクトルデータを生成する端点間ベクトル生成工程と、
前記端点間ベクトル生成工程により生成した端点間ベクトルデータから、前記分割工程により分割した各領域の境界を構成する１つ以上の端点間ベクトルデータを同定して、領域別のベクトルデータを生成する領域別ベクトル生成工程と
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カラー画像をベクトル化するベクトル処理を実行する画像処理装置及びその制御方法、プログラムに関するものである。
【背景技術】
【０００２】
従来、画像のベクトル化に関連する技術としては、ワードプロセッサ等で用いられるフォント（文字書体）を対象とした処理技術が広く一般的に知られている。フォント（文字書体）を対象としたベクトル化の技術は、入力としては、予め美しくデザインされた文字のみを対象としている。具体例としては、アナログ的に作成された１文字を５１２×５１２や１０２４×１０２４ピクセル等の比較的大きなサイズの２値画像としてデジタイズしたものをベースに、輪郭をベクトル化する。ベクトル化されたデータは、基本的には、各種の所望のサイズに拡大してもスムーズな輪郭表現が可能なことから、形状の品質が良いという特徴がある。さらに、各種のサイズの文字を、１つのデータをもとに生成可能であるという特徴があり、簡便さや、データ量の削減効果を有する。
【０００３】
このため、フォント（文字書体）のみならず、一般的な２値画像に対しても、これらの特徴を生かした効果を狙って、ベクトル処理を施す技術（例えば、特許文献１）が提案されている。
【０００４】
加えて、ベクトル化されたデータは、基本的には座標値を基本とした数値データであり、コンピュータでの編集処理等も容易なため、ラインアート（線画像）にベクトル処理を施す技術（例えば、特許文献２）も提案されている。また、昨今では、フルカラーの部分を含む読み取り画像に対するベクトル化に関する提案もなされてきている（例えば、特許文献３）。
【０００５】
尚、上記特許文献１の前提となる、２値画像のベクトル化に関しては、本出願人は、特許文献４を提案している。
【０００６】
この特許文献４において、『注目画素と、その近傍画素の状態により、予め定められた位置を輪郭線を構成する点とし、近傍画素の状態により該輪郭線を構成する点の接続方向を決定する工程とを備える。また、前記輪郭線を構成する点と、該輪郭線を構成する他の点との接続状態を判断する工程と、前記注目画素の位置をラスタ走査順に画像データ上を更新し、注目画素毎に近傍画素の状態に基づいて前記工程を実行する。これにより、輪郭点を抽出する。
【０００７】
以上の構成において、画像データにおける注目画素と、その近傍画素の状態を保持し、この注目画素をラスタ走査順に取り出し、その注目画素とその近傍画素の状態に基づいて、水平方向及び垂直方向の画素間ベクトルを検出する。そして、これら画素間ベクトル同士の接続状態を判別して、この判別された画素間ベクトルの接続状態をもとに、画像データの輪郭を抽出するように動作する。』という手法を提案している。
【０００８】
この手法は、画像の中の全ての輪郭線を１回のラスタ走査順だけで抽出でき、かつ、全画像データを記憶するための画像メモリを必要としないため、メモリの容量を少なくできる効果を有している。また、入力画像の画素の中心位置ではなく、画素の縁単位に輪郭を抽出することによって、１画素幅の細線に対しても有為な幅を有する輪郭線抽出法である。
【０００９】
さらに、出願人は既に特許文献５を提案している。この特許文献５においては、２値画像の輪郭情報を直線のみならず、２次や３次のベジェ曲線近似をすることで、より少ないデータ量で高画質な変倍画像を表現する輪郭情報を関数近似する処理手法と処理装置を開示している。２値画像からアウトラインベクトルを抽出し、そのアウトラインベクトル表現の状態で、特許文献１による手法で滑らかに関数近似されたアウトラインベクトルを用いても、所望の倍率（任意）で変倍された高画質のディジタル２値画像を得ることが可能である。ここで、２値画像からアウトラインベクトルを抽出する方法としては、特許文献４で開示される方法を用いて構成することができる。
【特許文献１】特登録０３０４９６７２号公報
【特許文献２】特願２００６−１００３８１
【特許文献３】特登録０２８４５１０７号公報
【特許文献４】特登録０３０２６５９２号公報
【特許文献５】特開２００５−３４６１３７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来より知られるカラー画像のベクトル化方法においては、色空間上で既定される色領域に属する画素からなる領域毎に輪郭形状をベクトル化するのが基本である。そのため、それぞれの領域の輪郭形状をベジェ関数近似や平滑化処理すると、読み取り画像上で隣接する色領域間の輪郭が必ずしも同一の状態の輪郭形状に近似や平滑化がされずに、隙間や重なりが生じてしまうという問題があった。この様子を、図５７と図５８に示した。図５７は、入力画像から色空間上で既定される色領域に属する画素からなる領域毎に輪郭形状を抽出した例を示している。ここで、背景の白地を数えないものとすると、入力画像上では、隣接する（重なる）色領域が３つ存在している。
【００１１】
図５８は、色領域に属する画素からなる領域毎に輪郭形状をベクトル化し、平滑化（関数近似）した場合の例を示しており、各領域間に隙間や重なりが生じてしまっている。
【００１２】
本発明は上記の課題を解決するためになされたものであり、複数の色領域から構成されるカラー画像から、より適切に各色領域をベクトル化することができる画像処理装置及びその制御方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の目的を達成するための本発明による画像処理装置は以下の構成を備える。即ち、
画像をベクトル化するベクトル処理を実行する画像処理装置であって、
処理対象とする画像を入力する入力手段と、
前記入力手段により入力した画像の属性情報に基づいて、前記画像を複数の領域に分割する分割手段と、
前記分割手段により分割した各領域間で、異なる領域同士が隣接している領域の境界線に関する領域境界情報を抽出する抽出手段と、
前記抽出手段により抽出した領域境界情報に基づいて、領域間の境界の交点を端点とした場合に、第１端点から第２端点までを繋ぐ境界毎に、端点間ベクトルデータを生成する端点間ベクトル生成手段と、
前記端点間ベクトル生成手段により生成した端点間ベクトルデータから、前記分割手段により分割した各領域の境界を構成する１つ以上の端点間ベクトルデータを同定して、領域別のベクトルデータを生成する領域別ベクトル生成手段と
を備える。
【００１４】
また、好ましくは、前記領域別ベクトル生成手段は、
前記分割手段により分割した領域の属性情報に基づいて、前記端点間ベクトル生成手段により生成した端点間ベクトルデータから、前記分割手段により分割した各領域の境界を構成する１つ以上の端点間ベクトルデータを同定する同定手段と、
前記同定手段で同定した端点間ベクトルデータで構成される領域に対して、対応する属性情報を付与する付与手段とを備え、
前記同定手段で同定した端点間ベクトルデータで構成される領域に付与された前記属性情報と、前記領域を構成する端点間ベクトルデータを、１つの領域のベクトルデータとして生成する。
【００１５】
また、好ましくは、前記領域境界情報は、異なる領域同士が隣接している領域の境界間にある画素に関する情報である。
【００１６】
また、好ましくは、前記抽出手段により抽出した領域境界情報に基づいて、互いに異なる領域間の境界において、互いに異なる境界の交点を示す交点情報を生成する交点情報生成手段を更に備える。
【００１７】
また、好ましくは、前記領域別ベクトル生成手段は、前記交点情報生成手段により生成した交点情報を用いて、前記領域別のベクトルデータを生成する。
【００１８】
また、好ましくは、前記分割手段は、前記画像中の画素同士の特徴の乖離度に基づいて、前記画像中の画素をクラスタリングし、そのクラスタリングで得られるクラスタに基づいて、前記画像を複数の領域に分割する。
【００１９】
また、好ましくは、前記端点間ベクトル生成手段は、前記抽出手段により抽出した領域境界情報が示す境界線単位で、前記端点間ベクトルデータを生成する。
【００２０】
また、好ましくは、前記端点間ベクトル生成手段は、前記抽出手段により抽出した領域境界情報が示す境界線に対して、前記端点間ベクトルデータを一括して生成する。
【００２１】
また、好ましくは、前記画像中の処理対象領域を指定する指定手段を更に備える。
【００２２】
上記の目的を達成するための本発明による画像処理装置の制御方法は以下の構成を備える。即ち、
画像をベクトル化するベクトル処理を実行する画像処理装置の制御方法であって、
処理対象とする画像を入力する入力工程と、
前記入力工程により入力した画像の属性情報に基づいて、前記画像を複数の領域に分割する分割工程と、
前記分割工程により分割した各領域間で、異なる領域同士が隣接している領域の境界線に関する領域境界情報を抽出する抽出工程と、
前記抽出工程により抽出した領域境界情報に基づいて、領域間の境界の交点を端点とした場合に、第１端点から第２端点までを繋ぐ境界毎に、端点間ベクトルデータを生成する端点間ベクトル生成工程と、
前記端点間ベクトル生成工程により生成した端点間ベクトルデータから、前記分割工程により分割した各領域の境界を構成する１つ以上の端点間ベクトルデータを同定して、領域別のベクトルデータを生成する領域別ベクトル生成工程と
を備える。
【００２３】
上記の目的を達成するための本発明によるプログラムは以下の構成を備える。即ち、
画像をベクトル化するベクトル処理を実行する画像処理装置の制御をコンピュータに実行させるためのプログラムであって、
処理対象とする画像を入力する入力工程と、
前記入力工程により入力した画像の属性情報に基づいて、前記画像を複数の領域に分割する分割工程と、
前記分割工程により分割した各領域間で、異なる領域同士が隣接している領域の境界線に関する領域境界情報を抽出する抽出工程と、
前記抽出工程により抽出した領域境界情報に基づいて、領域間の境界の交点を端点とした場合に、第１端点から第２端点までを繋ぐ境界毎に、端点間ベクトルデータを生成する端点間ベクトル生成工程と、
前記端点間ベクトル生成工程により生成した端点間ベクトルデータから、前記分割工程により分割した各領域の境界を構成する１つ以上の端点間ベクトルデータを同定して、領域別のベクトルデータを生成する領域別ベクトル生成工程と
をコンピュータに実行させる。
【発明の効果】
【００２４】
本発明によれば、複数の色領域から構成されるカラー画像から、より適切に各色領域をベクトル化することができる画像処理装置及びその制御方法、プログラムを提供できる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００２６】
本発明は、画像上で隣接する色領域間の輪郭形状に関数近似や平滑化を施しても、隙間や重なりの発生がなく、良好なベクトル化（ベクトル処理）が可能な技術について提供する。本発明では、カラー画像、とりわけ、ディジタルカメラ等により撮影された自然画像に比べて色数の少ないイラスト画像のベクトル化について提供する。
【００２７】
尚、各実施形態で説明するベクトルとは、ビットマップ画像データを作成する際に用いられる数式等の描画コマンドで表現されたデータ（ベクトルデータ）を意味するものである。また、ベクタ画像データをビットマップ画像データに変換することを、ラスタ化やラスタライズという。そのため、このビットマップ画像データは、ラスタデータと呼ばれることもある。
【００２８】
また、以下の説明では、ベクトルデータのことを、単にベクトルと略称する。
【００２９】
＜実施形態１＞
図１は本発明の実施形態１の画像処理装置の機能構成を示すブロック図である。
【００３０】
同図において、１１は、入力としての処理対象画像を獲得するカラー画像獲得部である。１２は、カラー画像獲得部１１で獲得された画像を、同色領域とみなせる画素の連結としての部分領域に分割する領域同定部である。ここで、同色領域とみなせるとは、画素の特徴量（例えば、色情報（例えば、ＲＧＢ値））が所定範囲内に含まれるものを、同一の画素の特徴量を有している領域と判定することである。
【００３１】
この領域同定部１２は、領域分割部１２１と領域テーブル生成部１２２を備える。領域分割部１２１は、色情報に基づき幾何学的に連結した同色領域とみなせる画素の集まりに画像を分割する。また、領域テーブル生成部１２２は、領域分割部１２１から得られる各領域とそれら各領域の色情報（属性情報（例えば、ＲＧＢ値））の対応づけ情報を、例えば、図２に示すテーブル形式（領域テーブル２０１）で生成する。
【００３２】
２０は、領域同定部１２で同定された各領域間の領域境界を１画素幅の細線で構成した領域境界細線画像を生成する領域境界細線画像生成部である。領域境界細線画像生成部２０は、領域境界情報抽出部２１０、交点情報生成部２２０及び境界線画像生成部２３０を備える。
【００３３】
領域境界情報抽出部２１０は、領域同定部１２で同定された各領域間の領域境界となる境界画素とそれらの各境界画素が隔てる領域間を示す領域境界情報を抽出する。また、交点情報生成部２２０は、領域境界画素を４−連結化した領域境界線の分岐点となる領域境界線の交点を示す交点情報を生成する。換言すれば、互いに異なる領域間の境界において、互いに異なる境界の交点を示す交点情報を生成する。また、境界線画像生成部２３０は、抽出された領域境界情報と生成された交点情報とから、領域境界細線画像を生成する。
【００３４】
領域境界情報抽出部２１０は、水平方向境界点抽出部２１１、水平方向境界点テーブル生成部２１２、垂直方向境界点抽出部２１３、垂直方向境界点テーブル生成部２１４、斜め方向境界点抽出部２１５及び斜め方向境界点テーブル生成部２１６を備える。
【００３５】
水平方向境界点抽出部２１１は、例えば、図３に示すように、領域同定部１２により同定された同色領域とみなせる画素の連結としての部分領域で構成される領域同定結果画像を、水平方向に走査したときの各走査線上での領域間の境界となる画素を抽出する。即ち、水平方向における、ある部分領域から他の部分領域への切り替わりになる画素を抽出する。
【００３６】
水平方向境界点テーブル生成部２１２は、水平方向境界点抽出部２１１で抽出された水平方向境界点の各点（画素）に関する情報を、図４に示す水平方向境界点テーブル４０１として生成する。
【００３７】
垂直方向境界点抽出部２１３は、例えば、図３に示すように、領域同定部１２により同定された同色領域とみなせる画素の連結としての部分領域で構成される領域同定結果画像を、垂直方向に走査したときの各走査線上での領域間の境界となる画素を抽出する。即ち、垂直方向における、ある部分領域から他の部分領域への切り替わりになる画素を抽出する。
【００３８】
垂直方向境界点テーブル生成部２１４は、垂直方向境界点抽出部２１３で抽出された垂直方向境界点の各点（画素）に関する情報を、図４に示す垂直方向境界点テーブル４０２として生成する。
【００３９】
斜め方向境界点抽出部２１５は、例えば、図３に示すように、領域同定部１２により同定された同色領域とみなせる画素の連結としての部分領域で構成される領域同定結果画像を、斜め方向に走査したときの斜め走査線上での領域間の境界となる画素を抽出する。即ち、斜め方向における、ある部分領域から他の部分領域への切り替わりになる画素を抽出する。
【００４０】
斜め方向境界点テーブル生成部２１６は、斜め方向境界点抽出部２１５で抽出された斜め方向境界点の各点（画素）に関する情報を、図４に示す斜め方向境界点テーブル４０３として生成する。
【００４１】
交点情報生成部２２０は、交点同定部２２１と交点テーブル生成部２２２を備える。
【００４２】
交点同定部２２１は、図４の水平方向境界点テーブル４０１、垂直方向境界点テーブル４０２及び斜め方向境界点テーブル４０３とから、交点情報を生成する。
【００４３】
具体的には、図５に示すように、３つのテーブル４０１〜４０３上の少なくとも２つ以上のテーブル上に存在する境界点の内、それが属する２つ以上のテーブル上でそれぞれの隣接する領域番号の組み合わせが完全には一致していない境界点を探索する。即ち、異なる領域番号の組み合わせが存在するような境界点を探索し、それを交点（交点情報）とする。図５の例では、Ｃ及びＥが交点となる。
【００４４】
交点テーブル生成部２２２は、交点同定部２２１で同定された交点について、その交点が属するテーブル上の隣接する領域番号の内の少なくともいずれかには表記されている領域番号を全て抜き出す。そして、これにより、その交点の隣接する領域の領域番号の全てを対応する交点とともに管理する、図６に示す交点テーブル６０１を生成する。
【００４５】
境界線画像生成部２３０は、境界線画像描画部２３１と境界線画像細線化部２３２を備える。
【００４６】
境界線画像描画部２３１は、生成された領域境界情報と生成された交点情報とから、領域境界画素を４−連結化した境界線画像を生成する。また、境界線画像細線化部２３２は、得られた境界線画像に４−連結の状態を保った細線化を行ない、４−連結の領域境界細線画像を生成する。
【００４７】
例えば、境界線画像細線化部２３２は、境界線画像描画部２３１にて生成される領域境界画素を４−連結化した境界線画像（２値画像）を、公知の２値画像細線化手法により、４−連結に細線化された２値画像としての４−連結の領域境界細線画像を出力する。
【００４８】
ここで、公知の２値画像細線化手法としては、Ｈｉｌｄｉｔｃｈ法がある。これは、例えば、酒井幸市著「ディジタル画像処理の基礎と応用」第２版，ＩＳＢＮ４−７８９８−３７０７-６，ＣＱ出版社，２００４年２月１日発行，Ｐ．５１−Ｐ．５４，等）に記載されている。
【００４９】
一例として、図７（ａ）に示される２値画像を境界線画像細線化部２３２に入力した場合には、境界線画像細線化部２３２から出力されることになる細線化済画像は、図７（ｂ）となる。
【００５０】
図１の説明に戻る。
【００５１】
３０は、領域境界細線画像生成部２０で生成された４−連結の領域境界細線画像を、交点から他の交点までを繋ぐ４−連結の細線毎に、其々の交点を端点とした端点間ベクトルの集まりとしてベクトル化する端点間ベクトル生成部である。
【００５２】
端点間ベクトル生成部３０は、端点間ベクトル抽出部３１０と端点間ベクトル関数近似（平滑）部３２０を備える。
【００５３】
端点間ベクトル抽出部３１０は、４−連結の領域境界細線画像を、交点から他の交点までを繋ぐ４−連結の細線毎に、其々の交点をベクトルの端点として、端点間を繋ぐ各細線の画素の中心位置上を通過する線芯ベクトルを端点間ベクトルとして抽出する。
【００５４】
端点間ベクトル関数近似（平滑）部３２０は、抽出された端点間ベクトルを、端点から端点までの間が、端点部分が端点として保存された形で関数近似する。即ち、端点部分がベジェ曲線のアンカーポイントとなるようにベジェ関数近似し、関数近似（平滑化）済端点間ベクトルを生成する。
【００５５】
ここで、端点間ベクトル抽出部３１０は、図８に示すように、端点間毎輪郭（周回）ベクトル抽出部３１１０と端点間毎線芯（周回）ベクトル生成部３１２０とを備える。
【００５６】
端点間毎輪郭（周回）ベクトル抽出部３１１０は、４−連結の状態を保って細線化されている領域境界細線画像を入力する。次に、１回のラスタ走査のみにより、処理対象の細線化済２値画像中の線図形を、それらを構成している端点や交点間をつなぐ独立した線や閉曲線毎のそれぞれに対応したベクトル列の集まり（以降、「端点間毎線素粗輪郭ベクトル」という）として抽出する。そして、その処理結果を出力する。
【００５７】
尚、出力される処理結果には、ベクトル列のそれぞれを構成する各ベクトルが、処理対象の線図形の端点（交点）位置に対応する部分から抽出されたものか否か等を表す情報（以降、「付与情報」ともいう）が含まれる。
【００５８】
また、端点間毎線芯（周回）ベクトル生成部３１２０は、端点間毎輪郭（周回）ベクトル抽出部３１１０より得られる付与情報と端点間毎線素粗輪郭ベクトル（以降、これらを合わせて「端点間毎輪郭（周回）ベクトル」という）を入力する。そして、付与情報を利用して、一画素幅の幅を持った輪郭（周回）ベクトルの各ベクトルの位置をそれぞれ半画素分ずつ相応する方向へ予め定める規則により微調整する。これによって、幅０に線芯化された端点間毎線芯（周回）化済ベクトルを生成する。
【００５９】
図７（ｃ）は、図７（ｂ）の画像を入力２値画像とした際の端点間毎輪郭（周回）ベクトル抽出部３１１０から出力される端点間毎輪郭（周回）ベクトルを輪郭画像として描画して可視化したものである。また、図７（ｄ）は、図７（ｃ）の画像を入力した際の端点間毎線芯（周回）ベクトル生成部３１２０から出力される端点間毎線芯（周回）化済ベクトルを線画像として描画して可視化したものである。
【００６０】
また、端点間ベクトル関数近似（平滑）部３２０は、端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０、端点間毎補助ベクトル入り（周回）ベクトル平滑化部３２２０、端点間毎平滑化済ベクトル同定（非周回化）部３２３０を備える（図８参照）。
【００６１】
ここで、端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０は、端点間毎線芯（周回）ベクトル生成部３１２０より得られる端点間毎線芯（周回）化済ベクトルを入力する。そして、次工程の処理をする端点間毎補助ベクトル入り（周回）ベクトル平滑部３２２０により平滑化（関数近似）処理される際に、端点部分に相当するベクトルが、他のベクトルと統合されて端点位置が不明にならぬようにするための補助ベクトルを挿入する。つまり、端点部分に相当する部分が端点として保存される（ベジェ曲線のアンカーポイントとなる）ように補助ベクトルを挿入することにより、端点間毎補助ベクトル入り（周回）ベクトルを生成する。
【００６２】
加えて、端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０は、補助ベクトルを挿入された各端点間毎補助ベクトル入り（周回）ベクトルのそれぞれに対し、どのベクトルが端点部にあたるかを明示する始端点・終端点情報をも生成する。
【００６３】
図７（ｅ）は、図７（ｄ）の画像を入力した際の端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０から出力される端点間毎補助ベクトル入り（周回）ベクトルを線画像として描画して可視化したものである。
【００６４】
端点間毎補助ベクトル入り（周回）ベクトル平滑部３２２０は、端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０より端点間毎補助ベクトル入り（周回）ベクトルを入力する。次に、各（周回）ベクトル毎に平滑化（関数近似）処理を行うことによって、平滑化された平滑化済端点間毎補助ベクトル入り（周回）ベクトルを生成する。そして、それを、次工程の処理をする端点間毎平滑化済ベクトル同定（非周回化）部３２３０に出力する。
【００６５】
端点間毎平滑化済ベクトル同定（非周回化）部３２３０は、端点間毎補助ベクトル入り（周回）ベクトル平滑部３２２０より平滑化（関数近似）済端点間毎補助ベクトル入り（周回）ベクトルを入力する。また、端点間毎平滑化済ベクトル同定（非周回化）部３２３０は、端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０より始端点・終端点情報を入力する。
【００６６】
そして、端点間毎平滑化済ベクトル同定（非周回化）部３２３０は、各平滑化済の（周回）ベクトル毎にそれぞれ始端点と終端点となるベクトルを同定して、始端点と終端点の間のみの部分の非周回型のベクトル列を生成する。
【００６７】
図７（ｆ）は、図７（ｅ）の画像を入力した際の端点間毎平滑化済ベクトル同定（非周回化）部３２３０から出力される平滑化済ベクトルを線画像として描画して可視化したものである。
【００６８】
図１の説明に戻る。
【００６９】
４０は、各領域毎にそれを取り囲む平滑化（関数近似）済端点間ベクトル列とその内部色とでなる領域ベクトルに変換する領域別ベクトル生成部である。この処理は、端点間ベクトル生成部３０から得る平滑化（関数近似）済端点間ベクトルと、領域境界細線画像生成部２０から得る各交点が隣接する領域の領域番号情報と、領域同定部１２から得る各領域とそれらの色情報（属性情報）の対応づけ情報を用いて行う。
【００７０】
領域別ベクトル生成部４０は、領域境界ベクトル列同定部４１０と、領域属性付与部４２０とを備える。
【００７１】
領域境界ベクトル列同定部４１０は、各領域毎にそれを取り囲む関数近似（平滑化）済端点間ベクトル列を同定する。この処理は、端点間ベクトル生成部３０で生成された関数近似（平滑化）済端点間ベクトルと、領域同定部１２から得る各領域とそれらの色情報（属性情報）の対応づけ情報を用いて行われる。
【００７２】
領域属性付与部４２０は、各領域を取り囲む平滑化（関数近似）済端点間ベクトル列にその内部の色情報を付与して、各領域毎にそれを取り囲む平滑化（関数近似）済端点間ベクトル列とその色情報からなる領域ベクトルを生成する。この処理は、領域境界ベクトル列同定部４１０で同定された各領域毎の平滑化（関数近似）済端点間ベクトル列と、領域同定部１２から得る各領域とそれらの色情報（属性情報）の対応づけ情報を用いて行う。
【００７３】
次に、図１の画像処理装置のハードウェア構成について、図９を用いて説明する。
【００７４】
図９は本発明の実施形態１の画像処理装置のハードウェア構成を示す図である。
【００７５】
同図において、５１８は、図９に示す各種構成要素を相互に接続するためのバスである。１はスキャナである。２は画像メモリであり、３は画像入出力Ｉ／Ｏである。画像メモリ２は画像入出力Ｉ／Ｏ３を介して、スキャナ１で読み取られたカラー画像を保持する。図１のカラー画像獲得部１１は、このスキャナ１、画像入出力Ｉ／Ｏ３及び画像メモリ２によって実現される。
【００７６】
また、画像メモリ２は、領域同定部１２により生成される同色領域とみなせる画素の連結領域を部分領域として構成される領域同定結果画像を保持する。また、画像メモリ２は、領域境界細線画像生成部２０の境界線画像生成部２３０で生成される境界線画像や、得られた境界線画像に対する、４−連結の状態での細線化によって生成される４−連結の領域境界細線画像を保持する。
【００７７】
このように、画像メモリ２は、領域同定部１２や領域境界細線画像生成部２０、端点間ベクトル生成部３０を構成する一部としても機能する。
【００７８】
４は通信Ｉ／Ｆであり、ネットワーク等を経由して、システムの外部と通信する。５１９はＣＰＵである。５２０はＲＡＭで、例えば、ワーキングメモリとして機能する。６はＲＯＭであり、後に説明する手順に沿ってＣＰＵ５１９で実行されるプログラムや予め定められるパラメータやデータ等を格納している。
【００７９】
ここで、画像メモリ２と、ＣＰＵ５１９やＲＡＭ５２０、ＲＯＭ６により、図１の領域同定部１２、領域境界細線画像生成部２０、端点間ベクトル生成部３０が構成されるとともに、領域別ベクトル生成部４０も実現される。
【００８０】
５２１はハードディスク装置５２２とのディスクＩ／Ｏ（入出力回路）である。
【００８１】
以下、画像処理装置の動作について、図１０を用いて説明する。
【００８２】
図１０は本発明の実施形態１の画像処理装置の動作を示すフローチャートである。
【００８３】
尚、この処理は、例えば、ＣＰＵ５１９が、ＲＯＭ６に記憶されているプログラムを実行することによって、図１に示される各種機能構成によって実現される。
【００８４】
まず、ステップＳ１１で、カラー画像獲得部１１が、入力としての処理対象カラー画像を入力する。次に、ステップＳ１２とステップＳ１３は、領域同定部１２での処理内容を実行する。即ち、ステップＳ１１で入力した画像を領域分割処理し、領域分割処理結果をＲＡＭ５２０に保存する。
【００８５】
より具体的には、ステップＳ１２で、領域分割部１２１が、色情報に基づき幾何学的に連結した同色領域とみなすことができる画素の集まりに画像を分割する。そして、ステップＳ１３で、領域テーブル生成部１２２が、得られる各領域内の画素の色平均値をもって、その領域の色情報（属性情報）とし、図２に示す領域テーブル２０１を作成して、ＲＡＭ５２０上に保存する。ステップＳ１２の領域分割処理の詳細については後述する。
【００８６】
次に、ステップＳ２１からステップＳ２６は、領域境界情報抽出部２１０での処理内容を実行する。即ち、ステップＳ１２で同定された各領域間の領域境界となる境界画素とそれらの各境界画素が隔てる領域間を示す領域境界情報を抽出する。
【００８７】
まず、ステップＳ２１で、水平方向境界点抽出部２１１が、同色領域とみなすことができる画素の連結としての部分領域で構成される領域同定結果画像を、水平方向に走査したときの各走査線上での領域間の境界となる画素を抽出する。即ち、ある領域から他の領域への切り替わりになる水平方向境界点の画素を抽出する。ステップＳ２２で、水平方向境界点テーブル生成部２１２が、抽出した水平方向境界点の各点に関する座標と隣接する領域番号を用いて、水平方向境界点テーブル４０１（図４）を生成する。
【００８８】
ステップＳ２３で、垂直方向境界点抽出部２１３が、同色領域とみなすことができる画素の連結としての部分領域で構成される領域同定結果画像を、垂直方向に走査したときの各走査線上での領域間の境界となる垂直方向境界点の画素を抽出する。ステップＳ２４で、垂直方向境界点テーブル生成部２１４が、抽出した垂直方向境界点の各点に関する座標と隣接する領域番号を用いて、垂直方向境界点テーブル４０２（図４）を生成する。
【００８９】
ステップＳ２５で、斜め方向境界点抽出部２１５が、同色領域とみなすことができる画素の連結としての部分領域で構成される領域同定結果画像を、斜め方向に走査したときの各走査線上での領域間の境界となる斜め方向境界点の画素を抽出する。ステップＳ２６で、斜め方向境界点テーブル生成部２１６が、抽出した斜め方向境界点の各点に関する座標と隣接する領域番号を用いて、斜め方向境界点テーブル４０３（図４）を生成する。
【００９０】
尚、ステップＳ２１、ステップＳ２３とステップＳ２５の境界点抽出処理の詳細については後述する。
【００９１】
次に、ステップＳ３０とＳ３１は、交点情報生成部２２０での処理内容を実行する。即ち、領域境界画素を４−連結化した領域境界線の分岐点となる領域境界線の交点の情報を生成する。
【００９２】
まず、ステップＳ３０で、交点同定部２２１が、水平方向境界点テーブル４０１、垂直方向境界点テーブル４０２及び斜め方向境界点テーブル４０３とから、交点を抽出する。
【００９３】
具体的には、３つのテーブル４０１〜４０３上で２つ以上のテーブルに存在する境界点の内、各テーブル４０１〜４０３それぞれでの隣接する領域番号とから３つ以上の領域番号を持つ境界点を探索して、それを交点とする。
【００９４】
尚、３つのテーブル上で２つ以上のテーブルに存在する境界点とは、水平境界点かつ垂直方向境界点、水平方向境界点かつ斜め方向境界点、垂直方向境界点かつ斜め方向境界点、あるいは水平方向境界点かつ垂直方向境界点かつ斜め方向境界点のいずれかである。
【００９５】
ステップＳ３１で、交点テーブル生成部２２２が、ステップＳ３０で同定された交点に基づいて、交点テーブル６０１を生成する。
【００９６】
具体的には、水平方向境界点テーブル４０１での隣接する領域番号と垂直方向境界点テーブル４０２での隣接する領域番号と斜め方向境界点テーブル４０３での隣接する領域番号の少なくともいずれかには表記されている領域番号を全て抜き出す。これにより、その交点の隣接する領域の領域番号の全てとして、図６の交点テーブル６０１を生成する。
【００９７】
尚、ステップＳ３０の交点抽出処理の詳細については後述する。
【００９８】
ステップ５０からステップＳ８０は、境界線画像生成部２３０と端点間ベクトル生成部３０の処理内容を実行する。即ち、ステップＳ１２で生成された領域境界情報とステップＳ３０で獲得した交点情報とから、領域境界細線画像を生成し、各端点間ベクトルを生成する。
【００９９】
まず、ステップＳ５０で、境界線画像描画部２３１を実行する。即ち、領域境界情報から、領域境界画素を４−連結化した境界線ビットマップ画像（境界線画像）を生成する。ステップＳ６０で、境界線画像細線化部２３２を実行する。即ち、４−連結化した境界線画像から領域境界細線画像を生成する。ステップＳ７０で、端点間ベクトル生成部３０を実行する。即ち、領域境界細線画像を、交点と交点の間を繋ぐ境界線画像毎に、順次に端点間ベクトルを生成する。
【０１００】
ステップＳ８０で、全ての境界線について端点間ベクトル化の処理が終了したか否かを判定する。この処理では、ステップＳ３１で生成された交点テーブル６０１にあるすべての交点と交点の間を繋ぐ境界線画像の端点間ベクトル生成処理が終了していない場合（ステップＳ８０でＮＯ）、まだ未処理の境界線があると判定する。その場合、ステップＳ５０に戻り、以上の処理を繰り返し実行する。一方、全ての交点と交点の間を繋ぐ境界線画像の端点間ベクトル生成処理が終了している場合（ステップＳ８０でＹＥＳ）、未処理の境界線がないと判定し、ステップＳ１００へ進む。
【０１０１】
ステップＳ５０の境界線ビットマップ生成処理では、図４の各境界点テーブル４０１〜４０３に保持される水平方向境界点、垂直方向境界点、斜め方向境界点を所望とする領域境界毎に、これらテーブルの隣接する領域番号の等しいものを全て順次探し出す。そして、その探し出した境界点を用いて、ビットマップ画像を生成する。
【０１０２】
即ち、後述する処理済チェックがなされていない境界点を、例えば、水平方向境界点テーブル４０１、垂直方向境界点テーブル４０２、斜め方向境界点テーブル４０３の順にサーチする。そして、最初に保持される処理済のチェックがされていない境界点を探して１点を描画する。続いて、その点の隣接する領域番号の組み合わせと同じ領域番号の組み合わせを持つ点を水平方向境界点テーブル４０１、垂直方向境界点テーブル４０２、斜め方向境界点テーブル４０３の全てにわたり、順次に探し出しては描画する。そして、条件に合う境界点を全て、その領域番号の組み合わせで示される領域間を分ける境界線として描画する。
【０１０３】
尚、境界線として描画された境界点は、既に境界線ビットマップ生成処理が済んだものとして、各境界点テーブル４０１〜４０３の境界点の其々に対応する処理済チェックフラグ欄（不図示）にチェックする（フラグセットする）。これにより、処理済であることを明示する。尚、この処理済チェックフラグがチェックされていない境界点が存在しない場合には、全ての境界点がビットマップとして生成済みであることを意味する。
【０１０４】
尚、この処理で描画される境界点のビットマップ画像は、例えば、後述する図５０（ｅ）の、ハッチングパターンが付されている画素（１）の部分に示されるような、ある交点間を結ぶ４−連結化した領域となる。しかしながら、必ずしも、一画素幅の線画像となるとは限らず、一部２画素幅以上になる場合がありえる。
【０１０５】
ステップＳ６０の境界線画像細線化処理では、ステップＳ５０で得られる境界線ビットマップ画像（２値画像）を、公知の２値画像細線化手法で、４−連結に細線化された２値画像として出力する。
【０１０６】
次に、ステップＳ７０の端点間ベクトル生成処理について詳述する。
【０１０７】
上述したように、ステップＳ７０では、端点間ベクトル生成部３０を実行する。即ち、領域境界細線画像を、交点と交点の間を繋ぐ境界線画像毎に、順次に端点間ベクトルを生成する。端点間ベクトル生成部３０は、図８に示したように、端点間ベクトル抽出部３１０と端点間ベクトル関数近似（平滑）部３２０と備える。さらに、端点間ベクトル抽出部３１０は、端点間毎輪郭（周回）ベクトル抽出部３１１０と端点間毎線芯（周回）ベクトル生成部３１２０とを備える。また、端点間ベクトル関数近似（平滑）部３２０は、端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０、端点間毎補助ベクトル入り（周回）ベクトル平滑化部３２２０、端点間毎平滑化済ベクトル同定（非周回化）部３２３０を備える。
【０１０８】
以下、主として、図１１〜図２７を用いて端点間毎輪郭（周回）ベクトル抽出部３１１０での処理内容を説明する。
【０１０９】
実施形態１では、図１１に示すように、２値画像における注目画素１０１と、その近傍の８個の画素の状態を見て処理を進めるもので、注目画素をラスタ走査し、１画素毎にずらしながら画像全体の処理を逐次行う。
【０１１０】
図１１において、×は注目画素１０１を示しており、「０」及び「２」で示された位置は、主走査方向に対し注目画素１０１と同じ位置にあり、副走査方向のそれぞれ１ラスタ前の画素（０）及び１ラスタ先の画素（２）を示す。「１」及び「３」で示された位置は、注目画素１０１と同一のラスタ上にあり、それぞれ１画素前の画素（３）及び１画素先の画素（１）を示している。
【０１１１】
更に、「Ａ」及び「Ｂ」は、主走査方向に１画素先の位置にあり、それぞれ１ラスタ前及び１ラスタ先の位置にある画素を示し、「Ｃ」及び「Ｄ」は主走査方向の１画素前の位置にある画素で、それぞれ１ラスタ先及び１ラスタ前の位置にある画素を示している。
【０１１２】
次に注目画素１０１及びその近傍の８画素の状態に応じた、それぞれの場合の処理を説明する。
【０１１３】
注目画素１０１が白画素である場合は、その処理を終了してラスタ走査を１画素分進め、注目画素位置を更新する。
【０１１４】
注目画素１０１が黒画素の場合は、近傍の画素の状態によって、以下の処理を行う。ここで、図１２〜図２７に各状態における処理内容を示してある。図１２〜図２７において、斜めのチェッカーパターンで示される○印は黒画素を示し、点線の○印は白画素を示している。「ｄ」は「ｄｏ  ｎｏ  ｃａｒｅ」、即ち、「ｄ」の表示のある位置の画素は白画素でも黒画素でも構わないことを意味している。
【０１１５】
また、図１２〜図２７の各画素マトリクスにおいて、●印と○印は、横方向ベクトルの始点及び縦方向ベクトルの終点を示していて、▲印と△印は縦方向ベクトルの始点及び横方向ベクトルの終点を示している。これらのベクトルの始点・終点間の実線矢印は、始点及び終点共に定まった、矢印の向く方向の輪郭ベクトルを示している。一方、点線矢印は、始点もしくは終点のいずれか一方のみが定まった、矢印の向く方向の輪郭ベクトルを示している。これら輪郭ベクトルの始点及び終点を総称して、以降、輪郭点と呼ぶことにする。尚、図１２、図１７、図２２の画素マトリクスパターンの場合は、輪郭ベクトルを抽出しない。
【０１１６】
また、●印と▲印は端点部から抽出されるベクトルの始点・終点で、それぞれ端点部から抽出される横方向ベクトルの始点及び縦方向ベクトルの終点、端点部から抽出される縦方向ベクトルの始点及び横方向ベクトルの終点であることを示している。
【０１１７】
図１２〜図２７の画素マトリクスに応じて抽出される輪郭点には、対応付けられる付与情報として、図２８の一覧表に示した輪郭点情報のいずれかが付記されている。この輪郭点情報が、各輪郭点情報に付記されて抽出される付与情報となる。
【０１１８】
図２８の一覧表中のＮｏ．０１〜１６に示される１６種の輪郭点情報は、「ｘｘｘ＿ｙｙｙ＿ｚｚｚ」または「ｘｘｘ＿ｙｙｙ」なる形で表記されている。いずれも、「ｘｘｘ」の部分は、対象の輪郭点が終点となるベクトルの向きを示し、「ｙｙｙ」の部分は、同輪郭点が始点となるベクトルの向きを示している。上向きをＵＰ、下向きをＤＯＷＮ、右向きをＲＩＧＨＴ、左向きをＬＥＦＴと表現する。この場合、例えば、Ｎｏ．０１〜０３はいずれも、上向きベクトルの始点かつ右向きベクトルの始点になっている輪郭点であることを意味している。
【０１１９】
尚、「＿ｚｚｚ」の部分は、この付与情報をもつ輪郭点が、端点部から抽出されたものであることを意味していて、図２８の端点情報の欄に記載してある。ここで、＿ＴＲは、線素の上端部の右側（Ｔｏｐ  Ｒｉｇｈｔ）から抽出された端点であることを示している（図２９（ａ）参照）。また、＿ＬＴは、線素の左端部の上側（Ｌｅｆｔ  Ｔｏｐ）から抽出された端点であることを示している（図２９（ｂ）参照）。
【０１２０】
また、＿ＲＢは、線素の右端部の下側（Ｒｉｇｈｔ  Ｂｏｔｔｏｍ）から抽出された端点であることを示している（図２９（ｃ）参照）。また、＿ＢＲは、線素の下端部の右側（Ｂｏｔｔｏｍ  Ｒｉｇｈｔ）から抽出された端点であることを示している（図２９（ｄ）参照）。
【０１２１】
また、＿ＬＢは、線素の左端部の下側（Ｌｅｆｔ  Ｂｏｔｔｏｍ）から抽出された端点であることを示している（図２９（ｂ）参照）。また、＿ＢＬは、線素の下端部の左側（Ｂｏｔｔｏｍ  Ｌｅｆｔ）から抽出された端点であることを示している（図２９（ｄ）参照）。
【０１２２】
また、＿ＲＴは、線素の上端部の右側（Ｒｉｇｈｔ  Ｔｏｐ）から抽出された端点であることを示している（図２９（ｃ）参照）。＿ＴＬは、線素の左端部の上側（Ｔｏｐ  Ｌｅｆｔ）から抽出された端点であることを示している（図２９（ａ）参照）。
【０１２３】
線素の端点ではない部分（以降、非端点部という）から抽出される輪郭点には、この「＿ｚｚｚ」部のない輪郭点情報が付与され、これらの例を図３０（ａ）〜（ｄ）に示している。
【０１２４】
但し、注目画素が黒画素の場合で、近傍の画素の状態によって、図１２〜図２７に各状態における輪郭点とその付与情報を抽出する際の実際の処理では、図２８の輪郭点情報は「値」の欄の対応する位置に表記される数値で抽出されるように構成するものとする。
【０１２５】
図３０において、斜めのチェッカーパターンで示される○印は黒画素を示し、点線の○印は白画を示している。
【０１２６】
これら輪郭ベクトルの始点・終点位置は、主走査方向及び副走査方向共に、画素と画素の中間の位置にあるものとする。また、主走査方向及び副走査方向共に、画素のある位置は正整数で示され、画素位置を２次元の座標で表現をする。
【０１２７】
但し、ここでは小数の表現を避けるために便宜上、以降の画素位置を偶数のみで表現することにし、始点、終点の位置を奇数の整数で表現することにする。即ち、ｍ画素×ｎ画素の画像は、２ｍ×２ｎの正の偶数（整数）の座標表現で表わすものとする。このように、主走査方向をｘ座標、副走査方向をｙ座標とした２次元座標であらわすとき、これ以降、２値画像は、それぞれがｍ画素よりなるｎラスタで構成されるｍ×ｎ画素（ｍ，ｎは正の整数）で表現するものとする。また、第ｊ番目のラスタの第ｉ番目の画素位置を（２ｉ，２ｊ）（ｉ，ｉは正の整数で、ｉ≦ｍ，ｊ≦ｎ）で表現するものとする。また、主走査方向（ｘ座標）は左から右に向かう方向が正の方向であり、副走査方向（ｙ座標）は上から下に向かう向きが正の方向である。
【０１２８】
以下、端点間毎輪郭（周回）ベクトル抽出部３１１０の一連の動作を、図３１Ａ〜図３３に従って説明を加える。
【０１２９】
実施形態１は、特許文献４に比し、４−連結に細線化された２値画像を端点、交点を検出しつつ、端点や交点をつなぐ互いに独立した線素や閉曲線の集まりとして、それぞれの線成分に対応する独立したベクトル群を抽出する。加えて、各輪郭点に輪郭点情報をも付与して抽出する点で、その機能は大きく異なる。また、図１１〜図２７に示したように、処理対象として用いる３×３の画素パターン群も大きく異なる。但し、３×３の９画素で構成される走査窓を用いて、画像をラスタ走査し、逐次３×３の画素パターンとして注目画素とその８近傍の画素の状態を判断しながら、輪郭点を抽出していく点は、特許文献４と共通する。相違点としては、各３×３の画素パターンに応じた輪郭点と輪郭点情報を抽出する点である。
【０１３０】
図３１Ａは本発明の実施形態１の端点間輪郭（周回）ベクトル抽出処理全体を示すフローチャートである。
【０１３１】
尚、この処理は、画像処理装置のＣＰＵ５１９の制御によって実現される。また、本処理は、特許文献４の図２２で示されるフローチャートに準ずるものである。しかしながら、特許文献４では、輪郭点情報の概念はない。そのため、実施形態１では、この輪郭点情報を、抽出した輪郭点に付加された属性情報として考える。また、特許文献４で抽出した輪郭点の接続情報の処理をする際にも、それぞれの輪郭点の輪郭点情報も各輪郭点の情報の一部として付随したものとして一貫して扱うようにする。
【０１３２】
これは、各輪郭点データのデータ形式の内部にと輪郭点の座標値のみならず、その、輪郭点データをもその一部として取り込んだデータ構造として扱えば、容易に実現できるので、詳述はしない。
【０１３３】
まず、ステップＳ１で、ベクトル列抽出処理を実行する。これは、２値画像データからベクトル列を各輪郭点に付随させて輪郭点情報込みで抽出する。そして、各ベクトルの始点の座標及びこのベクトルに流入してくる（このベクトルの始点の座標が終点となっている）ベクトル、流出してゆく（このベクトルの終点の座標が始点となっている）ベクトルを、図３１Ｂ及び図３１Ｃに示すテーブル形式で出力する。
【０１３４】
次に、ステップＳ２で、図３１Ｂ及び図３１Ｃに示すテーブルから流入及び流出ベクトルの項目番号を辿る。これにより、図３２に示すような画像中の総輪郭線数、各輪郭線毎の輪郭線の総点数、輪郭線中の各点のｘ座標、ｙ座標と各点の輪郭点情報の組み合わせを記憶したベクトル列テーブル３２０１を作成する。
【０１３５】
次に、ステップＳ３で、ディスクＩ／Ｏ５２１を介して、このベクトル列テーブル３２０１の情報をファイル形式で、ハードディスク装置５２２に記憶して、一連の動作を終了する。つまり、このファイルによって、画像中の領域別のベクトルデータが構成される。
【０１３６】
次に、図３１ＡのステップＳ１のベクトル列抽出処理の詳細について、図３３を用いて説明する。
【０１３７】
図３３は本発明の実施形態１の図３１ＡのステップＳ１のベクトル列抽出処理の詳細を示すフローチャートである。
【０１３８】
まず、ステップＳ１１０で、注目画素が白画素か黒画素かを判定する。白画素の場合（ステップＳ１１０でＹＥＳ）、ステップＳ１３０へ進む。一方、黒画素の場合（ステップＳ１１０でＮＯ）、ステップＳ１２０へ進む。
【０１３９】
ステップＳ１２０で、注目画素の周囲８画素の状態を見て、その状態に応じた処理を実行する。
【０１４０】
ステップＳ１３０で、画素位置を更新する。そして、ステップＳ１４０で、最終画素の処理が終了したか否かを判定する。終了していない場合（ステップＳ１４０でＮＯ）、ステップＳ１１０へ戻り、次の注目画素も同様に処理を行う。一方、終了している場合（ステップＳ１４０でＹＥＳ）、元のルーチンにリターンする。
【０１４１】
ここで、ステップＳ１のベクトル列抽出処理の具体例として、図１２に示す状態（ケース（ｃａｓｅ）０）を処理する場合を説明する。ここで、注目画素（図１２の中心画素）の座標は、（２ｉ，２ｊ）であるとする。
【０１４２】
まず、（２ｉ−１，２ｊ−１）を水平ベクトルの始点として登録する。即ち、図３１Ｂの水平ベクトルカウンタ１２３０が示す水平ベクトル始点のｘ座標テーブルの欄（図３１Ｂの１２３１）に（２ｉ−１）を格納し、同じく水平ベクトル始点ｙ座標テーブルの欄（図３１Ｂの１２３２）に（２ｊ−１）を格納する。そして、この水平ベクトルに流入してくる元の垂直ベクトルは、図３１Ｃの垂直ベクトルカウンタ１２４０が、この時点で指している垂直ベクトルの始点座標テーブル内の位置の次の位置に格納されるベクトルである。また、この水平ベクトルが流出していく先の垂直ベクトルは、この時点で垂直ベクトルカウンタ１２４０が指している垂直ベクトルの始点座標テーブルの位置にある。
【０１４３】
即ち、図３１Ｂに示す水平ベクトルの流入ベクトル項目番号の欄において、水平ベクトルカウンタ１２３０が示す位置（図３１Ｂの例では、１２３３）に、垂直ベクトルカウンタ１２４０の値に１加えた値を格納する。また、水平ベクトルの流出ベクトル項目番号の欄には、水平ベクトルカウンタ１２３０が示す位置（図３１Ｂの例では、１２３４）に、垂直ベクトルカウンタ１２４０の値を格納する。
【０１４４】
次に、同様に、（２ｉ＋１，２ｊ−１）を垂直ベクトルの始点として登録する。この垂直ベクトルに流入する水平ベクトルは、１回目に登録した水平ベクトルであると登録する。また、この垂直ベクトルが流出する水平ベクトルは、水平ベクトルの始点座標テーブルの１回目に登録された水平ベクトルの次の位置に格納される水平ベクトルであると登録する。
【０１４５】
即ち、図３１Ｃを参照して説明すると、欄２４１には（２ｉ＋１）が、欄２４２には（２ｉ−１）が、更に、欄２４３には、この時の水平ベクトルカウンタ１２３０の値が、欄２４３にはこの時の水平ベクトルカウンタ１２３０の値に＋１した値が格納される。
【０１４６】
次に、水平ベクトルカウンタ１２３０の内容を＋１する。次に、（２ｉ＋１，２ｊ＋１）を水平ベクトルの始点座標として登録し、この水平ベクトルに流入する垂直ベクトルは、２回目に登録したベクトルであると登録する。また、この水平ベクトルが流出する垂直ベクトルは、２回目に登録された垂直ベクトルの始点座標テーブル内における次の位置に格納される垂直ベクトルであると登録する。
【０１４７】
次に、垂直ベクトルカウンタ１２４０の内容を＋１する。次に、（２ｉ−１，２ｊ＋１）を垂直ベクトルの始点座標として登録し、この垂直ベクトルに流入する水平ベクトルは、３回目に登録された水平ベクトルであると登録する。また、この垂直ベクトルが流出する水平ベクトルは、１回目で登録した水平ベクトルであると登録する。こうして最後に、水平ベクトルカウンタ１２３０及び垂直ベクトルカウンタ１２４０を共に＋１して処理を終了する。
【０１４８】
次に、図３３のステップＳ１２０の処理の詳細について、図３４を用いて説明する。
【０１４９】
図３４は本発明の実施形態１のステップＳ１２０の処理の詳細を示すフローチャートである。
【０１５０】
ステップＳ２１０で、ＣＰＵ５１９のレジスタを「０」にクリアする。次に、ステップＳ２２で、図１１の「０」で示された位置の画素の状態（以下、ｆ（０）で表現する）が黒画素（以降、「１」で表わす）であるか否かを判定する。つまり、ｆ（０）＝１であるか否かを判定する。ｆ（０）＝１である場合（ステップＳ２２０でＹＥＳ）、ステップＳ２３０へ進み、レジスタの内容に１を加える。一方、ｆ（０）＝０、即ち、白画素（以降、「０」で表わす）である場合、ステップＳ２４０へ進む。
【０１５１】
次に、ステップＳ２４０で、図１１の「１」の位置の画素の状態が黒画素であるか否かを判定する。つまり、ｆ（１）＝１であるか否かを判定する。ｆ（１）＝１である場合（ステップＳ２４０でＹＥＳ）、ステップＳ２５０へ進み、レジスタの内容に２を加える。一方、ｆ（１）＝０である場合（ステップＳ２４０でＮＯ）、ステップＳ２６０に進む。
【０１５２】
次に、ステップＳ２６０で、図１１の「２」の位置の画素の状態が黒画素であるか否かを判定する。つまり、ｆ（２）＝１であるか否かを判定する。ｆ（２）＝１である場合（ステップＳ２６０でＹＥＳ）、ステップＳ２７０へ進み、レジスタの内容に４を加える。一方、ｆ（２）＝０である場合（ステップＳ２６０でＮＯ）、ステップＳ２８０に進む。
【０１５３】
次に、ステップＳ２８０で、図１１の「３」の位置の画素の状態が黒画素であるか否かを判定する。つまり、ｆ（３）＝１であるか否かを判定する。ｆ（３）＝１である場合（ステップＳ２８０でＹＥＳ）、ステップＳ２９０へ進み、レジスタの内容に８を加える。一方、ｆ（３）＝０である場合（ステップＳ２８０でＮＯ）、ステップＳ３００に進む。
【０１５４】
ステップＳ３００で、レジスタの保持する値（処理番号）に応じた処理を実行する。
【０１５５】
これにより、レジスタの内容は、図１１に示した「０」、「１」、「２」、「３」の画素位置の各画素の状態に応じて、０〜１５の値を取り得る。これらは、その値に応じてそれぞれ図１２の（ケース（ｃａｓｅ）０）〜図２７（ケース１５）に示されている。
【０１５６】
即ち、ステップＳ３００で、図１２〜図２７に示されるように定義された輪郭点とその輪郭点情報とをそれぞれのケースに応じて抽出する。
【０１５７】
このように、端点間毎輪郭（周回）ベクトル抽出部３１１０は、１回のラスタ走査を行なう。これにより、入力される４−連結に細線化された２値画像（線図形）から、それらを構成する端点や交点間をつなぐ独立した線や閉曲線毎に対応するベクトル列の集まり（「端点間毎線素粗輪郭ベクトル」）とその輪郭点情報を抽出し、その処理結果を出力する。
【０１５８】
これらは、例えば、図３２に示す形式として出力される。同図における第一輪郭や第二輪郭、第ａ輪郭といったまとまりとして各線素から抽出されたベクトル列を示し、それらの各輪郭点毎に輪郭点情報が付与された形式となっている。
【０１５９】
ここで、図３５に線図形の入力例と、これから抽出される端点間毎輪郭（周回）ベクトル、即ち、端点間毎線素粗輪郭ベクトル（太めに表現されたベクトル列）と輪郭点情報を示す。
【０１６０】
次に、端点間毎線芯（周回）ベクトル生成部３１２０の動作を、図３６を用いて説明する。
【０１６１】
図３６は本発明の実施形態１の端点間毎線芯（周回）ベクトル生成部の動作を示すフローチャートである。
【０１６２】
尚、この処理は、画像処理装置のＣＰＵ５１９の制御によって実現される。
【０１６３】
まず、ステップＳ１０００で、端点間毎輪郭（周回）ベクトル抽出部３１１０より端点間毎輪郭（周回）ベクトルを入力する。ここで、端点間毎輪郭（周回）ベクトルは、線図形の端点（交点）位置に対応する部分から抽出されたものか否か等を表す情報（付与情報）を含む、端点や交点間をつなぐ独立した線や閉曲線毎のそれぞれに対応したベクトル列の集まりである。このベクトル列の集まりは、端点間毎線素粗輪郭ベクトルである。
【０１６４】
次に、ステップＳ１１００で、ステップＳ１０００で入力した図３２に示す形式の端点間毎輪郭（周回）ベクトル群から、その中に含まれる１つのベクトル列（図３２の第ｋ輪郭（１≦ｋ≦ａ））を当面の処理対象として入力する。ここでは、ステップＳ１１００が実行されるたびに順次昇順に定める。
【０１６５】
次に、ステップＳ１２００で、ステップＳ１１００で定めたベクトル列（総点数ｐとする）の中の１つのベクトルの輪郭点（第ｑ点（１≦ｑ≦ｐ））を当面の処理対象としてｍ１つのベクトルを入力する。ここでは、ステップＳ１２００が実行されるたびに順次昇順に定める。
【０１６６】
次に、ステップＳ１３００で、ステップＳ１２００で定めた輪郭点の輪郭点情報を参照して、この輪郭点を終点とするベクトルか、もしくは、この輪郭点を始点とするベクトルのいずれかが左向き（ＬＥＦＴ）か否かを判定する。左向きである場合（ステップＳ１３００でＹＥＳ）、ステップＳ１４００に進む。一方、左向きではない場合（ステップＳ１３００でＮＯ）、ステップＳ１５００に進む。
【０１６７】
ステップＳ１４００で、輪郭点（座標値（ｘ，ｙ）＝（２＊ｉ，２＊ｊ）とする）のｙ座標値を１減じて（副走査方向に半画素分原点側にずらして）、つまり、ｙ＝２＊ｉ−１を実行して、ステップＳ１６００に進む。
【０１６８】
ステップＳ１５００で、輪郭点のｙ座標値を１増やして（副走査方向に半画素分原点とは反対側にずらして）、つまり、ｙ＝２＊ｉ＋１を実行して、ステップＳ１６００に進む。
【０１６９】
ステップＳ１６００で、輪郭点の輪郭点情報を参照して、この輪郭点を終点とするベクトルか、もしくは、この輪郭点を始点とするベクトルのいずれかが上向き（ＵＰ）か否かを判定する。上向きである場合（ステップＳ１６００でＹＥＳ）、ステップＳ１７００に進む。一方、上向きでない場合（ステップＳ１６００でＮＯ）、ステップＳ１８００に進む。
【０１７０】
ステップＳ１７００で、輪郭点のｘ座標値を１増やして（主走査方向に半画素分原点とは反対側にずらして）、つまり、ｘ＝２＊ｉ＋１を実行して、ステップＳ１９００に進む。
【０１７１】
ステップＳ１８００で、輪郭点のｘ座標値を１減じて（主走査方向に半画素分原点側にずらして）、つまり、ｘ＝２＊ｉ−１を実行して、ステップＳ１９００に進む。
【０１７２】
ステップＳ１９００で、ステップＳ１１００で定めたベクトル列内の全ての輪郭点に対する処理が終了したか否かを判定する。終了している場合（ステップＳ１９００でＮＯ）、ステップＳ２０００へ進む。一方、終了していない場合（ステップＳ１９００でＹＥＳ）、同ベクトル列内の次の輪郭点に、ステップＳ１３００からステップＳ１９００までの処理を施すべくステップＳ１２００にもどる。
【０１７３】
ステップＳ２０００で、ステップＳ１０００で入力した端点間毎線素粗輪郭ベクトル中の全てのベクトル列の処理が終了したか否かを判定する。終了している場合（ステップＳ１９００でＹＥＳ）、ステップＳ２１００へ進む。一方、終了していない場合（ステップＳ１９００でＮＯ）、次のベクトル列に対して、ステップＳ１２００からステップＳ２０００までの処理を施すべくステップＳ１１００へ戻る。
【０１７４】
ステップＳ２１００で、ステップＳ１０００で入力した端点間毎線素粗輪郭ベクトルに対する処理結果を出力する。
【０１７５】
尚、ステップＳ１３００やステップＳ１６００での判定は、上述の図２８における「値」欄の数値を輪郭点情報としている。そのため、これらの数値を２進数で表現した際のＬＳＢをｂｉｔ０、ＭＳＢをｂｉｔ７とすると、ステップ１３００ではｂｉｔ２（図２８では「右向（０）左向（１）」欄）を調べて、０なら右向き、１なら左向きと判定することができる。ステップＳ１６００では、ｂｉｔ３（図２８では「上向（０）下向（１）」欄）を調べて、０なら上向き、１なら下向きと判定することができる。
【０１７６】
このようにして、端点間毎輪郭（周回）ベクトル抽出部３１１０から端点間毎輪郭（周回）ベクトルを入力する。そして、それに含まれる付与情報を利用して、一画素幅の幅を持った輪郭（周回）ベクトルの各ベクトルの位置を、それぞれ半画素分ずつ相応する方向へ予め定める規則により微調整する。これにより、幅０に線芯化された端点間毎線芯（周回）化済ベクトルとする。これらは、端点間毎線芯（周回）化済ベクトルもまた、例えば、図３２に示す形式として表現でき、実施形態１では、この形式で出力されるものとする。
【０１７７】
ここで、上述の図３５に、端点間毎線素粗輪郭ベクトル（太めに表現されたベクトル列）と輪郭点情報から幅０に線芯化された端点間毎線芯（周回）化済ベクトル（入力２値画像の画素上の位置に細めに描かれたベクトル列）の例を示す。
【０１７８】
次に、端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０の動作を説明する。
【０１７９】
端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０は、次工程である端点間毎補助ベクトル入り（周回）ベクトル平滑部３２２０により平滑化（関数近似）処理される際に、補助ベクトルを挿入する。具体的には、端点部分に相当するベクトルが、他のベクトルと統合されて端点位置が不明にならぬように、その端点部分に相当する部分が端点として保存される（ベジェ曲線のアンカーポイントとなる）ように補助ベクトルを挿入する。
【０１８０】
加えて、次々工程である端点間毎平滑化済ベクトル同定（非周回化）部３２３０で、端点間毎補助ベクトル入り（周回）ベクトル平滑部３２２０から得る平滑化（関数近似）済端点間毎補助ベクトル入り（周回）ベクトルから、始端点・終端点情報をも生成する。具体的には、各平滑化済の（周回）ベクトル毎にそれぞれの始端点と終端点となるベクトルを同定して、始端点と終端点の間のみの部分の非周回型のベクトル列を生成するために用いられる、各平滑化済の（周回）ベクトル毎の始端点・終端点情報をも生成する。
【０１８１】
実施形態１では、端点間毎補助ベクトル入り（周回）ベクトル平滑部３２２０は、特許文献５に開示される方法及び装置で構成されるものとする。このように構成することで、これまでの、必ずしも細線化されていない２値画像の輪郭（アウトライン）ベクトル用の平滑化手段を用いて、太さを意識せずに、細線のみで描かれている線画としてのベクトルの平滑化まで構成することが可能となる。
【０１８２】
特許文献５によれば、ベクトル平滑化（関数近似）の流れは、以下の如きである。まず、粗輪郭データと称して、２値のラスタ画像のデータより抽出された、水平ベクトル、垂直ベクトルが交互に並ぶ構成となる輪郭データを入力とする。そして、粗輪郭上の線分より接線線分を抽出する。抽出された接線線分よりアンカーポイントを抽出し、抽出されたアンカーポイント間の線分により構成されるグループを２次もしくは３次ベジェ曲線、及び直線をあてはめ、あるいは、ベジェ曲線近似を行い、３次もしくは２次のベジェ曲線により置き換える。
【０１８３】
ここで、アンカーポイントとして定めた点をもとに、アンカーポイント間にある輪郭点を１つのグループとして関数近似してい方法は、関数近似法としての基本的な手法である。また、アンカーポイントは、その間が、２次もしくは３次ベジェ曲線及び直線のいずれに関数近似されたとしても、アンカーポイント自体の位置（座標値）は、変化しないという特徴をもつ。
【０１８４】
そこで、端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０では、端点間毎線芯（周回）化済ベクトルの端点のそれぞれを、一方を始端点と他方を終端点とする。また、それらがともにアンカーポイントとなるように始端点と終端点間に補助ベクトル（補助輪郭点）を挿入していく処理をする。
【０１８５】
特許文献５によれば、接線線分とするベクトルの抽出条件として、
（１）注目するベクトルの前後のベクトルの向きが互いに逆向きであるもの
（２）抽出済みの主接線線分に隣接し、ベクトルの長さＬ１がＬ１≧θ4を満たすもの
（３）ベクトルの長さＬ２がＬ２≧θ5を満たすもの
等の条件が開示されている。
【０１８６】
また、アンカーポイントの抽出に関して、抽出された接線線分上に新たな点を抽出し、それをアンカーポイントとする。アンカーポイントは、接線線分の端２つに対しそれぞれ抽出される。よって、１つの接線線分に対し２つのアンカーポイントが抽出されるが、その２つのアンカーポイントが一致した場合には、１つのアンカーポイントのみ抽出されることになる。
【０１８７】
２つのアンカーポイントが抽出される場合は、アンカーポイントに挟まれた部位は自動的にオブジェクト上の直線となる。接線線分上の１つの端点に対するアンカーポイント抽出方法としては、注目する接線線分であるベクトルに隣接するベクトルが接線線分であれば、この隣接する側の端点をアンカーポイントとする等が開示されている。
【０１８８】
そこで、端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０は、点間毎線芯（周回）化済ベクトルの端点のそれぞれを、一方を始端点と他方を終端点とし、かつ、それらがともにアンカーポイントとなるように、補助点を挿入する。
【０１８９】
ここで、図３７（ａ）を用いて、始端点としたい端点Ｐ0の直前に挿入する補助輪郭点Ｐ-1の挿入方法を説明する。
【０１９０】
補助輪郭点Ｐ-1をこれを始点とする補助ベクトルＶ-1が、始端点としたい端点Ｐ0の直後の輪郭点Ｐ１を始点とするベクトルＶ1と逆向きになるように、補助輪郭点Ｐ-1を定める。このようにすれば、上述の特許文献５の接線線分の抽出条件の（１）から、ベクトルＶ0が接線線分となる。
【０１９１】
また、補助輪郭点Ｐ-1をこれを始点とする補助ベクトルＶ-1が上述の特許文献５の接線線分の抽出条件の（３）を満たすように十分な長さを持つようにする。このようにすれば、補助ベクトルＶ-1もまた接線線分となる。つまり、補助ベクトルＶ-1とベクトルＶ0とが共に接線線分となる。これにより、上述のアンカーポイント抽出方法の「注目する接線線分であるベクトルに隣接するベクトルが接線線分であれば、この隣接する側の端点をアンカーポイントとする」という条件から、始端点としたい端点Ｐ0をアンカーポイントにできる。
【０１９２】
次に、図３７（ｂ）を用いて、終端点としたい端点Ｐnの直後に挿入する補助輪郭点Ｐn+1の挿入方法を説明する。
【０１９３】
補助輪郭点Ｐn+1をこれを終点とする補助ベクトルＶnが、終端点としたい端点Ｐnの直前の輪郭点Ｐn-1を終点とするベクトルＶn-2と逆向きになるように、補助輪郭点Ｐn+1を定める。このようにすれば、上述の特許文献５の接線線分の抽出条件の（１）から、ベクトルＶn-1が接線線分となる。また、補助輪郭点Ｐn+1をこれを終点とする補助ベクトルＶnが上述の特許文献５の接線線分の抽出条件の（３）を満たすように十分な長さを持つようにする。
【０１９４】
このようにすれば、補助ベクトルＶnもまた接線線分となる。つまり、補助ベクトルＶn-1とベクトルＶnとが共に接線線分となる。これにより、上述のアンカーポイント抽出方法の「注目する接線線分であるベクトルに隣接するベクトルが接線線分であれば、この隣接する側の端点をアンカーポイントとする」という条件から、終端点としたい端点Ｐnをアンカーポイントにできる。
【０１９５】
このように、始端点と終端点がアンカーポイントになるように、それぞれ、始端点の直前への挿入点と終端点の直後への挿入点を定める。その後、これらの挿入点が水平ベクトルと垂直ベクトルの連続で連結され、始端点から終端点までの本来の輪郭点列と終端点の直後から始端点の直前までの挿入点をへて再び始端点につながる一連の輪郭点列を生成する。そして、この一連の輪郭点列の中で、どれが、始端点と終端点であるかを同定するための情報とを加えた始端点・終端点情報を生成する。
【０１９６】
実施形態１では、輪郭点列中の始端点の座標値と終端点の座標値そのものを改めて別途生成することで、始端点・終端点情報とする。
【０１９７】
次に、端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０の動作について、図３８を用いて説明する。
【０１９８】
図３８は本発明の実施形態１の端点間毎補助ベクトル入り（周回）ベクトル生成部の動作を示すフローチャートである。
【０１９９】
尚、この処理は、画像処理装置のＣＰＵ５１９の制御によって実現される。
【０２００】
まず、ステップＳ３０００で、端点間毎線芯（周回）ベクトル生成部３１２０から幅０に線芯化された端点間毎線芯（周回）化済ベクトルを入力する。
【０２０１】
次に、ステップＳ３１００で、ステップＳ３０００で入力した図３２に示す形式の端点間毎線芯（周回）化済ベクトルから、その中に含まれる１つのベクトル列（図３２の第ｋ輪郭（１≦ｋ≦ａ））を当面の処理対象として順に定める。
【０２０２】
次に、ステップＳ３２００で、ステップＳ３１００で定めたベクトル列（総点数ｐとする）の中の１つのベクトルの輪郭点（第ｑ点（１≦ｑ≦ｐ））として、１つのベクトルを入力する。そして、ステップＳ３３００で、始端点が見つかるまでの間、ステップＳ３２００を実行するたびに、第１点から第ｐ点までを昇順に順次１点ずつ当面の処理対象として定める。
【０２０３】
次に、ステップＳ３３００で、ステップＳ３２００で定めた輪郭点の輪郭点情報を参照して、この輪郭点が始端点とすべきベクトルであるか否かを判定する。この輪郭点が始端点とすべきベクトルである場合（ステップＳ３３００でＹＥＳ）、ステップＳ３６００に進む。一方、この輪郭点が始端点とすべきベクトルでない場合（ステップＳ３３００でＹＥＳ）、ステップＳ３４００に進む。
【０２０４】
ここで、当該輪郭点が始端点とすべきベクトルであるか否かは、その輪郭点の輪郭点情報を参照して行う。具体的には、図２８中のＵＰ＿ＲＩＧＨＴ＿ＬＴ（０３Ｈ）、ＤＯＷＮ＿ＬＥＦＴ＿ＲＢ（０ＦＨ）、ＬＥＦＴ＿ＵＰ＿ＢＬ（１７Ｈ）、ＲＩＧＨＴ＿ＤＯＷＮ＿ＴＲ（１ＢＨ）のいずれかであるか否かをもってその判定を行う。これらは、図２８の「値」の数値のｂｉｔ１とｂｉｔ０が共に１であるか否かを調べることで実現することもできる。
【０２０５】
ステップＳ３４００で、ステップＳ３１００で入力した端点間毎線芯（周回）化済ベクトルの中に含まれる１つのベクトル列中の全てのベクトルの処理が終了したか否かを判定する。終了していない場合（ステップＳ３４００でＮＯ）、当該ベクトル列中の次のベクトルに対してステップＳ３２００の判定を施すべくステップＳ３２００へ戻る。一方、終了している場合（ステップＳ３４００でＹＥＳ）、ステップＳ３１００で入力したベクトル列中には、始端点候補が存在しなかった場合であり、ステップＳ３５００へ進む。
【０２０６】
ステップＳ３５００で、当該ベクトル列は端点のない閉ループである旨を示す閉ループマーカを該ベクトル列に対して付与した上で、それに加えて、該ベクトル列中の一連の各ベクトルをそのまま出力する。
【０２０７】
この時のデータ形式を、図３９（ａ）に示す。同図において、対象としたベクトル列は第ｓ番目である場合で、そのベクトル列中にはｖ個のベクトルが含まれている場合の例である。尚、閉ループマーカとしては、端点座標としては、本来ありえない（−１，−１）の座標値を２点分、始端点・終端点情報として付与して出力している。ステップＳ３５００の処理を終了すると、ステップＳ４２００へ進む。
【０２０８】
一方、ステップＳ３６００で、輪郭点を始端点として登録し、かつ、その輪郭点を始端点〜終端点間の１ベクトルとして出力して、ステップＳ３７００へ進む。
【０２０９】
ステップＳ３７００で、ステップＳ３２００と同様に、ステップＳ３１００で定めたベクトル列（総点数ｐとする）の中の１つのベクトルの輪郭点（第ｑ点（１≦ｑ≦ｐ））とする。そして、ステップＳ３８００で終端点が見つかるまでの間、ステップＳ３７００を実行するたびにステップＳ３２００で定められた輪郭点以降の点から第ｐ点に向けて昇順に順次１点ずつ当面の処理対象として定め、ステップＳ３８００に進む。
【０２１０】
次に、ステップＳ３８００で、ステップＳ３７００で定めた輪郭点の輪郭点情報を参照して、この輪郭点が終端点とすべきベクトルであるか否かを判定する。この輪郭点が終端点とすべきベクトルである場合（ステップＳ３８００でＹＥＳ）、ステップＳ４０００に進む。一方、この輪郭点が終端点とすべきベクトルでない場合（ステップＳ３８００でＮＯ）、ステップＳ３９００に進む。
【０２１１】
ここで、当該輪郭点が終端点とすべきベクトルか否かは、その輪郭点の輪郭点情報を参照して行う。具体的には、、図２８中のＵＰ＿ＲＩＧＨＴ＿ＴＬ（０１Ｈ）、ＤＯＷＮ＿ＬＥＦＴ＿ＢＲ（０ＤＨ）、ＬＥＦＴ＿ＵＰ＿ＬＢ（１５Ｈ）、ＲＩＧＨＴ＿ＤＯＷＮ＿ＲＴ（１９Ｈ）のいずれかであるか否かをもってその判定を行う。これらは、図２８の「値」の数値のｂｉｔ１とｂｉｔ０がそれぞれ０と１であるか否かを調べることで実現することもできる。
【０２１２】
ステップＳ３９００で、輪郭点を始端点〜終端点間の１ベクトルとして出力して、ステップＳ３７００へ戻る。
【０２１３】
ステップＳ４０００で、輪郭点を終端点として登録し、かつ、その輪郭点を始端点〜終端点間の１ベクトルとして出力して、ステップＳ４１００へ進む。
【０２１４】
ステップＳ４１００で、当該ベクトル列の始端点と終端点の両方が定まり、かつ、始端点〜終端点間の一連の各ベクトルも出力された状態となっている。ここでは、終端点〜始端点の間に挿入される一連の補助ベクトルを生成する。尚、ステップＳ４１００の内容の詳細は、図４０のフローチャートと図４１及び図４２を用いて追ってさらに説明を加える。ステップＳ４１００の処理を終了すると、ステップＳ４２００へ進む。
【０２１５】
ステップＳ４２００で、ステップＳ３０００で入力した端点間毎線芯（周回）化済ベクトル中の全てのベクトル列の処理が終了したか否かを判定する。終了している場合（ステップＳ４２００でＹＥＳ）、ステップＳ４３００へ進む。一方、終了していない場合（ステップＳ４２００でＮＯ）、次のベクトル列に対してステップＳ３２００からステップＳ４２００までの処理を施すべくステップＳ３１００へ戻る。
【０２１６】
ステップＳ４３００で、ステップＳ３０００で入力した端点間毎線芯（周回）化済ベクトルに対する処理結果を出力する。
【０２１７】
図３９（ｂ）に、対象としたベクトル列に、始端点・終端点の両方が定まり、かつ、始端点〜終端点間の一連の各ベクトルと終端点〜始端点の間に挿入される一連の補助ベクトルを生成した場合に出力されるそのベクトル列に対する出力例を示す。
【０２１８】
同図において、対象としたベクトル列は第ｕ番目である場合で、そのベクトル列中には始端点と終端点自身も含めて始端点〜終端点間の一連の各ベクトルがｔ個あり、かつ、終端点〜始端点の間に挿入される一連の補助ベクトルがｒ個ある場合の例である。ここでは、第１点は始端点そのものであり、第ｔ点は終端点そのものとなっている。
【０２１９】
次に、図３８のステップＳ４１００の処理の詳細について、図４０を用いて説明する。
【０２２０】
図４０は本発明の実施形態１のステップＳ４１００の処理の詳細を示すフローチャートである。ここでは、当該ベクトル列の始端点と終端点の両方が定まり、かつ、始端点〜終端点間の一連の各ベクトルも出力された状態となっており、終端点〜始端点の間に挿入される一連の補助ベクトルを生成することが、ステップＳ４１００の処理内容である。
【０２２１】
まず、ステップＳ４１１０で、図３７（ａ）を用いて説明したように、始端点としたい端点Ｐ0の直前に挿入する補助輪郭点Ｐ-1の座標値を算出する。即ち、補助輪郭点Ｐ-1をこれを始点とする補助ベクトルＶ-1が、始端点としたい端点Ｐ0の直後の輪郭点Ｐ１を始点とするベクトルＶ1と逆向きになるように定める。また、補助輪郭点Ｐ-1をこれを始点とする補助ベクトルＶ-1が、上述の特許文献５の接線線分の抽出条件の（３）を満たすように十分な長さ（例えば、１０画素長以上）を持つように補助輪郭点Ｐ-1を定める。
【０２２２】
次に、ステップＳ４１２０で、図３７（ｂ）を用いて説明したように、終端点としたい端点Ｐnの直後に挿入する補助輪郭点Ｐn+1の座標値を算出する。即ち、補助輪郭点Ｐn+1をこれを終点とする補助ベクトルＶnが、終端点としたい端点Ｐnの直前の輪郭点Ｐn-1を終点とするベクトルＶn-2と逆向きになるように定める。また、補助輪郭点Ｐn+1をこれを終点とする補助ベクトルＶnが、上述の特許文献５の接線線分の抽出条件の（３）を満たすように十分な長さ（例えば、１０画素長以上）を持つように補助輪郭点Ｐn+1を定める。
【０２２３】
ステップＳ４１３０で、算出した補助輪郭点Ｐ-1を始点とする補助ベクトルＶ-1と、算出した補助輪郭点Ｐn+1を終点とする補助ベクトルＶnが、共に水平ベクトルであるか否かを判定する。あるいは、共に垂直ベクトルであるか否かを判定する。いずれかの条件を満足する場合（ステップＳ４１３０でＹＥＳ）、ステップＳ４１４０に進む。一方、いずれかの条件も満足しない場合（ステップＳ４１３０でＮＯ）、ステップＳ４１６０に進む。
【０２２４】
ステップＳ４１４０での処理では、Ｖ-1とＶnが、共に水平ベクトルあるいは共に垂直ベクトルである場合であり、この場合の例を図４１に示す。ステップＳ４１４０では、終端点としたい端点Ｐnから２点目の補助輪郭点Ｐn+2を算出する。具体的には、ＰnからみてＰ-1から遠くなる方向に、上述の特許文献５の接線線分の抽出条件の（３）を満たすように十分な長さ（例えば、１０画素長以上）を持つように補助輪郭点Ｐn+2を定める。
【０２２５】
ステップＳ４１５０の処理も、ステップＳ４１４０と同様に、Ｖ-1とＶnが、共に水平ベクトルあるいは共に垂直ベクトルである場合である。ステップＳ４１５０では、終端点としたい端点Ｐnから３点目の補助輪郭点Ｐn+3を算出する。具体的には、水平ベクトルと垂直ベクトルが交互につながる形式で、Ｐn+2とＰ-1を連結する様に、端点Ｐnの３点後の補助輪郭点である点Ｐn+3を定める。ここで、補助輪郭点Ｐn+3は、始端点としたい端点Ｐ0の２点前の補助輪郭点でもある。そして、一連の処理を終了すると、図３８のフローチャートのステップＳ４２００に戻る。
【０２２６】
一方、ステップＳ４１６０での処理では、Ｖ-1とＶnの、どちらか一方が水平ベクトル、他方は垂直ベクトルである場合であり、この場合の例を図４２に示す。ステップＳ４１６０では、終端点としたい端点Ｐnから２点目の補助輪郭点Ｐn+2を算出する。具体的には、Ｐn+1からみてＰ-1から遠くなる方向に、特許文献５の接線線分の抽出条件の（３）を満たすように十分な長さ（例えば、１０画素長以上）を持つように補助輪郭点Ｐn+2定める。
【０２２７】
ステップＳ４１７０の処理も、ステップＳ４１６０と同様に、Ｖ-1とＶnが、どちらか一方が水平ベクトル、他方は垂直ベクトルである場合である。ステップＳ４１７０では、終端点としたい端点Ｐnから３点目の補助輪郭点Ｐn+3を算出する。具体的には、Ｐn+2からみてＰ-1から遠くなる方向に、特許文献５の接線線分の抽出条件の（３）を満たすように十分な長さ（例えば、１０画素長以上）を持つように補助輪郭点Ｐn+3を定める。
【０２２８】
ステップＳ４１８０の処理も、ステップＳ４１６０及びステップＳ４１７０と同様に、Ｖ-1とＶnが、どちらか一方が水平ベクトル、他方は垂直ベクトルである場合である。ステップＳ４１８０では、終端点としたい端点Ｐnから４点目の補助輪郭点Ｐn+4を算出する。具体的には、水平ベクトルと垂直ベクトルが交互につながる形式で、Ｐn+3とＰ-1を連結する様に、終端点としたい端点Ｐnの４点後の補助輪郭点である点Ｐn+4を定める。ここで、補助輪郭点Ｐn+4は、始端点としたい端点Ｐ0の２点前の補助輪郭点でもある。そして、一連の処理が終了すると、図３８のフローチャートのステップＳ４２００に戻る。
【０２２９】
このようにして、端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０は、端点間毎線芯（周回）ベクトル生成部３２１０より得られる端点間毎線芯（周回）化済ベクトルを入力する。そして、端点間毎補助ベクトル入り（周回）ベクトル平滑部３２２０で処理される際に、端点部分に相当するベクトルが、他のベクトルと統合されて端点位置が不明にならぬように補助ベクトルを挿入する。つまり、端点部分に相当する部分が端点として保存される（ベジェ曲線のアンカーポイントとなる）ように補助ベクトルを挿入することにより、端点間毎補助ベクトル入り（周回）ベクトルを生成する。
【０２３０】
加えて、補助ベクトルを挿入された各端点間毎補助ベクトル入り（周回）ベクトルのそれぞれに対し、どのベクトルが端点部にあたるかを明示する始端点・終端点情報をも生成する。このようにして生成された処理結果は、例えば、図３２に示す形式の各輪郭データ部分のそれぞれを図３９（ａ）や図３９（ｂ）の各ベクトル列データに置き換えた形として表現でき、実施形態１では、この形式で出力されるものとする。
【０２３１】
尚、端点間毎補助ベクトル入り（周回）ベクトル平滑部３２２０は、先述のように、特許文献５に開示される方法及び装置で構成できる。その出力は、端点部分に相当する部分が端点として保存された状態で各（周回）ベクトル毎に平滑化（関数近似）された平滑化（関数近似）済端点間毎補助ベクトル入り（周回）ベクトルとして生成される。そして、次工程の処理をする端点間毎平滑化済ベクトル同定（非周回化）部３２３０に出力される。この際、端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０で生成された始端点・終端点情報もそのまま次工程の処理をする端点間毎平滑化済ベクトル同定（非周回化）部３２３０に出力する。
【０２３２】
端点間毎平滑化済ベクトル同定（非周回化）部３２３０は、端点間毎補助ベクトル入り（周回）ベクトル平滑部３２２０より平滑化（関数近似）済端点間毎補助ベクトル入り（周回）ベクトルを入力する。また、端点間毎補助ベクトル入り（周回）ベクトル生成部３２１０より始端点・終端点情報を入力する。更に、各平滑化済の（周回）ベクトル列毎に、そのベクトル列内の各ベクトルの座標値を、それぞれ始端点と終端点となる輪郭点の座標値と比較していくことにより同定する。そして、始端点と終端点の間のみの部分の非周回型のベクトル列を生成して端点間毎平滑化済（非周回）ベクトルとする。そして、次工程である領域別ベクトル生成部４０に出力する。
【０２３３】
尚、生成された処理結果は、図３２に示す形式に準じた形として表現することができる、但し、各輪郭点はそれまでの輪郭点情報の部分をアンカーポイントであるのか否かの属性情報としての付帯情報をもつ形をとる。ここで、同定された始端点を第１点とし、終端点が同線素ベクトルの最終点として生成することとする。
【０２３４】
即ち、図３２の第一輪郭の部分が、第一線素のデータ部分となっており、第１点が第一線素の始端点で、第ｂ点が第一線素の終端点となっているといった形式である。実施形態１では、このような形式で出力されるものとする。
【０２３５】
このようにして、図１０のフローチャートにおける、ステップＳ５０からステップＳ８０のループでは、交点と交点の間を繋ぐ境界線画像毎に、順次に端点間ベクトルが生成されていく。そして、全ての境界線について端点間ベクトル化の処理を終了すると、ステップＳ１００において、領域別のベクトルを生成する領域別ベクトル生成処理を実行する。
【０２３６】
即ち、図４３に示すような交点と交点の間を繋ぐ境界線が存在するときに、図４４の（ａ）〜（ｈ）に示されるように、１本ずつ、順次に交点と交点の間を繋ぐ境界線画像が生成されては、端点間ベクトルが生成されて行く。
【０２３７】
図４５は、全ての境界線について端点間ベクトル化の処理を終了したものを、画像として再描画した形で模式的に示したものである。図４６は、図４５に画像として再描画した形で模式的に示した端点間毎平滑化済（非周回）ベクトルの全てを其々のベクトルの端点部を其々の元になった交点と交点の間を繋ぐ境界線画像の各交点を明示した形で画像として再描画し模式的に示したものである。
【０２３８】
ステップＳ３０で抽出された交点やステップＳ５０で生成された交点と交点の間を繋ぐ境界線画像の各交点は、ステップＳ５０〜ステップＳ８０の処理を終了しても、端点間毎平滑化済（非周回）ベクトルの各端点としてその位置と位置関係が保たれている。この意味で、ステップＳ３０で抽出された交点は、ステップＳ５０〜ステップＳ８０の処理においては、端点として踏襲されて処理が進められていく。
【０２３９】
ステップＳ１００で、領域別ベクトル生成部４０の処理内容（領域別ベクトル生成処理）を実行する。即ち、端点間ベクトル情報と領域分割処理によって得られる各領域の色情報に基づき、各領域にそれを取り囲む関数近似（平滑化）済端点間ベクトル列とその内部色とでなる領域ベクトルに変換する。
【０２４０】
上述のように、領域別ベクトル生成部４０は、領域境界ベクトル列同定部４１０と領域属性付与部４２０とで構成することが可能である。
【０２４１】
ここで、ステップＳ１００の領域別ベクトル生成処理の詳細について、図４７を用いて説明する。
【０２４２】
図４７は本発明の実施形態１の図１０のステップＳ１００の領域別ベクトル生成処理の詳細を示すフローチャートである。
【０２４３】
まず、ステップＳ１０１０で、注目領域番号を入力する。即ち、ステップＳ１２で得られた各領域の中のいずれか１つの領域の領域番号を入力する。これは、例えば、ステップＳ１３で、ＲＡＭ５２０上に生成された、図２に示す各領域の領域番号とそれら各領域の色情報（属性情報）の領域テーブル２０１を参照して、各領域の領域番号を入力する。
【０２４４】
次に、ステップＳ１０２０で、ステップＳ１０１０で入力した領域番号に関連する交点（端点：注目領域関連交点）を、ステップＳ３１で生成した図６の交点テーブル６０１を参照して入力する。例えば、ステップＳ１０１０で入力した領域番号が２の場合は、図６の交点テーブル６０１中の隣接領域番号欄に領域番号２を含む交点は、Ｃ：（２２，４０）、Ｅ：（３８，４０）、Ｆ：（４４，２４）の３点となる。
【０２４５】
次に、ステップＳ１０３０で、ステップＳ７０で生成した端点間毎補助ベクトル入り（周回）ベクトルの内、ステップＳ１０２０で入力した交点を端点とするベクトル（領域境界ベクトル）を同定する。これは、図３２に示す形式に準じた形としてのベクトルデータの始端点を表す第１点と終端点を表す最終点との組み合わせが、ステップＳ１０２０で抽出した交点の座標値と一致するものを選出することで実現することができる。
【０２４６】
図６の交点テーブル６０１のデータの場合には、図４６で表現されたベクトルデータの中で、３本の関数近似（平滑化）済端点間ベクトルが、注目領域及び領域境界ベクトル列として同定される。具体的には、１つ目は、ＦとＣを結ぶベクトル（図４３の（１）から得られる関数近似（平滑化）済端点間ベクトル）である。２つ目は、ＣとＥを結ぶベクトル（図４３の（２）から得られる関数近似（平滑化）済端点間ベクトル）である。３つ目は、ＥとＦを結ぶベクトル（図４３の（３）から得られる関数近似（平滑化）済端点間ベクトル）である。
【０２４７】
次に、ステップＳ１０４０で、ステップＳ１０３０で同定した注目領域の領域境界ベクトル列に対して、対応する領域の色情報（属性情報）を付与する。この処理は、ＲＡＭ５２０上に生成された、図２に示す各領域の領域番号とそれら各領域の色情報（属性情報）の領域テーブル２０１を参照する。そして、この参照により、ステップＳ１０１０で入力した領域番号に相当する領域の色情報（属性情報）を獲得して、その属性情報を注目領域の領域境界ベクトル列に対して付与することで実現される。
【０２４８】
次に、ステップＳ１０５０で、全ての領域番号に対してステップＳ１０１０〜ステップＳ１０４０の処理が終了したか否かを判定する。終了していない場合（ステップＳ１０５０でＮＯ）、ステップＳ１０１０に戻る。一方、終了している場合（ステップＳ１０５０でＹＥＳ）、図１０のフローチャートのステップＳ１００の領域別ベクトル生成処理を終了する。
【０２４９】
尚、ステップＳ１０５０の判定は、例えば、図２の領域テーブル２０１における全ての領域番号に対する処理を終了したか否か（領域テーブル２０１の先頭から処理を始め、最後のデータまで処理をすすめたか否か）で判定可能である。
【０２５０】
このようにして、実施形態１における、カラー画像、とりわけ、イラスト画像のベクトル化の一連の流れが構成される。
【０２５１】
ここで、図４８は、ステップＳ１００で得られる、各領域毎にそれを取り囲む関数近似（平滑化）済端点間ベクトル列とその内部色とでなる領域ベクトルを、これらを画像として再生した形で模式的に示したものである。
【０２５２】
以下に、上記説明の途中で、後述するとした、領域分割処理、境界点抽出処理、交点抽出処理、交点抽出処理の詳細について説明する。
【０２５３】
●領域分割処理
ステップＳ１２の領域分割処理について、図４９を用いて説明する。
【０２５４】
図４９は本発明の実施形態１のステップＳ１２の領域分割処理の詳細を示すフローチャートである。
【０２５５】
ステップＳ１２０１で、処理対象画像に対して、クラスタリング処理を行う。この処理では、まず、ラスタスキャンしたスタートの画素により、最初のクラスタを生成する。そして、次の画素に対して、全てのクラスタ間との乖離度を画素の特徴に基づいて算出する。乖離度が低いほど、画素とクラスタとの特徴が近いと考えられる。つまり、画素とクラスタは、同一とみなせる特徴（色）を持っていると考えられる。
【０２５６】
ここで、ある画素ｉの特徴とは、その画素の画素値（Ｒi，Ｇi，Ｂi）である。また、あるクラスタｃの特徴とは、そのクラスタに属する全ての画素の画素値の平均値（Ｒi，Ｇi，Ｂi）である。乖離度とは、例えば、画素ｉとクラスタｃの特徴値間の色空間上でのユークリッド距離√｛（Ｒc−Ｒi）2＋（Ｇc−Ｇi）2＋（Ｂc−Ｂi）2｝である。
【０２５７】
ここでは、乖離度の計算にＲＧＢ値を用いるが、これに限定されず、他のカラー空間の情報、あるいは、カラー以外の情報を、画素の特徴量として使うことも可能である。そして、乖離度の値が最小となるクラスタ番号を記録し、この乖離度を事前に設定された閾値と比較する。閾値未満である場合は、対象画素を記録されたクラスタに属させる。閾値以上である場合は、対象画素により新たなクラスタを生成する。この処理は全ての画素の処理が終わるまで繰り返し実行する。
【０２５８】
次に、ステップＳ１２０２で、クラスタリング処理結果に基づき、領域統合処理を行う。この領域処理では、まず、分離したい領域数の目標値を入力する。本発明では、この目標値は、何色くらいに分離するかの目安となる。そして、現在のクラスタの数を計数し、現在のクラスタの数を領域数の目標値と比較する。現在のクラスタ数が目標値以上である場合、クラスタの統合を行う。領域統合処理では、各クラスタ間の乖離度を計算し、その中から一番乖離度の低い２つのクラスタを１つに統合する。領域統合処理は、現在のクラスタ数は目標値未満になるまで繰り返し実行する。
【０２５９】
次に、ステップＳ１２０３で、領域統合処理結果に基づき、ノイズ領域判定処理を行う。このノイズ領域判定処理では、まず、領域分割処理結果をラベリングし、そして、各ラベル領域の面積を計算する。ラベル領域の面積は、対象領域内の画素数である。ラベル領域の面積は、ある閾値未難である場合は、この領域をノイズ領域と判定する。
【０２６０】
そして、ステップＳ１２０４で、このノイズ領域に含まれた各画素毎に、周囲に隣接する領域との乖離度を計算し、処理対象画素を一番乖離度の低い領域に属させるノイズ領域再処理を行う。ノイズ領域判定処理は、全てのラベル領域が処理済になるまで繰り返し実行する。文書画像の領域分離後のグラフィックス領域はより圧縮されて保存されるので、このノイズ領域判定処理とノイズ領域再処理は、圧縮の影響により発生したノイズへの対応策である。
【０２６１】
以上のようにして、カラー画像を同一とみなせる一貫した特徴（乖離度が閾値以上のもの）を有する、画像上で連結している其々の領域の集まりに分割することが可能となる。
【０２６２】
●境界点抽出処理
ステップＳ２１の水平方向境界点抽出処理とステップＳ２３の垂直方向境界点抽出処理とステップＳ２５の斜め方向境界点抽出処理について、図３を参照して説明する。
【０２６３】
まず、領域分割の結果を上下順、水平方向（→）に走査し、水平方向の各走査線上のある領域から他の領域への切り替わりになる画素を水平方向境界点として抽出する。図３では、画像は（背景）領域１、領域２、領域３、領域４、そして、領域５に分割される例が示されている。
【０２６４】
図３のように、画像の一番上から水平方向の走査により、第１０行目のＢ点で領域番号は１から２に変わるので、Ｂを水平方向境界点として記録する。同様、下に行く内に、第１４行目のＡも水平境界点として記録する。第２２行目のＣ、第３８行目のＥ、第４４行目のＦ、第６４行目のＨ、Ｉ等も順番に水平方向境界点として記録する。
【０２６５】
そして、領域分割の結果を左右順、垂直方向（↓）に走査し、垂直方向の各走査線上のある領域から他の領域への切り替わりになる画素を垂直方向境界点として抽出する。
【０２６６】
図３のように、垂直方向の走査により、第１０列目のＤ、第１５列目のＡ、第２０列目のＢ、第２４列目のＦ、第４０列目のＥ、Ｃ、第５８列目のＨ、第６６列目のＩ等も順番に垂直方向境界点として記録する。
【０２６７】
そして、領域分割の結果を上下順、斜め方向に走査し、斜め方向の各走査線上のある領域から他の領域への切り替わりになる画素を斜め方向境界点として抽出する。
【０２６８】
図３のように、斜め方向の走査により、第１４行目、第１５列目のＡ点で領域番号は１から２に変わるので、Ａ点を斜め方向境界点として記録する。同様に、Ｂ、Ｊ、Ｃ、Ｋ、Ｅ、Ｇ、Ｄ、Ｈ、Ｉ等も斜め方向境界点として記録する。
【０２６９】
ここでは、説明を簡単にするため、以上の幾つかの境界点のみを例に用いている。図５０は、Ｂ点とＡ点の間の境界線を拡大して、この境界線の水平方向と垂直方向と斜め方向境界点の抽出例を示す図である。
【０２７０】
図５０（ａ）はＡＢ境界線付近の画素図であり、画素（１）は領域１にある画素で、画素（２）は領域２にある画素である。
【０２７１】
図５０（ｂ）は水平方向境界点抽出処理により、最初に水平方向に領域番号が変わった所、即ち、ハッチングパターンが付されている画素（１）は水平方向境界点として抽出された結果である。
【０２７２】
図５０（ｃ）は垂直方向境界点抽出処理により、ハッチングパターンが付されている画素（１）が垂直方向境界点として抽出された結果である。
【０２７３】
図５０（ｄ）は斜め方向境界点抽出処理により、ハッチングパターンが付されている画素（１）が斜め方向境界点として抽出された結果である。
【０２７４】
図５０（ｅ）は水平方向境界点抽出、垂直方向境界点抽出、及び斜め方向境界点抽出処理の少なくともいずれか１つ以上により抽出された境界点が、ハッチングパターンが付されている画素（１）で示されている。即ち、このハッチングパターンが付されている画素（１）は、図５０（ｂ）と図５０（ｃ）と図５０（ｄ）のハッチングパターンが付されている画素（１）を合わせたものとなっている。これらの境界点は、４−連結状態となっている。
【０２７５】
実施形態１における境界線画像の生成を明確にするため、さらに図５１を用いて、水平方向境界点抽出処理と垂直方向境界点抽出処理と斜め方向境界点抽出処理の説明を加える。
【０２７６】
図５１（ａ）は、下地領域中に四つの矩形領域からなる図の領域分割の結果である。図５１（ｂ）は、図５１（ａ）の境界線周囲の画素をあらわすものである。
【０２７７】
図５１（ｃ）は、図５１（ｂ）からハッチングパターンが付加された画素を水平方向境界点として抽出した水平境界点抽出処理の結果である。
【０２７８】
図５１（ｄ）は図５１（ｂ）からハッチングパターンが付加された画素を垂直方向境界点として抽出した垂直方向境界点の結果である。
【０２７９】
図５１（ｅ）は図５１（ｂ）からハッチングパターンが付加された画素を斜め方向境界点として抽出した斜め方向境界点の結果である。
【０２８０】
図５１（ｆ）は以上の、水平方向、垂直方向、斜め方向の少なくともいずれか１つ以上の境界点抽出処理により抽出された全ての境界点である。これらの境界点は４−連結である。
【０２８１】
●交点抽出処理
ステップＳ３０の交点抽出処理について、図５２を用いて説明する。
【０２８２】
図５２は本発明の実施形態１のステップＳ３０の交点抽出処理の詳細を示すフローチャートである。
【０２８３】
ステップＳ３０１で、ステップＳ２２、ステップＳ２４及びステップＳ２６それぞれで生成された水平方向境界点テーブル４０１、垂直方向境界点テーブル４０２及び斜め方向境界点テーブル４０３を参照する。そして、その３つのテーブル４０１〜４０３上で２つ以上のテーブルに存在する境界点の内、テーブル４０１〜４０３それぞれでの隣接する領域番号とから３つ以上の領域番号を持つ境界点を探索して、それを交点とする。
【０２８４】
尚、３つのテーブル上で２つ以上のテーブルに存在する境界点とは、水平境界点かつ垂直方向境界点、水平方向境界点かつ斜め方向境界点、垂直方向境界点かつ斜め方向境界点、あるいは水平方向境界点かつ垂直方向境界点かつ斜め方向境界点のいずれかである。
【０２８５】
図５では、図３の領域分割の結果から抽出された境界点から構成された図４の水平方向境界点テーブル４０１、垂直方向境界点テーブル４０２及び斜め方向境界点テーブル４０３とから交点を抽出する例が示されている。
【０２８６】
境界点Ｃの水平方向の隣接領域番号は２、３で、垂直方向の隣接領域番号は１、２で、斜め方向の隣接領域番号は２、３であるので、Ｃ点は２つ以上の境界点テーブルに存在することが分かる。また、Ｃ点は３つ以上の隣接領域番号を持っているので、Ｃ点を交点として抽出する。
【０２８７】
同様に、Ｅ、Ｆ、Ｇも交点である。そのほか、Ａ、Ｂ、Ｄ、Ｈ、Ｉ等は水平方向の隣接領域番号と垂直方向の隣接領域番号と斜め方向の隣接領域番号が同じなので、２つの領域の間にあることが分かり、交点ではないと判断する。
【０２８８】
図５３（ａ）では、図５１（ａ）の領域分割結果からの交点抽出例が示されている。図５３（ａ）は、各方向（水平、垂直及び斜め）の境界点抽出処理それぞれにより抽出された境界点に対する、各方向の境界点テーブル作成処理により生成された各境界点テーブル４０１〜４０３である。そして、水平方向境界点テーブル４０１、垂直方向境界点テーブル４０２及び斜め方向境界点テーブル４０３の３つの境界点テーブル上で、少なくとも２つ以上の境界点テーブルにある境界点毎に線種別にマークしたものである。
【０２８９】
図５３（ｂ）は図５３（ａ）でマークされた境界点から、さらに３つ以上の互いに相異なる隣接領域番号を持つ境界点を交点として、これらを交点テーブル６０１としてまとめて記録した結果である。図５３（ｃ）は交点となった点を、矩形のグレーパターンで示したものである。
【０２９０】
そして、ステップＳ３０２で、すべての領域番号の其々が、ステップＳ３０１で抽出された各交点の内のいずれかの交点の隣接領域番号に含まれているかどうかを判定する。全ての領域番号が含まれている場合（ステップＳ３０２でＹＥＳ）、全部の領域に交点が存在していると判定し、この交点抽出処理を終了する。
【０２９１】
一方、いずれの交点の隣接領域番号にも含まれない領域番号がある場合（ステップＳ３０２でＮＯ）、この領域には隣接領域が複数存在することはなく、ステップＳ３０１での処理では交点が見つからなかったと判定する。
【０２９２】
図３の例では、ステップＳ３０１で抽出された交点Ｃ、Ｅ、Ｆ、Ｇの隣接領域番号に１〜４の領域番号が含まれているので、領域１〜４の境界点には交点が存在する。しかし、領域番号５を隣接領域番号に含む交点は存在しないので、領域５は、他の領域との境界点に交点がない、独立した領域であると判断する。
【０２９３】
ステップＳ３０３で、ステップＳ３０２で判定された交点のない領域に対し、ステップＳ２２、ステップＳ２４及びステップＳ２６で生成された水平方向境界点テーブル４０１、垂直方向境界点テーブル４０２及び斜め方向境界点テーブル４０３を再び参照する。そして、交点のない領域番号を隣接領域番号に持つ境界点を任意に２点取り、この交点のなかった領域の交点にする。
【０２９４】
例えば、図４の水平方向境界点テーブル４０１、垂直方向境界点テーブル４０２及び斜め方向境界点テーブル４０３とから隣接領域番号５を含み、かつ、２つの隣接領域番号を持つ境界点ＨとＩを取り、領域５の交点にする。これらは、ＨとＩの位置に限らず、例えば、図４の水平方向境界点テーブル４０１、垂直方向境界点テーブル４０２及び斜め方向境界点テーブル４０３を各テーブルの先頭からサーチする。そして、最初に見つかる条件を満たす点（即ち、隣接領域番号５を含む境界点）と、同条件を満たすその他の点の中で、最初に見つかった点から最も離れた点等としても良い。
【０２９５】
以上説明したように、実施形態１によれば、画像を領域毎に分割してベクトル化する際には、画素間の特徴によって得られる乖離度に基づいて、画像を分割する。次に、これによって得られる領域に対して、隣接する領域間の境界に関する領域境界情報として、境界の交点を端点とした場合のその端点間を表現するベクトル（端点間ベクトル）の向きを示す輪郭点情報を生成する。
【０２９６】
そして、この輪郭点情報に基づいて、分割された領域の境界を構成する端点間ベクトルを同定する。より具体的には、この輪郭点情報によって、各端点間ベクトルの位置関係を把握した上で、分割された領域の境界を構成する端点間ベクトルを同定する。これにより、領域を表現するベクトルデータを正確かつ適切に生成することが可能となる。つまり、従来技術のように、各領域間に隙間や重なりが生じるようなベクトルデータが生成されることを防止することができる。
【０２９７】
＜実施形態２＞
実施形態２では、図５４に示すように、全ての境界線画像を全て含む細線画像を生成した後に、この画像から、ベクトル抽出時に交点を改めて検出しつつ、一括してベクトル化する構成をとる。この場合の処理を図５５を用いて説明する。
【０２９８】
図５５は本発明の実施形態２の画像処理装置の動作を示すフローチャートである。
【０２９９】
同図において、実施形態１の図１０のフローチャートと異なる部分は、次のようになっている。つまり、図１０のステップＳ７０の端点間ベクトル生成処理が、ステップＳ５０〜ステップＳ８０の処理ループ内にあるのに対し、図５５では、ステップＳ５０〜ステップＳ８０の処理ループ外のステップＳ９０の端点間ベクトル生成処理として存在する点である。即ち、図５４で示すように、全ての境界線画像を全て含む細線画像を生成した後に、この画像から、ベクトル抽出時に交点を改めて検出しつつ、一括してベクトル化する構成をとっている。
【０３００】
ステップＳ９０の端点間ベクトル生成処理（実施形態１の図１０におけるステップＳ７０の端点間ベクトル生成処理と同様な処理）時においても、実施形態１で説明したように、交点部を端点として抽出する。そのため、このように構成しても、実施形態１と同様に、図４５や図４６に画像として再描画した形で模式的に示したような、端点間毎平滑化済（非周回）ベクトルの集まりとして生成される。
【０３０１】
即ち、ステップＳ３０で抽出された交点や、ステップＳ５０で生成された交点と交点の間を繋ぐ境界線画像における各交点は、ステップＳ９０の端点間ベクトル生成の処理において、端点間毎平滑化済（非周回）ベクトルの交点として同定される。そして、その交点と交点の間を繋ぐ端点間ベクトル群として一括して生成される。以降のステップＳ１００の処理は、実施形態１の場合と全く同様である。
【０３０２】
以上説明したように、実施形態２によれば、実施形態１で説明した効果に加えて、境界線画像を全て含む細線画像に対して、それを構成する端点間ベクトル群を生成し、それに基づいて、領域別ベクトルを生成することができる。これにより、より効率的に領域別ベクトルを生成することができる。
【０３０３】
＜実施形態３＞
実施形態１及び２においては、ともに、入力画像の全ての分割領域をベクトル化することを前提に説明してきたが、本発明はこれに限定されるものではない。即ち、画像処理装置の通信Ｉ／Ｆ４等を経由して、あるいはポインティングデバイス（不図示）のユーザーインタフェース（以下、ＵＩと記す）を用いて、ベクトル化対象とする分割領域を限定して、その領域のみをベクトル化するように構成してももちろん良い。
【０３０４】
この場合、図４７のフローチャートにおけるステップＳ１０１０で、図２の領域テーブル２０１に記載されている注目領域番号を順番に自動入力するのではなく、通信Ｉ／Ｆ４やＵＩ等を介して、ユーザの指示に基づき、ベクトル化対象とする分割領域を指定する。そして、この指定された分割領域に限定してベクトル化（領域別ベクトルを生成）するように構成してももちろん良い。例えば、図２〜３のように５つの分割領域がある場合、ユーザが領域２、３、５を指定すると、この指定された領域２，３，５それぞれの領域別ベクトルが生成されることになる。
【０３０５】
この場合の処理を図５６を用いて説明する。
【０３０６】
図５６は本発明の実施形態３の画像処理装置の動作を示すフローチャートである。
【０３０７】
図５６のフローチャートに示すように、ステップＳ４０で、上述のベクトル化対象とする分割領域を限定するためのベクトル化対象領域情報（注目領域番号）を獲得する。そして、このステップＳ４０以外は、実施形態２の図５５のフローチャートと同様である。但し、ステップＳ５０〜ステップＳ１００までの処理は、ステップＳ４０で獲得したベクトル化対象領域情報が示す領域のみを、処理対象として一連の動作をする点が、実施形態３の特徴的な構成である。
【０３０８】
以上説明したように、実施形態３によれば、実施形態１で説明した効果に加えて、画像中の注目領域を処理対象として指定することが可能になるので、その注目領域に対してのみ、その領域の領域ベクトルを生成することができる。これにより、用途や目的に応じて、より効率的に必要とする領域の領域ベクトルを生成することができる。
【０３０９】
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、１つの機器からなる装置に適用しても良い。
【０３１０】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０３１１】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０３１２】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０３１３】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスクがある。また、更に、記録媒体としては、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０３１４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、その接続先のホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０３１５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０３１６】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。また、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０３１７】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０３１８】
【図１】本発明の実施形態１の画像処理装置の機能構成を示すブロック図である。
【図２】本発明の実施形態１の領域番号と色情報（属性情報）の対応を示す領域テーブルの一例を示す図である。
【図３】本発明の実施形態１の境界点抽出処理を説明するための図である。
【図４】本発明の実施形態１の境界点テーブルの一例を示す図である。
【図５】本発明の実施形態１の境界線の交点の同定を説明するための図である。
【図６】本発明の実施形態１の交点テーブルの一例を示す図である。
【図７】本発明の実施形態１の線画像のベクトル処理の一連の処理経過の例を示す図である。
【図８】本発明の実施形態１の端点間ベクトル生成部の詳細機能構成を示すブロック図である。
【図９】本発明の実施形態１の画像処理装置のハードウェア構成を示す図である。
【図１０】本発明の実施形態１の画像処理装置の動作を示すフローチャートである。
【図１１】本発明の実施形態１の注目画素とその近傍画素を示す図である。
【図１２】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図１３】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図１４】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図１５】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図１６】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図１７】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図１８】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図１９】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図２０】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図２１】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図２２】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図２３】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図２４】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図２５】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図２６】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図２７】本発明の実施形態１の端点間毎輪郭（周回）ベクトル抽出における注目画素と近傍画素の状態に応じた輪郭点と輪郭点情報の抽出パターンを示す図である。
【図２８】本発明の実施形態１の輪郭点情報の一覧表を示す図である。
【図２９】本発明の実施形態１の端点部より検出される輪郭点例とそれらに付与される輪郭点情報を示す図である。
【図３０】本発明の実施形態１の端点部ではない部分より抽出される輪郭点例とそれらに付与される輪郭点情報を示す図である。
【図３１Ａ】本発明の実施形態１の端点間輪郭（周回）ベクトル抽出処理全体を示すフローチャートである。
【図３１Ｂ】本発明の実施形態１のベクトル列抽出処理の具体例を説明するための図である。
【図３１Ｃ】本発明の実施形態１のベクトル列抽出処理の具体例を説明するための図である。
【図３２】本発明の実施形態１の端点間毎周回ベクトル列と輪郭点情報のデータ形式の例を示す図である。
【図３３】本発明の実施形態１の図３１ＡのステップＳ１のベクトル列抽出処理の詳細を示すフローチャートである。
【図３４】本発明の実施形態１のステップＳ１２０の処理の詳細を示すフローチャートである。
【図３５】本発明の実施形態１の線素、端点間毎周回ベクトル列と輪郭点情報、端点間毎線芯（周回）ベクトルを例示する図である。
【図３６】本発明の実施形態１の端点間毎線芯（周回）ベクトル生成部の動作を示すフローチャートである。
【図３７】本発明の実施形態１の始端点の直前と終端点の直後に挿入する補助輪郭点を説明するための図である。
【図３８】本発明の実施形態１の端点間毎補助ベクトル入り（周回）ベクトル生成部の動作を示すフローチャートである。
【図３９】本発明の実施形態１の端点間毎補助ベクトル入り（周回）ベクトル、及び、端点間毎平滑化済ベクトルのデータ形式の例を示す図である。
【図４０】本発明の実施形態１のステップＳ４１００の処理の詳細を示すフローチャートである。
【図４１】本発明の実施形態１の終端点〜始端点間へ挿入する補助ベクトルを説明するための図である。
【図４２】本発明の実施形態１の終端点〜始端点間へ挿入する補助ベクトルを説明するための図である。
【図４３】本発明の実施形態１の交点と交点の間を繋ぐ境界線の例を示す図である。
【図４４】本発明の実施形態１の境界線画像の生成過程の一例を示す図である。
【図４５】本発明の実施形態１の図４４の境界線の平滑化済端点間ベクトルの再描画例を示す図である。
【図４６】本発明の実施形態１の図４５の再描画例を対応する交点を明示した形式で示す図である。
【図４７】本発明の実施形態１の図１０のステップＳ１００の領域別ベクトル生成処理の詳細を示すフローチャートである。
【図４８】本発明の実施形態１の領域属性が付与された領域ベクトルから再生した画像例を示す図である。
【図４９】本発明の実施形態１のステップＳ１２の領域分割処理の詳細を示すフローチャートである。
【図５０】本発明の実施形態１の境界線の抽出例を示す図である。
【図５１】本発明の実施形態１の境界線画像の生成を説明するための図である。
【図５２】本発明の実施形態１のステップＳ３０の交点抽出処理の詳細を示すフローチャートである。
【図５３】本発明の実施形態１の領域分割結果からの交点抽出例を示す図である。
【図５４】本発明の実施形態１の全ての境界線画像を含む細線画像を生成して得られる画像例を示す図である。
【図５５】本発明の実施形態２の画像処理装置の動作を示すフローチャートである。
【図５６】本発明の実施形態３の画像処理装置の動作を示すフローチャートである。
【図５７】処理対象の画像の一例を示す図である。
【図５８】従来技術における不具合を説明するための図である。
【符号の説明】
【０３１９】
１      スキャナ
２      画像メモリ
３      画像入出力Ｉ／Ｏ
４      通信Ｉ／Ｏ
６      ＲＯＭ
５１８  バス
５１９  ＣＰＵ
５２０  ＲＡＭ
５２１  Ｉ／Ｏ
５２２  Ｈ／Ｄ
【図１】
2008146496.tif 000003
【図２】
2008146496.tif 000004
【図３】
2008146496.tif 000005
【図４】
2008146496.tif 000006
【図５】
2008146496.tif 000007
【図６】
2008146496.tif 000008
【図７】
2008146496.tif 000009
【図８】
2008146496.tif 000010
【図９】
2008146496.tif 000011
【図１０】
2008146496.tif 000012
【図１１】
2008146496.tif 000013
【図１２】
2008146496.tif 000014
【図１３】
2008146496.tif 000015
【図１４】
2008146496.tif 000016
【図１５】
2008146496.tif 000017
【図１６】
2008146496.tif 000018
【図１７】
2008146496.tif 000019
【図１８】
2008146496.tif 000020
【図１９】
2008146496.tif 000021
【図２０】
2008146496.tif 000022
【図２１】
2008146496.tif 000023
【図２２】
2008146496.tif 000024
【図２３】
2008146496.tif 000025
【図２４】
2008146496.tif 000026
【図２５】
2008146496.tif 000027
【図２６】
2008146496.tif 000028
【図２７】
2008146496.tif 000029
【図２８】
2008146496.tif 000030
【図２９】
2008146496.tif 000031
【図３０】
2008146496.tif 000032
【図３１Ａ】
2008146496.tif 000033
【図３１Ｂ】
2008146496.tif 000034
【図３１Ｃ】
2008146496.tif 000035
【図３２】
2008146496.tif 000036
【図３３】
2008146496.tif 000037
【図３４】
2008146496.tif 000038
【図３５】
2008146496.tif 000039
【図３６】
2008146496.tif 000040
【図３７】
2008146496.tif 000041
【図３８】
2008146496.tif 000042
【図３９】
2008146496.tif 000043
【図４０】
2008146496.tif 000044
【図４１】
2008146496.tif 000045
【図４２】
2008146496.tif 000046
【図４３】
2008146496.tif 000047
【図４４】
2008146496.tif 000048
【図４５】
2008146496.tif 000049
【図４６】
2008146496.tif 000050
【図４７】
2008146496.tif 000051
【図４８】
2008146496.tif 000052
【図４９】
2008146496.tif 000053
【図５０】
2008146496.tif 000054
【図５１】
2008146496.tif 000055
【図５２】
2008146496.tif 000056
【図５３】
2008146496.tif 000057
【図５４】
2008146496.tif 000058
【図５５】
2008146496.tif 000059
【図５６】
2008146496.tif 000060
【図５７】
2008146496.tif 000061
【図５８】
2008146496.tif 000062