(57)【要約】      （修正有）【課題】画像を細線化した時に生じる画像の特徴を表していないヒゲや芯線の歪みを修正する。【解決手段】入力画像に対して細線化処理を行うことにより芯線を抽出する細線化処理手段と、前記細線化処理手段で求めた芯線の画素に対して、元の線幅を推定する線幅推定手段と、前記細線化処理手段で求めた芯線を交点で分割する芯線分割手段と、前記線幅推定手段で求めた線幅情報を元に、前記芯線分割手段で分割した芯線が等幅線であるか否かを判定する等幅線判定手段と、前記芯線分割手段で分割した芯線に対して、他の芯線との接続関係情報を生成する接続関係情報生成手段と、前記線幅推定手段で求めた芯線画素の線幅情報と前記等幅線判定手段で等幅線を判定した結果と前記接続関係情報生成手段で求めた接続関係情報とに基づいて、前記芯線分割手段で分割した芯線の修正を行う芯線修正手段とを具備する。【選択図】図１
2010157186.tif 000002
【特許請求の範囲】
【請求項１】
入力画像に対して細線化処理を行うことにより芯線を抽出する細線化処理手段と、
前記細線化処理手段で求めた芯線の画素に対して元の線幅を推定する線幅推定手段と、
前記細線化処理手段で求めた芯線を交点で分割する芯線分割手段と、
前記線幅推定手段で求めた線幅情報を元に、前記芯線分割手段で分割した芯線が等幅線であるか否かを判定する等幅線判定手段と、
前記芯線分割手段で分割した芯線に対して、他の芯線との接続関係情報を生成する接続関係情報生成手段と、
前記線幅推定手段で求めた芯線画素の線幅情報と前記等幅線判定手段で等幅線を判定した結果と前記接続関係情報生成手段で求めた接続関係情報とに基づいて、前記芯線分割手段で分割した芯線の修正を行う芯線修正手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記芯線修正手段は、前記等幅線判定手段で等幅線でないと判定された芯線に対して、当該芯線の一方の端点が開放端である条件ともう一方の端点が他の等幅線に接続する条件と当該開放端から該等幅線との交点に向かって前記線幅推定手段で求めた線幅が単調増加する条件とを満たすか否か判定し、前記条件を満たすと判定した芯線を除去する芯線除去手段を含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記芯線除去手段は、前記条件を満たすと判定した芯線を除去した場合において、当該除去した芯線が１本の等幅線に接続していたとき、当該等幅線の端点形状を修正する等幅線端点の形状修正手段を含むことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記芯線除去手段は、前記条件を満たすと判定した芯線を除去した場合において、当該除去した芯線が２本の等幅線との交点で接続していたとき、当該交点に接続する２本の等幅線の間において、線幅値の差が閾値以下であれば、当該２本の等幅線を接続する等幅線接続手段を含むことを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記芯線修正手段は、前記等幅線判定手段で等幅線でないと判定された芯線において、等幅とみなせる区間があるか否か判定し、等幅と見なせる区間がある場合、当該等幅と見なせる区間を等幅線として分割する等幅線分割手段を含むことを特徴とする請求項１及至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記等幅線分割手段は、前記等幅線として分割しなかった芯線の区間を、面領域を表わす芯線として抽出することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記芯線修正手段は、前記等幅線分割手段で前記等幅と見なせる区間を等幅線として分割した後に、前記芯線除去手段で前記条件を満たす芯線を除去することを特徴とする請求項５または６に記載の画像処理装置。
【請求項８】
前記接続関係情報生成手段は、前記等幅線判定手段で等幅線を判定した結果を含めて前記接続関係情報を生成し、
前記芯線修正手段は、前記線幅推定手段で求めた芯線画素の線幅情報と前記接続関係情報生成手段で求めた接続関係情報とに基づいて、前記芯線分割手段で分割した芯線の修正を行うことを特徴とする請求項１乃至７のいずれか一項に記載の画像処理装置。
【請求項９】
画像処理装置の細線化処理手段が、入力画像に対して細線化処理を行うことにより芯線を抽出する細線化処理工程と、
前記画像処理装置の線幅推定手段が、前記細線化処理工程で求めた芯線の画素に対して、元の線幅を推定する線幅推定工程と、
前記画像処理装置の芯線分割手段が、前記細線化処理工程で求めた芯線を交点で分割する芯線分割工程と、
前記画像処理装置の等幅線判定手段が、前記線幅推定工程で求めた線幅情報を元に、前記芯線分割工程で分割した芯線が等幅線である否かを判定する等幅線判定工程と、
前記画像処理装置の接続関係情報生成手段が、前記芯線分割工程で分割した芯線に対して、他の芯線との接続関係情報を生成する接続関係情報生成工程と、
前記画像処理装置の芯線修正手段が、芯線と前記線幅推定工程で求めた芯線画素の線幅情報と前記等幅線判定工程で等幅線を判定した結果と前記接続関係情報生成工程で求めた接続関係情報とに基づいて、前記芯線分割工程で分割した芯線の修正を行う芯線修正工程と
を有することを特徴とする画像処理方法。
【請求項１０】
コンピュータを、
入力画像に対して細線化処理を行うことにより、芯線を抽出する細線化処理手段と、
前記細線化処理手段で求めた芯線の画素に対して、元の線幅を推定する線幅推定手段と、
前記細線化処理手段で求めた芯線を交点で分割する芯線分割手段と、
前記線幅推定手段で求めた線幅情報を元に、前記芯線分割手段で分割した芯線が等幅線であるか否かを判定する等幅線判定手段と、
前記芯線分割手段で分割した芯線に対して、他の芯線との接続関係情報を生成する接続関係情報生成手段と、
前記線幅推定手段で求めた芯線画素の線幅情報と前記等幅線判定手段で等幅線を判定した結果と前記接続関係情報生成手段で求めた接続関係情報とに基づいて、前記芯線分割手段で分割した芯線の修正を行う芯線修正手段
として機能させるためのコンピュータプログラム。
【請求項１１】
請求項１０に記載のコンピュータプログラムを記憶したプログラム記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理方法、画像処理装置及びプログラムに関し、特に画像処理における細線化図形の芯線修正方法に関するものである。
【背景技術】
【０００２】
細線化処理は二値画像の入力に対して、図形画素が１ピクセル幅になるように変換する処理である。細線化処理によれば、背景画素（白画素）に接している図形画素（黒画素）を単純に削っていく収縮処理と異なり、図形のトポロジ（位置関係・接続関係）を保持したまま、図形の線部の中心線を表わす芯線を抽出することができる。細線化処理は、文字認識やパターン認識、ベクトル化の前処理として広く使われている画像処理方法である。細線化処理は古くから研究がおこなわれており、様々な方法が提案されているが、なかでもＨｉｌｄｉｔｃｈの細線化法が公知の細線化法として広く知られている（例えば非特許文献１等参照）。
【０００３】
Ｈｉｌｄｉｔｃｈの細線化法では注目画素とその周囲の８画素を参照する３×３のウィンドウを基本処理単位とし、画像データ全体をラスタ走査し、各画素を注目画素として処理することで細線化処理を行う。ある画素を注目画素とした場合、３×３のウィンドウ単位で予め定義した細線化による削除条件に合致するかを判定し、注目画素が削除条件に合致する場合には注目画素を削除、即ち図形画素を背景画素に置き換える処理を行う。一方、削除条件に合致しない場合は、ラスタ走査順で次の画素を注目画素とし、新たな３×３のウィンドウについて同様の処理を行う。この処理を画像データの全ての画素に対して繰り返す。そして、一回のラスタ走査において削除される画素が全くなくなるまでラスタ走査による一連の処理を繰り返し行う。一回のラスタ走査において削除される画素がなくなった時点で、細線化の処理を完了する。図３にＨｉｌｄｉｔｃｈの細線化法による処理結果の例を示す。図３（ａ）は元画像であり、Ｈｉｌｄｉｔｃｈの細線化法による細線化処理を行った結果が図３（ｂ）である。図３（ｃ）は元画像と、その細線化処理済み画像とを重ね合わせて示した図であり、細線化処理後の画像が、ほぼ元画像の芯線となっていることが見て取れる。
【０００４】
細線化処理では元画像の図形のトポロジを保持する必要があるため、「処理対象の線幅が１ピクセルになったらそれ以上は削除しない」という制約を削除条件に含める必要がある。しかしＨｉｌｄｉｔｃｈの細線化法ではある注目画素を削除するかどうかの判定を周囲８近傍のみを参照して行う。例えば図３（ｃ）における３×３ウィンドウ（ｉ）では、折れ線の角部分の画素であるので、該折れ線を分岐のない１本の芯線で表わすためには、当該３×３ウィンドウ（ｉ）の注目画素は削除することが望ましい。一方、３×３ウィンドウ（ｉｉ）では、線画の端部の画素であるので、当該注目画素を削除すると、元画像の線の長さと芯線の線の長さが相違することとなるので、削除しないことが望ましい。しかしながら３×３ウインドウ内の画素の配置だけでは、周囲８近傍のみを参照しているので、削除すべきか否かを適応的に判断することはできない。そのため、ウィンドウ（ｉｉ）の中心画素（注目画素）を削除しないように細線化の条件を設定すると、ウィンドウ（ｉ）のように直線の端や角に削り残しが発生する。そこで周囲８近傍よりも広い周囲を参照して削除判定を行う細線化法も考案されているが、現状では本質的に削り残しが生じない細線化法は考案されていない。この細線化処理により生じる削り残しはヒゲとも呼ばれ、芯線として利用する場合には、この細線化結果のヒゲを除去した後に使用する必要がある。
【０００５】
続いて、図４にベタ塗領域（面部）を含む画像に対し、図３と同様に３×３ウインドウ内の画素配置に基づく細線化処理を行った場合の例を示す。ベタ塗領域を含む画像に対して細線化処理を行うと、面を斜め線になるように削った画像が処理結果として得られる。面部の細線化結果に見られる斜め線は細線化によるヒゲではなく、面領域の特徴を表した芯線と考えることができる。よって、この面を処理して得られた斜め線を、面部を表わす芯線として後処理で利用するためには、この斜め線はヒゲとして除去してはならない芯線成分である。
【０００６】
図４（ｂ）において、細線化結果の芯線を交点ごとに分離してみると、図４（ｃ）の交点ａと交点ｂをつなぐ区間ａｂ（交点ａから図の左上隅を通って交点ｂに到達するまでの区間）において、等幅線を表わす芯線と面を表わす芯線（斜め線）とが混在してしまう。すなわち、細線化後の後処理で、等幅線部分の芯線と非等幅線部分（面部分）の芯線とを分けて取り扱う必要があっても、単に交点で分割した単位ごとに判断するのでは、適切に面と等幅線とを分離できない。
【０００７】
一方、細線化画像からヒゲを除去する方法には、芯線の分岐点および端点を求め、端点を含みかつ長さが所定値以下の図形画素を抽出して削除する方法がある（たとえば特許文献１等参照）。この技術によると細線化画像から一定長以下のヒゲを削除することができる。
【０００８】
また、距離変換という技術も知られている。距離変換は二値画像中の図形画素の値を背景画素からの距離値に置き換える処理である。距離変換を行うことで各図形画素に対して、一番近い背景画素までの距離を求めることができる。（たとえば非特許文献２等参照）
【特許文献１】特開平５−９４５２５号公報
【非特許文献１】安居院、長尾著「Ｃ言語による画像処理入門」初版，ISBN4-7856-3124-4,昭晃堂，２０００年１１月２０日発行，第５３−５８ページ
【非特許文献２】鳥脇純一郎著“画像理解のためのディジタル画像処理（ＩＩ）”初版, ISBN4-7856-2004-8, 昭晃堂, 昭和63年4月30日発行, P.32-P.37
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながらヒゲの長さだけを判断基準として用いると、長いヒゲが削除されず残ったり、面部を細線化した際に発生する芯線をヒゲと誤って削除したりすることがある。
【００１０】
また等幅線を表わす芯線と非等幅線を表わす芯線が混在した場合に（例えば図４）、それらを分離することは上記文献記載の技術ではできない。
【００１１】
本願発明は上記従来例に鑑みて成されたもので、上述した課題を解決することを目的とする。詳しくは、画像を細線化した細線化画像に含まれる元画像の特徴を表していないヒゲや芯線の歪みを、芯線画素に対して推定した元の線幅情報と芯線同士がどのように接続しているかの関係情報とを元に修正して、元画像の特徴を忠実に表した芯線画像を生成できる画像処理装置及び画像処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
この課題を解決するため、本発明の画像処理装置は、入力画像に対して細線化処理を行うことにより、芯線を抽出する細線化処理手段と、前記細線化処理手段で求めた芯線の画素に対して、元の線幅を推定する線幅推定手段と、前記細線化処理手段で求めた芯線を交点で分割する芯線分割手段と、前記線幅推定手段で求めた線幅情報を元に、前記芯線分割手段で分割した芯線が等幅線であるか否かを判定する等幅線判定手段と、前記芯線分割手段で分割した芯線に対して、他の芯線との接続関係情報を生成する接続関係情報生成手段と、前記線幅推定手段で求めた芯線画素の線幅情報と、前記等幅線判定手段で等幅線を判定した結果と、前記接続関係情報生成手段で求めた接続関係情報とに基づいて、前記芯線分割手段で分割した芯線の修正を行う芯線修正手段とを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、細線化処理で生じる画像の特徴を表していないヒゲや芯線の歪みを正確に修正し、等幅線成分と非等幅線成分を分けて精度よく得ることができる。これにより後処理で利用しやすい細線化画像を得ることができる。このことは例えば、細線化後の後処理としてベクトル化処理を行う場合、ベクトル化処理で得られるベクトルデータの原画再現性向上、編集性向上、データサイズ削減といった利点につながる。
【発明を実施するための最良の形態】
【００１４】
＜実施形態１＞
以下、添付の図面を参照して本発明の実施の形態を説明する。
【００１５】
＜画像形成装置の構成＞
まず本実施形態の画像処理装置の構成例について、図２のブロック図を参照して説明する。図２の画像処理装置は、たとえば汎用コンピュータにスキャナを接続したものでもよいし、ディジタル複写機であってもよい。ただしディジタル複写機の場合であっても、本実施形態ではプリンタは不可欠な要素ではないことから、その説明は省略する。
【００１６】
図２において、中央処理ユニット（ＣＰＵ）７は装置全体を制御する。読み出し専用メモリ（ＲＯＭ）６は変更を必要としないプログラムやパラメータを格納する。ランダムアクセスメモリ（ＲＡＭ）５は外部装置等から供給されるプログラムやデータを一時記憶する。スキャナ１は、文書等を光電走査して電子的な画像データを得るためのデバイスである。画像入出力インターフェース（Ｉ／Ｏ）３はスキャナ１と画像処理装置を接続するインターフェースである。画像メモリ２は、スキャナ１で読み取られた画像データ等を保持するためのメモリである。外部記憶装置１２はファイルを格納するためのストレージであり、ハードディスクやメモリカード、あるいは着脱可能なフレキシブルディスク（ＦＤ）やコンパクトディスク（ＣＤ）等の光ディスク、磁気や光カード、ＩＣカード、メモリカード等である。また、インターフェース（Ｉ／Ｏ）１３は外部記憶装置１２とコンピュータ装置との入出力インターフェースである。インターフェース（Ｉ／Ｏ）１５は、ユーザの操作を受け、データを入力するためのマウス等のポインティングデバイス１０やキーボード９等の入力デバイスとのインターフェースである。映像インターフェース（Ｉ／Ｏ）１４は、画像処理装置の保持するデータや供給されたデータを表示するためのディスプレイモニタ８とのインターフェースである。通信インターフェース（Ｉ／Ｆ）４は、インターネット等のネットワーク回線に接続するためのネットワークインターフェースである。システムバス１１は１〜１５の各ユニットを通信可能にする機能を有する。
【００１７】
＜画像の細線化処理＞
次に、ＣＰＵ７上で実行されるプログラムにより本願発明を実現する処理手順を、図１のフローチャートを用いて説明する。
【００１８】
図１は、本願による発明を実施する装置における動作全体の流れを示すフローチャートである。画像処理が開始されると、処理対象となる画像領域を含む画像データが入力される。画像入力に関しては、スキャナ１にて読み取られた画像データが画像入出力Ｉ／Ｏ ３を介して画像メモリ２に入力される。また、通信Ｉ／Ｆ４を介して、装置外部より前記処理対象となる画像領域を含む画像を入力してもよく、あるいは、外部記憶装置１２に予め記憶されている画像データをＩ／Ｏ １３を介して読み込んでもよい。得られた入力画像は、画像メモリ２上に保持される。この画像データが、図１の処理の対象となる。
【００１９】
図１において、ステップＳ１００では、入力された画像データを二値画像データへ変換し、細線化処理を行う。処理対象の画像データが多値画像データの場合、ＲＯＭ６上に予め保持されている閾値を用いて二値化処理を行い、二値画像データへの変換を行う。またカラー画像データの場合は減色処理、クラスタリング処理などを行って入力画像データを、元画像データよりも少ない代表色で構成される画像データに変換し、代表色の色成分の画像データを二値画像データとして処理対象としても良い。なお対象となる画像データが既に二値画像データである場合はそのまま次の処理に移る。
【００２０】
二値化処理、減色処理などに用いるＲＯＭ６上の閾値は、入力された画像データを映像Ｉ／Ｏ１４を介してディスプレイモニタ８上に表示した上で、これを視認しながらＩ／Ｏ１５を介してキーボード９やマウス１０等の入力デバイスを用いて操作者より指示入力されるように構成してもよい。なお、二値化処理は上述した手法に限るものではなく、画像に応じて適応的に閾値を変えて二値化する処理など、公知の二値化処理を用いるようにしてもよい。本実施形態において、細線化アルゴリズムは先に紹介したＨｉｌｄｉｔｃｈの細線化法を用いる。この細線化処理を行うことにより、芯線の画像が得られることになる。
【００２１】
＜線幅推定処理＞
ステップＳ２００では、細線化処理が施された画像データを対象として線幅推定処理を行う。これはステップＳ１００で得られる芯線の画素に対応する原画像での線幅を推定する処理である。ステップＳ２００の処理の詳細を図５と図６に示す。
【００２２】
まずステップＳ２０１では入力画像として得られた二値画像に対して距離変換を行う。距離変換結果として得られる画像は、注目した図形画素ごとに最も近い背景画素までの距離を距離値として各画素に設定した画像である。このとき、背景画素においては距離の値が０となる。図７に具体的な距離変換結果の実行例を示す。図７（ａ）に対し、距離変換の処理を適用した結果が図７（ｃ）である。図７（ｃ）は、距離変換結果の画像において、各画素に設定された距離値を数値で示したものである。
【００２３】
次にステップＳ２０２で芯線画素を１つ選択して注目画素とし、ステップＳ２０３で当該注目画素とその周囲８近傍の画素とからなる３×３のウィンドウを設定し、ステップＳ２０１で求めた距離変換結果の中からウィンドウの位置と対応する値を取得する。例えば、図７（ａ）の細線化結果として得られる芯線の画像は図７（ｂ）のようになる。そこで、図７（b）における一番左上に位置する芯線上の交点を注目画素として例にとると、図７（ｃ）における３×３の枠線２０（図６における枠線３０）が３×３のウィンドウに対応する位置に相当するので、その内部の距離値を取得する。
【００２４】
ステップＳ２０４はステップＳ２０２で選択した芯線画素に対し、ステップＳ２０３で得た３×３のウィンドウに対応する距離変換結果の値を用いて、原画像で対応する線幅の値（以下、線幅値）を推定する処理を行う。注目画素の周囲８近傍のうち、芯線画素でない位置にある距離変換結果の最大値を、ステップＳ２０２で選択した注目画素に対応する距離変換結果の値に足し合わせることで線幅値を推定する。例えば、図６の３×３のウィンドウ３０において、注目画素３１に対応する距離値は“２”であり、当ウィンドウ内において芯線画素でない位置にある最大の距離値は３２で示す“１”となる。よって注目画素の距離変換結果の距離値"２"に、芯線画素でない画素の最大距離値“１”を足し、注目画素の推定線幅として３が求められる。
【００２５】
ステップＳ２０５では全ての芯線画素に対して、線幅推定の処理を行ったかを判定する。まだ未処理の画素があれば、ステップＳ２０２へ戻り、次の画素を選択し線幅推定の処理を続ける。全ての画素を処理した場合は線幅推定処理を終了し、次の処理へ移る。図８に、図７（ａ）で示す二値画像に対して、図７（ｂ）と図７（ｃ）とを参照して線幅推定の処理を実施した結果を数値で示す。
【００２６】
以上のように線幅推定処理とは、距離変換で求めた各画像における距離の値に基づいて、各芯線画像の線幅を推定する処理である。
【００２７】
＜芯線分割処理＞
次にステップＳ３００ではステップＳ１００で得た芯線を交点で分割する処理を行い、以降の処理で交点・端点間毎に芯線を扱えるようにする。図８にはａからｆの記号を振った交点及び、ｇからｌまでの記号を振った端点が存在する。このときaからｇの区間、ａからｃの区間、ａからｈの区間、ｂからｉの区間というように、交点と端点の位置に基づいて芯線を分割する（以下、分割芯線）。また、”ａからｇの区間”を指して”区間ａｇ”と称する。区間は、例えばラスタデータにおいての画素の座標により特定することができる。
【００２８】
＜等幅線判定処理＞
ステップＳ４００ではステップＳ３００で分割した芯線のそれぞれが、等幅線か否かの判定を行う。等幅線か否かの判定はステップＳ２００で求めた線幅値の分散を計算することで行う。図９に等幅線判定の処理フローを示す。
【００２９】
まずステップＳ４０１において対象とする分割芯線を選択し、ステップＳ４０２において選択した分割芯線の線幅値の分散を計算する。等幅線である芯線は各位置の線幅値が近い値となるので分散値は小さくなる傾向にあり、逆に非等幅線である芯線は画素毎に線幅値の大きさが異なるため分散値は大きくなる傾向がある。また分散を求める処理にて対象とする画素は全芯線画素を用いても、代表画素としていくつかサンプリングして用いてもかまわない。
【００３０】
ステップＳ４０３において求めた分散値とＲＯＭ６に予め保持されている閾値とを比較し、等幅線か否かを判定する。分散値が閾値以下であれば等幅線、閾値より大きければ非等幅線とみなす。例えば、図８の区間ｂｄの分散を標準偏差で求めると０．４４５となり、図８の区間ｃｄの標準偏差は２．０９５となる。閾値を１．０とすると、区間ｂｄは等幅線に、区間ｃｄは非等幅線と判断することができる。この閾値は判定対象である芯線の長さ等の情報に応じて変更することもできる。等幅線と判定された場合、ステップＳ４０４で対象とする分割芯線に等幅線と判定されたことを情報として付加し、等幅線と判定されなかった場合はステップＳ４０５で非等幅線として情報を付加する。ステップＳ４０６で全分割芯線を判定したかを確認し、もし未判定の分割芯線があればステップＳ４０１で対象とする分割芯線を更新し、等幅線判定処理を再開する。
【００３１】
ステップＳ４００において、線幅値の分散のみを判定基準に用いると図８の区間ａｇのように短い区間では判定基準として適切な分散値が求められない。これにより、当該区間は等幅線としてみなされ、誤った判定がなされてしまうことがある。このような誤判定を抑制するため、一定の長さに満たない分割芯線については分散値が閾値以下であっても”非等幅線”と判定し必要であれば後処理で等幅線に修正することが望ましい。分散の閾値を１．０、長さの閾値を５とし、芯線の全画素の線幅値から分散を求めると、最終的に図８の芯線画像からは区間ｂｄ、区間ｄｆ、区間ｅｆが等幅線として判定される。
【００３２】
＜接続関係情報生成処理＞
ステップＳ５００では各交点において、どの分割芯線が接続しているかを参照できる接続関係情報を生成する。接続関係情報の例を図１０に示す。この図からは交点の番号と、各交点に接続する分割芯線がどれかと、何本の分割芯線に接続しているかと、そのうちどれが等幅線であるかとを参照することができる。本例において、両端に交点を持つ芯線については重複して登録されている。また、交点に対する接続関係情報のみを例示しているが、端点についての接続関係情報も保持することが望ましい。
【００３３】
＜芯線修正処理＞
ステップＳ６００では、Ｓ２００において芯線画素に対して推定した元の線幅情報と、Ｓ５００において生成した芯線同士がどのように接続しているかを示す接続関係情報とに基づいて、芯線の修正を行う。芯線の修正はヒゲを除去する芯線除去と、芯線から等幅成分だけを抽出する等幅線分割から構成される。
【００３４】
芯線除去処理では全ての非等幅線を対象として調査し、図８における区間ｂｉ、区間ｂｊ、区間ｆｌといった細線化処理によって生じたヒゲを除去する。これらの削除すべき分割芯線に共通な条件として、以下の３つが挙げられる。
（１）開放端を含む
（２）交点で等幅線と接続している
（３）開放端から交点に向かって、線幅値が単調増加する
以上の３つの条件をすべて満たす分割芯線を削除することで、長さだけを判定条件にするよりも精度よくヒゲを除去することができる。なお、ここでの開放端とは他の芯線に接続していない芯線の端点を指す。（１）と（２）の条件により、芯線は一方が開放端であり、もう一方が他の等幅線と交点での接続ということになる。
【００３５】
図１１に芯線除去処理の流れを示す。まずステップＳ６１１において対象とする非等幅線を選択する。その後、Ｓ６１２において対象とする非等幅線が開放端を含んでいるかを判定し、開放端を含まない場合はＳ６１１に戻り、次の非等幅線を選択した上で再度処理を進める。次にステップＳ６１３において、交点で等幅線と接続しているかを判定し、等幅線と接続してない場合はＳ６１１に戻り、次の非等幅線を選択した上で再度処理を進める。ステップＳ６１４では開放端から他の等幅線との交点に向かって線幅値が単調増加しているかを判定する。線幅値が単調増加している場合は対象とした分割芯線はヒゲであると判断し、ステップＳ６１５において分割芯線の除去を行う。線幅値が途中で小さくなり、単調増加していない場合はヒゲでないと判断し、Ｓ６１１に戻り、次の非等幅線を選択した上で再度処理を進める。芯線除去の処理は芯線画像及び接続関係情報を対象として行われる。
【００３６】
図８を例にとると、区間ｂｉ、区間ｂｊ、区間ｆｌが先の３つの条件を満たすため、ヒゲと判断された上で除去される。区間ａｇと区間ａｈは区間ａｃが非等幅線と判定されているため条件２を満たさず、ヒゲと判断されず削除されない。また区間ｅｋも条件２を満たしていないためヒゲと判断されず削除されない。なお、区間ａｇと区間ａｈは後述する図１１の等幅線分割を行って区間ａｃの一部を等幅線として分割した後に再度芯線除去処理を行うことで除去することが可能となる。
【００３７】
＜等幅線端点形状修正処理＞
ヒゲを除去することにより原画の特徴を示す芯線成分だけを抽出することができるが、本願における処理の後に、画像データに対しベクトル化を適用する場合、原画再現性向上のため除去したヒゲに接続する等幅線に対して修正を加える必要がある。ここでの修正とはステップＳ６１７で行う端点形状の修正または、ステップＳ６１９で行う等幅線の接続を指す。
【００３８】
ステップＳ６１７は端点形状の修正であり、除去したヒゲが１本の等幅線に接続していた時（すなわち、ヒゲを除去した後、当該除去したヒゲが接続していた等幅線の部分が端点として残った場合）に行う。これは図８の交点ｂのような端部に生じるヒゲであり、ＳＶＧ（Ｓｃａｌａｂｌｅ  Ｖｅｃｔｏｒ  Ｇｒａｐｈｉｃｓ）などのベクトルフォーマットに存在するＬＩＮＥＣＡＰ情報を付与することでベクトルデータをレンダリングした際の原画再現性が向上する。図１２にＬＩＮＥＣＡＰの種類を示す。ここでは、細線化処理を行って得た芯線の端点の位置は、等幅線の端点位置より短い位置になるので、ｓｑｕａｒｅ  ｃａｐの情報を付与することで入力形状を忠実に再現することが可能となる。ｓｑｕａｒｅ  ｃａｐの情報が付与されると、描画時に線の長さが伸びることになる。また等幅線の端点を線幅に応じて延伸することでも、等幅線端点の形状修正を行うことができる。また、端点の形状が丸い形状であった場合には、ｒｏｕｎｄ  ｃａｐの情報を付与することで、端点が丸い形状で再現されることになる。
【００３９】
＜等幅線接続処理＞
除去したヒゲが２本の等幅線に接続していた時は、２本の等幅線の接続処理を行う。これは図８の交点ｆのような角点に生じるヒゲを起因として発生する問題に対応するための処理である。ここでの問題とは、図８を例にとって説明すると、区間ｄｆと区間ｅｆは本来１本の等幅線であるが、区間ｆｌに存在していたヒゲにより交点ｆの位置に交点が存在していると認識されると、交点ｆで分断された上で２本の等幅線として扱われてしまう。ステップＳ６１８において２本の等幅線の線幅差とＲＯＭ６上に予め保持されている閾値とを比較し、線幅差が閾値以下の場合は、当該２本の等幅線はもともと１本の等幅線であったと判定し、ステップＳ６１９において等幅線接続の処理を行う。Ｓ６１９の処理後、Ｓ６２０にて、すべての非等幅線に対し、芯線修正が完了したかの判定を行い、未完了であれば、Ｓ６１１に戻り次の対象となる非等幅線を選択した上で処理を継続する。Ｓ６１８において、線幅差が閾値より大きければ、Ｓ６２０の処理へ進む。
【００４０】
すなわち、ステップＳ６１９で行う等幅線接続処理とは、本来は１本の等幅線であるにもかかわらず芯線除去処理により２つに切断された等幅線に対し、接続処理を行う処理である。すなわち、共通の交点をもつ２つの分割芯線の接続関係情報を統合する処理である。
【００４１】
＜等幅線分割処理＞
次に等幅線区間の分割処理を行う。図８の区間ａｃは先の等幅線判定において非等幅線と判定されているが、これは交点・端点で芯線を分割した際において、対象となる芯線の中に等幅成分と非等幅成分が混在したことに起因する。本来は等幅成分が含まれるため、区間ａｃにおいて、等幅線と非等幅線に分割することが後処理での利用を考えると望ましい。また区間ａｃから等幅成分を抽出することで、先の芯線除去処理では除去できなかった区間ａｇと区間ａｈのヒゲを除去することができるようにもなる。
【００４２】
図１３に等幅線分割処理のフローを示す。ステップS６２１において、ある区間で等幅線とみなすことができるか等幅線判定を行う。等幅線とみなせる区間があるときは新たに分割点を設定し、ステップS６２２で等幅線と判定された区間を分割し、ステップS６２３で等幅線と判定されなかった区間を非等幅線の芯線として抽出する。等幅とみなす区間の設定は考えられる交点・端点の全組み合わせに対して行ってもよいし、交点における推定線幅値の大きさに応じて任意で設定してもよい。たとえば交点ｃに対応する推定線幅値は９なので、推定線幅値を１／２にして小数第１位を四捨五入した５をパラメータとする。そして、交点ｃから５画素分離れた点ｍで区間ａｃを分け、その後区間ａｍにて等幅線判定を行うことで、等幅線と非等幅線との判別の精度を向上させることが可能となる。
【００４３】
等幅線分割を行うことによって等幅線であるにもかかわらず、当初非等幅線と判定された分割芯線に対しても再分割して等幅線として扱えるようになるため、等幅線分割後に芯線除去処理を再度行うとさらに精度よくヒゲを除去することができる。図８に示した芯線図形において等幅線分割後に芯線除去処理を再度行うと図１４及び、図１５の結果を得ることができる。図１４において、黒の芯線は等幅線を表し、灰色の芯線は非等幅線を表す。
【００４４】
＜面領域芯線抽出処理＞
非等幅線として抽出された芯線は面領域を示すため、図１４においての灰色の芯線はすなわち面領域を示すこととなる。これにより、面領域芯線の抽出も可能となっている。
【００４５】
以上により、細線化処理で生じる画像の特徴を表していないヒゲや芯線の歪みを正確に修正し、元画像の特徴を忠実に表した芯線画像を生成できる。これにより後処理で利用しやすい細線化画像を得ることが可能となる。例えば、後処理でベクトル化処理を行う場合、等幅線の区間は芯線をベクトルデータに変換し、線幅情報と一緒に保持することで、等幅線の区間をベクトルデータ（芯線ベクトルデータと線幅情報の組み合わせ）で再現できる。このような芯線のベクトルデータで表した場合、線幅変更などの編集が容易に行えるようになる。また、非等幅線の区間は、例えば、ニ値画像において、当該非等幅線に対応する部分画像のみを処理対象にして輪郭を抽出してベクトル化処理することにより、面部分のベクトルデータを作成することも可能になる。すなわち、等幅線部分と非等幅線部分とでベクトル化処理の手法を切り換えることも容易に行えるようになる。
【００４６】
＜実施形態２＞
実施形態１では図1のステップS１００における細線化処理をすべての図形画素が１ピクセル幅になるよう最後まで行ったが、途中で細線化処理を中断し、細線化処理が完了した芯線部分のみを抽出して以降の処理を行うこともできる。細線化処理が完了したかどうかの判定は、前回のラスタスキャン時と注目画素の周囲にある８近傍の画素に変化があったかどうかを見ることで判断することもできる。
【００４７】
細線化処理を途中で中断すると細線化処理が完了した芯線と細線化未完了領域の間に新たな交点が生じる。図１のステップＳ５００及びステップＳ６００では交点における接続関係を参照しているが、細線化処理を途中で中断した場合、細線化未完了領域に接する交点は非等幅線に接続していると解釈され、以降の処理を行うこととなる。
【００４８】
以上により、すべての画素に対して、各処理を適用しなくても、次の処理に進むことが可能である。これにより、後の処理で利用する際の汎用性が向上する。
【００４９】
以上本発明にかかる実施形態を説明したが、実施形態の処理の多くは、情報処理装置上で実行されるコンピュータプログラムによるものであるので、当然、本発明はかかるコンピュータプログラムをもその範疇とする。また、通常、コンピュータプログラムはＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納されていて、それをコンピュータにセットしシステムにコピーもしくはインストールすることで実行可能になる。従って、かかるコンピュータ可読記憶媒体も当然に本発明の範疇に入る。
【００５０】
なお本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラム自体が前述した実施形態の機能を実現することになり、そのプログラム自体およびプログラムを記憶したプログラム記憶媒体は本発明を構成することになる。
【００５１】
また、本発明には、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【００５２】
また、発明の実施の形態は、本発明を中核として構成される装置又は方法を説明している。このため本実施形態には本発明の本質的部分に加えて付加的な構成要件も記載されている。すなわち発明の実施の形態において説明した装置又は方法の構成要件を備えることは、本発明を成立させるための十分条件ではあるものの、必要条件ではない。
【図面の簡単な説明】
【００５３】
【図１】実施形態における情報処理装置のメイン処理を示すフローチャートの図である。
【図２】実施形態における情報処理装置のブロック構成図である。
【図３】Ｈｉｌｄｉｔｃｈ細線化法による処理結果の図である。
【図４】面領域を含む画像をＨｉｌｄｉｔｃｈ細線化法で処理した結果の図である。
【図５】線幅推定処理を示すフローチャートの図である。
【図６】線幅推定処理の説明図である。
【図７】細線化処理と距離変換処理の処理例の図である。
【図８】線幅推定処理の処理例の図である。
【図９】等幅線判定処理を示すフローチャートの図である。
【図１０】接続関係情報の保持例の図である。
【図１１】芯線除去処理を示すフローチャートの図である。
【図１２】端点形状例の図である。
【図１３】等幅線分割処理を示すフローチャートの図である。
【図１４】芯線修正処理の処理例の図である。
【図１５】芯線修正処理後に得られる接続関係情報の保持例の図である。
【符号の説明】
【００５４】
１      スキャナ
２      画像メモリ
４      ネットワークインターフェース
５      ＲＡＭ
６      ＲＯＭ
７      ＣＰＵ
８      ディスプレイ
１２    外部記憶装置
【図１】
2010157186.tif 000003
【図２】
2010157186.tif 000004
【図３】
2010157186.tif 000005
【図４】
2010157186.tif 000006
【図５】
2010157186.tif 000007
【図６】
2010157186.tif 000008
【図７】
2010157186.tif 000009
【図８】
2010157186.tif 000010
【図９】
2010157186.tif 000011
【図１０】
2010157186.tif 000012
【図１１】
2010157186.tif 000013
【図１２】
2010157186.tif 000014
【図１３】
2010157186.tif 000015
【図１４】
2010157186.tif 000016
【図１５】
2010157186.tif 000017