(57)【特許請求の範囲】
【請求項１】
画像に含まれるオブジェクトをベクトル化して出力する画像処理装置であって、
前記オブジェクトの輪郭線上において、（ｉ）凸に屈曲した屈曲点を有する凸部領域と、（ｉｉ）凹に屈曲した屈曲点を有する凹部領域と、（ｉｉｉ）相隣接する屈曲点の間で予め定められた曲率より大きい曲率を有する曲線領域と、を歪みの発生しやすい評価対象領域として特定し、当該特定した評価対象領域において、前記オブジェクトと該オブジェクトをベクトル化したベクトル化オブジェクトとのそれぞれの形状を比較して、前記オブジェクトのベクトル化において発生した歪みの大きさを示す歪量を各評価対象領域について算出する算出手段と、
前記歪量と予め定められた基準値とを比較し、前記歪量が前記基準値よりも大きいと判断された評価対象領域における前記ベクトル化オブジェクトの形状を、前記オブジェクトの形状に近づけて前記歪量を低減するように修正する修正手段と、を備え、
前記修正手段は、
（ｉ）前記歪量が前記基準値よりも大きいと判断された前記ベクトル化オブジェクトの前記凸部領域において、前記オブジェクトの前記凸に屈曲した屈曲点に対応する点にアンカーポイントを設定し、
（ｉｉ）前記歪量が前記基準値よりも大きいと判断された前記ベクトル化オブジェクトの前記凹部領域において、前記オブジェクトの前記凹に屈曲した屈曲点に対応する点にアンカーポイントを設定し、
（ｉｉｉ）前記歪量が前記基準値よりも大きいと判断された前記ベクトル化オブジェクトの前記曲線領域において、前記オブジェクトの前記曲線領域に対応する点にコントロールポイントを移動させる、
ことによって前記ベクトル化オブジェクトの形状を修正し、
前記修正手段は、前記歪量が前記基準値よりも大きいと判断された前記ベクトル化オブジェクトの相隣接する２つの前記凸部領域について前記ベクトル化オブジェクトの形状を修正する場合に、当該２つの前記凸部領域について輪郭線上に並ぶ４つのアンカーポイントのうち、中２つのアンカーポイントを結ぶ第１の線分が端２つのアンカーポイントそれぞれから延びる第２の線分と直交するならば、前記第１の線分と前記第２の線分それぞれとが交わる点にアンカーポイントを設定して、前記４つのアンカーポイントを消去する、
ことを特徴とする画像処理装置。
【請求項２】
前記算出手段は、前記オブジェクトと前記ベクトル化オブジェクトとを重ね合わせて、それぞれの形状を比較し、前記オブジェクトの輪郭と前記ベクトル化オブジェクトの輪郭との間に発生する差分を前記歪量として算出することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記差分は、前記オブジェクトの輪郭と前記ベクトル化オブジェクトの輪郭との内、一方の輪郭上において着目された点から法線方向の距離であることを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記算出手段は、前記オブジェクトの輪郭線上において、（ｉｖ）相隣接する屈曲点の間において、前記オブジェクトが線芯化された芯線と平行である第１の直線形状領域と、（ｖ）前記ベクトル化オブジェクトの輪郭が、前記ベクトル化オブジェクトに外接する外接矩形の縦方向と横方向の長さの内、短い方の長さの半分以上の長さを有する直線である第２の直線形状領域と、をさらに前記評価対象領域として特定し、
前記修正手段は、
（ｉｖ）前記ベクトル化オブジェクトの前記第１の直線形状領域において、当該第１の直線形状領域の前記芯線に対する太さが一定となるようにアンカーポイントを移動し、
（ｖ）前記ベクトル化オブジェクトの前記第２の直線形状領域において、曲線近似を行うことによって、前記ベクトル化オブジェクトの形状を修正する、
ことを特徴とする請求項１乃至３のいずれか１項記載の画像処理装置。
【請求項５】
前記屈曲点が、前記オブジェクトの輪郭上に位置する画素列の角度が予め定められた角度以上に屈曲した点であることを特徴とする請求項４記載の画像処理装置。
【請求項６】
画像に含まれるオブジェクトをベクトル化して出力する画像処理装置において実行される画像処理方法であって、
前記画像処理装置の算出手段が、前記オブジェクトの輪郭線上において、（ｉ）凸に屈曲した屈曲点を有する凸部領域と、（ｉｉ）凹に屈曲した屈曲点を有する凹部領域と、（ｉｉｉ）相隣接する屈曲点の間で予め定められた曲率より大きい曲率を有する曲線領域と、を歪みの発生しやすい評価対象領域として特定し、当該特定された評価対象領域において、前記オブジェクトと該オブジェクトをベクトル化したベクトル化オブジェクトとのそれぞれの形状を比較して、前記オブジェクトのベクトル化において発生した歪みの大きさを示す歪量を各評価対象領域について算出する算出工程と、
前記画像処理装置の修正手段が、前記歪量と予め定められた基準値とを比較し、前記歪量が前記基準値よりも大きいと判断された評価対象領域における前記ベクトル化オブジェクトの形状を、前記オブジェクトの形状に近づけて前記歪量を低減するように修正する修正工程と、を有し、
前記修正工程は、
（ｉ）前記歪量が前記基準値よりも大きいと判断された前記ベクトル化オブジェクトの前記凸部領域において、前記オブジェクトの前記凸に屈曲した屈曲点に対応する点にアンカーポイントを設定し、
（ｉｉ）前記歪量が前記基準値よりも大きいと判断された前記ベクトル化オブジェクトの前記凹部領域において、前記オブジェクトの前記凹に屈曲した屈曲点に対応する点にアンカーポイントを設定し、
（ｉｉｉ）前記歪量が前記基準値よりも大きいと判断された前記ベクトル化オブジェクトの前記曲線領域において、前記オブジェクトの前記曲線領域に対応する点にコントロールポイントを移動させる、
ことによって前記ベクトル化オブジェクトの形状を修正し、
前記修正工程は、前記歪量が前記基準値よりも大きいと判断された前記ベクトル化オブジェクトの相隣接する２つの前記凸部領域について前記ベクトル化オブジェクトの形状を修正する場合に、当該２つの前記凸部領域について輪郭線上に並ぶ４つのアンカーポイントのうち、中２つのアンカーポイントを結ぶ第１の線分が端２つのアンカーポイントそれぞれから延びる第２の線分と直交するならば、前記第１の線分と前記第２の線分それぞれとが交わる点にアンカーポイントを設定して、前記４つのアンカーポイントを消去する、
ことを特徴とする画像処理方法。
【請求項７】
請求項６記載の画像処理方法の各工程をコンピュータに実行させる画像処理プログラム。
【請求項８】
請求項７記載の画像処理プログラムを格納するコンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャナ等で入力された文書におけるオブジェクトのベクトル化における歪みを低減する画像処理装置に関する。
【背景技術】
【０００２】
従来、画像のベクトル化については、ワードプロセッサ等で用いられるフォント（文字書体）を対象としたベクトル化技術が広く知られている。フォント（文字書体）を対象としたベクトル化の技術は、予め美しくデザインされた文字のみを入力対象としている。ベクトル化の際には、アナログ的に作成された１文字を５１２×５１２画素や１０２４×１０２４画素等の比較的大きなサイズの２値画像としてデジタイズし、輪郭をベクトル化している。
【０００３】
ベクトル化されたデータは、基本的には、各種の所望のサイズに拡大してもスムーズな輪郭表現が可能なことから、一般的に、形状の品質が良いとされている。更に、各種のサイズの文字を、１つのデータに基づいて生成可能であるので、簡便であり、また、データ量を削減することができるという利点がある。そのため、特許文献１のように、フォント（文字書体）のみならず、一般的な２値画像に対しても、それらの特徴を生かした効果を目的とし、ベクトル処理を施す技術が提案されている。また、ベクトル化されたデータは、基本的には座標値を基本とした数値データであるので、コンピュータでの編集処理等も容易である。そのため、特許文献２のように、フルカラーの部分を含む読み取り画像に対するベクトル化に関する提案もされている。
【０００４】
なお、特許文献１の前提となる２値画像のベクトル化に関しては、特許文献３においても開示されている。特許文献３においては、画像データにおける注目画素と、その近傍画素の状態を保持し、この注目画素をラスタ走査順に取り出し、その注目画素とその近傍画素の状態に基づいて、水平方向及び垂直方向の画素間ベクトルを検出する構成が開示されている。更には、これら画素間ベクトル同士の接続状態を判別し、判別された画素間ベクトルの接続状態をもとに、画像データの輪郭を抽出する手法が提案されている。その手法によって、画像中の全ての輪郭線を１回のラスタ走査順だけで抽出でき、かつ、全画像データを記憶するための画像メモリを必要としないので、メモリの容量を低減することができるとされている。また、入力画像の画素の中心位置ではなく、画素の縁単位に輪郭を抽出することにより、１画素幅の細線に対しても有為な幅を有する輪郭線を抽出することができるとされている。
【０００５】
また、文字にベクトル化技術を適用した際に、ベクトル化の近似精度が悪く、ベクトル化対象の文字とベクトル化された文字との間で輪郭が一致せず、その結果、ベクトル化において特有の歪みが発生する場合が多い。そのような課題について、特許文献４においては、輪郭ベクトルの所定数の端点の位置を一度に調整しながら、与えられた輪郭点と輪郭ベクトルとの距離関数を求め、ノルムが最小となる輪郭ベクトルを得る方法が開示されている。しかしながら、処理時間を低減することについては特に記載されていないので、製品の実装に適用することは難しい。
【特許文献１】特許３０４９６７２号公報（段落［００７８］）
【特許文献２】特許２８４５１０７号公報（段落［０００４］、［０００５］）
【特許文献３】特許３０２６５９２号公報（第１４頁）
【特許文献４】特開平０５−３５８７１号公報（段落［００１８］）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、上記の点に鑑み、本発明は、ベクトル化されたオブジェクトに発生する歪を低減する処理において、処理時間の増大を抑止することができる画像処理装置を提供する。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明に係る画像処理装置は、画像に含まれるオブジェクトをベクトル化して出力する画像処理装置であって、前記オブジェクトの輪郭線上において、（ｉ）凸に屈曲した屈曲点を有する凸部領域と、（ｉｉ）凹に屈曲した屈曲点を有する凹部領域と、（ｉｉｉ）相隣接する屈曲点の間で予め定められた曲率より大きい曲率を有する曲線領域と、を歪みの発生しやすい評価対象領域として特定し、当該特定した評価対象領域において、前記オブジェクトと該オブジェクトをベクトル化したベクトル化オブジェクトとのそれぞれの形状を比較して、前記オブジェクトのベクトル化において発生した歪みの大きさを示す歪量を各評価対象領域について算出する算出手段と、前記歪量と予め定められた基準値とを比較し、前記歪量が前記基準値よりも大きいと判断された評価対象領域における前記ベクトル化オブジェクトの形状を、前記オブジェクトの形状に近づけて前記歪量を低減するように修正する修正手段と、を備え、前記修正手段は、（ｉ）前記歪量が前記基準値よりも大きいと判断された前記ベクトル化オブジェクトの前記凸部領域において、前記オブジェクトの前記凸に屈曲した屈曲点に対応する点にアンカーポイントを設定し、（ｉｉ）前記歪量が前記基準値よりも大きいと判断された前記ベクトル化オブジェクトの前記凹部領域において、前記オブジェクトの前記凹に屈曲した屈曲点に対応する点にアンカーポイントを設定し、（ｉｉｉ）前記歪量が前記基準値よりも大きいと判断された前記ベクトル化オブジェクトの前記曲線領域において、前記オブジェクトの前記曲線領域に対応する点にコントロールポイントを移動させる、ことによって前記ベクトル化オブジェクトの形状を修正し、前記修正手段は、前記歪量が前記基準値よりも大きいと判断された前記ベクトル化オブジェクトの相隣接する２つの前記凸部領域について前記ベクトル化オブジェクトの形状を修正する場合に、当該２つの前記凸部領域について輪郭線上に並ぶ４つのアンカーポイントのうち、中２つのアンカーポイントを結ぶ第１の線分が端２つのアンカーポイントそれぞれから延びる第２の線分と直交するならば、前記第１の線分と前記第２の線分それぞれとが交わる点にアンカーポイントを設定して、前記４つのアンカーポイントを消去する、ことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ベクトル化されたオブジェクトに発生する歪を低減する処理において、処理時間の増大を抑止することができる。
【発明を実施するための最良の形態】
【０００９】
以下に、本発明を実施するための最良の形態について、図面を参照しながら詳しく説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１０】
図１は、本発明に係る実施形態における画像処理装置のブロック構成を示す図である。図１に示すように、本画像処理装置は、スキャン部１０１、スキャンデータファイル化部１０２、ハードディスク１０３、出力ファイル生成部１０４、出力部１０５を含んでいる。本実施形態において、画像処理装置として、例えば、複数の機能が搭載されたＭＦＰ（MultiFunction Peripheral：多機能周辺装置）が用いられても良い。図２は、スキャンデータファイル化部１０２の機能構成を示すブロック図である。図２に示すように、スキャンデータファイル化部１０２は、ブロックセレクション部２０１、ＪＰＥＧ圧縮部２０２、ベクトル化部２０３、統合部２０４、メモリ２０５、歪低減部２０６、ＣＰＵ２０７、出力部２０８を含んでいる。
【００１１】
ここで、本画像処理装置には、コピー機能と、スキャンデータをファイル化して内部のハードディスクに蓄積又はＰＣに送信するセンド機能が搭載されている。本画像処理装置は、コピー時においては、６００ｄｐｉでスキャンが行われる。一方、センド時においては、６００ｄｐｉ又は３００ｄｐｉのいずれかがユーザにより選択され、スキャンが行われる。ここで、本実施形態においては、センド機能が関係するので、以下、センド機能に限定して説明する。また、６００ｄｐｉ又は３００ｄｐｉのいずれのスキャンデータでも適用される処理は同じであるので、以下、３００ｄｐｉでスキャンする場合について説明する。
【００１２】
まず、ユーザから３００ｄｐｉでスキャン指示を受けると、画像処理装置はスキャンデータファイル化部１０２にスキャンデータを送信する。スキャンデータファイル化部１０２は、スキャンデータに対してベクトル化などの様々な画像処理を加え、ＰＤＦ等のファイルフォーマットとしてデータを纏め、ハードディスク１０３に出力する。本実施形態において、ハードディスク１０３は、本画像処理装置の内部のハードディスクとしているが、ネットワーク上に接続されているＰＣやその他の記憶媒体であっても良い。
【００１３】
図３は、スキャンデータファイル化部１０２の処理の手順を示すフローチャートである。以下、図２及び図３を参照しながら、スキャンデータファイル化部１０２の処理の手順について説明する。まず、ステップＳ３０１において、ブロックセレクション部２０１は、外部から入力された文書画像（入力画像）を文字、背景、写真、線画の４種類の領域に分割する。以下、分割された文字、背景、写真、線画を、オブジェクトともいう。領域分割されたオブジェクトは、メモリ２０５に格納されるようにしても良い。次に、ステップＳ３０２において、文字領域をベクトル化部２０３に送信し、入力画像をＪＰＥＧ圧縮部２０２に送信する。ＪＰＥＧ圧縮部２０２は、入力画像中の文字領域を所定の色（例えば、各文字領域の周辺要素の色から求めた平均色）で塗りつぶした上で、ＪＰＥＧ圧縮を行い、圧縮された符号列をＪＰＥＧデータとしてメモリ２０５に送信する。なお、本実施形態では、文字領域を塗りつぶした入力画像全体をＪＰＥＧ圧縮するものとしたが、文字領域（ベクトル化対象の領域）以外の領域毎にＪＰＥＧ圧縮して保存するような形態にしても良い。また、本実施形態では、文字領域をベクトル化する例について説明するが、線画や表罫線などもベクトル化するように構成しても良い。ステップＳ３０３において、ベクトル化部２０３は、文字領域中の文字の輪郭を抽出してベクトル化を行い、ベクトル化された文字をベクトル化データとしてメモリ２０５に出力する。ベクトル化部２０３によるベクトル化の方法については、後述する。ステップＳ３０４において、ＣＰＵ２０７は、入力された画像全体の処理が終了した時点で、残された処理時間に余裕があるか否かを判定する。ここで、余裕があると判定された場合には、ステップＳ３０５に進み、ＣＰＵ２０７は歪低減部２０６に処理の実行を指示し、歪低減部２０６は、その指示により歪みを低減する処理を行う。歪低減部２０６の動作については、後述する。歪低減部２０６が処理を終了すると、ステップＳ３０６において、歪低減部２０６はメモリにデータを出力し、ＣＰＵ２０７は、そのデータ出力を確認すると統合部２０４に統合処理を指示する。統合部２０４は、ＣＰＵからの指示を受けると、ＪＰＥＧデータとベクトル化データとをＰＤＦ等のファイルフォーマットに統合して出力する。一方、ステップＳ３０４において、余裕がないと判定された場合には、歪低減処理を行わずにステップＳ３０６に進み、ＪＰＥＧデータとベクトル化データとを統合するデータ統合処理が行われる。その場合には、歪低減処理が行われた場合に比べ、画質は低下する。また、ステップＳ３０４における判定は、例えば、ＣＰＵ２０７が、残された処理時間を予め定められた基準時間と比較することによって行われても良い。
【００１４】
図４は、ベクトル化部２０３の機能構成を示すブロック図である。図４に示すように、ベクトル化部２０３は、粗輪郭抽出部４０１、アンカーポイント／コントロールポイント決定部４０２、アンカーポイント／コントロールポイント書き出し部４０３を含んでいる。以下、アンカーポイントを「ＡＰ」ともいい、コントロールポイントを「ＣＰ」ともいう。粗輪郭抽出部４０１は、入力された文字領域を２値化して粗輪郭を抽出し、メモリ２０５に出力する。ここで、粗輪郭とは、図６の四角部分に示すように、文字の輪郭を追跡したときに追跡方向が変わる点と点とを結んだ直線の集まりのことであり、ベクトル化部２０３からメモリ２０５には、点の情報のみが粗輪郭データとして出力される。アンカーポイント／コントロールポイント決定部４０２は、粗輪郭データに基づいて、ＡＰとＣＰとを決定する。更に、アンカーポイント／コントロールポイント書き出し部４０３は、決定されたアンカーポイントとコントロールポイントをメモリ２０５に出力する。次に歪低減部２０６の処理について説明する。
【００１５】
図５は、歪低減部２０６の機能構成を示すブロック図である。図５に示すように、歪低減部２０６は、文字データ取得部５０１、位置合わせ部５０２、評価対象領域特定部５０３、歪量測定部５０４、修正部５０５を含んでいる。次に、図５及び図７を参照しながら、歪低減部２０６の処理について説明する。
【００１６】
図７は、歪低減部２０６の処理の手順を示すフローチャートである。まず、ステップＳ７０１において、歪低減部２０６が、ＣＰＵ２０７から処理の指示を受けると、文字データ取得部５０１が、リファレンス文字のラスタデータと評価対象文字のベクトルデータとをメモリ２０５から取得する。ここで、リファレンス文字とは、ベクトル化対象の文字画像をいい、図３におけるステップＳ３０３より前、例えばステップＳ３０１の結果、出力される文字を示す。また、評価対象文字とは、ベクトル化で得られる文字（ベクトル化オブジェクトともいう）をいい、図３におけるステップＳ３０３の結果、出力される文字を示す。次に、ステップＳ７０２において、歪みを測定する上で、図８に示すように、リファレンス文字と評価対象文字を重ね合わせることにより、輪郭のずれ量に着目し、位置合わせを行う。位置合わせの方法は一般的に知られており、例えば、まず、評価対象文字のベクトルデータがラスタライズされ、ラスタ画像が生成される。そして、「２つの画像間の画素値の差分和の算出」と、「一方の画像を他方に対して１画素移動」の２つの処理を繰り返し行い、差分和が最小となる位置関係が求められて、２つの画像の位置合わせを行う。ステップＳ７０３において、後述する評価対象領域が特定され、ステップＳ７０４において、評価対象領域における歪量が測定され、ステップＳ７０５において、歪みを低減して修正する歪低減化処理が行われる。以下、更に、ステップＳ７０３〜Ｓ７０５の処理について説明する。
【００１７】
ステップＳ７０３においては、視覚的に与える影響が大きく、ベクトル化において特に歪みが発生しやすい領域を特定する。本実施形態において、そのような歪みの発生しやすい領域を評価対象領域とする。図９は、評価対象領域を説明する図である。図９に示すように、丸印で囲まれた部分が評価対象領域とされる。本実施形態においては、凹部領域、凸部領域、曲線領域、直線型面領域、直線近似領域の５つの領域が特定される。特に、凹部領域、凸部領域、曲線領域、直線型面領域は、リファレンス文字上で特定される。凹部領域及び凸部領域は、図９の丸印で示すようにリファレンス文字中の凹部領域及び凸部領域が歪んでしまうと視覚的に与える影響が大きいので、評価対象領域として特定される。また、曲線領域及び直線型面領域は、図９の丸印で示すようにリファレンス文字中の曲線領域及び直線領域の太さが変化してしまうと視覚的に与える影響が大きいので、評価対象領域として特定される。以下、直線型面領域は直線形状をしていることから、第１の直線形状領域ともいう。また、図９の丸印で示すように、比較的長く、かつ、曲率が大きい曲線領域が直線近似されてしまうと視覚的に与える影響が大きいので、直線近似領域が、評価対象文字上で評価対象領域として特定される。以下、直線近似領域は、直線形状をしていることから、第２の直線形状領域ともいう。次に、図７に示すステップＳ７０３におけるそれぞれの領域の特定方法について説明する。以上の５種類の評価対象領域は、一つの文字内で重複していても良い。例えば、横方向に長い直線型面領域の端部が、凸部領域となる場合もある。
【００１８】
図１０は、凹部領域、凸部領域、曲線領域を特定する処理の手順を示すフローチャートである。まず、ステップＳ１００１において、リファレンス文字の輪郭上の画素列を追跡することにより得られた画素列から屈曲点を抽出する。図１１は、屈曲点について説明する図である。屈曲点とは、図１１に示すように、画素列の角度が予め定められた角度以上に屈曲した箇所をいい、後のステップにおいて、凹点又は凸点に分類される。屈曲点の抽出方法については、一般的に広く知られている。図１１に示すように、例えば、リファレンス文字の輪郭上の各画素を追跡する中で、画素Ｐ０を着目する。着目された画素Ｐ０について、その前後にＫ画素分離れた点Ｐ１及びＰ２を設定し、線分Ｐ０−Ｐ１と線分Ｐ０−Ｐ２とが成す角度の余弦値Ｃが計算される。その余弦値Ｃが所定値（例えば、−０．６５）以上である場合に、画素Ｐ０が屈曲点として抽出される。
【００１９】
次に、ステップＳ１００２において、屈曲部と屈曲部間領域とを決定する。図１２は、屈曲部と屈曲部間領域とについて説明する図である。屈曲部とは、図１２に示すように、屈曲点とリファレンス文字輪郭上の屈曲点の近傍画素とを合わせた部分をいう。ここで、近傍画素とは、屈曲点から、リファレンス文字の外接矩形の縦方向と横方向の長さの内、短い長さの１／１０の距離以内に存在する画素列をいう。本実施形態において、屈曲点が凸点に分類された屈曲部を凸部領域ともいう。また、屈曲点が凹点に分類された屈曲部を凹部領域ともいう。また、図１２に示すように、リファレンス文字輪郭上の相隣接する２つの屈曲部により挟まれた領域を屈曲部間領域とし、後のステップにおいて、屈曲部間領域が曲線領域であるか否かが判定される。
【００２０】
ステップＳ１００３において、屈曲点が凹点と凸点とに分類される。分類方法については、図１３に示すように、屈曲点から見て輪郭追跡方向を逆方向とした場合に、外積が正であれば凸点と決定し、負であれば凹点と決定して分類する。次に、ステップＳ１００４において、屈曲部間領域に基づいて曲線領域を特定する。曲線領域は、屈曲部間領域が予め定められた曲率より大きいか否かで判定される。本実施形態における曲率は、図１４に示すように、屈曲点同士を結ぶ直線とリファレンス文字の輪郭との間の距離における最大距離と平均距離の差ｄｉｆｆに注目し、次式（１）によって求められる。
【００２１】
ｄｉｆｆ＝ａｂｓ（ｍａｘｄｉｓｔ−ａｖｅｄｉｓｔ）  ・・・（１）
ここで、「ｍａｘｄｉｓｔ」は、最大距離を示し、「ａｖｅｄｉｓｔ」は平均距離を示す。また、「ａｂｓ」とは絶対値を取得する関数を示す。本実施形態においては、差ｄｉｆｆが予め定められた基準値より大きい場合に、屈曲部間領域を曲線領域として特定する。  図１５は、直線型面領域を特定する方法を説明する図である。ここでは、文字ではなく図形を用いているが、文字に適用されても良い。本実施形態において、リファレンス文字に対して線芯化処理（芯線化処理ともいう）を行い、線芯化された各芯線と輪郭までの距離がほぼ一定であると判断したリファレンス文字上の領域を直線型面領域として特定する。ここで、そのような特定は、リファレンス文字の縦方向、横方向、又は、斜め方向において同様に行われる。また、後の歪みの低減化処理のために、直線型面領域の太さ、即ち、上述の距離がメモリ２０５に記憶される。なお、線芯化処理（芯線化処理）とは、対になる輪郭線の真ん中を通る線を求める処理であり、公知の技術を用いることができる。
【００２２】
直線近似領域は、評価対象文字に対する図６で説明したような粗輪郭抽出で抽出された粗輪郭の直線部分であって、かつ、文字の外接矩形の縦方向と横方向の長さの内、短い方の長さの半分以上の長さを有する部分を直線近似領域として特定する。
【００２３】
ステップＳ７０４において、評価対象領域として特定された５種類の領域について、歪量を算出する。凹部領域と凸部領域と曲線領域と直線型面領域については、まず、図１６に示すように、リファレンス文字輪郭上の特定領域内の１つの画素（以下、着目点とする）から法線方向に直線を引く。次に、直線と評価対象文字上の輪郭とぶつかる点（以下、対応点とする）を見つけ、２点間の距離を測定し、着目点における誤差量とする。その誤差量の算出を、注目する特定領域内の全画素に対して行い、総和を求めて、１画素あたりの誤差量の平均値を歪量として算出する。この歪量が閾値（以下、基準値ともいう）以上である領域については、ステップＳ７０５において、歪みの低減化処理が行われる。
【００２４】
なお、対応点を見つける上で注意すべきことがあり、図１７に示すように、本来取るべき対応点と逆の方向に文字の輪郭がある場合には、別の対応点が存在することになるので、いずれが正しい対応点であるかを判断しなければならない。そこで本実施形態においては、着目点と対応点を結ぶ直線について考え、正しい対応点か否かを判断する。即ち、位置合わせ画像において、図１７のケース１に示すように、着目点の位置が評価対象文字に重なっている場合に、着目点と正しい対応点を結ぶ直線は、評価対象文字領域を通過し、それ以外の評価対象文字とリファレンス文字が重なる領域等を通過しない。従って、そのようなケースで対応点が２つある場合には、直線が評価対象文字領域のみを通過する対応点を正しい対応点として選択する。
【００２５】
一方、図１７のケース２に示すように、位置合わせ画像において着目点の位置が評価対象文字に重なっていない場合に、正しい対応点と着目点を結ぶ直線は、リファレンス文字内部を通過する。かつ、その直線は、２つの文字が重なる領域や、いずれの文字の内部とならない領域（即ち、２つの文字の外部領域）を通過しない。従って、そのようなケースで対応点が２つある場合には、直線がリファレンス文字領域のみを通過する対応点を正しい対応点として選択する。本実施形態においては、着目点の位置が評価対象文字に重なっている場合といない場合において、それぞれで対応点が２つ発生した場合に、上記に従って正しい対応点を判断することができる。
【００２６】
直線近似領域については、評価対象文字とリファレンス文字との輪郭間で差ｄｉｆｆを取り、差ｄｉｆｆが閾値以上である場合に、曲率の大きな輪郭が直線化されたとし、歪みの低減化処理の対象とする。また、直線近似領域の場合に、着目点は、既に説明したとおり、評価対象文字の輪郭上にあるので、対応点を検出する処理は、上述の正しい対応点を判断する説明において、評価対象文字とリファレンス文字とを逆にした説明の処理となる。
【００２７】
次に、ステップＳ７０５において、歪みの低減化が行われる。本実施形態においては、歪量が閾値以上である領域について、各領域種別毎に最適な低減化処理を施す。
【００２８】
図１８は、凹部領域における歪みの低減化方法を説明する図である。本実施形態においては、図１８に示すように、検出されている凹点にアンカーポイントを設定する。その結果、凹点を含めたアンカーポイント間のベクトル列によって、凹部領域に発生した歪みを低減化することができる。
【００２９】
図１９は、凸部領域における歪みの低減化方法を説明する図である。本実施形態においては、図１９に示すように、検出されている凸点にアンカーポイントを設定する。その結果、凸点を含めたアンカーポイント間のベクトル列によって、凸部領域に発生した歪みを低減化することができる。また、図２０は、凸部領域における歪みの他の低減化方法を説明する図である。図２０においては、相隣接する２つの屈曲点が２つとも凸点である。また、評価対象文字上のアンカーポイント４つ（Ａ〜Ｄ）の内、中２つのアンカーポイント（ＢとＣ）を結ぶ線分ＢＣが、Ｘ軸又はＹ軸に対して、平行に配置されているとする。更に、端２つのアンカーポイント（ＡとＤ）から延びている輪郭が、ＢＣに直交する方向に長い線分である場合には、アンカーポイントは、細長い面型直線の端領域に設定されていると考えられる。そこで、４つのアンカーポイントを消去して、新たに、線分ＢＣとそれぞれの長い線分が交わる点にアンカーポイントを設定する。そのような方法を用いることによって、アンカーポイントを削除して数を減らし、ファイルサイズを低減することができる。また、スキャンした文字の角の部分（凸点）はスキャンノイズのために、画素欠陥等が発生している場合がある。そのような文字に対してどのように精度良くベクトル化を行ったとしても、元々文字が持っている形状を表現することはできない。しかしながら、説明した手法を用いることで、本来文字が持っていた角を再現することができる。
【００３０】
以上のように、本実施形態においては、図１８〜２０に示すように、アンカーポイントを新たに設定又は削除することによって、凸部領域又は凹部領域に発生した歪みを低減することができる。
【００３１】
次に、曲線領域における歪みの低減化方法について説明する。図２１は、図１８〜図２０と同様に、曲線領域においてアンカーポイントを新たに設定した場合を説明する図である。凹部領域や凸部領域と同様にアンカーポイントを新たに設定すると、図２１に示すように、曲線中に窪みが生成されてしまい、品位が低下してしまう。また、生成された窪みを細分化するために更に、新たにアンカーポイントを設定すると、処理時間も増大してしまう。図２２は、本実施形態における曲線領域における歪みの低減化方法を説明する図である。本実施形態においては、図２２に示すように、コントロールポイントを移動させることによって歪みを低減する。具体的には、リファレンス文字の輪郭と比べて評価対象文字の輪郭が外側に張り出している場合に、コントロールポイントを輪郭側に近づける。近づける距離としては、例えば、コントロールポイントとリファレンス文字の輪郭間の距離の半分とする。逆に、リファレンス文字の輪郭と比べて評価対象文字の輪郭が内側にある場合に、外側に張り出させる必要があるので、コントロールポイントを文字の外側方向に移動させる。移動させる距離としては、例えば、コントロールポイントとリファレンス文字の輪郭間との距離の半分とする。
【００３２】
以上のように、本実施形態においては、図２２に示すようにコントロールポイントを操作することによって、曲線領域に発生した歪みを低減することができる。
【００３３】
次に、直線型面領域における歪みの低減化方法について説明する。図１５において説明したように、リファレンス文字の輪郭から直線型面領域を特定する過程において、太さを求めている。従って、本実施形態においては、評価対象文字の輪郭上の対応する領域をその太さになるようにアンカーポイントを移動する。その結果、直線型面領域において発生した歪みを低減することができる。
【００３４】
次に、直線近似領域における歪みの低減化方法について説明する。図９において説明したように、長い直線近似領域における歪みは、本来、曲線であるべき部分に歪みが発生して直線に近似されたものである。従って、本実施形態においては、評価対象文字上のアンカーポイント間に、例えば、３次曲線をあてはめるといった一般的に知られている高次関数での曲線近似を行うことによって、直線近似領域に発生した歪みを低減することができる。ここで、３次曲線に限定されず、２次以上の高次曲線（ｎ次曲線、ｎ＞＝２）で近似するようにしても良い。
【００３５】
以上のように、本実施形態においては、アンカーポイントを移動することによって、直線型面領域に発生した歪みを低減することができ、ｎ次関数近似の手法を用いることにより、直線近似領域に発生した歪みを低減することができる。
【００３６】
本実施形態においては、文字のベクトル化における歪みが発生する領域を５種類に分類し、それぞれの領域に応じて最適な歪みの低減方法を適用している。その結果、単に、リファレンス文字と評価対象文字との輪郭間の誤差量を、文字全体について画一的に低減させる手法よりも、処理時間や品位において効率的に歪みを低減することができる。また、本実施形態においては、歪みの尺度として法線方向の誤差を用いて説明したが、Ｘ軸方向の誤差やＹ軸方向の誤差等、輪郭間の誤差を定義できるのであれば、他の尺度を用いても良い。
【００３７】
また、以上の説明におけるベクトル化歪みを効率的に低減させるためのアルゴリズムは、ソフトウェア、ハードウェア、又は、ソフトウェアとハードウェアの両方を用いることによって実現されるようにしても良い。例えば、最初のベクトル化についてはソフトウェアによって実現され、歪低減処理には複雑な演算処理が必要となるのでハードウェアで実現されるようにしても良い。
【００３８】
また、歪低減処理のスピードアップを図るため、システム全体の中で空いているリソースを適宜利用するようにしても良い。例えば、ブロックセレクション用とベクトル化用に２つのＣＰＵを構成し、メモリは２つのＣＰＵが同時にアクセス可能なデュアルポート対応とする。ブロックセレクション処理が中断している間、又は、完了している場合には、ベクトル化処理のためにブロックセレクション用のＣＰＵを用いることもできる。また他の例として、例えば、ベクトル化処理の前段に位置するブロックセレクション処理において非常に複雑な処理を行う場合に、一部又は全部をハードウェア実装として、リアルタイム処理を可能とすることが考えられる。もし、ハードウェア実装されたブロックセレクションがベクトル化処理の前段にある場合には、ベクトル化処理時において、ブロックセレクションに割り当てられたハードウェア資源が活用されない時間が発生する場合がある。そのような時間において、ハードウェア資源をベクトル化処理のために活用できるようにしても良い。また、本実施形態においては、文字の歪低減手法が、文字の他に、ベクトル化された線画やクリップアートに対して適用されても良い。
【００３９】
本実施形態において、ホスト及び端末の機能を実現するソフトウェアのプログラムコードを記憶したコンピュータ読み取り可能なプログラム記録媒体（記憶媒体ともいう）が、システム或いは装置に供給されるようにしても良い。その場合に、更に、システム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読みだして実行しても良い。その場合、記憶媒体から読み出されたプログラム（画像処理プログラム）コード自体が、本実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することとなる。プログラムコードを供給するための記憶媒体としては、ＲＯＭ、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード等を用いることができる。また、コンピュータが読みだしたプログラムコードを実行して、本実施形態の機能が実現されるだけでなく、プログラムコードの指示に基づきコンピュータ上で稼動しているＯＳ等が実際の処理の一部又は全部を行い、本実施形態が実現される場合も含まれる。記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された拡張機能ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる場合がある。その後に、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって本実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００４０】
【図１】本発明に係る実施形態における画像処理装置のブロック構成を示す図である。
【図２】スキャンデータファイル化部の機能構成を示すブロック図である。
【図３】スキャンデータファイル化部の処理の手順を示すフローチャートである。
【図４】ベクトル化部の機能構成を示すブロック図である。
【図５】歪低減部の機能構成を示すブロック図である。
【図６】ベクトル化部において抽出される粗輪郭について説明する図である。
【図７】歪低減部の処理の手順を示すフローチャートである。
【図８】歪低減部における位置合わせについて説明する図である。
【図９】文字上で特定される領域を説明する図である。
【図１０】凹部領域、凸部領域、曲線領域を特定する処理の手順を示すフローチャートである。
【図１１】屈曲点について説明する図である。
【図１２】屈曲部と屈曲部間領域について説明する図である。
【図１３】屈曲点を凹点と凸点とに分類する方法について説明する図である。
【図１４】曲線領域を特定する方法を説明する図である。
【図１５】直線型面領域を特定する方法を説明する図である。
【図１６】歪量を算出する方法について説明する図である。
【図１７】正しい対応点を判定する方法を説明する図である。
【図１８】凹部領域における歪みの低減化方法を説明する図である。
【図１９】凸部領域における歪みの低減化方法を説明する図である。
【図２０】凸部領域における歪みの他の低減化方法を説明する図である。
【図２１】曲線領域においてアンカーポイントを新たに設定した場合を説明する図である。
【図２２】曲線領域における歪みの低減化方法を説明する図である。
【符号の説明】
【００４１】
１０１  スキャン部
１０２  スキャンデータファイル化部
１０３  ハードディスク
１０４  出力ファイル生成部
１０５  出力部
２０１  ブロックセレクション部
２０２  ＪＰＥＧ圧縮部
２０３  ベクトル化部
２０４  統合部
２０５  メモリ
２０６  歪低減部
２０７  ＣＰＵ
２０８  出力部
４０１  粗輪郭抽出部
４０２  アンカーポイント／コントロールポイント決定部
４０３  アンカーポイント／コントロールポイント書き出し部
５０１  文字データ取得部
５０２  位置合わせ部
５０３  評価対象領域特定部
５０４  歪量測定部
５０５  修正部
【図１】
0004991590.tif 000002
【図２】
0004991590.tif 000003
【図３】
0004991590.tif 000004
【図４】
0004991590.tif 000005
【図５】
0004991590.tif 000006
【図７】
0004991590.tif 000007
【図１０】
0004991590.tif 000008
【図１１】
0004991590.tif 000009
【図２０】
0004991590.tif 000010
【図６】
0004991590.tif 000011
【図８】
0004991590.tif 000012
【図９】
0004991590.tif 000013
【図１２】
0004991590.tif 000014
【図１３】
0004991590.tif 000015
【図１４】
0004991590.tif 000016
【図１５】
0004991590.tif 000017
【図１６】
0004991590.tif 000018
【図１７】
0004991590.tif 000019
【図１８】
0004991590.tif 000020
【図１９】
0004991590.tif 000021
【図２１】
0004991590.tif 000022
【図２２】
0004991590.tif 000023