JP5137679B2 - 画像処理装置および画像処理方法 - Google Patents

画像処理装置および画像処理方法 Download PDF

Info

Publication number
JP5137679B2
JP5137679B2 JP2008121158A JP2008121158A JP5137679B2 JP 5137679 B2 JP5137679 B2 JP 5137679B2 JP 2008121158 A JP2008121158 A JP 2008121158A JP 2008121158 A JP2008121158 A JP 2008121158A JP 5137679 B2 JP5137679 B2 JP 5137679B2
Authority
JP
Japan
Prior art keywords
approximation
section
function approximation
function
data
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
JP2008121158A
Other languages
English (en)
Other versions
JP2009271700A (ja
JP2009271700A5 (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 JP2008121158A priority Critical patent/JP5137679B2/ja
Priority to US12/434,349 priority patent/US8335389B2/en
Publication of JP2009271700A publication Critical patent/JP2009271700A/ja
Publication of JP2009271700A5 publication Critical patent/JP2009271700A5/ja
Application granted granted Critical
Publication of JP5137679B2 publication Critical patent/JP5137679B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/469Contour-based spatial representations, e.g. vector-coding
    • G06V10/471Contour-based spatial representations, e.g. vector-coding using approximation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Description

本発明は、画像処理装置および画像処理方法に関し、より詳細には、図形の輪郭や芯線を関数近似する画像処理装置および画像処理方法に関するものである。
近年、ペーパーレス化への要求が高まり、既存の画像データを電子化して再利用することが頻繁に行われるようになってきた。従来、画像データの再利用は、画像データを2値化処理した後にベクトル化技術を用いてベクトルデータに変換し、このベクトルデータをCADソフト等で使用するという形で行われてきている。
一方、近年、オフィス環境においても環境問題が重要視され、その問題の解決策の一つとして、オフィスでのペーパーレス化が急速に進んでいる。このペーバーレス化を実現する方法として、紙文書をスキャナより読み取り、電子データに変換して情報を格納する方法が挙げられる。しかしながら、紙文書は電子データとして保存可能であるが、ファイル自体がイメージ情報であるので、紙文書自体を再利用することはできないという問題もある。また、電子データとして記憶媒体上に蓄積させる場合であっても、高画質での保存を望めば電子データのファイルサイズも大きくなるなど、記憶するイメージ情報の画質と、その電子データを格納するための記憶領域の容量とのトレードオフの問題も生じる。
このトレードオフとなる2つの問題を同時に解決する方法として、読取られた画像を文字領域、写真画像領域、線画領域、表領域等のオブジェクト毎に分割し、それぞれをベクトル化処理して、電子化される画像データの容量を軽減する方法が挙げられる。この場合、文字、線画、表などの領域は2値画像領域として2値化処理してアウトライン化処理によりベクトル化(以下、「アウトラインベクトル化」)することで、データ量を削減し、高画質で再利用可能な電子文書を生成することが可能になる。
2値画像のベクトル化に関しては、出願人は既に特許文献1を提案している。この特許文献1では以下のような構成が開示されている。
すなわち、注目画素と、その近傍画素の状態により、予め定められた位置を輪郭線を構成する点とし、近傍画素の状態により該輪郭線を構成する点の接続方向を決定する工程を実行する。次いで、上記輪郭線を構成する点と、該輪郭線を構成する他の点との接続状態を判断する工程を実行する。次いで、上記注目画素の位置をラスタ走査順に画像データ上を更新し、注目画素毎に近傍画素の状態に基づいて上記工程を実行し、輪郭点を抽出する。以上の構成において、画像データにおける注目画素と、その近傍画素の状態を保持し、この注目画素をラスタ走査順に取り出し、その注目画素とその近傍画素の状態に基づいて、水平方向及び垂直方向の画素間ベクトルを検出する。これら画素間ベクトル同士の接続状態を判別して、この判別された画素間ベクトルの接続状態をもとに、画像データの輪郭を抽出するように動作する。このような方法が特許文献1において提案されている。
特許文献1に記載の方法は、画像の中の全ての輪郭線を1回のラスタ走査順だけで抽出でき、かつ、全画像データを記憶するための画像メモリを必要としないため、メモリの容量を少なくできる効果を有している。また、入力画像の画素の中心位置ではなく、画素の縁単位に輪郭を抽出することによって、1画素巾の細線に対しても有為な幅を有する輪郭線抽出法である。更に、原画中の画素の4方向に連結した連結画素領域の輪郭線を抽出するのみならず、8方向に連結した画素領域も抽出可能であることが紹介されている。
さらに、出願人は特許文献2において、特許文献1に開示されるベクトル抽出ルールのモジュール化により効率的な輪郭点抽出が可能であることを開示している。
また、一方で、出願人は既に特許文献3を提案している。この特許文献3において、2値画像の輪郭情報を用いて高画質な変倍画像を得る画像処理装置を紹介している。該提案は、2値画像からアウトラインベクトルを抽出し、該抽出したアウトラインベクトル表現の状態で所望の倍率(任意)で滑らかに変倍されたアウトラインベクトルを作成し、該滑らかに変倍されたアウトラインベクトルから2値画像を再生成する。これによって、所望の倍率(任意)で変倍された高画質のデジタル2値画像を得るようにするものである。ここで、2値画像からアウトラインベクトルを抽出する方法としては、一例として、上述の、特許文献1や特許文献2で開示される方法が用いられる。
さらに、出願人は既に特許文献4を提案している。この特許文献4においては、2値画像の輪郭情報を直線のみならず、2次や3次のベジェ(Bezier)曲線近似をすることで、より少ないデータ量で高画質な変倍画像を表現する輪郭情報を関数近似する処理手法と処理装置を開示している。2値画像からアウトラインベクトルを抽出し、該抽出したアウトラインベクトル表現の状態で、特許文献4の方法で滑らかに関数近似されたアウトラインベクトルを用いても、やはり所望の倍率(任意)で変倍された高画質のデジタル2値画像を得ることができる。ここで、2値画像からアウトラインベクトルを抽出する方法としては、上述の、特許文献1や特許文献2で開示される方法を用いることができる。
2図(a)〜(d)は、上記の2値画像のアウトラインベクトル処理の流れによる一連の処理経過の例を示す図である。すなわち、2値画像からアウトラインベクトルを抽出し、該抽出したアウトラインベクトル表現を滑らかに関数近似したアウトラインベクトルを用いて所望の倍率(任意)で変倍された高画質のデジタル2値画像を得る一連の流れでのデータの様子を表している。
2図(a)は、入力される2値画像の一例を示している。2図(b)は、2図(a)の2値画像から、特許文献1または2による方法で抽出される輪郭ベクトルデータを輪郭画像として描画して可視化したものである。2図(c)は、同抽出された輪郭ベクトルデータを特許文献4による方法で滑らかに関数近似して得られるアウトラインベクトルを描画して可視化したものである。2図(d)は、同平滑化(関数近似)されたベクトルを中塗りして得られる所望の倍率(任意)で変倍された高画質のデジタル2値画像の例である。
先述のように、ペーパーレス化への要求が高まりのもと、ビジネス文書においても、既存の画像データを電子化して再利用することが望まれている。とりわけ、原図を所望とされる変倍率を反映した形で変倍するような再利用の形態に対しては、上述の特許文献1または2と特許文献4により、実現が可能である。すなわち、オリジナル文書中の2値図形の輪郭(アウトライン)ベクトルを抽出して、2次元形状を任意の拡大縮小率で変倍することで、その実現が可能である。
アウトラインベクトル化による電子文書は、上述の如く、2値画像より得られる輪郭線を抽出し、得られた輪郭線の曲線部をベジェ曲線等の曲線関数により関数近似することで求められる。ここで、ベジェ曲線等の曲線関数により関数近似をする場合、一般的に輪郭線上の点列と、ベジェ曲線の誤差を求め、曲線の最適化を行う必要があるので、膨大な繰り返し演算が必要となり、多大な処理時間を要することになる。
この処理時間を短縮化する近似計算として、輪郭点間を曲線で補間する方法も考えられているが、輪郭点データに対しそのまま曲線補間を行えば、補間点数の増加を招き、アウトラインベクトル化処理の圧縮効果が薄くなるという問題も生じる。また、直線近似などにより補間点数を減らす処理を行った場合、直線近似のための処理時間の増加を招くことになる。すなわち、アウトラインベクトル化によりデータ量を削減することは可能であるが、そのための近似計算においては、演算量が多くなり多大な演算時間が必要となる。従って、アウトラインベクトル化を行いつつ演算時間の短縮化を図る場合であっても、データ量の軽減効果が十分得られないという問題が生じる。
そこで、上述の特許文献4における、輪郭ベクトルの平滑化(関数近似)は、基本的に、ベジェ曲線等の曲線関数により関数近似をする区間を定めるアンカーポイントの決定を次のように行っている。すなわち、注目する辺ベクトルの前後に連なる一連の辺ベクトルの向きや長さの組み合わせをもとに決定している。特許文献4では、このアンカーポイントによって分割された区間内の輪郭点列をベジェ曲線で近似ように構成する。これによって、それまで一般に行なわれてきた、輪郭線上の点列とベジェ曲線の誤差を求め曲線の最適化を行うための膨大な繰り返し演算を不要とし、それまでの従来技術のような多大な処理時間を要すことのないアウトラインベクトル化処理を可能としている。
特許文献4によれば、ベクトル平滑化(関数近似)の流れは、以下の如きである。まず、粗輪郭データと称して、2値のラスター画像のデータより抽出された、水平ベクトル、垂直ベクトルが交互に並ぶ構成となる輪郭データを入力とし、粗輪郭上の線分より接線線分を抽出する。抽出された接線線分よりアンカーポイントを抽出する。そして、抽出されたアンカーポイント間の単数または複数の線分群として構成されるグループに直線をあてはめ、あるいは、2次もしくは3次ベジェ曲線をあてはめベジェ曲線近似を行い、直線、あるいは、2次もしくは3次のベジェ曲線により置きかえていく。
ここで、アンカーポイントとして定めた点をもとに、アンカーポイント間にある輪郭点を1つのグループとして関数近似している方法は、関数近似法としての基本的な手法である。また、アンカーポイントは、その間が、2次もしくは3次ベジェ曲線、及び直線のいずれに関数近似されたとしても、アンカーポイント自体の位置(座標値)は、変化しないという特徴をもつ。
特許文献4によれば、接線線分とするベクトルの抽出の条件として、
[1]注目するベクトルの前後のベクトルの向きが互いに逆向きであるもの
[2]抽出済みの主接線線分に隣接し、ベクトルの長さL1がL1≧θ4を満たすもの
[3]ベクトルの長さL2がL2≧θ5を満たすもの
等の条件が開示されている。ここで、θ4、θ5は予め定める定数である。
また、アンカーポイントの抽出に関して、抽出された接線線分上に新たな点を抽出し、それをアンカーポイントとする。アンカーポイントは接線線分の端2つに対しそれぞれ抽出される。よって、基本的には、一つの接線線分に対し2つのアンカーポイントが抽出されるが、該2つのアンカーポイントが一致した場合には一つのアンカーポイントのみ抽出されることになる。2つのアンカーポイントが抽出される場合は、アンカーポイントに挟まれた部位は自動的にオブジェクト上の直線となる。接線線分上の一方の端に対するアンカーポイント抽出方法としては、注目する接線線分であるベクトルに隣接するベクトルが接線線分であれば、この隣接する側の端点をアンカーポイントとする。隣接する線分が接線線分で無い場合、さらにその隣、即ち、着目する接線線分のベクトルV2(その長さを|V2|と表す)の2本前の線分のベクトルV1(その長さを|V1|と表す)から、V2ベクトル上端点よりa|V1|離れた点をアンカーポイントとする。
また、かくして定めた区間上の輪郭点列の関数近似に関しては、以下の様に行なわれることが特許文献4に開示されている。
まず、図8(特許文献4の図19に相当)に示すように、ベジェ曲線等の曲線関数により関数近似をする区間上の輪郭点列であるN個の点をそれぞれp1,p2,…,pNとする。このとき、これら点列の始点p1、終点pNはアンカーポイントである。ここで、アンカーポイントp1、pNを結ぶ線分p1pNより最も距離の離れている曲線上の点pfを求める。関数近似処理を簡易に行うため、コントロールポイントを結ぶ線分C1C2が線分p1pNに対して平行となるように近似する。そして、点pfと線分p1pNとの距離をLとすると、点C1、C2より線分p1pNへの距離が(4/3)×Lとなるように、C1、C2を求める。
即ち、pfの座標値が(pfx,pfy)であった場合、p1、pNの各座標値(p1x,p1y)、(pNx,pNy)とp1における接線ベクトルp1C1(pcx,pcy)を用いると、C1の座標値(C1x,C1y)は、
C1x=K×pfx+p1x
C1y=K×pfy+p1y
K=(3p1x−4pfx)(pNy−p1y)+(pNx−p1x)(4pfy−3p1y)
+p1x(pNy−p1y)−p1y(pNx−p1x)
/(3(pNy−p1y)pcx+3(pNx−p1x)pcy)
となり、pfの座標値より一意に決定することができる。また、C2についても、C1と同様に求めることが可能である。
尚、上述の分割点が、曲線近似におけるアンカーポイントとなる。また、アンカーポイントにおける接線ベクトルは、区分曲線への分割時に、複数の線分の組み合わせにより、パターンマッチング的に方向ベクトルを抽出して、これをもってアンカーポイントにおける接線ベクトルとする。
このようなことが特許文献4には開示されているのである。
かくして、上述の特許文献4では、それまで一般に行なわれてきた、輪郭線上の点列とベジェ曲線の誤差を求め曲線の最適化を行うための膨大な繰り返し演算を不要とした処理が開示されている。すなわち、それまでの従来技術のような多大な処理時間を要すことのないアウトラインベクトル化処理を開示している。
特許第3026592号明細書 特開平05−108823号公報 特許第3049672号明細書 特開2005−346137号公報
ところで、昨今のデジタル複写機は、画像通信、画像蓄積、画像複写、画像プリント等の複数の機能を有するデジタル複合機となっている。このデジタル複合機は、文書画像読み取りスキャナ部、デジタルプリンタ部、デジタル画像データ処理部、データ送受信部、データ蓄積管理部等の各部分よりシステム構成される。このようなデジタル複合機に上述の電子文書の生成機能をもたせることで、オフィス環境の改善に大きく寄与することが期待される。
このようなデジタル複合機に上述の電子文書の生成機能をもたせることを考えると、装置コストや、処理時間等には、実用面からの要請による上限が必要となる。より少ないデータ量で、かつ、高速な処理が可能で、生成される関数の近似精度が高いベクトル化が望まれるが、これらの間には、トレードオフがある。即ち、アンカーポイントを増やしてデータ量をふやせば関数近似する各区間をより短く設定することが可能となり、一般的により精度の高い関数近似が可能になる傾向がある。また、処理時間を増やせば、関数近似の精度の比較的悪い部分の精度を上げるための処理を行なうことも可能となる。
上記特許文献4に開示された輪郭ベクトルの平滑化(関数近似)は、それまでの従来技術のような多大な処理時間を要すことのないアウトラインベクトル化処理を可能としている点で優れており、非常に有用な技術である。すなわち、上記輪郭ベクトルの平滑化(関数近似)により、輪郭線上の点列とベジェ曲線の誤差を求め曲線の最適化を行うための膨大な繰り返し演算が不要となり、従来技術のような多大な処理時間を要すことのないアウトラインベクトル化処理が可能となる。しかしながら、上述の如きトレードオフを考慮したデータ量、処理時間、近似精度の最適化機構を有するものではなかった。
本発明は、上述した従来例の状況に鑑みなされたものである。その目的は、比較的高速な処理の範囲で、データ量の許す範囲でBezier(ベジエ)近似精度を向上させ、既定の処理時間内でBezier近似精度を向上させる画像処理装置および画像処理方法を提供することにある。すなわち、本発明の目的は、装置構成や処理時間の点で実用上妥当とされる制限内で、従来に比し近似精度の向上した関数近似に基づくベクトル化処理を可能とする処理構成を提案することにある。
このような課題を解決するために、本発明は画像処理装置であって、図形を直線の連続として表現する点列からなるベクトルデータである粗輪郭ベクトルデータを獲得する獲得手段と、前記獲得された粗輪郭ベクトルデータに対して、前記点列を関数近似するための区間に分割するための分割点を設定して、関数近似区間の設定を行なう関数近似区間設定手段と、前記設定された関数近似区間毎に前記点列を関数近似する関数近似処理手段と、前記関数近似された関数近似区間毎の近似誤差を算出する区間内近似精度算出手段と、前記算出された近似誤差に基づいて、複数の前記関数近似区間の中から、前記算出された近似誤差が最大となる関数近似区間を、近似精度の向上を図るべき関数近似区間として同定する分割対象区間同定手段と、前記分割対象区間同定手段にて同定された前記近似精度の向上を図るべき関数近似区間を区間分割することにより、該近似精度の向上を図るべき関数近似区間においてさらに複数の関数近似区間を設定する区間分割手段と、これまでに得られた、前記分割点が設定された粗輪郭ベクトルデータおよび各関数近似区間の近似誤差の情報を少なくとも含むデータのデータ量が既定のデータ量に達したか否かの判定と、処理を開始してからの経過時間を測定し、該測定された経過時間が既定の時間を超えたか否かの判定との少なくとも一方の判定を行う判定手段と、を備え、前記判定手段が、前記データ量が前記既定のデータ量に達したと判定するか、又は、前記経過時間が前記既定の時間を超えたと判定するまでは、前記区間分割手段で区間分割することにより設定した関数近似区間に対する前記関数近似処理手段による関数近似処理と、前記区間内近似精度算出手段による近似誤差の算出処理と、前記分割対象区間同定手段による関数近似区間の同定処理と、当該同定された関数近似区間に対する前記区間分割手段による分割処理とを繰り返すことを特徴とする。
また、本発明は、画像処理方法であって、獲得手段が、図形を直線の連続として表現する点列からなるベクトルデータである粗輪郭ベクトルデータを獲得する獲得工程と、関数近似区間設定手段が、前記獲得された粗輪郭ベクトルデータに対して、前記点列を関数近似するための区間に分割するための分割点を設定して、関数近似区間の設定を行なう関数近似区間設定工程と、関数近似処理手段が、記設定された関数近似区間毎に前記点列を関数近似する関数近似処理工程と、区間内近似精度算出手段が、前記関数近似された関数近似区間毎の近似誤差を算出する区間内近似精度算出工程と、分割対象区間同定手段が、前記算出された近似誤差に基づいて、複数の前記関数近似区間の中から、前記算出された近似誤差が最大となる関数近似区間を、近似精度の向上を図るべき関数近似区間として同定する分割対象区間同定工程と、判定手段が、これまでに得られた、前記分割点が設定された粗輪郭ベクトルデータおよび各関数近似区間の近似誤差の情報を少なくとも含むデータのデータ量が既定のデータ量に達したか否かの判定と、処理を開始してからの経過時間が既定の時間を超えたか否かの判定との少なくとも一方を行う判定工程と、区間分割手段が、前記判定工程、前記データ量が前記既定のデータ量に達しと判定するか、又は、前記経過時間が前記既定の時間を越えと判定するまでは、前記分割対象区間同定工程で同定された前記近似精度の向上を図るべき関数近似区間において新たな分割点を設定することにより、前記近似精度の向上を図るべき関数近似区間において更に複数の関数近似区間を設定する区間分割工程と、制御手段が、前記判定工程で前記データ量が前記既定のデータ量に達したと判定するか、又は、前記経過時間が前記既定の時間を超えたと判定するまでは、前記区間分割工程で区間分割することにより設定した関数近似区間に対して前記関数近似処理工程での関数近似処理と、前記区間内近似精度算出工程での近似誤差の算出処理と、前記分割対象区間同定工程での関数近似区間の同定処理と、当該同定された関数近似区間に対する前記区間分割工程での分割処理とを繰り返すように制御する制御工程と、を有することを特徴とする。
本発明によれば、装置構成や処理時間の点で実用上妥当とされる制限内で、従来に比し近似精度の向上した関数近似に基づくベクトル化処理を可能とする処理構成処理を実現することが可能となる。
以下、図面を参照して本発明の実施形態を詳細に説明する。なお、以下で説明する図面で、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
本発明の一実施形態では、画像処理装置は、図名を直線の連続として表現する点列からなるベクトルデータ(粗輪郭ベクトルデータとも呼ぶ)を獲得する。この方法としては例えば、2値画像獲得手段によりベクトル化対象とする2値画像を獲得し、粗輪郭抽出手段にて、2値画像獲得手段により得られた2値画像から、これに含まれる図形の境界を関数近似処理前のベクトルとして抽出する。この関数近似処理前のベクトルを、粗輪郭、もしくは、粗輪郭ベクトルとも称する。
関数近似区間設定(アンカーポイント設定)手段では、粗輪郭抽出手段において得られた粗輪郭上の点列を高次の関数としてのベジェ曲線等の曲線関数により関数近似するための区間に分割するための分割点(アンカーポイント)の設定を行なう。関数近似処理(コントロールポイント算出)手段では、関数近似区間設定(アンカーポイント設定)手段で設定された関数近似区間毎にベジェ曲線等の曲線関数により関数近似をする。区間内近似精度算出(区間内誤差分値、区間内最大誤差値)手段では、関数近似処理(コントロールポイント算出)手段でベジェ曲線等の曲線関数により関数近似された関数近似区間毎の近似精度を算出する。
分割対象区間同定手段は、区間内近似精度算出(区間内誤差分値、区間内最大誤差値)手段で算出された関数近似区間毎の近似精度から近似精度の向上を図るべき区間を同定する。区間分割手段は、分割対象区間同定手段において同定された近似精度の向上を図るべき区間を複数の関数近似区間に分割する。分割された複数の関数近似区間は、それぞれ関数近似処理(コントロールポイント算出)手段でベジェ曲線等の曲線関数により関数近似される。
画像処理装置は、上記各手段に加えて、後述する、データ量判定手段および処理時間計測判定手段の少なくとも一方を備えている。
データ量判定手段は、上記分割されて得られた複数の関数近似区間のそれぞれの関数近似結果により分割される前の関数近似区間での関数近似結果を置き換えることにより生成されるデータ量が既定のデータ量に達するか否かを判定する。既定のデータ量に達しない場合には、画像処理装置は、上記分割されて得られた複数の関数近似区間のそれぞれの関数近似結果により分割される前の関数近似区間での関数近似結果を置き換える。さらに、区間内近似精度算出(区間内誤差分値、区間内最大誤差値)手段により上記複数の関数近似区間のそれぞれの関数近似結果に対する近似精度を改めて算出する。そして、分割対象区間同定手段により、次に近似精度の向上を図るべき区間を同定させる。そうではない場合には、置き換え、近似精度の改めての算出、及び、次に近似精度の向上を図るべき区間の同定は行なわず、一連のベクトル化処理を終了させる。
処理時間計測判定手段は、それまでの処理時間を測定し、これが既定の時間を超えたか否かを判定する。既定の時間を超えた場合には、画像処理装置は、一連のベクトル化処理を終了させる。そうではない場合、即ち、既定の時間を超えない間は、上記次に近似精度の向上を図るべき区間に対して区間分割、分割区間の関数近似以降の処理を繰り返すものである。
(第1の実施形態)
図1は、本実施形態を実施する画像処理装置を実現する機器構成例を示す図である。同図において、符号518は、系のバスを表している。
符合1は画像を入力するスキャナである。符号2は画像メモリであり、符号3は画像入出力I/Oである。2値画像獲得手段としての2値画像獲得部7は、スキャナ1、画像メモリ2、および画像入出力I/O3を備えている。画像メモリ2は画像入出力I/O3を介して、スキャナ1で読み取られた2値化前の多値画像(原稿画像)を保持する。また、画像メモリ2は、上記2値画像を予め定められる閾値を用いて2値化する等の公知の2値化法に基づき2値化された後の2値画像データを保持する。
粗輪郭抽出手段としての粗輪郭抽出部5は、後述するCPU519、ROM6と共に、2値画像獲得部7により得られた2値画像から、これに含まれる図形の境界を関数近似処理前のベクトル(粗輪郭、もしくは、粗輪郭ベクトルとも称する)として抽出する。符号50は、入力画像ラスター走査部であり、画像入出力I/O3を介して信号線500より2値画像獲得部7にて得られた2値画像データを順次入力する。符号513と符号514とは、3×3の9画素で構成される走査窓の各画素の状態を入力する入力ポートである。
符号4は、ネットワーク等を経由して、システムの外部と通信する通信I/Fである。符号519はCPUである。符号520はRAMで、ワーキングメモリである。符号6はROMで、後に説明する手順に沿ってCPU519で実行されるプログラムや予め定められるパラメータやデータ等を格納している。これらのCPU519やRAM520、ROM6により、関数近似区間設定(アンカーポイント設定)手段や関数近似処理(コントロールポイント算出)手段が実現される。また、区間内近似精度算出(区間内誤差分値、区間内最大誤差値)手段、分割対象区間同定手段、区間分割手段、データ量判定手段、処理時間計測判定手段等も実現される。符号521はハードディスク装置522とのI/O(入出力回路)である。符号8は、タイマ回路であり、CPU519によりコントロールされることで処理時間計測判定手段を構成する。CPU519は、2値画像獲得部7、粗輪郭抽出部5、タイマー回路8といった、図1に示した画像処理装置の各構成を統括的に制御する。
以下、図3に示すフローチャートに基づき、本実施形態を実施する画像処理装置の動作を説明する。
同図において、処理を開始すると、画像処理装置は以下のように動作する。ステップS10では、2値画像獲得部7は、操作者から図示せぬ入力操作部(例えば、キーボードや各種ボタン)を介して一連の動作開始の指示を受けて、上述のスキャナ1、画像入出力I/O3、公知の2値化法に基づき画像メモリ2上に2値画像を生成する。すなわち、上記動作開始の指示に応じて、スキャナ1は、原稿を読み取ることによって、原稿画像を取得する。次いで、2値画像獲得部7は、スキャナ1から原稿画像を取得し、該原稿画像に対して2値化処理を行って、ベクトル化対象となる2値画像を獲得し、画像メモリ2に保存する。
次にステップS20では、上述の粗輪郭抽出部5を起動し、ステップ10にて得られた2値画像に基づいて粗輪郭ベクトルデータを生成してRAM520上に格納する。以下、主として、図4〜図7を用いて粗輪郭抽出部5での動作と処理内容を説明する。
本実施形態では、図5に示すように、2値画像における注目画素101と、その近傍の8個の画素の状態を見て処理を進めるもので、注目画素をラスタ走査し、1画素毎にずらしながら画像全体の処理を逐次行なってゆく。図5において、×は注目画素101を表しており、“0”及び“2”で示された位置は、主走査方向に対し注目画素101と同じ位置にあり、副走査方向のそれぞれ1ラスタ前の画素(0)及び1ラスタ先の画素(2)を示す。“1”及び“3”で示された位置は、注目画素101と同一のラスタ上にあり、それぞれ1画素前の画素(3)及び1画素先の画素(1)を示している。更に、“A”及び“B”は、主走査方向に1画素先の位置にあり、それぞれ1ラスタ前及び1ラスタ先の位置にある画素を示す。“C”及び“D”は、主走査方向の1画素前の位置にある画素で、それぞれ1ラスタ先及び1ラスタ前の位置にある画素を示す。
図4は、図1における粗輪郭抽出部5の構成例をより詳細に示している。同図において、図1と同様に符号50は入力画像ラスター走査部であり、画像入出力I/O3を介して信号線500より2値画像データを順次入力する。
符号501は、信号線500により、2値画像獲得部7から入力される画像データ(2値画像)をやりとりするための入力制御(インターフェース)部であり、この信号線500よりラスタ走査形式で順次2値画像データが入力されてくる。符号502はラッチで、入力制御回路501より入力された画像データを、図示しない画素同期クロックに同期して1画素づつ順次更新しながら保持する。次の画素同期クロックにて、ラッチ502は次の画素データを入力制御回路501より入力する。この時、既に保持していた画素データは、その画素同期クロックに同期してラッチ503にラッチされて、保持される。同様にラッチ503に保持されていた画素データは、次の画素同期クロックにて、ラッチ504に保持される。
符号505及び506はそれぞれ1ラスタ分の画素データを保持するFIFO(ファーストイン・ファーストアウト・メモリ)である。FIFO505は、ラッチ504の出力を順次、画素同期クロックに同期して取り込み、1ラスタ前のデータをラッチ507へ出力する。同様に、FIFO506も、ラッチ509の出力を取り込み、ラッチ510に1ラスタ前の画素データを出力する。ラッチ507,508,509及びラッチ510,511,512は共に上記ラッチ502,503,504と全く同様に動作する。
このようにして、ラッチ502,503,504,507,508,509,510,511及び512に記憶された9個の画素は、図5に示した9(3×3)画素よりなる領域の画素データを記憶していることになる。即ち、これらラッチのデータは、ラッチ502から512に向って順にそれぞれ図5の“B”,“2”,“C”,“1”,“×”,“3”,“A”,“0”,“D”に対応している。
符号513と514は、3×3の9画素で構成される走査窓の各画素の状態を入力する入力ポートである。入力ポート513,514は共にCPU519の入力ポートで、入力ポート513は、ラッチ510,502,504,512のデータを、即ち、それぞれ図5における“A”,“B”,“C”,“D”の位置のデータをCPU519に入力する。同様に、入力ポート514はラッチ511,507,503,509,508のデータ、即ち、“0”,“1”,“2”,“3”,“×”の位置のデータとして入力する。
符号515は、主走査方向の画素位置を示す主走査カウンタであり、図示しない副走査同期信号によりリセットされ、画素同期信号によりカウントアツプする。符号516は、副走査方向の画素位置を示す副走査カウンタで、図示しないページ同期信号によりリセットされ、副走査同期信号によりカウントアツプされる。符号517は入出力制御用の入出力ポートであり、入出力制御回路501に対し、画素データ入力の実行及び保留を指示する信号、及び入出力制御回路501よりCPU519への画素データ更新を知らせる信号等を保持する。符号521は、ハードディスク522の入出力制御装置である。入出力制御ポート517、主走査カウンタ515、副走査カウンタ516、入力ポート513,514、メモリ520、ディスクI/O521はバス518を介してCPU519に接続されている。
こうして、CPU519は入出力制御ポート517を介して、画素データの更新を行い、主走査カウンタ515及び副走査カウンタ516を介して、注目画素の画素位置(i,j)を知ることができる。また、入力ポート513及び514を介して、注目画素及びその近傍の8方向の画素の状態を知ることができる。
このようにして注目画素の処理が終了すると、CPU519は入出力制御ポート517を介して9個のラッチに記憶される画素データの更新を指示し、同時に画素データの更新完了の信号をリセットする。入出力制御回路501は、この更新の指示を受けると、画素データの更新指示の信号をクリアするとともに、後段のラッチにラッチされる画素データを更新し、この更新が終了すると入出力制御ポート517に、更新完了の信号を出力する。
CPU519は、更新指示の出力後、入出力制御ポート517より更新完了の信号が入力されるのを監視している。この更新完了の信号が入力されると、新たに9個のラッチに記憶された画素データに関する処理を実行し、以下同様にこれを繰り返すものである。また、入力制御回路501は、画像領域の最終画素を注目画素として処理し終った際に、入出力制御ポート517に終了信号を出力する。
次に注目画素及びその近傍の8画素の状態に応じた、それぞれの場合の処理を説明する。
CPU519は、注目画素が白画素である場合は、その処理を終了してラスタ走査を1画素分進め、注目画素位置を更新する。
これら輪郭ベクトルの始点・終点位置は、主走査方向及び副走査方向共に、画素と画素の中間の位置にあるものとする。また、主走査方向及び副走査方向共に、画素のある位置は正整数で示され、画素位置を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)で表現するものとする。また、主走査方向(x座標)は左から右に向かう方向が正の方向であり、副走査方向(y座標)は上から下に向かう向きが正の方向である。
以下、粗輪郭抽出処理に関し、粗輪郭抽出部5、及び、ROM6に保持されるプログラムによるCPU519の一連の動作を図6のフローチャートに沿ってさらに説明を加える。本実施形態における粗輪郭抽出部5は、基本的には特許文献1の開示する粗輪郭抽出動作で構成することができる。
図6は、本実施形態の画像処理装置のCPU519による輪郭抽出処理の全体の流れを示すフローチヤートである。これは、特許文献1の第22図に開示されるフローチャートでる。
まずステップS1にて、2値画像データからベクトル列を抽出する。そして、各ベクトルの始点の座標及びこのベクトルに流入してくる(このベクトルの始点の座標が終点となっている)ベクトル、流出してゆく(このベクトルの終点の座標が始点となっている)ベクトルを出力する。この出力は、特許文献1に準じて(特許文献1の図23及び図24に示すテーブルを踏襲して)行われる。
次にステップS2に進み、特許文献1の図23及び図24に示すテーブルに準ずる不図示のテーブルから流入及び流出ベクトルの項目番号を辿る。これにより、図7(特許文献1の図25に準ずる)に示すような画像中の総輪郭線ループ数、各輪郭線ループ毎の輪郭線ループ上の総点数、輪郭線ループ上の各点のx座標、y座標を記憶したテーブルを作成する。次にステップS3に進み、ディスクI/O521を介して、このテーブル情報ファイル形式でハードディスク522に記憶して、一連の動作を終了する。
かくして、図3のステップS20の粗輪郭抽出を終えると、CPU519は、生成された粗輪郭ベクトルデータをハードディスク522に格納する。粗輪郭ベクトルデータは、例えば、図7に示したような形式として表現でき、本実施形態では、この形式で出力されるものとする。なお、このときハードディスク522に格納された粗輪郭ベクトルデータは、関数近似処理前のベクトルである。
このようにして、画像処理装置は、ステップS10にて取得された2値画像に基づいて、該2値画像に含まれる図形の境界を、関数近似処理前のベクトルとして抽出することができる。
ステップS30では、CPU519は、関数近似区間設定手段として機能し、ハードディスク522に保持される粗輪郭ベクトルデータに対して該粗輪郭ベクトルデータをベジェ関数近似するためのアンカーポイントを設定する。CPU519は、該アンカーポイントの設定により関数近似区間を設定することができる。
これは、例えば上述した特許文献4に開示される方法で求めることができる。即ち、まず、粗輪郭ベクトルデータと称して、2値のラスター画像のデータより抽出された、水平ベクトル、垂直ベクトルが交互に並ぶ構成となる粗輪郭ベクトルデータから一輪郭線ループ分の粗輪郭ベクトルデータを入力する。上述の接線線分とするベクトルの抽出の条件[1]〜[3]等の規則に基づき粗輪郭上の線分より接線線分を抽出する。抽出された接線線分の端2つに対しそれぞれアンカーポイントを抽出する。接線線分上の一方の端に対しては、注目する接線線分であるベクトルに隣接するベクトルが接線線分であれば、この隣接する側の端点をアンカーポイントとする。隣接する線分が接線線分で無い場合には、さらにその隣、即ち、着目する接線線分のベクトルV2(長さを|V2|と表す)の2本前の線分のベクトルV1(長さを|V1|と表す)から、V2 ベクトル上端点より a|V1| 離れた点をアンカーポイントとする。但し、ひとつの接線成分のそれぞれの端のアンカーポイントが一致した場合には一つのアンカーポイントのみ抽出する。かくして、一輪郭線ループ分の粗輪郭データにおける全てのアンカーポイントを抽出すると、ステップS40へ進む。
ステップS40では、CPU519は、粗輪郭ベクトルデータ中の未処理の輪郭線ループに処理対象を移す。
ステップS50では、CPU519は、ステップS40で未処理の輪郭線ループが見つからなかった場合にステップS60に処理を進ませる。そうではない場合には、ステップS30に処理を戻し、ステップS40で見つかった未処理の輪郭線ループに対して、上記ステップS30の処理を行なわせる。
かくして、ステップS30からステップS50までの処理は、アンカーポイント設定の処理が全ての輪郭線ループに対して完了するまで繰り返され、完了するとステップS60に進むこととなる。尚、ステップS30からステップS50までの処理で得られたアンカーポイントが設定された粗輪郭ベクトルデータ(以降、“アンカーポイント設定済粗輪郭”と称する)は、例えば、図10のような形式でRAM520上に保持されるものとする。 図10において、画像中の総輪郭線ループ数aがデータ領域の先頭に格納され、その直後に第1番目の輪郭線ループ(第1輪郭線ループ)に対するデータが格納されている。第1番目の輪郭線ループのデータの先頭には、第1番目の輪郭線ループ中の関数近似対象区間(単に、関数近似区間とも言う)、即ち、ループ上で相隣り合う2つのアンカーポイントに挟まれる区間の総数α1が格納されている。その次には、第1番目の輪郭線ループの第1番目の区間中にある輪郭点の総数β11が格納されている。このβ11については、後に説明を加える。その次に、第1番目の輪郭線ループ中の第1番目の区間(第1区間)の第1番目の輪郭点の座標値が格納されている。この第1番目の輪郭点は、当該関数近似区間を定める2つのアンカーポイントのうちの最初のアンカーポイント(図8でのp1に相当する)である。このデータ以降には、当該関数近似区間内の輪郭点の座標値がループ上での並び順にあわせて順じ格納されている。
尚、当該関数近似区間を定めるもうひとつのアンカーポイント(図8でのpNに相当する)は、実は、同じ輪郭線ループ状の次に繋がる関数近似対象区間の最初のアンカーポイントでもある。従って、当該関数近似区間内(即ち、ここでは、第1区間内)の輪郭点のデータとしては座標値を格納せずに次に繋がる第2区間内の最初のアンカーポイントとして座標値を格納する形式でデータを生成している。つまり、第1区間内の輪郭点データとしては、この関数近似区間を定める最初のアンカーポイントから同関数近似区間を定める最後のアンカーポイントの直前の輪郭点までの座標値を格納している。図10の例では、第1番目の輪郭線ループの第1の関数近似区間には、最初のアンカーポイントから、この区間を定める最後のアンカーポイトの直前の輪郭点までで、β11個の輪郭点があることを表している。そしてこれが、上述の第1番目の輪郭線ループの第1番目の区間中にある輪郭点の総数の意味するところである。
さて、その次には、この時点ではまだ求められてはいない、この関数近似区間でのアンカーポイント間を結ぶ線分より最も距離の離れている同区間中の点(図8の“pf”)を特定する情報を格納する領域がある。該特定する情報は、ここでは第1区間内の2番目の点からβ11番目の点のいずれかを表す番号である。これに続いて、やはりこの時点ではまだ求められてはいない、この関数近似区間に対する2つのコントロールポイントC1、および、C2の座標値を格納する領域がある。ちなみに、これらpf、C1、C2については、後のステップS60において求められる。
さらに、その次に、同輪郭線ループ中の次の関数近似区間(この場合、第1輪郭線ループの第2関数近似区間)のデータ領域の先頭位置を与えるポインタの値(アドレス情報)をもつ。以降、第1近似区間に対するデータ列と全く同様に、第1輪郭線ループの第2関数近似区間のデータ、第3関数近似区間のデータ、…、第α1関数近似区間のデータの順に並び、第1輪郭線ループに関するデータを形成するものである。この際、第1輪郭線ループのデータ域の最後に第2輪郭線ループに関するデータ域の先頭位置を与えるポインタの値(アドレス情報)を格納する領域をもつ。この領域は、この輪郭線ループが当該アンカーポイント設定済粗輪郭の最後の輪郭線ループである場合には不要である。以降、第2輪郭線ループに関するデータ領域が、上述した第1輪郭線領域のデータ領域と全く同様に続く。さらに、当該アンカーポイント設定済粗輪郭に存在する最後の輪郭線ループの分の領域まで続いて、当該アンカーポイント設定済粗輪郭データが構成されている。
尚、ステップS50の処理が全ての輪郭線ループに対して完了してステップS60に進む際には、上述の図7に示された粗輪郭ベクトルデータは以降の処理では不要なため、この時点でハードディスク522から削除することも可能である。
さて、ステップS60では、CPU519は、関数近似処理(コントロールポイント算出)手段として機能し、ステップS30にて設定された関数近似区間毎に高次の関数(ベジェ曲線等の曲線関数)による関数近似を行い、コントロールポイントを算出する。すなわち、CPU519は、RAM520上に上述の図10の形式で保持されている、ステップS30からステップS50までの処理で得られたアンカーポイント設定済粗輪郭の一輪郭線ループ分を入力する。次いで、ループ上で相隣り合う2つのアンカーポイントに挟まれる区間(以降、“関数近似対象区間”と称する)に対してコントロールポイントを求める。そして、当該区間を2次もしくは3次ベジェ曲線、及び直線をあてはめ、当該輪郭線ループ上の全ての関数近似対象区間に対して、ベジェ曲線近似を行い、3次もしくは2次のベジェ曲線により置きかえていく。
これは、例えば上述した特許文献4に開示される方法で求めることができる。即ち、まず、一ループ分のアンカーポイント設定済粗輪郭データを入力し、当該ループ上に繋がる順に関数近似対象区間を、順次着目する関数近似対象区間とし、かくして定めた関数近似対象区間上の輪郭点列であるN個の点をそれぞれp1,p2,…,pNとする。このとき、これら点列の始点p1、終点pNはアンカーポイントである。先に述べた図8は、このときの1例を示している。同図において、黒丸で示されたのが、各輪郭点を表している。
ここで、アンカーポイントp1、pNを結ぶ線分p1pNより最も距離の離れている曲線上の点pfを求める。そして、このときの、点pfと線分p1pNとの距離をLとする。関数近似処理を簡易に行うため、求めるコントロールポイントをC1,C2としたとき、この2つのコントロールポイントを結ぶ線分C1C2が線分p1pNに対して平行となるように近似するものとする。そして、点C1、C2より線分p1pNへの距離が(4/3)×Lとなるように、即ち、互いに平行な線分C1C2と線分p1pN間の距離が(4/3)×Lとなるように、C1、C2を求める。
pfの座標値が(pfx,pfy)であった場合、p1、pNの各座標値(p1x,p1y)、(pNx,pNy)とp1における接線ベクトルp1C1(pcx,pcy)を用いると、C1の座標値(C1x,C1y)は、
C1x=K×pfx+p1x
C1y=K×pfy+p1y
K=(3p1x−4pfx)(pNy−p1y)+(pNx−p1x)(4pfy−3p1y)
+p1x(pNy−p1y)−p1y(pNx−p1x)
/(3(pNy−p1y)pcx+3(pNx−p1x)pcy)
となり、pfの座標値より一意に決定することができる。また、C2についても、C1と同様に求めることができる。
このとき、アンカーポイントp1、pNと、これらの間に定められるコントロールポイントC1、C2の4点で定まる3次ベジェ曲線が最も線分p1pNより離れる点までの線分p1pNからの距離は、点pfまでの距離Lと等しくなる。
尚、ここでアンカーポイントp1、pNにおける接線ベクトルは、特許文献4に開示されるように、以下のように求められる。すなわち、区分曲線への分割時に、アンカーポイントを定める際の接線線分とその付近の複数の線分の組み合わせにより、パターンマッチング的に方向ベクトルを抽出して、これをもってアンカーポイントにおける接線ベクトルとする。
ステップS60で求めた、当該関数近似対象区間(関数近似区間)でのアンカーポイント間を結ぶ線分より最も距離の離れている同区間中の点(図8の“pf”)を特定する情報は、上述した図10に示した該当領域に格納される。同様に、2つのコントロールポイントC1、および、C2の座標値についても、上述した図10に示したそれぞれの該当領域に格納されるものである。
かくして、ステップS60にてコントロールポイント設定(関数近似処理)を終えると、ステップS70に進む。
ステップS70では、CPU519は、区間内近似精度算出手段として機能し、ステップS60で関数近似処理を終えた区間の区間内の近似誤差(近似精度)を算出する。図9は、この様子を説明する図である。同図において、アンカーポイントp1、pNとこれらの間に定められるコントロールポイントC1、C2、即ち、p1、C1、C2、pNの4点で定まる3次Bezier(ベジェ)曲線を破線Ldで示している。ここで、p1、pNの各座標値をそれぞれ(p1x,p1y)、(pNx,pNy)、C1、C2の座標値をそれぞれ(C1x,C1y)、(C2x,C2y)とする。このとき、Ldの軌跡は、軌跡Ld上の任意の点Pld(Pldx,Pldy)を媒介変数t(0≦t≦1)を用いて、
Pldx =p1x (1 - t)3 + 3 C1x (1 - t)2 t + 3 C2x (1 - t) t2 +pNx t3 ・・・(1)
Pldy =p1y (1 - t)3 + 3 C1y (1 - t)2 t + 3 C2y (1 - t) t2 +pNy t3 ・・・(2)
のように表現することができる。
このときステップS60で求めた、アンカーポイントp1、pNを結ぶ線分p1pNより最も距離の離れている曲線上の点pf(pfx,pfy)との関係に着目すると、次のようになる。すなわち、2つのコントロールポイントを結ぶ線分C1C2が線分p1pNに対して平行となるように、かつ、互いに平行な線分C1C2と線分p1pN間の距離が(4/3)×Lとなるように、C1、C2を求めている。よって、t = 1 / 2 のとき、線分p1pNより最も離れる距離(距離L)となる点Pd(Pdx,Pdy)となる。図9において、DdとDfとは、それぞれ、点Pdと点pfからの線分p1pNまでの距離を表しており、
Dd = Df = L
である。
しかしながら、接線方向(接線ベクトルp1C1や接線ベクトル、p2C2)のとり方等により、必ずしも、点Pd と 点Pf が完全に一致するとは限らず、誤差が発生する。図9では、この誤差をΔx と表している。即ち、
(Δx)2 =(Pdx - pfx)2 + (Pdy - pfy)2 ・・・(3)
Δx =SQRT((Pdx - pfx)2 + (Pdy - pfy)2 )・・・(4)
(但し、SQRT(k)は、kの平方根の意)
である。
ここで、上述したように、Pdx、Pdy は、それぞれ、(1)式、(2)式に t = 1 / 2 を代入して求めることが可能である。
計算を単純化するため、点p1が座標系の原点、即ち、(0,0)であり、点pNも x 軸上にあるものとし、その座標値を(pNx, 0)、とする。さらに、点C1を( C1x, (4 / 3) L)、点C1を( C2x, (4 / 3) L)として、点Pd(Pdx,Pdy)を、上記の(1)式、(2)式より求めてみると、
Pdx = (3 /8) (C1x + C2x) + (1 /8) pNx
Pdy = (3 /8) (C1y + C2y) = (3 /8) ((4 / 3) L + (4 / 3) L) = L
となり、確かに、線分p1pNより距離(距離L)となっていることがわかる。
尚、一般的には、(1)式、(2)式に t = 1 / 2 を代入すると、
Pdx = (1 /8)p1x + (3 /8) (C1x + C2x) +(1 /8)pNx ・・・(5)
Pdy = (1 /8)p1y + (3 /8) (C1y + C2y) +(1 /8)pNy ・・・(6)
となる。
さて、ステップS70では、CPU519は、ステップS60にて求められた4点、p1、C1、C2、pNの座標値から(5)式、(6)式より点Pdの座標値(Pdx,Pdy)を求める。さらに、CPU519は、ステップS60にて求められた点pfの座標値(pfx,pfy)とから、(3)式により(Δx)2 を求める。この(Δx)2 をもって、ステップS70で求める区間内誤差値とする。この他にもΔxをもって、区間内誤差値としてもよい。このようにして、画像処理装置は、ステップS60にて3次ベジェ曲線にて関数近似された関数近似区間毎の区間内誤差値(近似精度)を算出することができる。
尚、ステップS70で算出された区間内誤差値は、後述するように、基本的には、ステップS70で処理した順に、RAM520上に保持されていくものとする。
かくして、ステップS70にて区間内誤差値の算出を終えると、ステップS80に進む。
ステップS80では、CPU519は、処理中である一輪郭線ループ分のアンカーポイント設定済粗輪郭中における未処理の関数近似対象区間に処理対象を移す。もし、当該、一輪郭線ループ分のアンカーポイント設定済粗輪郭中に未処理の関数近似対象区間が存在しない場合には、未処理のアンカーポイント設定済粗輪郭ループ中における未処理の関数近似対象区間に処理対象を移す。
ステップS90では、CPU519は、ステップS80でアンカーポイント設定済粗輪郭中に未処理の輪郭線ループが見つからなかった場合にステップS100に処理を進ませる。そうではない場合には、ステップS60に処理を戻し、ステップS80で見つかった未処理の輪郭線ループに対して、上記ステップS60の処理を行なわせる。
かくして、ステップS60からステップS90までの処理は、区間内誤差値の算出処理がアンカーポイント設定済粗輪郭中の全ての輪郭線ループに対して完了するまで繰り返され、完了するとステップS100に進むこととなる。尚、区間内誤差値の算出処理がなされた結果としてのデータは、例えば、図12のような形式でRAM520上に保持されるものとする。すなわち、図12に示すように、ステップS70で処理した順に従い、各輪郭線ループ毎に、当該輪郭線ループ状の区間順に並べて格納する等により、各区間とその区間の区間内誤差値の対応がつく形で、保持されるものとする。
図12では、画像中の総輪郭線ループ数aに続いて、第1番目の輪郭線ループのデータ域から順に第a番目の輪郭線ループのデータ域までが順次並んでいる。第1番目の輪郭線ループのデータ域には、第1番目の輪郭線ループ中の総近似区間数α1が格納されている。続いて同輪郭線ループ中の第1番目の関数近似区間の区間内誤差値と次の(即ち、第2番目の)関数近似区間の誤差値が格納される領域へのポインタ(アドレス情報)が格納されている。これに続き、第2番目の関数近似区間の区間内誤差値と、次の(即ち、第3番目の)関数近似区間の誤差値が格納される領域へのポインタ(アドレス情報)とが順番に格納されている。
以下同様に、この輪郭線ループ中の最後の関数近似区間の区間内誤差値が格納され、次の(即ち、第2番目の)輪郭線ループのデータが格納される領域へのポインタ(アドレス情報)が並んでいて、ここまでで、第1番目の輪郭線ループのデータ域が構成されている。以降、同様に、第a番目の輪郭線ループのデータ域が構成されている。但し、最後の輪郭線ループの最後の関数近似区間の区間内誤差値が格納されている領域に続くポインタ(アドレス情報)領域には、便宜上、第1番目の輪郭線ループのデータが格納される領域へのポインタ(アドレス情報)を格納している。
ステップS100では、CPU519は、ステップS70で求めた区間内誤差値をそれぞれの区間に対するデータのポインタ情報を用いて順にサーチしながら、それらの中で、最大の値をもつものを求め、どの区間の区間内誤差が最大かを同定する。すなわち、CPU519は、分割対象区間同定手段として機能し、ステップS70にて得られた関数近似区間毎の区間内誤差値から、最大の区間内誤差値(区間内最大誤差値)を有する関数近似区間(最大誤差区間)を同定する。ここで、区間内誤差値が最大であるということは、該区間内誤差値を低減することが望ましいことを意味する。そこで、本ステップにより、区間内最大誤差値に対応する関数近似区間を同定することにより、最も誤差低減が望まれる関数近似区間を抽出することができる。
さて、上記区間内誤差値は、関数近似区間内の誤差をパラメータ化したものであるので近似精度に対応している。そして、区間内誤差値を低減するということは、近似精度を向上することと同義となる。従って、本実施形態の画像処理装置は、区間内最大誤差値に対応する関数近似区間である最大誤差区間を同定することにより、近似精度の向上を図るべき関数近似区間を同定することができる。
なお、最大の誤差値をもつ区間が複数存在する場合には、CPU519は、それらの中でサーチ順の最初の区間を最大誤差区間とする。そして、ステップS110へ進む。
ステップS110では、CPU519は、処理時間計測判定手段として機能し、タイマー回路8にアクセスして、処理時間にまだ余裕があるか否かを判断し、まだ余裕がある場合にはステップS120に進み、そうではない場合には、ステップS170に進む。
尚、このタイマ回路8は、詳述は避けるが、公知のカウンタ回路や時計等の経過時間を測定可能なもので構成することができる。例えば、図3の一連の処理の開始時に初期化され、予め定められた処理時間(規定の処理時間)に相当する値を初期化時にセットされると、不図示の一定周期を刻むクロックで1ずつ減算を開始し、0になった時点で減算動作を停止するカウンタ回路を用いれば良い。この構成では、前述のステップS110で、CPU519は、このタイマ回路のカウントが0になっているか否かを判断することで、現在が規定の処理時間(予め定められた処理時間)内であるか否かの判定を行なうことができる。例えば、このカウンタの初期値は、予め定められた処理時間が5秒であり、かつ、カウンタの減算クロックがこのカウンタに1秒に12000回入るものであるとすると、上述の初期化時に60000の値をセットすればよいわけである。
なお、上記規定の処理時間(予め定められた処理時間)は、所望に応じてユーザが設定できるようにしても良い。この場合は、ユーザが入力操作部(不図示)を操作して所望の時間を入力し、該入力を受け付けたCPU519が、該入力された時間に応じてカウンタの初期値を設定するようにすれば良い。
このように、本ステップにおいてCPU519は、タイマー回路8による経時測定結果に基づいて、処理を開始してからの経過時間(処理時間)が規定の処理時間を越えたか否かを判断する。そして、処理時間が規定の処理時間を越えた場合は、一連の近似精度向上処理(後述するステップS140〜S160)を行わず、一連のベクトル化処理を終了する。一方、処理時間が規定の処理時間を越えていない場合は、一連の近似精度向上処理を行う。従って、規定の処理時間内であれば、より精度を向上させるための一連の近似精度向上処理を行うことができるので、処理時間の点で実用上妥当とされる制限内で、近似精度をより向上することができる。
次にステップS120では、ステップS100で求められた区間内最大誤差値が、予め定める閾値(例えば、4)を越える値であるか否かを判断し、超える場合にはステップS130に進み、そうではない場合にはステップS170に進む。上述のように、区間内最大誤差値に対応する関数近似区間は、複数の関数近似区間の中で近似精度の向上を図るべき区間であるので、上記予め定める閾値は、規定の近似精度の許容値となる。
本実施形態では、区間内最大誤差値が予め定める閾値(近似精度の許容値)を超える場合にのみ、一連の近似精度向上処理を行うので、ユーザが許容している近似精度の範囲内であれば、これ以上の近似精度向上処理を行う必要が無くなる。よって、近似精度の点から実用上妥当とされる範囲内で出力することができる。また、規定の処理時間内であっても、最低限求められる近似精度が達成された時点で出力処理へと切換えることができるので、ユーザが許容する近似精度を保ちつつ、処理時間の短縮を図ることができる。
ステップS130では、CPU519は、データ量判定手段として機能し、既に生成した図10や図12に示したアンカーポイント設定済粗輪郭データや各関数近似区間の誤差値の情報のデータ量が既に、既定のデータ量に達しているか否かを判定する。この規定のデータ量は、許容値となるデータ量であり、例えば、5MBと設定されている。CPU519は、上記許容値にまだ達していない場合にはステップS140に進む。そうではない場合、即ち、既に、既定の許容値となるデータ量(例えば、5MB)に達している場合には、CPU519は、ステップS170に進む。
ここで、図10に示したアンカーポイント設定済粗輪郭データのデータ量(データ容量)D1は、以下のようになる。ここで、簡単のために、図10中の全ての要素をそれぞれ4バイトで構成するものとする。このような要素は、画像中の総輪郭線ループ数、各輪郭ループ中の総区間数、各区間内の各点の座標値(x座標とy座標の組み合わせ)、Pfとなる点の番号を含む。また、上記要素は、コントロールポイントの座標値(x座標とy座標の組み合わせ)、次の区間のデータ領域へのポインタ(アドレス情報)等を含む。すなわち、データ量D1は、
1=4×(SUM(β1 1 ,β1 2 ,・・・,β 1 α1)+SUM(β2 1 ,β2 2 ,・・・,β 2 α2)+・・+SUM(βa 1 ,βa 2 ,・・・,β a αa)+4×SUM(α1,α2,・・・,αa)+a+1)
バイトの容量となる。
また、図12に示した各関数近似区間の誤差値の情報のデータ量D2は、以下のようになる。ここで、D1と同様に、簡単のために、図12中の全ての要素をそれぞれ4バイトで構成するものとする。このような要素は、画像中の総輪郭線ループ数、各輪郭ループ中の総区間数、各区間の区間内誤差値、次の区間のデータ領域へのポインタ(アドレス情報)等を含む。すなわち、データ量D2は、
2=4×(2×SUM(α1,α2,・・・,αa)+a+1)
バイトの容量となる。
ただし、SUM( , ,・・・, )は、( )内の全要素の総和を意味する。
即ち、ステップS130では、CPU519は、
D=D1+D2
=4×(SUM(β1 1 ,β1 2 ,・・・,β 1 α1)+SUM(β2 1 ,β2 2 ,・・・,β 2 α2)+・・・+SUM(βa 1 ,βa 2 ,・・・,β a αa)+6×SUM(α1,α2,・・・,αa)+2×a+2)
が、5M、即ち、5×220=5242880未満か否かを判定する。CPU519は、生成されたデータ量Dが、規定のデータ量(例えば、5MB)未満であればステップS140に進み、そうではない場合、即ち、既に、既定のデータ量(例えば、5MB)に達している場合にはステップS170に進むものである。
このように、本ステップにおいてCPU519は、これまでに得られた、アンカーポイント設定済粗輪郭データおよび各関数近似区間の誤差値の情報を少なくとも含むデータのデータ量(生成されたデータ量D)が規定のデータ量に達したか否かを判断する。そして、生成されたデータ量Dが規定のデータ量を越えた場合は、一連の近似精度向上処理(後述するステップS140〜S160)を行わず、一連のベクトル化処理を終了する。一方、生成されたデータ量が規定のデータ量を越えていない場合は、一連の近似精度向上処理を行う。よって、本処理によって生成されたデータ量Dが許される範囲内にある場合は、さらに近似精度を高める処理に続くことができる。よって、許容されたデータ量内において、近似精度を最大限まで高めることができる。
次にステップS140では、CPU519は、区間分割手段として機能し、ステップS100で求められた最大誤差区間を区間分割して、該最大誤差区間においてさらに複数の関数近似区間を設定する。すなわち、CPU519は、上記も止められた最大誤差区間を、ステップS60で求められているその区間のアンカーポイントp1、pNを結ぶ線分p1pNより最も距離の離れている曲線上の点pfで二分する。次いで、点p1と点pfをその区間のアンカーポイントとする前半の区間と、点pfと点pNをその区間のアンカーポイントとする後半の区間とに分割する。そして、CPU519は、第2の関数近似処理手段として機能し、前半の区間と後半の区間のそれぞれに対して、ステップS60と同様の処理を行う。すなわち、分割後のそれぞれの区間に、その区間の二つのアンカーポイントを結ぶ線分より最も距離の離れている曲線上の点(以降、『再遠点』と称する)と2つのコントロールポイントを定める。
このとき、図10で示したアンカーポイント設定済粗輪郭データは、図11(a)〜(c)の様に変更される。即ち、同図において、分割されるのが、第i番目のループの第j番目の関数近似区間である場合、分割前のこの区間のデータを図11(a)に表記する。そして、分割後の前半の区間のデータを図11(b)に、後半の区間のデータを図11(c)に表している。
図11(b)は、点p1から点pfの直前までの点と、新たに求められた最遠点と2つのコントロールポイントの座標値と、本ステップで新たにRAM520に確保される後半の区間のデータを格納するデータ領域の先頭アドレスへのポインタ領域とを含む。これは図11(a)のデータそのものを書き換えることで生成される。
図11(c)は、点pfと点pNをその区間のアンカーポイントとする点pfから点pNの直前までの点のそれぞれの座標値と、新たに求められた最遠点と2つのコントロールポイントの座標値とを含む。さらに、元々の図11(a)のデータの最後にあった分割前の第j+1区間のデータ領域先頭へのポインタ(アドレス情報)の値を分割後の第j+2区間のデータ領域先頭へのポインタ(アドレス情報)の値としてもつポインタ領域を含む。なお、上記j+1区間は、本ステップ以降では第j+2区間となる。
このとき、このステップで新たにRAM520に確保される後半の区間のデータを格納するデータ領域のデータ量ΔD1は、もとの区間の最遠点(点pf)から点pNの直前までの点の数をεとすると、
ΔD1=4×(ε+5)
バイトとなる。
ステップS140の処理を終えると、ステップS150に進む。ステップS150では、CPU519は、第2の区間内近似精度算出手段として機能し、ステップS140で生成された2つの関数近似区間(前半の区間、後半の区間)のそれぞれに対して、ステップS70と全く同様にしてそれぞれの区間内誤差値を算出する。CPU519は、算出されたそれぞれの区間内誤差値のうち、前半の区間の区間内誤差値を、もともとの第i番目のループの第k番目の関数近似区間用の区間内誤差値の格納領域に格納する。そして、後半の関数近似区間用の区間内誤差値の格納領域は、このステップで新たにRAM520上に確保される。
この際、元々の第i番目ループの第k番目の関数近似区間用の次の関数近似区間(即ち、第k+1番目)の区間内誤差値領域へのポインタ(アドレス情報)領域には、後半の関数近似区間用の区間内誤差値の格納領域へのポインタ(アドレス情報)の値を格納する。この後半の関数近似区間用の区間内誤差値の格納領域へのポインタ(アドレス情報)の値は、このステップで新たにRAM520上に確保されるものである。一方、新たにRAM520上に確保される後半の関数近似区間用の次の関数近似区間の区間内誤差値領域へのポインタ(アドレス情報)領域には、次の値が格納される。すなわち該ポインタ(アドレス情報)領域には、、元々の図13(a)における第k+1番目(新たには第k+2番目となる)の区間内誤差値領域へのポインタ(アドレス情報)の値を格納する。
この様子を図13(a)および(b)に示す。即ち、同図において、分割されるのが、第i番目のループの第j番目の関数近似区間である場合、分割前のこの区間の区間内誤差値のデータを図13(a)に表記する。分割後の区間内誤差値のデータを図13(b)に表している。このステップで新たにRAM520上に確保されるデータ領域のデータ量ΔD2は、
ΔD2=4×2=8
バイトとなる。
ステップS150の処理を終えると、ステップS160に進む。ステップS160では、CPU519は、ステップS100と全く同様に、第2の分割対象区間同定手段として機能し、ステップS150にて更新された区間内誤差値から、最大の区間内誤差値を有する関数近似区間を同定する。すなわち、改めて、ステップS150で更新された全ての区間内誤差値をそれぞれの区間に対するデータのポインタ情報を用いて順にサーチしながら、それらの中で、最大の値をもつものを求め、どの区間の区間内誤差が最大かを同定する。最大の誤差値をもつ区間が複数存在する場合には、それらの中でサーチ順の最初の区間を最大誤差区間とする。そして、ステップS110へ戻る。
以降、ステップS110、ステップS120、ステップS130のいずれかでステップS170へ分岐することになるまでの間、ステップS110〜ステップS160の処理を繰り返すことになる。但し、ステップS130でチェックするデータ量は、ステップS110〜ステップS160の処理を繰り返すたびに、上述のΔD1とΔD2を加えた値ΔD、即ち
ΔD=ΔD1+ΔD2
=4×(ε+5)+8
=4×ε+28
バイトずつ増えた値を新たな生成されたデータ量Dとして用いて判断をするものである。(D←D+ΔD)
さて、ステップS170では、CPU519は、それまでに求めた各輪郭線ループの各関数近似区間のアンカーポイントとコントロールポイントのそれぞれのデータを、所定の装置や装置外へと出力する。すなわち、該データを、上記図10、及び図12の形式で保持されたアンカーポイント設定済粗輪郭データ中をポインタ情報を用いて順にサーチしながら公知の所望のデータ形式にて、I/O521を介してハードディスク522へ出力する。あるいは、通信I/F4を介して装置外へ出力するものである。なお、上記公知の所望のデータ形式としては、例えば、SVC(Scarable Vector Graphics)等を用いることができる。
このように本実施形態では、ステップS110のようなデータ量判定処理、およびステップS130のような処理時間計測判定処理を行っている。
データ量判定処理においては、生成されたデータ量Dが、許容値となる規定のデータ量に達したと判断されるまでは、一連の近似精度向上処理(後述するステップS140〜S160)を行うと判断する。この判断に基き、上記近似精度向上処理として、ステップS100またはS150で同定された区間内最大誤差値(近似精度の向上を図るべき関数近似区間)を分割し、該分割で生じたそれぞれの区間の関数近似処理と近似精度の算出処理とを行うことができる。
同様に、処理時間計測判定処理を行う場合、処理時間が許容値となる規定の処理時間を越えたと判断するまでは、上記一連の近似精度向上処理を行うと判断する。
よって、許容されるデータ量の範囲内、および許容される処理時間において、近似精度を最大限まで高めることができる。
(第2の実施形態)
上述した、図10、図11、図12、図13に示したデータ形式は、一例にすぎず、これに限らない。また、第1の実施形態で説明した図3のステップS170で出力するベクトルデータの形式もこれに限らない。即ち、図10の輪郭線中ループ数(a)の後の輪郭線ループ毎のデータを、その輪郭線中の区間数のデータ(αi)に続けて各関数近似区間のデータをアンカーポイントp1と2つのコントロールポイントC1、C2のみで構成する。そして、出現する関数近似区間の並び順に(即ちαi個の区間分)、纏めて詰めた形式とするようにしてももちろん良い。この場合のベクトルデータの形式を図14に示す。
(第3の実施形態)
上述の実施形態では、2値画像は、スキャナ1で読み込まれた画像を2値化して得られるとして説明を進めてきたが、これに限るものではない。例えば、通信I/F4を介してネットワーク等を経由して、システムの外部(ネットワークに接続されたスキャナやPC)より入力されたものでも良いのはもちろんである。
また、上述した実施形態では、上述した画像処理装置を、デジタル複写機、ネットワークに接続されたプリンタ、PCなどで実現することができる。
(第4の実施形態)
上述のステップS140においては、図11(a)に表記した分割前の関数近似区間のデータを、図11(b)に表記した分割後のデータの前半と、図11(c)に表した後半のデータに分けることを述べた。この際、図11(b)は、点p1から点pfの直前までの点と、新たに求められた最遠点と2つのコントロールポイントの座標値を含む。そしてさらに、このステップで新たにRAM520に確保される後半の区間のデータを格納するデータ領域の先頭アドレスへのポインタ領域を含む。従って、もとの図11(a)のデータそのものを書き換えることで生成すると、点pfから点pNの直前までの点のそれぞれの座標値を格納していたデータ領域が不要となる。
そこで、ステップS140では、この不要となった領域を詰めて不要な領域が散在しないようにデータを移動されるように構成しても良い。即ち、一旦は上述のステップS140の動作の様に図11(c)のデータを生成した後,図11(b)を生成後に不要となったもとの図11(a)のデータ領域の後半部分には、ε点分のデータ領域が存在する。よって、もとの図11(a)のデータ領域に続いたデータ領域部分を、このε点分のデータ領域分だけ順じ詰めてRAM520上に配置しなおすようにしても良い。このようにすると、データの移動と、移動させたデータ領域分に相当する分だけポインタ(アドレス情報)格納領域の値を全て書き換える必要とが生じて、それだけ処理時間が遅くはなる。しかしながら、RAM520上に無駄に散在するデータ領域が不要となるため、処理途中でメモリ領域をより有効に使用できるというメリットが生じる。
また、この場合には、ステップで新たにRAM520に確保されるデータ領域のデータ量ΔD1は、
ΔD1=4×(ε+5−ε)
=20
バイトとなる。
(第5の実施形態)
これまで、処理時間とデータ量を両方チェックしながら本発明の実施形態の説明を進めてきたが、これに限るものではなく、いずれか一方のチェックのみでも良いのはもちろんである。 すなわち上述では、ステップS110にて処理時間に余裕が有るか否かを、ステップS130にて生成されたデータ量が許容された範囲内であるか否かを判断しているが、ステップS110およびステップS130のいずれか一方のみを行うようにしても良い。
即ち、データ量のチェックを行なわず、処理時間のチェックのみを行なう場合には、図3のフローチャートにおけるステップS130を行なわず、上述のステップS120の処理の後にステップS130に進んでいた部分をステップS140に進むようにすればよい。この場合には、処理時間には制限を設けずに、処理途中で生じるデータ領域として使用可能なメモリ容量に制限がある場合において、従来に比して近似精度の向上した関数近似の実現が可能となる。また、処理時間のチェックを行なわず、データ量のチェックのみを行なう場合には、以下のようにすれば良い。すなわち、図3のフローチャートにおけるステップS110を行なわず、上述のステップS100やステップS160の処理の後にステップS130に進んでいた部分をステップS120に進むようにすればよい。この場合には、処理途中で生じるデータ領域として使用可能なメモリ容量は十分に確保されているが、処理時間には制限がある場合において、従来に比して近似精度の向上した関数近似の実現が可能となる。
(第6の実施形態)
上述の実施形態の説明では、ステップS70で求める区間内誤差値として(Δx)2 を用いたが、これに限るものではない。この他にも、例えば、上述の(4)式で得られるΔxをもって、区間内誤差値としてもよい。また、精度的には最適とはいえないが、|Pdx - pfx| + |Pdy - pfy|をもって区間内誤差値としてもよく、この場合には誤差値の計算速度の向上が期待できる。
(その他の実施形態)
本発明は、複数の機器(例えばコンピュータ、インターフェース機器、リーダ、プリンタなど)から構成されるシステムに適用することも、1つの機器からなる装置(複合機、プリンタ、ファクシミリ装置など)に適用することも可能である。
前述した実施形態の機能を実現するように前述した実施形態の構成を動作させるプログラムを記憶媒体に記憶させ、該記憶媒体に記憶されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も上述の実施形態の範疇に含まれる。即ちコンピュータ読み取り可能な記憶媒体も実施例の範囲に含まれる。また、前述のコンピュータが実行可能なコンピュータプログラムが記憶された記憶媒体はもちろんそのコンピュータプログラム自体も上述の実施形態に含まれる。
かかる記憶媒体としてはたとえばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD―ROM、磁気テープ、不揮発性メモリカード、ROMを用いることができる。
また前述の記憶媒体に記憶されたプログラム単体で処理を実行しているものに限らず、他のソフトウエア、拡張ボードの機能と共同して、OS上で動作し前述の実施形態の動作を実行するものも前述した実施形態の範疇に含まれる。
本発明の一実施形態を実施する画像処理装置を実現する機器構成例を示す図である。 従来の、2値画像のアウトラインベクトル処理の流れによる一連の処理経過の例を示す図である。 本発明の一実施形態を実施する画像処理装置における処理の一連の流れを説明するフローチャートである。 図1における粗輪郭抽出部5の構成例をより詳細に示す図である。 本発明の一実施形態に係る、2値画像における注目画素と、その近傍画素の状態を見て処理を進める様子を示す図である。 本発明の一実施形態における輪郭抽出処理の全体の流れを示すフローチヤートである。 本発明の一実施形態に係る粗輪郭ベクトルデータの形式の一例を示す図である。 従来の、関数近似対象区間の一例を示す図である。 本発明の一実施形態に係る、関数近似処理を終えた関数近似対象区間の区間内の近似誤差を示す図である。 本発明の一実施形態に係るアンカーポイント設定済粗輪郭データの形式の一例を示す図である。 (a)〜(c)は、本発明の一実施形態に係る、最大誤差区間を分割した際のアンカーポイント設定済粗輪郭データ更新の一例を示す図である。 本発明の一実施形態に係る、各関数近似区間の誤差値のデータ形式の一例を示す図である。 (a)および(b)は、本発明の一実施形態に係る、最大誤差区間を分割した際の関数近似区間の誤差値のデータ更新の一例を示す図である。 本発明の一実施形態に係るステップS170で出力するベクトルデータの形式を示す図である。
符号の説明
1 スキャナ
2 画像メモリ
3 画像入出力I/O
4 通信I/F
5 粗輪郭抽出部
6 ROM
7 2値画像獲得部
50 入力画像ラスター走査部
518 バス
519 CPU
520 RAM
521 I/O
522 ハードディスク装置

Claims (10)

  1. 図形を直線の連続として表現する点列からなるベクトルデータである粗輪郭ベクトルデータを獲得する獲得手段と、
    前記獲得された粗輪郭ベクトルデータに対して、前記点列を関数近似するための区間に分割するための分割点を設定して、関数近似区間の設定を行なう関数近似区間設定手段と、
    前記設定された関数近似区間毎に前記点列を関数近似する関数近似処理手段と、
    前記関数近似された関数近似区間毎の近似誤差を算出する区間内近似精度算出手段と、
    前記算出された近似誤差に基づいて、複数の前記関数近似区間の中から、前記算出された近似誤差が最大となる関数近似区間を、近似精度の向上を図るべき関数近似区間として同定する分割対象区間同定手段と、
    前記分割対象区間同定手段にて同定された前記近似精度の向上を図るべき関数近似区間を区間分割することにより、該近似精度の向上を図るべき関数近似区間においてさらに複数の関数近似区間を設定する区間分割手段と、
    これまでに得られた、前記分割点が設定された粗輪郭ベクトルデータおよび各関数近似区間の近似誤差の情報を少なくとも含むデータのデータ量が既定のデータ量に達したか否かの判定と、処理を開始してからの経過時間を測定し、該測定された経過時間が既定の時間を超えたか否かの判定との少なくとも一方の判定を行う判定手段と、を備え、
    前記判定手段が、前記データ量が前記既定のデータ量に達したと判定するか、又は、前記経過時間が前記既定の時間を超えたと判定するまでは、前記区間分割手段で区間分割することにより設定した関数近似区間に対する前記関数近似処理手段による関数近似処理と、前記区間内近似精度算出手段による近似誤差の算出処理と、前記分割対象区間同定手段による関数近似区間の同定処理と、当該同定された関数近似区間に対する前記区間分割手段による分割処理とを繰り返すことを特徴とする画像処理装置。
  2. 前記判定手段は、更に、前記分割対象区間同定手段で同定された前記近似精度の向上を図るべき関数近似区間の近似誤差が、既定の閾値を超えるか否かの判定を行い、
    前記判定手段が、前記データ量が前記既定のデータ量に達したと判定するか又は前記経過時間が前記既定の時間を超えたと判定するまでで、且つ、前記分割対象区間同定手段で同定された前記近似精度の向上を図るべき関数近似区間の近似誤差が、前記既定の閾値を超えていると判定した場合に、前記区間分割手段は、前記近似精度の向上を図るべき関数近似区間を区間分割することにより、該近似精度の向上を図るべき関数近似区間においてさらに複数の関数近似区間を設定することを特徴とする請求項1に記載の画像処理装置。
  3. 前記獲得手段は、
    ベクトル化対象とする2値画像を獲得する2値画像獲得手段と、
    前記2値画像から該2値画像に含まれる図形の境界から、前記粗輪郭ベクトルデータを抽出する粗輪郭抽出手段と
    を有することを特徴とする請求項1または2に記載の画像処理装置。
  4. 前記関数近似は、3次のベジェ曲線による近似であることを特徴とする請求項1乃至3のいずれかに記載の画像処理装置。
  5. 獲得手段が、図形を直線の連続として表現する点列からなるベクトルデータである粗輪郭ベクトルデータを獲得する獲得工程と、
    関数近似区間設定手段が、前記獲得された粗輪郭ベクトルデータに対して、前記点列を関数近似するための区間に分割するための分割点を設定して、関数近似区間の設定を行なう関数近似区間設定工程と、
    関数近似処理手段が、前記設定された関数近似区間毎に前記点列を関数近似する関数近似処理工程と、
    区間内近似精度算出手段が、前記関数近似された関数近似区間毎の近似誤差を算出する区間内近似精度算出工程と、
    分割対象区間同定手段が、前記算出された近似誤差に基づいて、複数の前記関数近似区間の中から、前記算出された近似誤差が最大となる関数近似区間を、近似精度の向上を図るべき関数近似区間として同定する分割対象区間同定工程と、
    判定手段が、これまでに得られた、前記分割点が設定された粗輪郭ベクトルデータおよび各関数近似区間の近似誤差の情報を少なくとも含むデータのデータ量が既定のデータ量に達したか否かの判定と、処理を開始してからの経過時間が既定の時間を超えたか否かの判定との少なくとも一方を行う判定工程と、
    区間分割手段が、前記判定工程で、前記データ量が前記既定のデータ量に達したと判定するか、又は、前記経過時間が前記既定の時間を越えたと判定するまでは、前記分割対象区間同定工程で同定された前記近似精度の向上を図るべき関数近似区間において新たな分割点を設定することにより、前記近似精度の向上を図るべき関数近似区間において更に複数の関数近似区間を設定する区間分割工程と、
    制御手段が、前記判定工程で前記データ量が前記既定のデータ量に達したと判定するか、又は、前記経過時間が前記既定の時間を超えたと判定するまでは、前記区間分割工程で区間分割することにより設定した関数近似区間に対して前記関数近似処理工程での関数近似処理と、前記区間内近似精度算出工程での近似誤差の算出処理と、前記分割対象区間同定工程での関数近似区間の同定処理と、当該同定された関数近似区間に対する前記区間分割工程での分割処理とを繰り返すように制御する制御工程と、
    を有することを特徴とする画像処理方法。
  6. 前記判定工程では、更に、前記分割対象区間同定工程で同定された前記近似精度の向上を図るべき関数近似区間の近似誤差が、既定の閾値を超えるか否かの判定を行い、
    前記区間分割工程では、前記判定工程で、前記データ量が前記既定のデータ量に達したと判定するか又は前記経過時間が前記既定の時間を超えたと判定するまでで、且つ、前記分割対象区間同定工程で同定された前記近似精度の向上を図るべき関数近似区間の近似誤差が前記既定の閾値を超えていると判定した場合に、前記近似精度の向上を図るべき区間を区間分割することにより、該近似精度の向上を図るべき関数近似区間においてさらに複数の関数近似区間を設定することを特徴とする請求項5に記載の画像処理方法。
  7. 前記獲得工程では、
    ベクトル化対象とする2値画像を獲得する2値画像獲得工程と、
    前記2値画像から該2値画像に含まれる図形の境界から、前記粗輪郭ベクトルデータを抽出する粗輪郭抽出工程と
    を有することを特徴とする請求項5または6に記載の画像処理方法。
  8. 前記関数近似は、3次のベジェ曲線による近似であることを特徴とする請求項5乃至7のいずれかに記載の画像処理方法。
  9. コンピュータ装置が実行可能なプログラムであって、前記プログラムを実行するコンピュータ装置を、前記請求項1乃至4のいずれかに記載の画像処理装置として機能させることを特徴とするプログラム。
  10. コンピュータにより読み出し可能な、請求項9に記載のプログラムを格納した記憶媒体。
JP2008121158A 2008-05-07 2008-05-07 画像処理装置および画像処理方法 Expired - Fee Related JP5137679B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008121158A JP5137679B2 (ja) 2008-05-07 2008-05-07 画像処理装置および画像処理方法
US12/434,349 US8335389B2 (en) 2008-05-07 2009-05-01 Image processing device and method for benzier approximation accuracy within a pre-defined data amount or predetermined processing time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008121158A JP5137679B2 (ja) 2008-05-07 2008-05-07 画像処理装置および画像処理方法

Publications (3)

Publication Number Publication Date
JP2009271700A JP2009271700A (ja) 2009-11-19
JP2009271700A5 JP2009271700A5 (ja) 2011-06-16
JP5137679B2 true JP5137679B2 (ja) 2013-02-06

Family

ID=41266947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008121158A Expired - Fee Related JP5137679B2 (ja) 2008-05-07 2008-05-07 画像処理装置および画像処理方法

Country Status (2)

Country Link
US (1) US8335389B2 (ja)
JP (1) JP5137679B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9367933B2 (en) 2012-06-26 2016-06-14 Google Technologies Holdings LLC Layering a line with multiple layers for rendering a soft brushstroke
JP2016111616A (ja) * 2014-12-09 2016-06-20 キヤノン株式会社 情報処理装置および曲線算出方法、画像表示装置
CN110232724A (zh) * 2019-06-13 2019-09-13 大连民族大学 一种汉字字体图像矢量表示方法
CN110246104B (zh) * 2019-06-13 2023-04-25 大连民族大学 一种汉字图像处理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6058771A (ja) 1983-09-10 1985-04-04 Dainippon Screen Mfg Co Ltd 画像走査記録装置の入力走査部
JPS61108479A (ja) 1984-10-29 1986-05-27 Mazda Motor Corp スポツト溶接装置
JP3026592B2 (ja) * 1990-10-22 2000-03-27 キヤノン株式会社 輪郭抽出方法及びその装置
JPH05108823A (ja) * 1991-10-21 1993-04-30 Canon Inc 輪郭抽出方法及び装置
JP3049672B2 (ja) * 1991-12-26 2000-06-05 キヤノン株式会社 画像処理方法及び装置
JP3026698B2 (ja) * 1993-05-27 2000-03-27 キヤノン株式会社 画像処理方法及びその装置
JPH08179752A (ja) * 1994-12-21 1996-07-12 Canon Inc 画像処理装置及び方法
JP2002244643A (ja) * 2001-02-15 2002-08-30 Fuji Xerox Co Ltd 画像処理装置
AU2002305387B2 (en) * 2001-05-04 2008-04-03 Legend Films, Llc Image sequence enhancement system and method
US7212205B2 (en) * 2002-11-12 2007-05-01 Matsushita Electric Industrial Co., Ltd. Curved surface image processing apparatus and curved surface image processing method
US7043712B2 (en) * 2003-09-09 2006-05-09 International Business Machines Corporation Method for adaptive segment refinement in optical proximity correction
JP4378208B2 (ja) * 2004-04-26 2009-12-02 キヤノン株式会社 情報処理装置及び情報処理方法
US7873218B2 (en) * 2004-04-26 2011-01-18 Canon Kabushiki Kaisha Function approximation processing method and image processing method
JP4371911B2 (ja) * 2004-05-31 2009-11-25 キヤノン株式会社 関数化処理方法及び関数化処理装置
JP4878209B2 (ja) * 2006-05-15 2012-02-15 キヤノン株式会社 画像処理装置、画像処理方法、コンピュータプログラム
US7970216B2 (en) * 2006-08-24 2011-06-28 Dell Products L.P. Methods and apparatus for reducing storage size

Also Published As

Publication number Publication date
JP2009271700A (ja) 2009-11-19
US20090279802A1 (en) 2009-11-12
US8335389B2 (en) 2012-12-18

Similar Documents

Publication Publication Date Title
CN105528614B (zh) 一种漫画图像版面的识别方法和自动识别系统
US7873218B2 (en) Function approximation processing method and image processing method
EP0831418B1 (en) Method and apparatus for character recognition
JP4251629B2 (ja) 画像処理システム及び情報処理装置、並びに制御方法及びコンピュータプログラム及びコンピュータ可読記憶媒体
US8320019B2 (en) Image processing apparatus, image processing method, and computer program thereof
US6411733B1 (en) Method and apparatus for separating document image object types
JP5854802B2 (ja) 画像処理装置、画像処理方法、及びコンピュータプログラム
JP2608571B2 (ja) 入力走査画像データのベクトル化のための装置及び方法
US20120250048A1 (en) Image processing apparatus and image processing method
US7889938B2 (en) Method and apparatus for processing line drawings in images
US20060217826A1 (en) Image processing apparatus and a method therefor
JP5137679B2 (ja) 画像処理装置および画像処理方法
JP2006253892A (ja) 画像処理方法及び画像処理装置
US8553985B2 (en) Image processing apparatus, image processing method and computer-readable medium
US8150185B2 (en) Image processing for generating a thin line binary image and extracting vectors
JP4928325B2 (ja) 画像処理方法、画像処理装置、プログラムおよび記憶媒体
JP5335581B2 (ja) 画像処理装置、画像処理方法及びプログラム
KR101903617B1 (ko) 복수 개의 객체 이미지를 포함한 정적인 디지털 결합 이미지의 편집 방법
JP4873554B2 (ja) 画像配信装置および画像配信方法
JP2008028716A (ja) 画像処理方法及び装置
JP2007182064A (ja) 画像処理装置、及び画像処理方法
JP7301529B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP5028174B2 (ja) 画像処理装置、画像処理方法、及び、画像処理プログラム
JP3885001B2 (ja) 画像処理方法及び画像処理装置
JP4574347B2 (ja) 画像処理装置、方法及びプログラム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20101106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110427

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120820

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: 20121016

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: 20121113

R151 Written notification of patent or utility model registration

Ref document number: 5137679

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20151122

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees