JP5028174B2 - 画像処理装置、画像処理方法、及び、画像処理プログラム - Google Patents

画像処理装置、画像処理方法、及び、画像処理プログラム Download PDF

Info

Publication number
JP5028174B2
JP5028174B2 JP2007188665A JP2007188665A JP5028174B2 JP 5028174 B2 JP5028174 B2 JP 5028174B2 JP 2007188665 A JP2007188665 A JP 2007188665A JP 2007188665 A JP2007188665 A JP 2007188665A JP 5028174 B2 JP5028174 B2 JP 5028174B2
Authority
JP
Japan
Prior art keywords
point
vector
contour
determined
pixel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007188665A
Other languages
English (en)
Other versions
JP2009026079A (ja
Inventor
良弘 石田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2007188665A priority Critical patent/JP5028174B2/ja
Publication of JP2009026079A publication Critical patent/JP2009026079A/ja
Application granted granted Critical
Publication of JP5028174B2 publication Critical patent/JP5028174B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)

Description

本発明は、細線化された2値画像から輪郭ベクトルを抽出し、更に、線芯化された線芯ベクトル情報を平滑化する画像処理装置に関する。
近年、ペーパーレス化への要求が高まり、既存の画像データを電子化し、再利用することが頻繁に行われている。従来、そのような画像データの再利用は、例えば、画像データを2値化処理した後に、ベクトル化技術を用いてベクトルデータに変換し、変換されたベクトルデータがCADソフト等で用いられることで行われている。近年では、2値画像からベクトルデータを抽出する手法や、ベクトルデータを平滑化する手法に関連して、処理工数や回路規模の低減等を目的として、様々な技術が開発されている。
2値画像のベクトル化については、特許文献1においても開示されている。特許文献1には、画像を画素マトリクス単位にラスタ走査し、輪郭の開始部分から終了部分までの連結された水平及び垂直方向の画素数に応じた輪郭ベクトルを抽出する方法が記載されている。従って、各輪郭の開始から終了部分までの1つの輪郭ベクトルとして抽出することができるため、輪郭ベクトルのデータ量を減らして輪郭抽出を行うことができるとされている。また、特許文献1には、注目画素と近傍画素の状態により、所定の位置の輪郭線を構成する点とし、近傍画素の状態により輪郭線を構成する点の接続方向を決定する工程が記載されている。また、輪郭線を構成する点と輪郭線を構成する他の点との接続状態を判断する工程と、ラスタ走査順に画像データ上の注目画素の位置を更新し、注目画素毎に、近傍画素の状態に基づいて輪郭点を抽出する工程が記載されている。そのような構成において、画像データにおける注目画素と、近傍画素の状態とを保持し、注目画素をラスタ走査順に取り出し、注目画素と近傍画素との状態に基づいて、水平方向及び垂直方向の画素間ベクトルが検出されている。それら画素間ベクトル同士の接続状態が判別され、判別された画素間ベクトルの接続状態に基づいて、画像データの輪郭が抽出されている。特許文献1における手法は、画像中の全ての輪郭線を1回のラスタ走査順だけで抽出でき、かつ、全ての画像データを記憶するための画像メモリを必要としないので、メモリの容量を低減できるというものである。また、入力画像の画素の中心位置ではなく、画素の縁単位に輪郭を抽出することによって、1画素幅の細線に対しても、有為な幅を有する輪郭線を抽出することができる。更に、原画中の画素の4方向に連結した連結画素領域の輪郭線を抽出するだけでなく、8方向に連結した画素領域も抽出することができるとされている。
更に、特許文献2には、特許文献1に関連して、8連結の画素領域の輪郭点を抽出する場合においてベクトル抽出をモジュール化し、効率的な輪郭点を抽出する方法が記載されている。
また、特許文献3には、2値画像の輪郭情報を用いて、高画質な変倍画像を得ることができる画像処理装置が記載されている。特許文献3によると、2値画像からアウトライン(輪郭)ベクトルを抽出し、抽出されたアウトラインベクトルの状態で、所望の倍率で滑らかに変倍し、そのアウトラインベクトルから2値画像を再生成する方法が記載されている。その結果、所望の倍率で変倍された高画質のディジタル2値画像を得ることができるとされている。ここで、2値画像からアウトラインベクトルを抽出する方法としては、例えば、特許文献1や特許文献2で開示されている方法が用いられる場合もある。
また、特許文献4には、2値画像の輪郭情報を直線、又は、2次や3次のベジェ曲線近似することで、より少ないデータ量で高画質な変倍画像を表現する、輪郭情報を関数近似する処理手法及び処理装置が開示されている。2値画像からアウトラインベクトルを抽出し、抽出されたアウトラインベクトルの状態で滑らかに関数近似されたアウトラインベクトルを用いても、所望の倍率で変倍された高画質のディジタル2値画像を得ることができる。ここで、2値画像からアウトラインベクトルを抽出する方法として、例えば、特許文献1や特許文献2で開示されている方法が用いられる場合もある。
図37の(a)〜(d)は、2値画像からアウトラインベクトルを抽出し、抽出されたアウトラインベクトルが滑らかに関数近似され、そのアウトラインベクトルを用いて所望の倍率で変倍された高画質のディジタル2値画像を得る一連の流れを示す図である。図37の(a)は、入力されるラインアート画像の一例を示している。また、図37の(b)は、図37の(a)に示す2値画像から、特許文献1又は2による手法で抽出される輪郭ベクトルデータを輪郭画像として描画して可視化した図である。図37の(c)は、抽出された輪郭ベクトルデータを特許文献3による手法で滑らかに関数近似して得られるアウトラインベクトルを描画して可視化したものである。図37の(d)は、平滑化(関数近似)されたベクトルを中塗りされ、所望の倍率で変倍された高画質のディジタル2値画像の一例を示す図である。
既に述べたような近年のペーパーレス化への要求は、特に、ビジネス文書において高まっており、例えば、既存の画像データが電子化して再利用されている。例えば、特許文献1又は2と、特許文献3又は4により、原文書中の2値図形の輪郭ベクトルを抽出し、2次元形状を任意の拡大縮小率で変倍することによって、原図のもつ各部分の部分的な太さの差や面積等を所望とされる変倍率で変倍することができる。
ビジネス文書で既存の画像データを再利用する場合に、各線の部分的な曲率や長さ等の変更や、線の集まりから一部の線を削除したり、線を付与する等の編集操作を行うように、細線のみで描かれている線画が再利用できることが望ましい。従って、従来のCAD/CAMシステム等での各種手書き図面の自動入力方法のように、ある図形において、輪郭を構成する線、又は、線の集まりとして扱えることが望まれている。しかしながら、上記の特許文献においては、太さを意識せずに、細線のみで描かれている線画や、ある図形の輪郭を構成する線を、各線の端点や交点間をつなぐ独立した線や閉曲線の集まりとして抽出することはできない。ここで、端点や交点をつなぐ線で構成される閉図形の集まりとして、線図形から抽出される輪郭ベクトルの内側ベクトルのみを用いることが考えられる。しかしながら、図37の(e)に示すように、部分図形間を結ぶ線分や、閉図形からはみ出る線分に対応するベクトルが欠落してしまう場合があり、十分な手法とはいえない。
上記の特許文献に記載されている輪郭ベクトルの平滑化については、基本的にベクトル列がループ状に連続した構成であることが前提とされている。平滑化後の輪郭点や端点、アンカーポイントは、注目する辺ベクトルの前後に連なる一連の辺ベクトルが存在し、それらの向きや長さの組み合わせによって決定されるとされている。特許文献4によれば、ベクトル平滑化において、まず、粗輪郭データと称して、2値のラスタ画像のデータから抽出された、水平ベクトル、垂直ベクトルが交互に並ぶ構成となる輪郭データを入力し、粗輪郭上の線分より接線線分を抽出する。次に、抽出された接線線分からアンカーポイントを抽出し、抽出されたアンカーポイント間の線分により構成されるグループを2次又は3次ベジェ曲線、及び、直線をあてはめる。若しくは、ベジェ曲線近似して、2次又は3次のベジェ曲線に置き換えていく場合もある。ここで、アンカーポイントとして定められた点に基づいて、アンカーポイント間にある輪郭点を1つのグループとして関数近似する方法は、関数近似法としての基本的な手法でとして広く知られている。また、アンカーポイントは、その間が、2次又は3次ベジェ曲線、及び、直線のいずれに関数近似されても、アンカーポイント自体の位置、即ち、座標値は、変化しないという特徴を有している。 特許文献4に、接線線分とするベクトルを抽出するための条件が挙げられている。第1の条件として、注目するベクトルの前後のベクトルの向きが互いに逆向きであることが挙げられている。第2の条件として、抽出済みの接線線分に隣接し、ベクトルの長さL1が、L1≧θ1を満たすことが挙げられている。第3の条件として、ベクトルの長さL2が、L2≧θ2を満たすことが挙げられている。ここで、θ1及びθ2は、所定のベクトル長を示し、L1は、注目ベクトルの長さを示し、L2は、注目ベクトルから2本後のベクトルの長さを示している。また、抽出された接線線分上に新たな点を抽出し、アンカーポイントとしている。アンカーポイントは、接線線分の2端についてそれぞれ抽出される。従って、一つの接線線分について、2つのアンカーポイントが抽出され、それら2つのアンカーポイントが一致した場合には、1つのアンカーポイントのみ抽出される。一方、2つのアンカーポイントが抽出される場合には、アンカーポイントに挟まれた部分は、自動的にオブジェクト上の直線とされる。接線線分上の1つの端点に対するアンカーポイントの抽出方法において、注目する接線線分であるベクトルに隣接するベクトルが接線線分である場合には、その隣接する側の端点がアンカーポイントとされる。また、接線線分ではない場合には、着目する接線線分のベクトル(Vaとし、長さを|Va|とする)の2本前の線分のベクトル(Vbとし、長さを|Vb|とする)の長さ分、ベクトルVa上の端点からα|Vb|離れた点が、アンカーポイントとされる。ここで、「α」とは所定の係数である。このように、関数近似によるベクトル平滑化のためには、着目する線分のベクトルより、少なくとも2本前にある線分のベクトルの情報が存在することが前提とされている。
従って、非周回型のベクトル列に対して、接線線分を抽出しアンカーポイントを決定し、関数近似して平滑化するためには、例えば、始端点と終端点間に補助的なベクトルを挿入することによって閉ループを構成する場合が考えられる。しかしながら、そのような新たなベクトルを生成し、挿入するための処理工程や回路が必要となるので、工程が複雑化し、回路規模が増大してしまう。
特許第3026592号(第11頁) 特開平05−108823号公報(段落[0062]) 特許第3049672号(段落[0011]) 特開2005−346137号公報(段落[0069])
そこで、上記の点に鑑み、本発明は、処理工程や回路規模を増大させることなく、非周回型のベクトル列を平滑化することができる画像処理装置を提供することを目的とする
上記課題を解決するため、入力された画像データを2値化し、2値化された前記画像データを一画素幅に細線化し、輪郭ベクトルを抽出する画像処理装置であって、細線化された2値画像データを構成する輪郭ベクトルと、前記輪郭ベクトルと該輪郭ベクトルに係る線の端点との関連付けを示す付与情報とを抽出する輪郭ベクトル抽出手段と、前記輪郭ベクトル抽出手段によって抽出された前記輪郭ベクトルを当該輪郭ベクトルに係る線に沿った線芯ベクトルに変換する線芯ベクトル生成手段と、前記付与情報を参照し、前記線芯ベクトル生成手段によって生成された前記線芯ベクトルが複数含まれた線芯ベクトル列が周回型、又は、始端点から終端点まで順に接続された非周回型のベクトル列であるかを判定し、非周回型のベクトル列であると判定した場合に、前記始端点を含むベクトルに相当する第1辺と、前記第1辺に接続される第2辺と、前記第2辺に接続される第3辺とで構成される始端点区間と、前記終端点を含むベクトルに相当する第6辺と、前記第6辺に接続される第7辺と、前記第7辺に接続される第8辺とで構成される終端点区間とにおいて、それぞれ複数のアンカーポイントを決定し、決定された前記複数のアンカーポイントの間を補間し、曲線近似する線芯ベクトル平滑手段と、を備え、前記線芯ベクトル平滑手段は、前記始端点区間において、前記始端点と、(a)前記第1辺と前記第2辺とが接続される点と、(b)前記第2辺と前記第3辺とが接続される点から前記第3辺上であって前記第1辺の長さ分の距離と、前記第3辺と前記第3辺に接続される第4辺とが接続される点から前記第3辺上であって前記第4辺に接続される第5辺の長さ分の距離と、前記第3辺の中点との内、少なくとも1つによって決定される点と、(c)前記第2辺と前記第3辺とが接続される点と、の内少なくとも1つの点と、を前記複数のアンカーポイントとして決定し、前記終端点区間において、前記終端点と、(d)前記第6辺と前記7辺とが接続される点から前記第6辺上であって前記第8辺の長さ分の距離と、前記第6辺の中点との内、いずれか1つによって決定される点と、(e)前記第6辺と前記第7辺とが接続される点と、(f)前記第7辺と前記第8辺とが接続される点と、(g)前記第8辺と前記第8辺に接続される第9辺とが接続される点から前記第8辺上であって前記第9辺に接続される第10辺の長さ分の距離と、前記第8辺と前記第7辺に接続される点から前記第8辺上であって前記第6辺の長さ分の距離と、前記第8辺の中点との内、少なくとも1つによって決定される点と、(h)前記第8辺と前記第9辺とが接続される点と、の内少なくとも1つの点と、を前記複数のアンカーポイントとして決定する、ことを特徴とする。
本発明によれば、処理工程や回路規模を増大させることなく、非周回型のベクトル列を平滑化することができる。
以下に、本発明を実施するための最良の形態について、図面を参照しながら詳しく説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
図1は、本実施形態に係る画像処理装置の構成を示す図である。図1に示すスキャナ1は、後述する図2に示す画像入力手段211として用いられる。画像メモリ2は、画像入出力インタフェース3を介し、スキャナ1で読み取られた2値化前の多値画像データや、2値化後の2値画像データを保持する。画像メモリ2と画像入出力インタフェース3は、図2に示す細線化済2値画像獲得手段200として用いられる。
輪郭ベクトル抽出部5は、図2に示す輪郭ベクトル抽出手段300として用いられる。輪郭ベクトル抽出部5は、入力画像ラスタ走査部50と、入力ポート513及び514を含んでいる。入力画像ラスタ走査部50は、画像入出力インタフェース3を介して、細線化済2値画像データを順次入力する。入力ポート513及び514は、3×3の9画素で構成される走査窓における各画素の状態を入力する。
CPU519、ROM6、RAM520、ディスクインタフェース521、通信インタフェース4、画像メモリ2、画像入出力インタフェース3、輪郭ベクトル抽出部5は、システムバス518によって、相互に接続されている。本画像処理装置は、通信インタフェースを介し、外部の装置と通信することができる。また、RAM520は、ワーキングメモリとして機能し、ROM6には、CPU519で実行されるプログラムや、所定のパラメータや、データ等が格納されている。ハードディスク522は、ディスクインタフェース521を介して、システムバス518に接続されている。CPU519、RAM520、ROM6は、図2に示す線芯ベクトル生成手段310や、線芯ベクトル平滑手段320として用いられる。
図2は、本実施形態に係る画像処理装置の機能ブロックを示す図である。以下、図2及び図3を参照しながら、本画像処理装置の動作の概略について説明する。図2に示す細線化済2値画像獲得手段200は、2値画像入力手段210と、2値画像細線化手段220とを含んでいる。2値画像入力手段210は、2値画像を2値画像細線化手段220に出力し、2値画像細線化手段220は、4連結に細線化された2値画像を出力する。ここで、2値画像入力手段210は、例えば、スキャナである画像入力手段211と、2値化手段212を含んでいる。画像入力手段211における光電走査によって読み取られた画像データは、2値化手段212における閾値処理によって2値化される。更に、2値化された2値画像は、例えば、Hilditch法の手法が用いられて、4連結の細線化処理が行われる。Hilditch法とは、公知の細線化手法として、酒井幸市著「ディジタル画像処理の基礎と応用第2版、ISBN4−7898−3707−6、CQ出版社、2004年2月1日発行、P.51−P.54」等に記載されている。
図3の(a)は、2値画像細線化手段220に入力される2値画像の一例を示す図である。また、図3の(b)は、2値画像細線化手段220から出力される細線化済画像の一例を示す図である。2値画像は、細線化処理によって、一画素幅に細線化される。
本実施形態において、輪郭ベクトル抽出手段300は、1回のラスタ走査により細線化済2値画像の線図形を、端点や交点間をつなぐ独立した線又は閉曲線毎のそれぞれに対応したベクトル列の集まり(以下、線素粗輪郭ベクトルという)として抽出し出力する。本実施形態におけるベクトルの付与される様子は、後述する図9〜図24に示す。その場合に、出力結果には、ベクトル列を構成するそれぞれのベクトルが、処理対象である線図形の端点又は交点位置に対応する部分から抽出されたか否かを示す情報等を含んでいる。以下、そのような情報を付与情報といい、本実施形態においては、付与情報と線素粗輪郭ベクトルとを合わせて、輪郭ベクトルという。本実施形態において抽出される輪郭ベクトルは、太さや面積といった概念に意味を有さず、図形の輪郭を構成する線のみを、直線、閉曲線、開曲線等の線又は線の集まりとして扱う場合に適している。従って、太さを意識せずに、細線のみで描かれている線画として最利用することができる。
また、本実施形態において、線芯ベクトル生成手段310は、入力された輪郭ベクトルに含まれる付与情報を用いて、線分の幅を「0」に線芯化するため、輪郭ベクトルに係る線に沿った線芯化ベクトルを生成する。その際に、幅が1画素である線分において、端点から他方の端点までの片道分の各輪郭ベクトルの位置が、それぞれ半画素分ずつ所定の方向に、予め、定められた規則に従って微調整される。ここで、端点を有さない閉ループの場合には、閉ループ上の全てのベクトルの位置が、それぞれ半画素分ずつ所定の方向に、予め、定められた規則に従って微調整される。線芯ベクトル生成手段310によって、輪郭ベクトルが、線芯化ベクトルに変換される。図3の(c)は、輪郭ベクトル抽出手段300から出力される輪郭ベクトルを輪郭画像として描画し、可視化した図である。また、図3の(d)は、線芯ベクトル生成手段310から出力される線芯化済みベクトルを線画像として描画し、可視化した図である。
更に、本実施形態において、線芯ベクトル平滑手段320は、線芯化済みベクトルを入力し、各端点間ベクトル毎に平滑化処理を行うことによって、平滑化済みの、始端点と終端点の間の非周回型のベクトル列を生成する。本実施形態においては、平滑化処理は、関数近似の手法によって行われる。平滑化済ベクトル出力手段330は、ファイル出力、又は、通信インタフェース等を介し、平滑化されたベクトルデータが、外部装置に出力される。図3の(e)は、線芯ベクトル平滑手段320から出力される平滑化済みベクトルを、線画像として描画し、可視化した図である。
図4は、図1に示す輪郭ベクトル抽出部5の詳細な構成を示す図である。輪郭ベクトル抽出部5は、図4に示す信号線500により、ラスタ走査形式で、細線化済み2値画像データを順次、入力する。入力制御回路501は、画像データを入力する制御部である。入力制御回路501に入力された画像データは、図示されていない画素同期クロック信号に同期し、1画素ずつ順次更新しながら、ラッチ502に保持される。また、ラッチ502は、次の画素同期クロック信号によって、次の画素データを入力制御回路501から入力する。その場合に、既に保持していた画素データは、画素クロック信号に同期して、ラッチ503に保持され、ラッチ503に保持されていた画素データは、ラッチ504に保持される。FIFO505及び506は、それぞれ、1ラスタ分の画素データを保持するメモリであり、ファーストイン・ファーストアウト動作する。FIFO505は、ラッチ504の出力を順次、画素同期クロック信号に同期して取り込み、1ラスタ前のデータをラッチ507に出力する。同様に、FIFO506は、ラッチ509の出力を順次、取り込み、1ラスタ前のデータをラッチ510に出力する。ラッチ507、ラッチ508、ラッチ509、ラッチ510、ラッチ511、ラッチ512の動作については、ラッチ502、ラッチ503、ラッチ504と同様である。
ここで、図4に示すラッチで表される画素について説明する。図5は、9個の画素について説明する図である。本実施形態において、画像処理装置は、図5に示すような2値画像における注目画素101と、その近傍の8個の画素の状態を認識し処理を進める。注目画素101がラスタ走査され、主走査方向に、1画素ずつずらしながら画像全体の処理が進行する。図6において、「X」は注目画素101を示し、「0」及び「2」で示された位置は、主走査方向について注目画素101と同じ位置であって、画素「0」は、副走査方向について1ラスタ前の画素を示し、画素「2」は、1ラスタ先の画素を示している。「1」及び「3」で示された位置は、注目画素101と同一のラスタ上にあって、画素「3」は、1画素前の画素を示し、画素「1」は、1画素先の画素を示している。更に、「A」及び「B」は、主走査方向に1画素先の位置にあって、画素「A」は、1ラスタ前にある画素を示し、画素「B」は、1ラスタ先の位置にある画素を示している。更に、「C」及び「D」は、主走査方向の1画素前の位置にあって、画素「C」は、1ラスタ先にある画素を示し、画素「D」は、1ラスタ前の位置にある画素を示している。
再び、図4を参照する。図4に示すラッチ502、ラッチ503、ラッチ504、ラッチ507、ラッチ508、ラッチ509、ラッチ510、ラッチ511、ラッチ512に記憶された9個の画素は、図5に示す9画素からなる領域の画素データを記憶する。ラッチ502は、図5に示す画素「B」に対応している。また、ラッチ503は画素「2」に、ラッチ504は画素「C」に、ラッチ507は画素「1」に対応している。更に、ラッチ508は画素「X」に、ラッチ509は画素「3」に、ラッチ510は画素「A」に、ラッチ511は画素「0」に、ラッチ512は画素「D」に対応している。
図4に示す入力ポート513及び514は、3×3の9画素で構成される走査窓における各画素の状態を入力する。入力ポート513は、ラッチ510、ラッチ502、ラッチ504、ラッチ512のデータを、図5に示す「A」「B」「C」「D」の位置のデータとして、CPU519に入力する。また、入力ポート514は、ラッチ511、507、503、509、508のデータを、「0」「1」「2」「3」「X」の位置のデータとして、CPU519に入力する。主走査カウンタ515は、主走査方向の画素位置を示すカウンタであり、図示されていない副走査同期信号によりリセットされて、図示されていない画素同期信号によりカウントアップする。副走査カウンタ516は、副走査方向の画素位置を示すカウンタで、図示されていないページ同期信号によりリセットされ、図示されていない副走査同期信号によりカウントアップされる。入出力制御ポート517は、入出力制御用の入出力ポートであり、入力制御回路501に、画素データ入力の実行、又は、保留を指示する信号を出力し、入力制御回路501から、CPU519へ画素データ更新を通知する信号等を受信する。CPU519は、入出力制御ポート517を介して、画素データの更新を行うことができ、主走査カウンタ515及び副走査カウンタ516を介して、注目画素101の画素位置(i、j)を認識することができる。また、入力ポート513及び514を介して、注目画素101及び近傍の8方向の画素の状態を認識することができる。
注目画素の処理が終了すると、CPU519は、入出力制御ポート517を介し、9個のラッチに記憶される画素データの更新を指示すると共に、画素データの更新完了の信号をリセットする。入力制御回路501は、入出力制御ポート517から更新を指示されると、画素データの更新指示の信号をクリアすると共に、ラッチに保持される画素データを更新し、更新が完了すると、入出力制御ポート517に更新完了の信号を出力する。CPU519は、更新指示の出力後、入出力制御ポート517からの更新完了の信号の入力を監視している。更新完了の信号が入力されると、新たに9個のラッチに記憶された画素データについて処理され、以降、同様の処理が繰り返される。入力制御回路501は、画像領域の最終画素を、注目画素101として処理を終了すると、入出力制御ポート517に終了信号を出力する。
図6は、本実施形態において、後述する図9〜図24に示す輪郭点に付与される付与情報の一覧テーブルを示す図である。以下、付与情報を、輪郭点情報ともいう。図6に示す一覧テーブルは、例えば、ハードディスク522に格納されていても良い。本実施形態においては、それぞれの輪郭点が抽出される際に、輪郭点に入力、又は、輪郭点から出力されるベクトルに応じて、図6に示すような16種類の輪郭点情報のいずれかが付与される。図6に示される輪郭点情報は、「xxx_yyy」又は「xxx_yyy_zzz」の形式によって表示されている。ここで、「xxx」の部分は、対象の輪郭点が終点となるベクトルの向きを表し、「yyy」の部分は、その輪郭点が始点となるベクトルの向きを表している。図6において、「UP」は上向き、「DOWN」は下向き、「RIGHT」は右向き、「LEFT」は左向きを示している。例えば、第1〜3の項目においては、いずれも上向きベクトルの終点が、かつ、右向きベクトルの始点となる輪郭点であることを示している。また、「zzz」の部分は、付与情報を有する輪郭点が、端点部であることを示していて、図6においては、「端点情報」の欄に示されている。即ち、本実施形態において、図6に示すテーブルは、輪郭ベクトルが有する輪郭点と端点との関連付けを示している。
ここで、端点情報について、図7を参照しながら、図6を説明する。図7は、端点が存在する場合において付与される端点情報を説明する図である。以下の図7、図8、及び、図9〜図24において、内部がチェックパターンとされた丸印は黒画素を示し、破線とされた丸印は白画素を示している。また、図中の「d」は、「do not care」、即ち、白画素でも黒画素でも構わないことを示している。また、図9〜図24において、黒丸印は、横方向ベクトルの始点を示し、白丸印は、縦方向ベクトルの終点を表している。更に、黒三角印は、縦方向ベクトルの始点を示し、白三角印は、横方向ベクトルの終点を表している。また、図中において実線で示された矢印は、始点及び終点が定まった輪郭ベクトルを示し、破線で示された矢印は、始点又は終点のいずれかが定まった輪郭ベクトルを示している。以下、輪郭ベクトルの始点と終点とを、総称して輪郭点という。特に、黒丸印は、端点部から抽出されるベクトルの始点及び縦方向ベクトルの終点を示しており、黒三角印は、端点部から抽出される縦方向ベクトルの始点及び横方向ベクトルの終点を示している。
図7の(a)に示す「_TL」は、線素の上端部の左側から抽出された輪郭点であることを示している。また、図7の(b)に示す「_LT」は、線素の左端部の上側から抽出された輪郭点であることを示している。また、図7の(d)に示すように、「_BR」は、線素の下端部の右側から抽出された輪郭点であることを示している。また、図7の(c)に示すように、「_RB」は、線素の右端部の下側から抽出された輪郭点であることを示している。また、図7の(b)に示すように、「_LB」は、線素の左端部の下側から抽出された輪郭点であることを示している。また、図7の(d)に示すように、「_BL」は、線素の下端部の左側から抽出された輪郭点であることを示している。また、図7の(c)に示すように、「_RT」は、線素の上端部の右側から抽出された輪郭点であることを示している。また、図7の(a)に示すように、「_TR」は、線素の右端部の上側から抽出された輪郭点であることを示している。
次に、線素の端点でない部分(以下、非端点部という)から抽出される輪郭点について説明する。図8は、端点が存在しない場合において付与される付与情報を説明する図である。非端点部には、既に説明した「_zzz」部が記載されていない輪郭点情報が付与される。本実施形態においては、注目画素101が黒画素の場合に、図9〜図24に示すような近傍の画素の状態に応じて輪郭点情報が抽出される際に、図6に示す「値」欄に記載されている数値が付与される。ここで、輪郭ベクトルの始点及び終点位置は、主走査方向と副走査方向共に、画素間の中間に位置している。本実施形態において、主走査方向及び副走査方向共に、画素のある位置は正の整数で示され、画素位置は、2次元座標で表現される。ここで、小数の表現を避けるために便宜上、画素位置は、偶数のみで表現され、始点と終点の位置は、奇数によって表現される。即ち、m画素×n画素の画像は、2m×2nの正の偶数の座標表現で表わされる。主走査方向をx座標、副走査方向をy座標とした2次元座標であらわすとき、2値画像は、それぞれがm画素よりなるnラスタで構成されるm×n画素(m、nは正の整数)であるとする。また、第j番目のラスタの第i番目の画素位置は、(2i、2j)(i、jは正の整数で、i≦m、j≦n)で表現される。また、主走査方向は、左から右に向かう方向を正の方向とし、副走査方向は、上から下に向かう向きを正の方向とする。本実施形態において、注目画素101が白画素である場合には、ラスタ走査が1画素分進められ、注目画素101の位置が更新される。一方、注目画素101が黒画素である場合には、近傍の8画素の状態に応じた処理が行なわれる。
図9〜図24は、輪郭ベクトル抽出手段300が、2値画像細線化手段220から4連結に細線化された2値画像を入力した場合に、認識され得るパターンを示した図である。図5において説明したような3×3の9画素で構成される走査窓が用いられて、画像がラスタ走査され、逐次、図9〜図24に示すような3×3の画素パターンとして、注目画素と近傍の8画素の状態とが判断され、輪郭点が抽出される。本実施形態においては、4連結に細線化された2値画像において、端点及び交点が検出されると共に、端点、交点が結ばれ互いに独立した線素や、閉曲線の集まりとして、それぞれの線成分に対応する独立したベクトル群が抽出される。また、本実施形態において、その際に、それぞれの輪郭点に、図6に示す輪郭点情報が付与される。
図9〜図24の内、例えば、図10の(1)に示す画素パターンにおいて、中央の注目画素の輪郭点に、図6に示す「LEFT_UP_BL」及び「DOWN_LEFT_BR」で示される端点情報が付与されていることを示している。また、図11の(1)に示す画素パターンは、中央の注目画素の輪郭点に、図6に示す「UP_RIGHT_LT」及び「LEFT_UP_LB」で示される端点情報が付与されていることを示している。更に、図13の(1)に示す画素パターンは、中央の注目画素の点に、図6に示す「UP_RIGHT_TL」及び「RIGHT_DOWN_TR」で示される端点情報が付与されていることを示している。既に説明したように、実際には、それぞれの端点情報は、図6に示す「値」欄に示される数値として付与される。また、図16の(1)に示す画素パターンは、中央の注目画素における左上の交点に、図11に示す「UP_RIGHT_LT」及び図13に示す「UP_RIGHT_TL」で示される端点情報が付与されていることを示している。一方、例えば、図12に示すような画素パターンが認識された場合には、端点情報ではなく、図8において説明したような輪郭点情報として付与される。残りの図15、図17、図18、図20、図21、図22、図23についても上記と同様な形で輪郭点情報又は端点情報が付与されていることを示している。また、図9、図14、図19に示すような画素パターンが認識された場合には、輪郭ベクトルの抽出処理は行われない。
以下、輪郭ベクトル抽出手段300の動作について説明する。図25は、本実施形態における輪郭ベクトル抽出手段300の処理の手順を示すフローチャートである。本実施形態においては、既に、説明したように、4連結に細線化された2値画像から、端点及び交点を検出し、端点や交点をつなぐ互いに独立した線素又は閉曲線の集まりとして、それぞれの線成分に対応する独立したベクトル群が抽出される。更に、ベクトル群が抽出される際に、図6に示すような輪郭点情報が、輪郭点に付与される。まず、ステツプS251において、2値画像データから、それぞれの輪郭点に輪郭点情報が付与され、各輪郭点に付随するベクトル列が抽出される。ベクトル列が抽出されると、各ベクトルの始点の座標が終点となるベクトル(以下、流入ベクトルという)と、そのベクトルの終点の座標が始点となるベクトル(以下、流出ベクトルという)とを出力し、ステップS252に進む。次に、ステツプS252において、出力された流入ベクトル及び流出ベクトルとから、画像中の総輪郭線数、各輪郭線における総点数、輪郭線中の各点のX及びY座標、各点の輪郭点情報の情報を有するデータテーブルが作成される。そのデータテーブルの形式については後述する。ステツプS253において、ディスクインタフェース521を介して、作成されたデータテーブル情報を、例えば、ファイル形式でハードディスク522に格納し、本フローチャートの動作を終了する。
図26は、図25に示すステップS251におけるベクトル列抽出処理の手順を示すフローチャートである。まず、ステップS261において、CPU519は、入力ポート514の4ビット目を参照することにより、注目画素101が、白画素であるか、又は、黒画素であるかを判定する。ここで、白画素と判定された場合には、ステップS263に進み、黒画素と判定された場合には、ステップS262に進む。ステップS262において、注目画素101の近傍の8画素の状態が、例えば、CPU、ラッチ、入力ポートにより検出され、8画素の状態に応じた適切な処理ルーチンがコールされる。ステップS263において、CPU519は、入出力制御ポート517を介して、画素位置の更新を入力制御回路501に指示する。ステップS263において、入力制御回路501によって、画素位置が更新され、更新が終了すると、入力制御回路501は、更新完了を入出力制御ポート517に通知する。ステップS264において、CPU519は、最終画素の処理が終了したか否かが判定され、終了と判定された場合には、図25のステップS252に進む。一方、終了していないと判定された場合には、次の注目画素について、ステップS261〜S264を繰り返す。
ここで、図26に示したステップS262について説明する。図27は、図26に示すステップS262に示す注目画素の近傍の画素の状態に応じて、実行される処理の手順を示すフローチャートである。まず、ステップS271において、レジスタが「0」にクリアされる。本実施形態において、画素状態は数値として表される。従って、レジスタは、そのような数値を格納するために用いられる。以下、CPU519のレジスタが用いられるとして説明する。次に、ステップS272において、図5に示す走査窓で「0」で示された位置の画素の状態(以下、f(0)とする)が、黒画素であるか、又は、白画素であるかが判定される。ここで、例えば、「0」の位置の画素の状態が黒画素であるということを「f(0)=1」と示し、白画素であるということを「f(0)=0」と示しても良い。ステップS272において、黒画素と判定された場合には、ステップS273に進み、レジスタの内容に「1」が加えられる。一方、白画素と判定された場合には、ステップS274に進む。ステップS274において、図5に示す走査窓で「1」で示された位置の画素の状態(以下、f(1)とする)が、黒画素であるか、又は、白画素であるかが判定される。ステップS274において、黒画素と判定された場合には、ステップS275に進み、レジスタの内容に「2」が加えられる。一方、白画素と判定された場合には、ステップS276に進む。
ステップS276において、図5に示す走査窓で「2」で示された位置の画素の状態(以下、f(2)とする)が、黒画素であるか、又は、白画素であるかが判定される。ステップS276において、黒画素と判定された場合には、ステップS277に進み、レジスタの内容に「4」が加えられる。一方、白画素と判定された場合には、ステップS278に進む。ステップS278において、図5に示す走査窓で「3」で示された位置の画素の状態(以下、f(3)とする)が、黒画素であるか、又は、白画素であるかが判定される。ステップS278において、黒画素と判定された場合には、ステップS279に進み、レジスタの内容に「8」が加えられる。一方、白画素と判定された場合には、ステップS280に進む。ステツプS280において、レジスタの保持する値の処理番号のルーチンが、コールされる。以上のフローにおいて、レジスタの内容は、図5に示す「0」、「1」、「2」、「3」の位置の各画素の状態に応じて、0〜15の値をとり得る。0〜15の値は、それぞれ、図9〜図24に示されるケース0〜ケース15のパターンに対応しており、図示されたように輪郭ベクトルが抽出される。本実施形態においては、輪郭ベクトル抽出手段300により、4連結に細線化された2値画像(線図形)から、端点や交点間をつなぐ独立した線や閉曲線毎に対応したベクトル列の集まりが抽出され、各輪郭点に輪郭点情報が付与され、結果として出力される。
図28は、輪郭ベクトル抽出手段300によって出力されるデータ形式の一例を示す図である。図28に示すように、出力されるデータは、第1輪郭、第2輪郭等の輪郭毎のまとまりとする各線素から抽出されたベクトル列を表しており、更に、それぞれの輪郭点に、図6に示すような輪郭点情報が付与されている。
図29は、線芯ベクトル生成手段310の処理の手順を示すフローチャートである。まず、ステップS291において、輪郭ベクトル抽出手段300によって得られた輪郭ベクトルが取得される。ステップS292において、ステップS291において取得された、図28に示すような輪郭化済みベクトルから、1つのベクトル列が処理対象とされる。例えば、図28において、第k輪郭(但し、1≦k≦a)が処理対象とされる。ステップS293において、ステップS292で対象とされた、例えば、総点数pのベクトル列において、1つのベクトルの輪郭点(第q点とする。但し、1≦q≦p)が処理対象とされる。ステップS293において、ステップS294で始端点が検出されるまで、第1点から第p点までが、昇順に1点ずつ処理対象として定められる。
ステップS294において、ステップS293で定められた輪郭点の輪郭点情報が参照され、その輪郭点が、始端点とすべきベクトルか否かが判定される。ここで、始端点とすべきベクトルと判定された場合には、ステップS297に進み、始端点とすべきベクトルと判定されなかった場合には、ステップS295に進む。ステップS294において、輪郭ベクトル抽出手段300で抽出された輪郭点情報が図6に示す「UP_RIGHT_LT」、「DOWN_LEFT_RB」、「LEFT_UP_BL」、「RIGHT_DOWN_TR」のいずれに該当するかにより判定される。ここで、例えば、図6の値欄に記載されている数値の0ビット目と1ビット目が共に「1」であるか否かが検出されることによって、ステップS294における判定がなされても良い。
ステップS295において、ステップS292において取得された輪郭化済みベクトルに含まれる処理対象とされた1つのベクトル列中の全てのベクトルの処理が終了したか否かが判定される。ここで、終了していないと判定された場合には、ステップS293に戻り、処理対象とされたベクトル列中の次のベクトルに対して、ステップS294において再び、判定される。一方、終了と判定された場合には、ステップS292において入力されたベクトル列中には、始端点候補が存在しなかった場合を示しており、ステップS296に進む。ステップS296においては、そのベクトル列が端点のない閉ループであることを示す閉ループマーカが、ベクトル列に対して付与される。図30の(a)は、閉ループマーカが付与されたベクトル列の一例を示す図である。図30の(a)において、対象とされたベクトル列は第s番目である場合を示し、ベクトル列中にv個のベクトルを含んでいる。また、図30に示すように、図28に示す輪郭化済みベクトルに、始端点終端点情報を格納する領域が挿入されている。また、図示されていないが、図28と同様に、各輪郭点の間に輪郭点情報の領域が確保されている。また、図30においては、始端点終端点情報には、2つの領域があって、上側の領域に始端点の座標値が格納され、下側の領域に終端点の座標値が格納される。本実施形態において、始端点終端点情報を参照することによって、そのベクトル列が、始端点の存在しない閉ループであることを認識することができる。図30の(a)においては、(−1、−1)という端点座標としては存在し得ない座標値が付与されることにより、閉ループであることが示されている。ステップS296の処理の後、ステップS302に進む。
ステップS294において、始端点が存在すると判定された場合には、ステップS297において、ステップS293で定められた輪郭点を始端点として登録し、かつ、輪郭点を、始端点から終端点間の1ベクトルとして出力する。ステップS298において、ステップS293と同様に、ステップS292で対象とされた、例えば、総点数pのベクトル列において、1つのベクトルの輪郭点(第q点とする。但し、1≦q≦p)が処理対象とされる。ステップS299で終端点が見つけられるまでの間、ステップS293で定められた輪郭点以降の点を、ステップS298が実行されるたびに、ステップS293で定められた輪郭点以降の点から第p点まで、昇順に1点ずつ処理対象として定められる。
ステップS299において、ステップS298で定められた輪郭点の輪郭点情報を参照し、その輪郭点が、終端点とすべきベクトルであるか否かが判定される。ここで、終端点とすべきベクトルであると判定された場合には、ステップS301に進み、終端点とすべきベクトルでないと判定された場合には、ステップS300に進む。ステップS299においては、輪郭ベクトル抽出手段300で抽出された輪郭点情報が参照されることによって、判定が行われる。本実施形態においては、図6に示す「UP_RIGHT_TL」、「DOWN_LEFT_BR」、「LEFT_UP_LB」、「RIGHT_DOWN_RT」の輪郭点情報のいずれに該当しているかが判定される。また、例えば、図6に示す「値」欄に記載されている数値の0ビット目が「1」であり、1ビット目が「0」であるか否かによって判定が行われても良い。ステップS300において、輪郭点を、始端点から終端点間における1ベクトルとして出力し、ステップS298に戻る。また、ステップS301においては、終端点の座標値を登録し、かつ、輪郭点を、始端点から終端点間における1ベクトルとして出力する。ステップS301が終了した時点において、輪郭線におけるベクトル列の始端点及び終端点が定まり、かつ、始端点から終端点間における一連の各ベクトルも出力されている。
次に、ステップS302において、ステップS291において入力された輪郭ベクトル中の全てのベクトル列の処理が終了したか否かが判定される。ここで、全てのベクトル列の処理が終了と判定された場合には、ステップS303に進み、終了していないと判定された場合には、ステップS292に戻り、次のベクトル列に対して、ステップS292〜S302を繰り返す。ステップS303において、ステップS291において入力された輪郭ベクトルを処理した処理結果を出力する。ステップS303の終了時点においては、まだ、線芯化処理は行われていないので、以下、出力されたベクトル列を片輪郭ベクトルという。
図30の(b)は、始端点及び終端点が定まり、始端点から終端点間における一連のベクトル列の情報を含む、出力データ形式の一例を示す図である。図30の(b)に示すように、第u番目のベクトル列が処理対象とされていて、そのベクトル列中には、始端点から終端点間における一連のベクトルが、t個含まれている。図30の(b)に示す第1点は、始端点であり、第t点は、終端点に相当している。
図31は、線芯ベクトル生成手段310における、図29に示すフローチャート後の処理の手順を示すフローチャートである。まず、ステップS311において、図29に示すフローチャートにより生成された片輪郭ベクトルを入力する。片輪郭ベクトルは、線図形の端点又は交点位置に対応する部分から抽出されたか否かを表す輪郭点情報を含み、端点を含まずに閉ループを構成しているか、又は、始端点から終端点間において非周回である一連のベクトル列の集まりを示している。ステップS312において、ステップS311において入力された図30に示すようなデータ形式の片輪郭ベクトルから、1つのベクトル列が処理対象として定められる。ステップS313において、ステップS312において定められた、例えば、総点数pのベクトル列の中の1つのベクトルの輪郭点(第q点とする。但し、1≦q≦p)が、処理対象として定められる。
ステップS314において、ステップS313において定められた輪郭点の輪郭点情報を参照し、その輪郭点を終点とするベクトル、又は、その輪郭点を始点とするベクトルのいずれかのベクトルの向きが、左向きか否かが判定される。ここで、左向きと判定された場合には、ステップS315に進み、左向きでないと判定された場合には、ステップS316に進む。ステップS315において、ステップS314において判定対象とされた輪郭点のy座標値を1だけ減じ、ステップS317に進む。ここで、減じる前の輪郭点の座標値を(2i、2j)とする。また、本実施形態において、y座標値を1だけ減じるということは、副走査方向に半画素分原点側に移動するということを示している。一方、ステップS316において、ステップS314において判定対象とされた輪郭点のy座標値を1だけ増やし、ステップS317に進む。本実施形態において、y座標値を1だけ増やすということは、副走査方向に半画素分原点と反対側に移動するということを示している。 ステップS317において、ステップ313において定められた輪郭点の輪郭点情報を参照し、その輪郭点を終点とするベクトル、又は、その輪郭点を始点とするベクトルのいずれかのベクトルの向きが、上向きか否かが判定される。ここで、上向きと判定された場合には、ステップS318に進み、上向きでないと判定された場合には、ステップS319に進む。ステップS318において、ステップS317において判定対象とされた輪郭点のX座標値を1だけ増やし、ステップS320に進む。本実施形態において、X座標値を1だけ増やすということは、主走査方向に半画素分原点とは反対側に移動するということを示している。一方、ステップS319において、ステップS317において判定対象とされた輪郭点のX座標値を1だけ減じ、ステップS320に進む。本実施形態において、X座標値を1だけ減じるということは、主走査方向に半画素分原点側に移動するということを示している。
ステップS320において、ステップS312で定められたベクトル列内の全ての輪郭点の処理が終了したか否かが判定される。ここで、終了と判定された場合には、ステップS321に進む。一方、終了されていないと判定された場合には、ベクトル列における次の輪郭点について、ステップS313〜S320を繰り返す。ステップS321において、ステップS311において入力された輪郭ベクトルにおける全てのベクトル列の処理が終了したか否かが判定される。ここで、終了と判定された場合には、ステップS322に進む。一方、終了していないと判定された場合には、次のベクトル列について、ステップS312〜S321を繰り返す。ステップS322において、ステップS311において入力された片輪郭ベクトルに対する処理結果を出力する。
以上の処理において、ステップS314における判定は、2ビット目(図6に示す一覧テーブルの「右向(0)左向(1)」の欄)を参照し、「0」であるなら右向き、「1」であるなら左向きとして行われても良い。ここで、「値」欄の数値を2進数で表現した場合に、0ビット目をLSBとし、7ビット目をMSBとしている。また、ステップS317における判定は、3ビット目(図6に示す「上向(0)下向(1)」の欄)を参照し、「0」であるなら上向き、「1」であるなら下向きとして行われても良い。
本実施形態においては、図29に示すような処理が行われて、輪郭ベクトル抽出手段300において生成された輪郭ベクトルに含まれている付与情報を用いて、片輪郭ベクトルが生成される。更に、1画素幅の線分における各輪郭ベクトルの位置を、それぞれ、予め、定める規則に従って、半画素分ずつ相応する方向に微調整し、線芯化済みベクトルが生成される。線芯化ベクトルが生成されることは、1画素幅に細線化された線分が、更に、0画素幅に線芯化されることを示している。ここで、線芯ベクトルを複数含んだ線芯ベクトル列は、図28に示すようなデータ形式として出力されても良い。
本実施形態における以上の処理を、図32において、まとめて説明する。図32は、入力された線図形と、生成された輪郭ベクトル及び片輪郭ベクトル及び線芯化済みベクトルの一例を示す図である。図32に示す線図形は、閉ループでない、端点を有する線分である。内部がチェックパターンとされた丸印は黒画素であり、図5に示す走査窓によって走査され、図27によってパターンが検出された結果、図9〜図24のように輪郭ベクトルが抽出される。ここで、輪郭ベクトルとは、図32において、線分を周回するように記載されたベクトルを示している。本実施形態においては、その際に、各輪郭点に、図6に示す16種類の情報の内いずれかが、輪郭点情報として付与されている。次に、図29に従って、各輪郭点を検出し、始端点及び終端点を検出する。ここで、図32に示す線分が、閉ループである場合には、始端点及び終端点は検出されず、データに、図30の(a)に示す閉ループマーカが付与される。始端点及び終端点が検出されたベクトル列が、図32に示す太い矢印で記載された片輪郭ベクトルである。次に、片輪郭ベクトルの各輪郭点におけるベクトル情報から、図31に従って、ベクトルの移動が行われ、図32に示すように、入力2値画像の画素上に細く記載された線芯化ベクトルが生成される。図32に示すように、線分が閉ループでないので、線芯化ベクトルも閉ループとはならない。しかしながら、線分が閉ループである場合には、線芯化ベクトルも閉ループとなる。
次に、線芯ベクトル平滑手段320の処理について説明する。従来、2値のラスタ画像データから抽出された、水平ベクトル、垂直ベクトルが交互に並ぶ構成とされている輪郭データ(以下、粗輪郭データという)を入力し、入力された粗輪郭上の線分より接線線分を抽出する手法が多く用いられている。更に、抽出された接線線分よりアンカーポイントを抽出し、抽出されたアンカーポイント間の線分により構成されるグループに、2次または3次ベジェ曲線及び直線を当てはめる。又は、ベジェ曲線近似を行い、2次又は3次のベジェ曲線により置き換えられる場合もある。しかしながら、輪郭ベクトルを関数近似法によって平滑化する場合は、基本的にベクトル列がループ状に連続した構成であることが前提とされている。従って、平滑化後の輪郭点、端点、アンカーポイントは、注目する辺ベクトルの前後に連なる一連の辺ベクトルが存在し、それらの辺ベクトルの向きや長さの組み合わせに基づいて決定される。そこで、本実施形態においては、図33に示すフローチャートによってベクトル列上の全てのアンカーポイントを決定し、抽出されたアンカーポイント間の線分により構成されるグループに2次又は3次ベジェ曲線及び直線をあてはめる。又は、ベジェ曲線近似を行い、2次又は3次のベジェ曲線により置き換えていく。その結果、始端点と終端点の間のみの部分の非周回型のベクトル列についても、そのまま、一般に知られる関数近似法によって、平滑化処理を行うことができる。
図33は、線芯ベクトル平滑手段320における処理の概略を示すフローチャートである。ステップS331において、例えば、図28に示す形式で出力された1つの線芯化ベクトル列が取り込まれ、ベクトル列の一連の各ベクトルの長さ及び向きの情報が求められる。例えば、互いに繋がる2点の座標値の差分から求められても良い。ステップS332において、ベクトル列に含まれる始端点終端点情報を参照し、処理対象とされているベクトル列が、閉ループであるか否かが判定される。ここで、閉ループと判定された場合には、ステップS333に進み、閉ループでないと判定された場合には、ステップS334に進む。
ステップS333において、ベクトル列は、ループ状に連続して構成されているので、従来のように、注目する辺ベクトルと、その前後のベクトルとに基づいてアンカーポイントを決定し、輪郭ベクトルを関数近似法によって平滑化することができる。一方、ステップS334において、ベクトル列は、閉ループを構成せず、互いに、相異なる始端点から終端点までのベクトル列を処理対象としている。従って、本実施形態においては、始端点から3点先までの区間を始端点区間とし、その区間用のアンカーポイント決定処理(始端点区間処理)が行われる。始端点区間処理については、後述する。
次に、ステップS335に進み、始端点区間より先で、かつ、終端点から3点前までの区間にかからない範囲の区間にある線分のベクトルには、注目する辺ベクトルの前後に連なる一連の辺ベクトルが存在している。従って、本区間においては、従来のような、アンカーポイントの決定処理によって、アンカーポイントを決定することができる。
本実施形態において、終端点から3点前までの区間は、終端点区間とされ、ステップS336において、その区間用のアンカーポイント決定処理(終端点区間処理)が行われる。終端点区間処理については、後述する。以上のような処理によって、閉ループでないベクトル列について、アンカーポイントを決定する。アンカーポイントを決定した後は、従来の方法によって、アンカーポイント間にある輪郭点を1つのグループとして関数近似する。例えば、決定されたアンカーポイント間をベジュ関数で曲線近似する手法が用いられても良い。その場合には、例えば、アンカーポイント間が、数個の線分から構成される部分について、1つの曲線によって置き換える1次近似処理が行われ、より多数の線分から構成される部分について、複数の曲線を用いて置き換える高次近似処理が行われる。
図34は、本実施形態に係る始端点区間処理の手順を示すフローチャートである。まず、ステップS341において、始端点をアンカーポイントとして定める。ステップS342において、始端点と、始端点の次の点とによって定められる第1辺となる線分のベクトル処理を行う。
本実施形態においては、主接線線分とするベクトルを抽出する条件として、従来において用いられている閉ループを構成するベクトル列において主接線線分を抽出するための条件が用いられる。閉ループを構成するベクトル列において、主接線線分を抽出する条件として、3つ挙げられている。
第1の条件として、注目するベクトルの前後のベクトルの向きが互いに逆向きであることが挙げられている。第2の条件として、抽出済みの主接線線分に隣接し、ベクトルの長さL1が、L1≧θ1を満たすことが挙げられている。更に、第3の条件として、ベクトルの長さL2が、L2≧θ2を満たすことが挙げられている。ここで、L1とは、注目ベクトルの長さを示し、L2とは、注目ベクトルから2辺後のベクトルの長さを示している。本実施形態においては、θ1は、3画素長、即ち、座標上の長さで「6」とし、θ2は、4画素長、即ち、座標上の長さで「8」とする。
以下のステップにおいて、図31に示すフローチャートによって生成された非周回型のベクトル列に対して、上記の条件の適用方法について説明する。ステップS342において、注目線分である第1辺の前に位置するベクトルは存在しないので、第1の条件を適用することができない。また、この時点で、ベクトル列中には抽出済みの主接線成分は存在していないので、第2の条件も適用することができない。従って、ステップS342においては、第3の条件のみを適用し、注目ベクトルである第1辺から2辺後の第3辺のベクトル長が、8以上の場合に注目ベクトルを主接線線分とする。
次に、ステップS343においては、第2辺が注目ベクトルとされる。ステップS343においては、第1〜第3の条件全てを適用する。その場合に、第2の条件が満たされるのであれば、注目ベクトルである第2辺を主接線線分とし、第2辺の始点、即ち、ベクトル列の第2点をアンカーポイントとする。一方、第2の条件が満たされず、第1又は第3の条件の少なくともいずれか一方の条件が満たされるのであれば、注目ベクトルである第2辺を主接線線分とする。その場合に、第2辺にアンカーポイントは設定されない。
次に、ステップS344においては、第3辺が注目ベクトルとされる。ステップS344においては、第1〜第3の条件全てを適用する。その場合に、第2の条件が満たされるのであれば、注目ベクトルである第3辺を主接線線分とし、第3辺の始点、即ち、ベクトル列の第3点をアンカーポイントとする。一方、第2の条件が満たされず、第1又は第3の条件の少なくともいずれか一方の条件が満たされるのであれば、以下のルールに従って、第3辺上にアンカーポイントを設定する。
本実施形態においては、注目ベクトルの2辺前、即ち、第1辺の長さ(以下、|V1|とする)に、所定の係数αを乗じた長さα|V1|の距離だけ注目辺の始点から離れた注目辺上の位置をアンカーポイントとする。ここで、本実施形態においては、係数αを「1」とする。但し、所定の係数αを乗じた長さα|V1|だけ注目辺の始点から離れた注目辺上の位置が注目辺の中点を越える位置となる場合には、注目辺の中点(即ち、第3辺の中点)の位置をアンカーポイントとする。更に、第4辺に、第1〜第3の条件全てを適用する。第1〜第3の条件のいずれも満たされない場合に、注目辺の2辺後、即ち、第5辺の長さ(以下、|V5|とする)に、所定の係数αを乗じた長さα|V5|だけ注目辺の終点から始点方向に離れた注目辺上の位置をアンカーポイントとする。ここで、本実施形態においては、係数αを「1」とする。但し、所定の係数αを乗じた長さα|V1|だけ注目辺の終点から始点方向に離れた注目辺上の位置が注目辺の中点を越える位置となる場合には、注目辺の中点の位置をアンカーポイントとする。但し、その中点が、既にアンカーポイントとされている場合には、重複してアンカーポイントを設定しない。
次に終端点を含む終端点区間におけるアンカーポイントの設定について説明する。図35は、本実施形態に係る終端点区間内処理の手順を示すフローチャートである。まず、ステップS351において、最終辺(第6辺)の2本前の注目辺(第8辺)に対して、第1〜第3の条件全てを適用する。その場合に、第2の条件が満たされるのであれば、注目ベクトルを主接線線分とし、注目辺の始点(第9辺と第8辺との接続点)、即ち、ベクトル列の最終点より3点前の点をアンカーポイントとする。一方、第2の条件が満たされず、第1又は第3の条件の少なくともいずれか一方の条件が満たされるのであれば、以下のルールに従って、第8辺上にアンカーポイントを設定する。
本実施形態においては、注目ベクトルの2辺前、即ち、最終辺から4辺前の辺(第10辺)の長さ(以下、|VM5|とする)に、所定の係数αを乗じた長さα|VM5|だけ注目辺の始点から離れた注目辺上の位置をアンカーポイントとする。ここで、本実施形態においては、係数αを「1」とする。但し、所定の係数αを乗じた長さα|VM5|だけ注目辺の始点から離れた注目辺上の位置が注目辺の中点(第8辺の中点)を越える位置となる場合には、注目辺の中点の位置をアンカーポイントとする。更に、最終辺の直前の辺(第7辺)に、第1〜第3の条件全てを適用する。第1〜第3の条件のいずれも満たされない場合に、注目辺の2辺後、即ち、最終辺の長さ(第6辺の長さ、以下、|VM1|とする)に所定の係数αを乗じた長さα|VM1|だけ注目辺の終点から始点方向に離れた注目辺上の位置をアンカーポイントとする。ここで、本実施形態においては、係数αを「1」とする。但し、その中点が、既にアンカーポイントとされている場合には、重複してアンカーポイントを設定しない。
次に、ステップS352において、最終辺の直前の辺を注目ベクトルとして、第1〜第3の条件全てを適用する。その場合に、第2の条件が満たされるのであれば、注目ベクトルを主接線線分とし、注目辺の始点、即ち、ベクトル列の最終点から2点前の点をアンカーポイントとする。一方、第2の条件が満たされず、第1又は第3の条件の少なくともいずれか一方の条件が満たされるのであれば、注目ベクトルである最終辺の直前の辺を主接線線分とする。
ステップS353において、終端点の直前の点と終端点とで定められる最終辺(第6辺)となる線分が注目ベクトルとされる。最終辺の後のベクトルは存在しないので、第1の条件を適用することができない。従って、ステップS353においては、第2及び第3の条件を適用する。その場合に、第2の条件が満たされるのであれば、注目ベクトルである最終辺を主接線線分とし、注目辺の始点、即ち、ベクトル列の最終点の直前の点をアンカーポイントとする。一方、第2の条件が満たされず、第3の条件が満たされるのであれば、注目辺の2辺前(第8辺の長さ、以下、|VM3|とする)に、所定の係数αを乗じた長さα|VM3|だけ注目辺の始点から離れた注目辺上(第6辺上)の位置をアンカーポイントとする。ここで、本実施形態においては、係数αは、「1」である。但し、所定の係数αを乗じた長さα|VM3|だけ注目辺の始点から離れた点が、注目辺の中点を越える位置となる場合には、注目辺の中点(第6辺の中点)の位置をアンカーポイントとする。ステップS354においては、ベクトル列の終端点をアンカーポイントとする。
図34及び図35に示すフローチャートによりアンカーポイントが定められると、アンカーポイント間に存在する輪郭点を1つのグループとし、従来の方法によって、アンカーポイント間が補間され関数近似される。
図34及び図35において、無条件にアンカーポイントとして定められた始端点及び終端点における接線方向は、端点近傍の線分の長さ及び向きに応じて決定されても良い。図36は、始端点又は終端点における接線方向の決定について説明する図である。図36の(a)に示すように、始端点、又は、終端点の属する線分が、例えば、5画素長以上で、十分に長い場合には、その線分の向きに接線方向を定めても良い。また、他の場合に、端点からその近傍の数辺までの長さと向きの組み合わせに応じて、パターン分けしてルール化しても良い。例えば、図36の(b)に示すように、端点から3点離れた点と端点とを結ぶ向きに接線方向を定めても良いし、図36の(c)に示すように、端点から2点離れた点と端点とを結ぶ向きに接線方向を定めても良い。また、図36の(d)に示すように、端点から3辺離れた辺の中点と端点とを結ぶ向きに接線方向を定めても良いし、図26の(a)〜(c)を適宜、選択できるように構成されても良い。
図33に示す処理の処理結果は、例えば、図28に示すような形式で出力されても良い。その場合に、各輪郭点の輪郭点情報に、アンカーポイントであるか否かの情報が含まれていても良い。
以上のように、本実施形態においては、非周回型のベクトル列に対して平滑化処理を行う場合に、始端点を含む始端点区間と終端点を含む終端点区間とにおいて、アンカーポイントを決定する手順を定めている。その結果、始端点と終端点とを結ぶ新たなベクトルを生成し、非周回型のベクトル列を周回型とする必要がないので、本実施形態において、処理工程や回路規模を増大させることなく、平滑化処理を行うことができる。
本実施形態において、図28、図30に示したデータ形式は、一例にすぎず、これに限らない。例えば、平滑化済ベクトルは、SVG形式のベクトル表現によって出力されても良い。また、各ベクトル列中の輪郭点数のみが纏められて、輪郭点数テーブル部と各ベクトル列中の各ベクトルのデータ部とが、分離されていても良い。即ち、図28の輪郭線中の総点数の部分のみ第1番目の輪郭から、例えば、第a番目の輪郭まで纏められ、その後に、第1番目の輪郭から第a番目の輪郭までの輪郭点データが纏められた構成とされても良い。更に、図30の(a)に示す閉ループマーカは、始端点又は終端点が存在するベクトル列として区別がつく形式であれば、他の方法が用いられても良い。
以上のように、本発明によれば、図形の輪郭を構成する線のみを、太さや、面積といった概念に意味をもたせずに、直線、開曲線、閉曲線等、又は、線の集まりとしてベクトル抽出することができる。また、本発明は、例えば、始端点と終端点との間に新たなベクトルを挿入して閉ループとし、接線線分を抽出しアンカーポイントを定める手法とは異なり、ループ状に構成されていない輪郭ベクトル列に対して、直接適用できる手法である。従って、本発明においては、例えば、平滑化のための新たなベクトルを生成する等の処理はされていないので、本発明によって、処理時間や回路規模が増大してしまうことは、特に問題とされない。
本発明には、プログラム(画像処理プログラム)コードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
例えば、ホスト及び端末の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体をシステム又は装置に供給し、システム又は装置のコンピュータ(CPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行しても良い。その場合、記憶媒体から読み出されたプログラムコード自体が上記各実施の形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体により本発明が構成される。プログラムコードを供給するための記憶媒体としては、ROM、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード等が用いられても良い。また、読み出されたプログラムコードが実行されて、本実施形態が実現されるだけでなく、プログラムコードの指示に基づきコンピュータ上で稼動しているOS等が実際の処理の一部又は全部を行い、その処理によって実施形態が実現されても良い。更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された拡張機能ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる場合も考えられる。そのような場合に、プログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって本実施形態が実現されても良い。
本実施形態に係る画像処理装置の構成を示す図である。 本実施形態に係る画像処理装置の機能ブロックを示す図である。 図2に示す各ステップが出力する画像の一例を示す図である。 図1に示す輪郭ベクトル抽出部の詳細な構成を示す図である。 9個の画素について説明する図である。 図9〜図24に示す輪郭点に対応付けられる輪郭点情報の一覧を示す図である。 端点が存在する場合において付与される輪郭情報を説明する図である。 端点が存在しない場合において付与される輪郭情報を説明する図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース0)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース1)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース2)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース3)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース4)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース5)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース6)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース7)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース8)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース9)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース10)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース11)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース12)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース13)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース14)を示した図である。 2値画像細線化手段から4連結に細線化された2値画像が入力された場合に、認識されるパターン(ケース15)を示した図である。 本実施形態における輪郭ベクトル抽出手段の処理の手順を示すフローチャートである。 図25に示すステップS251におけるベクトル列抽出処理の手順を示すフローチャートである。 図26に示すステップS262に示す注目画素の近傍の画素の状態に応じて、実行される処理の手順を示すフローチャートである。 輪郭ベクトル抽出手段によって出力されるデータ形式の一例を示す図である。 線芯ベクトル生成手段の処理の手順を示すフローチャートである。 閉ループを構成する、及び、閉ループを構成しない、出力データ形式の一例を示す図である。 線芯ベクトル生成手段の処理の手順を示すフローチャートである。 入力された線図形と、生成された輪郭ベクトル及び片輪郭ベクトル及び線芯化済みベクトルとの一例を示す図である。 線芯ベクトル平滑手段における処理の概略を示すフローチャートである。 本実施形態に係る始端点区間内処理の手順を示すフローチャートである。 本実施形態に係る終端点区間内処理の手順を示すフローチャートである。 始端点又は終端点における接線方向の決定について説明する図である。 2値画像からアウトラインベクトルを抽出し、アウトラインベクトルを用いて所望の倍率で変倍された高画質のデジタル2値画像を得る一連の流れを示す図である。
符号の説明
1 スキャナ
2 画像メモリ
3 画像入出力インタフェース
4 通信インタフェース
5 輪郭ベクトル抽出部
6 ROM
50 入力画像ラスタ走査部
101 注目画素
200 細線化済2値画像獲得手段
210 2値画像入力手段
211 画像入力手段
212 2値化手段
220 2値画像細線化手段
300 輪郭ベクトル抽出手段
310 線芯ベクトル生成手段
320 線芯ベクトル平滑手段
330 平滑化済ベクトル出力手段
500 信号線
501 入力制御回路
502、503、504、507、508、509、510、511、512 ラッチ
505、506 FIFO
513 514 入力ポート
515 主走査カウンタ
516 副走査カウンタ
517 入出力制御ポート
518 システムバス
519 CPU
520 RAM
521 ディスクインタフェース
522 ハードディスク

