アウトライン化方法およびそれを用いた画像圧縮方法、アウトライン化装置、ならびにアウトライン化プログラム
【課題】画像処理装置において、曲線を滑らかに表現するとともに、直線で表現すべきところは直線で表現できる、アウトライン画像を生成する。
【解決手段】直線ベクトルKLについては、連結する直線ベクトルLMとのなす角が110°を超えており、その長さが設定値を超え、また、直線ベクトルJKと直線ベクトルKLのなす角が90°以下である。これにより、直線ベクトルKLについては、「×」で示される直線ベクトルKLの中点ではなく、当該中点よりも、最初になす角を判断された直線ベクトルLMと連結する側に寄った位置(点PX)に、制御点を設定される。
【解決手段】直線ベクトルKLについては、連結する直線ベクトルLMとのなす角が110°を超えており、その長さが設定値を超え、また、直線ベクトルJKと直線ベクトルKLのなす角が90°以下である。これにより、直線ベクトルKLについては、「×」で示される直線ベクトルKLの中点ではなく、当該中点よりも、最初になす角を判断された直線ベクトルLMと連結する側に寄った位置(点PX)に、制御点を設定される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データからアウトラインデータを生成するアウトライン化方法およびそれを用いた画像圧縮方法、アウトライン化装置、ならびにアウトライン化プログラムに関する。
【背景技術】
【0002】
画像データに含まれる文字部分をアウトライン化する技術が、従来から種々提案されている。
【0003】
たとえば、特許文献1(特開2006−253892号公報)には、2値化された画像データをアウトライン化するための技術が開示されている。当該文献では、まず、ラスタ画像データから水平ベクトルと垂直ベクトルからなる粗輪郭データが抽出され、粗輪郭データからアンカーポイントが抽出され、粗輪郭データが当該粗輪郭データを構成する複数の線分の中でアンカーポイント間に存在する線分が直線や曲線に近似され、残りの線分が3次または2次曲線に置き換えられ、そして、補正がなされることにより、アウトライン化がされる。
【0004】
また、当該特許文献1では、文字のサイズに応じて、アウトライン化に利用する2値化画像の解像度が調整される。
【特許文献1】特開2006−253892号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
なお、従来のアウトライン化に関する技術では、滑らかな曲線を描くことを目的として開発が進められてきた。このため、アウトライン化された文字の画像では、曲線の滑らかさが向上する一方で、元画像における直線の一部が、曲線に修正されてしまう事態が生じていた。このことを、図18〜図20を参照して具体的に説明する。
【0006】
図18では、アルファベットの「B」についての、アウトライン化される前後の画像が示されている。図18(A)には、原稿のスキャン等によって得られたアウトライン化される前の2値化画像が示され、図18(B)には、図18(A)の画像が従来の手法でアウトライン化された後の画像が示されている。
【0007】
図18(B)では、「B」の文字の右上端の、水平方向の直線と曲線が接続される部分(破線で囲まれた部分)において、図18(A)の2値化画像と比較して、直線部分が本来曲がるべき箇所よりも左側から、つまり手前から、曲がり始めている。
【0008】
また、図19には、アルファベットの「u」についての、アウトライン化前後の画像が示されている。図19(A)は、アウトライン化前の2値化画像を、図19(B)は、図19(A)の画像の従来の手法によるアウトライン化後の画像を、それぞれ示す。
【0009】
図19(B)では、「u」の文字の左下端の、垂直方向の直線と曲線が接続される部分(破線で囲まれた部分)において、図19(A)の2値化画像と比較して、直線部分が、本来曲がるべき箇所よりも上側から、つまり手前から、曲がり始めている。
【0010】
また、図20には、アルファベットの「Z」についての、アウトライン化前後の画像が示されている。図20(A)は、アウトライン化前の2値化画像を、図20(B)は、図20(A)の画像の従来の手法によるアウトライン化後の画像を、それぞれ示す。
【0011】
図20(B)では、「Z」の文字の左下端の、左斜め下方向に延びる直線と曲線が接続される部分(破線で囲まれた部分)において、図20(A)の2値化画像と比較して、直線同士がシャープに接続するべき部分が、曲線近似されて表現されている。
【0012】
このように、従来の技術では、滑らかな曲線を描くことと、直線と曲線の接続部分における直線部分のシャープさを保持させることの両立が困難であった。
【0013】
本発明は、かかる実情に鑑み考え出されたものであり、その目的は、画像処理装置において、曲線を滑らかに表現するとともに、直線で表現すべきところは直線で表現できる、アウトライン画像を生成することである。
【課題を解決するための手段】
【0014】
本発明に従ったアウトライン化方法は、2値化された画像データに対して、輪郭画素を抽出するステップと、前記輪郭画素に基づいて、前記画像データの輪郭を直線近似するステップと、前記直線近似された輪郭の中の第1の直線について、前記第1の直線と連続する第2の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断するステップと、前記第1の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第1の直線の中点よりも前記第2の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なうステップと備えることを特徴とする。
【0015】
また、本発明のアウトライン化方法では、前記判断するステップは、前記第1の直線と前記第2の直線のなす角に基づいて判断することが好ましい。
【0016】
また、本発明のアウトライン化方法では、前記判断するステップは、前記第1の直線の長さに基づいて判断することが好ましい。
【0017】
また、本発明のアウトライン化方法では、前記判断するステップは、前記第2の直線と前記第1の直線の反対側で連続する第3の直線と、前記第1の直線とのなす角に基づいて判断することが好ましい。
【0018】
また、本発明のアウトライン化方法では、前記曲線近似を行なうステップは、前記第1の直線と前記第2の直線のなす角が小さくなるほど、前記第1の直線上の、前記第2の直線に近い位置に制御点を設定することが好ましい。
【0019】
また、本発明のアウトライン化方法では、前記判断するステップは、前記第1の直線と前記第2の直線の長さの比に基づいて判断することが好ましい。
【0020】
また、本発明のアウトライン化方法では、前記曲線近似するステップは、前記第1の直線の長さに対する前記第2の直線の長さの比が大きくなるほど、前記第1の直線上の、前記第2の直線に近い位置に制御点を設定することが好ましい。
【0021】
本発明に従った画像圧縮方法は、上記のアウトライン化方法によりアウトライン化された画像データを少なくとも含む画像データを圧縮するステップを備えることを特徴とする。
【0022】
本発明に従ったアウトライン化装置は、2値化された画像データに対して、輪郭画素を抽出する抽出部と、前記輪郭画素に基づいて、前記画像データの輪郭を直線近似する第1の近似部と、前記直線近似された輪郭の中の第1の直線について、前記第1の直線を連続する第2の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断する判断部と、前記第1の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第1の直線の中点よりも前記第2の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なう第2の近似部とを備えることを特徴とする。
【0023】
本発明に従ったアウトライン化プログラムは、画像処理装置に、画像データからアウトラインデータを生成させる、コンピュータ読取可能なアウトライン化プログラムであって、前記画像処理装置に、2値化された画像データに対して、輪郭画素を抽出するステップと、前記輪郭画素に基づいて、前記画像データの輪郭を直線近似するステップと、前記輪郭ベクトルに基づいて、前記画像データの輪郭を直線近似するステップと、前記直線近似された輪郭の中の第1の直線について、前記第1の直線と連続する第2の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断するステップと、前記第1の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第1の直線の中点よりも前記第2の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なうステップとを実行させることを特徴とする。
【発明の効果】
【0024】
本発明によれば、画像のアウトライン化において、直線ベクトルで近似された輪郭の一部分について、曲線近似に置き換える際に、基準となる直線ベクトルに対して一律にその中点に曲線近似に用いる制御点が設定されるのではなく、当該直線がアウトライン化後に直線で残すべき部分を含むか否かが判断され、直線で残すべき部分を含むと判断されると、中点以外の点に制御点が設定される。
【0025】
これにより、アウトライン化の際に、直線で残すべき部分については、直線のまま残すことができる。
【0026】
したがって、従来通り曲線を滑らかに表現できるとともに、直線で表現すべきところは直線で表現できる、好ましいアウトライン画像を生成することができる。
【発明を実施するための最良の形態】
【0027】
以下、本発明の画像処理装置の実施の形態について、図面を参照して説明する。
図1は、本発明の画像処理装置の一実施の形態であるMFP(Multi Function Peripherals)1の外観を示す図である。
【0028】
MFP1は、各種の処理に対する操作指示、ならびに、文字および数字のデータの入力を受付ける操作パネル15を備えている。操作パネル15には、電源キー等の、ユーザが操作するための複数のキーが設けられている。
【0029】
また、MFP1は、原稿を光電的に読取って画像データを得るスキャナ11、画像データに基づいて記録シート上に画像を印刷する印刷装置(エンジン)12、印刷装置12に記録シートを供給する給紙部18、印刷装置12によって画像を印刷された記録シートが排出されるトレイ19、および、後述するCPU(central processing unit)10A等を収納する制御部10を備えている。
【0030】
スキャナ11は、写真、文字、絵などの画像情報を原稿から光電的に読取って画像データを取得する。取得された画像データは、適宜処理を施された後、ネットワークを介して送信される電子メールの添付ファイル用のデータとして利用されたり、電話回線等を介して他の機器に送信されたり、印刷装置12に送られて印刷に供されたりする。
【0031】
図2は、図1のMFP1のハードウェア構成を示す図である。
図2を参照して、MFP1は、上述した構成要素の他に、入力画像処理部10B、記憶部10C、CPU10A、ネットワークI/F(インターフェイス)10E、出力画像処理部10D、および通信部10Fを含む。
【0032】
MFP1では、スキャナ11で取得された画像データは、入力画像処理部10Bに送られる。
【0033】
入力画像処理部10Bは、入力された画像の色変換、色補正、解像度変換、および領域判別等の処理を実行する。入力画像処理部10Bにおいて処理されたデータは、記憶部10Cで保存される。記憶部10Cは、DRAM(Dynamic Random Access Memory)等のメモリ、および、磁気メモリの一例であるハードディスクを備えたハードディスクドライブ(HDD)を含む。なお、MFP1では、入力画像処理部10Bは、たとえば、CPU10Aが記憶部10C(またはMFP1に対して着脱可能な記録媒体)に記録されたプログラムを実行することによって実現されても良いし、MFP1に実装される1つのまたは複数のASIC(Application Specific Integrated Circuit)によって実現されても良い。
【0034】
CPU10Aは、MFP1の全体的な制御、操作キー(表示パネル15の表示部に表示されるキー等)に対する操作の検出、操作パネル15の表示、入力されたデータの画像ファイルへの変更等の処理を実行する。
【0035】
ネットワークI/F10Eは、電子メール等をネットワークへ送信するI/F部分であり、プロトコルの作成等を行なう。
【0036】
出力画像処理部10Dは、写真画像の粒状性を向上させるためのスクリーン制御、文字エッジの滑らかさを向上させるためのスムージング処理、PWM(Pulse Width Modulation)制御等を行なう。
【0037】
印刷装置12は、出力画像処理部で生成されたデータを用紙に印刷する。
通信部10Fは、モデムおよびNCU(Network Control Unit)を含み、ファクシミリの送受信の変復調、ファクシミリの通信プロトコルの生成、電話回線への接続等を行なう。
【0038】
操作パネル15は、操作キーと表示部とを含む。表示部は、たとえば液晶のタッチパネルによって構成される。操作キーは、たとえば当該液晶のタッチパネルに表示されるタッチキーによって構成される。
【0039】
図3は、図2の入力画像処理部10Bの詳細な構成を示す図である。
図3を参照して、入力画像処理部10Bは、前処理部210と、領域判別部220と、2値化処理部231と、輪郭画像抽出部232と、直線ベクトル近似処理部233と、曲線ベクトル近似処理部234と、文字領域圧縮部235と、写真・背景領域圧縮部236と、圧縮データ合成部240とを含む。
【0040】
スキャナ11は、原稿をスキャンすることによって画像データを生成すると、その画像データを前処理部210に出力する。
【0041】
前処理部210では、画像データに対して、画像形式の変換、解像度の変換、および下地処理等の処理が行なわれる。これらの処理を施された画像データは、領域判別部220に送られる。
【0042】
領域判別部220では、まず、写真、背景、文字等の領域判別を行なうことにより、画像データを、文字領域と文字以外の領域(写真・背景領域)とに分ける。
【0043】
そして、領域判別部220は、文字領域の画像データを2値化処理部231に送り、写真・背景領域の画像データを写真・背景領域圧縮部236に送る。
【0044】
なお、領域判別部220は、写真・背景領域の画像データについては、入力されたフルカラー24bitの画像データから8bitの明度画像を生成し、当該明度画像にスムージング処理を行ない、ノイズを除去する。そして、生成されたスムージング画像を、ラベリング処理することにより、前処理部210から送られた画像データに含まれる複数の写真・背景領域の位置を検出する。
【0045】
2値化処理部231は、入力された文字領域の画像データに対し、2値化処理を行ない、文字と背景を分離する。2値化された画像データは、輪郭画素抽出部232へ送られ、輪郭画素抽出部232と直線ベクトル近似処理部233と曲線ベクトル近似処理部234とにおいて行なわれるアウトラインデータ変換処理に供される。
【0046】
輪郭画素抽出部232では、2値化された文字画像を走査して、パターンマッチングにより、輪郭画素が抽出される。
【0047】
図5(A)には、パターンマッチングに用いる輪郭画素抽出パターンの一例が示されており、図5(B)には、2値化された文字画像の一部が拡大されて示されている。2値化らされた文字画像を(たとえば、4画素単位で)走査し、図5(A)にいずれかのパターンに合致する画素が輪郭画素として抽出される。このようなパターンマッチングによって、一例として、図5(B)に示されるように、一点鎖線で囲まれた画素が、輪郭画素として抽出される。
【0048】
輪郭画素抽出部232において輪郭画素を抽出された後、画像データは、直線ベクトル近似処理部233に送られる。直線ベクトル近似処理部233では、輪郭画素抽出部232において抽出された輪郭画素について、近隣の輪郭画素が1つのベクトルとして表現されることにより、文字画像の輪郭が直線近似される。直線ベクトル近似処理部233において輪郭を直線近似された文字画像のデータは、曲線ベクトル近似処理部234に送られる。
【0049】
曲線ベクトル近似処理部234では、直線ベクトル近似処理部233において生成された、文字画像の輪郭の直線ベクトルに対し、曲線条件に応じて適宜制御点が設定され、当該制御点に基づいて、文字画像の輪郭の曲線近似がなされる。
【0050】
本実施の形態のMFP1では、曲線条件に応じた制御点の設定を、特徴の1つとする。なお、直線ベクトル近似処理部233における輪郭画素に基づいた直線ベクトルの設定、および、曲線ベクトル近似処理部234における制御点に基づいて曲線近似については、周知の技術を採用することができるため、ここでは説明を繰返さない。
【0051】
文字領域圧縮部235では、文字領域に適したデータの圧縮が行なわれる。また、写真・背景領域圧縮部236では、写真・背景領域に適したデータの圧縮が行なわれる。文字領域の画像データは、ベクトルデータ(位置情報)になっているため、FLATE圧縮方式のような可逆性の圧縮方式が好適と考えられる。写真・背景領域は、画質の維持よりもファイルサイズが小さくなることを優先させる場合、たとえば圧縮率を高く設定したJPEG圧縮方式のような非可逆性の圧縮方式が好適と考えられる。
【0052】
圧縮データ合成部240は、文字領域圧縮部235で圧縮された文字領域の画像データと写真・背景領域圧縮部236において圧縮された写真・背景領域の画像データとを合成して、PDF(Portable Document Format)ファイルを生成して、記憶部10Cへ出力する。
【0053】
MFP1では、文字には文字用に好適な圧縮を、写真には写真用に好適な圧縮を施し、最終的には、両者をレイヤとして重ね合わせて1つのPDFファイルフォーマットのデータを生成する。これにより、画像データを、単一の圧縮方式(例えば、JPEG圧縮)で圧縮するよりもサイズの小さいファイルに変換することができる。
【0054】
以上説明したように、MFP1では、スキャナ11で読込まれた画像は、入力画像処理部10Bで処理されることにより、文字領域と写真・背景領域とで異なる方式で圧縮処理されたPDFファイルに変換されて、記憶部10Cに保存される。
【0055】
図4は、このようなPDFファイルへの画像データの変換が行なわれる際の、輪郭画素抽出部232と直線ベクトル近似処理部233と曲線ベクトル近似処理部234において実行される処理(アウトライン変換処理)のフローチャートである。以下、アウトライン変換処理について、詳細に説明する。
【0056】
図4を参照して、輪郭画素抽出部232に2値化された画像データが入力されると、輪郭画像抽出部232は、ステップS10で、文字領域の画像データを、1文字単位に分離して、ステップS20へ処理を進める。
【0057】
ステップS20では、輪郭画素抽出部232は、ステップS10において分離されたすべての文字について、ステップS30〜ステップS80の処理の対象とされたか否かを判断し、対象とされたと判断するとアウトライン変換処理を終了させ、まだ対象とされていない文字があると判断するとステップS30へ処理を進める。
【0058】
ステップS30では、輪郭画素抽出部232は、ステップS10で分離された各文字の中でまだステップS30〜ステップS80の処理対象とされていない文字を処理対象とし、当該処理対象の文字について、パターンマッチングにより輪郭画素を抽出して、ステップS40へ処理を進める。
【0059】
ステップS30の処理により、図5を参照して上述したように、図5において一点鎖線で囲まれた画素が、輪郭画素として抽出される。
【0060】
ステップS40では、輪郭画素抽出部232は、処理対象の文字においてすべての輪郭画素が抽出されたか否かを判断し、抽出されたと判断するとステップS50へ処理を進める。
【0061】
ステップS50では、直線ベクトル近似処理部233が、上述したように、輪郭画素抽出部232によって抽出された輪郭画素に基づいて、複数の輪郭画素を所定のアルゴリズムに従って直線近似し、近似された直線を順に直線ベクトルとして連結してゆくことにより、処理対象となっている文字の輪郭を直線ベクトルで近似して、ステップS60へ処理を進める。なお、直線近似アルゴリズムとしては、公知のいずれの方法も適用可能である。
【0062】
ステップS60では、直線ベクトル近似処理部233は、処理対象となっている文字について抽出されたすべての輪郭画素について直線ベクトル近似が終了したか否かを判断し、まだ終了していないと判断するとステップS50へ処理を戻し、終了したと判断するとステップS70へ処理を進める。
【0063】
図6は、「u」が処理対象の文字とされている場合に、当該文字の画像に対して抽出された輪郭画素を模式的に示す図である。
【0064】
図6では、「u」の文字画像に対して抽出された輪郭画素が、点線の円を付されて示されている。そして、これらの輪郭画素に基づいて当該文字画像が直線ベクトル近似されたものを、図7に示す。
【0065】
図7では、図4の直線ベクトルが、「●」という記号で連結されている状態が示されている。
【0066】
ステップS70では、図7に示したような直線ベクトル近似された処理対象の文字について、各直線ベクトル上に適宜制御点を設定し、当該制御点を用いて、処理対象の輪郭を曲線ベクトル近似して、処理をステップS80へ進める。
【0067】
ステップS70における曲線ベクトル近似処理の内容については、後述する。
ステップS80では、曲線ベクトル近似処理部234は、処理対象の文字画像についてステップS50で生成された直線ベクトルのすべてについて曲線ベクトル近似が終了したか否かを判断し、終了していないと判断するとステップS70へ処理を戻し、終了したと判断するとステップS20へ処理を戻す。
【0068】
ステップS70の処理によりすべての直線ベクトルについて曲線ベクトル近似がなされると、図7に示した直線ベクトルによって表現された文字画像が、図8に示すように、曲線を含む文字画像へと変換される。
【0069】
図9は、図4のステップS70の曲線ベクトル近似処理のサブルーチンのフローチャートである。
【0070】
図9を参照して、曲線ベクトル近似処理では、処理対象とされている文字画像について生成された直線ベクトルの中の1つを処理対象のベクトルとされて、まずステップS710で、当該直線ベクトルが少なくとも一部がアウトラインデータにおいて曲線を構成するべきものであるか否かが判断され、そうではないと判断するとステップS720へ処理が進み、曲線を構成すべきものであると判断されるとステップS730へ処理が進められる。
【0071】
ここで、ステップS710における、曲線を構成するものとされるべきか否かの判断は、たとえば、処理対象とされている直線ベクトルと当該直線ベクトルの一方に連結されている直線ベクトルとのなす角が所定の角度を超えているか否かによって判断される。ここで、所定の角度とは、たとえば110度とすることができる。このような判断処理の内容について、図10を参照して詳細に説明する。
【0072】
図10(A)および図10(B)には、点Kと点Lと点Mがそれぞれ示され、点Kと点L、点Lと点Mがそれぞれ直線で結ばれている。
【0073】
処理対象とされている直線ベクトルをKLとした場合、ステップS710の処理では、ベクトルKLとベクトルLMのなす角が所定の角度を超えているか否かが判断される。なお、なす角は、180度を超える場合、360度から当該角度を差し引いた角度とされる。図10(A)と図10(B)から理解されるように、KLとLMのなす角が大きいほど、点Kと点Lと点Mは、アウトラインデータでは滑らかな曲線で連結されて表現されるべきであると考えられる。ここでは、たとえばKLとLMのなす角が110度を超える場合には、KLがアウトラインデータにおいて図10に示されたような直線のままではなく、少なくとも一部が曲線として表現されるべきであると判断される。なお、ここで例示した判断基準とされる角度は一例であって、生成するアウトラインデータに担保させたい特徴等により適宜変更されてもよい。
【0074】
図9に戻って、ステップS720では、処理対象とされている直線ベクトルに対して制御点を設定することなく、処理がステップS760へ進められる。
【0075】
一方、ステップS730では、処理対象とされている直線ベクトルについて、アウトラインデータにおいて直線を残すべきであるか否かが判断され、残すべきであると判断されるとステップS750へ処理が進められ、残す必要がないと判断されるとステップS740へ処理が進められる。
【0076】
ステップS740では、処理対象とされている直線ベクトルの中点に制御点が設定されて、ステップS760へ処理が進められる。
【0077】
一方、ステップS750では、処理対象とされている直線ベクトルにおいて、中点ではなく、中点から一方側に寄った位置に制御点が設定されて、ステップS760へ処理が進められる。
【0078】
ステップS730における判断の内容の詳細については、後述する。
ステップS760では、処理対象とされている文字について、すべての直線ベクトルについてステップS710〜ステップS750の処理がなされたか否かを判断し、まだなされていないと判断するとステップS770で、次の直線ベクトルを処理対象としてステップS710へ処理が戻される。
【0079】
一方、すべての直線ベクトルについてステップS710〜ステップS750の処理がなされたと判断されると、ステップS780へ処理が進められる。
【0080】
ステップS780では、処理対象とされている文字について、ステップS740またはステップS750で設定された制御点を用いて曲線近似がなされて、処理が図4へリターンされる。
【0081】
図11は、図9に示した直線ベクトル近似処理のステップS710とステップS730の処理内容を具体的にした変形例のフローチャートである。
【0082】
図11に示された曲線ベクトル近似処理では、図9のステップS710の代わりに、ステップS711が実行される。ステップS711の処理は、図10を参照して説明したような、直線ベクトルKLと直線ベクトルLMのなす角が110度を超えているか否かの判断である。そして、この変形例では、なす角が110度以下であると判断されるとステップS720へ処理が進められ、110度を超えていると判断されるとステップS731へ処理が進められる。
【0083】
ステップS731とステップS732は、図9のステップS730の代わりに設けられている処理である。
【0084】
ステップS731では、直線ベクトルKLの長さが予め定められた設定値を超えているか否かが判断され、超えていると判断されるとステップS732へ処理が進められ、設定値以下であると判断されるとステップS740へ処理が進められる。
【0085】
ステップS732では、処理対象である直線ベクトルKLが、ステップS711でなす角を判断対象とされた直線ベクトルLMとは違う方の端部で連結している直線ベクトルJKとのなす角が判断される。そして、当該なす角が90度以下であれば処理がステップS750へ進められ、90度を超えていると判断されるとステップS740へ処理が進められる。
【0086】
ここで、ステップS732における処理の内容を図12を参照して詳細に説明する。
図12を参照して、図12(A)〜図12(C)では、それぞれ、点Jと点Kと点Lと点Mの4点が示され、点Jと点Kが、点Kと点Lが、点Lと点Mが、それぞれ直線で連結されて直線ベクトルとされている。そして、図11のステップS732,S740,S750の処理により、図12(A)に示されるようにJKとKLのなす角が90度を超えているような場合には、直線ベクトルKLに対してその中点に制御点Pが設定される(ステップS750)。一方、図12(B)および図12(C)に示されるようにJKとKLのなす角が90度以下である場合には、直線ベクトルKL上には、直線ベクトルJKとは反対側の端部で連結する直線ベクトルLMに寄った位置に、制御点Pが設定される。図12(B)および図12(C)では、「×」は、KLの中点を示している。
【0087】
以上図11を参照して説明したように、直線ベクトルKL上に設定される制御点の位置が、ステップS711でなす角を判断された方とは反対側で連結する直線ベクトルとのなす角に基づいて中点とされるか中点よりも一方側に寄った位置に設定されるかが決定される。これにより、図12(A)に示されるように直線ベクトルKLが点Jと点Kと点Lと点Mを通るような緩やかな曲線としてアウトラインデータが生成されるべきであると判断されて、その中点に制御点Pが設定される。
【0088】
一方、図12(B)または図12(C)に示されるように、直線ベクトルKLが、その上部は直線のまま残され、直線ベクトルLMと連結する部分は曲線近似されるべきであると判断されるような場合には、制御点Pは、その中点よりも直線ベクトルLMに連結する端部寄りに設定される。
【0089】
図11を参照して説明した処理の特徴を、図13を参照してより具体的に説明する。図13は、図7に示した、直線ベクトルでその輪郭を近似された画像に対する、曲線ベクトル近似処理における制御点の設定の態様を説明するための図である。
【0090】
図13に記載された、輪郭を直線近似された「u」の外郭上には、点A、点B、点C、点D、点E、点F、点G、点H、点J、点K、点L、点M、点N、点Qの14点が示されている。ここでは、制御点の設定の例として、直線ベクトルJKと直線ベクトルKLについての、制御点の設定について説明する。
【0091】
まず、直線ベクトルJKについては、連結する直線ベクトルKLとのなす角がほぼ90°となり、110°よりも小さい。このことから、処理がステップS711からステップS720に進められ、直線ベクトルJK上には制御点は設定されない。
【0092】
直線ベクトルKLについては、連結する直線ベクトルLMとのなす角が110°を超えているとして、処理がステップS711からステップS731に進められる。そして、直線ベクトルKLについては、処理がステップS731からステップS732に進められるものとする。そして、ステップS732において、直線ベクトルJKと直線ベクトルKLのなす角が判断される。図13では、これらのなす角は90°程度である。したがって、ステップS750へ処理が進められる。
【0093】
これにより、直線ベクトルKLについては、「×」で示される直線ベクトルKLの中点ではなく、当該中点よりも、ステップS711においてなす角を判断された直線ベクトルLMと連結する側に寄った位置(点PX)に、制御点を設定される。
【0094】
以上説明した本実施の形態によれば、図18(B)で示された「B」、図19(B)で示された「u」、図20(B)に示された「Z」は、それぞれ、図14(A)、図14(B)、図14(C)に示されるように、直線と曲線が連結する部分または直線と直線が連結する部分の無駄な膨らみが生じなくなる。
【0095】
なお、図11のステップS732における判断対象とされる角度は、ステップS711と同様の角度、つまり、110°とされても良い。つまり、ステップS732において、なす角が110°以下であると判断されると、ステップS750に処理が進められ、110°を越えていると判断されると、ステップS740に処理が進められるように、図11に示された処理は変更されても良い。
【0096】
図15は、図11に示したフローチャートのさらなる変形例のフローチャートである。
図15に示された変形例では、ステップS732の処理がステップS733とされている。
【0097】
ステップS733では、直線ベクトルKLの長さを直線ベクトルJKで割った値が所定の設定値を超えているか否かが判断され、超えていると判断されると、ステップS750で、図12(B)または図12(C)に示されるように、直線ベクトルKL上の制御点が中点よりも、ステップS733で判断対象とされたベクトルとは違うベクトル(直線ベクトルLM)に連結する側の端部寄りに設定される。
【0098】
一方、設定値以下であると判断されると、ステップS740で、直線ベクトルKLの中点に制御点が設定される。
【0099】
ここで、ステップS750における制御点の設定に関し、本発明の思想に含まれる態様を説明する。
【0100】
図16を参照して、直線ベクトルKL上に設定される制御点Pの位置は、直線ベクトルKLと直線ベクトルLMのなす角が図16(A)から図16(D)に変化するように、なす角が小さくなるほど、連結する端部に寄った位置(中点から離れた位置)に設定されることが好ましい。直線ベクトルKLにおいてより多く直線部分を残したアウトラインデータを生成するためである。
【0101】
図17を参照して、直線ベクトルKL上に制御点Pを設定する場合であって、制御点Pをその中点よりも直線ベクトルLMと連結する側の端部に寄った位置に設定する場合、図17(A)〜図17(D)に示されるように、直線ベクトルKLの長さが長くなるほど、制御点Pを連結する端部側に(中点から離れた位置に)設定することが好ましい。直線ベクトルKLについてより直線らしさを残した状態でアウトラインデータを生成するためである。
【0102】
以上説明した本実施の形態では、スキャナ11で生成された画像データに対してアウトライン化が行なわれたが、MFP1は、外部の装置から入力された画像データ等の、スキャナ11が生成した画像データ以外の画像データについても、アウトライン化の対象とすることができる。
【0103】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0104】
【図1】本発明の画像処理装置の一実施の形態であるMFPの外観を示す図である。
【図2】図1のMFPのハードウェア構成を示す図である。
【図3】図2の入力画像処理部の詳細な構成を示す図である。
【図4】図1のMFPにおいて実行されるアウトライン変換処理のフローチャートである。
【図5】図1のMFPで実行される輪郭画素の抽出の態様を説明するための図である。
【図6】図4のアウトライン変換処理において抽出された輪郭画素を模式的に示す図である。
【図7】図4のアウトライン変換処理における直線ベクトル近似によって得られた画像の一例を示す図である。
【図8】図4のアウトライン変換処理における曲線ベクトル近似によって得られた画像の一例を示す図である。
【図9】図4の曲線ベクトル近似処理のサブルーチンのフローチャートである。
【図10】図9の処理内容を説明するための図である。
【図11】図9の曲線ベクトル近似処理の第1の変形例のフローチャートである。
【図12】図11における処理内容を説明するための図である。
【図13】図11における処理内容を説明するための図である。
【図14】図1のMFPによって生成されるアウトラインデータの一例を示す図である。
【図15】図9の曲線ベクトル近似処理の第2の変形例のフローチャートである。
【図16】図1のMFPにおいて実行される曲線ベクトル近似処理における、制御点の設定態様を説明するための図である。
【図17】図1のMFPにおいて実行される曲線ベクトル近似処理における、制御点の設定態様を説明するための図である。
【図18】従来の画像処理装置において生成されていたアウトライン化された画像の一例を示す図である。
【図19】従来の画像処理装置において生成されていたアウトライン化された画像の一例を示す図である。
【図20】従来の画像処理装置において生成されていたアウトライン化された画像の一例を示す図である。
【符号の説明】
【0105】
1 MFP、10 制御部、10A CPU、10B 入力画像処理部、10C 記憶部、10D 出力画像処理部、10E ネットワークI/F、10F 通信部、11 スキャナ、12 印刷装置、15 操作パネル、18 給紙部、19 トレイ、210 前処理部、220 領域判別部、231 2値化処理部、232 輪郭画素抽出部、233 直線ベクトル近似処理部、234 曲線ベクトル近似処理部、235 文字領域圧縮部、236 写真・背景領域圧縮部、240 圧縮データ合成部。
【技術分野】
【0001】
本発明は、画像データからアウトラインデータを生成するアウトライン化方法およびそれを用いた画像圧縮方法、アウトライン化装置、ならびにアウトライン化プログラムに関する。
【背景技術】
【0002】
画像データに含まれる文字部分をアウトライン化する技術が、従来から種々提案されている。
【0003】
たとえば、特許文献1(特開2006−253892号公報)には、2値化された画像データをアウトライン化するための技術が開示されている。当該文献では、まず、ラスタ画像データから水平ベクトルと垂直ベクトルからなる粗輪郭データが抽出され、粗輪郭データからアンカーポイントが抽出され、粗輪郭データが当該粗輪郭データを構成する複数の線分の中でアンカーポイント間に存在する線分が直線や曲線に近似され、残りの線分が3次または2次曲線に置き換えられ、そして、補正がなされることにより、アウトライン化がされる。
【0004】
また、当該特許文献1では、文字のサイズに応じて、アウトライン化に利用する2値化画像の解像度が調整される。
【特許文献1】特開2006−253892号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
なお、従来のアウトライン化に関する技術では、滑らかな曲線を描くことを目的として開発が進められてきた。このため、アウトライン化された文字の画像では、曲線の滑らかさが向上する一方で、元画像における直線の一部が、曲線に修正されてしまう事態が生じていた。このことを、図18〜図20を参照して具体的に説明する。
【0006】
図18では、アルファベットの「B」についての、アウトライン化される前後の画像が示されている。図18(A)には、原稿のスキャン等によって得られたアウトライン化される前の2値化画像が示され、図18(B)には、図18(A)の画像が従来の手法でアウトライン化された後の画像が示されている。
【0007】
図18(B)では、「B」の文字の右上端の、水平方向の直線と曲線が接続される部分(破線で囲まれた部分)において、図18(A)の2値化画像と比較して、直線部分が本来曲がるべき箇所よりも左側から、つまり手前から、曲がり始めている。
【0008】
また、図19には、アルファベットの「u」についての、アウトライン化前後の画像が示されている。図19(A)は、アウトライン化前の2値化画像を、図19(B)は、図19(A)の画像の従来の手法によるアウトライン化後の画像を、それぞれ示す。
【0009】
図19(B)では、「u」の文字の左下端の、垂直方向の直線と曲線が接続される部分(破線で囲まれた部分)において、図19(A)の2値化画像と比較して、直線部分が、本来曲がるべき箇所よりも上側から、つまり手前から、曲がり始めている。
【0010】
また、図20には、アルファベットの「Z」についての、アウトライン化前後の画像が示されている。図20(A)は、アウトライン化前の2値化画像を、図20(B)は、図20(A)の画像の従来の手法によるアウトライン化後の画像を、それぞれ示す。
【0011】
図20(B)では、「Z」の文字の左下端の、左斜め下方向に延びる直線と曲線が接続される部分(破線で囲まれた部分)において、図20(A)の2値化画像と比較して、直線同士がシャープに接続するべき部分が、曲線近似されて表現されている。
【0012】
このように、従来の技術では、滑らかな曲線を描くことと、直線と曲線の接続部分における直線部分のシャープさを保持させることの両立が困難であった。
【0013】
本発明は、かかる実情に鑑み考え出されたものであり、その目的は、画像処理装置において、曲線を滑らかに表現するとともに、直線で表現すべきところは直線で表現できる、アウトライン画像を生成することである。
【課題を解決するための手段】
【0014】
本発明に従ったアウトライン化方法は、2値化された画像データに対して、輪郭画素を抽出するステップと、前記輪郭画素に基づいて、前記画像データの輪郭を直線近似するステップと、前記直線近似された輪郭の中の第1の直線について、前記第1の直線と連続する第2の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断するステップと、前記第1の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第1の直線の中点よりも前記第2の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なうステップと備えることを特徴とする。
【0015】
また、本発明のアウトライン化方法では、前記判断するステップは、前記第1の直線と前記第2の直線のなす角に基づいて判断することが好ましい。
【0016】
また、本発明のアウトライン化方法では、前記判断するステップは、前記第1の直線の長さに基づいて判断することが好ましい。
【0017】
また、本発明のアウトライン化方法では、前記判断するステップは、前記第2の直線と前記第1の直線の反対側で連続する第3の直線と、前記第1の直線とのなす角に基づいて判断することが好ましい。
【0018】
また、本発明のアウトライン化方法では、前記曲線近似を行なうステップは、前記第1の直線と前記第2の直線のなす角が小さくなるほど、前記第1の直線上の、前記第2の直線に近い位置に制御点を設定することが好ましい。
【0019】
また、本発明のアウトライン化方法では、前記判断するステップは、前記第1の直線と前記第2の直線の長さの比に基づいて判断することが好ましい。
【0020】
また、本発明のアウトライン化方法では、前記曲線近似するステップは、前記第1の直線の長さに対する前記第2の直線の長さの比が大きくなるほど、前記第1の直線上の、前記第2の直線に近い位置に制御点を設定することが好ましい。
【0021】
本発明に従った画像圧縮方法は、上記のアウトライン化方法によりアウトライン化された画像データを少なくとも含む画像データを圧縮するステップを備えることを特徴とする。
【0022】
本発明に従ったアウトライン化装置は、2値化された画像データに対して、輪郭画素を抽出する抽出部と、前記輪郭画素に基づいて、前記画像データの輪郭を直線近似する第1の近似部と、前記直線近似された輪郭の中の第1の直線について、前記第1の直線を連続する第2の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断する判断部と、前記第1の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第1の直線の中点よりも前記第2の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なう第2の近似部とを備えることを特徴とする。
【0023】
本発明に従ったアウトライン化プログラムは、画像処理装置に、画像データからアウトラインデータを生成させる、コンピュータ読取可能なアウトライン化プログラムであって、前記画像処理装置に、2値化された画像データに対して、輪郭画素を抽出するステップと、前記輪郭画素に基づいて、前記画像データの輪郭を直線近似するステップと、前記輪郭ベクトルに基づいて、前記画像データの輪郭を直線近似するステップと、前記直線近似された輪郭の中の第1の直線について、前記第1の直線と連続する第2の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断するステップと、前記第1の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第1の直線の中点よりも前記第2の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なうステップとを実行させることを特徴とする。
【発明の効果】
【0024】
本発明によれば、画像のアウトライン化において、直線ベクトルで近似された輪郭の一部分について、曲線近似に置き換える際に、基準となる直線ベクトルに対して一律にその中点に曲線近似に用いる制御点が設定されるのではなく、当該直線がアウトライン化後に直線で残すべき部分を含むか否かが判断され、直線で残すべき部分を含むと判断されると、中点以外の点に制御点が設定される。
【0025】
これにより、アウトライン化の際に、直線で残すべき部分については、直線のまま残すことができる。
【0026】
したがって、従来通り曲線を滑らかに表現できるとともに、直線で表現すべきところは直線で表現できる、好ましいアウトライン画像を生成することができる。
【発明を実施するための最良の形態】
【0027】
以下、本発明の画像処理装置の実施の形態について、図面を参照して説明する。
図1は、本発明の画像処理装置の一実施の形態であるMFP(Multi Function Peripherals)1の外観を示す図である。
【0028】
MFP1は、各種の処理に対する操作指示、ならびに、文字および数字のデータの入力を受付ける操作パネル15を備えている。操作パネル15には、電源キー等の、ユーザが操作するための複数のキーが設けられている。
【0029】
また、MFP1は、原稿を光電的に読取って画像データを得るスキャナ11、画像データに基づいて記録シート上に画像を印刷する印刷装置(エンジン)12、印刷装置12に記録シートを供給する給紙部18、印刷装置12によって画像を印刷された記録シートが排出されるトレイ19、および、後述するCPU(central processing unit)10A等を収納する制御部10を備えている。
【0030】
スキャナ11は、写真、文字、絵などの画像情報を原稿から光電的に読取って画像データを取得する。取得された画像データは、適宜処理を施された後、ネットワークを介して送信される電子メールの添付ファイル用のデータとして利用されたり、電話回線等を介して他の機器に送信されたり、印刷装置12に送られて印刷に供されたりする。
【0031】
図2は、図1のMFP1のハードウェア構成を示す図である。
図2を参照して、MFP1は、上述した構成要素の他に、入力画像処理部10B、記憶部10C、CPU10A、ネットワークI/F(インターフェイス)10E、出力画像処理部10D、および通信部10Fを含む。
【0032】
MFP1では、スキャナ11で取得された画像データは、入力画像処理部10Bに送られる。
【0033】
入力画像処理部10Bは、入力された画像の色変換、色補正、解像度変換、および領域判別等の処理を実行する。入力画像処理部10Bにおいて処理されたデータは、記憶部10Cで保存される。記憶部10Cは、DRAM(Dynamic Random Access Memory)等のメモリ、および、磁気メモリの一例であるハードディスクを備えたハードディスクドライブ(HDD)を含む。なお、MFP1では、入力画像処理部10Bは、たとえば、CPU10Aが記憶部10C(またはMFP1に対して着脱可能な記録媒体)に記録されたプログラムを実行することによって実現されても良いし、MFP1に実装される1つのまたは複数のASIC(Application Specific Integrated Circuit)によって実現されても良い。
【0034】
CPU10Aは、MFP1の全体的な制御、操作キー(表示パネル15の表示部に表示されるキー等)に対する操作の検出、操作パネル15の表示、入力されたデータの画像ファイルへの変更等の処理を実行する。
【0035】
ネットワークI/F10Eは、電子メール等をネットワークへ送信するI/F部分であり、プロトコルの作成等を行なう。
【0036】
出力画像処理部10Dは、写真画像の粒状性を向上させるためのスクリーン制御、文字エッジの滑らかさを向上させるためのスムージング処理、PWM(Pulse Width Modulation)制御等を行なう。
【0037】
印刷装置12は、出力画像処理部で生成されたデータを用紙に印刷する。
通信部10Fは、モデムおよびNCU(Network Control Unit)を含み、ファクシミリの送受信の変復調、ファクシミリの通信プロトコルの生成、電話回線への接続等を行なう。
【0038】
操作パネル15は、操作キーと表示部とを含む。表示部は、たとえば液晶のタッチパネルによって構成される。操作キーは、たとえば当該液晶のタッチパネルに表示されるタッチキーによって構成される。
【0039】
図3は、図2の入力画像処理部10Bの詳細な構成を示す図である。
図3を参照して、入力画像処理部10Bは、前処理部210と、領域判別部220と、2値化処理部231と、輪郭画像抽出部232と、直線ベクトル近似処理部233と、曲線ベクトル近似処理部234と、文字領域圧縮部235と、写真・背景領域圧縮部236と、圧縮データ合成部240とを含む。
【0040】
スキャナ11は、原稿をスキャンすることによって画像データを生成すると、その画像データを前処理部210に出力する。
【0041】
前処理部210では、画像データに対して、画像形式の変換、解像度の変換、および下地処理等の処理が行なわれる。これらの処理を施された画像データは、領域判別部220に送られる。
【0042】
領域判別部220では、まず、写真、背景、文字等の領域判別を行なうことにより、画像データを、文字領域と文字以外の領域(写真・背景領域)とに分ける。
【0043】
そして、領域判別部220は、文字領域の画像データを2値化処理部231に送り、写真・背景領域の画像データを写真・背景領域圧縮部236に送る。
【0044】
なお、領域判別部220は、写真・背景領域の画像データについては、入力されたフルカラー24bitの画像データから8bitの明度画像を生成し、当該明度画像にスムージング処理を行ない、ノイズを除去する。そして、生成されたスムージング画像を、ラベリング処理することにより、前処理部210から送られた画像データに含まれる複数の写真・背景領域の位置を検出する。
【0045】
2値化処理部231は、入力された文字領域の画像データに対し、2値化処理を行ない、文字と背景を分離する。2値化された画像データは、輪郭画素抽出部232へ送られ、輪郭画素抽出部232と直線ベクトル近似処理部233と曲線ベクトル近似処理部234とにおいて行なわれるアウトラインデータ変換処理に供される。
【0046】
輪郭画素抽出部232では、2値化された文字画像を走査して、パターンマッチングにより、輪郭画素が抽出される。
【0047】
図5(A)には、パターンマッチングに用いる輪郭画素抽出パターンの一例が示されており、図5(B)には、2値化された文字画像の一部が拡大されて示されている。2値化らされた文字画像を(たとえば、4画素単位で)走査し、図5(A)にいずれかのパターンに合致する画素が輪郭画素として抽出される。このようなパターンマッチングによって、一例として、図5(B)に示されるように、一点鎖線で囲まれた画素が、輪郭画素として抽出される。
【0048】
輪郭画素抽出部232において輪郭画素を抽出された後、画像データは、直線ベクトル近似処理部233に送られる。直線ベクトル近似処理部233では、輪郭画素抽出部232において抽出された輪郭画素について、近隣の輪郭画素が1つのベクトルとして表現されることにより、文字画像の輪郭が直線近似される。直線ベクトル近似処理部233において輪郭を直線近似された文字画像のデータは、曲線ベクトル近似処理部234に送られる。
【0049】
曲線ベクトル近似処理部234では、直線ベクトル近似処理部233において生成された、文字画像の輪郭の直線ベクトルに対し、曲線条件に応じて適宜制御点が設定され、当該制御点に基づいて、文字画像の輪郭の曲線近似がなされる。
【0050】
本実施の形態のMFP1では、曲線条件に応じた制御点の設定を、特徴の1つとする。なお、直線ベクトル近似処理部233における輪郭画素に基づいた直線ベクトルの設定、および、曲線ベクトル近似処理部234における制御点に基づいて曲線近似については、周知の技術を採用することができるため、ここでは説明を繰返さない。
【0051】
文字領域圧縮部235では、文字領域に適したデータの圧縮が行なわれる。また、写真・背景領域圧縮部236では、写真・背景領域に適したデータの圧縮が行なわれる。文字領域の画像データは、ベクトルデータ(位置情報)になっているため、FLATE圧縮方式のような可逆性の圧縮方式が好適と考えられる。写真・背景領域は、画質の維持よりもファイルサイズが小さくなることを優先させる場合、たとえば圧縮率を高く設定したJPEG圧縮方式のような非可逆性の圧縮方式が好適と考えられる。
【0052】
圧縮データ合成部240は、文字領域圧縮部235で圧縮された文字領域の画像データと写真・背景領域圧縮部236において圧縮された写真・背景領域の画像データとを合成して、PDF(Portable Document Format)ファイルを生成して、記憶部10Cへ出力する。
【0053】
MFP1では、文字には文字用に好適な圧縮を、写真には写真用に好適な圧縮を施し、最終的には、両者をレイヤとして重ね合わせて1つのPDFファイルフォーマットのデータを生成する。これにより、画像データを、単一の圧縮方式(例えば、JPEG圧縮)で圧縮するよりもサイズの小さいファイルに変換することができる。
【0054】
以上説明したように、MFP1では、スキャナ11で読込まれた画像は、入力画像処理部10Bで処理されることにより、文字領域と写真・背景領域とで異なる方式で圧縮処理されたPDFファイルに変換されて、記憶部10Cに保存される。
【0055】
図4は、このようなPDFファイルへの画像データの変換が行なわれる際の、輪郭画素抽出部232と直線ベクトル近似処理部233と曲線ベクトル近似処理部234において実行される処理(アウトライン変換処理)のフローチャートである。以下、アウトライン変換処理について、詳細に説明する。
【0056】
図4を参照して、輪郭画素抽出部232に2値化された画像データが入力されると、輪郭画像抽出部232は、ステップS10で、文字領域の画像データを、1文字単位に分離して、ステップS20へ処理を進める。
【0057】
ステップS20では、輪郭画素抽出部232は、ステップS10において分離されたすべての文字について、ステップS30〜ステップS80の処理の対象とされたか否かを判断し、対象とされたと判断するとアウトライン変換処理を終了させ、まだ対象とされていない文字があると判断するとステップS30へ処理を進める。
【0058】
ステップS30では、輪郭画素抽出部232は、ステップS10で分離された各文字の中でまだステップS30〜ステップS80の処理対象とされていない文字を処理対象とし、当該処理対象の文字について、パターンマッチングにより輪郭画素を抽出して、ステップS40へ処理を進める。
【0059】
ステップS30の処理により、図5を参照して上述したように、図5において一点鎖線で囲まれた画素が、輪郭画素として抽出される。
【0060】
ステップS40では、輪郭画素抽出部232は、処理対象の文字においてすべての輪郭画素が抽出されたか否かを判断し、抽出されたと判断するとステップS50へ処理を進める。
【0061】
ステップS50では、直線ベクトル近似処理部233が、上述したように、輪郭画素抽出部232によって抽出された輪郭画素に基づいて、複数の輪郭画素を所定のアルゴリズムに従って直線近似し、近似された直線を順に直線ベクトルとして連結してゆくことにより、処理対象となっている文字の輪郭を直線ベクトルで近似して、ステップS60へ処理を進める。なお、直線近似アルゴリズムとしては、公知のいずれの方法も適用可能である。
【0062】
ステップS60では、直線ベクトル近似処理部233は、処理対象となっている文字について抽出されたすべての輪郭画素について直線ベクトル近似が終了したか否かを判断し、まだ終了していないと判断するとステップS50へ処理を戻し、終了したと判断するとステップS70へ処理を進める。
【0063】
図6は、「u」が処理対象の文字とされている場合に、当該文字の画像に対して抽出された輪郭画素を模式的に示す図である。
【0064】
図6では、「u」の文字画像に対して抽出された輪郭画素が、点線の円を付されて示されている。そして、これらの輪郭画素に基づいて当該文字画像が直線ベクトル近似されたものを、図7に示す。
【0065】
図7では、図4の直線ベクトルが、「●」という記号で連結されている状態が示されている。
【0066】
ステップS70では、図7に示したような直線ベクトル近似された処理対象の文字について、各直線ベクトル上に適宜制御点を設定し、当該制御点を用いて、処理対象の輪郭を曲線ベクトル近似して、処理をステップS80へ進める。
【0067】
ステップS70における曲線ベクトル近似処理の内容については、後述する。
ステップS80では、曲線ベクトル近似処理部234は、処理対象の文字画像についてステップS50で生成された直線ベクトルのすべてについて曲線ベクトル近似が終了したか否かを判断し、終了していないと判断するとステップS70へ処理を戻し、終了したと判断するとステップS20へ処理を戻す。
【0068】
ステップS70の処理によりすべての直線ベクトルについて曲線ベクトル近似がなされると、図7に示した直線ベクトルによって表現された文字画像が、図8に示すように、曲線を含む文字画像へと変換される。
【0069】
図9は、図4のステップS70の曲線ベクトル近似処理のサブルーチンのフローチャートである。
【0070】
図9を参照して、曲線ベクトル近似処理では、処理対象とされている文字画像について生成された直線ベクトルの中の1つを処理対象のベクトルとされて、まずステップS710で、当該直線ベクトルが少なくとも一部がアウトラインデータにおいて曲線を構成するべきものであるか否かが判断され、そうではないと判断するとステップS720へ処理が進み、曲線を構成すべきものであると判断されるとステップS730へ処理が進められる。
【0071】
ここで、ステップS710における、曲線を構成するものとされるべきか否かの判断は、たとえば、処理対象とされている直線ベクトルと当該直線ベクトルの一方に連結されている直線ベクトルとのなす角が所定の角度を超えているか否かによって判断される。ここで、所定の角度とは、たとえば110度とすることができる。このような判断処理の内容について、図10を参照して詳細に説明する。
【0072】
図10(A)および図10(B)には、点Kと点Lと点Mがそれぞれ示され、点Kと点L、点Lと点Mがそれぞれ直線で結ばれている。
【0073】
処理対象とされている直線ベクトルをKLとした場合、ステップS710の処理では、ベクトルKLとベクトルLMのなす角が所定の角度を超えているか否かが判断される。なお、なす角は、180度を超える場合、360度から当該角度を差し引いた角度とされる。図10(A)と図10(B)から理解されるように、KLとLMのなす角が大きいほど、点Kと点Lと点Mは、アウトラインデータでは滑らかな曲線で連結されて表現されるべきであると考えられる。ここでは、たとえばKLとLMのなす角が110度を超える場合には、KLがアウトラインデータにおいて図10に示されたような直線のままではなく、少なくとも一部が曲線として表現されるべきであると判断される。なお、ここで例示した判断基準とされる角度は一例であって、生成するアウトラインデータに担保させたい特徴等により適宜変更されてもよい。
【0074】
図9に戻って、ステップS720では、処理対象とされている直線ベクトルに対して制御点を設定することなく、処理がステップS760へ進められる。
【0075】
一方、ステップS730では、処理対象とされている直線ベクトルについて、アウトラインデータにおいて直線を残すべきであるか否かが判断され、残すべきであると判断されるとステップS750へ処理が進められ、残す必要がないと判断されるとステップS740へ処理が進められる。
【0076】
ステップS740では、処理対象とされている直線ベクトルの中点に制御点が設定されて、ステップS760へ処理が進められる。
【0077】
一方、ステップS750では、処理対象とされている直線ベクトルにおいて、中点ではなく、中点から一方側に寄った位置に制御点が設定されて、ステップS760へ処理が進められる。
【0078】
ステップS730における判断の内容の詳細については、後述する。
ステップS760では、処理対象とされている文字について、すべての直線ベクトルについてステップS710〜ステップS750の処理がなされたか否かを判断し、まだなされていないと判断するとステップS770で、次の直線ベクトルを処理対象としてステップS710へ処理が戻される。
【0079】
一方、すべての直線ベクトルについてステップS710〜ステップS750の処理がなされたと判断されると、ステップS780へ処理が進められる。
【0080】
ステップS780では、処理対象とされている文字について、ステップS740またはステップS750で設定された制御点を用いて曲線近似がなされて、処理が図4へリターンされる。
【0081】
図11は、図9に示した直線ベクトル近似処理のステップS710とステップS730の処理内容を具体的にした変形例のフローチャートである。
【0082】
図11に示された曲線ベクトル近似処理では、図9のステップS710の代わりに、ステップS711が実行される。ステップS711の処理は、図10を参照して説明したような、直線ベクトルKLと直線ベクトルLMのなす角が110度を超えているか否かの判断である。そして、この変形例では、なす角が110度以下であると判断されるとステップS720へ処理が進められ、110度を超えていると判断されるとステップS731へ処理が進められる。
【0083】
ステップS731とステップS732は、図9のステップS730の代わりに設けられている処理である。
【0084】
ステップS731では、直線ベクトルKLの長さが予め定められた設定値を超えているか否かが判断され、超えていると判断されるとステップS732へ処理が進められ、設定値以下であると判断されるとステップS740へ処理が進められる。
【0085】
ステップS732では、処理対象である直線ベクトルKLが、ステップS711でなす角を判断対象とされた直線ベクトルLMとは違う方の端部で連結している直線ベクトルJKとのなす角が判断される。そして、当該なす角が90度以下であれば処理がステップS750へ進められ、90度を超えていると判断されるとステップS740へ処理が進められる。
【0086】
ここで、ステップS732における処理の内容を図12を参照して詳細に説明する。
図12を参照して、図12(A)〜図12(C)では、それぞれ、点Jと点Kと点Lと点Mの4点が示され、点Jと点Kが、点Kと点Lが、点Lと点Mが、それぞれ直線で連結されて直線ベクトルとされている。そして、図11のステップS732,S740,S750の処理により、図12(A)に示されるようにJKとKLのなす角が90度を超えているような場合には、直線ベクトルKLに対してその中点に制御点Pが設定される(ステップS750)。一方、図12(B)および図12(C)に示されるようにJKとKLのなす角が90度以下である場合には、直線ベクトルKL上には、直線ベクトルJKとは反対側の端部で連結する直線ベクトルLMに寄った位置に、制御点Pが設定される。図12(B)および図12(C)では、「×」は、KLの中点を示している。
【0087】
以上図11を参照して説明したように、直線ベクトルKL上に設定される制御点の位置が、ステップS711でなす角を判断された方とは反対側で連結する直線ベクトルとのなす角に基づいて中点とされるか中点よりも一方側に寄った位置に設定されるかが決定される。これにより、図12(A)に示されるように直線ベクトルKLが点Jと点Kと点Lと点Mを通るような緩やかな曲線としてアウトラインデータが生成されるべきであると判断されて、その中点に制御点Pが設定される。
【0088】
一方、図12(B)または図12(C)に示されるように、直線ベクトルKLが、その上部は直線のまま残され、直線ベクトルLMと連結する部分は曲線近似されるべきであると判断されるような場合には、制御点Pは、その中点よりも直線ベクトルLMに連結する端部寄りに設定される。
【0089】
図11を参照して説明した処理の特徴を、図13を参照してより具体的に説明する。図13は、図7に示した、直線ベクトルでその輪郭を近似された画像に対する、曲線ベクトル近似処理における制御点の設定の態様を説明するための図である。
【0090】
図13に記載された、輪郭を直線近似された「u」の外郭上には、点A、点B、点C、点D、点E、点F、点G、点H、点J、点K、点L、点M、点N、点Qの14点が示されている。ここでは、制御点の設定の例として、直線ベクトルJKと直線ベクトルKLについての、制御点の設定について説明する。
【0091】
まず、直線ベクトルJKについては、連結する直線ベクトルKLとのなす角がほぼ90°となり、110°よりも小さい。このことから、処理がステップS711からステップS720に進められ、直線ベクトルJK上には制御点は設定されない。
【0092】
直線ベクトルKLについては、連結する直線ベクトルLMとのなす角が110°を超えているとして、処理がステップS711からステップS731に進められる。そして、直線ベクトルKLについては、処理がステップS731からステップS732に進められるものとする。そして、ステップS732において、直線ベクトルJKと直線ベクトルKLのなす角が判断される。図13では、これらのなす角は90°程度である。したがって、ステップS750へ処理が進められる。
【0093】
これにより、直線ベクトルKLについては、「×」で示される直線ベクトルKLの中点ではなく、当該中点よりも、ステップS711においてなす角を判断された直線ベクトルLMと連結する側に寄った位置(点PX)に、制御点を設定される。
【0094】
以上説明した本実施の形態によれば、図18(B)で示された「B」、図19(B)で示された「u」、図20(B)に示された「Z」は、それぞれ、図14(A)、図14(B)、図14(C)に示されるように、直線と曲線が連結する部分または直線と直線が連結する部分の無駄な膨らみが生じなくなる。
【0095】
なお、図11のステップS732における判断対象とされる角度は、ステップS711と同様の角度、つまり、110°とされても良い。つまり、ステップS732において、なす角が110°以下であると判断されると、ステップS750に処理が進められ、110°を越えていると判断されると、ステップS740に処理が進められるように、図11に示された処理は変更されても良い。
【0096】
図15は、図11に示したフローチャートのさらなる変形例のフローチャートである。
図15に示された変形例では、ステップS732の処理がステップS733とされている。
【0097】
ステップS733では、直線ベクトルKLの長さを直線ベクトルJKで割った値が所定の設定値を超えているか否かが判断され、超えていると判断されると、ステップS750で、図12(B)または図12(C)に示されるように、直線ベクトルKL上の制御点が中点よりも、ステップS733で判断対象とされたベクトルとは違うベクトル(直線ベクトルLM)に連結する側の端部寄りに設定される。
【0098】
一方、設定値以下であると判断されると、ステップS740で、直線ベクトルKLの中点に制御点が設定される。
【0099】
ここで、ステップS750における制御点の設定に関し、本発明の思想に含まれる態様を説明する。
【0100】
図16を参照して、直線ベクトルKL上に設定される制御点Pの位置は、直線ベクトルKLと直線ベクトルLMのなす角が図16(A)から図16(D)に変化するように、なす角が小さくなるほど、連結する端部に寄った位置(中点から離れた位置)に設定されることが好ましい。直線ベクトルKLにおいてより多く直線部分を残したアウトラインデータを生成するためである。
【0101】
図17を参照して、直線ベクトルKL上に制御点Pを設定する場合であって、制御点Pをその中点よりも直線ベクトルLMと連結する側の端部に寄った位置に設定する場合、図17(A)〜図17(D)に示されるように、直線ベクトルKLの長さが長くなるほど、制御点Pを連結する端部側に(中点から離れた位置に)設定することが好ましい。直線ベクトルKLについてより直線らしさを残した状態でアウトラインデータを生成するためである。
【0102】
以上説明した本実施の形態では、スキャナ11で生成された画像データに対してアウトライン化が行なわれたが、MFP1は、外部の装置から入力された画像データ等の、スキャナ11が生成した画像データ以外の画像データについても、アウトライン化の対象とすることができる。
【0103】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【0104】
【図1】本発明の画像処理装置の一実施の形態であるMFPの外観を示す図である。
【図2】図1のMFPのハードウェア構成を示す図である。
【図3】図2の入力画像処理部の詳細な構成を示す図である。
【図4】図1のMFPにおいて実行されるアウトライン変換処理のフローチャートである。
【図5】図1のMFPで実行される輪郭画素の抽出の態様を説明するための図である。
【図6】図4のアウトライン変換処理において抽出された輪郭画素を模式的に示す図である。
【図7】図4のアウトライン変換処理における直線ベクトル近似によって得られた画像の一例を示す図である。
【図8】図4のアウトライン変換処理における曲線ベクトル近似によって得られた画像の一例を示す図である。
【図9】図4の曲線ベクトル近似処理のサブルーチンのフローチャートである。
【図10】図9の処理内容を説明するための図である。
【図11】図9の曲線ベクトル近似処理の第1の変形例のフローチャートである。
【図12】図11における処理内容を説明するための図である。
【図13】図11における処理内容を説明するための図である。
【図14】図1のMFPによって生成されるアウトラインデータの一例を示す図である。
【図15】図9の曲線ベクトル近似処理の第2の変形例のフローチャートである。
【図16】図1のMFPにおいて実行される曲線ベクトル近似処理における、制御点の設定態様を説明するための図である。
【図17】図1のMFPにおいて実行される曲線ベクトル近似処理における、制御点の設定態様を説明するための図である。
【図18】従来の画像処理装置において生成されていたアウトライン化された画像の一例を示す図である。
【図19】従来の画像処理装置において生成されていたアウトライン化された画像の一例を示す図である。
【図20】従来の画像処理装置において生成されていたアウトライン化された画像の一例を示す図である。
【符号の説明】
【0105】
1 MFP、10 制御部、10A CPU、10B 入力画像処理部、10C 記憶部、10D 出力画像処理部、10E ネットワークI/F、10F 通信部、11 スキャナ、12 印刷装置、15 操作パネル、18 給紙部、19 トレイ、210 前処理部、220 領域判別部、231 2値化処理部、232 輪郭画素抽出部、233 直線ベクトル近似処理部、234 曲線ベクトル近似処理部、235 文字領域圧縮部、236 写真・背景領域圧縮部、240 圧縮データ合成部。
【特許請求の範囲】
【請求項1】
2値化された画像データに対して、輪郭画素を抽出するステップと、
前記輪郭画素に基づいて、前記画像データの輪郭を直線近似するステップと、
前記直線近似された輪郭の中の第1の直線について、前記第1の直線と連続する第2の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断するステップと、
前記第1の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第1の直線の中点よりも前記第2の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なうステップとを備える、アウトライン化方法。
【請求項2】
前記判断するステップは、前記第1の直線と前記第2の直線のなす角に基づいて判断する、請求項1に記載のアウトライン化方法。
【請求項3】
前記判断するステップは、前記第1の直線の長さに基づいて判断する、請求項2に記載のアウトライン化方法。
【請求項4】
前記判断するステップは、前記第2の直線と前記第1の直線の反対側で連続する第3の直線と、前記第1の直線とのなす角に基づいて判断する、請求項1〜3のいずれか1項に記載のアウトライン化方法。
【請求項5】
前記曲線近似を行なうステップは、前記第1の直線と前記第2の直線のなす角が小さくなるほど、前記第1の直線上の、前記第2の直線に近い位置に制御点を設定する、請求項4に記載のアウトライン化方法。
【請求項6】
前記判断するステップは、前記第1の直線と前記第2の直線の長さの比に基づいて判断する、請求項1〜3のいずれか1項に記載のアウトライン化方法。
【請求項7】
前記曲線近似するステップは、前記第1の直線の長さに対する前記第2の直線の長さの比が大きくなるほど、前記第1の直線上の、前記第2の直線に近い位置に制御点を設定する、請求項6に記載のアウトライン化方法。
【請求項8】
請求項1〜7のいずれか1項に記載のアウトライン化方法によりアウトライン化された画像データを少なくとも含む画像データを圧縮するステップを備える、画像圧縮方法。
【請求項9】
2値化された画像データに対して、輪郭画素を抽出する抽出部と、
前記輪郭画素に基づいて、前記画像データの輪郭を直線近似する第1の近似部と、
前記直線近似された輪郭の中の第1の直線について、前記第1の直線と連続する第2の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断する判断部と、
前記第1の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第1の直線の中点よりも前記第2の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なう第2の近似部とを備える、アウトライン化装置。
【請求項10】
画像処理装置に、画像データからアウトラインデータを生成させる、コンピュータ読取可能なアウトライン化プログラムであって、
前記画像処理装置に、
2値化された画像データに対して、輪郭画素を抽出するステップと、
前記輪郭画素に基づいて、前記画像データの輪郭を直線近似するステップと、
前記直線近似された輪郭の中の第1の直線について、前記第1の直線と連続する第2の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断するステップと、
前記第1の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第1の直線の中点よりも前記第2の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なうステップとを実行させる、アウトライン化プログラム。
【請求項1】
2値化された画像データに対して、輪郭画素を抽出するステップと、
前記輪郭画素に基づいて、前記画像データの輪郭を直線近似するステップと、
前記直線近似された輪郭の中の第1の直線について、前記第1の直線と連続する第2の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断するステップと、
前記第1の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第1の直線の中点よりも前記第2の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なうステップとを備える、アウトライン化方法。
【請求項2】
前記判断するステップは、前記第1の直線と前記第2の直線のなす角に基づいて判断する、請求項1に記載のアウトライン化方法。
【請求項3】
前記判断するステップは、前記第1の直線の長さに基づいて判断する、請求項2に記載のアウトライン化方法。
【請求項4】
前記判断するステップは、前記第2の直線と前記第1の直線の反対側で連続する第3の直線と、前記第1の直線とのなす角に基づいて判断する、請求項1〜3のいずれか1項に記載のアウトライン化方法。
【請求項5】
前記曲線近似を行なうステップは、前記第1の直線と前記第2の直線のなす角が小さくなるほど、前記第1の直線上の、前記第2の直線に近い位置に制御点を設定する、請求項4に記載のアウトライン化方法。
【請求項6】
前記判断するステップは、前記第1の直線と前記第2の直線の長さの比に基づいて判断する、請求項1〜3のいずれか1項に記載のアウトライン化方法。
【請求項7】
前記曲線近似するステップは、前記第1の直線の長さに対する前記第2の直線の長さの比が大きくなるほど、前記第1の直線上の、前記第2の直線に近い位置に制御点を設定する、請求項6に記載のアウトライン化方法。
【請求項8】
請求項1〜7のいずれか1項に記載のアウトライン化方法によりアウトライン化された画像データを少なくとも含む画像データを圧縮するステップを備える、画像圧縮方法。
【請求項9】
2値化された画像データに対して、輪郭画素を抽出する抽出部と、
前記輪郭画素に基づいて、前記画像データの輪郭を直線近似する第1の近似部と、
前記直線近似された輪郭の中の第1の直線について、前記第1の直線と連続する第2の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断する判断部と、
前記第1の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第1の直線の中点よりも前記第2の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なう第2の近似部とを備える、アウトライン化装置。
【請求項10】
画像処理装置に、画像データからアウトラインデータを生成させる、コンピュータ読取可能なアウトライン化プログラムであって、
前記画像処理装置に、
2値化された画像データに対して、輪郭画素を抽出するステップと、
前記輪郭画素に基づいて、前記画像データの輪郭を直線近似するステップと、
前記直線近似された輪郭の中の第1の直線について、前記第1の直線と連続する第2の直線との関係に基づいて、曲線近似を行なう際に直線で残すべき部分を含むか否かを判断するステップと、
前記第1の直線について、前記直線で残すべき部分を含むと判断した場合に、前記第1の直線の中点よりも前記第2の直線に連結される側に近い位置に制御点を設定して、曲線近似を行なうステップとを実行させる、アウトライン化プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2010−3142(P2010−3142A)
【公開日】平成22年1月7日(2010.1.7)
【国際特許分類】
【出願番号】特願2008−161880(P2008−161880)
【出願日】平成20年6月20日(2008.6.20)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】
【公開日】平成22年1月7日(2010.1.7)
【国際特許分類】
【出願日】平成20年6月20日(2008.6.20)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】
[ Back to top ]