(57)【特許請求の範囲】
【請求項１】
画像処理装置において、
図形を芯線化されたベクトルデータに変換するベクトル変換手段と、
ベクトルデータに変換された線図形の線幅を検出する線幅検出手段と、
変換されたベクトルデータに基づいて、前記線図形により取り囲まれる閉領域を抽出する閉領域抽出手段と、
前記線幅の半分の長さよりも長い距離だけ前記線図形の内側に存在する領域の色情報を取得して、抽出された閉領域の内部の色を検出する閉領域色検出手段と、
ベクトルデータに変換された線図形の色を検出する線色検出手段と、
を有することを特徴とする画像処理装置。
【請求項２】
検出された線幅の情報は、対応する線図形のベクトルデータに付加されることを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記閉領域色検出手段は、
抽出された閉領域の内部点であって当該閉領域を形成するベクトルデータに対応する線図形よりも前記線幅の半分の長さよりも長い距離だけ前記線図形の内側に存在する内部点を選択する選択手段を含み、
選択された内部点の色情報に基づいて、抽出された閉領域の内部の色を検出することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記線色検出手段により検出された色の情報は、対応する線図形のベクトルデータに付加されることを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
請求項１〜４のいずれか１項に記載の画像処理装置は、画像読取装置に搭載されていることを特徴とする。
【請求項６】
画像処理方法において、
図形を芯線化されたベクトルデータに変換するステップと、
ベクトルデータに変換された線図形の線幅を検出するステップと、
変換されたベクトルデータに基づいて、前記線図形により取り囲まれる閉領域を抽出するステップと、
前記線幅の半分の長さよりも長い距離だけ前記線図形の内側に存在する領域の色情報を取得して、抽出された閉領域の内部の色を検出するとともに、ベクトルデータに変換された線図形の色を検出するステップと、
を有することを特徴とする画像処理方法。
【請求項７】
画像処理プログラムを記録したコンピュータ読取可能な記録媒体であって、
コンピュータに、
図形を芯線化されたベクトルデータに変換する手順と、
ベクトルデータに変換された線図形の線幅を検出する手順と、
変換されたベクトルデータに基づいて、前記線図形により取り囲まれる閉領域を抽出する手順と、
前記線幅の半分の長さよりも長い距離だけ前記線図形の内側に存在する領域の色情報を取得して、抽出された閉領域の内部の色を検出するとともに、ベクトルデータに変換された線図形の色を検出する手順と、
を実行させるための画像処理プログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、図形画像を処理するための画像処理装置および方法ならびに画像処理プログラムを記録したコンピュータ読取可能な記録媒体に関する。
【０００２】
【従来の技術】
図形の拡大／縮小、情報圧縮などに利用するため、スキャナなどから入力されたラスタデータをベクトルデータに変換すること（通常「ベクトル変換」と呼ばれる）が行われている。すなわち、線図形を使って図形を表現すると、拡大／縮小しても形が変わらず、また、図形情報がコンパクトになり情報圧縮になるため、線図形を表現する一方法として、図形（ラスタデータ）の輪郭線をベクトルデータに変換することが行われている。
【０００３】
たとえば、特開平６−１９５４２１号公報には、ラスタデータから色により輪郭線（エッジ）データを抽出し、これをベクトルデータに変換し、座標変換した後、変換された座標に基づいて輪郭線を描画し、各輪郭線の色で輪郭線の内部を塗り潰すことが記載されている。
【０００４】
【発明が解決しようとする課題】
しかしながら、このような従来のベクトル変換技術にあっては、エッジを検出し、エッジデータをベクトルデータに変換するため、線図形の線幅が１よりも大きい場合（細線化図形の線幅を１とする）には、次のような問題がある。
【０００５】
たとえば、図１６に示すように、黒色の線分を従来の方法でベクトル変換した場合、線分は、４本のベクトルで囲まれた閉領域で内部が黒色で塗り潰されているものとして認識される。つまり、この場合、１本の線分に対して４本のベクトル情報を持たなければならない。
【０００６】
また、たとえば、図１７に示すように、黒色の枠線を持つ閉領域で内部が緑色で塗り潰されたものを従来の方法でベクトル変換した場合、かかる枠線付き閉領域は、２つの閉領域としてベクトル化され、外側の大きい四角形は内部が黒色で塗り潰され、内側の小さい四角形は内部が緑色で塗り潰されているものとして認識される。つまり、この場合、１つの閉領域に対して２つの閉領域情報を持たなければならず、ベクトル数もその分多くなってしまう。
【０００７】
さらに、たとえば、図１７に示すように、枠線を持つ閉領域を従来の方法でベクトル変換した後に１.５倍に拡大すると、上記のように２つの閉領域としてベクトル化されてしまうため、枠線の線幅が変わってしまう。これは、縮小の場合も同様である。
【０００８】
また、上記のように、線分として描かれる図形が、ベクトル変換後に４本のベクトルで囲まれた閉領域として出力され（図１６参照）、または、枠線を持つ閉領域が、ベクトル変換後に２つの閉領域として出力されるため（図１７参照）、アプリケーションソフトでデータを再利用する際に加工（編集）しにくい。
【０００９】
要するに、従来のベクトル変換技術にあっては、データ量の低減には一定の限界があるとともに、拡大／縮小の編集作業において線幅が変わってしまう場合があり、さらに、データの再利用時に加工（編集）しにくいという問題がある。
【００１０】
本発明は、このような従来技術の問題点に鑑みてなされたものであり、図形の色を再現することができるとともに、ベクトル変換後のデータ量をより一層低減することができ、データの編集時に枠線付き閉領域を拡大／縮小しても線幅が変わることがなく、データの再利用時における使い勝手の向上をも図ることができる画像処理装置および方法ならびに画像処理プログラムを記録したコンピュータ読取可能な記録媒体を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明の上記目的は、下記の手段によって達成される。
【００１２】
（１）本発明に係る画像処理装置は、図形を芯線化されたベクトルデータに変換するベクトル変換手段と、ベクトルデータに変換された線図形の線幅を検出する線幅検出手段と、変換されたベクトルデータに基づいて、前記線図形により取り囲まれる閉領域を抽出する閉領域抽出手段と、前記線幅の半分の長さよりも長い距離だけ前記線図形の内側に存在する領域の色情報を取得して、抽出された閉領域の内部の色を検出する閉領域色検出手段と、ベクトルデータに変換された線図形の色を検出する線色検出手段とを有することを特徴とする。
【００１３】
（２）検出された線幅の情報は、対応する線図形のベクトルデータに付加される。
【００１５】
（３）前記閉領域色検出手段は、抽出された閉領域の内部点であって当該閉領域を形成するベクトルデータに対応する線図形よりも前記線幅の半分の長さよりも長い距離だけ前記線図形の内側に存在する内部点を選択する選択手段を含み、選択された内部点の色情報に基づいて、抽出された閉領域の内部の色を検出する。
【００１７】
（４）前記線色検出手段により検出された色の情報は、対応する線図形のベクトルデータに付加される。
【００１８】
（５）上記の画像処理装置は、画像読取装置に搭載されている。
【００１９】
（６）本発明に係る画像処理方法は、図形を芯線化されたベクトルデータに変換するステップと、ベクトルデータに変換された線図形の線幅を検出するステップと、変換されたベクトルデータに基づいて、前記線図形により取り囲まれる閉領域を抽出するステップと、前記線幅の半分の長さよりも長い距離だけ前記線図形の内側に存在する領域の色情報を取得して、抽出された閉領域の内部の色を検出するとともに、ベクトルデータに変換された線図形の色を検出するステップとを有することを特徴とする。
【００２０】
（７）本発明に係るコンピュータ読取可能な記録媒体は、画像処理プログラムを記録したコンピュータ読取可能な記録媒体であって、コンピュータに、図形を芯線化されたベクトルデータに変換する手順と、ベクトルデータに変換された線図形の線幅を検出する手順と、変換されたベクトルデータに基づいて、前記線図形により取り囲まれる閉領域を抽出する手順と、前記線幅の半分の長さよりも長い距離だけ前記線図形の内側に存在する領域の色情報を取得して、抽出された閉領域の内部の色を検出するとともに、ベクトルデータに変換された線図形の色を検出する手順と、を実行させるための画像処理プログラムを記録している。
【００２１】
【発明の実施の形態】
以下、図面を使って本発明の実施の形態を説明する。
【００２２】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に対応するデジタル複写機の構成を示すブロック図である。すなわち、第１の実施の形態では、本発明に係る画像処理装置は、デジタル複写機として構成されている。
【００２３】
このデジタル複写機１００は、スキャナとプリンタの複合機であって、カラー原稿中の図形（塗り潰された閉領域を含む）を自動的に少ないデータ量で精度の良いベクトルデータに変換することができるベクトル変換機能を有する。なお、本発明によるベクトル変換機能は、後述するように、単に線図形をベクトル化するだけでなく、線幅を検出し、閉領域を抽出し、そしてベクトルや閉領域の色を検出して、これらの情報をベクトルデータに付加することができるという高度の機能を有するので、ここでは、従来のベクトル変換機能と区別するために、「高度ベクトル変換機能」と呼ぶこととする。
【００２４】
デジタル複写機１００は、各種の入力と表示を行う操作パネル１と、原稿を読み取ってデジタル画像データ（ラスタデータ）に変換するスキャナエンジン３と、複数のシート状原稿を自動的に１枚ずつ原稿セット位置まで搬送するＡＤＦ（自動原稿搬送装置）５と、読み取って得られた画像データを処理する画像処理部７と、ＰＤＦなどのファイル形式で記録された画像処理後のデータ（後述するようにベクトルデータを含む）を画面出力／印刷出力用のビットマップデータ（ラスタデータ）に展開するラスタライザ９と、ビットマップ方式の画像データを用紙に印刷するプリンタエンジン１１と、プログラムやデータを記憶するメモリ１３と、画像処理後のファイルをネットワーク（図示せず）を介して外部へ出力するための通信インタフェース１５と、上記の各部を制御する制御部１７とを有する。
【００２５】
操作パネル１は、図示しないが、タッチパネルディスプレイやスタートキー、１０キー（テンキー）などを有する。タッチパネルディスプレイの画面には、現在設定されているモード、選択できるモード、当該複写機１００の状態などがグラフィックスやメッセージで表示される。ユーザは、画面内に表示されたキーをタッチすることで、表示画面やコピーモードを切り替えることができる。
【００２６】
スキャナエンジン３は、カラー原稿を読み取ることができるカラー対応のスキャナエンジンである。ラスタライザ９は、たとえば、ＲＩＰ（リップ）で構成されている。プリンタエンジン１１は、カラー印刷が可能なプリンタエンジンであって、たとえば、カラー対応のレーザプリンタ（ＬＢＰ）エンジンやインクジェットプリンタエンジンなどで構成されている。
【００２７】
メモリ１３は、図示しないが、プログラムやデータを記憶するＲＯＭと、データを一時的に記憶するＲＡＭとで構成されている。ＲＯＭは、プログラムやデータのアップデートが可能なように、主として、電気的に内容を書き直せるタイプのフラッシュＲＯＭ（フラッシュメモリとも呼ばれる）で構成されている。画像処理を行うための各種パラメータは、ＲＯＭに記憶されている。各部で処理されたデータは、ＲＡＭに一時的に記憶される。
【００２８】
通信インタフェースは、たとえば、ネットワークインタフェースカード（ＮＩＣ：ニック）（ＬＡＮボードとも呼ばれる）で構成されている。また、制御部１７は、ＣＰＵで構成されている。
【００２９】
画像処理部７は、スキャナエンジン３で読み取って得られた原稿画像の文字領域、図形領域、絵柄領域（写真領域）を判別し、分割する領域判別部１９と、文字領域に含まれる文字画像を認識して、文字データ（たとえば、ＪＩＳコードなどの文字コード）に変換する文字認識部２１と、図形領域に含まれる線図形（線分や曲線）を認識して、線幅の情報を持つベクトルデータに変換するベクトル変換部２３と、ベクトルデータに基づいて閉領域を抽出する閉領域抽出部２７と、ベクトルデータに付加される色情報（ベクトルの色、閉領域の色）を検出する色検出部２９と、絵柄領域に対してスムージングやエッジ強調などの前処理および誤差拡散法（ディザ法）などの二値化処理を含むコピー画像処理（原画像を忠実に再現するための画像処理という意味）を行うコピー画像処理部３５と、文字データ、ベクトルデータ（線幅と色の情報を持つ）および絵柄領域を合成し、合成後の画像データを所定のファイル形式（たとえば、ＰＤＦなど）で記録した画像ファイルを作成する合成処理部３７とを有する。さらに、ベクトル変換部２３は、線図形の線幅を検出する線幅検出部２５を含み、色検出部２９は、ベクトルの色を検出するベクトル色検出部３１と、閉領域の色を検出する閉領域色検出部３３とで構成されている。
【００３０】
図２は、このようなデジタル複写機１００の動作を示すメインフローチャートである。図２に示すフローチャートは、デジタル複写機１００のメモリ１３（ＲＯＭ）に制御プログラムとして記憶されており、制御部１７（ＣＰＵ）によって実行される。
【００３１】
まず、ステップＳ１０００では、ユーザによって、操作パネル１上の１０キーやタッチパネルディスプレイに表示された設定画面を使ってコピーモードが設定される。コピーモードには、たとえば、コピー枚数、コピー用紙、コピー倍率、コピー濃度、片面／両面コピー、ノンソート／ソートなどがある。この時、ユーザは、併せて、ＡＤＦ５を使用してまたは使用せずに、コピーをとる原稿を所定の方法でセットしておく。
【００３２】
そして、ステップＳ２０００では、操作パネル１上のスタートキーが押されたか否かを判断する。スタートキーが押されていない場合は（Ｓ２０００：ＮＯ）、スタートキーが押されるまで待機し、スタートキーが押された場合は（Ｓ２０００：ＹＥＳ）、ユーザの指示があったものと判断して、ステップＳ３０００に進み、コピー動作を開始する。
【００３３】
ステップＳ３０００では、スキャナエンジン３で、セットされた原稿を読み取ってデジタル画像データ（ラスタデータ）に変換する。ＡＤＦ５を使用する場合は、複数枚の原稿が自動的に１枚ずつ送り出され、連続的に読取り動作が行われる。得られた画像データは、色の情報を持っている。
【００３４】
そして、ステップＳ４０００では、画像処理部７で、ステップＳ３０００で得られた画像データに対して所定の画像処理（後で詳述する）を行い、出力用の画像ファイルを作成する。
【００３５】
そして、ステップＳ５０００では、ステップＳ４０００で作成された画像ファイルをラスタライザ９でビットマップデータ（ラスタデータ）に展開した後、プリンタエンジン１１で用紙に印刷する。このとき、セットされた原稿がカラー原稿の場合は、カラー印刷が行われる。
【００３６】
図３は、図２の画像処理の内容を示すフローチャートである。なお、図３に示すフローチャートは、図２に示すフローチャートのサブルーチンとして、メモリ１３（ＲＯＭ）に記憶されている。
【００３７】
まず、ステップＳ４１００では、領域判別部１９で、ステップＳ３０００で得られた画像データに対して領域判別処理を行う。具体的には、スキャナエンジン３で読み取って得られた原稿画像（以下「入力画像」という）を、文字領域、図形領域、絵柄領域（写真領域）の３種類の領域に分類し、分割する。そして、以下に示すように、領域ごとに別々の処理を行う。
【００３８】
すなわち、まず、ステップＳ４２００で、文字領域か否かを判断する。文字領域の場合は（Ｓ４２００：ＹＥＳ）、ステップＳ４３００に進み、文字領域でない場合は（Ｓ４２００：ＮＯ）、ステップＳ４４００に進む。
【００３９】
文字領域の場合
ステップＳ４３００では、文字認識部２１で、文字領域に対して文字認識処理を行う。具体的には、文字領域に含まれる文字画像を認識して、文字データ（たとえば、ＪＩＳコードなどの文字コード）に変換する。
【００４０】
一方、ステップＳ４４００では、図形領域か否かを判断する。図形領域の場合は（Ｓ４４００：ＹＥＳ）、ステップＳ４５００に進み、図形領域でない、つまり、絵柄領域の場合は（Ｓ４４００：ＮＯ）、ステップＳ４８００に進む。
【００４１】
図形領域の場合
ステップＳ４５００では、ベクトル変換部２３で、図形領域に対してベクトル変換処理を行う。すなわち、図形領域に含まれる線図形（線分や曲線）を認識して、線幅の情報を持つベクトルデータに変換する。ここで、線幅の情報は、線幅検出部２５によって検出される。また、ベクトル自体は、始点と終点の座標で表現されている。この処理の具体的な内容は、後で詳述する。
【００４２】
そして、ステップＳ４６００では、閉領域抽出部２７で、ベクトル化されたデータに対して閉領域抽出処理を行う。すなわち、ステップＳ４５００で変換されたベクトルデータに基づいて、閉領域を抽出する。この処理の具体的な内容は、後で詳述する。
【００４３】
そして、ステップＳ４７００では、色検出部２９で、色検出処理を行う。すなわち、ステップＳ４５００で変換されたベクトルデータに付加される色情報（ベクトルの色、閉領域の色）を検出する。ベクトルの色は、ベクトル色検出部３１によって、閉領域の色は、閉領域色検出部３３によってそれぞれ検出される。この処理の具体的な内容は、後で詳述する。
【００４４】
なお、図形領域に対する上記一連の処理（ステップＳ４５００のベクトル変換処理、ステップＳ４６００の閉領域抽出処理、ステップＳ４７００の色検出処理）は、本発明に係る高度ベクトル変換機能を実現するための処理であり、ここでは、これら３つの処理をまとめて「高度ベクトル変換処理」と呼ぶこととする。
よって、高度ベクトル変換処理の結果得られるベクトルデータは、ベクトル（始点と終点の座標）の情報に加えて、線幅および色の情報を持つことになる。
【００４５】
絵柄領域の場合
ステップＳ４８００では、コピー画像処理部３５で、絵柄領域に対してコピー画像処理、具体的には、スムージングやエッジ強調などの前処理および誤差拡散法などの二値化処理を含んだ、原画像を忠実に再現するための画像処理を行う。
【００４６】
そして、すべての領域に対する処理が終わると、ステップＳ４９００では、合成処理部３７で、各部の処理結果である文字データ、ベクトルデータ（線幅と色の情報を持つ）および絵柄領域を合成し、合成後の画像データを所定のファイル形式（ＰＤＦなど）で記録した画像ファイルを作成する。この画像ファイルは、メモリ１３（ＲＡＭ）に記憶される。
【００４７】
図４は、図３のベクトル変換処理の内容を示すフローチャートである。なお、図４に示すフローチャートは、図３に示すフローチャートのサブルーチンとして、メモリ１３（ＲＯＭ）に記憶されている。
【００４８】
まず、ステップＳ４５０５では、図形領域の画像データに対して任意の適当な方法で二値化処理を行い、二値画像を得る。
【００４９】
そして、ステップＳ４５１０では、ステップＳ４５０５で得られた二値画像に対して任意の適当な方法で芯線化処理を行い、線幅１の中心線（芯線）を抽出する。
【００５０】
そして、ステップＳ４５１５では、ステップＳ４５１０で得られた芯線データを用いてベクトル化を行う。すなわち、芯線をベクトル（始点と終点の座標で表現される）に変換する（「芯線ベクトル」という）。このとき、芯線は、一般的には線分のベクトルの集まりで表現される。直線部分が長いとベクトルが長くなり、曲線の部分は短いベクトルの連続する集まりで表される。
【００５１】
なお、ここでは、線図形をベクトル化する方法として、芯線を抽出してベクトルにする方法を用いているが、ベクトル化の方法はこれに限定されるわけではなく、任意の適当な方法を用いることができる。
【００５２】
そして、ステップＳ４５２０では、ステップＳ４５１５でベクトル化された線図形の線幅を検出する。線幅の検出は、具体的には、たとえば、芯線化またはベクトル化の処理の中で得られるデータ（たとえば、線図形のエッジ部と芯線との距離に関するデータ）を統計処理する（たとえば、平均値を求めて２倍する）ことによって行われる。検出された線幅の情報は、対応する線図形のベクトルデータに付加される。なお、線幅の検出方法についても、任意の適当な方法を用いることができる。
【００５３】
そして、ステップＳ４５２５では、ステップＳ４５１５で得られたすべてのベクトル（芯線ベクトル）の中から１つのベクトルを選択し、選択されたベクトルに付加されているステップＳ４５２０で検出された線幅をあらかじめ設定されたしきい値と比較して、その線幅がしきい値よりも大きいか否かを判断する。これは、線図形をそのまま線として扱ってもよいかそれとも領域として扱うべきかを判別するためである。線幅がしきい値よりも大きい場合は（Ｓ４５２５：ＹＥＳ）、線ではなく領域として扱うべきと判断して、ステップＳ４５３０に進み、線幅がしきい値以下である場合は（Ｓ４５２５：ＮＯ）、そのまま線として扱ってもよいと判断して、ただちにステップＳ４５４０に進む。
【００５４】
ステップＳ４５３０では、その線幅を持つベクトルに対応する線図形の入力画像に対して任意の適当な方法でエッジの検出を行う。
【００５５】
そして、ステップＳ４５３５では、ステップＳ４５３０で検出されたエッジデータを用いてベクトル化を行う。すなわち、検出されたすべてのエッジをベクトルに変換する（「エッジベクトル」という）。エッジベクトルには、線幅が１である旨の情報が付与される。
【００５６】
そして、ステップＳ４５４０では、ステップＳ４５１５で得られたすべてのベクトル（芯線ベクトル）に対してステップＳ４５２５の比較処理が終了したか否かを判断する。すべての芯線ベクトルに対して比較処理が終了していない場合は（Ｓ４５４０：ＮＯ）は、ステップＳ４５２５に戻って、次の芯線ベクトルに対する比較処理を開始し、すべての芯線ベクトルに対して比較処理が終了している場合は（Ｓ４５４０：ＹＥＳ）、図３に示すフローチャートにリターンする。
【００５７】
図５は、図３の閉領域抽出処理の内容を示すフローチャートである。なお、図５に示すフローチャートは、図３に示すフローチャートのサブルーチンとして、メモリ１３（ＲＯＭ）に記憶されている。
【００５８】
まず、ステップＳ４６０５では、注目ベクトルの始点の座標をメモリ１３（ＲＡＭ）に保存する。なお、当該閉領域抽出処理の開始時には、ステップＳ４５００で得られたベクトル化されたデータ（ベクトル群）の中から１つのベクトルを選択し、これを注目ベクトルとする。また、ここでは、始点座標が保存される初期段階の注目ベクトルのことを「初期注目ベクトル」と呼んで、始点座標の保存を伴わない単なる注目ベクトルと区別することとする。
【００５９】
そして、ステップＳ４６１０では、注目ベクトルの終点に連結する他のベクトルが存在するか否かを判断する。この判断は、注目ベクトルの終点座標と同一の始点座標または終点座標を有するベクトルを、ベクトル群の中から探索することによって行われる。注目ベクトルの終点に連結する他のベクトルが存在する場合は（Ｓ４６１０：ＹＥＳ）、ステップＳ４６１５に進み、注目ベクトルの終点に連結する他のベクトルが存在しない場合は（Ｓ４６１０：ＮＯ）、ただちにステップＳ４６５５に進む。
【００６０】
ステップＳ４６１５では、ステップＳ４６１０で探索された他のベクトルの中から１つのベクトルを選択し、これを候補ベクトルとする。
【００６１】
そして、ステップＳ４６２０では、候補ベクトル以外に注目ベクトルの終点に連結するベクトルが存在するか否かを判断する。候補ベクトル以外に連結ベクトルが存在する場合は（Ｓ４６２０：ＹＥＳ）、ステップＳ４６２５に進み、候補ベクトル以外に連結ベクトルが存在しない場合は（Ｓ４６２０：ＮＯ）、ただちにステップＳ４６３０に進む。
【００６２】
ステップＳ４６２５では、初期注目ベクトルから現在の注目ベクトルまでのルートを示すベクトル群（「注目ベクトルまでのベクトル群」という）と候補ベクトル以外の連結ベクトル群とをメモリ１３（ＲＡＭ）に設けられたスタックに保存する。これは、ベクトルの分岐によって閉領域の抽出ができなくなることを防止するためである。
【００６３】
そして、ステップＳ４６３０では、候補ベクトルが今まで一度も使用されていないか否かを判断する。候補ベクトルが今まで一度も使用されていない場合は（Ｓ４６３０：ＹＥＳ）、ステップＳ４６３５に進み、候補ベクトルが今までに使用されたことがある場合は（Ｓ４６３０：ＮＯ）、ただちにステップＳ４６５５に進む。
【００６４】
ステップＳ４６３５では、候補ベクトルの終点の座標とステップＳ４６０５で保存された始点の座標とが一致するか否かを判断する。候補ベクトルの終点座標と保存されている始点座標とが一致しない場合は（Ｓ４６３５：ＮＯ）、ステップＳ４６４０に進み、候補ベクトルの終点座標と保存されている始点座標とが一致する場合は（Ｓ４６３５：ＹＥＳ）、閉領域が検出されたものと判断して、ステップＳ４６４５に進む。
【００６５】
ステップＳ４６４０では、候補ベクトルを注目ベクトルとして、ステップＳ４６１０に戻り、以上の処理を繰り返し行う。
【００６６】
一方、ステップＳ４６４５では、ステップＳ４６３５で検出された閉領域が今までに抽出された既にグループ化されている閉領域と同一か否かを判断する。この判断は、閉領域を構成するベクトル群同士を比較することによって行われる。検出された閉領域が既にグループ化されている閉領域と同一である場合は（Ｓ４６４５：ＹＥＳ）、ただちにステップＳ４６５５に進み、検出された閉領域が既にグループ化されている閉領域と同一でない場合は（Ｓ４６４５：ＮＯ）、ステップＳ４６５０に進む。
【００６７】
ステップＳ４６５０では、検出されたベクトル群を新しい閉領域としてグループ化する。
【００６８】
そして、ステップＳ４６５５では、スタックに何かデータが保存されているか否かを判断する。この判断は、上記のように、注目ベクトルの終点に連結する他のベクトルが存在しない場合（Ｓ４６１０：ＮＯ）、候補ベクトルが今までに使用されたことがある場合（Ｓ４６３０：ＮＯ）、既にグループ化されている閉領域と同一の閉領域を検出した場合（Ｓ４６４５：ＹＥＳ）にそれぞれ行われる。スタックにデータが保存されている場合は（Ｓ４６５５：ＹＥＳ）、ステップＳ４６６０に進み、スタックにデータが保存されていない場合は（Ｓ４６５５：ＮＯ）、スタックに保存されているデータをすべて探索し終えたものと判断して、ステップＳ４６７０に進む。
【００６９】
ステップＳ４６６０では、スタックからデータを読み出す。
【００７０】
そして、ステップＳ４６６５では、読み出されたスタック内の連結ベクトル群の中から１つのベクトルを選択し、これを候補ベクトルとして、ステップＳ４６２０に戻る。これにより、分岐による探索漏れをなくすことができる。
【００７１】
一方、ステップＳ４６７０では、ステップＳ４５００で得られたベクトル群の中のすべてのベクトルに対して閉領域の抽出が終了したか否かを判断する。全ベクトルに対して閉領域の抽出が終了していない場合は（Ｓ４６７０：ＮＯ）、ステップＳ４６７５に進み、全ベクトルに対して閉領域の抽出が終了した場合は（Ｓ４６７０：ＹＥＳ）、当該閉領域抽出処理を終了して、図３のフローチャートにリターンする。
【００７２】
ステップＳ４６７５では、ステップＳ４５００で得られたベクトル群の中から次の１つのベクトルを選択し、これを初期注目ベクトルとする。そして、ステップＳ４６０５に戻り、以上の処理を繰り返し行う。
【００７３】
次に、図９〜図１４を参照して、閉領域抽出処理の内容をさらに具体的に説明する。ここで、図９は、ベクトル化されたデータ（ベクトル群）を示す図であり、図１０〜図１４は、スタックに保存されているデータを示す図である。
【００７４】
まず、ベクトルＡＢを初期注目ベクトルとして選択し、この初期注目ベクトルＡＢの始点Ａの座標をメモリ１３（ＲＡＭ）に保存する（Ｓ４６０５）。そして、この注目ベクトルＡＢの終点Ｂに連結する他のベクトルを探索し、この場合、注目ベクトルＡＢの終点Ｂに連結する他のベクトルが２つ存在するため（Ｓ４６１０：ＹＥＳ）、その中の１つのベクトルＢＣを候補ベクトルとして選択し（Ｓ４６１５）、さらに、候補ベクトルＢＣ以外の連結ベクトル（ベクトルＢＥ）が存在するので（Ｓ４６２０：ＹＥＳ）、注目ベクトルまでのベクトル群（ベクトルＡＢ）と候補ベクトル以外の連結ベクトル群（ベクトルＢＥ）とをスタックに保存する（図１０参照）（Ｓ４６２５）。そして、候補ベクトルＢＣは一度も使用されておらず（Ｓ４６３０：ＹＥＳ）、候補ベクトルＢＣの終点Ｃは保存されている始点Ａと一致していないので（Ｓ４６３５：ＮＯ）、候補ベクトルＢＣを注目ベクトルとする（Ｓ４６４０）。
【００７５】
そして、注目ベクトルＢＣの終点Ｃに連結する他のベクトルを探索し、この場合、注目ベクトルＢＣの終点Ｃに連結する他のベクトルが１つ存在するため（Ｓ４６１０：ＹＥＳ）、このベクトルＣＤを候補ベクトルとして選択し（Ｓ４６１５）、この候補ベクトルＣＤ以外には連結ベクトルは存在しないので（Ｓ４６２０：ＮＯ）、スタックへのデータの保存は行わない。そして、候補ベクトルＣＤは一度も使用されておらず（Ｓ４６３０：ＹＥＳ）、候補ベクトルＣＤの終点Ｄは保存されている始点Ａと一致していないので（Ｓ４６３５：ＮＯ）、候補ベクトルＣＤを注目ベクトルとする（Ｓ４６４０）。
【００７６】
そして、注目ベクトルＣＤの終点Ｄに連結する他のベクトルを探索し、この場合、注目ベクトルＣＤの終点Ｄに連結する他のベクトルは存在せず（Ｓ４６１０：ＮＯ）、スタックにはデータが保存されているので（図１０参照）（Ｓ４６５５：ＹＥＳ）、スタックからデータを読み出し（Ｓ４６６０）、連結ベクトル群の中から１つのベクトルＢＥを選択し、候補ベクトルとする（Ｓ４６６５）。この時点で、一旦、スタックは空になる。
【００７７】
この場合、候補ベクトルＢＥ以外には連結ベクトルは存在しないので（Ｓ４６２０：ＮＯ）、スタックへのデータの保存は行わない。そして、候補ベクトルＢＥは一度も使用されておらず（Ｓ４６３０：ＹＥＳ）、候補ベクトルＢＥの終点Ｅは保存されている始点Ａと一致していないので（Ｓ４６３５：ＮＯ）、候補ベクトルＢＥを注目ベクトルとする（Ｓ４３４０）。
【００７８】
そして、注目ベクトルＢＥの終点Ｅに連結する他のベクトルを探索し、この場合、注目ベクトルＢＥの終点Ｅに連結する他のベクトルが３つ存在するため（Ｓ４６１０：ＹＥＳ）、その中の１つのベクトルＥＦを候補ベクトルとして選択し（Ｓ４６１５）、さらに、候補ベクトルＥＦ以外にも連結ベクトル（ベクトルＥＧ、ベクトルＥＨ）が存在するので（Ｓ４６２０：ＹＥＳ）、注目ベクトルまでのベクトル群（ベクトルＡＢ、ベクトルＢＥ）と候補ベクトル以外の連結ベクトル群（ベクトルＥＧ、ベクトルＥＨ）とをスタックに保存する（図１１参照）（Ｓ４６２５）。そして、候補ベクトルＥＦは一度も使用されておらず（Ｓ４６３０：ＹＥＳ）、候補ベクトルＥＦの終点Ｆは保存されている始点Ａと一致していないので（Ｓ４６３５：ＮＯ）、候補ベクトルＥＦを注目ベクトルとする（Ｓ４６４０）。
【００７９】
そして、注目ベクトルＥＦの終点Ｆに連結する他のベクトルを探索し、この場合、注目ベクトルＥＦの終点Ｆに連結する他のベクトルが１つ存在するため（Ｓ６１０５：ＹＥＳ）、このベクトルＦＧを候補ベクトルとして選択し（Ｓ４６１５）、この候補ベクトルＦＧ以外には連結ベクトルは存在しないので（Ｓ４６２０：ＮＯ）、スタックへのデータの保存は行わない。そして、候補ベクトルＦＧは一度も使用されておらず（Ｓ４６３０：ＹＥＳ）、候補ベクトルＦＧの終点Ｇは保存されている始点Ａと一致していないので（Ｓ４６３５：ＮＯ）、候補ベクトルＦＧを注目ベクトルとする（Ｓ４６４０）。
【００８０】
そして、注目ベクトルＦＧの終点Ｇに連結する他のベクトルを探索し、この場合、注目ベクトルＦＧの終点Ｇに連結する他のベクトルが１つ存在するため（Ｓ４６１０：ＹＥＳ）、このベクトルＧＥを候補ベクトルとして選択し（Ｓ４６１５）、この候補ベクトルＧＥ以外には連結ベクトルは存在しないので（Ｓ４６２０：ＮＯ）、スタックへのデータの保存は行わない。そして、候補ベクトルＧＥは一度も使用されておらず（Ｓ４６３０：ＹＥＳ）、候補ベクトルＧＥの終点Ｅは保存されている始点Ａと一致していないので（Ｓ４６３５：ＮＯ）、候補ベクトルＧＥを注目ベクトルとする（Ｓ４６４０）。
【００８１】
そして、注目ベクトルＧＥの終点Ｅに連結する他のベクトルを探索し、この場合、注目ベクトルＧＥの終点Ｅに連結する他のベクトルが３つ存在するため（Ｓ４６１０：ＹＥＳ）、その中の１つのベクトルＥＢを候補ベクトルとして選択し（Ｓ４６１５）、さらに、候補ベクトルＥＢ以外にも連結ベクトル（ベクトルＥＦ、ベクトルＥＨ）が存在するので（Ｓ４６２０：ＹＥＳ）、注目ベクトルまでのベクトル群（ベクトルＡＢ、ベクトルＢＥ、ベクトルＥＦ、ベクトルＦＧ、ベクトルＧＥ）と候補ベクトル以外の連結ベクトル群（ベクトルＥＦ、ベクトルＥＨ）とをスタックに保存する（図１２参照）（Ｓ４６２５）。しかし、候補ベクトルＥＢはこれまでのルートで使用されており（Ｓ４６３０：ＮＯ）、スタックにはデータが保存されているので（図１２参照）（Ｓ４６５５：ＹＥＳ）、スタックからデータを読み出し（Ｓ４６６０）、連結ベクトル群の中から１つのベクトルＥＦを選択し、候補ベクトルとする（Ｓ４６６５）。この時点で、スタックに保存されているデータは、一旦、図１１に示すようになる。
【００８２】
この場合、候補ベクトルＥＦ以外の他の連結ベクトル（ベクトルＥＨ）が存在するので（Ｓ４６２０：ＹＥＳ）、注目ベクトルまでのベクトル群（ベクトルＡＢ、ベクトルＢＥ、ベクトルＥＦ、ベクトルＦＧ、ベクトルＧＥ）と候補ベクトル以外の連結ベクトル群（ベクトルＥＨ）とをスタックに保存する（図１３参照）（Ｓ４６２５）。しかし、候補ベクトルＥＦもこれまでのルートで使用されており（Ｓ４６３０：ＮＯ）、スタックにはデータが保存されているので（図１３参照）（Ｓ４６５５：ＹＥＳ）、スタックからデータを読み出し（Ｓ４６６０）、連結ベクトル群の中から１つのベクトルＥＨを選択し、候補ベクトルとする（Ｓ４６６５）。この時点で、スタックに保存されているデータは、再度、図１１に示すようになる。
【００８３】
この場合、候補ベクトルＥＨ以外には連結ベクトルは存在しないので（Ｓ４６２０：ＮＯ）、スタックへのデータの保存は行わない。そして、候補ベクトルＥＨは一度も使用されておらず（Ｓ４６３０：ＹＥＳ）、候補ベクトルＥＨの終点Ｈは保存されている始点Ａと一致していないので（Ｓ４６３５：ＮＯ）、候補ベクトルＥＨを注目ベクトルとする（Ｓ４６４０）。
【００８４】
そして、注目ベクトルＥＨの終点Ｈに連結する他のベクトルを探索し、この場合、注目ベクトルＥＨの終点Ｈに連結する他のベクトルは存在せず（Ｓ４６１０：ＮＯ）、スタックにはデータが保存されているので（図１１参照）（Ｓ４６５５：ＹＥＳ）、スタックからデータを読み出し（Ｓ４６６０）、連結ベクトル群の中から１つのベクトルＥＧを選択し、候補ベクトルとする（Ｓ４６６５）。この時点で、再度、スタックは空になる。
【００８５】
この場合、候補ベクトルＥＧ以外の他の連結ベクトル（ベクトルＥＨ）が存在するので（Ｓ４６２０：ＹＥＳ）、注目ベクトルまでのベクトル群（ベクトルＡＢ、ベクトルＢＥ）と候補ベクトル以外の連結ベクトル群（ベクトルＥＨ）とをスタックに保存する（図１４参照）（Ｓ４６２５）。しかし、候補ベクトルＥＧはこれまでのルートで使用されており（Ｓ４６３０：ＮＯ）、スタックにはデータが保存されているので（図１４参照）（Ｓ４６５５：ＹＥＳ）、スタックからデータを読み出し（Ｓ４６６０）、連結ベクトル群の中から１つのベクトルＥＨを選択し、候補ベクトルとする（Ｓ４６６５）。この時点で、スタックは空になる。
【００８６】
この場合、候補ベクトルＥＨ以外には連結ベクトルは存在しないので（Ｓ４６２０：ＮＯ）、スタックへのデータの保存は行わない。そして、候補ベクトルＥＨはこれまでのルートで使用されており（Ｓ４６３０：ＮＯ）、スタックにデータは何も保存されていないので（Ｓ４６５５：ＮＯ）、ベクトルＡＢに対する閉領域の抽出が終了する。しかし、全ベクトルに対して閉領域の抽出は終了していないので（Ｓ４６７０：ＮＯ）、ベクトル群（図９参照）の中から次の１つのベクトル（たとえば、ベクトルＢＣ）を初期注目ベクトルとして選択し（Ｓ４６７５）、ステップＳ４６０５に戻る。
【００８７】
そして、残りの各ベクトルに対して閉領域の抽出を順次行うと、初期注目ベクトルが、ベクトルＥＦ、ベクトルＦＧ、ベクトルＥＧの時に閉領域ＥＦＧが検出される。ただし、一番最初に検出された時だけ（Ｓ４６４５：ＮＯ）、閉領域としてグループ化される（Ｓ４６５０）。
【００８８】
図６は、図３の色検出処理の内容を示すフローチャートである。なお、図６に示すフローチャートは、図２に示すフローチャートのサブルーチンとして、メモリ１３（ＲＯＭ）に記憶されている。
【００８９】
まず、ステップＳ４７１０では、ステップＳ４５００で得られた各ベクトルの色（つまり、ベクトル化された線の色）を検出する。
【００９０】
そして、ステップＳ４７５０では、ステップＳ４６００で抽出された閉領域の色（つまり、ベクトル化された線（枠線）で囲まれた閉領域の色）を検出する。
【００９１】
図７は、図６のベクトル色検出処理の内容を示すフローチャートである。なお、図７に示すフローチャートは、図６に示すフローチャートのサブルーチンとして、メモリ１３（ＲＯＭ）に記憶されている。
【００９２】
このベクトル色検出処理を実行するに当たっては、ステップＳ４５００で得られたすべてのベクトルデータがメモリ１３（ＲＡＭ）から読み出される。なお、ベクトルデータは、前述のように、始点と終点の座標データからなり、この段階では、線幅の情報も付加されている。
【００９３】
まず、ステップＳ４７１５では、１つのベクトル（注目ベクトル）について、その始点座標と終点座標からベクトル上の中点（始点と終点を１：１に内分する点）の座標を計算する。
【００９４】
そして、ステップＳ４７２０では、入力画像データから、始点、終点、中点の３点の座標に対応する位置の色情報（ＲＧＢ、ＣＭＹＫ、Ｌ*ａ*ｂ*など）をそれぞれ取得する。
【００９５】
そして、ステップＳ４７２５では、始点、終点、中点の色情報の平均値を計算し、この平均値を当該ベクトルの色とする。
【００９６】
そして、ステップＳ４７３０では、すべてのベクトルに対して色の検出が終了したか否かを判断する。全ベクトルに対して色の検出が終了していない場合は（Ｓ４７３０：ＮＯ）、ステップＳ４７３５に進み、全ベクトルに対して色の検出が終了した場合は（Ｓ４７３０：ＹＥＳ）、当該ベクトル色検出処理を終了して、図６のフローチャートにリターンする。
【００９７】
ステップＳ４７３５では、次のベクトルを注目ベクトルとして選択して、ステップＳ４７１５に戻る。
【００９８】
図８は、図６の閉領域色検出処理の内容を示すフローチャートである。なお、図８に示すフローチャートは、図６に示すフローチャートのサブルーチンとしてメモリ１３（ＲＯＭ）に記憶されている。
【００９９】
この閉領域色検出処理を実行するに当たっては、ステップＳ４６００で得られた、閉領域としてグループ化されたすべてのベクトルデータ群が、メモリ１３（ＲＡＭ）から読み出される。なお、ベクトルデータは、前述のように、始点と終点の座標データに加えて、線幅の情報を有している。
【０１００】
まず、ステップＳ４７５５では、ある閉領域（注目閉領域）を構成するベクトル群の中の１つのベクトル（注目ベクトル）に対して、ベクトル上の１点からベクトルに垂直な方向に閉領域の内部へ所定の距離、たとえば、｛（線幅／２）＋α｝ドットだけ進んだ点（内部点）の座標を計算する。なお、内部点の座標の計算式は、もちろん、｛（線幅／２）＋α｝の式に限定されるわけではなく、線幅を含まない閉領域の内部点の座標を選択できる式であればどのような式でもよい。
【０１０１】
そして、ステップＳ４７６０では、入力画像データから、ステップＳ４７５５で得られた内部点の座標に対応する位置の色情報（ＲＧＢ、ＣＭＹＫ、Ｌ*ａ*ｂ*など）を取得する。
【０１０２】
そして、ステップＳ４７６５では、現在の注目ベクトルの長さ分、具体的には、その注目ベクトルに対する所定の数のサンプリング点について、色情報の取得が終了したか否かを判断する。注目ベクトルの長さ分について色情報の取得が終了した場合は（Ｓ４７６５：ＹＥＳ）、ステップＳ４７７０に進み、注目ベクトルの長さ分について色情報の取得が終了していない場合は（Ｓ４７６５：ＮＯ）、ステップＳ４７５５に戻る。
【０１０３】
ステップＳ４７７０では、現在の注目閉領域を構成するベクトル群の中のすべてのベクトルに対して、ベクトル長さ分の色情報の取得が終了したか否かを判断する。閉領域を構成する全ベクトルに対してベクトル長さ分の色情報の取得が終了していない場合は（Ｓ４７７０：ＮＯ）、ステップＳ４７７５に進み、閉領域を構成する全ベクトルに対してベクトル長さ分の色情報の取得が終了した場合は（Ｓ４７７０：ＹＥＳ）、ステップＳ４７８０に進む。
【０１０４】
ステップＳ４７７５では、現在の注目閉領域を構成するベクトル群の中の次のベクトルを注目ベクトルとして選択して、ステップＳ４７５５に戻る。
【０１０５】
ステップＳ４７８０では、閉領域を構成する全ベクトルについてそれぞれ取得されたベクトル長さ分の各色情報に対して、ヒストグラムを作成する。
【０１０６】
そして、ステップＳ４７８５では、ステップＳ４７８０で作成されたヒストグラムにおいて頻度が最も高い色情報の値（最多値）を求め、この最多値を当該閉領域の色とする。ここで、閉領域の色として最多値を用いるのは、次の理由による。ベクトルの交点付近は、閉領域内部の色ではなく、垂直に交わる線の色自体をピックアップする可能性があるので、ベクトル交点付近のデータを無視するために、ここでは最多値を閉領域の色としている。
【０１０７】
そして、ステップＳ４７９０では、抽出されたすべての閉領域に対して色の検出が終了したか否かを判断する。すべての閉領域に対して色の検出が終了していない場合は（Ｓ４７９０：ＮＯ）、ステップＳ４７９５に進み、すべての閉領域に対して色の検出が終了した場合は（Ｓ４７９０：ＹＥＳ）、当該閉領域色検出処理を終了して、図６のフローチャートにリターンする。
【０１０８】
ステップＳ４７９５では、抽出された閉領域の中の次の閉領域を注目閉領域として選択して、ステップＳ４７５５に戻る。
【０１０９】
なお、本実施の形態では、色の検出に当たって平均値（ベクトル色検出処理）や最多値（閉領域検出処理）を用いているが、これに限定されるわけではなく、たとえば、中央値（メディアン）などの他の統計値を用いてもよい。また、いずれの処理においても、色情報を取得するためのサンプリング点を多くとればとるほど、より正確な値を得ることができる。
【０１１０】
次に、図１５を用いて、図形領域に対する上記処理の具体例を説明する。ここでは、図１５（Ａ）に示すように、図形領域として黒色の枠線を持つ閉領域で内部が緑色で塗り潰されたものを例にとって説明する。なお、枠線の線幅は、しきい値よりも小さいとする。
【０１１１】
まず、図１５（Ａ）に示す枠線付き閉領域の画像データがベクトル変換部２３に入力されると、図３のステップＳ４５００（図４参照）で、順次、二値化（Ｓ４５０５）、芯線化（Ｓ４５１０）、ベクトル化（Ｓ４５１５）、線幅検出（Ｓ４５２０）が行われる。そして、この場合、線幅がしきい値よりも小さい（Ｓ４５２５：ＮＯ）ので、芯線ベクトルが出力される。具体的には、芯線ベクトルとして、図１５（Ｂ）に示すように、ベクトルＥＦ、ベクトルＦＧ、ベクトルＧＨ、ベクトルＨＥの４本のベクトルが出力される。これらのベクトルデータは、それぞれ、始点の座標、終点の座標、および線幅の情報を有している。
【０１１２】
そして、この４本分のベクトルデータが閉領域抽出部２７に入力されると、図３のステップＳ４６００（図５参照）で、まず、たとえば、ベクトルＥＦを注目ベクトル（初期注目ベクトル）として設定する。そして、ベクトルＥＦの始点Ｅの座標をメモリ１３（ＲＡＭ）に保存する（Ｓ４６０５）。そして、この場合、終点Ｆに連結する他のベクトルが１つ存在するので（Ｓ４６１０：ＹＥＳ）、このベクトルＦＧを候補ベクトルとする（Ｓ４６１５）。このベクトルＦＧはまだ一度も使用されておらず（Ｓ４６３０：ＹＥＳ）、ベクトルＦＧの終点Ｇの座標と保存されている始点Ｅの座標とは一致していないので（Ｓ４６３５：ＮＯ）、ベクトルＦＧを注目ベクトルとする（Ｓ４６４０）。
【０１１３】
そして、注目ベクトルＦＧについて同様の処理を行うと、今度は注目ベクトルがベクトルＧＦとなり、さらに、処理を続けると、今度は注目ベクトルがベクトルＨＥとなる。注目ベクトルがベクトルＨＥの場合、ベクトルＨＥの終点Ｅと保存されている始点Ｅの座標とが一致するので（Ｓ４６３５：ＹＥＳ）、このベクトル群（ベクトルＥＦ、ベクトルＦＧ、ベクトルＧＨ、ベクトルＨＥ）が既に閉領域としてグループ化されているか否かを判断する（Ｓ４６４５）。この場合、まだグループ化されていないので（Ｓ４６４５：ＮＯ）、このベクトル群（ベクトルＥＦ、ベクトルＦＧ、ベクトルＧＨ、ベクトルＨＥ）は、閉領域としてグループ化される（Ｓ４６５０）。
【０１１４】
そして、色検出部２９（ベクトル色検出部３１、閉領域色検出部３３）にて、図３のステップＳ４７００（図６〜図７参照）で、ベクトル自体の色と閉領域内部の色をそれぞれ検出する。
【０１１５】
ベクトル色検出処理では、４本分のベクトルデータがベクトル色検出部３１に入力されると、図６のステップＳ４７１０（図７参照）で、まず、たとえば、ベクトルＥＦを注目ベクトルとして設定する。そして、ベクトルＥＦの中点Ｉの座標を計算し（Ｓ４７１５）、入力画像データから、始点、終点、中点の各座標に対応する位置の色情報を取得し（Ｓ４７２０）、これらの平均値を計算して、ベクトルＥＦの色情報とする（Ｓ４７２５）。この処理を順次残りのベクトル、すなわち、ベクトルＦＧ（中点Ｊ）、ベクトルＧＨ（中点Ｋ）、ベクトルＨＥ（中点Ｌ）に対して行う。これにより、各ベクトル（ベクトルＥＦ、ベクトルＦＧ、ベクトルＧＨ、ベクトルＨＥ）に色情報を付加することができる（以上、図１５（Ｃ）参照）。
【０１１６】
一方、閉領域色検出処理では、閉領域と認識されたベクトル群が閉領域色検出部３３に入力されると、図６のステップＳ４７５０（図８参照）で、すべてのベクトルに対して、ベクトル上の１点からベクトルに垂直な方向に閉領域の内部へ所定の距離、｛（線幅／２）＋α｝ドットだけ進んだ点（内部点）の座標を計算し（Ｓ４７５５）、入力画像データから、内部点の座標に対応する位置の色情報を取得する（Ｓ４７２０）。そして、すべてのベクトルについてのベクトル長さ分の各色情報に対してヒストグラムを作成し（Ｓ４７８０）、その最多値を求めて、当該閉領域の色情報とする（Ｓ４７８５）。これにより、当該閉領域（ベクトル群）に対して閉領域内部の塗り潰し色として色情報を付加することができる（以上、図１５（Ｄ）参照）。
【０１１７】
したがって、本実施の形態によれば、図形をベクトルデータに変換する際に、線図形を線幅の情報を持つベクトルデータに変換するので、ベクトル変換後のデータ量をより一層低減することができ、また、アプリケーションソフトでデータを再利用する際にそのデータを加工（編集）しやすくなり、データの再利用時における使い勝手の向上を図ることができる。
【０１１８】
また、このように線図形は線幅の情報を持つベクトルデータに変換されるので、枠線を持つ閉領域は１つの塗り潰し閉領域として認識され、データ量の低減やデータ再利用時の使い勝手の向上に加えて、拡大・縮小の編集作業における線幅の変化を防止することができる。
【０１１９】
また、ベクトル自体の色や閉領域内部の色を検出してベクトルデータに付加するので、図形の色（線自体の色や閉領域内部の塗り潰し色）を忠実に再現することができる。
【０１２０】
これらを図面を使ってさらに具体的に説明すると、次のとおりである。
【０１２１】
まず、図１６を参照して、黒色の線分をベクトル変換する場合を説明する。図１６に示すように、線分は、従来の方法では、４本のベクトルで囲まれた閉領域で内部が黒色で塗り潰されているものとして認識されるが、本発明では、黒色の線分で線幅８（ポイント）を持つ１本のベクトルとして認識される。したがって、線分として描かれる図形は、ベクトル変換後に４本のベクトルで囲まれた閉領域として出力される（従来技術）よりも、線幅の情報を持つ１本のベクトルとして出力される（本発明）ほうが、アプリケーションソフトでデータを再利用する際に加工（編集）しやすく、かつ、ベクトルデータ量も少なくて済む。
【０１２２】
次に、図１７を参照して、黒色の枠線を持つ閉領域で内部が緑色で塗り潰されたものをベクトル変換する場合を説明する。
【０１２３】
かかる閉領域は、従来の方法では、２つの閉領域としてベクトル化され、外側の大きい四角形は内部が黒色で塗り潰され、内側の小さい四角形は内部が緑色で塗り潰されているものとして認識されるが、本発明では、１つの閉領域としてベクトル化され、四角形の枠線が黒色でかつ線幅８（ポイント）で内部が緑色で塗り潰されている閉領域として認識される。よって、本発明によるベクトル変換のほうが、アプリケーションソフトでデータを再利用する際に加工（編集）しやすく、かつ、ベクトルデータ量も少なくて済む。
【０１２４】
また、図１７に示すように、かかる閉領域をベクトル変換した後に１.５倍に拡大する場合、従来の方法では、かかる閉領域は上記のように２つの閉領域としてベクトル化されてしまうため、枠線の線幅が変わってしまうが、本発明では、上記のように、枠線は線幅の情報を持つベクトルとしてベクトル化され、内部は緑色に塗り潰されていると認識されているので、拡大しても線幅は変化しない（縮小の場合も同様）。
【０１２５】
なお、本実施の形態では、本発明に係る画像処理装置をスタンドアローンのデジタル複写機１００に適用した場合（図１８参照）を例にとって説明したが、これに限定されるわけではない。たとえば、本発明に係る画像処理装置は、図１９に示すように、ネットワーク２００に接続された画像入力装置２１０（たとえば、スキャナ）と画像形成装置２２０（たとえば、プリンタ）からなる複写システムにも適用可能である。この場合、本発明に係る画像処理装置は、画像処理装置２１０と画像形成装置２２０のいずれに搭載してもよい。
【０１２６】
以下、本発明のさらに他の適用例をいくつか簡単に説明しておく。なお、いずれの場合も、たとえば、図１に示す画像処理部７を備えており、画像データ（ラスタデータ）の中の図形領域を線幅や色の情報を持つベクトルデータに変換する機能（高度ベクトル変換機能）を有している。
【０１２７】
（第２の実施の形態）
図２０に示す適用例は、ベクトル変換後の図形データ（ベクトルデータ）を印刷（用紙に出力）する代わりに、電子ファイルの状態で出力する場合である。すなわち、図２０に示す第２の実施の形態に対応する画像処理装置は、高度ベクトル変換機能を有する電子ファイル作成機３００として構成されている。
【０１２８】
電子ファイル作成機３００は、図示しないが、スキャナエンジン、上記画像処理部７、各種外部機器（たとえば、各種ＰＤＡ、ノートパソコンなど）と接続するための各種外部出力ポート、リムーバブルタイプの各種記憶メディア（たとえば、フロッピーディスク、Ｚｉｐ、ＰＣカード型メモリ（以下単に「ＰＣカード」という）、ＭＯディスクなど）を読み書きするための各種記録メディアドライブ、およびＬＡＮなどのネットワークと接続するためのネットワークポートなどを有する。ここでは、外部出力ポート、記録メディアドライブ、ネットワークポートの３つをまとめて「外部出力部」と呼ぶことにする。外部出力ポートは、たとえば、ＵＳＢやＩＥＥＥ１３９４、ＩＥＥＥ１２８４などのシリアル／パラレルポートで構成され、ネットワークポートは、たとえば、イーサネット（Ethernet）などで構成されている。また、記録メディアドライブには、たとえば、フロッピーディスクドライブ、Ｚｉｐドライブ、ＰＣカードドライブ、ＭＯディスクドライブなどがある。
【０１２９】
スキャナエンジンで読み取って得られた画像データ（ラスタデータ）は、画像処理部７で処理され、その結果、所定の形式（たとえば、ＰＤＦ）の画像ファイルが作成される（図３参照）。この時、前述のように、画像データの中の図形領域は、線幅や色の情報を持つベクトルデータに変換されている。作成された画像ファイルは、図２０に示すように、適宜、外部出力部（外部出力ポート、記録メディアドライブ、ネットワークポート）から所望の出力先（たとえば、パソコン、フロッピーディスク、Ｚｉｐ、ＰＣカード、ＭＯディスク、ネットワークなど）に出力される。
【０１３０】
（第３の実施の形態）
図２１に示す適用例は、原稿を直接読み取って画像データを取得する代わりに、外部機器（たとえば、外部スキャナ、デジタルカメラ、メモリ内蔵型ハンディスキャナなど）を用いて取得された画像データを取り込む場合である。すなわち、図２１に示す第３の実施の形態に対応する画像処理装置は、高度ベクトル変換機能を有する印刷機４００として構成されている。
【０１３１】
印刷機４００は、図示しないが、各種外部機器（外部スキャナ、デジタルカメラ、メモリ内蔵型ハンディスキャナなど）と接続するための各種外部入力ポート、上記画像処理部７、およびプリンタエンジンなどを有する。さらに、各種の記録メディアドライブやネットワークポートを有することもできる。この場合、外部入力ポート、記録メディアドライブおよびネットワークポートは、外部から画像データを取り込むために使用される。
【０１３２】
外部機器（外部スキャナ、デジタルカメラ、メモリ内蔵型ハンディスキャナなど）を用いて取得された画像データは、外部入力ポートを通じて取り込まれ、画像処理部７で処理された後、プリンタエンジンで印刷される。すなわち、この場合は、図２１に示すように、適宜、所望の画像入力先（外部スキャナ、デジタルカメラ、メモリ内蔵型ハンディスキャナなど）から画像データを取り込んで印刷を行う。
【０１３３】
（第４の実施の形態）
図２２に示す適用例は、ネットワークを経由して画像データを受信した後、高度ベクトル変換機能を含む画像処理を行い、得られた画像ファイルを再びネットワーク経由で外部に送信する場合である。すなわち、図２２に示す第４の実施の形態に対応する画像処理装置は、ネットワーク上で他のコンピュータなどに対して高度ベクトル変換機能を含む画像処理のサービスを提供するサーバ５００（以下「画像処理サーバ」という）として構成されている。
【０１３４】
画像処理サーバ５００は、図示しないが、ネットワークポートおよび上記画像処理部７などを有する。この場合、高度ベクトル変換機能に必要なパラメータ（たとえば、しきい値など）は、必ずしも操作パネルから入力する必要はなく、ネットワーク経由で外部から入力される。
【０１３５】
ネットワーク経由でネットワークポートを通じて受信された画像データは、画像処理部７で処理され、その結果、所定の形式（たとえば、ＰＤＦ）の画像ファイルが作成される（図３参照）。作成された画像ファイルは、図２２に示すように、要求に応じて、再びネットワークポートを通じてネットワーク経由で外部に送信される。すなわち、この場合は、図２２に示すように、ネットワーク上の任意のコンピュータで動作中のあるアプリケーション（送信元）から画像データと必要なパラメータを受信して、高度ベクトル変換機能を含む画像処理を行い、線幅や色の情報を持つベクトルデータを含んだ画像ファイルを再びネットワーク上の任意のコンピュータ（複数でもよい）で動作中のあるアプリケーション（送信先）に送信する。
【０１３６】
（第５の実施の形態）
図２３に示す適用例は、本体内に特定のスキャナエンジンやプリンタエンジンを設けることなく、単に高度ベクトル変換機能を含む画像処理機能のみを持たせて、必要に応じて外部入力機器（たとえば、スキャナなど）や外部出力機器（たとえば、プリンタなど）を接続して利用するようにした場合である。すなわち、図２３に示す第５の実施の形態に対応する画像処理装置は、高度ベクトル変換機能を有するコントローラ６００として構成されている。
【０１３７】
コントローラ６００は、図示しないが、外部入力ポート、上記画像処理部７、および外部出力ポートなどを有する。なお、外部入力ポートおよび外部出力ポートは、それぞれ、データの入力と出力が可能な入出力ポートであってもよい。ここでは、コントローラ６００に外部入力機器としてスキャナを、外部出力機器としてプリンタをそれぞれ接続して、当該コントローラ６００をスキャナ／プリンタコントローラとして機能させる場合を例示してある。
【０１３８】
スキャナを用いて原稿を読み取って得られた画像データは、外部入力ポートを通じて取り込まれた後、画像処理部７で処理され、その結果、所定の形式（たとえば、ＰＤＦ）の画像ファイルが作成される（図３参照）。作成された画像ファイルは、図２３に示すように、外部出力ポートを通じてプリンタへ送信される。
【０１３９】
なお、上記各実施の形態において、高度ベクトル変換機能は、上記処理手順（図３〜図８参照）を記述した所定のプログラムをＣＰＵが実行することによって行われるものであり、この所定のプログラムはコンピュータ読取可能な記録媒体（たとえば、フロッピーディスクやＣＤ−ＲＯＭなど）によって提供されることもできる。この場合、コンピュータ読取可能な記録媒体に記録されているプログラムは、通常、ハードディスクに転送され記憶される。また、この所定のプログラムは、たとえば、単独で上記各処理を実行するアプリケーションソフトとして提供されてもよいし、また、各装置１００〜６００の一機能として各装置１００〜６００のソフトウェアに組み込んでもよい。
【０１４０】
【発明の効果】
以上説明したように、本発明によれば、図形をベクトルデータに変換する際に、線図形を線幅の情報を持つベクトルデータに変換するので、ベクトル変換後のデータ量をより一層低減することができ、また、アプリケーションソフトでデータを再利用する際にそのデータを加工（編集）しやすくなり、データの再利用時における使い勝手の向上を図ることができる。
【０１４１】
また、このように線図形は線幅の情報を持つベクトルデータに変換されるので、枠線を持つ閉領域は１つの塗り潰し閉領域として認識され、データ量の低減やデータ再利用時の使い勝手の向上に加えて、拡大・縮小の編集作業における線幅の変化を防止することができる。
【０１４２】
さらに、図形の閉領域内部の色または線図形の色を検出してベクトルデータに付加するので、図形の色を忠実に再現することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に対応するデジタル複写機の構成を示すブロック図である。
【図２】デジタル複写機の動作を示すメインフローチャートである。
【図３】図２の画像処理の内容を示すフローチャートである。
【図４】図３のベクトル変換処理の内容を示すフローチャートである。
【図５】図３の閉領域抽出処理の内容を示すフローチャートである。
【図６】図３の色検出処理の内容を示すフローチャートである。
【図７】図６のベクトル色検出処理の内容を示すフローチャートである。
【図８】図６の閉領域色検出処理の内容を示すフローチャートである。
【図９】ベクトル化されたデータ（ベクトル群）の一例を示す図である。
【図１０】スタックに保存されているデータを示す図である。
【図１１】スタックに保存されているデータを示す図である。
【図１２】スタックに保存されているデータを示す図である。
【図１３】スタックに保存されているデータを示す図である。
【図１４】スタックに保存されているデータを示す図である。
【図１５】枠線を持つ閉領域に対する高度ベクトル変換処理を説明するための図である。
【図１６】線分に対するベクトル変換処理の結果を従来技術と本発明とで比較して示した図である。
【図１７】枠線を持つ閉領域に対するベクトル変換処理の結果を従来技術と本発明とで比較して示した図である。
【図１８】第１の実施の形態の適用例を示す図である。
【図１９】第１の実施の形態の一変更例を示す図である。
【図２０】本発明の第２の実施の形態に対応する適用例（電子ファイル作成機）を示す図である。
【図２１】本発明の第３の実施の形態に対応する適用例（印刷機）を示す図である。
【図２２】本発明の第４の実施の形態に対応する適用例（画像処理サーバ）を示す図である。
【図２３】本発明の第５の実施の形態に対応する適用例（コントローラ）を示す図である。
【符号の説明】
７…画像処理部、
１９…領域判別部、
２１…文字認識部、
２３…ベクトル変換部、
２５…線幅検出部、
２７…閉領域抽出部、
２９…色検出部、
３１…ベクトル色検出部、
３３…閉領域色検出部、
３５…コピー画像処理部、
３７…合成処理部、
１００…デジタル複写機、
２００…ネットワーク、
２１０…画像入力装置、
２２０…画像形成装置、
３００…電子ファイル作成機、
４００…印刷機、
５００…画像処理サーバ、
６００…コントローラ。
【図１】
0004586241.tif 000002
【図２】
0004586241.tif 000003
【図３】
0004586241.tif 000004
【図４】
0004586241.tif 000005
【図５】
0004586241.tif 000006
【図６】
0004586241.tif 000007
【図７】
0004586241.tif 000008
【図８】
0004586241.tif 000009
【図９】
0004586241.tif 000010
【図１０】
0004586241.tif 000011
【図１１】
0004586241.tif 000012
【図１２】
0004586241.tif 000013
【図１３】
0004586241.tif 000014
【図１４】
0004586241.tif 000015
【図１５】
0004586241.tif 000016
【図１６】
0004586241.tif 000017
【図１７】
0004586241.tif 000018
【図１８】
0004586241.tif 000019
【図１９】
0004586241.tif 000020
【図２０】
0004586241.tif 000021
【図２１】
0004586241.tif 000022
【図２２】
0004586241.tif 000023
【図２３】
0004586241.tif 000024