(57)【要約】【課題】      ベジェ曲線により、入力した電子化データから抽出した２値画像の輪郭の近似を高速化する。【解決手段】  入力した電子化データから抽出した２値画像の輪郭点列をベジェ曲線で近似できる輪郭の区分に分割し、分割した区分の始点及び終点の位置情報をメモリに格納し、分割した輪郭の区分内に属する輪郭点列の内から少なくとも一つの点を、分割した区分の始点及び終点を結び特定される第１線分に対する第１距離条件を満たす特徴点として決定し、決定した特徴点の位置情報をメモリに格納し、第１線分に対する第２距離条件を満たし、かつ第１線分と平行な第２線分上の位置情報と、分割した区分の始点及び終点それぞれに対する接線上の位置情報とをそれぞれ比較して、両位置情報が一致する交点をコントロールポイントとして決定し、決定したコントロールポイントの位置情報をメモリに格納し、区分の始点及び終点、特徴点及びコントロールポイントにおける位置情報に基づいて、分割した輪郭の区分をベジェ曲線で近似する。【選択図】    図１１Ａ
2005310070.tif 000002
【特許請求の範囲】
【請求項１】
２値画像のデータをベジェ曲線を用いてアウトライン化する情報処理装置において、
入力した電子化データから抽出した２値画像の輪郭点列をベジェ曲線で近似できる輪郭の区分に分割し、当該分割した区分の始点及び終点の位置情報を格納手段に格納する曲線分割手段と、
前記分割した輪郭の区分内に属する輪郭点列の内から少なくとも一つの点を、前記分割した区分の始点及び終点を結び特定される第１線分に対する第１距離条件を満たす特徴点として決定し、当該決定した特徴点の位置情報を格納手段に格納する特徴点決定手段と、
前記第１線分に対する第２距離条件を満たし、かつ当該第１線分と平行な第２線分上の位置情報と、前記分割した区分の始点及び終点それぞれに対する接線上の位置情報とをそれぞれ比較して、両位置情報が一致する交点をコントロールポイントとして決定し、当該決定したコントロールポイントの位置情報を格納手段に格納するするコントロールポイント決定手段と、
前記区分の始点及び終点、前記特徴点及び前記コントロールポイントにおける位置情報を前記格納手段より読み出し、前記分割した輪郭の区分を前記ベジェ曲線で近似する近似演算手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記特徴点決定手段は、前記分割した区分の始点及び終点により特定される第１線分に対する各輪郭点の距離をそれぞれ演算し、当該演算結果の比較により距離が最大になる輪郭点を特徴点として決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記コントロールポイント決定手段により求められる前記第２線分は、第２距離条件＝(４／３)×第１距離条件の関係を満たすことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記近似演算手段は、前記特徴点と、当該特徴点に対応する近似したベジェ曲線上の点との位置情報を比較して、当該位置情報が許容閾値座標値の範囲内にある場合は、前記近似した曲線を確定し、
前記比較の結果、前記位置情報が前記許容閾値座標値の範囲にない場合、前記曲線分割手段は、特徴点決定手段により決定された前記特徴点の位置において、前記分割された輪郭の区分を更に再分割することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
２値画像のデータをベジェ曲線を用いてアウトライン化する情報処理方法において、
入力した電子化データから抽出した２値画像の輪郭点列をベジェ曲線で近似できる輪郭の区分に分割し、当該分割した区分の始点及び終点の位置情報を格納手段に格納する曲線分割工程と、
前記分割した輪郭の区分内に属する輪郭点列の内から少なくとも一つの点を、前記分割した区分の始点及び終点を結び特定される第１線分に対する第１距離条件を満たす特徴点として決定し、当該決定した特徴点の位置情報を格納手段に格納する特徴点決定工程と、
前記第１線分に対する第２距離条件を満たし、かつ当該第１線分と平行な第２線分上の位置情報と、前記分割した区分の始点及び終点それぞれに対する接線上の位置情報とをそれぞれ比較して、両位置情報が一致する交点をコントロールポイントとして決定し、当該決定したコントロールポイントの位置情報を格納手段に格納するするコントロールポイント決定工程と、
前記区分の始点及び終点、前記特徴点及び前記コントロールポイントにおける位置情報を前記格納手段より読み出し、前記分割した輪郭の区分を前記ベジェ曲線で近似する近似演算工程と、
を備えることを特徴とする情報処理方法。
【請求項６】
前記特徴点決定工程は、前記分割した区分の始点及び終点により特定される第１線分に対する各輪郭点の距離をそれぞれ演算し、当該演算結果の比較により距離が最大になる輪郭点を特徴点として決定することを特徴とする請求項５に記載の情報処理方法。
【請求項７】
前記コントロールポイント決定工程により求められる前記第２線分は、第２距離条件＝(４／３)×第１距離条件の関係を満たすことを特徴とする請求項５に記載の情報処理方法。
【請求項８】
前記近似演算工程は、前記特徴点と、当該特徴点に対応する近似したベジェ曲線上の点との位置情報を比較して、当該位置情報が許容閾値座標値の範囲内にある場合は、前記近似した曲線を確定し、
前記比較の結果、前記位置情報が前記許容閾値座標値の範囲にない場合、前記曲線分割工程は、特徴点決定工程により決定された前記特徴点の位置において、前記分割された輪郭の区分を更に再分割することを特徴とする請求項５に記載の情報処理方法。
【請求項９】
コンピュータで実行するための処理を、請求項５乃至請求項８のいずれか１項に記載の情報処理方法により特定することを特徴とする情報処理プログラム。
【請求項１０】
請求項９に記載の情報処理プログラムを格納したことを特徴とするコンピュータ可読の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理処理及び情報処理方法、情報処理プログラム等に関するものであり、特に、電子化データより２値画像データを抽出し、アウトライン化処理を実行する情報処理装置及びその方法等に好適である。
【背景技術】
【０００２】
近年、環境問題がオフィス環境においても重要視され、その問題の解決策の一つとして、オフィスでのペーパーレス化が急速に進んでいる。このペーバーレス化を実現する方法として、紙文書をスキャナより読み取り、電子データに変換して情報を格納する方法が挙げられる。しかしながら、紙文書は電子データとして保存可能であるが、ファイル自体がイメージ情報であるので、紙文書自体を再利用することはできないという問題もある。また、電子データとして記憶媒体上に蓄積させる場合であっても、高画質での保存を望めば電子データのファイルサイズも大きくなるなど、記憶するイメージ情報の画質と、その電子データを格納するための記憶領域の容量と、のトレードオフの問題も生じる。
【０００３】
上述の従来技術として、例えば、以下の特許文献１に示されるものがある。
【特許文献１】特開２００２−２３０２０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
背景技術して示した、２つの問題を同時に解決する方法として、文書画像を文字領域、写真画像領域、線画領域、表領域等のオブジェクト毎に分割し、それぞれをベクトル化処理して、電子化される画像データの容量を軽減する方法が挙げられる。この場合、文字、線画、表などの領域はアウトライン化処理によりベクトル化（以下、「アウトラインベクトル化」）することで、データ量を削減し、高画質で再利用可能な電子文書を生成することが可能になる。
【０００５】
このアウトラインベクトル化による電子文書は、２値画像より得られる輪郭線を追跡処理し、得られた輪郭線の曲線部をベジェ曲線等の曲線関数により関数近似することで求められる。ここで、ベジェ曲線等の曲線関数により関数近似をする場合、一般的に輪郭線上の点列と、ベジェ曲線の誤差を求め、曲線の最適化を行う必要があるので、膨大な繰り返し演算が必要となり、多大な処理時間を要することになる。
【０００６】
この処理時間を短縮化する近似計算として、輪郭点間を曲線で補間する方法も考えられているが、輪郭点データに対しそのまま曲線補間を行えば、補間点数の増加を招き、アウトラインベクトル化処理の圧縮効果が薄くなるという問題も生じる。また、直線近似などにより補間点数を減らす処理を行った場合、直線近似のための処理時間の増加を招くことになる。すなわち、アウトラインベクトル化によりデータ量を削減することは可能であるが、そのための近似計算においては、演算量が多くなり多大な演算時間が必要となり、アウトラインベクトル化を行いつつ演算時間の短縮化を図る場合であっても、データ量の軽減効果が十分得られないという問題が生じる。
【０００７】
本発明においては、上記の従来技術における問題点を鑑みて、高速に演算することが可能なベジェ曲線近似化により画像データをアウトライン化する情報処理装置及び情報処理方法、その情報処理方法をコンピュータで実行することが可能なプログラム、プログラムを格納した記録媒体を提供することを目的とするものである。
【課題を解決するための手段】
【０００８】
上記の目的を達成するべく、本発明にかかる２値画像のデータをベジェ曲線を用いてアウトライン化する情報処理装置は、
入力した電子化データから抽出した２値画像の輪郭点列をベジェ曲線で近似できる輪郭の区分に分割し、当該分割した区分の始点及び終点の位置情報を格納手段に格納する曲線分割手段と、
前記分割した輪郭の区分内に属する輪郭点列の内から少なくとも一つの点を、前記分割した区分の始点及び終点を結び特定される第１線分に対する第１距離条件を満たす特徴点として決定し、当該決定した特徴点の位置情報を格納手段に格納する特徴点決定手段と、
前記第１線分に対する第２距離条件を満たし、かつ当該第１線分と平行な第２線分上の位置情報と、前記分割した区分の始点及び終点それぞれに対する接線上の位置情報とをそれぞれ比較して、両位置情報が一致する交点をコントロールポイントとして決定し、当該決定したコントロールポイントの位置情報を格納手段に格納するするコントロールポイント決定手段と、
前記区分の始点及び終点、前記特徴点及び前記コントロールポイントにおける位置情報を前記格納手段より読み出し、前記分割した輪郭の区分を前記ベジェ曲線で近似する近似演算手段と、
を備えることを特徴とする。
【０００９】
あるいは、上記の目的を達成するべく、本発明にかかる２値画像のデータをベジェ曲線を用いてアウトライン化する情報処理方法は、
入力した電子化データから抽出した２値画像の輪郭点列をベジェ曲線で近似できる輪郭の区分に分割し、当該分割した区分の始点及び終点の位置情報を格納手段に格納する曲線分割工程と、
前記分割した輪郭の区分内に属する輪郭点列の内から少なくとも一つの点を、前記分割した区分の始点及び終点を結び特定される第１線分に対する第１距離条件を満たす特徴点として決定し、当該決定した特徴点の位置情報を格納手段に格納する特徴点決定工程と、
前記第１線分に対する第２距離条件を満たし、かつ当該第１線分と平行な第２線分上の位置情報と、前記分割した区分の始点及び終点それぞれに対する接線上の位置情報とをそれぞれ比較して、両位置情報が一致する交点をコントロールポイントとして決定し、当該決定したコントロールポイントの位置情報を格納手段に格納するするコントロールポイント決定工程と、
前記区分の始点及び終点、前記特徴点及び前記コントロールポイントにおける位置情報を前記格納手段より読み出し、前記分割した輪郭の区分を前記ベジェ曲線で近似する近似演算工程と、
を備えることを特徴とする。
【００１０】
あるいは、本発明にかかる情報処理プログラムは、コンピュータで実行するための処理を、上記の情報処理方法により特定することを特徴とする。
【００１１】
あるいは、本発明にかかるコンピュータ可読の記憶媒体は、上記の情報処理プログラムを格納したことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ベジェ曲線により、入力した電子化データから抽出した２値画像の輪郭の近似を高速化することが可能になる。
【００１３】
あるいは、近似したベジェ曲線の精度判定を分割した区分ごとに行うことにより、近似計算の精度を確保することが可能になる。
【発明を実施するための最良の形態】
【００１４】
＜第１実施形態＞
以下、本発明の好適な実施形態を図面を参照しつつ説明する。本発明は汎用のコンピュータシステム上または専用画像処理システム上で、あるいは画像処理用ソフトウェアの形態で、またはデジタル画像処理を含むデバイス・ドライバおよび他のアプリケーションとして実施することができる。
【００１５】
以下、汎用コンピュータシステム上で実行するする情報処理の内容を、図面を参照しつつ説明する。図１は、コンピュータシステム１００のブロック図である。コンピュータシステム１００には、ＲＡＭ１１３，ＣＰＵ１１４，ＲＯＭ１１５、通信装置１１６を含むコンピュータ１０１と、これに接続する入力装置１１０、出力装置１１１、ディスク・ドライブ装置１１７が含まれる。入力装置１１０には、例えばスキャナ、ＣＣＤカメラ、ＣＤ−ＲＯＭドライブ、デジタル・カメラなどが含まれ、少なくとも１つあるいは複数種の機器がコンピュータ１０１と接続することが可能である。入力装置１１０を介して文字情報や画像情報が電子化データとしてコンピュータシステム１０１に入力される。
【００１６】
出力装置１１１には、記録媒体上に文字情報や画像情報を記録して出力するプリンタや、ＣＲＴや液晶ディスプレイなの表示装置に画像情報等を可視化して表示するモニタ等が含まれ。入力装置１１０と同様に少なくとも一つあるいは複数種の機器がコンピュータ１０１に接続することが可能である。
【００１７】
また、コンピュータシステム１００は、コンピュータ１０１に含まれる通信装置１１６を介して、ネットワーク１２０と接続することが可能であり、このネットワーク１２０に接続する外部コンピュータシステム１２３、１２４やファイルサーバ１２１、ネットワークプリンタなどの出力装置１２２とデータの受け渡しが可能である。
【００１８】
ＲＡＭ１１３は、ＣＰＵ１１４による演算処理を実行するためのワークエリアとして利用することが可能であり、ＲＯＭ１１５は、本発明の対象となる、高速に演算することが可能なベジェ曲線近似化により画像データをアウトラインベクトル化する情報処理プログラムを格納することが可能である。入力装置１１０、出力装置１１１、ＲＡＭ１１３、ＣＰＵ１１４、ＲＯＭ１１５、通信装置１１６そしてディスクドライブ１１７はコンピュータシステム１００内のバス１５０を介して接続しており相互にデータの授受が可能である。入力装置１１０から入力された電子化データに対して、ＣＰＵ１１４は情報処理プログラムの処理を適用することができ、その画像処理の結果はディスクドライブ１１７に格納したり、出力装置１１１を介して出力したり、ネットワーク１２０介して配信され、ネットワーク上のファイルサーバ１２１にデータを格納し、コンピュータシステム１２３、１２４間でデータを共有することもできる。更に、ネットワーク１２１を介して配信される画像処理の結果はネットワークに接続する出力装置１２２を介して出力することも可能である。図１３は、分割した区分の始点、終点、特徴点、コントロールの位置情報をディスクドライブ１１７またはＲＡＭ１１３（これらは格納手段として機能する）に格納した状態を示す図である。
【００１９】
ディスクドライブ１１７は、ＲＯＭ１１７と同様に本発明の対象となる、高速に演算することが可能なベジェ曲線近似化により画像データをアウトラインベクトル化する情報処理プログラムを格納することが可能である。また、ディスクドライブ１１７はＲＡＭ１１３と同様にＣＰＵ１１４による演算処理を実行するためのワークエリアとして利用することが可能であり、例えば、後に詳細に説明する曲線分割した始点、終点の位置情報や、特徴点、コントロールポイントの位置情報をそれぞれ格納することが可能であり、ＣＰＵ１１４は、ベジェ曲線による近似処理において、これらの位置情報を順次読み出しながら処理を実行することができる。
【００２０】
また、ネットワーク１２０に接続するコンピュータシステム１２３、１２４やファイルサーバ１２１から電子化データをコンピュータシステム１００に受信し、そのデータに対して、高速に演算することが可能なベジェ曲線近似化により画像データをアウトラインベクトル化する情報処理を適用することも可能である。
【００２１】
次に、コンピュータシステム１００に入力した電子化データの具体的な処理の流れを説明する。図２は、入力した電子化データ（「画像源」ともいう。）に基づき、画像源の輪郭をアウトライン関数近似により表して、ベクトル化する処理の流れを説明するフローチャートである。まず、ステップＳ２００において、ＣＰＵ１１４は、入力した画像源より画像中の文字部、線画部等、アウトライン化処理をする２値画像を抽出する。次に、ステップＳ２０１において、ＣＰＵ１１４は、ステップＳ２００で得られた２値のラスター画像データより輪郭線を抽出する。
【００２２】
ステップＳ２０２において、ＣＰＵ１１４は、先のステップＳ２０１で抽出された輪郭線を平滑化するための処理を実行し、ステップＳ２０３では、ＣＰＵ１１４が輪郭線の中から角点を抽出する。
【００２３】
次に、ステップＳ２０４において、ＣＰＵ１１４は、ステップＳ２０３の処理により抽出した角点間に挟まれた曲線部を関数近似により処理を行い、２値のラスター画像データをアンカーポイントとコントロールポイントから表現されるベクタデータへ変換する。ここで、ステップＳ２０４の関数近似処理ではベジェ関数を用いた近似を行う。この関数近似処理において、２つのアンカーポイント間を結ぶ曲線を構成する点列から、ベジェ曲線を構成する２つのコントロールポイントを導出する際に、導出処理を簡易に行うことで、膨大な演算処理を省き、関数近似処理の高速化が可能になる。ベジェ曲線の導出処理を簡易に行うとは、２つのアンカーポイント（図１２のｐ１，ｐＮ）間を結ぶベジェ曲線を導出する際に、コントロールポイントをアンカーポイントと平行に構成すると仮定を設けることで、２つのアンカーポイント（ｐ１、ｐＮ）と、アンカーポイントにおけるそれぞれの接線ベクトル（ａｂ、ｃｄ）と、曲線上の特徴点１点（例えば、図１２の点ｐＬ）と 合計５つの特徴量からベジェ曲線を導出することができる。一般的に、関数近似処理は、曲線と目標点列の誤差をそれぞれ求め 曲線の最適化を行うという膨大な繰り返し演算処理を必要とするが、本実施形態によれば、曲線を構成する点列から５つの点（２つのアンカーポイントと、２つのコントロールポイントと、１つの特徴点）を抽出するだけで一意にベジェ曲線を導出することが可能である。繰り返し演算処理を行わないことで、演算処理量を大幅に削減し、処理を高速化でき、ソフト処理でも実時間でのアウトライン化処理が可能となる。
【００２４】
次に、図２のフローチャートにおける各ステップの詳細な内容について説明する。図２のステップＳ２００において、ＣＰＵ１１４は入力した電子化データに対してエッジ処理を施し、白黒の２値化画像に変換する。この際、ＣＰＵ１１４は、２値画像に対し認識処理を行い、文字領域や線画領域などに分類し、分類した領域ごとに２値画像を抽出することもできる。また、もともとの入力画像が２値画像であるなら、この処理は行わなくてもよい。
【００２５】
ステップＳ２０１において、ＣＰＵ１１４は２値画像から輪郭線データへの変換を行う。輪郭線抽出手法は、ラスター画像データの１ドットに対し、ドットの中心を１点として輪郭線追跡する手法や、また１ドットの輪郭を４点として輪郭線追跡する手法など種々提案されている。本実施形態では、説明を簡単にするため、特開平０５-１０８８２３号公報にて提案されている輪郭線追跡手法を用いて粗輪郭点列を抽出する手法を適用する。この手法によれば、図４(ａ)の２値画像ラスターデータは、図４(ｂ)のように粗輪郭点が抽出される。抽出された粗輪郭点列（以下、単に「点列」ともいう。）に対し、ステップＳ２０２において、ＣＰＵ１１４は平滑化処理を施す。この平滑化処理では、ノッチ除去処理のような輪郭直線上の凹凸を緩和する処理を施すと共に、斜め方向の輪郭線が形成する階段状の凹凸を緩和する。
【００２６】
次に、処理をステップＳ２０３に進め、ステップＳ２０２において平滑化された輪郭線からＣＰＵ１１４は角点を抽出する。ここで、角点とは、隣接する点列を結ぶベクトルの変化が鋭角となる点である。図４（ｃ）において、点列ａ，ｂからなるベクトルａｂと、点列ｂ、ｃからなるベクトルｂｃとの間でなす角θ１は鋭角であり、ＣＰＵ１１４は角点として抽出するが、図４（ｄ）の場合、ベクトルａｂと、点列ｂ、ｄよりなるベクトルｂｄとのなす角θ２は鈍角となり、この場合、ＣＰＵ１１４は角点として抽出は行わない。例えば、輪郭点列として文字"Ｓ"を想定した場合、図５の５０１〜５０７が角点として求められる。また、角点の抽出において、ＣＰＵ１１４は鋭角か否かの条件の他に連続する点と点との距離がある閾値より大きい場合、その両端の点も角点とすることができる。これは、図形を構成する直線が丸みを帯びてしまうことを防止するためである。
【００２７】
次に、本実施形態における角点間を構成する曲線のベジェ関数近似処理（ステップＳ２０４）について説明する。図３は、角点間の曲線を構成する点列をベジェ関数に置きかえる（近似）処理の流れを説明するフローチャートである。
【００２８】
まず、ステップＳ３０１において、角点間の曲線を平滑化し、次に、ステップＳ３０２において、平滑化した曲線を１つのベジェ曲線で置きかえられる区分曲線に分割する。分割された区分のベジェ曲線毎に関数近似処理を施すことで、角点間の曲線を関数近似処理が施されたベジェ曲線の集合として表現することが可能である。
【００２９】
図１０に近似するベジェ曲線の例を示す（なお、図中の白点は各線分の中点をあらわしている。）。図１０に示すように、ベジェ曲線を定義する４つの点を構成するアンカーポイントＰ０、Ｐ３、コントロールポイントＰ１,Ｐ２のうち、始点Ｐ０、終点Ｐ３を通り、２つのコントロールポイントＰ１、Ｐ２の方向と距離によって決定されるベジェ曲線Ｌ０が描画される。このベジェ曲線Ｌ０は、始点Ｐ０、終点Ｐ３において、それぞれ線分Ｐ０Ｐ１、Ｐ２Ｐ３に接している。このベジェ曲線Ｌ０は、次の３次ベジェ曲線Ｂ（ｔ）によって演算される。
【００３０】
Ｂ(ｔ)＝(１−ｔ)3・Ｐ０＋３(１−ｔ)2・ｔ・Ｐ１
＋３(１−ｔ)・ｔ2・Ｐ２＋ｔ3・Ｐ３    ・・・(１)
（０≦ｔ≦１：ｔは係数パラメータ）
この場合、アンカーポイントＰ０、Ｐ３に基づき、繰り返し演算処理によりコントロールポイントＰ１、Ｐ２を決定して関数近似処理を行うためには、曲線（Ｂ（ｔ））と目標点列の誤差をそれぞれ求め 曲線の最適化を行うという膨大な繰り返し演算処理が必要とする。本実施形態においては、曲線を構成する点列から５つの点を抽出して、一意にベジェ曲線を導出することが可能である。以下、この導出の内容を具体的に説明する。近似するベジェ曲線は、コントロールポイントを結ぶ線分Ｐ１Ｐ２とアンカーポイントを結ぶ線分Ｐ０Ｐ３とが平行となるように配置するものとする。線分Ｐ１Ｐ２と線分Ｐ０Ｐ３が平行であるという仮定した場合、線分Ｐ０Ｐ３から最も距離が離れた曲線上の点Ｐｆと線分Ｐ０Ｐ３との距離をＤｆ（第１距離条件）とし、線分Ｐ０Ｐ３と線分Ｐ１Ｐ２との距離をＤｃ（第２距離条件）とすると（図１０を参照）、（２）式の関係が成り立つ。
【００３１】
Ｄｃ = (４／３)×Ｄｆ        ・・・（２）
（２）式を用いることにより、線分Ｐ０Ｐ３と距離Ｄｃだけ離れた線分上の位置にコントロールポイントＰ１、Ｐ２を定めることができることになる。この処理はＣＰＵ１１４が実行するものであり、図３におけるフローチャートに従って具体的な処理が実行される。まず、ステップＳ３０１の曲線部平滑化処理では、角点間の曲線を構成する点列を平滑化する。具体的には、角点を除いた曲線を構成する点列のみをスムージングフィルタなどを使用することで平滑化し、滑らかな曲線を描く点列を作成する。図３のステップＳ３０１における曲線部平滑化処理は、図２のステップＳ２０２における平滑化処理で充分に点列のノイズが除去されるように平滑化処理が行われていれば、この処理は必ずしも行わなくてよい。
【００３２】
ステップＳ３０２の曲線分割処理では、一つのベジェ曲線で点列を近似（置きかえ）できる単位で輪郭点列により構成される曲線を分割（曲線分割）する。この曲線分割の例を具体的に示す図６Ａと、曲線分割の処理流れを説明するフローチャート図６Ｂを用いて説明する。
【００３３】
図６Ａの（ａ）は、角点ａ１から角点ａｎを含む曲線を構成している点列ａ０，ａ１,ａ２,・・・ａｎ＋１・・・を示している。まず、図６ＢのステップＳ６０１において、カウンタ（ｉ）を初期化して、ステップＳ６０２において、ＣＰＵ１１４は、点ａ１を始点してａ２を終点とするベクトルをｖ１、点ａ２を始点とするベクトルをｖ２とし、以下同様に各点間のベクトルをそれぞれｖ１,ｖ２,…,ｖＮとして演算する。ここで求めたベクトル（Ｖｉ）の始点と終点の位置情報は、以下のステップの実行のため、一時的にＲＡＭ１１３に格納またはディスクドライブ１１７し、必要に応じて順次ＣＰＵ１１４が読み出すように構成することができる。
【００３４】
ステップＳ６０３において、ＣＰＵ１１４は点ａ１を始点としたベクトルｖ１と、他のベクトル（ｖｉ（ｉ＝２,…,ｖＮ）との成す角θｉを演算し、この角度（θｉ）と閾値角θｔｈとを比較する。ここで、閾値角θｔｈは、予めＲＯＭ１１５に格納しておくことも可能であり、また、ユーザが入力装置１１０を介して設定した値をＲＡＭ１１３またはディスクドライブ１１７に格納しておくことも可能である。ＣＰＵ１１４は、角度の比較計算の際、ＲＡＭ１１３またはＲＯＭ１１５から閾値角θｔｈを読み出して、計算により求めた角度θｉと比較する。
【００３５】
この角度の比較において、演算により求められた角度（θｉ）が閾値角θｔｈより小さい場合、次のベクトルを比較の対象として（Ｓ６０５）、再び処理をステップＳ６０３に戻し、ＣＰＵ１１４はベクトルｖ１と次のベクトル（ｖｉ）とがなす角度θｉを演算して閾値角θｔｈとの比較を行う。一方、角度θｉが閾値角θｔｈ以上となった場合、処理をステップＳ６０４に進めて、例えば、ｉ＝ｎの場合、ＣＰＵ１１４は、ベクトルｖｎの端点ａｎを曲線分割の終点（端点）と設定する。
【００３６】
また、端点の決定に関しては、図６Ｂのフローチャートで説明した閾値角を基準とする方法に限定するものではなく、例えば、ＣＰＵ１１４が連続するベクトルの外積を求め（ｖ１×ｖ２、ｖ２×ｖ３、・・・ｖｎ-１×ｖｎ、・・・）、その符号が変化するベクトルの終点を曲線分割する区分の端点としてもよい。この場合、ＣＰＵ１１４は、各ベクトルの外積演算の結果をＲＡＭ１１３またはディスクドライブ１１７に格納し、演算結果を参照しながら符号の変化を計算することができる。図６Ａの（ｂ）は、連続するベクトルの外積計算結果を示す図であり、図６Ａ（ｂ）の６０１により示される点は、接線６０２との傾きがゼロとなり符合が変化する点である。連続するベクトルの外積を求め、その符号の変化から分割する曲線の端点（該当するベクトルの終点）を求めることができる。
【００３７】
以上の処理による始点と終点から定められる区分の輪郭曲線ａ１ａｎは一つのベジェ曲線により近似することが可能である。
【００３８】
次に、先の区分において端点として求められた点ａｎを新たな始点とし、最終的なベクトルｖＮ-１の終点ａＮを含む区分がベジェ曲線で近似されるまで同様の処理を繰り返す。以上の処理により、角点間の曲線点列をベジェ関数で近似する区分曲線に分割することができる。
【００３９】
尚、区分曲線の分割は、上記の手法だけではなく他にも種々の方法が適用できる。例えばベクトルの傾きを調べ、傾きがある閾値角度の倍数となる場合に、その端点を終点とするように区分を定めてもよい。１つのベジェ関数で近似しうる区分に分割できればよく、いずれの方法によるかということは、本発明にかかる本実施形態の趣旨を限定するものではない。以上の処理により求められた各区分曲線の始点と終点の位置情報は、図１３に示すように、格納手段に格納される。
【００４０】
次に、ＣＰＵ１１４が実行する分割した区分曲線を簡易にベジェ曲線で近似する処理を図７、図８，図１１Ａ，Ｂを参照しつつ説明する。図７は区分曲線ｐ１ｐＮ，ｐＮｐＭ，ｐＭｐＱ，・・を示す図であり、図８は、分割した一つの区分曲線（ｐ１ｐＮ）を表している。図８において、区分曲線上のＮ個の点をｐ１,ｐ２,…ｐＮとする。このとき、区分曲線の始点はｐ１、終点はｐＮであり、これらの点は上述の説明により区分曲線の分割により求められる始点と終点（端点）である（図１１ＡのステップＳ１１１０）。これらの点はベジェ曲線のアンカーポイントとなる。
【００４１】
次に、ＣＰＵ１１４は、各アンカーポイントｐ１、ｐＮにおける接線成分を抽出する（図１１ＡのステップＳ１１２０）。接線成分はｐ１、ｐＮにおける近傍点から求められ（例えば、図１２のアンカーポイントｐ１に対する近傍点ａまたはｂにより定められる方向）、この接線成分は、図３におけるステップＳ３０３で、関数近似を行う際、区分の分割と併せて行うことも可能である。
【００４２】
ＣＰＵ１１４は、（２）式で与えられる第２距離条件を満たし、アンカーポイント（図１０のＰ１、Ｐ２）を結ぶ線分上の点の位置情報と、接線上の点の位置情報とを比較して、両者の位置情報が一致する交点をベジェ曲線のコントロールポイント（Ｃ１、Ｃ２）として決定することで、始点（ｐ１）、終点（ｐＮ）を通り、それぞれの接線１１１０,１１２０に接するベジェ曲線を（１）式の関係により求めることができる。
【００４３】
ここで、具体的に２つのコントロールポイント（Ｃ１、Ｃ２）を決定するために、ＣＰＵ１１４は、ステップＳ１１３０の処理により１つの特徴点を求める。すなわち、ステップＳ１１３０において、始点（ｐ１）と終点（ｐＮ）を結ぶ線分ｐ１ｐＮより最も距離の離れている曲線上の点ｐＬを特徴点として求め、ＣＰＵ１１４は線分ｐ１ｐＮと特徴点ｐＬとの距離Ｄｆを決定する（Ｓ１１４０）。
【００４４】
尚、ステップＳ１１３０の処理は、線分ｐ１ｐＮとの関係で、一つの特徴点の他その近傍の複数の点を含むように特徴点群を決定するようにしてもよい。ここで求めた特徴点群の位置情報は、ＣＰＵ１１４によりＲＡＭ１１３ディスクドライブ１１７に格納され、後の各処理ステップの進行に応じて読み出しが可能である。図１３は１つの区分内に１つの特徴点の位置情報を格納した例を示している。
【００４５】
図１１Ｂは、ＣＰＵ１１４が距離Ｄｆ（（２）式を参照）を決定するための処理の流れを説明するフローチャートである。まず、ステップＳ１１３１、Ｓ１１３２において、パラメータ（Ｄｍａｘ，ｉ）の初期化処理をそれぞれ行い、ステップＳ１１３３において、ＣＰＵ１１４は線分ｐ１ｐＮと点ｐｉとの距離Ｄｉの計算を行う。この際、ＣＰＵ１１４は、線分ｐ１ｐＮと距離計算の対象となる点ｐｉの位置座標に基づいて、距離Ｄｉの計算を行うことができる。ステップＳ１１３４において、先のステップＳ１１３３で計算により求めた距離Ｄｉと、距離の最大値を示すパラメータＤｍａｘとを比較し、計算して求めた距離ＤｉがＤｍａｘより大きい場合は、ステップＳ１１３５においてパラメータＤｍａｘの値を更新する（Ｓ１１３５）。ステップＳ１１３４の判断で、計算して求めた距離ＤｉがＤｍａｘより大きくない場合（Ｓ１１３４-Ｎｏ）、Ｄｍａｘの値を更新しないで、処理をステップＳ１１３６に進める。ここで、Ｄｍａｘの値はＲＡＭ１１３またはディスクドライブ１１７に格納され、ＣＰＵ１１４の演算処理において読み出しが可能である。
【００４６】
ステップＳ１１３６において、ＣＰＵ１１４は、分割した区分内の点全てに対して、距離の計算が行われているか否か判断し、全ての点に対して距離計算が行われていない場合（Ｓ１１３６-Ｎｏ）、処理をステップＳ１１３７に進め、カウンタ（ｉ）を加算して、処理をステップＳ１１３３に進め、再び線分ｐ１ｐＮとの距離を計算する以降の処理を実行する。
【００４７】
ステップＳ１１３６の判断において、区分内の全ての点に対して距離計算が完了している場合（Ｓ１１３６-Ｙｅｓ）、処理をステップＳ１１３８に進め、線分ｐ１ｐＮと最大の距離を与える点ｐＬとの距離Ｄｆ（Ｄｆ＝Ｄｍａｘとして）を決定する。
【００４８】
以上の処理により距離Ｄｆは具体的に決定される。説明を図１１Ａに戻してステップＳ１１５０以降の処理を説明する。
【００４９】
本実施形態では、ベジェ関数による近似処理を簡易に行うため、コントロールポイントを結ぶ線分Ｃ１Ｃ２（図８）がアンカーポイントを結ぶ線分ｐ１ｐＮに対して平行になるように近似しているので、ＣＰＵ１１４は（２）式の関係により、線分ｐ１ｐＮに対して、距離Ｄｃ＝(４／３)×Ｄｆとなるように線分を求め、この線分と各アンカーポイントの接線との交点をコントロールポイントＣ１、Ｃ２として演算することができる（Ｓ１１５０）。
【００５０】
４つの点、アンカーポイントｐ１、ｐＮ、コントロールポイントＣ１,Ｃ２の位置情報は図１３に示すように格納手段に格納され、ベジェ曲線の近似計算において、これらの値が読み出され近似計算が実行される。この近似計算により、始点ｐ１、終点ｐＮを通り、２つのコントロールポイントＣ１、Ｃ２の方向と距離（Ｄｆ）によって決定されるベジェ曲線が（１）式により求められる（Ｓ１１６０）。
【００５１】
以上のように、区分曲線を３次ベジェ関数により近似する際に、区分曲線上の特徴となる一点を区分の始点と終点を結ぶ線分より距離が最大となる点として抽出し、この特徴点よりベジェ曲線を決定するためのコントロールポイント（Ｃ１、Ｃ２）を一意に決定することで、演算処理量を大幅に減少することができる。本実施形態における処理は膨大な輪郭データをベジェ曲線で近似する際、高速に近似処理を実行しようとした場合に非常に有効である。
【００５２】
＜第２実施形態＞
先の第１実施形態では、５つの点（２つのアンカーポイント、２つのコントロールポイント、１つの特徴点）に基づいてベジェ関数による近似処理を行う内容を説明したが、例えば、図３のステップＳ３０２において実行した曲線分割の精度によっては、区分曲線の点列に対して近似の精度が悪くなる場合もある。そのような場合には、関数近似が良好に行われているか判断し、その結果に基づいて再度関数近似を行うことで関数近似における精度を向上させることができる。
【００５３】
図９は第２実施形態の処理を説明する図である。点線で表した区分曲線の点列Ｌｄに対し、線分Ｐ０Ｐ３との距離が最大となる特徴点Ｐｄ（距離をＤｄとする）を用いて区分曲線Ｌｄをベジェ関数により近似して曲線Ｌ０’が求められたとする。ここで、曲線Ｌ０’を求める処理は第１実施形態における処理と同様であるので、ここでは説明を省略する。
【００５４】
ＣＰＵ１１４は、関数の近似による曲線Ｌ０’上の点Ｐｆ（線分Ｐ０Ｐ３と最大の距離を与える近似曲線上の点）と、区分曲線上の特徴点Ｐｄとの比較を行い、両者の位置座標の差分（Δｘ、Δｙ（＝Ｄｄ-Ｄｆ））が許容閾値座標（Δｘａｌｗ、Δｙａｌｗ）の範囲内に入る場合、ＣＰＵ１１４は曲線の関数近似は良好に行われたと判断し、分割した区分及び区分曲線を近似した関数を確定する。
【００５５】
一方、位置座標の差分（Δｘ、Δｙ（＝Ｄｄ-Ｄｆ））が許容閾値座標（Δｘａｌｗ、Δｙａｌｗ）より大きい場合、ＣＰＵ１１４は、最初の区分の分割に基づく関数近似は誤差が大きく、本来の区分曲線を描いていない可能性が高いと判断する。この際、分割した区分を更に再分割するために、ＣＰＵ１１４は、点ｐｄを新たなアンカーポイントとして設定し、最初に分割した区分Ｐ０〜Ｐ３の範囲を、Ｐ０〜ＰｄとＰｄ〜Ｐ３の２つの区分に分割し、それぞれの区分曲線に対して、第１実施形態で説明した内容に従って、関数近似処理を行う。新たなアンカーポイントを加えて区分の再分割を補間することにより関数の近似精度を高めることが可能になる。
【００５６】
ＣＰＵ１１４は、区分の再分割後、更に、位置座標の差分と許容範囲との比較を行い、許容範囲内に位置座標の差分が入らない場合は、更に、区分の分割を繰り返して、曲線近似の誤差が許容範囲に入るように区分の分割を修正することができる。本実施形態によれば、近似したベジェ曲線の精度判定を分割した区分ごとに行うことにより、近似計算の精度を確保することが可能になる。
【００５７】
＜第３実施形態＞
先の第１実施形態では、５つの点（２つのアンカーポイント、２つのコントロールポイント、１つの特徴点）に基づいてベジェ関数による近似処理を行う内容を説明したが、例えば、ステップＳ１１３０の処理において、線分ｐ１ｐＮとの関係で、一つの特徴点の他その近傍の複数の点に関して、ＲＡＭ１１３またはディスクドライブ１１７に格納されている複数の特徴点をＣＰＵ１１４が順次読み出し、各点に基づくベジェ曲線を求め、曲線分割した輪郭点列に最も適合する（例えば、対応する点の位置誤差が最小となる条件を満たす）近似曲線を決定するようにしてもよい。
【００５８】
＜他の実施形態＞
なお、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００５９】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６０】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００６１】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６２】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００６３】
【図１】実施形態にかかるコンピュータシステム１００のブロック図である。
【図２】入力した電子化データに基づき、画像源の輪郭をアウトライン関数近似により表して、ベクトル化する処理の流れを説明するフローチャートである。
【図３】角点間の曲線を構成する点列をベジェ関数に置きかえる処理の流れを説明するフローチャートである。
【図４】(ａ)は２値画像ラスターデータの例を示し、（ｂ）は抽出した輪郭点を示す図である。
【図５】輪郭点列として文字"Ｓ"を想定した場合の例を示す図である。
【図６Ａ】曲線分割の例を具体的に示す図である。
【図６Ｂ】曲線分割の処理流れを説明するフローチャートである。
【図７】区分曲線ｐ１ｐＮ，ｐＮｐＭ，ｐＭｐＱ，・・を示す図である。
【図８】ＣＰＵ１１４が実行する分割した区分曲線を簡易にベジェ曲線で近似する処理を説明する図である。
【図９】第２実施形態の処理を説明する図である。
【図１０】区分曲線を近似するベジェ曲線の例を示す図である。
【図１１Ａ】ＣＰＵ１１４が実行する分割した区分曲線を簡易にベジェ曲線で近似する処理の流れを説明するフローチャートである。
【図１１Ｂ】アンカーポイントに基づく線分に対して、最大距離（Ｄｆ）を求めるための処理の流れを説明するフローチャートである。
【図１２】ベジェ曲線の導出処理を簡易に行うために設定する特徴点を説明する図である。
【図１３】分割した区分の始点、終点、特徴点、コントロールの位置情報を格納手段に格納した状態を示す図である。
【図１】
2005310070.tif 000003
【図２】
2005310070.tif 000004
【図３】
2005310070.tif 000005
【図４】
2005310070.tif 000006
【図５】
2005310070.tif 000007
【図６Ａ】
2005310070.tif 000008
【図６Ｂ】
2005310070.tif 000009
【図７】
2005310070.tif 000010
【図８】
2005310070.tif 000011
【図９】
2005310070.tif 000012
【図１０】
2005310070.tif 000013
【図１１Ａ】
2005310070.tif 000014
【図１１Ｂ】
2005310070.tif 000015
【図１２】
2005310070.tif 000016
【図１３】
2005310070.tif 000017