(57)【要約】【課題】  ベクトル化処理対象の画像に対して、それぞれの画像に適したベクトルデータになるように自動的に処理を選択するように構成する。【解決手段】  本発明は、入力画像を複数の領域に分割し、分割された領域の特徴に基づいて、当該領域のアウトライン化手法を選択して、各領域のアウトラインデータを生成して出力する。  例えば、文字領域か図形領域か判断して、それぞれに適した形式のアウトラインデータに変換する。また、線状図形の中心線を通るアウトラインデータ（ベクトルデータ）を生成するか、図形の輪郭そのものを示すアウトラインデータ（ベクトルデータ）にするか自動的に選択する。また、文字の大きさに応じて、関数近似の手法を切り替えることができるようにする。【選択図】  図１
2007305034.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を複数の領域に分割する領域分割手段と、
前記分割された領域の特徴に基づいて、当該領域のアウトライン化手法を選択する選択手段と、
前記選択手段によって選択されたアウトライン化手法を用いて、各領域のアウトラインデータを生成するアウトライン化手段と、
前記アウトライン化手段により生成されたアウトラインデータを出力する出力手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記アウトライン化手法は、領域に含まれるオブジェクト自体の輪郭に基づいてアウトラインデータを生成する第１の手法と、領域に含まれるオブジェクトを細線化し、当該細線化したオブジェクトに基づいてアウトラインデータを生成する第２の手法とを含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記選択手段では、処理対象の領域の属性が文字属性であると判断した場合、前記第１の手法を選択することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記選択手段では、処理対象の領域の属性が図形属性であると判断した場合、更に、細線化に適した図形であるか判断し、細線化に適していると判断した場合は前記第２の手法を選択し、細線化に適していないと判断した場合は前記第１の手法を選択することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記アウトライン化手段は、更に、前記生成されたアウトラインデータが正常なデータであるか否かに基づいて、当該アウトラインデータを出力するか否か判断することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記アウトライン化手段は、当該領域内に含まれるオブジェクトに基づいて生成されたアウトラインベクトルデータを関数近似して、前記アウトラインデータを生成することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
更に、前記生成されたアウトラインデータが異常であった場合に、当該アウトラインデータを出力するか、出力しないか、関数近似前のデータを出力するか、を設定する設定手段を有することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記アウトライン化手段は、文字属性の領域に含まれる文字画像をアウトライン化する際、当該文字画像の大きさに基づいて、直線近似のみの関数近似を用いるか否か判断することを特徴とする請求項６に記載の画像処理装置。
【請求項９】
前記アウトライン化手段は、文字属性の領域に含まれる文字画像をアウトライン化する際、当該文字画像の大きさに基づいて、前記関数近似を行うか否か判断することを特徴とする請求項６に記載の画像処理装置。
【請求項１０】
入力画像を複数の領域に分割する領域分割ステップと、
前記分割された領域の特徴に基づいて、当該領域のアウトライン化手法を選択する選択ステップと、
前記選択ステップで選択されたアウトライン化手法を用いて、各領域のアウトラインデータを生成するアウトライン化ステップと、
前記アウトライン化ステップで生成されたアウトラインデータを出力する出力ステップと、
を有することを特徴とする画像処理装置の制御方法。
【請求項１１】
入力画像を複数の領域に分割する領域分割ステップと、
前記分割された領域の特徴に基づいて、当該領域のアウトライン化手法を選択する選択ステップと、
前記選択ステップで選択されたアウトライン化手法を用いて、各領域のアウトラインデータを生成するアウトライン化ステップと、
前記アウトライン化ステップで生成されたアウトラインデータを出力する出力ステップと、
の各ステップを画像処理装置が実行するように制御するための、コンピュータ実行可能なコンピュータプログラム。
【請求項１２】
請求項１１に記載のコンピュータプログラムを格納した、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、図面や文書画像内などに含まれる文字画像や線図形画像に基づいてベクトル情報の生成を行う装置とその方法に関するものである。
【背景技術】
【０００２】
近年、ペーパーレス化への要求が高まり、既存の画像データを電子化して再利用することが頻繁に行われるようになってきた。画像データの再利用は、画像データを２値化処理した後にベクトル化技術を用いてベクトルデータに変換し、このベクトルデータをＣＡＤソフト等で使用するという提案が行われてきている。
【０００３】
例えば、特許第３０２６５９２号（特許文献１）では、２値画像のベクトル化に関する提案が為されている。この特許文献１では、『入力した画像を画素マトリクス内でラスタ走査して当該画素マトリクス内の複数画素の状態に応じて黒画素と白画素との境界に輪郭ベクトルを抽出する輪郭抽出方法であって、
前記複数画素の状態が主走査方向または副走査方向に継続する輪郭の途中部分を表わす場合、当該輪郭ベクトルの座標値のセット及び前記輪郭ベクトル同士の接続関係を特定するための処理を行わず、
前記複数画素の状態が主走査方向または副走査方向に開始する輪郭の開始部分を表わす場合には当該輪郭ベクトルの座標値をセットし接続状態を未定とし、
前記複数画素の状態が主走査方向又は副走査方向に途切れる輪郭の終了部分を表す場合には輪郭ベクトルの座標値をセットし接続状態を確定することにより前記輪郭ベクトルを抽出する』ことを提案している。特許文献１では、画像中の全ての輪郭線を１回のラスタ走査順で抽出でき、かつ、全画像データを記憶するための画像メモリを必要としないため、メモリの容量を少なくできる効果を有している。
【０００４】
また、特許第３０４９６７２号（特許文献２）では、２値画像の輪郭情報を用いて高画質な変倍画像を得る画像処理装置が紹介されている。特許文献３は、２値画像からアウトラインベクトルを抽出し、該抽出したアウトラインベクトルを所望の倍率で変倍することにより、高画質の変倍されたデジタル２値画像を得るようにするものである。
【０００５】
また、２値画像の輪郭情報を作成する際に、直線やベジェ曲線などを用いて関数近似することにより輪郭情報を作成することも考えられる。
【特許文献１】特許第３０２６５９２号
【特許文献２】特許第３０４９６７２号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１、２のように輪郭からアウトラインベクトルを作成する技術では、線状の図形（直線や曲線など）の場合であっても、その輪郭を表すベクトルデータが作成されることになる。このような輪郭ベクトルデータは、黒画素と白画素の境界（輪郭）に基づいて作成されるループ状のベクトルデータになる。つまり、輪郭ベクトルデータは、その図形をそのままの形状で再利用したり、そのままの形状で変倍だけを行って再利用する場合に適している。
【０００７】
一方、再利用する際、直線や曲線の太さだけを変更したり、長さだけを変更したり、曲率だけを変更したりして再利用したい場合もある。しかしながら、図形の輪郭を表す輪郭ベクトルデータは、全体をそのままの形状で全体的に変倍する際には適しているが、太さや長さだけを変更したい場合には扱いづらい。このように、太さだけを変更したい場合などにおいては、直線や曲線などの線状図形は、輪郭ベクトルデータではなく、中心線を表す線状ベクトルと線の太さ情報とで表現する方が望ましい場合がある。
【０００８】
しかしながら、従来技術では、これらのベクトルデータ化の手法を適切に切り替えることは考えられていなかった。
【０００９】
また、ビジネス文書などの画像であっても当該画像に含まれる文字の大きさは一定ではなく、フォントやサイズの異なる文字が混在している場合がある。また、それら全てに対して同一のベクトル化手法を適用すると、意図した文字の形状とは変わったり、データ量が多くなりすぎてしまったりする場合がある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の画像処理装置は、入力画像を複数の領域に分割する領域分割手段と、前記分割された領域の特徴に基づいて、当該領域のアウトライン化手法を選択する選択手段と、前記選択手段によって選択されたアウトライン化手法を用いて、各領域のアウトラインデータを生成するアウトライン化手段と、前記アウトライン化手段により生成されたアウトラインデータを出力する出力手段と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ベクトル化処理対象の画像に対して、それぞれの画像に適したベクトルデータになるように自動的に処理を選択できるようになる。
【００１２】
例えば、文字領域か図形領域か判断して、それぞれに適した形式のアウトラインデータに変換することができる。また、図形領域に対して細線ベクトル化に適しているかどうか判断して、図形の中心線を通るベクトルデータにするか、図形の輪郭そのものを示すベクトルデータにするか自動的に選択することができる。
【００１３】
また、小さい文字に対してベジェ曲線で関数近似すると文字の品位が低下する場合がある。文字サイズに基づいて、アウトラインベクトルデータを関数近似する際に、ベジェ曲線を用いるか直線のみを用いるか適応的に切り替えることで、文字形状の品位を向上させることもできる。また、非常に小さい文字に対してはアウトラインデータ化しないことで処理効率を高めることもできる。
【発明を実施するための最良の形態】
【００１４】
（実施例１）
本実施形態１の画像処理装置は、例えば、ＳＣＡＮ／ＣＯＰＹ／ＰＲＩＮＴ／ＦＡＸなどの機能を有するデジタル複合機で実現できる。図２は、本実施形態１の画像処理装置の概略ブロック図である。図２において、画像処理装置は、スキャナ部２０１、コントローラ２０２、プリンタ部２０３、操作部２０４、メモリ２０５等で構成される。スキャナ部２０１では、原稿の読み取り処理を行なう。コントローラ２０２は、スキャナ部２０１から読み取られた画像に画像処理を施しメモリ２０５に格納したり、その他の処理の制御を行ったりする。操作部２０４は、スキャナ部２０１で読み取った画像に対する各種の印刷条件を設定したり、ユーザからの各種指示を受けたりするためのユーザインタフェースである。プリンタ部２０３は、メモリ２０５から読み出された画像データを、操作部２０４で設定された印刷設定条件に従って記録用紙に印刷（画像形成）する。また、この画像処理装置は、ネットワーク２０６を介して、画像データを管理するサーバ２０７や、この画像処理装置に対してプリントの実行を指示するパソコン（ＰＣ）２０８等と接続されている。
【００１５】
図１は、本発明の処理フローの概略を説明するものである。
【００１６】
ステップＳ１０１（画像入力処理）では、スキャナ部２０１で原稿を読み取って生成された画像データや、他の装置からネットワークを介して送信されてきた画像データが、画像処理装置に入力される。
【００１７】
ステップＳ１０２（２値化処理）では、公知の２値化処理を用いて、入力画像の２値化処理を行う。２値化処理はどのような手法であっても構わないが、例えば、入力画像の輝度値を所定の閾値で２値化すればよい。ただし、入力画像がすでに２値画像だった場合には、この２値化処理を行う必要はない。
【００１８】
ステップＳ１０３（領域分割・属性識別処理）では、２値画像に基づいて公知の領域分割処理と属性識別処理を行う。ここでは、入力された２値画像データを、文字／図／線／表などの属性ごとの領域（ブロック形状の領域）を識別し、各領域に対して属性情報を付与する。
【００１９】
例えば、次のような処理を用いて領域分割・属性識別処理とを行うことができる。まず、２値化処理で得られた２値画像より、黒画素の輪郭線追跡を行って黒画素輪郭で囲まれる画素の塊を抽出することによって領域分割する。更に、面積の大きい黒画素の塊については、内部にある白画素に対しても白画素の輪郭線追跡を行い、白画素の塊を抽出し、更に一定面積以上の白画素の塊の内部からは再帰的に黒画素の塊を抽出していく。このようにして得られた黒画素の塊を、大きさ及び形状で分類し、異なる属性を持つ領域へ分類していく。例えば、縦横比が１に近く、大きさが所定の範囲のものを文字相当の画素塊とする。そして、文字相当の画素塊同士が近接し且つ整列している場合はグループ化を行って、文字行を定め、更に所定の距離内にある同様の形状の文字行同士をグループ化して文字領域として判別する。また、扁平な画素塊を線領域とする。また、一定の大きさ以上で、かつ四角系の白画素塊を整列よく内包する黒画素塊の占める範囲を表領域とする。また、不定形の画素塊が散在している領域を写真領域とする。それ以外の形状の画素塊を図画領域などとして判別する。
【００２０】
ステップＳ１０３では、付加された属性が第１の属性であるか第２の属性であるかの判定を、領域毎に行う。本実施例では、第１の属性は文字属性とし、第２の属性は図形属性とする。第１の属性と判定された場合は、ステップＳ１０４へ進み、第２の属性と判定された場合はステップＳ１０８に進む。
【００２１】
ステップＳ１０４では、この後の処理（ステップＳ１０５やＳ１０６）で使うパラメータが設定される。このパラメータ設定では、第１の属性（文字属性）の領域を処理するのに適したパラメータがメモリから呼び出されて設定される。なお、この第１パラメータ設定Ｓ１０４は、パラメータ設定の変更が必要になるたび（処理する領域の属性が変わった場合だけ）に行うようにしても良い。
【００２２】
ステップＳ１０５（アウトライン化処理Ａ）では、オブジェクト（ここでは文字画像）の輪郭形状に基づいて、輪郭そのものを表しているアウトラインベクトルデータ（粗輪郭ベクトル）を作成する。
【００２３】
ステップＳ１０６（関数近似処理）では、Ｓ１０５で作成されたアウトラインベクトルデータをベジェ関数近似など用いて、滑らかなアウトラインデータへ変換する処理である。Ｓ１０５では輪郭の画素形状をそのままベクトルデータ化するのでジャギーが反映されたベクトルデータになっているが、Ｓ１０６で関数近似することによって滑らかなアウトラインデータとなるので、アウトラインデータを再利用する際に拡大しても元画像のジャギーの影響が小さくなる。
【００２４】
ステップＳ１０７（出力変換処理）では、出力するファイル形式に合うように、ステップＳ１０６で生成された当該領域のアウトラインデータの記述を変換する。なお、文字属性の領域の横書き、縦書きの判定を行っておき、ここで、横書き・縦書きの情報を付加して出力するように変換しても構わない。
【００２５】
一方、ステップＳ１０３において、第２の属性（図形属性）と判定された場合には、ステップＳ１０８に進む。
【００２６】
ステップＳ１０８では、この後の処理（ステップＳ１０９〜Ｓ１１６）で使う第２パラメータが設定される。この第２パラメータ設定では、第２の属性（図形属性）の領域を処理するのに適したパラメータがメモリから呼び出されて設定される。なお、この第２パラメータ設定Ｓ１０８は、パラメータ設定の変更が必要になるたび（処理する領域の属性が変わった場合だけ）に行うようにしても良い。
【００２７】
ステップＳ１０９（細線化処理）では、公知の２値画像細線化手法で、細線化処理が施された２値画像を出力する。ステップＳ１０９の処理は、例えば、公知の細線化手法であるＨｉｌｄｉｔｃｈ法（酒井幸市著“ディジタル画像処理の基礎と応用”第２版，ＩＳＢＮ４−７８９８−３７０７−６，ＣＱ出版社，２００４年２月１日発行，Ｐ．５１−Ｐ．５４，等）を用いて細線化する。図４（ａ）は入力された２値画像の一例であり、これに対して細線化処理が行われると、図４（ｂ）のような細線化済画像が生成される。
【００２８】
例えば、細線化処理は、図形オブジェクトの黒画素部分をエッジの画素から１画素ずつ細線化していく処理を所定回数（例えば５回）繰り返し行い、１画素幅の細線に変換する。なお、この予め定めた回数分の細線化処理を行う途中で１画素幅の細線になった場合は細線化処理を終了する。
【００２９】
ステップＳ１１０では、細線化処理が成功したかどうかに基づいて、当該図形領域が細線化に適した領域であるか否か判断する。細線化に適した領域であると判断された場合にはステップＳ１１１に進み、細線化に適さないと判断された場合にはステップＳ１１４に進む。
【００３０】
ステップＳ１１１（アウトライン化処理Ｂ）では、細線化された図形オブジェクトにおける端点および交点を検知し、その検知した端点及び交点の間を結ぶ細線ごとにその輪郭に基づきアウトラインベクトルデータを生成する。ここでは、まず、端点及び交点の間を結ぶ細線（線素）の周りを周回するベクトルデータ（周回ベクトルデータ）が生成される。そして、この周回ベクトルデータを、線素の端点間を結ぶ１本のベクトルデータに変換する。この変換処理は、例えば、周回ベクトルデータが各線素の端点間を結ぶ２本のベクトルデータを繋げたものであると見なし、どちらか片方のベクトルデータの位置を２本のベクトルデータの中心線を通るように微調整したものを採用するようにすればよい。図４（ｃ）は、図４（ｂ）の細線化済画像の端点及び交点を検出し、点間毎の線素に分割した後にベクトル化処理を施すことによって、線素ごとに作成された周回ベクトルデータを輪郭画像として描画して可視化したものである。また、図４（ｄ）は、図４（ｃ）の点間線素ごとの周回ベクトルデータを、線素ごとに１本のベクトルデータへ変換した後のベクトルデータ（端点間ごとの線芯ベクトルデータ）を描画して可視化したものである。
【００３１】
ステップＳ１１２では、ステップＳ１１１で生成されたアウトラインベクトルデータを、ベジェ関数近似などを用いて、滑らかなアウトラインデータへ変換する。
【００３２】
ステップＳ１１３（出力変換処理）では、出力するファイル形式に合うように、ステップＳ１１２で生成された当該領域のアウトラインデータの記述を変換する。
【００３３】
一方、ステップＳ１１０において、細線化に適していない図形領域であると判断された場合には、ステップＳ１１４においてアウトライン化処理（ベクトル化処理）を行う。ステップＳ１１４で行われるベクトル化処理は、ステップＳ１０５のアウトライン化処理Ａと同様の処理である。つまり、オブジェクト（ここでは図形画像）の輪郭形状に基づいて、輪郭そのものを表しているアウトラインベクトルデータ（粗輪郭ベクトル）を作成する。
【００３４】
ステップＳ１１５では、ステップＳ１１４で生成されたアウトラインベクトルデータを、ベジェ近似などを用いて、滑らかなアウトラインデータへと変換を行う処理である。
【００３５】
ステップＳ１１６では、出力するファイル形式に合うように、ステップＳ１１５で生成された当該領域のアウトラインデータの記述を変換する。
【００３６】
ステップＳ１１７では、領域ごとに作成されたアウトラインデータを統合し、所望のフォーマットのファイルを生成する。
【００３７】
本実施形態で出力されるファイルは、図３の３１１のような層構造のフォーマットになっている。図３において、３０１は入力画像、３０２はステップＳ１０１の処理を行う２値化処理部、３０３は２値画像、３０４はステップＳ図３の３１１はステップＳ１０２の領域分割・属性識別処理を行う領域識別処理部である。３０５はステップＳ１０４〜Ｓ１０７の処理を行う文字領域ベクトル化処理部、３０６はステップＳ１０８〜Ｓ１１６の処理を行う図形領域ベクトル化処理部である。一方、縮小処理部３０７では、入力画像の解像度変換を行って縮小多値画像３０８を生成する。文字部穴埋め処理部３０９では、領域識別結果を参照し、文字画像部分に相当する画素の色をその周囲の背景画素の色で置換することにより、文字画像部分の穴埋め処理を行う。ＪＰＥＧ圧縮処理部３１０では、文字画像部分の穴埋め処理（色置換処理）が行われた後の縮小多値画像をＪＰＥＧ圧縮してＪＰＥＧデータを生成する。出力ファイル３１１は、上から、３０５で生成された文字領域のベクトルデータ、３１０で生成されたＪＰＥＧデータ、３０６で生成された図形領域のベクトルデータの順に再生されるように格納されたフォーマットである。このように構成することにより、出力ファイルを単に表示再生する際は、背景のＪＰＥＧデータ上に文字部分はベクトルデータを用いて表示されることになるので、文字がくっきりとした可読性の高い画像が表示される。また、図形領域を他のドローアプリケーションなどで再利用する際には、出力ファイルに格納されている図形領域のベクトルデータを用いることができるので、再利用するのにも都合がよい。また、図形領域の細線ベクトルデータ（Ｓ１１３で生成されたベクトルデータ）を利用することも可能になるので、ドローアプリケーションなどにおいて図形の線幅の変更や長さの変更を行いやすいベクトルデータを生成することができる。
【００３８】
なお、ステップＳ１０９における細線化の回数は５回としたが、これに限るものではなく、必要に応じてその回数を変更することが可能である。ユーザが操作部２０４を用いてその回数を設定するようにしてもよいし、属性判定処理Ｓ１０３で判定された図形画像の大きさ（面積）などに応じて、細線化回数を設定するようにしても良い。
【００３９】
（実施例２）
実施例２は、実施例１における図１のステップＳ１０３で図形属性と判定された場合に行われる処理の別実施例である。つまり、図１のステップＳ１０８〜Ｓ１１６の処理を、図５、図６のフローチャートの処理で置換したものに相当する。
【００４０】
ステップＳ５０１では、ステップＳ１０９と同様に図形領域画像の細線化処理を行う。
【００４１】
ステップＳ５０２では、細線化処理の結果に基づいて、当該図形領域が細線化に適した領域であるか否か判断する。細線化に適した領域であると判断された場合にはステップＳ５０３に進み、細線化に適さないと判断された場合にはステップＳ５１０に進む。
【００４２】
ステップＳ５０３では、ステップＳ１１１と同様に、細線化した図形画像の端点・交点間を結ぶ線素に基づき輪郭のアウトラインベクトルデータ（周回ベクトルデータ）を生成し、端点・交点間を結ぶ線素ごとに１本のベクトルデータになるように、線芯化処理と補助点（ベクトルデータのコントロールポイント）作成処理とを行う。
【００４３】
ステップＳ５０４では、生成されたアウトラインベクトルデータが正常に生成されたかどうかに基づいて、当該図形領域が細線化に適した領域か否か判断する。細線化に適した領域であると判断された場合にはステップＳ５０５に進み、細線化に適さないと判断された場合にはステップＳ５１０に進む。
【００４４】
ステップＳ５０５では、滑らかなアウトラインデータになるように関数近似処理を行う。ステップＳ５０６では関数近似処理自体が成功したか否か判断し、関数近似できなかった場合はステップＳ５１０に進み、関数近似できた場合にはステップＳ５０７に進む。
【００４５】
ステップＳ５０７では、関数近似して生成されたアウトラインデータ（アンカーポイントなどのコントロールポイント）が異常であるか正常であるか判断する。例えば、明らかに異常な座標点が含まれていないかどうか判断する。これは、ノイズの影響等によって明らかに図形が存在する位置とかけ離れた位置の座標点がコントロールポイントとして算出されてしまう場合があり、このような異常点があった場合には、形状としての問題が発生してしまうためである。異常があると判断した場合はステップＳ５１０に進み、異常がないと判断した場合はステップＳ５０８に進む。本実施例では、異常な座標点があると判断した場合はステップＳ５１０に進むものとするが、異常な座標点の数が少ない（例えば１点だけ）場合などは、この異常点を削除してステップＳ５０８に進むようにしてもよい。
【００４６】
また、ステップＳ５０７では、関数近似されたアウトラインデータの座標点（コントロールポイント）の数に基づいて、関数近似されたアウトラインデータに異常があるかどうか判断するようにしてもよい。この場合の異常点があるか否かの判定方法の一例を図６に示す。ステップＳ６０１では、当該アウトライン化処理対象の図形領域の面積を算出する。ステップＳ６０２では、アウトラインデータに含まれる座標点（コントロールポイント）の数を求める。ステップＳ６０３では、Ｓ６０１で求めた面積とＳ６０２で求めた座標点数から、処理対象領域あたりの座標点数の評価値を算出する。例えば、１画素あたりのベクトル座標の点数という数値を求める。ステップＳ６０４では、あらかじめ設定しておいた基準値をメモリから読み出して評価値との比較を行う。ステップＳ６０５では、比較した結果に基づいて、異常ではないと判断した場合はステップＳ６０６で正常であるとして結果出力し、一方、異常であると判断した場合はステップＳ６０７で異常であるとして結果出力する。例えば、基準値に０．５という値を設定しておき、この数値よりも算出した評価値の方が小さかった場合には正常と判断し、大きかった場合には異常と判断する。この処理は、座標点数の多いものや複雑なベクトル化したものの出力の制御を行うための処理となっている。なお、基準値として０．５をあげたが、この基準値は任意に設定できるようにしてもよい。このとき、この数値を大きくすると単位面積あたりの座標点数が多いものが出力されるようになり、小さくすると単位面積あたりの座標点数が多いものは出力されないように制御することができる。
【００４７】
ステップＳ５０８では、アウトラインデータのデータサイズと所定の閾値（例えばメモリ容量や、出力ファイルサイズをどの程度のサイズにしたいか等に基づいて定められる値）とを比較して、出力可能かどうかの判定を行う。ＯＫであると判断した場合はステップＳ５０９に進み、ＮＧの場合はステップ５１０に進む。
【００４８】
ステップＳ５０９では、出力するファイル形式に合うように、生成された当該領域のアウトラインデータの記述を変換する。
【００４９】
ステップＳ５１０では、ステップＳ１１４で行われるアウトラインベクトル化処理と同様に、オブジェクト（ここでは図形画像）の輪郭形状に基づいて、輪郭そのものを表しているアウトラインベクトルデータ（粗輪郭ベクトル）を作成する。
【００５０】
ステップＳ５１１では、ステップＳ５１０で作成されたアウトラインベクトルデータを、ベジェ関数近似などを用いて、滑らかなアウトラインデータに変換する。
【００５１】
ステップＳ５１２では、ステップＳ５１１で生成されたアウトラインデータに異常かどうか判断する。この処理は、ステップＳ５０７と同様の処理が行われる。正常と判断した場合は、ステップＳ５１３に進み、異常と判断した場合は、アウトラインデータを出力せずに処理を終了する。
【００５２】
ステップＳ５１３では、アウトラインデータのデータサイズと所定の閾値（例えばメモリ容量や、出力ファイルサイズをどの程度のサイズにしたいか等に基づいて定められる値）とを比較して、出力可能かどうかの判定を行う。ＯＫであると判断した場合はステップＳ５１４に進み、ＮＧの場合はアウトラインデータを出力せずに処理を終了する。
【００５３】
ステップＳ５１４では、出力するファイル形式に合うように、生成された当該領域のアウトラインデータの記述を変換する。
【００５４】
なお、本実施形態では、ステップＳ５１２で「異常」と判断した場合や、ステップＳ５１３でＮＧと判断した場合（エラー処理）、なにも出力せずに処理を終了したが、これに限るものではない。例えば、当該領域の２値画像を出力するようにしてもよいし、関数近似前のベクトルデータを出力するようにしてもよい。また、どれを出力するかユーザが選択できるようにするための設定を設けてもよい。
【００５５】
（実施例３）
実施例３は、実施例１における図１のステップＳ１０３で文字属性と判定された場合に行われる処理の別実施例である。つまり、図１のステップＳ１０４〜Ｓ１０７の処理を、図７のフローチャートの処理で置換したものに相当する。
【００５６】
ステップＳ７０１では、処理対象の文字領域内にある文字画像の大きさの平均を求める。この検出は、文字属性と判定された領域内の文字画像それぞれの高さの平均を求めることで実現できる。なお、本実施例では文字の高さに基づいて大きさを算出したがこれに限るものではなく、文字画像それぞれの外接矩形の面積に基づいて求めても良い。
【００５７】
ステップＳ７０２では、ステップＳ７０１で検出した文字の大きさとあらかじめ設定した閾値（例えば、４ポイント）との比較を行い、当該閾値よりも小さい場合（文字サイズが４ポイント以下）にはステップＳ７１２へ進み、当該文字領域に対応する２値画像を出力するものとする。このステップＳ７０２では、非常に小さい文字に対してはベクトル化処理を行わないという制御を行うための処理である。非常に小さい文字をベクトル化しても、品位が期待できない場合に対応するための処理である。
【００５８】
一方、ステップＳ７０２で、文字の平均サイズが該閾値より大きいと判断された場合、ステップＳ７０３に進み、当該文字領域に含まれる複数の文字画像の１つに対してアウトライン化処理が行われる。
【００５９】
ステップＳ７０４では、ステップＳ７０３のアウトライン化処理が成功したかどうか判断する。アウトライン化処理の中でエラーが発生すると、ステップＳ７１２へ進む。一方、アウトライン化処理が正常に終了したと判断すると、ステップＳ７０５に進む。
【００６０】
ステップＳ７０５では、アウトライン化処理した文字画像の大きさ（文字画像の高さや面積を用いればよい）を第２の閾値（例えば、９ポイント）と比較する。文字画像の大きさが第２閾値以下の場合（文字サイズが９ポイント以下の場合）には、ステップＳ７０７に進み、当該文字画像のアウトラインベクトルデータに対して直線近似のみを用いた関数近似処理を行う。ステップＳ７０８ではステップＳ７０７の平滑化処理（直線近似のみを用いた近似処理）中にエラーが発生したか判断し、エラーが発生したと判断した場合はステップＳ７１２に進み、近似処理が成功したと判断した場合はステップＳ７１１に進む。
【００６１】
一方、ステップＳ７０５で文字サイズが第２閾値よりも大きいと判断した場合には、ステップＳ７０６に進み、ベジェ近似処理が行われる。
【００６２】
ステップＳ７０９では、ベジェ近似されたアウトラインデータのコントロールポイントに異常な座標点がないかどうか判断する。異常な座標点があると判断した場合はステップＳ７１０に進み、当該異常な座標点を削除する。なお、異常な座標点を削除するだけでは対処できない場合（異常な座標点が多い場合など）は、ステップＳ７１２で２値画像の出力を行うようにしてもよい。
【００６３】
ステップＳ７１１では、作成されたアウトラインデータのデータサイズと所定の閾値（例えばメモリ容量や、出力ファイルサイズをどの程度のサイズにしたいか等に基づいて定められる値）とを比較して、出力可能かどうかの判定を行う。ＯＫであると判断した場合はステップＳ７１３に進み、ＮＧの場合はステップＳ７１２に進む。
【００６４】
ステップＳ７１３では、当該文字領域に含まれる全ての文字画像がアウトライン処理されたかどうか判断し、アウトライン処理が終了した場合はステップＳ７１４に進み、終了していないと判断した場合は次の文字画像を処理対象にしてステップＳ７０３に戻る。
【００６５】
なお、本実施例では、ステップＳ７０４、Ｓ７０８、Ｓ７１１などで失敗やＮＧと判断された場合、当該文字領域全体の２値画像を出力するようにしたが、これに限るものではなく、当該処理中の文字画像部分だけの２値画像を出力してステップＳ７１３に進むようにしてもよい。
【００６６】
（その他の実施例）
以上、実施例を詳述したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体（記録媒体）等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００６７】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給する。そして、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００６８】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００６９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【００７０】
プログラムを供給するための記録媒体としては、例えば、以下のようなものがある。フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）。
【００７１】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットからハードディスク等の記録媒体にダウンロードすることによっても供給できる。すなわち、インテーネットから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるサーバからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるサーバも、本発明に含まれるものである。
【００７２】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他にも、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００７３】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後にも前述した実施形態の機能が実現される。すなわち、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行うことによっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００７４】
【図１】実施例１の処理を説明したフローチャートである。
【図２】本発明を適用できる画像処理装置の概略ブロック図である。
【図３】出力ファイルのフォーマット例である。
【図４】アウトライン化する図形画像の例である。
【図５】実施例２の処理を説明したフローチャートである。
【図６】実施例２のアウトラインデータの評価処理を説明したフローチャートである。
【図７】実施例３の処理を説明したフローチャートである。
【図１】
2007305034.tif 000003
【図２】
2007305034.tif 000004
【図３】
2007305034.tif 000005
【図４】
2007305034.tif 000006
【図５】
2007305034.tif 000007
【図６】
2007305034.tif 000008
【図７】
2007305034.tif 000009