(57)【要約】【課題】  入力された文字、図形等のオブジェクトに対して、高速に処理し、かつ少ないポイント数で高画質なアウトラインを作成する。【解決手段】  画像データを入力（３０１）し、入力された画像データを２値化（３０２）し、２値化された画像データから画像の輪郭を抽出し、その輪郭より水平及び垂直方向の接点を推定し、推定された接点に対して隣接する接点間の輪郭を所定の関数で近似する（３０６、３０７）【選択図】      図３
2005346137.tif 000002
【特許請求の範囲】
【請求項１】
画像データを入力する入力工程と、
入力された画像データを２値化する２値化工程と、
２値化された画像データから画像の輪郭を抽出する輪郭抽出工程と、
抽出された輪郭より水平及び垂直方向の接点を推定する接点推定工程と、
推定された接点に対して隣接する接点間の輪郭を所定の関数で近似する関数近似工程とを有することを特徴とする関数化処理方法。
【請求項２】
前記輪郭抽出工程では、前記画像の１画素を４点からなる正方形として扱い、該周囲を追跡するように輪郭線を抽出することで、垂直及び水平ベクトルからなる前記画像の輪郭を抽出することを特徴とする請求項１記載の関数化処理方法。
【請求項３】
前記接点推定工程では、前記水平及び垂直方向の直線パターンをパターンマッチングによって検出し、検出された直線パターンと近傍の輪郭画素との相対位置関係によって推定することを特徴とする請求項１記載の関数化処理方法。
【請求項４】
前記関数近似工程は、
前記接点間の輪郭線分数が予め定めた閾値よりも小さい接点間の輪郭線分郡に対して、接点間の相対位置関係により接点間を一つの二次ベジェ曲線、一つの三次ベジェ曲線、或いは直線をあてはめる第１の近似処理と、
前記接点間の輪郭線分数が予め定めた閾値よりも大きい接点間の輪郭線分郡に対して、一つ或いは複数の三次ベジェ曲線により曲線をあてはめる第２の近似処理とを有することを特徴とする請求項１記載の関数化処理方法。
【請求項５】
前記第１の近似処理は、前記接点推定工程における水平及び垂直方向の直線パターンのパターン推定結果に応じて、二次ベジェ曲線、三次ベジェ曲線、或いは直線の何れか１つをあてはめて近似することを特徴とする請求項４記載の関数化処理方法。
【請求項６】
前記第２の近似処理は、輪郭線分郡に対して１つ或いは複数の三次ベジェ曲線をあてはめる処理で、該三次ベジェ曲線はアンカーポイント間を結ぶ直線とコントロールポイント間を結ぶ直線とが平行であることを特徴とする請求項４記載の関数化処理方法。
【請求項７】
曲線を構成する点列に対して三次ベジェ曲線をあてはめる関数近似処理装置であって、
点列より一つの弧を描く点列を抽出する曲線分割手段と、
抽出された点列に対して、三次ベジェ曲線の２つのアンカーポイントを結ぶ直線と２つのコントロールポイントを結ぶ直線が平行となるように三次ベジェ曲線をあてはめる近似手段とを有することを特徴とする関数近似処理装置。
【請求項８】
前記曲線分割手段は、分割点における曲線の接線成分を抽出する手段を有し、
前記近似手段は、前記曲線分割手段により抽出された分割点列に対して点列中の特徴点１点を抽出する特徴点抽出手段を有し、分割曲線上の特徴点１点と分割点２点と、各分割点における接線成分とを用いて三次ベジェ曲線で近似することを特徴とする請求項７記載の関数近似処理装置。
【請求項９】
前記特徴点抽出手段は、分割曲線上の点列よりアンカーポイント間を結ぶ直線より最も離れた点を抽出することを特徴とする請求項８記載の関数近似処理装置。
【請求項１０】
前記近似手段は、近似曲線上の特徴点を抽出する手段を有し、該特徴点と前記特徴点抽出手段より得られる特徴点とを比較し、誤差が大きければ前記特徴点抽出手段より得られる特徴点を新たなアンカーポイントとし、曲線分割する手段とを有することを特徴とする請求項７記載の関数近似処理装置。
【請求項１１】
画像データを入力する入力工程と、
入力された画像データを２値化する２値化工程と、
２値化された画像データから画像の輪郭を抽出する輪郭抽出工程と、
抽出された輪郭に基づき、閉曲線で囲まれる領域を検出し、その領域の大きさを求める工程と、
前記領域毎に輪郭線を関数化する際に、前記関数化のためのパラメータを領域の大きさに従って定義する工程と、
定義されたパラメータに応じて対象領域の輪郭画素を関数化する工程とを有することを特徴とする関数化処理方法。
【請求項１２】
画像データを入力し、入力された画像データを２値化して２値化された画像の輪郭画素を生成し、生成された輪郭画素の形状を所定の関数で近似し、近似した結果を予め決められた形状記述言語形式として出力することを特徴とする画像処理装置。
【請求項１３】
ラスター画像データを像域分離し文字領域を抽出し、領域内の文字を文字毎に切り出す手段と、
切り出した文字を直線と曲線よりなるアウトラインへ変換するアウトライン変換手段と、
近似した結果を予め決められた形状記述言語形式として出力する手段とを有することを特徴とする画像処理装置。
【請求項１４】
前記文字切り出し手段は、文字のサイズ情報を検出する文字サイズ検出手段を有し、
前記文字サイズ検出手段により検出される文字のサイズ情報に応じて前記アウトライン変換手段を変更、或いはアウトラインへ変換するパラメータを変更する手段を有することを特徴とする請求項１３記載の画像処理装置。
【請求項１５】
ラスター画像データを像域分離して文字領域を抽出する文字領域抽出手段と、
前記文字領域抽出手段によって抽出された文字領域内文字の文字サイズ情報を抽出する手段と、
前記文字領域内の文字オブジェクトを直線と曲線よりなるアウトラインへ変換する手段と、
近似した結果を予め決められた形状記述言語形式として出力する手段とを有し、
前記文字サイズ情報抽出手段によって抽出された文字サイズ情報に応じて前記文字オブジェクトのアウトライン変換パラメータを変更することを特徴とする画像処理装置。
【請求項１６】
請求項１又は請求項１１記載の関数化処理方法の各手順をコンピュータに実行させるためのプログラム。
【請求項１７】
前記関数近似工程は、
前記接点間の輪郭線分数が予め定めた閾値よりも小さい接点間の輪郭線分郡に対して、接点間の相対位置関係により近似処理を行うことを特徴とする請求項１記載の関数化処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャナ等の画像読取装置より読み込まれた紙文書のオブジェクトに対してアウトライン化を行う方法に関し、特にオブジェクトのアウトラインを直線、及びベジェ曲線により近似する方法に関する。
【背景技術】
【０００２】
近年、情報の電子化が進み、文書を紙ではなく電子化して保存或いは送信するシステムが急速に普及している。特に、フルカラーの文書を保存、送信に適した電子データとしては、紙原稿を文字、表、図等のオブジェクトへ像域分離し、各オブジェクトに適した形態でデータ化したベクトルデータが適しており、データ量を削減できるだけでなく再利用性が高い。
【０００３】
ここで、文字、表、線等のオブジェクトは、オブジェクトの外形をアウトライン化し、直線及び曲線により表現された形態へ変換することにより、各オブジェクトのデータ量を軽減できるだけでなく、文字は解像度に依存しない高画質な電子データへ、また表、線等の図形要素は、要素毎の編集が簡便な電子データへ変換することができる。
【０００４】
ところで、上述したような直線及び曲線への変換処理にあっては、今まで多くの方法が検討されている。それらの方法の多くは、まず輪郭線を表す点列を各セグメントへ分割し、次に各セグメントを曲線或いは直線へ変換する方法が採用されている。
【０００５】
例えば、輪郭線を一旦直線近似し、直線の組み合わせとして表現し、分割後、Ｂスプライン曲線、ベジェ曲線等で補間処理し、直線を滑らかな曲線に置き換える、という方法がある。直線近似処理には、区分分割手法が一般的な方法として挙げられているが、他にも例えば、非特許文献１、２に記載された方法がある。
【０００６】
また、輪郭線を分割する方法については、細かなショートベクトルで表現された輪郭線に対し、注目点からの角度に基づいて輪郭線を分割する方法（例えば、特許文献１参照）が開示されている。尚、ここでの補間方法としては、非特許文献３が紹介されている。
【０００７】
また、点列における曲線の接線方向の角度変化に着目し、曲線を分割し曲線を分割する点列を生成し、近似処理では連続する３点よりその３点位置における比率を求め、２つの曲線を決定する簡易的な方法（例えば、特許文献２参照）が提案されている。
【０００８】
また、補間方法として、有理型二次ベジェ曲線を用いる方法（例えば、特許文献３参照）が提案されている。尚、分割方法については記載されていない。
【０００９】
一方、曲線近似処理に着目すると、分割された点列に対して非線形計画法を用いて近似を行う方法（例えば、特許文献４参照）が提案されている。
【００１０】
また、任意に分割された点列に対してDP（Dynamic Programming）を用いて複数の関数を用いて近似する方法（例えば、非特許文献４参照）が提案されている。
【特許文献１】特開平３−４８３７５号公報
【特許文献２】特開平８−１５３１９１号公報
【特許文献３】特開平６−２８２６５８号公報
【特許文献４】特開平７−８５１１０号公報
【非特許文献１】平曲面の最適折線近似（佐藤  電子通信学会論文誌'82/9Vol.J65-D No9）
【非特許文献２】“Space-Efficient Outlines from Image Data via Vertex Minimization and Grid Constrains”,Graphical Models and Image Processing Vol.59 No.2,pp.73-88（1997）
【非特許文献３】Wolfgang BOHM：A survey of corve and surface and Geometric Design 1,1984
【非特許文献４】関数化図形表現を用いた紙文書のデジタル化（森浩一  和田耕一  寅市和男  情報処理学会研究報告Vol.99,No.57,pp17-23）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上記従来の方法を用いてアウトラインを作成することは可能であるが、ラスター画像より得られるオブジェクト全てに対し、適応的にかつ高速に処理を行う場合には種々問題が生じる。例えば、直線近似処理を用いて曲線分割を行う場合、直線近似処理は直線と点列との誤差を求め最適化するため、より精度を求めれば繰り返し演算による処理量の増加が問題となる。
【００１２】
また同様に、点列に対して曲線を用いて近似すれば、曲線と点列の誤差を求めて最適化するため、処理量の増加を招く。一方、繰り返し演算を必要としない点列間の角度を用いて簡易に分割する方法では、その簡易さより小さな輪郭線から大きな輪郭線に対応するのが困難である。また、ノイズ等の影響を受け易く、最適な分割を実現するためには分割前の曲線を構成する点列（ショートベクトル）を求める処理が重要となるが、この方法については開示されていない。
【００１３】
また、曲線近似処理でアンカーポイント間の特徴点一点を求め、３点間の距離の比率より簡易にかつ最適な曲線を求める方法も提案されているが、特徴点を新たなアンカーポイントとし、両端のアンカーポイント２つを含む３点より２つの曲線を求める処理であるため、曲線及び点の増加を招いてしまうという問題がある。
【００１４】
また、全ての従来方法における問題として、アウトラインを一律に評価しているため、アウトラインの大きさが大きくなれば点の増加を招き、アウトラインが極端に小さくなれば近似精度の劣化を招いてしまう。尚、それら問題への対処は開示されていない。
【００１５】
従って、上記従来の方法では、曲線近似においては、近似処理が重くなるという第一の課題があり、一方それを解決するような簡易な近似処理では精度が保証されないもしくはデータ量の削減が図れないという第二の課題がある。
【００１６】
また、全ての方法において、アウトラインを一律に評価しているためにアウトライン化する対象オブジェクトの大きさに対して精度が保証されず、大きさの変化に柔軟に対処できないという第三の課題がある。
【００１７】
本発明は、上記課題を解決するためになされたもので、入力された文字、図形等のオブジェクトに対して、高速に処理し、かつ少ないポイント数で高画質なアウトラインを作成することを目的とする。
【課題を解決するための手段】
【００１８】
本発明の関数化処理方法は、画像データを入力する入力工程と、入力された画像データを２値化する２値化工程と、２値化された画像データから画像の輪郭を抽出する輪郭抽出工程と、抽出された輪郭より水平及び垂直方向の接点を推定する接点推定工程と、推定された接点に対して隣接する接点間の輪郭を所定の関数で近似する関数近似工程とを有することを特徴とする。
【００１９】
また、本発明は、曲線を構成する点列に対して三次ベジェ曲線をあてはめる関数近似処理装置であって、点列より一つの弧を描く点列を抽出する曲線分割手段と、抽出された点列に対して、三次ベジェ曲線の２つのアンカーポイントを結ぶ直線と２つのコントロールポイントを結ぶ直線が平行となるように三次ベジェ曲線をあてはめる近似手段とを有することを特徴とする。
【００２０】
更に、本発明の関数化処理方法は、画像データを入力する入力工程と、入力された画像データを２値化する２値化工程と、２値化された画像データから画像の輪郭を抽出する輪郭抽出工程と、抽出された輪郭に基づき、閉曲線で囲まれる領域を検出し、その領域の大きさを求める工程と、前記領域毎に輪郭線を関数化する際に、前記関数化のためのパラメータを領域の大きさに従って定義する工程と、定義されたパラメータに応じて対象領域の輪郭画素を関数化する工程とを有することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、入力された文字、図形等のオブジェクトに対して、高速に処理し、かつ少ないポイント数で高画質なアウトラインを作成することができる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【実施例１】
【００２３】
図１は、実施例１における文書処理装置の概観を示す図である。図１において、１０１はコンピュータ装置であり、後述するフローチャートを参照して説明する処理を実現するためのプログラムを含む、文書の電子化処理プログラムを実行する。また、コンピュータ装置１０１は、ユーザに状況や画像を表示するためのディスプレイ装置１０２と、ユーザの操作を受け付けるキーボードやマウス等のポインティングデバイスを含んで構成される入力装置１０３とを付随する。このディスプレイ装置１０２としては、ＣＲＴやＬＣＤ等が用いられる。１０４はスキャナ装置であり、文書画像を光学的に読み取って電子化し、得られた画像データをコンピュータ装置１０１に送る。尚、スキャナ装置１０４としては、カラースキャナを用いるものとする。
【００２４】
図２は、実施例１における文書処理装置の構成を示すブロック図である。図２において、２０１はＣＰＵであり、後述するＲＯＭ又はＲＡＭに格納された制御プログラムを実行することにより、後述する電子化処理を含む各種機能を実現する。２０２はＲＯＭであり、ＣＰＵ２０１によって実行される各種制御プログラムや制御データが格納されている。２０３はＲＡＭであり、ＣＰＵ２０１によって実行される各種制御プログラムを格納したり、ＣＰＵ２０１が各種処理を実行するのに必要な作業領域が定義されている。
【００２５】
２０４は外部記憶装置であり、詳細は後述する実施例１における処理をＣＰＵ１０１によって実現するための制御プログラムや、スキャナ装置１０４で読み取って得られた文書画像データ等を格納する。そして、２０５はコンピュータバスであり、上述した各構成を接続するものである。
【００２６】
図３は、文書処理装置における文書の電子化処理の概要を示す図である。ここで、電子化処理の流れは、まず入力部３０１において、電子化の対象とするカラー文書をスキャナ装置１０４を用いて読み込み、文書を画像データとして外部記憶装置２０４に格納する。次に、２値化処理３０２において、後段の像域分離処理、アウトライン生成処理のために、外部記憶装置２０４に格納された文書画像データに対して２値化処理を施す。そして、像域分離処理３０３では、２値化処理３０２で得られた２値画像から、文字、図、表、枠、線などの要素を抽出し、各領域に分割する。
【００２７】
次に、ベクトル化処理３０４において、領域分割された画像データに対して、文字部は文字認識部３０５で文字認識を行い、アウトライン作成部３０６でアウトラインベクトルデータへ変換する。また、表、枠、線部等は、アウトライン作成部３０７でアウトラインデータ化する。また、アウトライン作成部３０６及び３０７で変換された画像データは、各オブジェクトの輪郭線が滑らかな曲線により表現される高画質で、解像度に依存しない、かつ編集容易なベクトルデータへ変換される。
【００２８】
一方、その他の図、写真画、背景については、例えば背景については、圧縮部３０８でＪＰＥＧ圧縮など各々に適した形態で保持、圧縮する。
【００２９】
次に、電子文書作成処理３０９は、分割された要素毎の属性に基づいて文字認識データや表構造データを用い、それぞれ変換された画像情報から電子化文書を作成する。そして、出力部３１０は生成された電子化文書を外部記憶装置２０４に格納する。
【００３０】
尚、出力部３１０の出力形態は外部記憶装置２０４への格納に限られるものではなく、ディスプレイ装置１０２へ表示したり、不図示のネットワークインターフェースを介してネットワーク上の他の装置へ出力したり、不図示のプリンタへ送出したりすることも可能である。
【００３１】
［２値化処理］
２値化処理３０２では、入力された文書画像データより輝度情報を抽出し、その輝度値のヒストグラムを作成する。ヒストグラム上より複数の閾値を設定し、各々の閾値で２値化された２値画像上の黒画素の連結等を解析することで最適な閾値を導出し、その閾値による２値画像を得る。
【００３２】
［像域分離処理］
像域分離処理３０３とは、図４に示す左側の読み取られた１ページのイメージデータをオブジェクト毎の塊（ブロック）として認識し、各々の塊を文字／図画／写真／線／表等の属性に判定し、図４に示す右側のように、異なる属性（TEXT／PICTURE／PHOTE／LINE／TABLE）を持つ領域に分割する処理である。
【００３３】
像域分離処理３０３では、２値化処理３０２で得られた２値画像より、黒画素の輪郭線追跡を行って黒画素輪郭で囲まれる画素の塊を抽出する。また、面積の大きい黒画素の塊については、内部にある白画素に対しても輪郭線追跡を行い、白画素の塊を抽出し、更に一定面積以上の白画素の塊の内部からは再帰的に黒画素の塊を抽出する。
【００３４】
このようにして得られた黒画素の塊を、大きさ及び形状で分類し、異なる属性を持つ領域へ分類していく。例えば、縦横比が１に近く、大きさが一定の範囲のものを文字相当の画素塊とし、更に近接する文字が整列良くグループ化可能な部分を文字領域、扁平な画素塊を線領域、一定の大きさ以上で、かつ四角系の白画素塊を整列よく内包する黒画素塊の占める範囲を表領域、不定形の画素塊が散在している領域を写真領域、それ以外の任意形状の画素塊を図画領域、などとする。
【００３５】
図５は、像域分離処理３０３で分離された各ブロックに対するブロック情報と入力ファイル情報を示す図である。図５に示すように、ブロック情報は、各ブロックの属性、座標（Ｘ，Ｙ）、幅（Ｗ）、高さ（Ｈ）、ＯＣＲ情報を含み、属性１は文字、属性２は図画、属性３は表、属性４は線、属性５は写真である。そして、入力ファイル情報は、ブロック総数Ｎ（図５に示す例では、ブロック１〜ブロック６までの６である）を有する。
【００３６】
尚、各ブロックに対して、より鮮明な２値画像を得ようとした場合は、ここでブロック毎に上述した２値化処理を行っても良い。
【００３７】
［文字認識］
文字認識部３０５では、文字単位で切り出された画像に対して、パターンマッチングの一手法を用いて認識を行い、対応する文字コードを得る。この認識処理は、文字画像から得られる特徴を数十次元の数値列に変換した観測特徴ベクトルと、予め字種毎に求められている辞書特徴ベクトルとを比較し、最も距離の近い字種を認識結果とする処理である。この特徴ベクトルの抽出には種々の公知手法があり、例えば文字をメッシュ状に分割し、各メッシュ内の文字線を方向別に線素としてカウントしたメッシュ数次元ベクトルを特徴とする方法がある。
【００３８】
像域分離処理３０３で抽出された文字領域に対して文字認識を行う場合、まず該当領域に対して横書き、縦書きの判定を行い、それぞれ対応する方向に行を切り出し、その後、文字を切り出して文字画像を得る。この横書き、縦書きの判定は、該当領域内で画素値に対する水平／垂直の射影を取り、水平射影の分散が大きい場合には横書き領域と判定し、垂直射影の分散が大きい場合には縦書き領域と判定すれば良い。また、文字列及び文字への分解は、横書きならば水平方向の射影を利用して行を切り出し、更に切り出された行に対する垂直方向の射影から、文字を切り出すことで行う。縦書きの文字領域に対しては、水平と垂直を逆にすれば良い。尚  この時、文字のサイズが検出できる。
【００３９】
［アウトライン生成部］
アウトライン作成部３０６、３０７では、像域分離処理で得られた文字、表、枠、線について、輪郭形状を直線及び滑らかな曲線により表現されるアウトラインベクトルデータに変換する。この手法は、オブジェクト原型よりアウトラインベクトルデータを作成する際に、画質劣化を抑えつつ、高速に処理する手法であり、詳細に説明する。
【００４０】
図６は、アウトライン作成部３０６、３０７の処理を示すフローチャートである。この処理の入力は、像域分離処理３０３で抽出された、例えば図４に示す文字（TEXT）領域の２値画像である。また、文字の場合は、文字認識部３０５で文字単位に切り出された画像であっても良い。
【００４１】
まず、ステップＳ６０１において、２値のラスター画像データを水平ベクトル及び垂直ベクトルからなるアウトラインデータ（以下、粗輪郭データと呼ぶ）へと変換する。尚、入力されるラスター画像データより抽出される粗輪郭データは一つだけとは限らず、殆どの場合、複数の粗輪郭データが抽出される。
【００４２】
次に、ステップＳ６０２において、抽出された粗輪郭データに対して、一粗輪郭データ毎に直線及び曲線により表現されるアウトラインベクトルデータへと変換する。
【００４３】
図７は、粗輪郭データ及びアウトラインベクトルデータの一例を示す図である。図７において、（ａ）は粗輪郭データであり、（ｂ）はアウトラインベクトルデータである。
【００４４】
以下、図８及び図９を参照して図６に示すフローチャートの各ステップの処理について詳細に説明する。
【００４５】
ステップＳ６０１では、２値のラスター画像データを粗輪郭データへと変換する。図８は、ここで扱うラスター画像データの１画素を示す図である。図８に示すように、ラスター画像データにおける１画素は、４つの頂点を有し、垂直ベクトル及び水平ベクトルより構成される正方形として扱う。１画素を４つの頂点を有する正方形として扱い、その集合であるラスター画像データのアウトラインを抽出すると、得られるアウトラインデータは、水平ベクトル及び垂直ベクトルからなる粗輪郭データが抽出される。
【００４６】
このような粗輪郭データの抽出方法は、種々提案されており、特に特開平５−１０８８２３号公報に開示されている粗輪郭抽出方法を用いれば、ラスター画像一面より効率良くかつ高速に粗輪郭データを抽出することが可能である。
【００４７】
そして、抽出された輪郭データは、図９に示すような、水平ベクトル及び垂直ベクトルが交互に並ぶ構成である粗輪郭データとなる。この粗輪郭データの抽出では、このような水平ベクトル及び垂直ベクトルが交互に並ぶ構成となる輪郭データを抽出し、次ステップＳ６０２へ進む。
【００４８】
次に、ステップＳ６０２では、上述のステップＳ６０１で得られた粗輪郭データを直線及び曲線からなるアウトラインベクトルデータへと変換する。
【００４９】
図１０は、実施例１における粗輪郭データをアウトラインベクトルデータへと変換する処理を示すフローチャートである。まず、粗輪郭データに対してノイズ除去を行い（ステップＳ１００１）、ノイズ除去された粗輪郭上の線分より主接線線分を抽出すると共に、準接線線分を抽出する（ステップＳ１００２）。尚、主接線線分、準接線線分については後述する。
【００５０】
次に、ステップＳ１００２で抽出された主接線線分、準接線線分よりアンカーポイントを抽出し（ステップＳ１００３）、抽出されたアンカーポイント間が数個の線分により構成されるグループを二次もしくは三次ベジェ曲線及び直線にあてはめる（ステップＳ１００４）。次に、残りの線分についてベジェ曲線近似を行い、三次もしくは二次のベジェ曲線により置き換える（ステップＳ１００５）。最後に、直線及び曲線より構成されるアウトラインベクトルデータに対して、補正処理を行う（ステップＳ１００６）。
【００５１】
以下、図１１乃至図２０を参照して図１０に示すフローチャートの各ステップの処理について詳細に説明する。
【００５２】
［ノイズ除去］
まず、ノイズ除去（ステップＳ１００１）では、粗輪郭データよりノイズ除去を行う。図１１は、除去するノイズの一例を示す図である。尚、図中の“１”は、ラスター画像における１画素大のサイズを表し、１画素サイズの凹凸を除去することを目的とする。このノイズ除去では、図１１の（ａ）、（ｂ）の網点ノイズ、同（ｃ）に示す角欠けノイズを除去するが、図１２に示すように、ノイズに似た粗輪郭データも存在する。特に、ここでは、小さな文字から大きな文字までを扱うことを前提としているので、図１２に示す形状のものを全て除去しては画質の劣化を招く。
【００５３】
よって、ノイズ解析が必要であり、例えば図１１に示すノイズは、それぞれ以下の条件（ａ）〜（ｃ）を満たす場合に除去するものとする。
（ａ）１つの凸ノイズについて、次の式を満たす。
【００５４】
【数１】
2005346137.tif 000003
【００５５】
（ｂ）凸ノイズが複数個隣接している。
（ｃ）次式を全て満たす。
【００５６】
【数２】
2005346137.tif 000004
【００５７】
尚、（ｂ）の除去手法としては、次の２つを比べ、小さい方側を凸ノイズの上辺としてノイズを除去する。
【００５８】
【数３】
2005346137.tif 000005
【００５９】
ところで、ノイズを判断するための各パラメータα１，Θ１，Θ２，Θ３は一定値でもよいが、小さなオブジェクトから大きなオブジェクトを扱う上で、全てのオブジェクトを一律に評価することは困難であるので、より詳細に行うためには、粗輪郭データそれぞれのオブジェクトサイズに応じて変更しても良い。このオブジェクトサイズの情報、即ち、文字サイズは文字認識部３０５により、またアウトラインサイズは像域分離処理３０３で既に抽出されているので、それらを用いて簡単に閾値Θ１，Θ２，Θ３を導出することが可能である。
以上でノイズ除去が行えるが、元々粗輪郭抽出前に２値のラスター画像データにおいてノイズ除去することも可能であり、ラスター画像データでノイズ除去してあれば、ここで行わなくても良い。しかしながら、ラスター画像上でノイズを除去する場合は、画像一面を処理する必要があり、かつ上述した条件を満たす除去を行う場合は、非常に処理が重くなってしまう。これに対して、粗輪郭データでは扱うデータ量も少なくて済むので、非常に効率的である。
【００６０】
［接線線分抽出］
次に、ステップＳ１００２では、ノイズ除去された粗輪郭データより、オブジェクトに対する接線線分を抽出する。接線線分とは、粗輪郭データの線分中、ある線分がそのままオブジェクト形状の接線成分となる線分である。
【００６１】
図１３は、粗輪郭データより接線線分の抽出を説明するための図である。図１３に示す（ａ）は元の粗輪郭データであり、図１３に示す（ｂ）の太線部が粗輪郭（ａ）より抽出された接線線分である。ここで、接線線分は以下の条件（１）〜（４）を満たす場合に、抽出される。
【００６２】
【数４】
2005346137.tif 000006
【００６３】
尚、条件に使用されるパラメータθ１〜θ５は、解像度に依存する一定値でも構わないが、文字認識部３０５によって抽出される文字サイズ、像域分離処理３０３で検出される領域サイズ、ステップＳ６０１で検出されるアウトラインサイズ等のオブジェクトサイズにより、適応的に変更しても良い。
また、各オブジェクトサイズに応じて条件（１）〜（４）のうち、適用する条件を選択しても良い。
【００６４】
オブジェクトのサイズにより条件を変更することで、文字サイズ、輪郭サイズに応じた最適な近似処理が可能となる。
【００６５】
そして、ステップＳ１００４〜Ｓ１００６において、粗輪郭データを直線と曲線により表現されるアウトラインデータへと変換する。具体的には、曲線は図１４に示す（ａ）の三次ベジェ曲線と図１４に示す（ｂ）の二次ベジェ曲線を使用する。図１４に示す（ｃ）は直線を示す。
【００６６】
尚、図１４に示す（ａ）の三次ベジェ曲線、図１４に示す（ｂ）の二次ベジェ曲線は、以下の式１、式２により表現される。
【００６７】
B（t）＝（1-t）3・Q1＋3（1-t）2・t・Q2＋3（1-t）・t2・Q3＋t3・Q4  …式１
B（t）＝（1-t）2・Q1'+2（1-t）・t・Q2'＋t2・Q3'  …式２
図１４において、点Ｑ１，Ｑ４，Ｑ１’，Ｑ３’，Ｑ１”，Ｑ２”をアンカーポイントとし、曲線を制御しているＱ２，Ｑ３，Ｑ２’をコントロールポイントと呼ぶ。ここで、コントロールポイントとアンカーポイントを結ぶ直線、例えば直線Ｑ１Ｑ２は、アンカーポイントＱ１において曲線と接する。
【００６８】
また、アンカーポイント間にコントロールポイントがなければ、図１４に示す（ｃ）のように直線となる。
【００６９】
［アンカーポイント抽出］
ステップＳ１００３では、上述のステップＳ１００２で抽出された接線線分上に新たな点を抽出し、それをアンカーポイントとする。アンカーポイントは、接線線分の端２つに対してそれぞれ抽出される。よって、一つの接線線分に対して２つのアンカーポイントが抽出されるが、２つのアンカーポイントが一致した場合には一つのアンカーポイントのみ抽出されるものとする。２つのアンカーポイントが抽出される場合は、アンカーポイントに挟まれた部位は自動的にオブジェクト上の直線となる。
【００７０】
ここで、接線線分上の一つの端点に対するアンカーポイントの抽出方法の一例について説明する。図１５は、アンカーポイントの抽出方法の一例を示す図である。図１５に示すＶ２を接線線分のベクトルとし、ベクトルＶ１側の端点に対するアンカーポイントの抽出方法について説明する。
【００７１】
まず、ベクトルＶ２に隣接するベクトルＶ１が接線線分であれば、その端点をアンカーポイントとする。隣接する線分が接線線分でない場合は、図１５に示す（ａ）のように、ベクトルＶ２上端点よりa|V1|となる点をアンカーポイントとする。図１５に示す（ｂ）のように|V2|/2＜a|V1|となる場合は、Ｖ２ベクトルの中心点をアンカーポイントとする。
【００７２】
［一次近似、二次近似］
次に、ステップＳ１００４、Ｓ１００５では、ステップＳ１００３で抽出されたアンカーポイント間をベジェ関数で曲線近似する。尚、ステップＳ１００３で自動的に直線属性となった線分に対しては曲線近似処理を行わない。
【００７３】
曲線近似処理は、具体的には２つの種類の近似処理からなる。まず、アンカーポイントの間が数個（＜ｎ１）の線分から構成されるようなオブジェクト上の細かい部位を纏めて一つの曲線で置き換える一次近似処理（ステップＳ１００４）と、数個より多い線分から構成される線分に対して１つ或いは複数の曲線を用いて近似する二次近似処理（ステップＳ１００５）とである。前者の手法は、線分の組み合わせに対して１つの曲線を当てはめる処理であるが、後者の手法を用いても数個の線分に対して近似を行うことも可能なため、後者の手法のみを用いてアンカーポイント間を曲線近似処理しても良い。しかしながら、前者の手法は、後者の手法に比べ、パフォーマンスの点で優れており、また少ない線分の組み合わせに対して確実に少ないポイント数で近似できるため、細かい部位については一次近似を用いることが望ましい。
【００７４】
まず、図１６を参照して一次近似処理（ステップＳ１００４）の一例について説明する。ここで図１６に示す点Ａ１、Ａ２がそれぞれステップＳ１００３で抽出されたアンカーポイントとする。そして、アンカーポイント間の線分Ｌ０，Ｌ１，Ｌ２に対して、Ｃ１，Ｃ２といったコントロールポイントを設けることで曲線を近似する。
【００７５】
尚、Ｃ１、Ｃ２の値はＬ０，Ｌ２との関係から求められる。また、アンカーポイント間が数個の線分により構成され、両端のアンカーポイントに対する接線成分が直交している場合は二次ベジェ曲線で置き換える。また、数個の線分がオブジェクトの大きさに対して十分大きければ、三次ベジェを用いてより精密に置き換えても良い。
【００７６】
ここで、一次近似処理はパターンに応じた置き換えであり、ステップＳ１００３のアンカーポイントの抽出もパターンに応じた処理であるため、これら２つのステップをまとめて行っても良い。
【００７７】
次に、二次近似処理（ステップＳ１００５）について説明する。まず、二次近似処理で使用する曲線を図１７に示す。図１７に示すように、曲線は三次ベジェ曲線であり、アンカーポイントＰ０，Ｐ３を結ぶ直線と、コントロールポイントＰ１，Ｐ２を結ぶ直線とは平行になるよう構成されている。このような平行制限を設けると、三次ベジェ曲線Ｌ０上の点で直線Ｐ０Ｐ３より最も離れた点Ｐｆとの距離をＤｆ、直線Ｐ０Ｐ３とコントロールポイントＰ１，Ｐ２との距離をＤｃとすると、次式の関係が成り立つ。
【００７８】
Ｄｃ＝４／３Ｄｆ  …式３
尚、平行制限を用いたベジェ曲線を使用することで、近似処理を簡易に行うことが可能となる。
【００７９】
以下、近似処理の概要について説明する。二次近似処理では、まず区分曲線に分割し、各区分曲線に対して曲線近似処理を行う。ここで、区分曲線とは、図１７に示すように、曲線が１つの弧を描く、即ち三次曲線において２つのアンカーポイントによる直線に対して２つのコントロールポイントが同方向に構成されているような曲線である。
【００８０】
区分曲線への分割では、まず図１８に示す（ｂ）のように、複数の線分の組み合わせにより、パターンマッチング的に方向ベクトルを抽出する。求められた方向ベクトルの変化を追っていき、方向ベクトル変化の正負が変化した点が分割点である。
【００８１】
尚、上述の分割点は、曲線近似におけるアンカーポイントとなり、アンカーポイントにおける接線ベクトルは、方向ベクトルがそのままなる。
【００８２】
また、図１８に示す（ａ）は、区分曲線へ分割した例を示す図である。
【００８３】
次に、図１９を参照して区分曲線に対する曲線近似処理について説明する。図１９では、一つの区分曲線を示しており、区分曲線上の線分郡よりＮ個の点を抽出したものをそれぞれｐ１，ｐ２，…，ｐＮとする。このとき、区分曲線の始点ｐ１、終点ｐＮはアンカーポイントである。
【００８４】
尚、各アンカーポイントにおける接線線分は、ステップＳ１００５もしくは区分曲線への分割におけるアンカーポイント抽出時にそれぞれ抽出されている。
【００８５】
ここで、アンカーポイントｐ１、ｐＮを結ぶ線分ｐ１ｐＮより最も距離の離れている曲線上の点ｐｆを求める。二次近似処理においては、関数近似処理を簡易に行うため、コントロールポイントを結ぶ線分Ｃ１Ｃ２が線分ｐ１ｐＮに対して平行となるように近似する。よって、点ｐｆと線分ｐ１ｐＮとの距離をＬとすると、点Ｃ１、Ｃ２より線分ｐ１ｐＮへの距離が（４／３）×Ｌとなるように、Ｃ１、Ｃ２を求める。
【００８６】
例えば、ｐｆの座標値が（ｐfx，ｐfy）であった場合、ｐ１、ｐＮの各座標値（ｐ1x，ｐ1y）、（ｐNx，ｐNy）とｐ１における接線ベクトルｐ１Ｃ１（ｐcx，ｐcy）を用いると、Ｃ１の座標値（Ｃ1x，Ｃ1y）は、
Ｃ1x＝Ｋ×ｐfx＋ｐ1x
Ｃ1y＝Ｋ×ｐfy＋ｐ1y
Ｋ＝（３ｐ1x−４ｐfx）（ｐNy−ｐ1y）＋（ｐNx−ｐ1x）（４ｐfy−３ｐ1y）
＋ｐ1x（ｐNy−ｐ1y）−ｐ1y（ｐNx−ｐ1x）
/（３（ｐNy−ｐ1y）ｐcx＋３（ｐNx−ｐ1x）ｐcy）
となり、ｐｆの座標値より一意に決定することができる。また、Ｃ２についても、Ｃ１と同様に求めることが可能である。
【００８７】
以上の区分曲線への曲線近似処理を全てのオブジェクト上全ての区分曲線へ行うことで、オブジェクトのアウトラインは直線とベジェ曲線により構成されるアウトラインデータへと変換される。
【００８８】
［補正処理］
以上、ステップＳ１００１〜Ｓ１００５により、オブジェクトの外形を直線及び曲線により構成されたアウトラインベクトルデータへ変換できるが、本手法では水平ベクトルと垂直ベクトルのみを使用した粗輪郭データから変換するため、また処理を効率化して行っているために、一連のステップで作成されたアウトラインベクトルデータは一種の癖をもつベクトルデータとなる。即ち、ステップＳ１００６では、アウトラインベクトルデータを解析し、これらの癖を補正する処理を行う。
【００８９】
図２０は、具体的にアウトラインベクトルデータの癖を表した図である。水平ベクトルと垂直ベクトルのみの粗輪郭データを用いて解析し、変換しているため、原図形における斜め直線は、曲線により表現されている。これらについては、アンカーポイント間を結ぶ直線とコントロールポイントとの距離を調べ、斜め直線か否かを判別する。ここで、斜め直線と判断された場合、アンカーポイント間のコントロールポイントを排除して斜め直線に置き換える。
【００９０】
［アプリデータへの変換処理］
以上の通り、１頁分のイメージデータを像域分離処理３０３し、ベクトル化処理３０４した結果は図２１に示すような中間データ形式のファイルとして変換される。このようなデータ形式は、ドキュメント・アナリシス・アウトプット・フォーマット（ＤＡＯＦ）と呼ばれる。
【００９１】
図２１は、ＤＡＯＦのデータ構造を示す図である。図２１において、２１０１はHeaderであり、処理対象の文書画像データに関する情報が保持される。２１０２はレイアウト記述データ部であり、文書画像データ中の文字（TEXT）、タイトル（TITLE）、キャプション（CAPTION）、線画（LINEART）、自然画（PICTURE）、枠（FRAME）、表（TABLE）等の属性毎に認識された各ブロックの属性情報とその矩形アドレス情報を保持する。２１０３は文字認識記述データ部であり、TEXT、TITLE、CAPTION等のTEXTブロックを文字認識して得られる文字認識結果を保持する。２１０４は表記述データ部であり、TABLEブロックの構造の詳細を格納する。２１０５は画像記述データ部であり、PICTUREやLINEART等のブロックのイメージデータを文書画像データから切り出して保持する。
【００９２】
このようなＤＡＯＦは中間データとしてのみならず、それ自体がファイル化されて保存される場合もあるが、このファイルの状態では、所謂一般の文書作成アプリケーションで個々のオブジェクトを再利用することはできない。
【００９３】
そこで、このＤＡＯＦからアプリケーションデータに変換する電子文書作成処理３０９について説明する。
【００９４】
図２２は、電子文書作成処理の全体の概略を示すフローチャートである。まずステップＳ２２０１において、ＤＡＯＦデータの入力を行う。次に、ステップＳ２２０２において、アプリデータの元となる文書構造ツリー生成を行う。そして、ステップＳ２２０３で、文書構造ツリーに基づいてＤＡＯＦ内の実データを流し込み、実際のアプリデータを生成する。
【００９５】
図２３は、文書構造ツリー生成処理の詳細を示すフローチャートである。また、図２４は文書構造ツリーを説明するための図である。尚、全体制御の基本ルールとして、処理の流れはミクロブロック（単一ブロック）からマクロブロック（ブロックの集合体）へ移行する。尚、以下の説明で、「ブロック」はミクロブロック及びマクロブロック全体を指すものとする。
【００９６】
まず、ステップＳ２３０１では、ブロック単位に縦方向の関連性に基づいて再グループ化する。スタート直後はミクロブロック単位での判定となる。ここで、関連性とは、距離が近い、ブロック幅（横方向の場合は高さ）がほぼ同一であることなどで定義することができる。また、距離、幅、高さなどの情報はＤＡＯＦを参照し、抽出する。
【００９７】
図２４は、ページの構成とその文書構造のツリーを示す図である。図２４に示す（ａ）は実際のページ構成、図２４に示す（ｂ）はその文書構造ツリーである。
【００９８】
ステップＳ２３０１での結果、図２４に示すＴ３、Ｔ４、Ｔ５が１つのグループＶ１として生成され、Ｔ６、Ｔ７が１つのグループＶ２として生成され、図２４に示す（ｂ）のように、グループＶ１とグループＶ２が同じ階層のグループとして生成される。そして、ステップＳ２３０２において、縦方向のセパレータの有無をチェックする。セパレータは、例えば物理的にはＤＡＯＦ中でライン属性を持つオブジェクトである。また、論理的な意味としては、アプリ中で明示的にブロックを分割する要素である。ここでセパレータを検出した場合は、同じ階層で再分割する。
【００９９】
次に、ステップＳ２３０３において、分割がこれ以上存在し得ないか否かをグループ長を利用して判定する。ここで、縦方向のグループ長がページ高さとなっている場合、文書構造ツリー生成を終了する。また、図２４に示す例の場合、セパレータもなく、グループ高さはページ高さではないのでステップＳ２３０４へ進み、ブロック単位で横方向の関連性に基づいて再グループ化する。ここもスタート直後の第一回目はミクロブロック単位で判定を行うことになる。尚、関連性、及びその判定情報の定義は、縦方向の場合と同じである。
【０１００】
図２４に示す例の場合、Ｔ１、Ｔ２でＨ１が、Ｖ１、Ｖ２でＨ２がＶ１、Ｖ２の１つ上の同じ階層のグループとして生成される。そして、ステップＳ２３０５において、横方向セパレータの有無をチェックする。図２４に示す例では、Ｓ１があるので、これをツリーに登録し、Ｈ１、Ｓ１、Ｈ２という階層を生成する。
【０１０１】
次に、ステップＳ２３０６において、分割がこれ以上存在し得ないか否かをグループ長を利用して判定する。ここで、横方向のグループ長がページ幅となっている場合、文書構造ツリー生成を終了する。また、そうでない場合はステップＳ２３０１に戻り、再びもう一段上の階層で、縦方向の関連性チェックから繰り返す。図２４に示す例の場合、分割幅がページ幅になっているので、ここで終了し、最後にページ全体を表す最上位階層のＶ０が文書構造ツリーに付加される。
【０１０２】
文書構造ツリーが完成した後、その情報に基づいてアプリデータを生成する（ステップＳ２２０３）。図２４に示す例の場合、具体的には、以下のようになる。
【０１０３】
即ち、Ｈ１は横方向に２つのブロックＴ１及びＴ２があるので、２カラムとし、Ｔ１の内部情報（ＤＡＯＦを参照、文字認識結果の文章、画像など）を出力後、カラムを変え、Ｔ２の内部情報出力、その後Ｓ１を出力する。次に、Ｈ２は横方向に２つのブロックＶ１及びＶ２があるので、２カラムとして出力、Ｖ１はＴ３、Ｔ４、Ｔ５の順にその内部情報を出力、その後カラムを変え、Ｖ２のＴ６、Ｔ７の内部情報を出力する。
【０１０４】
以上の処理によりアプリデータへの変換処理を行うことができる。
【実施例２】
【０１０５】
次に、図面を参照しながら本発明に係る実施例２について詳細に説明する。尚、実施例１におけるベクトル化では、図１０に示したように、ノイズ除去（ステップＳ１００１）を行った後、接線線分を抽出する（ステップＳ１００２）というステップを踏んでいる。しかし、図１１に示す（ａ）、（ｂ）のようなノイズの判断における解析（マッチング）処理が重たいという問題がある。また、実施例１では単純なパターンにおけるノイズ除去のみを取り扱ったが、より高画質なアウトラインを生成するためにはノイズを綺麗に除去する必要があり、ノイズ除去は非常に重要な処理である。
【０１０６】
そこで、より詳細にノイズを解析しようとした場合、より処理が重くなり、問題を深刻化させる。しかし、本手法で取り扱うノイズは一画素大の凹凸ノイズであり、それらは水平成分及び垂直成分に対するノイズと判断できる。また、図１１に示す（ａ）、（ｂ）のようなノイズは、水平方向及び垂直方向におけるノイズである。
【０１０７】
よって、図１１に示す（ａ）、（ｂ）のようなノイズを無視し、垂直方向及び水平方向の線分とみなしてしまう、線分とみなした状態で、接線線分を抽出し、接線線分上にノイズが存在した場合のみ、そのノイズを解析し、ノイズ除去を行う、という手法をとる。
【０１０８】
以上の処理を行った場合は接線線分上でないノイズについてはより詳細に解析する必要もなく、また、特別除去する必要もない。
【０１０９】
図２５は、実施例２における粗輪郭データをアウトラインベクトルデータへと変換する処理を示すフローチャートである。
【０１１０】
まず、ステップＳ２５０１において、粗輪郭データを抽出し、その粗輪郭データに対し、接線線分抽出処理を行う。この際、除去すべきノイズであるか、ノイズでないのかわからない粗輪郭上の凹凸については、それらを垂直線分、水平線分として粗輪郭上の線分として扱う。そして、ステップＳ３５０２において、接線線分抽出後、接線線分上のノイズのみより詳細にノイズを検証し、ノイズを除去する。
【０１１１】
これ以降のステップＳ２５０３〜Ｓ２５０６での処理は、実施例１で説明した図１０に示したステップＳ１００３〜Ｓ１００６での処理と同様に、アンカーポイントを抽出し、アンカーポイント間を曲線近似処理する。
【０１１２】
以上の処理により無駄なノイズ解析を省き、高速に処理することが可能である。
【実施例３】
【０１１３】
次に、図面を参照しながら本発明に係る実施例３について詳細に説明する。尚、実施例１では、接線線分抽出において、各抽出条件に対して抽出される接線線分を同等に扱ったが、各条件により抽出される接線線分に優先順位をつけて扱っても良い。
【０１１４】
ここでいう「優先順位」とは、優先順位が高い線分ほどオブジェクトの形状をより良く表す接線線分であることを意味し、優先順位が高い線分を低い線分よりも重要に扱うことを目的とする。
【０１１５】
例えば、実施例１で説明した条件（１）〜（４）によって抽出される接線線分について、（１）が最も優先順位が高い条件とし、数字が上がるにつれ、優先順位を下げ、（４）が最も優先順位が低い条件とする。
【０１１６】
図１０に示したステップＳ１００３において、アンカーポイントの抽出を行うが、優先順位の低い線分については、接線線分上の線分を残さないようにアンカーポイントを抽出する。例えば、図２６に示す（ａ）のように、線分が構成され、Ｖ２が接線線分とする。このとき、接線線分Ｖ２が優先順位の高い線分であれば、先に述べた手法によって図２６に示す（ｂ）のようにアンカーポイントを抽出する。ここで、抽出された接線線分が優先順位の低い線分であれば、図２６に示す（ｃ）のように、元の線分を残さないでアンカーポイントを抽出する。
【０１１７】
尚、図２６に示す（Ｃ）のアンカーポイントＡ３の位置は、Ｖ１とＶ３の線分の大きさの比率から求めたものである。
【０１１８】
次に、ステップＳ１００４において、アンカーポイント間をベジェ曲線による一次近似を行うが、優先順位が高いものと低いものから抽出されたアンカーポイントかによって、構成する曲線を変える。ここで、優先順位の高い接線線分により抽出されたアンカーポイントを優先順位の高いアンカーポイントとし、優先順位の低い接線線分より抽出されたアンカーポイントを優先順位の低いアンカーポイントとする。
【０１１９】
例えば、両端が優先順位の高いアンカーポイントであれば、図２７に示す（ａ）のように、三次のベジェ曲線によって近似する。また、一方が優先順位の高いアンカーポイントであり、もう一方が優先順位の低いアンカーポイントであれば、二次ベジェ曲線によって図２７に示す（ｂ）のように近似する。更に、両端が優先順位の低いアンカーポイントであれば、図２７に示す（ｃ）のように直線で近似してしまう。
【０１２０】
尚、ベジェ近似では、ポイント間を構成するＶ１，Ｖ２，Ｖ１’，Ｖ２’の線分長の比率よりコントロールポイント位置を決定している。
【０１２１】
以上のように、輪郭線から得られる接線線分の推定という解析をより詳細に行い、その結果に対して各処理を変化させることにより、画質を保ったまま、無駄な部分についてはポイント数を減らすことが可能となる。
【実施例４】
【０１２２】
次に、図面を参照しながら本発明に係る実施例４について詳細に説明する。実施例１では、二次近似処理として、区分曲線上の一点を用いることで近似する簡易な関数近時処理について説明した。しかし、実施例１の簡易な手法では、区分曲線への曲線分割の精度によって区分曲線の点列に対し、近似した曲線が極端に離れることもある。そのような場合、関数近似が良好に行われているか否かを判定し、元の曲線に対して誤差が大きければ、再関数近似化することで関数近似処理の精度を向上させることも可能である。
【０１２３】
尚、判定手法も簡易な手法である必要があるが、その判定手法について説明する。
【０１２４】
図２８は、実施例４における曲線分割の精度判定を説明するための図である。図２８に示すように、点線で表す区分曲線の点列Ｌｄに対して特徴点Ｐｄを用いて関数近似化すると、曲線Ｌ０’が求まる。ここで、曲線Ｌ０’上の点Ｐｆと特徴点Ｐｄとの距離が一致していれば、曲線近似は良好に行われていることを示し、ＰｄとＰｆとの距離が大きければ、近似は失敗し、本来の曲線を描いていない可能性が高いことを示す。
【０１２５】
ここで、曲線近似が失敗した場合、例えば点Ｐｄと点Ｐｆとの距離が一定値以上の場合は、点Ｐｌを新たなアンカーポイントとし、Ｐ０〜ＰｄとＰｄ〜Ｐ３の２つの区分曲線に分割し、それぞれの区分曲線に対して上述した関数近似処理を行う。このような失敗した場合の分割処理は、繰り返し行うことも可能であり、閾値の設定次第では精密に曲線近似処理を行うことができる。
【０１２６】
以上説明した実施例によれば、２値画像データより垂直ベクトル及び水平ベクトルのみからなる粗輪郭線を抽出し、その粗輪郭線を用いて曲線を解析することで、処理の高速化と高画質なアウトライン作成が可能となる。具体的には、粗輪郭線より原稿オブジェクトの０°／９０°の接線を推定し、推定された接線間を曲線近似する。
【０１２７】
尚、曲線近似は細かい部分に適用する第１の近似と、残りの大きな弧を描く曲線部分に対して近似する第２の近似の２つの近似処理からなる。
【０１２８】
また、処理が重くなるという第一の課題に対しては、
本実施例では、ラスター画像より得られる粗輪郭データをそのまま使用しており、扱うデータは水平ベクトルと垂直ベクトルである。解析はノイズ判別、特徴量抽出、局所的な曲線近似の工程を含み、解析手法としてパターンマッチングを採用し、水平ベクトル及び垂直ベクトルのみに対するパターンマッチングは非常に効率良く行うことが可能となる。即ち、直線近似処理という繰り返し演算、複雑な処理を必要としない、また解析に際し、一旦ショートベクトルに変換する必要がないという点で、パフォーマンスの点においても非常に有効である。
【０１２９】
また、曲線近似処理では、平行制限を加えたベジェ曲線を使用して入るため、アンカーポイント間より特徴点を一点抽出することで一意に曲線が決定できる。
【０１３０】
尚、その特徴点は、曲線上のアンカーポイント間より最も離れた点として抽出しているため、誤差を求めて最適化するような繰り返し演算は必要としない。
【０１３１】
よって、この点においても、パフォーマンスの点で非常に有効である。
【０１３２】
以上、本実施例では、粗輪郭へのパターンマッチングを用いた解析、局所的な曲線近似、かつ平行制限を用いた曲線近似処理と、一連の処理において従来手法に比して、大幅にパフォーマンスを向上させることが可能となる。
【０１３３】
一方、簡易な手法では画質が劣化するという課題２に対しては、
本実施例では、一つの輪郭線について、アウトラインベクトル化する際、画質の劣化が目立つようなオブジェクト上の細かく変化する部位について、第１の近似処理でパターンマッチングによる曲線近似を行う。尚、細かな部位に対するパターンマッチングでは接線線分等の解析結果に応じて変更しているため、少ないデータ量で表現された綺麗な曲線を得ることが可能である。
【０１３４】
また、本実施例は粗輪郭データをそのまま扱う簡易な手法であるため、場合によっては少々癖も出てくる。それらのパターン化されている癖については、最後に補正処理を行うことで、修正する。尚、補正処理では、既に直線と曲線によって構成されたアウトラインデータ（データ量が大幅に減少しているデータ）に対して行うため、特別パフォーマンスへ影響を与えるような処理ではない。
【０１３５】
最後に、オブジェクトの大きさに対する点については、
本実施例では、ノイズ、形状解析および局所的な近似にパターンマッチングを使用しており、オブジェクトの大きさ及び輪郭線の大きさに応じてパターンマッチングを変更しているため、細かなオブジェクトから大きなオブジェクトまで柔軟に対応することが可能となる。ここでパターンマッチングで変更するパラメータは、粗輪郭線分の長さであるため、各パターンマッチングに対し、パラメータを柔軟に変更することが可能であり、小さなオブジェクト及び輪郭線から、大きなオブジェクト及び輪郭線に対し、柔軟に対応することが可能となる。
【０１３６】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。具体的には、複合機や、複写機や、ファクシミリ装置で、高品位に変倍するために、スキャンした画像データを入力し（公衆回線やネットワークから画像データを入力しても良い）、画像データから輪郭ベクトルを抽出し、抽出した輪郭ベクトルを変倍し、変倍された輪郭ベクトルから画像データを生成し、生成した画像データをプリントする際の輪郭ベクトル抽出時に適用できる。
【０１３７】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１３８】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１３９】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１４０】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４１】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１４２】
【図１】実施例１における文書処理装置の概観を示す図である。
【図２】実施例１における文書処理装置の構成を示すブロック図である。
【図３】文書処理装置における文書の電子化処理の概要を示す図である。
【図４】像域分離処理を説明するための図である。
【図５】像域分離処理３０３で分離された各ブロックに対するブロック情報と入力ファイル情報を示す図である。
【図６】アウトライン作成部３０６、３０７の処理を示すフローチャートである。
【図７】粗輪郭データ及びアウトラインベクトルデータの一例を示す図である。
【図８】ラスター画像データの１画素を示す図である。
【図９】粗輪郭データの構成の一例を示す図である。
【図１０】実施例１における粗輪郭データをアウトラインベクトルデータへと変換する処理を示すフローチャートである。
【図１１】除去するノイズの一例を示す図である。
【図１２】ノイズに似た粗輪郭データの一例を示す図である。
【図１３】粗輪郭データより接線線分の抽出を説明するための図である。
【図１４】粗輪郭データをアウトラインデータへと変換する際に使用される三次ベジェ曲線、二次ベジェ曲線、直線を示す図である。
【図１５】アンカーポイントの抽出方法の一例を示す図である。
【図１６】一次近似処理の一例を説明するための図である。
【図１７】二次近似処理で使用する曲線を示す図である。
【図１８】区分曲線へ分割した例とパターンマッチング的に方向ベクトルを抽出する例を示す図である。
【図１９】区分曲線に対する曲線近似処理を説明するための図である。
【図２０】具体的にアウトラインベクトルデータの癖を表した図である。
【図２１】ドキュメント・アナリシス・アウトプット・フォーマット（ＤＡＯＦ）のデータ構造を示す図である。
【図２２】電子文書作成処理の全体の概略を示すフローチャートである。
【図２３】文書構造ツリー生成処理の詳細を示すフローチャートである。
【図２４】ページの構成とその文書構造のツリーを示す図である。
【図２５】実施例２における粗輪郭データをアウトラインベクトルデータへと変換する処理を示すフローチャートである。
【図２６】実施例３におけるアンカーポイントの抽出を説明するための図である。
【図２７】実施例３における曲線近似を説明するための図である。
【図２８】実施例４における曲線分割の精度判定を説明するための図である。
【図１】
2005346137.tif 000007
【図２】
2005346137.tif 000008
【図３】
2005346137.tif 000009
【図４】
2005346137.tif 000010
【図５】
2005346137.tif 000011
【図６】
2005346137.tif 000012
【図７】
2005346137.tif 000013
【図８】
2005346137.tif 000014
【図９】
2005346137.tif 000015
【図１０】
2005346137.tif 000016
【図１１】
2005346137.tif 000017
【図１２】
2005346137.tif 000018
【図１３】
2005346137.tif 000019
【図１４】
2005346137.tif 000020
【図１５】
2005346137.tif 000021
【図１６】
2005346137.tif 000022
【図１７】
2005346137.tif 000023
【図１８】
2005346137.tif 000024
【図１９】
2005346137.tif 000025
【図２０】
2005346137.tif 000026
【図２１】
2005346137.tif 000027
【図２２】
2005346137.tif 000028
【図２３】
2005346137.tif 000029
【図２４】
2005346137.tif 000030
【図２５】
2005346137.tif 000031
【図２６】
2005346137.tif 000032
【図２７】
2005346137.tif 000033
【図２８】
2005346137.tif 000034