Claims (4)

  1. 入力された画像データを2値化し、2値化された前記画像データを一画素幅に細線化し、輪郭ベクトルを抽出する画像処理装置であって、
    細線化された2値画像データを構成する輪郭ベクトルと、前記輪郭ベクトルと該輪郭ベクトルに係る線の端点との関連付けを示す付与情報とを抽出する輪郭ベクトル抽出手段と、
    前記輪郭ベクトル抽出手段によって抽出された前記輪郭ベクトルを当該輪郭ベクトルに係る線に沿った線芯ベクトルに変換する線芯ベクトル生成手段と、
    前記付与情報を参照し、前記線芯ベクトル生成手段によって生成された前記線芯ベクトルが複数含まれた線芯ベクトル列が周回型、又は、始端点から終端点まで順に接続された非周回型のベクトル列であるかを判定し、非周回型のベクトル列であると判定した場合に、前記始端点を含むベクトルに相当する第1辺と、前記第1辺に接続される第2辺と、前記第2辺に接続される第3辺とで構成される始端点区間と、前記終端点を含むベクトルに相当する第6辺と、前記第6辺に接続される第7辺と、前記第7辺に接続される第8辺とで構成される終端点区間とにおいて、それぞれ複数のアンカーポイントを決定し、決定された前記複数のアンカーポイントの間を補間し、曲線近似する線芯ベクトル平滑手段と、を備え、
    前記線芯ベクトル平滑手段は、前記始端点区間において、
    前記始端点と、
    (a)前記第1辺と前記第2辺とが接続される点と、(b)前記第2辺と前記第3辺とが接続される点から前記第3辺上であって前記第1辺の長さ分の距離と、前記第3辺と前記第3辺に接続される第4辺とが接続される点から前記第3辺上であって前記第4辺に接続される第5辺の長さ分の距離と、前記第3辺の中点との内、少なくとも1つによって決定される点と、(c)前記第2辺と前記第3辺とが接続される点と、の内少なくとも1つの点と、
    を前記複数のアンカーポイントとして決定し、
    前記終端点区間において、
    前記終端点と、
    (d)前記第6辺と前記7辺とが接続される点から前記第6辺上であって前記第8辺の長さ分の距離と、前記第6辺の中点との内、いずれか1つによって決定される点と、(e)前記第6辺と前記第7辺とが接続される点と、(f)前記第7辺と前記第8辺とが接続される点と、(g)前記第8辺と前記第8辺に接続される第9辺とが接続される点から前記第8辺上であって前記第9辺に接続される第10辺の長さ分の距離と、前記第8辺と前記第7辺に接続される点から前記第8辺上であって前記第6辺の長さ分の距離と、前記第8辺の中点との内、少なくとも1つによって決定される点と、(h)前記第8辺と前記第9辺とが接続される点と、の内少なくとも1つの点と、
    を前記複数のアンカーポイントとして決定する、ことを特徴とする画像処理装置。
  2. 周回型のベクトル列であると判定した場合に、前記ベクトル列に含まれ、注目される1つの注目ベクトルの前に接続される予め定められた数のベクトルと、前記注目ベクトルの後に接続される予め定められた数のベクトルとを参照して、前記複数のアンカーポイントを決定する請求項に記載の画像処理装置。
  3. 入力された画像データを2値化し、2値化された前記画像データを一画素幅に細線化し、輪郭ベクトルを抽出する画像処理方法であって、
    輪郭ベクトル抽出手段が、細線化された2値画像データを構成する輪郭ベクトルと、前記輪郭ベクトルと該輪郭ベクトルに係る線の端点との関連付けを示す付与情報とを抽出する輪郭ベクトル抽出工程と、
    線芯ベクトル生成手段が、前記輪郭ベクトル抽出工程によって抽出された前記輪郭ベクトルを当該輪郭ベクトルに係る線に沿った線芯ベクトルに変換する線芯ベクトル生成工程と、
    線芯ベクトル平滑手段が、前記付与情報を参照し、前記線芯ベクトル生成工程によって生成された前記線芯ベクトルが複数含まれた線芯ベクトル列が周回型、又は、始端点から終端点まで順に接続された非周回型のベクトル列であるかを判定し、非周回型のベクトル列であると判定した場合に、前記始端点を含むベクトルに相当する第1辺と、前記第1辺に接続される第2辺と、前記第2辺に接続される第3辺とで構成される始端点区間と、前記終端点を含むベクトルに相当する第6辺と、前記第6辺に接続される第7辺と、前記第7辺に接続される第8辺とで構成される終端点区間とにおいて、それぞれ複数のアンカーポイントを決定し、決定された前記複数のアンカーポイントの間を補間し、曲線近似する線芯ベクトル平滑工程と、を有し、
    前記線芯ベクトル平滑工程は、前記始端点区間において、
    前記始端点と、
    (a)前記第1辺と前記第2辺とが接続される点と、(b)前記第2辺と前記第3辺とが接続される点から前記第3辺上であって前記第1辺の長さ分の距離と、前記第3辺と前記第3辺に接続される第4辺とが接続される点から前記第3辺上であって前記第4辺に接続される第5辺の長さ分の距離と、前記第3辺の中点との内、少なくとも1つによって決定される点と、(c)前記第2辺と前記第3辺とが接続される点と、の内少なくとも1つの点と、
    を前記複数のアンカーポイントとして決定し、
    前記終端点区間において、
    前記終端点と、
    (d)前記第6辺と前記7辺とが接続される点から前記第6辺上であって前記第8辺の長さ分の距離と、前記第6辺の中点との内、いずれか1つによって決定される点と、(e)前記第6辺と前記第7辺とが接続される点と、(f)前記第7辺と前記第8辺とが接続される点と、(g)前記第8辺と前記第8辺に接続される第9辺とが接続される点から前記第8辺上であって前記第9辺に接続される第10辺の長さ分の距離と、前記第8辺と前記第7辺に接続される点から前記第8辺上であって前記第6辺の長さ分の距離と、前記第8辺の中点との内、少なくとも1つによって決定される点と、(h)前記第8辺と前記第9辺とが接続される点と、の内少なくとも1つの点と、
    を前記複数のアンカーポイントとして決定する、ことを特徴とする画像処理方法。
  4. 入力された画像データを2値化し、2値化された前記画像データを一画素幅に細線化し、輪郭ベクトルを抽出する画像処理プログラムであって、
    細線化された2値画像データを構成する輪郭ベクトルと、前記輪郭ベクトルと該輪郭ベクトルに係る線の端点との関連付けを示す付与情報とを抽出する輪郭ベクトル抽出手段と、
    前記輪郭ベクトル抽出手段によって抽出された前記輪郭ベクトルを当該輪郭ベクトルに係る線に沿った線芯ベクトルに変換する線芯ベクトル生成手段と、
    前記付与情報を参照し、前記線芯ベクトル生成手段によって生成された前記線芯ベクトルが複数含まれた線芯ベクトル列が周回型、又は、始端点から終端点まで順に接続された非周回型のベクトル列であるかを判定し、非周回型のベクトル列であると判定した場合に、前記始端点を含むベクトルに相当する第1辺と、前記第1辺に接続される第2辺と、前記第2辺に接続される第3辺とで構成される始端点区間と、前記終端点を含むベクトルに相当する第6辺と、前記第6辺に接続される第7辺と、前記第7辺に接続される第8辺とで構成される終端点区間とにおいて、それぞれ複数のアンカーポイントを決定し、決定された前記複数のアンカーポイントの間を補間し、曲線近似する線芯ベクトル平滑手段と、してコンピュータを機能させ、
    前記線芯ベクトル平滑手段は、前記始端点区間において、
    前記始端点と、
    (a)前記第1辺と前記第2辺とが接続される点と、(b)前記第2辺と前記第3辺とが接続される点から前記第3辺上であって前記第1辺の長さ分の距離と、前記第3辺と前記第3辺に接続される第4辺とが接続される点から前記第3辺上であって前記第4辺に接続される第5辺の長さ分の距離と、前記第3辺の中点との内、少なくとも1つによって決定される点と、(c)前記第2辺と前記第3辺とが接続される点と、の内少なくとも1つの点と、
    を前記複数のアンカーポイントとして決定し、
    前記終端点区間において、
    前記終端点と、
    (d)前記第6辺と前記7辺とが接続される点から前記第6辺上であって前記第8辺の長さ分の距離と、前記第6辺の中点との内、いずれか1つによって決定される点と、(e)前記第6辺と前記第7辺とが接続される点と、(f)前記第7辺と前記第8辺とが接続される点と、(g)前記第8辺と前記第8辺に接続される第9辺とが接続される点から前記第8辺上であって前記第9辺に接続される第10辺の長さ分の距離と、前記第8辺と前記第7辺に接続される点から前記第8辺上であって前記第6辺の長さ分の距離と、前記第8辺の中点との内、少なくとも1つによって決定される点と、(h)前記第8辺と前記第9辺とが接続される点と、の内少なくとも1つの点と、
    を前記複数のアンカーポイントとして決定する、ことを特徴とする画像処理プログラム。
