説明

画像処理装置、画像変換方法、およびコンピュータプログラム

【課題】文字の形状を良好に保ちつつデータ量の少ないベクタ画像を生成する。
【解決手段】ラスタ形式のイメージデータに含まれる文字を抽出するラベリング部102と、抽出した文字の複雑さを示す複雑度を求める複雑度算出部103と、求めた複雑度に基づいて、その文字の変換に曲線近似を用いるか否かを決定する近似方法決定部104と、を設けておき、曲線近似を用いると決定した場合は、その文字の輪郭の各部分をそれぞれ直線近似しまたは曲線近似することによってその文字をベクタ形式に変換し、曲線近似を用いないと判定した場合は、その文字の輪郭の各部分を曲線近似することなく直線近似することによってその文字をベクタ形式に変換する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、スキャナで読み取った画像データをベクタ形式に変換する画像処理装置およびその変換方法などに関する。
【背景技術】
【0002】
近年、紙の文書をスキャナで読み取って電子化して保管することが多く行われている。スキャナで読み取られた文書は、例えばビットマップ形式の画像データとして保存される。
【0003】
ビットマップ形式では、ドット(ピクセル)の集合で文字を表現するので、その文字を表示しまたは印刷する際に複雑な計算を必要としない。しかし、ビットマップ形式の画像データが示す画像を表示しまたは印刷する装置(出力装置)の解像度によっては、表示しまたは印刷した文字の輪郭にジャギー(がたつき)が目立ってしまうという欠点がある。
【0004】
そこで、従来、アウトライン化と呼ばれる処理を施すことによってビットマップ形式の画像をベクタフォントの画像(ベクタ画像)に変換することが行われている。
【0005】
ベクタ画像では、文字の輪郭を直線および曲線で近似することによって輪郭線を形成し、その輪郭線で囲まれた領域を塗りつぶすことによってその文字を再現するので、ジャギーが目立ちにくくなる。また、出力結果が出力装置の解像度に依存しないので、出力装置が変わっても文字の部分の画質が安定しやすい。しかし、ベクタ画像において文字の形状をできるだけ正確に再現しかつ滑らかに表現するためには、文字の輪郭を再現するための点(輪郭点)を多くする必要がある。よって、文字の部分の画質の維持のために、データ量が大幅に増えてしまうことがある。
【0006】
従来、ベクタ画像に関連する技術として、特許文献1に開示されるような画像処理装置が提案されている。
【0007】
特許文献1の画像処理装置によると、原稿を読み取って得たイメージ情報を、文字のサイズ、字体、および色などの属性に基づいて分割し、分割したイメージ情報ごとにアウトライン化する。
【特許文献1】特開2007―129557号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
ところで、既に説明したように、ベクタ画像への変換を行うと画像データ全体のデータ量が増えることがある。特に、複雑な形状の文字は輪郭点の個数が多くなるので、そのような文字を多く含む画像データの場合はデータ量の増加が顕著に現れる。そこで輪郭点の個数を減らすことも考えられるが、そうすると文字の形状が変わってしまう恐れがあるので、そのような方法は好ましくない。
【0009】
本発明はこのような問題点に鑑み、文字の形状を良好に保ちつつ従来よりもデータ量の少ないベクタ画像を生成できるようにすることを目的とする。
【課題を解決するための手段】
【0010】
本発明の一形態に係る画像処理装置は、ラスタ形式のイメージデータに含まれる文字を抽出する文字抽出手段と、前記文字の複雑さを示す複雑度を求める複雑度算出手段と、前記複雑度算出手段によって求められた前記複雑度に基づいて、前記文字をラスタ形式からベクタ形式に変換する際に曲線近似を用いるか否かを判定する判定手段と、前記判定手段が曲線近似を用いると判定した場合は、前記文字の輪郭の各部分をそれぞれ直線近似しまたは曲線近似することによって当該文字をベクタ形式に変換し、曲線近似を用いないと判定した場合は、当該文字の輪郭の各部分を曲線近似することなく直線近似することによって当該文字をベクタ形式に変換する、画像変換手段と、を有する。
【0011】
好ましくは、前記判定手段は、前記複雑度算出手段が求めた前記複雑度が所定の複雑さよりも複雑であることを示す値である場合に、曲線近似を用いないと判定する。
【0012】
または、前記複雑度算出手段は、前記文字のエッジを形成する画素であるエッジ画素の個数に基づいて前記複雑度を求める。
【0013】
または、前記複雑度は、前記エッジ画素の個数である。
【0014】
または、前記複雑度は、前記文字の大きさを示す値に対する前記エッジ画素の個数の割合である。
【発明の効果】
【0015】
本発明によると、文字の形状を良好に保ちつつ従来よりもデータ量の少ないベクタ画像を生成することができる。
【発明を実施するための最良の形態】
【0016】
図1は本発明の一実施形態に係る画像形成装置1のハードウェア構成の例を示す図である。
【0017】
図1に示す画像形成装置1は、コピー、スキャナ、ファクシミリ、ネットワークプリンティング、ドキュメントサーバ、およびファイル転送などの様々な機能を集約した画像処理装置である。複合機またはMFP(Multi Function Peripherals)などと呼ばれることもある。
【0018】
画像形成装置1は、図1に示すように、スキャナ10a、CPU10b、ハードディスク10c、RAM10d、ROM10e、印刷装置10f、モデム10g、ネットワークインタフェース10h、制御用回路10k、および操作パネル10mなどによって構成される。
【0019】
スキャナ10aは、原稿の用紙(以下、単に「原稿」と記載する。)に描かれている写真、文字、絵、図表などの画像を光学的に読み取って電子データ化する装置である。読み取られた画像は、RGB(R(赤)、G(緑)、およびB(青))によって表されるビットマップなどの形式の画像データとして保存される。予め指定しておくことによって、PDF(Portable Document Format)の形式で保存することもできる。
【0020】
CPU10bは、スキャナ10aが読み取った原稿の画像データをTIFF、JPEG、ビットマップ、およびPDFなどの形式のファイルに変換するための処理を行う。また、ビットマップ形式(ラスタ形式)の画像データをベクタ形式に変換する処理を行う。ユーザからの入力の検出、操作パネル10mの表示の制御,または電子メールの作成など、画像形成装置1の全体的な制御も行う。
【0021】
印刷装置10fは、スキャナ10aで読み取られた画像データの画像または他の装置から送信されてきた画像データの画像を用紙に印刷する装置である。画像形成装置1がカラー印刷に対応している場合は、イエロー、マゼンタ、シアン、およびブラックの4色のトナーを用いて印刷を行う。
【0022】
操作パネル10mは、ユーザが画像形成装置1に対して種々の入力を行うための装置である。ユーザは、操作パネル10mを用いて、画像データの保存形式の選択、スキャンの条件の設定、処理の開始または実行の指令の入力、電子メールの宛先の入力などの種々の操作を行うことができる。
【0023】
モデム10gは、NCU(Network Control Unit)が内蔵されており、アナログの公衆回線を介して他のファクシミリ端末と接続し、ファクシミリプロトコルに基づくデータ制御およびファクシミリデータの変復調などを行う。
【0024】
ネットワークインタフェース10hは、NIC(Network Interface Card)であって、LANまたはインターネットなどを介して他の装置への接続を行う。
【0025】
制御用回路10kは、ハードディスク10c、操作パネル10m、スキャナ10a、印刷装置10f、モデム10g、およびネットワークインタフェース10hなどの装置を制御するための回路である。
【0026】
ハードディスク10cには、後に説明する図2に示すような各部の機能を実現するためのプログラムおよびデータなどが格納されている。これらは必要に応じてRAM10dに読み出され、CPU10bによってプログラムが実行される。これらのプログラムまたはデータの一部または全部を、ROM10eに記憶させておいてもよい。または、図2の機能の一部または全部を、制御用回路10kによって実現するようにしてもよい。
【0027】
図2は画像形成装置1の機能的構成の例を示す図、図3は画像形成装置1における画像処理の流れを説明するための図である。
【0028】
次に、文字および写真を含む画像が印刷された原稿GKをスキャナ10aで読み取って得られるラスタ形式の原稿画像データGDを、PDF形式のファイルに変換して保存する際の画像形成装置1の各部の処理について、図2および図3を参照しながら説明する。
【0029】
図2に示すように、画像形成装置1は、画像データ取得部11、文字非文字分離部12、背景分離部13、アウトライン化部14、圧縮データ生成部15、ファイル生成部16、およびファイル保存部17などによって構成される。
【0030】
ユーザが原稿GKをスキャナ10aにセットし、保存形式をPDFに設定してスキャンの実行のコマンドを入力すると、スキャナ10aは、その原稿GKの画像をスキャンし、ラスタ形式の原稿画像データGDを生成する(図3の#101)。
【0031】
画像データ取得部11は、その原稿画像データGDを取得する(#102)。文字非文字分離部12は、原稿画像データGDに含まれる文字と、図、写真、または表などの文字意外のオブジェクトである非文字オブジェクトHOとを分離する処理を行う(#103)。この処理は、公知の方法を用いて行う。
【0032】
以下、原稿画像データGDから非文字オブジェクトHOが省かれた画像データを「第一文字画像データMG」と記載する。原稿画像データGDから文字が省かれた画像データを「非文字画像データHG」と記載する。
【0033】
背景分離部13は、第一文字画像データMGに表される文字とその背景とを分離する処理を行う(#104)。この処理は、例えば、濃度値が所定の濃度値以上である画素を、文字を形成する画素として抽出することによって行う。または、エッジを形成する画素を、文字を形成する画素として抽出することによって行う。
【0034】
以下、第一文字画像データMGから背景を省いた画像データを「第二文字画像データNG」と記載する。第一文字画像データMGから文字を省いた画像データを「背景画像データKG」と記載する。
【0035】
アウトライン化部14は、第二文字画像データNGに表される各文字に対してアウトライン化の処理を施し、ラスタ形式で表される各文字をベクタ形式に変換する処理を行う(#105)。これについては、後に詳しく説明する。以下、第二文字画像データNGに対してこのアウトライン化の処理が施されてできる画像データを「ベクタ文字画像データVD」と記載する。
【0036】
圧縮データ生成部15は、ベクタ文字画像データVD、背景画像データKG、および非文字画像データHGのそれぞれについての圧縮データを生成する(#106)。
【0037】
具体的には、ベクタ文字画像データVDをFLATEなどの可逆圧縮の方式で圧縮する。背景画像データKGおよび非文字画像データHGに対しては低解像度化したあと、JPEGなどの非可逆圧縮の方式で圧縮する。
【0038】
ファイル生成部16は、生成された、ベクタ文字画像データVD、背景画像データKG、および非文字画像データHGのそれぞれの圧縮データを用いてPDF形式のファイル(PDFファイル)を生成する。ファイル保存部17は、生成されたPDFファイルを保存する(#107)。
【0039】
図4はアウトライン化部14の構成の例を示す図、図5は二値化された画像データに表される文字の例を示す図、図6は文字のエッジを示す画像の例を示す図、図7は文字の輪郭を形成する頂点画素を検出するための画素の配置パターンTPを示す図、図8は頂点画素の検出の具体例を示す図、図9は直線近似の具体例を示す図、図10は選択曲線近似処理の具体例を示す図、図11は二値文字画像データNDに示される文字の例を示す図、図12は近似処理済ブロックデータKMDの構成の例を示す図、図13は近似処理済ブロックデータKMDの例を示す図である。
【0040】
アウトライン化部14は、二値化部101、ラベリング部102、複雑度算出部103、近似方法決定部104、頂点検出部105、直線近似処理部106、および曲線近似処理部107などによって構成される。
【0041】
二値化部101は、第二文字画像データNGを二値化する。二値化することによって、二値化の閾値よりも濃度値の高い画素がドットが打たれた画素(黒画素)となり、その閾値よりも濃度値の低い画素がドットが打たれていない画素(白画素)となる。これによって、第二文字画像データNGの文字の部分が、図5(a)に示すように黒画素によって表される。以下、第二文字画像データNGを二値化することによって得られた画像データを「二値文字画像データND」と記載する。
【0042】
ラベリング部102は、二値文字画像データNDに示される文字ごとにラベリングを行う。この処理は次のようにして行う。
【0043】
二値文字画像データNDに含まれる連結する黒画素である黒画素郡を検出し、その黒画素郡を包含する矩形の領域であるブロックBKを定義する。この際、所定の距離内にある黒画素群同士を一つの文字を形成する黒画素群とみなし、各黒画素群を包含するブロックBK同士を統合して一つのブロックBKとする。そのような処理を行うことによって、図5(b)に示すようなブロックBK1、BK2、…を定義する。以下、ブロックBK1、BK2、…を「ブロックBK」と総称して記載することがある。他の装置または部材などについても同様に符号の末尾に付した連番またはアルファベットを省略することによって総称して記載することがある。なお、ブロックBKは、二値文字画像データNDの左上端の画素の位置を原点として、そのブロックBKの左上端および右下端の画素の座標によって定義される。左上端の画素の座標によってそのブロックBKの文字の位置が特定され、左上端および右下端の画素の座標によってそのブロックBKの縦の長さおよび横の長さ、すなわちそのブロックBKの大きさが特定される。本実施形態において、ブロックBKのサイズは、そのブロックBKに含まれる文字の大きさとして使用する。
【0044】
複雑度算出部103は、ラベリングされた各文字のそれぞれについて、その文字の複雑さを示す複雑度を求める処理を行う。この処理は次のようにして行う。なお、ここでは、ブロックBK1を例にあげて説明する。
【0045】
公知のエッジ検出フィルタを用いて、ブロックBK1内に示される文字のエッジの画素(エッジ画素)を検出する。それによって、図6に示すような、「八」の文字のエッジを示す画像が得られる。検出したエッジ画素の個数を数え、その個数をその「八」の文字の複雑度として記憶する。
【0046】
近似方法決定部104は、ラベリングされた各文字について、それぞれの文字に対して求められた複雑度に基づいてその文字の輪郭に対する近似方法を次のようにして決定する。
【0047】
その文字がある程度複雑であると判断できる場合、すなわちその文字の複雑度が所定の閾値(複雑さ判定閾値)よりも大きい場合は、その文字の輪郭を曲線近似を用いることなく直線近似すると決定する。その文字がさほど複雑ではないと判断できる場合、すなわちその文字の複雑度が複雑さ判定閾値以下である場合は、その文字の輪郭を直線近似に加えて曲線近似も用いて近似すると決定する。
【0048】
頂点検出部105は、各ブロックBK内の文字の頂点(変化点)の画素(頂点画素)を検出する。この検出の処理は、図7に示す、頂点画素の検出に用いる白画素と黒画素の配置のパターン(配置パターン)である頂点検出パターンPT1〜PT8を用いて行う。すなわち、パターンマッチングによってこれら頂点検出パターンPT1〜PT8のいずれかと一致するブロックBK内の箇所を探索し、一致した箇所の画素のうちでその一致した頂点検出パターンPTの頂点位置Tに位置する画素を頂点画素として検出する。ここで、図8を参照しながら頂点画素の検出の処理について具体的に説明する。
【0049】
図8(a)には、二値文字画像データNDに含まれる「八」の文字を包含するブロックBK1が示される。図8(b)には、ブロックBK内の特定の部分(特定部分AR1)の拡大図が示される。
【0050】
この特定部分AR1に着目して、特定部分AR1内を左上から順に走査すると、画素群AHの箇所において、頂点検出パターンPT1と一致する配置パターンが検出される。その画素群AHにおいて、その頂点検出パターンPT1の頂点位置Tに位置する画素GS22が頂点画素として検出される。同様にして頂点画素の検出を行うと、画素GS23、GS43、GS53、GS18、およびGS28が頂点画素として検出される。
【0051】
検出された頂点画素を線分で結ぶことによって図5(c)に示すような「八」の文字の輪郭を示す画像を生成できる。
【0052】
直線近似処理部106は、二値文字画像データNDに含まれる各文字の輪郭を直線近似する。本実施形態では、3つ以上の頂点によって形成される文字の輪郭を2つの頂点を結ぶ線分(近似線分)によって直線近似する。そのような直線近似を文字の輪郭の全体に渡って行う。ここで、直線近似の手順について、図9を参照して具体的に説明する。
【0053】
図9(a)には、「八」の文字の輪郭を示す画像が示される。この画像は、頂点検出部105によって求められた頂点画素の中心を線分で結ぶことによって描かれる。図9(b)には、図9(a)の輪郭を示す画像の特定の部分(特定部分AR2)の拡大図が示される。
【0054】
特定部分AR2において、まず、任意の頂点を始点として選択する。ここでは、頂点P1を始点として選択したものとする。始点P1と始点P1から2つ隣の頂点P3を近似線分の終点の候補(終点候補)として選択する。始点P1と終点候補の頂点(終点候補点)P3とを結ぶ線分と、始点P1と終点候補点P3との間にある頂点である頂点P2との距離を求める。求めた距離が所定の閾値(直線近似閾値)よりも短いか否かをチェックする。短い場合は、終点候補を次の頂点P4に移して同様の処理を行う。すなわち、始点P1と終点候補点P4とを結ぶ線分と、始点P1と終点候補点P4との間にある各頂点である頂点P2およびP3のそれぞれとの距離を求める。求めた各距離が所定の閾値(直線近似閾値)よりも短いか否かをチェックする。いずれの距離も直線近似閾値よりも短い場合は、終点候補をさらに次の頂点である頂点P5に移して同様の処理を行う。
【0055】
始点と終点候補点とを結ぶ線分と、始点とその終点候補の頂点との間にある各頂点との距離のいずれかが直線近似閾値よりも長くなるような終点候補が現れるまで、終点候補を、順次、次の頂点に移していく。そのいずれかの距離が直線近似閾値以上になった時点で近似線分の終点を決定する。図9(b)の例では、終点候補が頂点P5となったときに、始点P1と終点候補点P5とを結ぶ線分と頂点P2との距離が直線近似閾値よりも長くなるものとする。
【0056】
頂点候補が頂点P5に移ると、同様にして、始点P1と終点候補点P5とを結ぶ線分と、始点P1と終点候補点P5との間にある各頂点との距離を求める。その線分と頂点P2との距離は直線近似閾値よりも長いので、この時点で頂点P1を始点とする近似線分の終点を決定する。終点は、その時点の終点候補の一つ手前の頂点に決定する。図9(b)の例では、終点候補点P5の一つ手前の頂点P4を終点として決定する。そして、頂点P1、P2、P3、およびP4によって形成される輪郭が、図9(c)に示すような始点P1と終点P4とを結ぶ線分S14で近似されるように、頂点P1および頂点P4をそれぞれ始点および終点として記録しておく。
【0057】
終点が決まると、その終点を次の近似線分の始点として、当該次の近似線分を求める処理を行う。すなわち、頂点P4を始点とし、その2つ隣の頂点である頂点P6を終点候補として、それらを結ぶ線分と、それら始点P4と終点候補点P6との間にある各頂点との距離を求める。以下、既に説明した方法と同様にして、終点候補を移していき、終点を決定する。同様の処理を繰り返し、文字の輪郭の全部について近似線分の始点および終点を求める。
【0058】
直線近似処理部106は、上記のような方法で、ラベリングによって検出された全てのブロックBKの文字の輪郭を直線近似し、直線近似が行われたあとの文字を示す近似処理済ブロックデータKMDをブロックBKごとに出力する。近似処理済ブロックデータKMDの詳細については後で説明する。
【0059】
曲線近似処理部107は、文字の輪郭を直線近似に加えて曲線近似も用いて近似すると決定されたブロックBKに含まれる文字の輪郭のうちで所定の条件を満たす部分を曲線近似する処理(選択曲線近似処理)を行う。曲線近似は、近似処理済ブロックデータKMDに示される直線近似が施された後の文字の輪郭に対して行う。
【0060】
本実施形態では、文字の輪郭を形成する近似線分のうちの隣り合う2つの近似線分に着目し、それら2つの近似線分が次の(1)および(2)の条件をともに満たす場合に、それら2つの近似線分によって表される輪郭をベジェ曲線で近似する。
(1)2つの近似線分の両方が所定の長さ(曲線近似閾値)よりも短い。
(2)2つの近似線分の接点にできる小さいほうの角度(判定対象角度)が所定の角度(近似閾値角度)よりも大きい。
【0061】
ここで、選択曲線近似処理について図10を参照しながら具体的に説明する。
【0062】
図10(a)には、近似線分S1〜S5によって形成される、「八」の文字の特定部分AR2における輪郭が示される。図10(a)の例では、判定対象角度K4、K12、およびK16が近似閾値角度よりも大きく、判定対象角度K13が近似閾値角度よりも小さいものとする。また、近似線分S1、S2、S3、およびS4の長さは、曲線近似閾値よりも短く、近似線分S5は、曲線近似閾値よりも長いものとする。
【0063】
図10(a)において、近似線分S1とS2とに着目すると、これらの近似線分S1およびS2はいずれも曲線近似閾値よりも短いので上記の(1)の条件を満たす。また、判定対象角度K4は、近似閾値角度よりも大きいので上記の(2)の条件も満たす。すなわち、近似線分S1およびS2は上記の(1)および(2)の条件をともに満たすので、これらの近似線分の輪郭に対して曲線近似を行う。曲線近似は、例えば、次のようにして行う。
【0064】
近似線分S1の中点C1および近似線分S2の中点C2を求める。それら中点C1およびC2をそれぞれ始端点および終端点とし、所定のルールに従ってさらに別の2つの制御点を決めて、図10(b)に示すようなベジェ曲線BC1を求める。2つの制御点は、中点C1において近似線分S1に接しかつ中点C2において近似線分S2に接するベジェ曲線が描かれる点とする。例えば、頂点P4と中点C1との中点および頂点P4と中点C2との中点としてもよい。また、そのベジェ曲線がP4とできるだけ近くなるような点としてもよい。
【0065】
次に、近似線分S2およびS3に着目する。これらについても上述の(1)および(2)の条件をともに満たすので、これらの近似線分の輪郭に対して同様の方法で曲線近似を行う。
【0066】
次に、近似線分S3およびS4に着目する。これらの近似線分の判定対象角度K13は、近似閾値角度よりも小さい。よって、上記の(2)の条件を満たさないので、これらの近似線分の組合せに対しては曲線近似は行わない。
【0067】
次に、近似線分S4およびS5に着目する。近似線分S5は曲線近似閾値よりも長いので、上記の(1)の条件を満たさない。よって、これらの近似線分の組合せに対しては曲線近似は行わない。
【0068】
隣り合う近似線分の各組合せに対してこのような処理を行い、上記の(1)および(2)の条件を満たす組合せに対して曲線近似を行っていく。図10(a)の例の場合は、このような処理によって、図10(b)に示すような輪郭が得られる。
【0069】
曲線近似処理部107は、このような方法で、直線近似処理部106から取得した全ての近似処理済ブロックデータKMDの示される文字の輪郭に対して選択曲線近似処理を行い、近似処理済ブロックデータKMDを、選択曲線近似処理が行われた後の文字を示すデータに更新する。さらに、ラベリングされた各文字の近似処理済ブロックデータKMDを用いて、それらの文字を示すベクタ形式の画像データであるベクタ文字画像データVDを生成する。そして、そのベクタ文字画像データVDを圧縮データ生成部15に出力する。ここで、近似処理済ブロックデータKMDの詳細を図11〜図13を参照しながら説明する。
【0070】
図11には、「L」の文字を含む画像の例が示される。この「L」の文字の輪郭は、頂点A、B、C、D、E、およびFのそれぞれを結ぶ近似線分によって表される。この画像の左上端を原点とする各頂点A、B、C、D、E、およびFの座標は、図11に示すとおりである。
【0071】
図11に示すこのブロックBKの近似処理済ブロックデータKMDには、図12に示すように、そのブロックBKの近似処理済ブロックデータKMDの始まりを示す符号(q)、倍率と精度、基準点の座標、頂点A〜頂点Gの頂点データTD、そのブロックBKの右下端の点(ブロック終端点)の座標、およびそのブロックBKの近似処理済ブロックデータKMDの終りを示す符号(Q)などが含まれる。基準点は、そのブロックBKの左上端の点である。
【0072】
頂点データTDには、図12(b)に示すように、その頂点が直線近似による線分の終点である場合に、基準点を原点とするその頂点の座標および直線近似を表す符号の「S」が示される。
【0073】
例えば、頂点Cの頂点データTDcには、「20,980,S」が示される。「S」は、直線近似を意味するので、頂点Cの直前の頂点である頂点Bと頂点Cとを結ぶ近似線分によって文字の輪郭を近似することを意味する。すなわち、基準点を原点とした場合の座標が(20,0)の頂点Bおよび(20,980)の頂点Cを結ぶ近似線分によって輪郭を描画して再現することを意味する。
【0074】
一方、曲線近似の場合は、頂点データTDには、図12(c)に示すように、2つの制御点の座標、終端点の座標、および曲線近似を意味する符号の「C」が示される。図12(b)の例の場合は、基準点を原点とした(5,20)および(10,20)の座標の点を制御点とし、(20,5)の座標の点を終端点とし、この頂点データTDの頂点の直前の点(直前の近似方法が直線近似である場合は直前の近似線分の終点、直前の近似方法が曲線近似である場合は直前のベジェ曲線の終端点)を始端点としてベジェ曲線を求めることによって文字の輪郭を近似することを意味する。
【0075】
図13(a)には、直線近似が行われて生成されたあるブロックBKの近似処理済ブロックデータKMDが示される。この近似処理済ブロックデータKMDによって再現される文字の輪郭に対してさらに選択曲線近似処理を行うと、近似処理済ブロックデータKMDが図13(b)のように更新される。図13(b)において、下線で示される箇所が曲線近似によって表される輪郭の部分の頂点の頂点データTDである。この図13の例から分かるように、曲線近似を行うと、頂点データTDのデータ量が多くなることによって近似処理済ブロックデータKMDの全体のデータ量が多くなる。
【0076】
図14はスキャンした画像データをPDFファイルに変換する際の画像形成装置1の全体的な処理の流れを説明するためのフローチャート、図15はアウトライン化の処理の流れを説明するためのフローチャート、図16は比較的複雑な形状の文字および比較的単純な形状の文字に対して本実施形態のアウトライン化の処理を行った場合の結果の例を示す図である。
【0077】
図14において、ユーザは、スキャナ10aに原稿GKをセットし、保存形式としてPDFファイルを指定する。ユーザがスキャンの実行のコマンドを入力すると、画像形成装置1は、その原稿GKをスキャンし(#201)、その原稿GKの画像を示すラスタ形式の原稿画像データGDを生成する(#202)。画像形成装置1は、生成したラスタ形式の原稿画像データGDを用いて、以下のようにしてPDFファイルを生成する。
【0078】
原稿画像データGDにおける、文字の部分と非文字オブジェクトHOの部分とを抽出する(#203)。非文字オブジェクトHOが除かれた、その抽出された文字を表す第一文字画像データMGから背景を除去する(#204)。背景が除去された、その抽出された文字を表す第二文字画像データNGに対して本実施形態に係るアウトライン化の処理を施す(#205)。
【0079】
アウトライン化の処理において、第二文字画像データNGを二値化する(図15の#301)。二値化によって得られた二値文字画像データNDに対してラベリングの処理を行い、それに含まれる各文字を包含する各ブロックBKを求める(#302)。ラベリングした各文字について、ベクタ形式への変換の際の近似方法を決定する。この決定は、次のようにして行う。
【0080】
ラベリングされた文字を一つ選択する(#303)。その文字(選択文字)の複雑度を求める(#304)。その複雑度が複雑さ判定閾値よりも大きいか否かをチェックする。
【0081】
選択文字の複雑度が複雑さ判定閾値よりも大きい場合は(#305でYes)、その選択文字に対して曲線近似の処理は行わないと決定する(#306)。
【0082】
選択文字の複雑度が複雑さ判定閾値よりも大きくない場合は(#305でNo)、その選択文字に対して曲線近似の処理を行うと決定する(#307)。
【0083】
ラベリングした全ての文字に対してステップ#303〜307の処理を行う(#308でNo)。
【0084】
ラベリングした全ての文字に対してステップ#303〜307の処理が完了すると(#308でYes)、各文字の頂点を検出し(#309)、文字の輪郭を特定する(#310)。さらに、各文字の輪郭を直線近似する(#311)。
【0085】
ステップ#307において曲線近似の処理を行うと決定した文字に対しては、直線近似の後、既に説明した選択曲線近似処理を行う(#312)。
【0086】
以上の処理によって第二文字画像データNGをラスタ形式からベクタ形式に変換し、それによって生成されるベクタ形式のベクタ文字画像データVDを保存する(#313)。
【0087】
すなわち、ステップ#205のアウトライン化の処理では、比較的複雑な形状の文字は、曲線近似を用いることなく直線近似のみによって輪郭を近似する。これによって、図16(a)に示すように、比較的複雑な形状の文字の輪郭が直線によって表される。比較的単純な形状の文字は、直線近似および曲線近似によって輪郭を近似する。これによって、図16(b)に示すように、比較的単純な形状の文字の輪郭が直線および曲線によって描かれる。
【0088】
保存したベクタ文字画像データVDを可逆圧縮の方式で圧縮し、背景画像データKGおよび非文字オブジェクトHOの画像は、低解像度化した後、非可逆圧縮の方式で圧縮する(図14の#206)。そして、それぞれの圧縮データを用いてPDFファイルを生成する(#207)。
【0089】
図17は比較的単純な形状の文字に対して本実施形態のアウトライン化の処理を行った結果の例を示す図、図18は比較的複雑な形状の文字に対して本実施形態のアウトライン化の処理を行った結果の例を示す図、図19は文字の大きさと複雑さ判定閾値との関係を示す図である。
【0090】
図17(a)および図18(a)には、各文字を直線近似した場合の例が示される。図17(b)および図18(b)には、それぞれ、その直線近似された図17(a)および図18(a)の各文字の輪郭に対して選択曲線近似処理を行った場合の例が示される。
【0091】
図17(a)を見て分かるように、曲線近似を用いることなく直線近似のみで文字の輪郭を近似すると、文字の輪郭のカーブの部分に角が生じて文字が角張ってしまう。そうすすると、文字の形が不自然に見えてしまう。17(a)に示すような比較的単純な形状の文字の場合に、その不自然さが特に顕著に現れることによって画質の劣化が目立つ。そこで、このような直線近似された文字の輪郭に対して選択曲線近似処理を行う。すると、図17(b)に示すように、より自然な輪郭を得ることができる。
【0092】
しかし、図18(a)と図18(b)とを比較して分かるように、文字の形状が比較的複雑な場合は、曲線近似を用いた場合も用いなかった場合も、見た目にさほど大きな差は現れない。従って、画質の劣化を低減するためには、特に形状が単純な文字に対して曲線近似を用いることが好ましいと言える。
【0093】
本実施形態によると、直線近似と曲線近似との近似の結果にほとんど差がでないような形状が複雑な文字に対しては、近似後のデータ量が大きくなる曲線近似を用いない。よって、形状が複雑な文字に対しても無条件に曲線近似を用いる従来の方法と比べて、近似の処理の後のデータ量を減らすことができる。さらに、計算量の多い曲線近似の処理を好適に減らすことができるので処理の効率を高めることができる。また、直線近似をした場合に輪郭の角ばり具合が目立つような比較的単純な形状の文字に対しては曲線近似を用いるので、従来の方法と比べてほとんど画質を劣化させることなく上述の効果を奏することができる。
【0094】
本実施形態では、複雑度を、ブロックBK内のエッジ画素の個数としたが、ブロックBKの大きさ(縦の長さ×横の長さ)、すなわちブロックBK内の画素の総数に対するエッジ画素の個数の割合としてもよい。または、複雑度として、文字の周囲長(輪郭線の長さ)を用いてもよい。
【0095】
本実施形態では、複雑さ判定閾値として文字の大きさによらず1つの値を用いたが、文字の大きさによって値が変わるようにしてもよい。その場合は、例えば、図19に示すように、文字のサイズが大きくなるほど複雑さ判定閾値が大きくなるような、文字の大きさと複雑さ判定閾値との関係を定義しておく。図19の例では、横軸が文字の大きさ(ポイント)を示し縦軸が複雑さ判定閾値を示す。近似方法決定部104によって近似方法を決定する際には、近似方法を決定する対象の文字の大きさに対応する複雑さ判定閾値を図19の関係に基づいて求め、その複雑さ判定閾値を用いて既に説明した方法で近似方法を決定する。形状が比較的複雑な文字の場合は、その文字を直線近似しても、図18を参照して説明したように、輪郭の角ばりは目立ちにくい。しかし、そのような複雑な形状の文字であっても、文字のサイズが大きくなると、文字のサイズが小さい場合よりもその角ばりが目立ってくる。よって、上述のように、文字のサイズが大きくなるほど複雑さ判定閾値が大きくなるように定めておくことによって、複雑な形状の文字であっても、角ばりが目立つと判断できるほど文字のサイズが大きい場合には、適切に曲線近似が用いられるようになる。それによって、そのような角ばりの発生を抑えることができる。
【0096】
本実施形態では、スキャナ10aによってスキャンした画像データを用いたが、ネットワークインタフェース10hによって他の装置から受信した画像データを用いてもよい。
【0097】
本実施形態では、二値化部101において濃度値に基づいて二値化を行ったが、明度に基づいて行うようにしてもよい。その場合は、例えば、明度が所定の閾値よりも高い画素を白画素とし、低い画素を黒画素とする。
【0098】
また、図2または図4の各部の機能の一部をハードウェアによって実現してもよい。例えば、入力画像処理部および出力画像処理部などのハードウェアを画像形成装置1に設けておく。入力画像処理部は、スキャナ10aから原稿画像データGDを受け付け、それに対して、色変換、色補正、解像度変換、領域判別などの処理を行う。出力画像処理部は、スクリーン制御、スムージング処理、およびPWM制御などを行う。処理された後のデータは、ハードディスク10c、RAM10d、またはROM10eなどに保存する。
【0099】
なお、直線近似および曲線近似の方法は、本実施形態で説明した方法に限られるものではなく、その他種々の方法を用いることができる。
【0100】
また、文字のエッジは、画素1個分の幅であってもよいし、2個以上の幅であってもよい。
【0101】
その他、画像形成装置1の全体または各部の構成、機能、処理の内容または順序、各データが示す内容などは、本発明の趣旨に沿って適宜変更することができる。
【図面の簡単な説明】
【0102】
【図1】本発明の一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。
【図2】画像形成装置の機能的構成の例を示す図である。
【図3】画像形成装置における画像処理の流れを説明するための図である。
【図4】アウトライン化部の構成の例を示す図である。
【図5】二値化された画像データに表される文字の例を示す図である。
【図6】文字のエッジを示す画像の例を示す図である。
【図7】文字の輪郭を形成する頂点画素を検出するための画素の配置パターンを示す図である。
【図8】頂点画素の検出の具体例を示す図である。
【図9】直線近似の具体例を示す図である。
【図10】選択曲線近似処理の具体例を示す図である。
【図11】二値文字画像データに示される文字の例を示す図である。
【図12】近似処理済ブロックデータの構成の例を示す図である。
【図13】近似処理済ブロックデータの例を示す図である。
【図14】スキャンした画像データをPDFファイルに変換する際の画像形成装置の全体的な処理の流れを説明するためのフローチャートである。
【図15】アウトライン化の処理の流れを説明するためのフローチャートである。
【図16】比較的複雑な形状の文字および比較的単純な形状の文字に対して本実施形態のアウトライン化の処理を行った場合の結果の例を示す図である。
【図17】比較的単純な形状の文字に対して本実施形態のアウトライン化の処理を行った結果の例を示す図である。
【図18】比較的複雑な形状の文字に対して本実施形態のアウトライン化の処理を行った結果の例を示す図である。
【図19】文字の大きさと複雑さ判定閾値との関係を示す図である。
【符号の説明】
【0103】
1 画像形成装置(画像処理装置、コンピュータ)
12 文字非文字分離部(文字抽出手段)
13 背景分離部(文字抽出手段)
15 圧縮データ生成部(圧縮手段)
102 ラベリング部(文字抽出手段)
103 複雑度算出部(複雑度算出手段)
104 近似方法決定部(判定手段)
106 直線近似処理部(画像変換手段)
107 曲線近似処理部(画像変換手段)
GD 原稿画像データ(イメージデータ)
NG 第二文字画像データNG(イメージデータ)

【特許請求の範囲】
【請求項1】
ラスタ形式のイメージデータに含まれる文字を抽出する文字抽出手段と、
前記文字の複雑さを示す複雑度を求める複雑度算出手段と、
前記複雑度算出手段によって求められた前記複雑度に基づいて、前記文字をラスタ形式からベクタ形式に変換する際に曲線近似を用いるか否かを判定する判定手段と、
前記判定手段が曲線近似を用いると判定した場合は、前記文字の輪郭の各部分をそれぞれ直線近似しまたは曲線近似することによって当該文字をベクタ形式に変換し、曲線近似を用いないと判定した場合は、当該文字の輪郭の各部分を曲線近似することなく直線近似することによって当該文字をベクタ形式に変換する、画像変換手段と、
を有することを特徴とする画像処理装置。
【請求項2】
前記判定手段は、前記複雑度算出手段が求めた前記複雑度が所定の複雑さよりも複雑であることを示す値である場合に、曲線近似を用いないと判定する、
請求項1記載の画像処理装置。
【請求項3】
前記複雑度算出手段は、前記文字のエッジを形成する画素であるエッジ画素の個数に基づいて前記複雑度を求める、
請求項1または2に記載の画像処理装置。
【請求項4】
前記複雑度は、前記エッジ画素の個数である、
請求項3記載の画像形成装置。
【請求項5】
前記複雑度は、前記文字の大きさを示す値に対する前記エッジ画素の個数の割合である、
請求項3記載の画像形成装置。
【請求項6】
ラスタ形式のイメージデータを圧縮する画像処理装置であって、
前記イメージデータに含まれる文字を抽出する文字抽出手段と、
前記文字の複雑さを示す複雑度を求める複雑度算出手段と、
前記複雑度算出手段によって求められた前記複雑度に基づいて、前記文字をラスタ形式からベクタ形式に変換する際に曲線近似を用いるか否かを判定する判定手段と、
前記判定手段が曲線近似を用いると判定した場合は、前記文字の輪郭の各部分をそれぞれ直線近似しまたは曲線近似することによって当該文字をベクタ形式に変換し、曲線近似を用いないと判定した場合は、当該文字の輪郭の各部分を曲線近似することなく直線近似することによって当該文字をベクタ形式に変換する、画像変換手段と、
前記画像変換手段によってベクタ形式に変換された前記文字を可逆圧縮し、前記イメージデータに含まれる当該文字以外の部分を非可逆圧縮することによって、圧縮データを生成する圧縮手段と、
を有することを特徴とする画像処理装置。
【請求項7】
画像処理装置における、イメージデータをラスタ形式からベクタ形式に変換するための画像変換方法であって、
ラスタ形式の前記イメージデータに含まれる文字を抽出し、
前記文字の複雑さを示す複雑度を求め、
求めた前記複雑度に基づいて、前記文字をラスタ形式からベクタ形式に変換する際に曲線近似を用いるか否かを判定し、
曲線近似を用いると判定した場合は、前記文字の輪郭の各部分をそれぞれ直線近似しまたは曲線近似することによって当該文字をベクタ形式に変換し、
曲線近似を用いないと判定した場合は、前記文字の輪郭の各部分を曲線近似することなく直線近似することによって当該文字をベクタ形式に変換する、
ことを特徴とする画像変換方法。
【請求項8】
ラスタ形式のイメージデータをベクタ形式に変換するためのコンピュータに、
前記イメージデータに含まれる文字を抽出する処理と、
前記文字の複雑さを示す複雑度を求める処理と、
求めた前記複雑度に基づいて、前記文字をラスタ形式からベクタ形式に変換する際に曲線近似を用いるか否かを判定する処理と、
曲線近似を用いると判定した場合は、前記文字の輪郭の各部分をそれぞれ直線近似しまたは曲線近似することによって当該文字をベクタ形式に変換し、曲線近似を用いないと判定した場合は、前記文字の輪郭の各部分を曲線近似することなく直線近似することによって当該文字をベクタ形式に変換する、処理と、
を実行させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2009−302758(P2009−302758A)
【公開日】平成21年12月24日(2009.12.24)
【国際特許分類】
【出願番号】特願2008−153125(P2008−153125)
【出願日】平成20年6月11日(2008.6.11)
【出願人】(303000372)コニカミノルタビジネステクノロジーズ株式会社 (12,802)
【Fターム(参考)】