(57)【要約】【課題】画像処理装置において、曲線を滑らかに表現するとともに、直線で表現すべきところは直線で表現できる、アウトライン画像を生成する。【解決手段】直線ベクトルＫＬについては、連結する直線ベクトルＬＭとのなす角が１１０°を超えており、その長さが設定値を超え、また、直線ベクトルＪＫと直線ベクトルＫＬのなす角が９０°以下である。これにより、直線ベクトルＫＬについては、「×」で示される直線ベクトルＫＬの中点ではなく、当該中点よりも、最初になす角を判断された直線ベクトルＬＭと連結する側に寄った位置（点ＰＸ）に、制御点を設定される。【選択図】図１３
2010003142.tif 000002
【特許請求の範囲】
【請求項１】
２値化された画像データに対して、輪郭画素を抽出するステップと、
前記輪郭画素に基づいて、前記画像データの輪郭を直線近似するステップと、
前記直線近似された輪郭の中の第１の直線について、前記第１の直線と連続する第２の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断するステップと、
前記第１の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第１の直線の中点よりも前記第２の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なうステップとを備える、アウトライン化方法。
【請求項２】
前記判断するステップは、前記第１の直線と前記第２の直線のなす角に基づいて判断する、請求項１に記載のアウトライン化方法。
【請求項３】
前記判断するステップは、前記第１の直線の長さに基づいて判断する、請求項２に記載のアウトライン化方法。
【請求項４】
前記判断するステップは、前記第２の直線と前記第１の直線の反対側で連続する第３の直線と、前記第１の直線とのなす角に基づいて判断する、請求項１〜３のいずれか１項に記載のアウトライン化方法。
【請求項５】
前記曲線近似を行なうステップは、前記第１の直線と前記第２の直線のなす角が小さくなるほど、前記第１の直線上の、前記第２の直線に近い位置に制御点を設定する、請求項４に記載のアウトライン化方法。
【請求項６】
前記判断するステップは、前記第１の直線と前記第２の直線の長さの比に基づいて判断する、請求項１〜３のいずれか１項に記載のアウトライン化方法。
【請求項７】
前記曲線近似するステップは、前記第１の直線の長さに対する前記第２の直線の長さの比が大きくなるほど、前記第１の直線上の、前記第２の直線に近い位置に制御点を設定する、請求項６に記載のアウトライン化方法。
【請求項８】
請求項１〜７のいずれか１項に記載のアウトライン化方法によりアウトライン化された画像データを少なくとも含む画像データを圧縮するステップを備える、画像圧縮方法。
【請求項９】
２値化された画像データに対して、輪郭画素を抽出する抽出部と、
前記輪郭画素に基づいて、前記画像データの輪郭を直線近似する第１の近似部と、
前記直線近似された輪郭の中の第１の直線について、前記第１の直線と連続する第２の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断する判断部と、
前記第１の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第１の直線の中点よりも前記第２の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なう第２の近似部とを備える、アウトライン化装置。
【請求項１０】
画像処理装置に、画像データからアウトラインデータを生成させる、コンピュータ読取可能なアウトライン化プログラムであって、
前記画像処理装置に、
２値化された画像データに対して、輪郭画素を抽出するステップと、
前記輪郭画素に基づいて、前記画像データの輪郭を直線近似するステップと、
前記直線近似された輪郭の中の第１の直線について、前記第１の直線と連続する第２の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断するステップと、
前記第１の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第１の直線の中点よりも前記第２の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なうステップとを実行させる、アウトライン化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データからアウトラインデータを生成するアウトライン化方法およびそれを用いた画像圧縮方法、アウトライン化装置、ならびにアウトライン化プログラムに関する。
【背景技術】
【０００２】
画像データに含まれる文字部分をアウトライン化する技術が、従来から種々提案されている。
【０００３】
たとえば、特許文献１（特開２００６−２５３８９２号公報）には、２値化された画像データをアウトライン化するための技術が開示されている。当該文献では、まず、ラスタ画像データから水平ベクトルと垂直ベクトルからなる粗輪郭データが抽出され、粗輪郭データからアンカーポイントが抽出され、粗輪郭データが当該粗輪郭データを構成する複数の線分の中でアンカーポイント間に存在する線分が直線や曲線に近似され、残りの線分が３次または２次曲線に置き換えられ、そして、補正がなされることにより、アウトライン化がされる。
【０００４】
また、当該特許文献１では、文字のサイズに応じて、アウトライン化に利用する２値化画像の解像度が調整される。
【特許文献１】特開２００６−２５３８９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
なお、従来のアウトライン化に関する技術では、滑らかな曲線を描くことを目的として開発が進められてきた。このため、アウトライン化された文字の画像では、曲線の滑らかさが向上する一方で、元画像における直線の一部が、曲線に修正されてしまう事態が生じていた。このことを、図１８〜図２０を参照して具体的に説明する。
【０００６】
図１８では、アルファベットの「Ｂ」についての、アウトライン化される前後の画像が示されている。図１８（Ａ）には、原稿のスキャン等によって得られたアウトライン化される前の２値化画像が示され、図１８（Ｂ）には、図１８（Ａ）の画像が従来の手法でアウトライン化された後の画像が示されている。
【０００７】
図１８（Ｂ）では、「Ｂ」の文字の右上端の、水平方向の直線と曲線が接続される部分（破線で囲まれた部分）において、図１８（Ａ）の２値化画像と比較して、直線部分が本来曲がるべき箇所よりも左側から、つまり手前から、曲がり始めている。
【０００８】
また、図１９には、アルファベットの「ｕ」についての、アウトライン化前後の画像が示されている。図１９（Ａ）は、アウトライン化前の２値化画像を、図１９（Ｂ）は、図１９（Ａ）の画像の従来の手法によるアウトライン化後の画像を、それぞれ示す。
【０００９】
図１９（Ｂ）では、「ｕ」の文字の左下端の、垂直方向の直線と曲線が接続される部分（破線で囲まれた部分）において、図１９（Ａ）の２値化画像と比較して、直線部分が、本来曲がるべき箇所よりも上側から、つまり手前から、曲がり始めている。
【００１０】
また、図２０には、アルファベットの「Ｚ」についての、アウトライン化前後の画像が示されている。図２０（Ａ）は、アウトライン化前の２値化画像を、図２０（Ｂ）は、図２０（Ａ）の画像の従来の手法によるアウトライン化後の画像を、それぞれ示す。
【００１１】
図２０（Ｂ）では、「Ｚ」の文字の左下端の、左斜め下方向に延びる直線と曲線が接続される部分（破線で囲まれた部分）において、図２０（Ａ）の２値化画像と比較して、直線同士がシャープに接続するべき部分が、曲線近似されて表現されている。
【００１２】
このように、従来の技術では、滑らかな曲線を描くことと、直線と曲線の接続部分における直線部分のシャープさを保持させることの両立が困難であった。
【００１３】
本発明は、かかる実情に鑑み考え出されたものであり、その目的は、画像処理装置において、曲線を滑らかに表現するとともに、直線で表現すべきところは直線で表現できる、アウトライン画像を生成することである。
【課題を解決するための手段】
【００１４】
本発明に従ったアウトライン化方法は、２値化された画像データに対して、輪郭画素を抽出するステップと、前記輪郭画素に基づいて、前記画像データの輪郭を直線近似するステップと、前記直線近似された輪郭の中の第１の直線について、前記第１の直線と連続する第２の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断するステップと、前記第１の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第１の直線の中点よりも前記第２の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なうステップと備えることを特徴とする。
【００１５】
また、本発明のアウトライン化方法では、前記判断するステップは、前記第１の直線と前記第２の直線のなす角に基づいて判断することが好ましい。
【００１６】
また、本発明のアウトライン化方法では、前記判断するステップは、前記第１の直線の長さに基づいて判断することが好ましい。
【００１７】
また、本発明のアウトライン化方法では、前記判断するステップは、前記第２の直線と前記第１の直線の反対側で連続する第３の直線と、前記第１の直線とのなす角に基づいて判断することが好ましい。
【００１８】
また、本発明のアウトライン化方法では、前記曲線近似を行なうステップは、前記第１の直線と前記第２の直線のなす角が小さくなるほど、前記第１の直線上の、前記第２の直線に近い位置に制御点を設定することが好ましい。
【００１９】
また、本発明のアウトライン化方法では、前記判断するステップは、前記第１の直線と前記第２の直線の長さの比に基づいて判断することが好ましい。
【００２０】
また、本発明のアウトライン化方法では、前記曲線近似するステップは、前記第１の直線の長さに対する前記第２の直線の長さの比が大きくなるほど、前記第１の直線上の、前記第２の直線に近い位置に制御点を設定することが好ましい。
【００２１】
本発明に従った画像圧縮方法は、上記のアウトライン化方法によりアウトライン化された画像データを少なくとも含む画像データを圧縮するステップを備えることを特徴とする。
【００２２】
本発明に従ったアウトライン化装置は、２値化された画像データに対して、輪郭画素を抽出する抽出部と、前記輪郭画素に基づいて、前記画像データの輪郭を直線近似する第１の近似部と、前記直線近似された輪郭の中の第１の直線について、前記第１の直線を連続する第２の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断する判断部と、前記第１の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第１の直線の中点よりも前記第２の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なう第２の近似部とを備えることを特徴とする。
【００２３】
本発明に従ったアウトライン化プログラムは、画像処理装置に、画像データからアウトラインデータを生成させる、コンピュータ読取可能なアウトライン化プログラムであって、前記画像処理装置に、２値化された画像データに対して、輪郭画素を抽出するステップと、前記輪郭画素に基づいて、前記画像データの輪郭を直線近似するステップと、前記輪郭ベクトルに基づいて、前記画像データの輪郭を直線近似するステップと、前記直線近似された輪郭の中の第１の直線について、前記第１の直線と連続する第２の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断するステップと、前記第１の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第１の直線の中点よりも前記第２の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なうステップとを実行させることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、画像のアウトライン化において、直線ベクトルで近似された輪郭の一部分について、曲線近似に置き換える際に、基準となる直線ベクトルに対して一律にその中点に曲線近似に用いる制御点が設定されるのではなく、当該直線がアウトライン化後に直線で残すべき部分を含むか否かが判断され、直線で残すべき部分を含むと判断されると、中点以外の点に制御点が設定される。
【００２５】
これにより、アウトライン化の際に、直線で残すべき部分については、直線のまま残すことができる。
【００２６】
したがって、従来通り曲線を滑らかに表現できるとともに、直線で表現すべきところは直線で表現できる、好ましいアウトライン画像を生成することができる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の画像処理装置の実施の形態について、図面を参照して説明する。
図１は、本発明の画像処理装置の一実施の形態であるＭＦＰ（Multi Function Peripherals）１の外観を示す図である。
【００２８】
ＭＦＰ１は、各種の処理に対する操作指示、ならびに、文字および数字のデータの入力を受付ける操作パネル１５を備えている。操作パネル１５には、電源キー等の、ユーザが操作するための複数のキーが設けられている。
【００２９】
また、ＭＦＰ１は、原稿を光電的に読取って画像データを得るスキャナ１１、画像データに基づいて記録シート上に画像を印刷する印刷装置（エンジン）１２、印刷装置１２に記録シートを供給する給紙部１８、印刷装置１２によって画像を印刷された記録シートが排出されるトレイ１９、および、後述するＣＰＵ（central processing unit）１０Ａ等を収納する制御部１０を備えている。
【００３０】
スキャナ１１は、写真、文字、絵などの画像情報を原稿から光電的に読取って画像データを取得する。取得された画像データは、適宜処理を施された後、ネットワークを介して送信される電子メールの添付ファイル用のデータとして利用されたり、電話回線等を介して他の機器に送信されたり、印刷装置１２に送られて印刷に供されたりする。
【００３１】
図２は、図１のＭＦＰ１のハードウェア構成を示す図である。
図２を参照して、ＭＦＰ１は、上述した構成要素の他に、入力画像処理部１０Ｂ、記憶部１０Ｃ、ＣＰＵ１０Ａ、ネットワークＩ／Ｆ（インターフェイス）１０Ｅ、出力画像処理部１０Ｄ、および通信部１０Ｆを含む。
【００３２】
ＭＦＰ１では、スキャナ１１で取得された画像データは、入力画像処理部１０Ｂに送られる。
【００３３】
入力画像処理部１０Ｂは、入力された画像の色変換、色補正、解像度変換、および領域判別等の処理を実行する。入力画像処理部１０Ｂにおいて処理されたデータは、記憶部１０Ｃで保存される。記憶部１０Ｃは、ＤＲＡＭ（Dynamic Random Access Memory）等のメモリ、および、磁気メモリの一例であるハードディスクを備えたハードディスクドライブ（ＨＤＤ）を含む。なお、ＭＦＰ１では、入力画像処理部１０Ｂは、たとえば、ＣＰＵ１０Ａが記憶部１０Ｃ（またはＭＦＰ１に対して着脱可能な記録媒体）に記録されたプログラムを実行することによって実現されても良いし、ＭＦＰ１に実装される１つのまたは複数のＡＳＩＣ（Application Specific Integrated Circuit）によって実現されても良い。
【００３４】
ＣＰＵ１０Ａは、ＭＦＰ１の全体的な制御、操作キー（表示パネル１５の表示部に表示されるキー等）に対する操作の検出、操作パネル１５の表示、入力されたデータの画像ファイルへの変更等の処理を実行する。
【００３５】
ネットワークＩ／Ｆ１０Ｅは、電子メール等をネットワークへ送信するＩ／Ｆ部分であり、プロトコルの作成等を行なう。
【００３６】
出力画像処理部１０Ｄは、写真画像の粒状性を向上させるためのスクリーン制御、文字エッジの滑らかさを向上させるためのスムージング処理、ＰＷＭ（Pulse Width Modulation）制御等を行なう。
【００３７】
印刷装置１２は、出力画像処理部で生成されたデータを用紙に印刷する。
通信部１０Ｆは、モデムおよびＮＣＵ（Network Control Unit）を含み、ファクシミリの送受信の変復調、ファクシミリの通信プロトコルの生成、電話回線への接続等を行なう。
【００３８】
操作パネル１５は、操作キーと表示部とを含む。表示部は、たとえば液晶のタッチパネルによって構成される。操作キーは、たとえば当該液晶のタッチパネルに表示されるタッチキーによって構成される。
【００３９】
図３は、図２の入力画像処理部１０Ｂの詳細な構成を示す図である。
図３を参照して、入力画像処理部１０Ｂは、前処理部２１０と、領域判別部２２０と、２値化処理部２３１と、輪郭画像抽出部２３２と、直線ベクトル近似処理部２３３と、曲線ベクトル近似処理部２３４と、文字領域圧縮部２３５と、写真・背景領域圧縮部２３６と、圧縮データ合成部２４０とを含む。
【００４０】
スキャナ１１は、原稿をスキャンすることによって画像データを生成すると、その画像データを前処理部２１０に出力する。
【００４１】
前処理部２１０では、画像データに対して、画像形式の変換、解像度の変換、および下地処理等の処理が行なわれる。これらの処理を施された画像データは、領域判別部２２０に送られる。
【００４２】
領域判別部２２０では、まず、写真、背景、文字等の領域判別を行なうことにより、画像データを、文字領域と文字以外の領域（写真・背景領域）とに分ける。
【００４３】
そして、領域判別部２２０は、文字領域の画像データを２値化処理部２３１に送り、写真・背景領域の画像データを写真・背景領域圧縮部２３６に送る。
【００４４】
なお、領域判別部２２０は、写真・背景領域の画像データについては、入力されたフルカラー２４ｂｉｔの画像データから８ｂｉｔの明度画像を生成し、当該明度画像にスムージング処理を行ない、ノイズを除去する。そして、生成されたスムージング画像を、ラベリング処理することにより、前処理部２１０から送られた画像データに含まれる複数の写真・背景領域の位置を検出する。
【００４５】
２値化処理部２３１は、入力された文字領域の画像データに対し、２値化処理を行ない、文字と背景を分離する。２値化された画像データは、輪郭画素抽出部２３２へ送られ、輪郭画素抽出部２３２と直線ベクトル近似処理部２３３と曲線ベクトル近似処理部２３４とにおいて行なわれるアウトラインデータ変換処理に供される。
【００４６】
輪郭画素抽出部２３２では、２値化された文字画像を走査して、パターンマッチングにより、輪郭画素が抽出される。
【００４７】
図５（Ａ）には、パターンマッチングに用いる輪郭画素抽出パターンの一例が示されており、図５（Ｂ）には、２値化された文字画像の一部が拡大されて示されている。２値化らされた文字画像を（たとえば、４画素単位で）走査し、図５（Ａ）にいずれかのパターンに合致する画素が輪郭画素として抽出される。このようなパターンマッチングによって、一例として、図５（Ｂ）に示されるように、一点鎖線で囲まれた画素が、輪郭画素として抽出される。
【００４８】
輪郭画素抽出部２３２において輪郭画素を抽出された後、画像データは、直線ベクトル近似処理部２３３に送られる。直線ベクトル近似処理部２３３では、輪郭画素抽出部２３２において抽出された輪郭画素について、近隣の輪郭画素が１つのベクトルとして表現されることにより、文字画像の輪郭が直線近似される。直線ベクトル近似処理部２３３において輪郭を直線近似された文字画像のデータは、曲線ベクトル近似処理部２３４に送られる。
【００４９】
曲線ベクトル近似処理部２３４では、直線ベクトル近似処理部２３３において生成された、文字画像の輪郭の直線ベクトルに対し、曲線条件に応じて適宜制御点が設定され、当該制御点に基づいて、文字画像の輪郭の曲線近似がなされる。
【００５０】
本実施の形態のＭＦＰ１では、曲線条件に応じた制御点の設定を、特徴の１つとする。なお、直線ベクトル近似処理部２３３における輪郭画素に基づいた直線ベクトルの設定、および、曲線ベクトル近似処理部２３４における制御点に基づいて曲線近似については、周知の技術を採用することができるため、ここでは説明を繰返さない。
【００５１】
文字領域圧縮部２３５では、文字領域に適したデータの圧縮が行なわれる。また、写真・背景領域圧縮部２３６では、写真・背景領域に適したデータの圧縮が行なわれる。文字領域の画像データは、ベクトルデータ（位置情報）になっているため、ＦＬＡＴＥ圧縮方式のような可逆性の圧縮方式が好適と考えられる。写真・背景領域は、画質の維持よりもファイルサイズが小さくなることを優先させる場合、たとえば圧縮率を高く設定したＪＰＥＧ圧縮方式のような非可逆性の圧縮方式が好適と考えられる。
【００５２】
圧縮データ合成部２４０は、文字領域圧縮部２３５で圧縮された文字領域の画像データと写真・背景領域圧縮部２３６において圧縮された写真・背景領域の画像データとを合成して、ＰＤＦ（Portable Document Format）ファイルを生成して、記憶部１０Ｃへ出力する。
【００５３】
ＭＦＰ１では、文字には文字用に好適な圧縮を、写真には写真用に好適な圧縮を施し、最終的には、両者をレイヤとして重ね合わせて１つのＰＤＦファイルフォーマットのデータを生成する。これにより、画像データを、単一の圧縮方式（例えば、ＪＰＥＧ圧縮）で圧縮するよりもサイズの小さいファイルに変換することができる。
【００５４】
以上説明したように、ＭＦＰ１では、スキャナ１１で読込まれた画像は、入力画像処理部１０Ｂで処理されることにより、文字領域と写真・背景領域とで異なる方式で圧縮処理されたＰＤＦファイルに変換されて、記憶部１０Ｃに保存される。
【００５５】
図４は、このようなＰＤＦファイルへの画像データの変換が行なわれる際の、輪郭画素抽出部２３２と直線ベクトル近似処理部２３３と曲線ベクトル近似処理部２３４において実行される処理（アウトライン変換処理）のフローチャートである。以下、アウトライン変換処理について、詳細に説明する。
【００５６】
図４を参照して、輪郭画素抽出部２３２に２値化された画像データが入力されると、輪郭画像抽出部２３２は、ステップＳ１０で、文字領域の画像データを、１文字単位に分離して、ステップＳ２０へ処理を進める。
【００５７】
ステップＳ２０では、輪郭画素抽出部２３２は、ステップＳ１０において分離されたすべての文字について、ステップＳ３０〜ステップＳ８０の処理の対象とされたか否かを判断し、対象とされたと判断するとアウトライン変換処理を終了させ、まだ対象とされていない文字があると判断するとステップＳ３０へ処理を進める。
【００５８】
ステップＳ３０では、輪郭画素抽出部２３２は、ステップＳ１０で分離された各文字の中でまだステップＳ３０〜ステップＳ８０の処理対象とされていない文字を処理対象とし、当該処理対象の文字について、パターンマッチングにより輪郭画素を抽出して、ステップＳ４０へ処理を進める。
【００５９】
ステップＳ３０の処理により、図５を参照して上述したように、図５において一点鎖線で囲まれた画素が、輪郭画素として抽出される。
【００６０】
ステップＳ４０では、輪郭画素抽出部２３２は、処理対象の文字においてすべての輪郭画素が抽出されたか否かを判断し、抽出されたと判断するとステップＳ５０へ処理を進める。
【００６１】
ステップＳ５０では、直線ベクトル近似処理部２３３が、上述したように、輪郭画素抽出部２３２によって抽出された輪郭画素に基づいて、複数の輪郭画素を所定のアルゴリズムに従って直線近似し、近似された直線を順に直線ベクトルとして連結してゆくことにより、処理対象となっている文字の輪郭を直線ベクトルで近似して、ステップＳ６０へ処理を進める。なお、直線近似アルゴリズムとしては、公知のいずれの方法も適用可能である。
【００６２】
ステップＳ６０では、直線ベクトル近似処理部２３３は、処理対象となっている文字について抽出されたすべての輪郭画素について直線ベクトル近似が終了したか否かを判断し、まだ終了していないと判断するとステップＳ５０へ処理を戻し、終了したと判断するとステップＳ７０へ処理を進める。
【００６３】
図６は、「ｕ」が処理対象の文字とされている場合に、当該文字の画像に対して抽出された輪郭画素を模式的に示す図である。
【００６４】
図６では、「ｕ」の文字画像に対して抽出された輪郭画素が、点線の円を付されて示されている。そして、これらの輪郭画素に基づいて当該文字画像が直線ベクトル近似されたものを、図７に示す。
【００６５】
図７では、図４の直線ベクトルが、「●」という記号で連結されている状態が示されている。
【００６６】
ステップＳ７０では、図７に示したような直線ベクトル近似された処理対象の文字について、各直線ベクトル上に適宜制御点を設定し、当該制御点を用いて、処理対象の輪郭を曲線ベクトル近似して、処理をステップＳ８０へ進める。
【００６７】
ステップＳ７０における曲線ベクトル近似処理の内容については、後述する。
ステップＳ８０では、曲線ベクトル近似処理部２３４は、処理対象の文字画像についてステップＳ５０で生成された直線ベクトルのすべてについて曲線ベクトル近似が終了したか否かを判断し、終了していないと判断するとステップＳ７０へ処理を戻し、終了したと判断するとステップＳ２０へ処理を戻す。
【００６８】
ステップＳ７０の処理によりすべての直線ベクトルについて曲線ベクトル近似がなされると、図７に示した直線ベクトルによって表現された文字画像が、図８に示すように、曲線を含む文字画像へと変換される。
【００６９】
図９は、図４のステップＳ７０の曲線ベクトル近似処理のサブルーチンのフローチャートである。
【００７０】
図９を参照して、曲線ベクトル近似処理では、処理対象とされている文字画像について生成された直線ベクトルの中の１つを処理対象のベクトルとされて、まずステップＳ７１０で、当該直線ベクトルが少なくとも一部がアウトラインデータにおいて曲線を構成するべきものであるか否かが判断され、そうではないと判断するとステップＳ７２０へ処理が進み、曲線を構成すべきものであると判断されるとステップＳ７３０へ処理が進められる。
【００７１】
ここで、ステップＳ７１０における、曲線を構成するものとされるべきか否かの判断は、たとえば、処理対象とされている直線ベクトルと当該直線ベクトルの一方に連結されている直線ベクトルとのなす角が所定の角度を超えているか否かによって判断される。ここで、所定の角度とは、たとえば１１０度とすることができる。このような判断処理の内容について、図１０を参照して詳細に説明する。
【００７２】
図１０（Ａ）および図１０（Ｂ）には、点Ｋと点Ｌと点Ｍがそれぞれ示され、点Ｋと点Ｌ、点Ｌと点Ｍがそれぞれ直線で結ばれている。
【００７３】
処理対象とされている直線ベクトルをＫＬとした場合、ステップＳ７１０の処理では、ベクトルＫＬとベクトルＬＭのなす角が所定の角度を超えているか否かが判断される。なお、なす角は、１８０度を超える場合、３６０度から当該角度を差し引いた角度とされる。図１０（Ａ）と図１０（Ｂ）から理解されるように、ＫＬとＬＭのなす角が大きいほど、点Ｋと点Ｌと点Ｍは、アウトラインデータでは滑らかな曲線で連結されて表現されるべきであると考えられる。ここでは、たとえばＫＬとＬＭのなす角が１１０度を超える場合には、ＫＬがアウトラインデータにおいて図１０に示されたような直線のままではなく、少なくとも一部が曲線として表現されるべきであると判断される。なお、ここで例示した判断基準とされる角度は一例であって、生成するアウトラインデータに担保させたい特徴等により適宜変更されてもよい。
【００７４】
図９に戻って、ステップＳ７２０では、処理対象とされている直線ベクトルに対して制御点を設定することなく、処理がステップＳ７６０へ進められる。
【００７５】
一方、ステップＳ７３０では、処理対象とされている直線ベクトルについて、アウトラインデータにおいて直線を残すべきであるか否かが判断され、残すべきであると判断されるとステップＳ７５０へ処理が進められ、残す必要がないと判断されるとステップＳ７４０へ処理が進められる。
【００７６】
ステップＳ７４０では、処理対象とされている直線ベクトルの中点に制御点が設定されて、ステップＳ７６０へ処理が進められる。
【００７７】
一方、ステップＳ７５０では、処理対象とされている直線ベクトルにおいて、中点ではなく、中点から一方側に寄った位置に制御点が設定されて、ステップＳ７６０へ処理が進められる。
【００７８】
ステップＳ７３０における判断の内容の詳細については、後述する。
ステップＳ７６０では、処理対象とされている文字について、すべての直線ベクトルについてステップＳ７１０〜ステップＳ７５０の処理がなされたか否かを判断し、まだなされていないと判断するとステップＳ７７０で、次の直線ベクトルを処理対象としてステップＳ７１０へ処理が戻される。
【００７９】
一方、すべての直線ベクトルについてステップＳ７１０〜ステップＳ７５０の処理がなされたと判断されると、ステップＳ７８０へ処理が進められる。
【００８０】
ステップＳ７８０では、処理対象とされている文字について、ステップＳ７４０またはステップＳ７５０で設定された制御点を用いて曲線近似がなされて、処理が図４へリターンされる。
【００８１】
図１１は、図９に示した直線ベクトル近似処理のステップＳ７１０とステップＳ７３０の処理内容を具体的にした変形例のフローチャートである。
【００８２】
図１１に示された曲線ベクトル近似処理では、図９のステップＳ７１０の代わりに、ステップＳ７１１が実行される。ステップＳ７１１の処理は、図１０を参照して説明したような、直線ベクトルＫＬと直線ベクトルＬＭのなす角が１１０度を超えているか否かの判断である。そして、この変形例では、なす角が１１０度以下であると判断されるとステップＳ７２０へ処理が進められ、１１０度を超えていると判断されるとステップＳ７３１へ処理が進められる。
【００８３】
ステップＳ７３１とステップＳ７３２は、図９のステップＳ７３０の代わりに設けられている処理である。
【００８４】
ステップＳ７３１では、直線ベクトルＫＬの長さが予め定められた設定値を超えているか否かが判断され、超えていると判断されるとステップＳ７３２へ処理が進められ、設定値以下であると判断されるとステップＳ７４０へ処理が進められる。
【００８５】
ステップＳ７３２では、処理対象である直線ベクトルＫＬが、ステップＳ７１１でなす角を判断対象とされた直線ベクトルＬＭとは違う方の端部で連結している直線ベクトルＪＫとのなす角が判断される。そして、当該なす角が９０度以下であれば処理がステップＳ７５０へ進められ、９０度を超えていると判断されるとステップＳ７４０へ処理が進められる。
【００８６】
ここで、ステップＳ７３２における処理の内容を図１２を参照して詳細に説明する。
図１２を参照して、図１２（Ａ）〜図１２（Ｃ）では、それぞれ、点Ｊと点Ｋと点Ｌと点Ｍの４点が示され、点Ｊと点Ｋが、点Ｋと点Ｌが、点Ｌと点Ｍが、それぞれ直線で連結されて直線ベクトルとされている。そして、図１１のステップＳ７３２，Ｓ７４０，Ｓ７５０の処理により、図１２（Ａ）に示されるようにＪＫとＫＬのなす角が９０度を超えているような場合には、直線ベクトルＫＬに対してその中点に制御点Ｐが設定される（ステップＳ７５０）。一方、図１２（Ｂ）および図１２（Ｃ）に示されるようにＪＫとＫＬのなす角が９０度以下である場合には、直線ベクトルＫＬ上には、直線ベクトルＪＫとは反対側の端部で連結する直線ベクトルＬＭに寄った位置に、制御点Ｐが設定される。図１２（Ｂ）および図１２（Ｃ）では、「×」は、ＫＬの中点を示している。
【００８７】
以上図１１を参照して説明したように、直線ベクトルＫＬ上に設定される制御点の位置が、ステップＳ７１１でなす角を判断された方とは反対側で連結する直線ベクトルとのなす角に基づいて中点とされるか中点よりも一方側に寄った位置に設定されるかが決定される。これにより、図１２（Ａ）に示されるように直線ベクトルＫＬが点Ｊと点Ｋと点Ｌと点Ｍを通るような緩やかな曲線としてアウトラインデータが生成されるべきであると判断されて、その中点に制御点Ｐが設定される。
【００８８】
一方、図１２（Ｂ）または図１２（Ｃ）に示されるように、直線ベクトルＫＬが、その上部は直線のまま残され、直線ベクトルＬＭと連結する部分は曲線近似されるべきであると判断されるような場合には、制御点Ｐは、その中点よりも直線ベクトルＬＭに連結する端部寄りに設定される。
【００８９】
図１１を参照して説明した処理の特徴を、図１３を参照してより具体的に説明する。図１３は、図７に示した、直線ベクトルでその輪郭を近似された画像に対する、曲線ベクトル近似処理における制御点の設定の態様を説明するための図である。
【００９０】
図１３に記載された、輪郭を直線近似された「ｕ」の外郭上には、点Ａ、点Ｂ、点Ｃ、点Ｄ、点Ｅ、点Ｆ、点Ｇ、点Ｈ、点Ｊ、点Ｋ、点Ｌ、点Ｍ、点Ｎ、点Ｑの１４点が示されている。ここでは、制御点の設定の例として、直線ベクトルＪＫと直線ベクトルＫＬについての、制御点の設定について説明する。
【００９１】
まず、直線ベクトルＪＫについては、連結する直線ベクトルＫＬとのなす角がほぼ９０°となり、１１０°よりも小さい。このことから、処理がステップＳ７１１からステップＳ７２０に進められ、直線ベクトルＪＫ上には制御点は設定されない。
【００９２】
直線ベクトルＫＬについては、連結する直線ベクトルＬＭとのなす角が１１０°を超えているとして、処理がステップＳ７１１からステップＳ７３１に進められる。そして、直線ベクトルＫＬについては、処理がステップＳ７３１からステップＳ７３２に進められるものとする。そして、ステップＳ７３２において、直線ベクトルＪＫと直線ベクトルＫＬのなす角が判断される。図１３では、これらのなす角は９０°程度である。したがって、ステップＳ７５０へ処理が進められる。
【００９３】
これにより、直線ベクトルＫＬについては、「×」で示される直線ベクトルＫＬの中点ではなく、当該中点よりも、ステップＳ７１１においてなす角を判断された直線ベクトルＬＭと連結する側に寄った位置（点ＰＸ）に、制御点を設定される。
【００９４】
以上説明した本実施の形態によれば、図１８（Ｂ）で示された「Ｂ」、図１９（Ｂ）で示された「ｕ」、図２０（Ｂ）に示された「Ｚ」は、それぞれ、図１４（Ａ）、図１４（Ｂ）、図１４（Ｃ）に示されるように、直線と曲線が連結する部分または直線と直線が連結する部分の無駄な膨らみが生じなくなる。
【００９５】
なお、図１１のステップＳ７３２における判断対象とされる角度は、ステップＳ７１１と同様の角度、つまり、１１０°とされても良い。つまり、ステップＳ７３２において、なす角が１１０°以下であると判断されると、ステップＳ７５０に処理が進められ、１１０°を越えていると判断されると、ステップＳ７４０に処理が進められるように、図１１に示された処理は変更されても良い。
【００９６】
図１５は、図１１に示したフローチャートのさらなる変形例のフローチャートである。
図１５に示された変形例では、ステップＳ７３２の処理がステップＳ７３３とされている。
【００９７】
ステップＳ７３３では、直線ベクトルＫＬの長さを直線ベクトルＪＫで割った値が所定の設定値を超えているか否かが判断され、超えていると判断されると、ステップＳ７５０で、図１２（Ｂ）または図１２（Ｃ）に示されるように、直線ベクトルＫＬ上の制御点が中点よりも、ステップＳ７３３で判断対象とされたベクトルとは違うベクトル（直線ベクトルＬＭ）に連結する側の端部寄りに設定される。
【００９８】
一方、設定値以下であると判断されると、ステップＳ７４０で、直線ベクトルＫＬの中点に制御点が設定される。
【００９９】
ここで、ステップＳ７５０における制御点の設定に関し、本発明の思想に含まれる態様を説明する。
【０１００】
図１６を参照して、直線ベクトルＫＬ上に設定される制御点Ｐの位置は、直線ベクトルＫＬと直線ベクトルＬＭのなす角が図１６（Ａ）から図１６（Ｄ）に変化するように、なす角が小さくなるほど、連結する端部に寄った位置（中点から離れた位置）に設定されることが好ましい。直線ベクトルＫＬにおいてより多く直線部分を残したアウトラインデータを生成するためである。
【０１０１】
図１７を参照して、直線ベクトルＫＬ上に制御点Ｐを設定する場合であって、制御点Ｐをその中点よりも直線ベクトルＬＭと連結する側の端部に寄った位置に設定する場合、図１７（Ａ）〜図１７（Ｄ）に示されるように、直線ベクトルＫＬの長さが長くなるほど、制御点Ｐを連結する端部側に（中点から離れた位置に）設定することが好ましい。直線ベクトルＫＬについてより直線らしさを残した状態でアウトラインデータを生成するためである。
【０１０２】
以上説明した本実施の形態では、スキャナ１１で生成された画像データに対してアウトライン化が行なわれたが、ＭＦＰ１は、外部の装置から入力された画像データ等の、スキャナ１１が生成した画像データ以外の画像データについても、アウトライン化の対象とすることができる。
【０１０３】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１０４】
【図１】本発明の画像処理装置の一実施の形態であるＭＦＰの外観を示す図である。
【図２】図１のＭＦＰのハードウェア構成を示す図である。
【図３】図２の入力画像処理部の詳細な構成を示す図である。
【図４】図１のＭＦＰにおいて実行されるアウトライン変換処理のフローチャートである。
【図５】図１のＭＦＰで実行される輪郭画素の抽出の態様を説明するための図である。
【図６】図４のアウトライン変換処理において抽出された輪郭画素を模式的に示す図である。
【図７】図４のアウトライン変換処理における直線ベクトル近似によって得られた画像の一例を示す図である。
【図８】図４のアウトライン変換処理における曲線ベクトル近似によって得られた画像の一例を示す図である。
【図９】図４の曲線ベクトル近似処理のサブルーチンのフローチャートである。
【図１０】図９の処理内容を説明するための図である。
【図１１】図９の曲線ベクトル近似処理の第１の変形例のフローチャートである。
【図１２】図１１における処理内容を説明するための図である。
【図１３】図１１における処理内容を説明するための図である。
【図１４】図１のＭＦＰによって生成されるアウトラインデータの一例を示す図である。
【図１５】図９の曲線ベクトル近似処理の第２の変形例のフローチャートである。
【図１６】図１のＭＦＰにおいて実行される曲線ベクトル近似処理における、制御点の設定態様を説明するための図である。
【図１７】図１のＭＦＰにおいて実行される曲線ベクトル近似処理における、制御点の設定態様を説明するための図である。
【図１８】従来の画像処理装置において生成されていたアウトライン化された画像の一例を示す図である。
【図１９】従来の画像処理装置において生成されていたアウトライン化された画像の一例を示す図である。
【図２０】従来の画像処理装置において生成されていたアウトライン化された画像の一例を示す図である。
【符号の説明】
【０１０５】
１  ＭＦＰ、１０  制御部、１０Ａ  ＣＰＵ、１０Ｂ  入力画像処理部、１０Ｃ  記憶部、１０Ｄ  出力画像処理部、１０Ｅ  ネットワークＩ／Ｆ、１０Ｆ  通信部、１１  スキャナ、１２  印刷装置、１５  操作パネル、１８  給紙部、１９  トレイ、２１０  前処理部、２２０  領域判別部、２３１  ２値化処理部、２３２  輪郭画素抽出部、２３３  直線ベクトル近似処理部、２３４  曲線ベクトル近似処理部、２３５  文字領域圧縮部、２３６  写真・背景領域圧縮部、２４０  圧縮データ合成部。
【図１】
2010003142.tif 000003
【図２】
2010003142.tif 000004
【図３】
2010003142.tif 000005
【図４】
2010003142.tif 000006
【図５】
2010003142.tif 000007
【図６】
2010003142.tif 000008
【図７】
2010003142.tif 000009
【図８】
2010003142.tif 000010
【図９】
2010003142.tif 000011
【図１０】
2010003142.tif 000012
【図１１】
2010003142.tif 000013
【図１２】
2010003142.tif 000014
【図１３】
2010003142.tif 000015
【図１４】
2010003142.tif 000016
【図１５】
2010003142.tif 000017
【図１６】
2010003142.tif 000018
【図１７】
2010003142.tif 000019
【図１８】
2010003142.tif 000020
【図１９】
2010003142.tif 000021
【図２０】
2010003142.tif 000022