JP2007188665A 2007-07-19 2007-07-19 画像処理装置、画像処理方法、及び、画像処理プログラム Expired - Fee Related JP5028174B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007188665A JP5028174B2 (ja) 2007-07-19 2007-07-19 画像処理装置、画像処理方法、及び、画像処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007188665A JP5028174B2 (ja) 2007-07-19 2007-07-19 画像処理装置、画像処理方法、及び、画像処理プログラム

Publications (2)

Publication Number Publication Date
JP2009026079A JP2009026079A (ja) 2009-02-05
JP5028174B2 true JP5028174B2 (ja) 2012-09-19

Family

ID=40397830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007188665A Expired - Fee Related JP5028174B2 (ja) 2007-07-19 2007-07-19 画像処理装置、画像処理方法、及び、画像処理プログラム

Country Status (1)

Country Link
JP (1) JP5028174B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107978004A (zh) * 2017-11-14 2018-05-01 天津科技大学 基于启发式路由的凿井壁画考古绘图快速生成算法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH081553B2 (ja) * 1987-04-06 1996-01-10 キヤノン株式会社 画像データの圧縮方式
JP2001222718A (ja) * 2000-02-08 2001-08-17 Photron Ltd 画像データ変換方法、画像データ変換システムおよびコンピュータが読取り可能な記憶媒体
JP4371911B2 (ja) * 2004-05-31 2009-11-25 キヤノン株式会社 関数化処理方法及び関数化処理装置

