説明

画像処理方法、画像処理装置及びコンピュータプログラム

【課題】画像を細線化した時に生じる画像の特徴を表していないヒゲや芯線の歪みを修正する。
【解決手段】入力画像に対して細線化処理を行うことにより芯線を抽出する細線化処理手段と、前記細線化処理手段で求めた芯線の画素に対して、元の線幅を推定する線幅推定手段と、前記細線化処理手段で求めた芯線を交点で分割する芯線分割手段と、前記線幅推定手段で求めた線幅情報を元に、前記芯線分割手段で分割した芯線が等幅線であるか否かを判定する等幅線判定手段と、前記芯線分割手段で分割した芯線に対して、他の芯線との接続関係情報を生成する接続関係情報生成手段と、前記線幅推定手段で求めた芯線画素の線幅情報と前記等幅線判定手段で等幅線を判定した結果と前記接続関係情報生成手段で求めた接続関係情報とに基づいて、前記芯線分割手段で分割した芯線の修正を行う芯線修正手段とを具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理方法、画像処理装置及びプログラムに関し、特に画像処理における細線化図形の芯線修正方法に関するものである。
【背景技術】
【0002】
細線化処理は二値画像の入力に対して、図形画素が1ピクセル幅になるように変換する処理である。細線化処理によれば、背景画素(白画素)に接している図形画素(黒画素)を単純に削っていく収縮処理と異なり、図形のトポロジ(位置関係・接続関係)を保持したまま、図形の線部の中心線を表わす芯線を抽出することができる。細線化処理は、文字認識やパターン認識、ベクトル化の前処理として広く使われている画像処理方法である。細線化処理は古くから研究がおこなわれており、様々な方法が提案されているが、なかでもHilditchの細線化法が公知の細線化法として広く知られている(例えば非特許文献1等参照)。
【0003】
Hilditchの細線化法では注目画素とその周囲の8画素を参照する3×3のウィンドウを基本処理単位とし、画像データ全体をラスタ走査し、各画素を注目画素として処理することで細線化処理を行う。ある画素を注目画素とした場合、3×3のウィンドウ単位で予め定義した細線化による削除条件に合致するかを判定し、注目画素が削除条件に合致する場合には注目画素を削除、即ち図形画素を背景画素に置き換える処理を行う。一方、削除条件に合致しない場合は、ラスタ走査順で次の画素を注目画素とし、新たな3×3のウィンドウについて同様の処理を行う。この処理を画像データの全ての画素に対して繰り返す。そして、一回のラスタ走査において削除される画素が全くなくなるまでラスタ走査による一連の処理を繰り返し行う。一回のラスタ走査において削除される画素がなくなった時点で、細線化の処理を完了する。図3にHilditchの細線化法による処理結果の例を示す。図3(a)は元画像であり、Hilditchの細線化法による細線化処理を行った結果が図3(b)である。図3(c)は元画像と、その細線化処理済み画像とを重ね合わせて示した図であり、細線化処理後の画像が、ほぼ元画像の芯線となっていることが見て取れる。
【0004】
細線化処理では元画像の図形のトポロジを保持する必要があるため、「処理対象の線幅が1ピクセルになったらそれ以上は削除しない」という制約を削除条件に含める必要がある。しかしHilditchの細線化法ではある注目画素を削除するかどうかの判定を周囲8近傍のみを参照して行う。例えば図3(c)における3×3ウィンドウ(i)では、折れ線の角部分の画素であるので、該折れ線を分岐のない1本の芯線で表わすためには、当該3×3ウィンドウ(i)の注目画素は削除することが望ましい。一方、3×3ウィンドウ(ii)では、線画の端部の画素であるので、当該注目画素を削除すると、元画像の線の長さと芯線の線の長さが相違することとなるので、削除しないことが望ましい。しかしながら3×3ウインドウ内の画素の配置だけでは、周囲8近傍のみを参照しているので、削除すべきか否かを適応的に判断することはできない。そのため、ウィンドウ(ii)の中心画素(注目画素)を削除しないように細線化の条件を設定すると、ウィンドウ(i)のように直線の端や角に削り残しが発生する。そこで周囲8近傍よりも広い周囲を参照して削除判定を行う細線化法も考案されているが、現状では本質的に削り残しが生じない細線化法は考案されていない。この細線化処理により生じる削り残しはヒゲとも呼ばれ、芯線として利用する場合には、この細線化結果のヒゲを除去した後に使用する必要がある。
【0005】
続いて、図4にベタ塗領域(面部)を含む画像に対し、図3と同様に3×3ウインドウ内の画素配置に基づく細線化処理を行った場合の例を示す。ベタ塗領域を含む画像に対して細線化処理を行うと、面を斜め線になるように削った画像が処理結果として得られる。面部の細線化結果に見られる斜め線は細線化によるヒゲではなく、面領域の特徴を表した芯線と考えることができる。よって、この面を処理して得られた斜め線を、面部を表わす芯線として後処理で利用するためには、この斜め線はヒゲとして除去してはならない芯線成分である。
【0006】
図4(b)において、細線化結果の芯線を交点ごとに分離してみると、図4(c)の交点aと交点bをつなぐ区間ab(交点aから図の左上隅を通って交点bに到達するまでの区間)において、等幅線を表わす芯線と面を表わす芯線(斜め線)とが混在してしまう。すなわち、細線化後の後処理で、等幅線部分の芯線と非等幅線部分(面部分)の芯線とを分けて取り扱う必要があっても、単に交点で分割した単位ごとに判断するのでは、適切に面と等幅線とを分離できない。
【0007】
一方、細線化画像からヒゲを除去する方法には、芯線の分岐点および端点を求め、端点を含みかつ長さが所定値以下の図形画素を抽出して削除する方法がある(たとえば特許文献1等参照)。この技術によると細線化画像から一定長以下のヒゲを削除することができる。
【0008】
また、距離変換という技術も知られている。距離変換は二値画像中の図形画素の値を背景画素からの距離値に置き換える処理である。距離変換を行うことで各図形画素に対して、一番近い背景画素までの距離を求めることができる。(たとえば非特許文献2等参照)
【特許文献1】特開平5−94525号公報
【非特許文献1】安居院、長尾著「C言語による画像処理入門」初版,ISBN4-7856-3124-4,昭晃堂,2000年11月20日発行,第53−58ページ
【非特許文献2】鳥脇純一郎著“画像理解のためのディジタル画像処理(II)”初版, ISBN4-7856-2004-8, 昭晃堂, 昭和63年4月30日発行, P.32-P.37
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながらヒゲの長さだけを判断基準として用いると、長いヒゲが削除されず残ったり、面部を細線化した際に発生する芯線をヒゲと誤って削除したりすることがある。
【0010】
また等幅線を表わす芯線と非等幅線を表わす芯線が混在した場合に(例えば図4)、それらを分離することは上記文献記載の技術ではできない。
【0011】
本願発明は上記従来例に鑑みて成されたもので、上述した課題を解決することを目的とする。詳しくは、画像を細線化した細線化画像に含まれる元画像の特徴を表していないヒゲや芯線の歪みを、芯線画素に対して推定した元の線幅情報と芯線同士がどのように接続しているかの関係情報とを元に修正して、元画像の特徴を忠実に表した芯線画像を生成できる画像処理装置及び画像処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
この課題を解決するため、本発明の画像処理装置は、入力画像に対して細線化処理を行うことにより、芯線を抽出する細線化処理手段と、前記細線化処理手段で求めた芯線の画素に対して、元の線幅を推定する線幅推定手段と、前記細線化処理手段で求めた芯線を交点で分割する芯線分割手段と、前記線幅推定手段で求めた線幅情報を元に、前記芯線分割手段で分割した芯線が等幅線であるか否かを判定する等幅線判定手段と、前記芯線分割手段で分割した芯線に対して、他の芯線との接続関係情報を生成する接続関係情報生成手段と、前記線幅推定手段で求めた芯線画素の線幅情報と、前記等幅線判定手段で等幅線を判定した結果と、前記接続関係情報生成手段で求めた接続関係情報とに基づいて、前記芯線分割手段で分割した芯線の修正を行う芯線修正手段とを有することを特徴とする。
【発明の効果】
【0013】
本発明によれば、細線化処理で生じる画像の特徴を表していないヒゲや芯線の歪みを正確に修正し、等幅線成分と非等幅線成分を分けて精度よく得ることができる。これにより後処理で利用しやすい細線化画像を得ることができる。このことは例えば、細線化後の後処理としてベクトル化処理を行う場合、ベクトル化処理で得られるベクトルデータの原画再現性向上、編集性向上、データサイズ削減といった利点につながる。
【発明を実施するための最良の形態】
【0014】
<実施形態1>
以下、添付の図面を参照して本発明の実施の形態を説明する。
【0015】
<画像形成装置の構成>
まず本実施形態の画像処理装置の構成例について、図2のブロック図を参照して説明する。図2の画像処理装置は、たとえば汎用コンピュータにスキャナを接続したものでもよいし、ディジタル複写機であってもよい。ただしディジタル複写機の場合であっても、本実施形態ではプリンタは不可欠な要素ではないことから、その説明は省略する。
【0016】
図2において、中央処理ユニット(CPU)7は装置全体を制御する。読み出し専用メモリ(ROM)6は変更を必要としないプログラムやパラメータを格納する。ランダムアクセスメモリ(RAM)5は外部装置等から供給されるプログラムやデータを一時記憶する。スキャナ1は、文書等を光電走査して電子的な画像データを得るためのデバイスである。画像入出力インターフェース(I/O)3はスキャナ1と画像処理装置を接続するインターフェースである。画像メモリ2は、スキャナ1で読み取られた画像データ等を保持するためのメモリである。外部記憶装置12はファイルを格納するためのストレージであり、ハードディスクやメモリカード、あるいは着脱可能なフレキシブルディスク(FD)やコンパクトディスク(CD)等の光ディスク、磁気や光カード、ICカード、メモリカード等である。また、インターフェース(I/O)13は外部記憶装置12とコンピュータ装置との入出力インターフェースである。インターフェース(I/O)15は、ユーザの操作を受け、データを入力するためのマウス等のポインティングデバイス10やキーボード9等の入力デバイスとのインターフェースである。映像インターフェース(I/O)14は、画像処理装置の保持するデータや供給されたデータを表示するためのディスプレイモニタ8とのインターフェースである。通信インターフェース(I/F)4は、インターネット等のネットワーク回線に接続するためのネットワークインターフェースである。システムバス11は1〜15の各ユニットを通信可能にする機能を有する。
【0017】
<画像の細線化処理>
次に、CPU7上で実行されるプログラムにより本願発明を実現する処理手順を、図1のフローチャートを用いて説明する。
【0018】
図1は、本願による発明を実施する装置における動作全体の流れを示すフローチャートである。画像処理が開始されると、処理対象となる画像領域を含む画像データが入力される。画像入力に関しては、スキャナ1にて読み取られた画像データが画像入出力I/O 3を介して画像メモリ2に入力される。また、通信I/F4を介して、装置外部より前記処理対象となる画像領域を含む画像を入力してもよく、あるいは、外部記憶装置12に予め記憶されている画像データをI/O 13を介して読み込んでもよい。得られた入力画像は、画像メモリ2上に保持される。この画像データが、図1の処理の対象となる。
【0019】
図1において、ステップS100では、入力された画像データを二値画像データへ変換し、細線化処理を行う。処理対象の画像データが多値画像データの場合、ROM6上に予め保持されている閾値を用いて二値化処理を行い、二値画像データへの変換を行う。またカラー画像データの場合は減色処理、クラスタリング処理などを行って入力画像データを、元画像データよりも少ない代表色で構成される画像データに変換し、代表色の色成分の画像データを二値画像データとして処理対象としても良い。なお対象となる画像データが既に二値画像データである場合はそのまま次の処理に移る。
【0020】
二値化処理、減色処理などに用いるROM6上の閾値は、入力された画像データを映像I/O14を介してディスプレイモニタ8上に表示した上で、これを視認しながらI/O15を介してキーボード9やマウス10等の入力デバイスを用いて操作者より指示入力されるように構成してもよい。なお、二値化処理は上述した手法に限るものではなく、画像に応じて適応的に閾値を変えて二値化する処理など、公知の二値化処理を用いるようにしてもよい。本実施形態において、細線化アルゴリズムは先に紹介したHilditchの細線化法を用いる。この細線化処理を行うことにより、芯線の画像が得られることになる。
【0021】
<線幅推定処理>
ステップS200では、細線化処理が施された画像データを対象として線幅推定処理を行う。これはステップS100で得られる芯線の画素に対応する原画像での線幅を推定する処理である。ステップS200の処理の詳細を図5と図6に示す。
【0022】
まずステップS201では入力画像として得られた二値画像に対して距離変換を行う。距離変換結果として得られる画像は、注目した図形画素ごとに最も近い背景画素までの距離を距離値として各画素に設定した画像である。このとき、背景画素においては距離の値が0となる。図7に具体的な距離変換結果の実行例を示す。図7(a)に対し、距離変換の処理を適用した結果が図7(c)である。図7(c)は、距離変換結果の画像において、各画素に設定された距離値を数値で示したものである。
【0023】
次にステップS202で芯線画素を1つ選択して注目画素とし、ステップS203で当該注目画素とその周囲8近傍の画素とからなる3×3のウィンドウを設定し、ステップS201で求めた距離変換結果の中からウィンドウの位置と対応する値を取得する。例えば、図7(a)の細線化結果として得られる芯線の画像は図7(b)のようになる。そこで、図7(b)における一番左上に位置する芯線上の交点を注目画素として例にとると、図7(c)における3×3の枠線20(図6における枠線30)が3×3のウィンドウに対応する位置に相当するので、その内部の距離値を取得する。
【0024】
ステップS204はステップS202で選択した芯線画素に対し、ステップS203で得た3×3のウィンドウに対応する距離変換結果の値を用いて、原画像で対応する線幅の値(以下、線幅値)を推定する処理を行う。注目画素の周囲8近傍のうち、芯線画素でない位置にある距離変換結果の最大値を、ステップS202で選択した注目画素に対応する距離変換結果の値に足し合わせることで線幅値を推定する。例えば、図6の3×3のウィンドウ30において、注目画素31に対応する距離値は“2”であり、当ウィンドウ内において芯線画素でない位置にある最大の距離値は32で示す“1”となる。よって注目画素の距離変換結果の距離値"2"に、芯線画素でない画素の最大距離値“1”を足し、注目画素の推定線幅として3が求められる。
【0025】
ステップS205では全ての芯線画素に対して、線幅推定の処理を行ったかを判定する。まだ未処理の画素があれば、ステップS202へ戻り、次の画素を選択し線幅推定の処理を続ける。全ての画素を処理した場合は線幅推定処理を終了し、次の処理へ移る。図8に、図7(a)で示す二値画像に対して、図7(b)と図7(c)とを参照して線幅推定の処理を実施した結果を数値で示す。
【0026】
以上のように線幅推定処理とは、距離変換で求めた各画像における距離の値に基づいて、各芯線画像の線幅を推定する処理である。
【0027】
<芯線分割処理>
次にステップS300ではステップS100で得た芯線を交点で分割する処理を行い、以降の処理で交点・端点間毎に芯線を扱えるようにする。図8にはaからfの記号を振った交点及び、gからlまでの記号を振った端点が存在する。このときaからgの区間、aからcの区間、aからhの区間、bからiの区間というように、交点と端点の位置に基づいて芯線を分割する(以下、分割芯線)。また、”aからgの区間”を指して”区間ag”と称する。区間は、例えばラスタデータにおいての画素の座標により特定することができる。
【0028】
<等幅線判定処理>
ステップS400ではステップS300で分割した芯線のそれぞれが、等幅線か否かの判定を行う。等幅線か否かの判定はステップS200で求めた線幅値の分散を計算することで行う。図9に等幅線判定の処理フローを示す。
【0029】
まずステップS401において対象とする分割芯線を選択し、ステップS402において選択した分割芯線の線幅値の分散を計算する。等幅線である芯線は各位置の線幅値が近い値となるので分散値は小さくなる傾向にあり、逆に非等幅線である芯線は画素毎に線幅値の大きさが異なるため分散値は大きくなる傾向がある。また分散を求める処理にて対象とする画素は全芯線画素を用いても、代表画素としていくつかサンプリングして用いてもかまわない。
【0030】
ステップS403において求めた分散値とROM6に予め保持されている閾値とを比較し、等幅線か否かを判定する。分散値が閾値以下であれば等幅線、閾値より大きければ非等幅線とみなす。例えば、図8の区間bdの分散を標準偏差で求めると0.445となり、図8の区間cdの標準偏差は2.095となる。閾値を1.0とすると、区間bdは等幅線に、区間cdは非等幅線と判断することができる。この閾値は判定対象である芯線の長さ等の情報に応じて変更することもできる。等幅線と判定された場合、ステップS404で対象とする分割芯線に等幅線と判定されたことを情報として付加し、等幅線と判定されなかった場合はステップS405で非等幅線として情報を付加する。ステップS406で全分割芯線を判定したかを確認し、もし未判定の分割芯線があればステップS401で対象とする分割芯線を更新し、等幅線判定処理を再開する。
【0031】
ステップS400において、線幅値の分散のみを判定基準に用いると図8の区間agのように短い区間では判定基準として適切な分散値が求められない。これにより、当該区間は等幅線としてみなされ、誤った判定がなされてしまうことがある。このような誤判定を抑制するため、一定の長さに満たない分割芯線については分散値が閾値以下であっても”非等幅線”と判定し必要であれば後処理で等幅線に修正することが望ましい。分散の閾値を1.0、長さの閾値を5とし、芯線の全画素の線幅値から分散を求めると、最終的に図8の芯線画像からは区間bd、区間df、区間efが等幅線として判定される。
【0032】
<接続関係情報生成処理>
ステップS500では各交点において、どの分割芯線が接続しているかを参照できる接続関係情報を生成する。接続関係情報の例を図10に示す。この図からは交点の番号と、各交点に接続する分割芯線がどれかと、何本の分割芯線に接続しているかと、そのうちどれが等幅線であるかとを参照することができる。本例において、両端に交点を持つ芯線については重複して登録されている。また、交点に対する接続関係情報のみを例示しているが、端点についての接続関係情報も保持することが望ましい。
【0033】
<芯線修正処理>
ステップS600では、S200において芯線画素に対して推定した元の線幅情報と、S500において生成した芯線同士がどのように接続しているかを示す接続関係情報とに基づいて、芯線の修正を行う。芯線の修正はヒゲを除去する芯線除去と、芯線から等幅成分だけを抽出する等幅線分割から構成される。
【0034】
芯線除去処理では全ての非等幅線を対象として調査し、図8における区間bi、区間bj、区間flといった細線化処理によって生じたヒゲを除去する。これらの削除すべき分割芯線に共通な条件として、以下の3つが挙げられる。
(1)開放端を含む
(2)交点で等幅線と接続している
(3)開放端から交点に向かって、線幅値が単調増加する
以上の3つの条件をすべて満たす分割芯線を削除することで、長さだけを判定条件にするよりも精度よくヒゲを除去することができる。なお、ここでの開放端とは他の芯線に接続していない芯線の端点を指す。(1)と(2)の条件により、芯線は一方が開放端であり、もう一方が他の等幅線と交点での接続ということになる。
【0035】
図11に芯線除去処理の流れを示す。まずステップS611において対象とする非等幅線を選択する。その後、S612において対象とする非等幅線が開放端を含んでいるかを判定し、開放端を含まない場合はS611に戻り、次の非等幅線を選択した上で再度処理を進める。次にステップS613において、交点で等幅線と接続しているかを判定し、等幅線と接続してない場合はS611に戻り、次の非等幅線を選択した上で再度処理を進める。ステップS614では開放端から他の等幅線との交点に向かって線幅値が単調増加しているかを判定する。線幅値が単調増加している場合は対象とした分割芯線はヒゲであると判断し、ステップS615において分割芯線の除去を行う。線幅値が途中で小さくなり、単調増加していない場合はヒゲでないと判断し、S611に戻り、次の非等幅線を選択した上で再度処理を進める。芯線除去の処理は芯線画像及び接続関係情報を対象として行われる。
【0036】
図8を例にとると、区間bi、区間bj、区間flが先の3つの条件を満たすため、ヒゲと判断された上で除去される。区間agと区間ahは区間acが非等幅線と判定されているため条件2を満たさず、ヒゲと判断されず削除されない。また区間ekも条件2を満たしていないためヒゲと判断されず削除されない。なお、区間agと区間ahは後述する図11の等幅線分割を行って区間acの一部を等幅線として分割した後に再度芯線除去処理を行うことで除去することが可能となる。
【0037】
<等幅線端点形状修正処理>
ヒゲを除去することにより原画の特徴を示す芯線成分だけを抽出することができるが、本願における処理の後に、画像データに対しベクトル化を適用する場合、原画再現性向上のため除去したヒゲに接続する等幅線に対して修正を加える必要がある。ここでの修正とはステップS617で行う端点形状の修正または、ステップS619で行う等幅線の接続を指す。
【0038】
ステップS617は端点形状の修正であり、除去したヒゲが1本の等幅線に接続していた時(すなわち、ヒゲを除去した後、当該除去したヒゲが接続していた等幅線の部分が端点として残った場合)に行う。これは図8の交点bのような端部に生じるヒゲであり、SVG(Scalable Vector Graphics)などのベクトルフォーマットに存在するLINECAP情報を付与することでベクトルデータをレンダリングした際の原画再現性が向上する。図12にLINECAPの種類を示す。ここでは、細線化処理を行って得た芯線の端点の位置は、等幅線の端点位置より短い位置になるので、square capの情報を付与することで入力形状を忠実に再現することが可能となる。square capの情報が付与されると、描画時に線の長さが伸びることになる。また等幅線の端点を線幅に応じて延伸することでも、等幅線端点の形状修正を行うことができる。また、端点の形状が丸い形状であった場合には、round capの情報を付与することで、端点が丸い形状で再現されることになる。
【0039】
<等幅線接続処理>
除去したヒゲが2本の等幅線に接続していた時は、2本の等幅線の接続処理を行う。これは図8の交点fのような角点に生じるヒゲを起因として発生する問題に対応するための処理である。ここでの問題とは、図8を例にとって説明すると、区間dfと区間efは本来1本の等幅線であるが、区間flに存在していたヒゲにより交点fの位置に交点が存在していると認識されると、交点fで分断された上で2本の等幅線として扱われてしまう。ステップS618において2本の等幅線の線幅差とROM6上に予め保持されている閾値とを比較し、線幅差が閾値以下の場合は、当該2本の等幅線はもともと1本の等幅線であったと判定し、ステップS619において等幅線接続の処理を行う。S619の処理後、S620にて、すべての非等幅線に対し、芯線修正が完了したかの判定を行い、未完了であれば、S611に戻り次の対象となる非等幅線を選択した上で処理を継続する。S618において、線幅差が閾値より大きければ、S620の処理へ進む。
【0040】
すなわち、ステップS619で行う等幅線接続処理とは、本来は1本の等幅線であるにもかかわらず芯線除去処理により2つに切断された等幅線に対し、接続処理を行う処理である。すなわち、共通の交点をもつ2つの分割芯線の接続関係情報を統合する処理である。
【0041】
<等幅線分割処理>
次に等幅線区間の分割処理を行う。図8の区間acは先の等幅線判定において非等幅線と判定されているが、これは交点・端点で芯線を分割した際において、対象となる芯線の中に等幅成分と非等幅成分が混在したことに起因する。本来は等幅成分が含まれるため、区間acにおいて、等幅線と非等幅線に分割することが後処理での利用を考えると望ましい。また区間acから等幅成分を抽出することで、先の芯線除去処理では除去できなかった区間agと区間ahのヒゲを除去することができるようにもなる。
【0042】
図13に等幅線分割処理のフローを示す。ステップS621において、ある区間で等幅線とみなすことができるか等幅線判定を行う。等幅線とみなせる区間があるときは新たに分割点を設定し、ステップS622で等幅線と判定された区間を分割し、ステップS623で等幅線と判定されなかった区間を非等幅線の芯線として抽出する。等幅とみなす区間の設定は考えられる交点・端点の全組み合わせに対して行ってもよいし、交点における推定線幅値の大きさに応じて任意で設定してもよい。たとえば交点cに対応する推定線幅値は9なので、推定線幅値を1/2にして小数第1位を四捨五入した5をパラメータとする。そして、交点cから5画素分離れた点mで区間acを分け、その後区間amにて等幅線判定を行うことで、等幅線と非等幅線との判別の精度を向上させることが可能となる。
【0043】
等幅線分割を行うことによって等幅線であるにもかかわらず、当初非等幅線と判定された分割芯線に対しても再分割して等幅線として扱えるようになるため、等幅線分割後に芯線除去処理を再度行うとさらに精度よくヒゲを除去することができる。図8に示した芯線図形において等幅線分割後に芯線除去処理を再度行うと図14及び、図15の結果を得ることができる。図14において、黒の芯線は等幅線を表し、灰色の芯線は非等幅線を表す。
【0044】
<面領域芯線抽出処理>
非等幅線として抽出された芯線は面領域を示すため、図14においての灰色の芯線はすなわち面領域を示すこととなる。これにより、面領域芯線の抽出も可能となっている。
【0045】
以上により、細線化処理で生じる画像の特徴を表していないヒゲや芯線の歪みを正確に修正し、元画像の特徴を忠実に表した芯線画像を生成できる。これにより後処理で利用しやすい細線化画像を得ることが可能となる。例えば、後処理でベクトル化処理を行う場合、等幅線の区間は芯線をベクトルデータに変換し、線幅情報と一緒に保持することで、等幅線の区間をベクトルデータ(芯線ベクトルデータと線幅情報の組み合わせ)で再現できる。このような芯線のベクトルデータで表した場合、線幅変更などの編集が容易に行えるようになる。また、非等幅線の区間は、例えば、ニ値画像において、当該非等幅線に対応する部分画像のみを処理対象にして輪郭を抽出してベクトル化処理することにより、面部分のベクトルデータを作成することも可能になる。すなわち、等幅線部分と非等幅線部分とでベクトル化処理の手法を切り換えることも容易に行えるようになる。
【0046】
<実施形態2>
実施形態1では図1のステップS100における細線化処理をすべての図形画素が1ピクセル幅になるよう最後まで行ったが、途中で細線化処理を中断し、細線化処理が完了した芯線部分のみを抽出して以降の処理を行うこともできる。細線化処理が完了したかどうかの判定は、前回のラスタスキャン時と注目画素の周囲にある8近傍の画素に変化があったかどうかを見ることで判断することもできる。
【0047】
細線化処理を途中で中断すると細線化処理が完了した芯線と細線化未完了領域の間に新たな交点が生じる。図1のステップS500及びステップS600では交点における接続関係を参照しているが、細線化処理を途中で中断した場合、細線化未完了領域に接する交点は非等幅線に接続していると解釈され、以降の処理を行うこととなる。
【0048】
以上により、すべての画素に対して、各処理を適用しなくても、次の処理に進むことが可能である。これにより、後の処理で利用する際の汎用性が向上する。
【0049】
以上本発明にかかる実施形態を説明したが、実施形態の処理の多くは、情報処理装置上で実行されるコンピュータプログラムによるものであるので、当然、本発明はかかるコンピュータプログラムをもその範疇とする。また、通常、コンピュータプログラムはCD−ROM等のコンピュータ可読記憶媒体に格納されていて、それをコンピュータにセットしシステムにコピーもしくはインストールすることで実行可能になる。従って、かかるコンピュータ可読記憶媒体も当然に本発明の範疇に入る。
【0050】
なお本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。また本発明の目的は、前述の実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが記憶媒体に格納されたプログラムを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラム自体が前述した実施形態の機能を実現することになり、そのプログラム自体およびプログラムを記憶したプログラム記憶媒体は本発明を構成することになる。
【0051】
また、本発明には、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【0052】
また、発明の実施の形態は、本発明を中核として構成される装置又は方法を説明している。このため本実施形態には本発明の本質的部分に加えて付加的な構成要件も記載されている。すなわち発明の実施の形態において説明した装置又は方法の構成要件を備えることは、本発明を成立させるための十分条件ではあるものの、必要条件ではない。
【図面の簡単な説明】
【0053】
【図1】実施形態における情報処理装置のメイン処理を示すフローチャートの図である。
【図2】実施形態における情報処理装置のブロック構成図である。
【図3】Hilditch細線化法による処理結果の図である。
【図4】面領域を含む画像をHilditch細線化法で処理した結果の図である。
【図5】線幅推定処理を示すフローチャートの図である。
【図6】線幅推定処理の説明図である。
【図7】細線化処理と距離変換処理の処理例の図である。
【図8】線幅推定処理の処理例の図である。
【図9】等幅線判定処理を示すフローチャートの図である。
【図10】接続関係情報の保持例の図である。
【図11】芯線除去処理を示すフローチャートの図である。
【図12】端点形状例の図である。
【図13】等幅線分割処理を示すフローチャートの図である。
【図14】芯線修正処理の処理例の図である。
【図15】芯線修正処理後に得られる接続関係情報の保持例の図である。
【符号の説明】
【0054】
1 スキャナ
2 画像メモリ
4 ネットワークインターフェース
5 RAM
6 ROM
7 CPU
8 ディスプレイ
12 外部記憶装置

【特許請求の範囲】
【請求項1】
入力画像に対して細線化処理を行うことにより芯線を抽出する細線化処理手段と、
前記細線化処理手段で求めた芯線の画素に対して元の線幅を推定する線幅推定手段と、
前記細線化処理手段で求めた芯線を交点で分割する芯線分割手段と、
前記線幅推定手段で求めた線幅情報を元に、前記芯線分割手段で分割した芯線が等幅線であるか否かを判定する等幅線判定手段と、
前記芯線分割手段で分割した芯線に対して、他の芯線との接続関係情報を生成する接続関係情報生成手段と、
前記線幅推定手段で求めた芯線画素の線幅情報と前記等幅線判定手段で等幅線を判定した結果と前記接続関係情報生成手段で求めた接続関係情報とに基づいて、前記芯線分割手段で分割した芯線の修正を行う芯線修正手段と
を有することを特徴とする画像処理装置。
【請求項2】
前記芯線修正手段は、前記等幅線判定手段で等幅線でないと判定された芯線に対して、当該芯線の一方の端点が開放端である条件ともう一方の端点が他の等幅線に接続する条件と当該開放端から該等幅線との交点に向かって前記線幅推定手段で求めた線幅が単調増加する条件とを満たすか否か判定し、前記条件を満たすと判定した芯線を除去する芯線除去手段を含むことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記芯線除去手段は、前記条件を満たすと判定した芯線を除去した場合において、当該除去した芯線が1本の等幅線に接続していたとき、当該等幅線の端点形状を修正する等幅線端点の形状修正手段を含むことを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記芯線除去手段は、前記条件を満たすと判定した芯線を除去した場合において、当該除去した芯線が2本の等幅線との交点で接続していたとき、当該交点に接続する2本の等幅線の間において、線幅値の差が閾値以下であれば、当該2本の等幅線を接続する等幅線接続手段を含むことを特徴とする請求項2または3に記載の画像処理装置。
【請求項5】
前記芯線修正手段は、前記等幅線判定手段で等幅線でないと判定された芯線において、等幅とみなせる区間があるか否か判定し、等幅と見なせる区間がある場合、当該等幅と見なせる区間を等幅線として分割する等幅線分割手段を含むことを特徴とする請求項1及至4のいずれか一項に記載の画像処理装置。
【請求項6】
前記等幅線分割手段は、前記等幅線として分割しなかった芯線の区間を、面領域を表わす芯線として抽出することを特徴とする請求項5に記載の画像処理装置。
【請求項7】
前記芯線修正手段は、前記等幅線分割手段で前記等幅と見なせる区間を等幅線として分割した後に、前記芯線除去手段で前記条件を満たす芯線を除去することを特徴とする請求項5または6に記載の画像処理装置。
【請求項8】
前記接続関係情報生成手段は、前記等幅線判定手段で等幅線を判定した結果を含めて前記接続関係情報を生成し、
前記芯線修正手段は、前記線幅推定手段で求めた芯線画素の線幅情報と前記接続関係情報生成手段で求めた接続関係情報とに基づいて、前記芯線分割手段で分割した芯線の修正を行うことを特徴とする請求項1乃至7のいずれか一項に記載の画像処理装置。
【請求項9】
画像処理装置の細線化処理手段が、入力画像に対して細線化処理を行うことにより芯線を抽出する細線化処理工程と、
前記画像処理装置の線幅推定手段が、前記細線化処理工程で求めた芯線の画素に対して、元の線幅を推定する線幅推定工程と、
前記画像処理装置の芯線分割手段が、前記細線化処理工程で求めた芯線を交点で分割する芯線分割工程と、
前記画像処理装置の等幅線判定手段が、前記線幅推定工程で求めた線幅情報を元に、前記芯線分割工程で分割した芯線が等幅線である否かを判定する等幅線判定工程と、
前記画像処理装置の接続関係情報生成手段が、前記芯線分割工程で分割した芯線に対して、他の芯線との接続関係情報を生成する接続関係情報生成工程と、
前記画像処理装置の芯線修正手段が、芯線と前記線幅推定工程で求めた芯線画素の線幅情報と前記等幅線判定工程で等幅線を判定した結果と前記接続関係情報生成工程で求めた接続関係情報とに基づいて、前記芯線分割工程で分割した芯線の修正を行う芯線修正工程と
を有することを特徴とする画像処理方法。
【請求項10】
コンピュータを、
入力画像に対して細線化処理を行うことにより、芯線を抽出する細線化処理手段と、
前記細線化処理手段で求めた芯線の画素に対して、元の線幅を推定する線幅推定手段と、
前記細線化処理手段で求めた芯線を交点で分割する芯線分割手段と、
前記線幅推定手段で求めた線幅情報を元に、前記芯線分割手段で分割した芯線が等幅線であるか否かを判定する等幅線判定手段と、
前記芯線分割手段で分割した芯線に対して、他の芯線との接続関係情報を生成する接続関係情報生成手段と、
前記線幅推定手段で求めた芯線画素の線幅情報と前記等幅線判定手段で等幅線を判定した結果と前記接続関係情報生成手段で求めた接続関係情報とに基づいて、前記芯線分割手段で分割した芯線の修正を行う芯線修正手段
として機能させるためのコンピュータプログラム。
【請求項11】
請求項10に記載のコンピュータプログラムを記憶したプログラム記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2010−157186(P2010−157186A)
【公開日】平成22年7月15日(2010.7.15)
【国際特許分類】
【出願番号】特願2009−388(P2009−388)
【出願日】平成21年1月5日(2009.1.5)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】