(57)【特許請求の範囲】
【請求項１】
画像処理装置の画像入力手段が、ベクトル化処理対象画像を入力する画像入力工程と、
前記画像処理装置の芯線抽出手段が、前記ベクトル化処理対象画像の芯線を抽出する芯線抽出工程と、
前記画像処理装置の線幅推定手段が、前記芯線抽出工程にて得られる芯線の画素毎に元の線幅を計算する線幅推定工程と、
前記画像処理装置の判定手段が、前記芯線抽出工程にて得られた芯線を交点及び端点間で区切った区間毎に、前記線幅推定工程にて得られた芯線の画素毎の線幅値を用いて、等幅線を表しているか面図形を表しているかを判定する判定工程と、
前記画像処理装置の分離手段が、前記判定工程で前記等幅線を表すと判定された区間の芯線と、前記判定工程で前記面図形を表すと判定された区間の芯線と、前記ベクトル化処理対象画像とに基づいて、前記ベクトル化処理対象画像から前記等幅線に対応する部分の画像を除いた前記面図形に対応する部分の画像で構成される面画像を抽出する分離工程と、
前記画像処理装置の手段が、前記判定工程で等幅線と判定された芯線と、前記分離工程にて抽出された前記面画像の輪郭のそれぞれを関数近似する関数近似工程と
を有することを特徴とする画像処理方法。
【請求項２】
前記芯線抽出工程は、前記ベクトル化処理対象画像に細線化処理を行うことにより、前記ベクトル化処理対象画像の芯線を抽出することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記線幅推定工程は
前記ベクトル化処理対象画像における各図形画素について、背景画素までの距離値に変換する工程と、
前記芯線の画素を順に注目芯線画素とし、当該注目芯線画素の周囲８近傍に位置する画素の距離値の最大値を注目芯線画素の距離値に加算することで当該注目芯線画素の線幅を推定する工程とからなることを特徴とする請求項１に記載の画像処理方法。
【請求項４】
前記判定工程は
前記区間毎に芯線の線幅値の分散を求める工程と、
前記分散が閾値以下の場合に等幅線と判定する工程と、
前記分散が閾値より大きい場合に面図形と判定する工程とからなることを特徴とする請求項１に記載の画像処理方法。
【請求項５】
前記判定工程で等幅線と判定した区間の芯線に対して線幅情報を推定し、推定した線幅情報をベクトルデータに付与することを特徴とする請求項１に記載の画像処理方法。
【請求項６】
前記分離工程は
前記判定工程で等幅線と判定された区間の芯線に対して膨張処理する線膨張処理工程と、
前記判定工程で面図形と判定された区間の芯線に対して膨張処理する面膨張処理工程と、
前記ベクトル化処理対象画像と前記線膨張処理工程の結果との差分を求める差分算出工程と、
前記ベクトル化処理対象画像と前記面膨張処理工程の結果との論理積を求める論理積算出工程と、
前記差分算出工程の処理結果と前記論理積算出工程の処理結果との論理和を求めることにより、前記面画像を抽出する工程とからなることを特徴とする請求項１に記載の画像処理方法。
【請求項７】
ベクトル化処理対象画像を入力する画像入力手段と、
前記ベクトル化処理対象画像の芯線を抽出する芯線抽出手段と、
前記芯線抽出手段にて得られる芯線の画素毎に元の線幅を計算する線幅推定手段と、
前記芯線抽出手段にて得られた芯線を交点及び端点間で区切った区間毎に、前記線幅推定手段にて得られた芯線の画素毎の線幅値を用いて、等幅線を表しているか面図形を表しているかを判定する判定手段と、
前記判定手段で前記等幅線を表すと判定された区間の芯線と、前記判定工程で前記面図形を表すと判定された区間の芯線と、前記ベクトル化処理対象画像とに基づいて、前記ベクトル化処理対象画像から前記等幅線に対応する部分の画像を除いた前記面図形に対応する部分の画像で構成される面画像を抽出する分離手段と、
前記判定手段で等幅線と判定された芯線と、前記分離手段にて抽出された前記面画像の輪郭のそれぞれを関数近似する関数近似手段を有することを特徴とする画像処理装置。
【請求項８】
前記芯線抽出手段は、前記ベクトル化処理対象画像に細線化処理を行うことにより、前記ベクトル化処理対象画像の芯線を抽出することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記線幅推定手段は
前記ベクトル化処理対象画像における各図形画素について、背景画素までの距離値に変換する手段と、
前記芯線の画素を順に注目芯線画素とし、当該注目芯線画素の周囲８近傍に位置する画素の距離値の最大値を注目芯線画素の距離値に加算することで前記注目芯線画素の線幅を推定する手段とからなることを特徴とする請求項７に記載の画像処理装置。
【請求項１０】
前記判定手段は
前記区間毎に芯線の線幅値の分散を求める手段と、
前記分散が閾値以下の場合に等幅線と判定する手段と、
前記分散が閾値より大きい場合に面図形と判定する手段とからなることを特徴とする請求項７に記載の画像処理装置。
【請求項１１】
前記判定手段で等幅線と判定した区間の芯線に対して線幅情報を推定し、推定した線幅情報をベクトルデータに付与することを特徴とする請求項７に記載の画像処理装置。
【請求項１２】
前記分離手段は
前記判定手段で等幅線と判定された区間の芯線に対して膨張処理する線膨張処理手段と、
前記判定手段で面図形と判定された区間の芯線に対して膨張処理する面膨張処理手段と、
前記ベクトル化処理対象画像と前記線膨張処理手段の結果との差分を求める差分算出手段と、
前記ベクトル化処理対象画像と前記面膨張処理手段の結果との論理積を求める論理積算出手段と、
前記差分算出手段の処理結果と前記論理積算出手段の処理結果との論理和を求めることにより、前記面画像を抽出する手段とからなることを特徴とする請求項７に記載の画像処理装置。
【請求項１３】
コンピュータを、前記請求項７〜１２のいずれかに記載の画像処理装置として機能させることを特徴とするプログラム。
【請求項１４】
請求項１３に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、図面や文書画像内の線図形等の処理に向く、ラスタ走査順に記憶された二値画像から図形のベクトル情報を生成する方法とその装置に関する。特に、等幅線部分と面部分の混在した二値画像に対して、等幅線部分は細線化して得られる芯線をベクトル化処理した後に再生時の線幅情報を付与する一方、面部分は輪郭をベクトル化処理することを特徴とする方法とその装置に関するものである。
【背景技術】
【０００２】
近年、ペーパーレス化への要求が高まり、既存の画像データを電子化して再利用することが頻繁に行われるようになってきた。従来、図面や文書画像内の線図形といった画像データの再利用は、画像データを二値化処理した後にベクトル化技術を用いてベクトルデータに変換し、このベクトルデータをＣＡＤソフト等で使用するという形で行われてきた。
【０００３】
またビジネス文書においても、既存の画像データを電子化して再利用することが望まれている。例えば、原画の各部分の部分的な太さの差や面積等をも、所望する変倍率を反映した形で（即ち、原画中の太い部分は変倍後の図中でも相対的に太く、原画中での細い部分では変倍後の図中でも相対的に細く）変倍するような再利用形態がある。このような再利用形態については、オリジナル文書中の画像の二値画像を作成し、その輪郭をベクトル化処理する輪郭ベクトル化処理で実現出来る。
【０００４】
さて、二値画像の輪郭ベクトル化処理に関しては、本出願人は既に特許文献１に開示の技術を提案している。この特許文献１における処理では、近傍画素の状態により該輪郭線を構成する点の接続方向を決定する工程と、前記輪郭線を構成する点と、該輪郭線を構成する他の点との接続状態を判断する工程とを備えている。そして、注目画素とその近傍画素の状態により、予め定められた位置を、輪郭線を構成する点とし、注目画素の位置をラスタ走査順に画像データ上を更新し、注目画素毎に近傍画素の状態に基づいて前記工程を実行し、輪郭点を抽出する。
【０００５】
以上の構成において、画像データにおける注目画素と、その近傍画素の状態を保持し、この注目画素をラスタ走査順に取り出し、その注目画素とその近傍画素の状態に基づいて、水平方向及び垂直方向の画素間ベクトルを検出する。これら画素間ベクトル同士の接続状態を判別して、この判別された画素間ベクトルの接続状態をもとに、画像データの輪郭を抽出するように動作する、という手法を提案している。
【０００６】
上記手法は、原画中の全ての輪郭線を１回のラスタ走査で抽出でき、かつ、全画像データを記憶するためのメモリを必要としないため、メモリの容量を少なく出来る効果を有している。また、画素の中心位置ではなく、画素の縁単位に輪郭を抽出することにより、１画素幅の細線に対しても有為な幅を持たせることが出来る輪郭線抽出法である。更に、原画中の画素が４方向に連結した４連結画素領域の輪郭線を抽出するのみならず、８方向に連結した８連結画素領域も抽出可能であることを開示している。
【０００７】
また、本出願人は特許文献２において、特許文献１に開示されるベクトル抽出ルールをモジュール化することにより、効率的な輪郭点抽出が可能であることを開示している。
【０００８】
ところで、ビジネス文書で既存の画像データを再利用する場合、ある図形を構成する線を、単なる線（直線、開曲線、閉曲線等）、あるいはその線の集まりとして扱いたい場合も少なくない。例えば線の集まりの中から一部の線のみを削除したり、別な線を追加したり、これら各線の一部のみに部分的な曲率、長さ、太さや線種（実線、破線、一点鎖線等）の変更を加える等の編集操作が代表的な活用法である。このような要求に答えるものとして、原図形の特徴を示す芯線をベクトル化する芯線ベクトル化処理が挙げられる。
【０００９】
芯線ベクトル化処理では、芯線を抽出するために細線化と呼ばれる画像処理が良く利用される。細線化処理は二値画像に対して、各部の接続関係を維持したまま、その線幅が１ピクセルになるように細める処理である。そして得られた線幅１ピクセルの芯線の二値画像を、それらの端点や交点間をつなぐ独立した線や閉曲線毎にベクトル化する。芯線ベクトル化については、例えば特許文献３で開示される方法を用いて構成される。
【００１０】
しかしながら、この細線化処理を施して得られる芯線からは、原画像（細線化前の二値画像）中の各線の太さに関する情報は無くなっているため、芯線の二値画像をベクトル化して得られるベクトルデータにも、原画像の太さに関する情報が反映されていなかった。このため原画像と比べてベクトルデータでは線の太さが細く再生され、利用者に違和感を与えていた。
【００１１】
また、処理対象とする原画像の中には等幅線部分と面部分が混在したものも多々あり、等幅線部分は、芯線を抽出して芯線ベクトル化処理し、面部分は、輪郭を輪郭ベクトル化処理した方が好ましい場合がある。図２に等幅線部分と面部分が混在した画像の例を示す。中が塗られた円等の図形や、線幅が途中で変化するような線は、線幅情報をつけた線だけでは表現することができない。
【００１２】
特許文献４では、始めに画像の輪郭を検出して輪郭ベクトルを生成した後に、向かい合う輪郭ベクトルが一定幅以内の時に輪郭ベクトルの中心線を芯線として芯線ベクトルを生成させている。そして、芯線ベクトルが生成されなかった中断点に対応する両側の輪郭線を連結する仮想ベクトルを設定することで線部と面部の分離を行うことを特徴とする画像処理装置が記載されている。
【００１３】
しかしながら特許文献４では芯線ベクトルを生成するかどうかの条件を、向かい合う輪郭が一定幅以内であるかどうかとしている。したがって、太さが徐々に変化する線も等幅線になったり、太い線を含む画像では等幅線部と面部の分離に失敗して原画像とベクトル再生画像で見た目が大きく変わったりする問題がある。
【００１４】
また特許文献５では、画像の輪郭ベクトルを抽出した後に、ある区間で輪郭が接近していて、かつ輪郭間の距離が平均的に一定長の場合、２つの輪郭の中心線を幅つきでベクトル化することを特徴とする画像処理装置が記載されている。
【００１５】
しかしながら特許文献５で開示されている手法では等幅線同士が接続する交点において、交点部分がどの等幅線にも含まれず、面部分として残ってしまう問題がある。これは編集性が悪く、ベクトルデータ量も増加する。
【００１６】
また上記２つの先行技術のように、輪郭のベクトル情報から等幅線部分と面部分を分離する方式は輪郭線のペアを求める処理や輪郭線間の距離を求める処理等、計算負荷が高い処理が必要となってしまう問題がある。
【００１７】
【特許文献１】特許第３０２６５９２号公報
【特許文献２】特開平０５−１０８８２３号公報
【特許文献３】特願２００６−１００３８１号公報
【特許文献４】特開平０６−０２００４０号公報
【特許文献５】特開２００４−２６５３８４号公報
【特許文献６】特開２００５−３４６１３７号公報
【非特許文献１】安居院、長尾著“C言語による画像処理入門”初版,ISBN4-7856-3124-4,昭晃堂,2000年11月20日発行,P.53-P.58
【非特許文献２】鳥脇純一郎著“画像理解のためのディジタル画像処理（II）”初版, ISBN4-7856-2004-8, 昭晃堂, 昭和63年4月30日発行, P.32-P.37
【発明の開示】
【発明が解決しようとする課題】
【００１８】
本願では、上記従来技術における問題点に鑑み、等幅線部分と面部分の混在した二値画像に対し、等幅線部分は細線化を用いて芯線を抽出した後に原画像での線の太さを反映した情報を付加して芯線ベクトル化処理し、面部分は輪郭ベクトル化処理をする。このようにして芯線ベクトル化処理と輪郭ベクトル化処理の混在を可能とする方法、装置、及びプログラムを提案することをその課題としている。
【課題を解決するための手段】
【００１９】
上記課題を解決するために、本発明の画像処理方法は、画像処理装置の画像入力手段が、ベクトル化処理対象画像を入力する画像入力工程と、前記画像処理装置の芯線抽出手段が、前記ベクトル化処理対象画像の芯線を抽出する芯線抽出工程と、前記画像処理装置の線幅推定手段が、前記芯線抽出工程にて得られる芯線の画素毎に元の線幅を計算する線幅推定工程と、前記画像処理装置の判定手段が、前記芯線抽出工程にて得られた芯線を交点及び端点間で区切った区間毎に、前記線幅推定工程にて得られた芯線の画素毎の線幅値を用いて、等幅線を表しているか面図形を表しているかを判定する判定工程と、前記画像処理装置の分離手段が、前記判定工程で前記等幅線を表すと判定された区間の芯線と、前記判定工程で前記面図形を表すと判定された区間の芯線と、前記ベクトル化処理対象画像とに基づいて、前記ベクトル化処理対象画像から前記等幅線に対応する部分の画像を除いた前記面図形に対応する部分の画像で構成される面画像を抽出する分離工程と、前記画像処理装置の手段が、前記判定工程で等幅線と判定された芯線と、前記分離工程にて抽出された前記面画像の輪郭のそれぞれを関数近似する関数近似工程とから構成される。
【００２０】
また、本発明の画像処理装置は、ベクトル化処理対象画像を入力する画像入力手段と、前記ベクトル化処理対象画像の芯線を抽出する芯線抽出手段と、前記芯線抽出手段にて得られる芯線の画素毎に元の線幅を計算する線幅推定手段と、前記芯線抽出手段にて得られた芯線を交点及び端点間で区切った区間毎に、前記線幅推定手段にて得られた芯線の画素毎の線幅値を用いて、等幅線を表しているか面図形を表しているかを判定する判定手段と、前記判定手段で前記等幅線を表すと判定された区間の芯線と、前記判定工程で前記面図形を表すと判定された区間の芯線と、前記ベクトル化処理対象画像とに基づいて、前記ベクトル化処理対象画像から前記等幅線に対応する部分の画像を除いた前記面図形に対応する部分の画像で構成される面画像を抽出する分離手段と、前記判定手段で等幅線と判定された芯線と、前記分離手段にて抽出された前記面画像の輪郭のそれぞれを関数近似する関数近似手段とから構成される。
【発明の効果】
【００２１】
本発明では、画像の一部に面部分を含む線画でも、面部分以外を芯線ベクトル化処理し、その他の部分は輪郭ベクトル化処理（あるいはベクトル化処理しないことも可）を行う。そうすることにより、従来のような、一律な方法（画像全体を芯線ベクトル化処理、または画像全体を輪郭ベクトル化処理）によるベクトル化ではなく、適応的なベクトル化が可能となる効果を有する。
【００２２】
また等幅線部分は原画像に比して視覚的な違和感が少ないベクトル結果を得ることができ、一部の線の削除や追加、部分的な曲率・長さ・太さや線種(実線、破線、一点鎖線等)の変更を加える等の編集操作を行うことができる。等幅線は原画像の接続状態を踏まえた交点で分離できるため、直感的に編集しやすい単位で分離することができる。
【発明を実施するための最良の形態】
【００２３】
＜実施形態１＞
はじめに、本実施形態の画像処理装置の構成例について、図３のブロック図を参照して説明する。
【００２４】
同図において、７は装置全体を制御するＣＰＵ（Central Processing Unit）である。６は変更を必要としないプログラムやパラメータを格納するＲＯＭ（Read Only Memory）である。５は外部装置等から供給されるプログラムやデータを一時記憶するＲＡＭ（Random Access Memory）である。
【００２５】
１は、文書等を光電走査して電子的な画像データを得るためのスキャナであり、３はこのスキャナ１と画像処理装置を接続する画像入出力インターフェースである。２は、スキャナ１で読み取られた画像データ等を保持する画像メモリである。
【００２６】
１２は固定して設置されたハードディスクやメモリカード、あるいは着脱可能なフレキシブルディスク（ＦＤ）やＣＤ（Compact Disk）等の光ディスク、磁気や光カード、ＩＣカード、メモリカード等を含む外部記憶装置である。また、１３はこれら外部記憶装置１２とコンピュータ装置との入出力（Input / Output）インターフェースである。
【００２７】
１５はユーザの操作を受け、データを入力するマウス等のポインティングデバイス１０やキーボード９等の入力デバイスとのインターフェースである。１４は画像処理装置の保持するデータや供給されたデータを表示するためのディスプレイモニタ８とのインターフェースである。４はインターネット等のネットワーク回線に接続するためのネットワークインターフェースである。１１は１〜１５の各ユニットを通信可能に接続するシステムバスである。
【００２８】
以下、ＣＰＵ７上で実行されるプログラムにより本願発明を実現する処理手順を、図１のフローチャートを用いて説明する。
【００２９】
図１は、本願による発明を実施する装置における動作全体の流れを示すフローチャートである。
【００３０】
同図に示すように、処理を開始すると、処理対象となる画像領域（ベクトル化処理対象画像の領域）を含む画像データの入力が行われる。画像入力に関しては、スキャナ１にて読み取られた画像データを画像入出力Ｉ／Ｏ ３を介して画像メモリ２に入力する。また、通信Ｉ／Ｆ４を介して、装置外部より処理対象となる画像領域を含む画像を入力してもよい。あるいは、外部記憶装置１２に予め記憶される画像データをＩ／Ｏ １３を介して読み込むものであってもよい。入力された入力画像は、画像メモリ２上に保持される。
【００３１】
ステップＳ１００では、入力された画像を二値画像へ変換した後に、細線化処理を用いて芯線を抽出する（芯線抽出）。入力された画像が多値画像の場合、ＲＯＭ６上の図示しない領域に予め記憶される閾値を用いて二値化処理を行い、二値画像を得る。尚、入力した画像が既に二値画像である場合はそのまま次の処理に移る。二値化処理に用いる閾値は、入力された画像データを映像Ｉ／Ｏを介してディスプレイモニタ８上に表示した上で、これを操作者が視認しながらＩ／Ｏ １５を介してキーボード９やマウス９等を用いて指示入力するように構成してもよい。
【００３２】
次に得られた二値画像に対して細線化処理を施す。細線化処理とは二値画像中の図形に対し、各部の接続状態を維持したまま、その線幅が１ピクセルになるように細めていく処理である。細線化処理には、公知のＨｉｌｄｉｔｃｈ法を用いる。
【００３３】
Ｈｉｌｄｉｔｃｈ法は、注目画素位置の画素を中心画素とし、その周囲の８画素とからなる３×３のウィンドウ内を予め用意されたマスクパターンとの比較することにより細線化による削除対象画素であるかを判定する。そして、注目画素位置（ｘ，ｙ）の画素が削除対象画素であると判定された場合には、この画素を削除する。即ちこの画素を黒画素から白画素に置き換える。
【００３４】
一方、注目画素位置（ｘ，ｙ）の画素が削除対象画素ではないと判定された場合には、細線化処理範囲内におけるラスタ走査での次の画素位置に注目画素位置を移し、以後、細線化対象領域内全ての画素に対して同処理を繰り返す。そして、一回のラスタ走査において削除される画素が全く発生しなくなるまで、このラスタ走査による一連の処理を繰り返す。一回のラスタ走査において削除される画素が全く発生しなくなった時点で細線化の処理を完了するというものである。
【００３５】
図５に、図４で示す線画像のＨｉｌｄｉｔｃｈ法による細線化結果を示す。Ｈｉｌｄｉｔｃｈ法に関しては、非特許文献１の、安居院、長尾著“C言語による画像処理入門”初版,ISBN4-7856-3124-4,昭晃堂,2000年11月20日発行,P.53-P.58等に述べられている。
【００３６】
次いで、ステップＳ２００では注目芯線画素毎の線幅推定処理を行う。これはステップＳ１００の結果得られる芯線の画素毎に、対応する原画像での線幅を推定する処理である。ここでステップＳ２００の処理の詳細を図６に示し、この図６を用いてステップＳ２００の処理の詳細を以下に説明する。
【００３７】
（線幅推定処理）
まずステップＳ２０１では入力画像として得られた二値画像に対して距離変換を行う。距離変換は二値画像中の図形画素（黒画素）の値を背景画素（白画素）からの距離値に置き換える処理である。距離変換に関しては非特許文献２の、鳥脇純一郎著“画像理解のためのディジタル画像処理（II）”初版, ISBN4-7856-2004-8, 昭晃堂, 昭和63年4月30日発行, P.32-P.37等に述べられている。距離変換により二値画像の図形画素毎に、一番近い背景までの背景画素までの距離が求められる。距離変換の中でも各画素に数学的な距離を与えるユークリッド距離変換を用いると斜め方向も考慮した距離をより正確に求めることができる。一例として、図４で示す線画像のユークリッド距離変換結果を図７に示す。
【００３８】
次にステップＳ２０１で得られた距離変換の結果を用いて、先のステップ１００で得られた芯線の画素毎に、原画像で対応する線幅を推定する。この処理の概要について図８に示している。
【００３９】
まずＳ２０２で芯線の画素を１つ選択して中心画素とし、ステップＳ２０３でその周囲の８画素とからなる３×３のウィンドウ内に対応する、ステップＳ２０１で求めた距離変換の結果を取得する。例えば図５の細線化結果における一番左上に位置する芯線の交点を例にとると、図７における３×３の枠線２０、または図８における枠線３０に対応する距離変換結果を取得することになる。
【００４０】
ステップＳ２０４はステップＳ２０２で得られた芯線上に位置する画素に対し、ステップＳ２０３で得られた３×３のウィンドウ内に対応する距離変換結果（距離変換値）を用いて、原画像で対応する線幅を推定する。注目芯線画素の周囲８近傍のうち、芯線画素でない位置の距離変換結果の最大値を、ステップＳ２０２で選択した着目画素に対応する距離変換結果に加算することで、ステップＳ２０２で選択した芯線上の画素の線幅値を求める。図８における注目画素は３１で示される”２”であり、芯線画素でない位置にある距離変換結果は３１の周囲で白地になっている個所である。そのうち最大の距離変換結果は３２で示される“１”となる。よって注目画素の距離変換結果“２”に“１”を足し、注目画素の線幅値として３が求められる。
【００４１】
ステップＳ２０５では全ての芯線の画素を処理したかを確認する。まだ未処理の画素があればステップＳ２０６で注目画素を更新した後、ステップＳ２０２へ戻り処理を続ける。全ての画素を処理した場合は芯線の画素毎の線幅推定処理を終了し、次の処理へ移る。図９は、図４で示す線画像の全ての芯線画素に対して、画素毎線幅値を求めた結果である。
【００４２】
次に、図１に戻り、ステップＳ３００ではステップＳ１００で得られた芯線と、ステップＳ２００で得られた芯線の画素毎の線幅情報を元に等幅線・面判定処理を行う。ステップＳ３００の処理の詳細を図１０に示し、この図１０を用いてステップＳ３００の処理の詳細を以下に説明する。
【００４３】
（等幅線・面判定処理）
ステップＳ３０１では等幅線・面判定を行う芯線を選択する。芯線の選択はステップＳ１００で得られた芯線をそれらの端点や交点間をつなぐ独立した線や閉曲線毎に、すなわち芯線の端点や交点間で区切った単位毎に、選ぶようにする。図９にはａからｆの記号を振った交点とｇからｋまでの記号を割り振った端点が存在する。このときｇからａの区間、ａからｂの区間、ｂからｈの区間、ａからｃの区間といった単位で等幅線・面判定を行う芯線を決定する。
【００４４】
ステップＳ３０２では、ステップＳ３０１で選択した芯線に対して、選択した芯線の各画素に対応する、ステップＳ２００で求めた画素毎の線幅値の分散を計算する。等幅線の芯線は画素毎線幅値が近い値となるので分散値は小さくなる傾向にあり。逆に等幅でない線や面の芯線は画素毎線幅値の大きさがばらばらになり、分散値は大きくなる傾向にある。図９のｂからｄの特定区間の分散を標準偏差で求めると０．４４５となり、ｃからｄの特定区間の標準偏差は２．０９５となる。
【００４５】
ステップＳ３０３ではステップＳ３０２で求めた分散値がＲＯＭ６上の図示しない領域に予め記憶される閾値以下かどうかを判定する。この閾値は判定対象の芯線の長さ等の情報に応じて変更することもできる。閾値以下の場合、ステップＳ３０４で等幅線と判定し、ステップＳ３０１で選択した芯線に対して等幅線部であるという情報を付与する。閾値を１．０とすると、ｂからｄの特定区間は標準偏差が０．４４５なので等幅線部に、ｃからｄの特定区間は標準偏差が２．０９５なので面部に判断される。
【００４６】
その後ステップＳ３０５で、ステップＳ２００にて求めた画素毎の線幅値の平均を求め、芯線に対して線幅情報を付与する。ｂからｄの特定区間を例にとると線幅値の平均が３．２７３となり、少数点以下を四捨五入すると線幅３ピクセルという情報を付与することができる。ステップＳ３０３で、ステップＳ３０２で求めた分散値が閾値よりも大きかった場合は、ステップＳ３０６で面部と判定し、芯線に対して面であるという情報を付与する。
【００４７】
ステップＳ３０７では全ての芯線を判定したかを確認する。まだ未判定の芯線がある場合はステップＳ３０８で注目芯線を更新した後、ステップＳ３０１へ戻って処理を続ける。全ての芯線を判定した場合は等幅線・面判定を終了し、次の処理へ移る。
【００４８】
次に、図１に戻り、ステップＳ４００では、ステップＳ３００で得られた等幅線・面判定結果を用いて等幅線・面分離処理を行う。ここで、ステップＳ４００の処理の詳細フローを図１１に示し、この図１１を用いてステップＳ４００の処理の詳細を以下に説明する。またステップＳ４００の処理の概要を図１２に示している。
【００４９】
（等幅線・面分離処理）
まず全ての芯線を、等幅線部を表す芯線か、面部（面図形）を表す芯線かに分ける処理を行う。ステップＳ４０１において、ステップＳ３０１で選択したのと同じく芯線をそれらの端点や交点間をつなぐ独立した線や閉曲線毎を単位として芯線を１つ選択する。そして、ステップＳ４０２で、選択した芯線がステップＳ３００で等幅線と判定されたか面と判定されたかの情報を参照する。ここで、等幅線と判定されていた場合は芯線の情報をステップＳ４０３で線膨張対象画像に追加し、面と判定されていた場合は芯線の情報をステップＳ４０４で面膨張対象画像に追加する。
【００５０】
次いで、ステップＳ４０５で全ての芯線を処理したかどうかを判断し、未処理の芯線がある場合はステップＳ４０６で注目芯線を更新した後、ステップＳ４０１へ戻って処理を続ける。全ての芯線を判定した場合は次の処理へ移る。
【００５１】
次に線膨張対象画像に膨張処理を施し、原画と膨張処理を施した線膨張対象画像（線膨張処理結果）の差分を求める。ステップＳ４０７で線膨張対象画像中の各画素に対して個別に背景までの距離だけ膨張処理を行う。ここで言う各画素から背景までの距離はステップＳ２０１で求めた距離変換結果を用いる。一例として、各画素から背景までの距離に基づいた膨張処理を図１３に示す。
【００５２】
ステップＳ４０８では原画像と膨張処理を施した線膨張対象画像を重ね合わせた時に対応する位置にある画素毎に以下のようにして原画像と線膨張対象画像の差分を求める。
・原画像で図形画素（黒画素）かつ膨張処理を施した線膨張対象画像で背景画素（白画素）の時は図形画素とする。
・原画像で図形画素かつ膨張処理を施した線膨張対象画像で図形画素の時は背景画素とする。
・原画像で背景画素の時は背景画素とする。
以上のようにして得られる画像をもって、原画像と線膨張対象画像の差分を求める（差分算出）。
【００５３】
次にステップＳ４０９で面膨張対象画像にステップＳ４０７と同様の膨張処理（面膨張処理）を施す。そして、ステップＳ４１０において原画像と膨張処理を施した面膨張対象画像（面膨張処理結果）を重ね合わせた時に対応する位置にある画素毎に論理積をとって得られる画像をもって、原画像と面膨張対象画像の膨張処理結果の論理積を求める（論理積算出）。
【００５４】
次いで、ステップＳ４１１では輪郭ベクトル化処理の対象とすべき成分画像（面画像）を抽出する。即ち、ステップＳ４０８で得られた膨張処理を施した線膨張対象画像の差分と、ステップＳ４１０で得られた面膨張対象画像の論理積の結果とを、重ね合わせたときに対応する位置にある画素毎に論理和をとる。このようにして得られる画像をもって、輪郭ベクトル化処理の対象とすべき成分画像（面画像）とする。
【００５５】
原画と各画素から背景までの距離に基づいた膨張処理を施した線膨張対象画像の差分では、等幅線部と面部の境界が切れて離れてしまう問題がある。そこでステップＳ４１０で得られた原画と各画素から背景までの距離に基づいた膨張処理を施した面膨張対象画像の論理積の結果との論理和を求めることで、切れて離れてしまう箇所を補正することができる。
【００５６】
次に、図１に戻り、ステップＳ５００では、ステップＳ３００で得られた芯線のうち、等幅線部であると判定された芯線に対しては芯線ベクトル化処理を行い、ステップ４００で得られた面部の輪郭に対しては輪郭ベクトル化処理を行う。
【００５７】
芯線ベクトル化処理は細線化された二値画像を構成する端点や交点間をつなぐ独立した線や閉曲線毎にベクトル化する。芯線ベクトル化処理に関しては先述の特許文献３によるベクトル化を行う。そこでは、細線化された二値画像を構成する端点や交点間をつなぐ独立した線や閉曲線のそれぞれから得られる線成分に対応する、芯線化された端点間毎の芯線（周回）化済ベクトルを平滑化（関数近似）する処理が行われる。この処理の際に、端点部分に相当するベクトルが、他のベクトルと統合されて端点位置が不明にならぬように、端点部分に相当する部分を明示する始端点・終端点情報を生成する。
【００５８】
そして、端点部分に相当する部分が端点として保存される（ベジェ曲線のアンカーポイントとなる）ように補助ベクトルを挿入する。そして、得られた端点間毎の補助ベクトル入り（周回）ベクトルに対して、特許文献６に開示される方法で２次や３次のベジェ曲線近似をする。このようにして、端点や交点間をつないだり、独立した線や閉曲線部分を残したりすることで、得られた線幅１の二値画像をそれらの端点や交点間をつなぐ独立した線や閉曲線毎に芯線ベクトル化する。
【００５９】
一方、輪郭（アウトライン）ベクトル化処理に関しては、先述の特許文献１や特許文献２によるベクトル化を行う。即ち、二値画像から輪郭ベクトルを抽出し、抽出した輪郭ベクトル表現の状態で、所望の倍率（任意）で滑らかに変倍可能な輪郭ベクトルを作成する。
【００６０】
ステップＳ５００で得られた輪郭（アウトライン）ベクトルと、芯線（ラインアート）ベクトルと、ステップＳ３００で得られた等幅線の芯線に付加された線幅情報を統合して、１つのベクトルデータとして出力することで一連の処理を終える。一例として、図１４に、先に示した図２の画像を等幅線部と面部に分離して、等幅線部は線幅情報付きで芯線ベクトル化処理し、面部は輪郭ベクトル化処理した結果を示す。
【００６１】
＜実施形態２＞
上記の実施形態１において、ステップＳ３０２において分散を求める対象とする画素は、判定対象の芯線の全画素を対象としてもよいし、一部分のみを対象としてもよい。他の芯線との交点付近では推定した画素毎線幅値が実際の値よりも大きくなるため、分散の計算から除いた方がより正確に等幅線判定を行うことができる。
【００６２】
またステップＳ３０５における線幅情報の生成は、必ずしも画素毎の線幅値の平均を求めることによるのみならず、平均値ではなく、最頻値を用いたり、最小値・最大値を考慮した重み付きの平均（加重平均）を用いたりして求めてもよい。
【００６３】
＜実施形態３＞
上記の実施形態１及び２においては、距離変換をユークリッド距離変換で行う前提で話を進めたが、これに限らず他の手法を用いてもよい。すなわち、公知の距離変換手法としてのユークリッド距離変換の他にも、４近傍距離（シティブロック距離）、８近傍距離（チェスボード距離）、８角形距離等が知られており、いずれを用いてもよい。
【００６４】
＜実施形態４＞
本発明の目的は前述した実施形態で示したフローチャートの手順を実現するプログラムコードを記録した記録媒体から、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）がそのプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータ実行可能なプログラムコード自体が前述した実施形態の機能を実現することになる。そのため、このプログラムコード及びプログラムコードを記憶したコンピュータ読み取り可能な記憶媒体も本発明の一つを構成することになる。
【００６５】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ等を用いることが出来る。
【００６６】
また、ＣＰＵが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。そのプログラムコードの指示に基づき、ＣＰＵ上で稼動しているOperating System（ＯＳ）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６７】
さらに、記憶媒体から読み出されたプログラムコードが、画像処理装置に挿入された機能拡張ボードや画像処理装置に接続された機能拡張ユニットによっても実現することができる。この場合、記憶媒体から読み出されたプログラムコードが、機能拡張ボードや機能拡張ユニットに備わるメモリに書きこまれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００６８】
【図１】実施形態１における一連の処理手順を表すフローチャートである。
【図２】等幅線部分と面部分が混在する線画像の例を示す図である。
【図３】実施形態１における装置構成例を示すブロック図である。
【図４】等幅線部分と面部分が混在する簡単な線画像例を示す図である。
【図５】図４の画像をＨｉｌｄｉｔｃｈ法にて細線化した処理結果示す図である。
【図６】芯線画素毎の線幅推定処理手順を表すフローチャートである。
【図７】図４の画像をユークリッド距離変換した処理結果を示す図である。
【図８】線幅推定処理の概要を示す図である。
【図９】図４の画像を線幅推定処理した処理結果を示す図である。
【図１０】線・面判定処理手順を表すフローチャートである。
【図１１】線・面分離処理手順を表すフローチャートである。
【図１２】線・面分離処理の概要を示す図である。
【図１３】各画素から背景までの距離に基づいた膨張処理の一例を示す図である。
【図１４】図２の画像を等幅線部は線幅情報付きで芯線ベクトル化処理し、面部は輪郭ベクトル化処理した結果を示す図である。
【符号の説明】
【００６９】
１  スキャナ
２  画像メモリ
３  画像入出力Ｉ／Ｏ
４  通信Ｉ／Ｆ
５  ＲＡＭ
６  ＲＯＭ
７  ＣＰＵ
８  ディスプレイ
９  キーボード
１０  マウス
１１  バス
１２  外部記憶装置
１３  Ｉ／Ｏ
１４  映像Ｉ／Ｏ
１５  Ｉ／Ｏ
【図１】
0005111226.tif 000002
【図２】
0005111226.tif 000003
【図３】
0005111226.tif 000004
【図４】
0005111226.tif 000005
【図５】
0005111226.tif 000006
【図６】
0005111226.tif 000007
【図７】
0005111226.tif 000008
【図８】
0005111226.tif 000009
【図９】
0005111226.tif 000010
【図１０】
0005111226.tif 000011
【図１１】
0005111226.tif 000012
【図１２】
0005111226.tif 000013
【図１３】
0005111226.tif 000014
【図１４】
0005111226.tif 000015