Also Published As

Publication number Publication date
JP2009026079A (ja) 2009-02-05

Similar Documents

Publication Publication Date Title
CN105528614B (zh) 一种漫画图像版面的识别方法和自动识别系统
JP2806961B2 (ja) 画像符号化方法
JP5854802B2 (ja) 画像処理装置、画像処理方法、及びコンピュータプログラム
JP2608571B2 (ja) 入力走査画像データのベクトル化のための装置及び方法
US7889938B2 (en) Method and apparatus for processing line drawings in images
JPH05500874A (ja) ディジタル化書類における選択本文の自動抽出のための多角形準拠式方法
CN109409211B (zh) 汉字骨架笔段的处理方法、处理装置及存储介质
JP6128617B2 (ja) 画像認識装置およびプログラム
JP2000181992A (ja) カラー文書画像認識装置
JP4928325B2 (ja) 画像処理方法、画像処理装置、プログラムおよび記憶媒体
US8150185B2 (en) Image processing for generating a thin line binary image and extracting vectors
JP5067882B2 (ja) 画像処理装置、画像処理方法およびプログラム
JP5028174B2 (ja) 画像処理装置、画像処理方法、及び、画像処理プログラム
JP5137679B2 (ja) 画像処理装置および画像処理方法
JP5566158B2 (ja) 画像処理方法、画像処理装置、及びプログラム
JP5111226B2 (ja) 画像処理方法、画像処理装置、及び、そのプログラムならびにコンピュータ読み取り可能な記憶媒体
JP4873554B2 (ja) 画像配信装置および画像配信方法
CN110232724A (zh) 一种汉字字体图像矢量表示方法
JP3070801B2 (ja) 図面管理方法
JP5629483B2 (ja) 画像処理方法、画像処理装置、及びプログラム
JPH0634237B2 (ja) 画像クリッピング方法
CN109410291B (zh) 毛刺类型笔段的处理方法和装置
JP5067182B2 (ja) 画像処理装置及び画像処理プログラム
CN109359529B (zh) 长笔段的处理方法和装置
JPH0850650A (ja) 図形清書化装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120424

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120525

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120625

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150629

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5028174

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees