(57)【特許請求の範囲】
【請求項１】
ラスタ形式のイメージデータに含まれる文字を抽出する文字抽出手段と、
前記文字抽出手段が抽出した前記文字のサイズを求めるサイズ検出手段と、
前記サイズ検出手段によって求められた前記文字のサイズに基づいて、前記文字をラスタ形式からベクタ形式に変換する際に曲線近似を用いるか否かを判定する判定手段と、
前記文字抽出手段が抽出した前記文字の頂点を検出する頂点検出手段と、
前記判定手段が曲線近似を用いると判定した場合は、前記頂点検出手段が検出した頂点によって形成される文字の輪郭の各部分をそれぞれ直線近似しまたは曲線近似することによって当該文字をベクタ形式に変換し、曲線近似を用いないと判定した場合は、前記頂点検出手段が検出した頂点によって形成される文字の輪郭の各部分を曲線近似することなく直線近似することによって当該文字をベクタ形式に変換する、画像変換手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記判定手段は、前記サイズ検出手段が求めたサイズが所定の大きさよりも小さい場合に、曲線近似を用いないと判定する、
請求項１記載の画像処理装置。
【請求項３】
前記判定手段は、前記サイズ検出手段が求めた前記文字のサイズが６ポイントよりも小さい場合に、曲線近似を用いないと判定する、
請求項１記載の画像処理装置。
【請求項４】
前記判定手段は、前記サイズ検出手段が求めた前記文字のサイズが１０．５ポイントよりも大きい場合に、曲線近似を用いると判定する、
請求項１記載の画像処理装置。
【請求項５】
ラスタ形式のイメージデータを圧縮する画像処理装置であって、
前記イメージデータに含まれる文字を抽出する文字抽出手段と、
前記文字抽出手段が抽出した前記文字のサイズを求めるサイズ検出手段と、
前記サイズ検出手段によって求められた前記文字のサイズに基づいて、前記文字をラスタ形式からベクタ形式に変換する際に曲線近似を用いるか否かを判定する判定手段と、
前記文字抽出手段が抽出した前記文字の頂点を検出する頂点検出手段と、
前記判定手段が曲線近似を用いると判定した場合は、前記頂点検出手段が検出した頂点によって形成される文字の輪郭の各部分をそれぞれ直線近似しまたは曲線近似することによって当該文字をベクタ形式に変換し、曲線近似を用いないと判定した場合は、前記頂点検出手段が検出した頂点によって形成される文字の輪郭の各部分を曲線近似することなく直線近似することによって当該文字をベクタ形式に変換する、画像変換手段と、
前記画像変換手段によってベクタ形式に変換された前記文字を可逆圧縮し、前記イメージデータに含まれる当該文字以外の部分を非可逆圧縮することによって、圧縮データを生成する圧縮手段と、
を有することを特徴とする画像処理装置。
【請求項６】
前記判定手段は、前記サイズ検出手段が求めたサイズが所定の大きさよりも小さい場合に、曲線近似を用いないと判定する、
請求項５記載の画像処理装置。
【請求項７】
前記判定手段は、前記サイズ検出手段が求めた前記文字のサイズが６ポイントよりも小さい場合に、曲線近似を用いないと判定する、
請求項５記載の画像処理装置。
【請求項８】
前記判定手段は、前記サイズ検出手段が求めた前記文字のサイズが１０．５ポイントよりも大きい場合に、曲線近似を用いると判定する、
請求項５記載の画像処理装置。
【請求項９】
画像処理装置における、イメージデータをラスタ形式からベクタ形式に変換するための画像変換方法であって、
ラスタ形式の前記イメージデータに含まれる文字を抽出し、
抽出した前記文字のサイズを求め、
求めた前記文字のサイズに基づいて、前記文字をラスタ形式からベクタ形式に変換する際に曲線近似を用いるか否かを判定し、
抽出した前記文字の頂点を検出し、
曲線近似を用いると判定した場合は、検出した頂点によって形成される文字の輪郭の各部分をそれぞれ直線近似しまたは曲線近似することによって当該文字をベクタ形式に変換し、
曲線近似を用いないと判定した場合は、検出した頂点によって形成される文字の輪郭の各部分を曲線近似することなく直線近似することによって当該文字をベクタ形式に変換する、
ことを特徴とする画像変換方法。
【請求項１０】
前記判定に際し、求めたサイズが所定の大きさよりも小さい場合に、曲線近似を用いないと判定する、
請求項９記載の画像変換方法。
【請求項１１】
前記判定に際し、求めた前記文字のサイズが６ポイントよりも小さい場合に、曲線近似を用いないと判定する、
請求項９記載の画像変換方法。
【請求項１２】
前記判定に際し、求めた前記文字のサイズが１０．５ポイントよりも大きい場合に、曲線近似を用いると判定する、
請求項９記載の画像変換方法。
【請求項１３】
ラスタ形式のイメージデータをベクタ形式に変換するためのコンピュータに、
前記イメージデータに含まれる文字を抽出する処理と、
抽出した前記文字のサイズを求める処理と、
求めた前記文字のサイズに基づいて、前記文字をラスタ形式からベクタ形式に変換する際に曲線近似を用いるか否かを判定する処理と、
抽出した前記文字の頂点を検出する処理と、
曲線近似を用いると判定した場合は、検出した頂点によって形成される文字の輪郭の各部分をそれぞれ直線近似しまたは曲線近似することによって当該文字をベクタ形式に変換し、曲線近似を用いないと判定した場合は、検出した頂点によって形成される文字の輪郭の各部分を曲線近似することなく直線近似することによって当該文字をベクタ形式に変換する、処理と、
を実行させることを特徴とするコンピュータプログラム。
【請求項１４】
前記判定する処理において、求めたサイズが所定の大きさよりも小さい場合に、曲線近似を用いないと判定する、
請求項１３記載のコンピュータプログラム。
【請求項１５】
前記判定する処理において、求めた前記文字のサイズが６ポイントよりも小さい場合に、曲線近似を用いないと判定する、
請求項１３記載のコンピュータプログラム。
【請求項１６】
前記判定する処理において、求めた前記文字のサイズが１０．５ポイントよりも大きい場合に、曲線近似を用いると判定する、
請求項１３記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャナで読み取った画像データをベクタ形式に変換する画像処理装置およびその変換方法などに関する。
【背景技術】
【０００２】
近年、紙の文書をスキャナで読み取って電子化して保管することが多く行われている。スキャナで読み取られた文書は、例えばビットマップ形式の画像データとして保存される。
【０００３】
ビットマップ形式では、ドット（ピクセル）の集合で文字を表現するので、その文字を表示しまたは印刷する際に複雑な計算を必要としない。しかし、出力（表示または印刷）する装置（出力装置）の解像度によっては、表示しまたは印刷した文字の輪郭にジャギー（がたつき）が目立ってしまうという欠点がある。
【０００４】
そこで、従来、アウトライン化と呼ばれる処理を施すことによってビットマップ形式の画像をベクタフォントの画像（ベクタ画像）に変換することが行われている。
【０００５】
ベクタ画像では、文字の輪郭を直線および曲線で近似することによって輪郭線を形成し、その輪郭線で囲まれた領域を塗りつぶすことによってその文字を再現するので、ジャギーが目立ちにくくなる。また、出力結果が出力装置の解像度に依存しないので、出力装置が変わっても文字の部分の画質が安定しやすい。しかし、ベクタ画像において文字の形状をできるだけ正確に再現しかつ滑らかに表現するためには、文字の輪郭を再現するための点（輪郭点）を多くする必要がある。よって、文字の部分の画質の維持のために、データ量が大幅に増えてしまうことがある。
【０００６】
従来、ベクタ画像に関連する技術として、特許文献１に開示されるような画像処理装置が提案されている。
【０００７】
特許文献１の画像処理装置によると、原稿を読み取って得たイメージ情報を、文字のサイズ、字体、および色などの属性に基づいて分割し、分割したイメージ情報ごとにアウトライン化する。
【特許文献１】特開２００７―１２９５５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、既に説明したように、ベクタ画像への変換を行うと画像データ全体のデータ量が増えることがある。特に、複雑な形状の文字は輪郭点の個数が多くなるので、そのような文字を多く含む場合はデータ量の増加が顕著に現れる。そこで輪郭点の個数を減らすことも考えられるが、そうすると文字の形状が変わってしまう恐れがあるので、そのような方法は好ましくない。
【０００９】
本発明はこのような問題点に鑑み、文字の形状を良好に保ちつつ従来よりもデータ量の少ないベクタ画像を生成できるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一形態に係る画像処理装置は、ラスタ形式のイメージデータに含まれる文字を抽出する文字抽出手段と、前記文字抽出手段が抽出した前記文字のサイズを求めるサイズ検出手段と、前記サイズ検出手段によって求められた前記文字のサイズに基づいて、前記文字をラスタ形式からベクタ形式に変換する際に曲線近似を用いるか否かを判定する判定手段と、前記文字抽出手段が抽出した前記文字の頂点を検出する頂点検出手段と、前記判定手段が曲線近似を用いると判定した場合は、前記頂点検出手段が検出した頂点によって形成される文字の輪郭の各部分をそれぞれ直線近似しまたは曲線近似することによって当該文字をベクタ形式に変換し、曲線近似を用いないと判定した場合は、前記頂点検出手段が検出した頂点によって形成される文字の輪郭の各部分を曲線近似することなく直線近似することによって当該文字をベクタ形式に変換する、画像変換手段と、を有する。
【００１１】
好ましくは、前記判定手段は、前記サイズ検出手段が求めたサイズが所定の大きさよりも小さい場合に、曲線近似を用いないと判定する。
【００１２】
または、前記判定手段は、前記サイズ検出手段が求めた前記文字のサイズが６ポイントよりも小さい場合に、曲線近似を用いないと判定する。
【００１３】
または、前記判定手段は、前記サイズ検出手段が求めた前記文字のサイズが１０．５ポイントよりも大きい場合に、曲線近似を用いると判定する。
【発明の効果】
【００１４】
本発明によると、文字の形状を良好に保ちつつ従来よりもデータ量の少ないベクタ画像を生成することができる。
【発明を実施するための最良の形態】
【００１５】
図１は本発明の一実施形態に係る画像形成装置１のハードウェア構成の例を示す図である。
【００１６】
図１に示す画像形成装置１は、コピー、スキャナ、ファックス、ネットワークプリンティング、ドキュメントサーバ、およびファイル転送などの様々な機能を集約した画像処理装置である。複合機またはＭＦＰ（Multi Function Peripherals）などと呼ばれることもある。
【００１７】
画像形成装置１は、図１に示すように、スキャナ１０ａ、ＣＰＵ１０ｂ、ハードディスク１０ｃ、ＲＡＭ１０ｄ、ＲＯＭ１０ｅ、印刷装置１０ｆ、モデム１０ｇ、ネットワークインタフェース１０ｈ、制御用回路１０ｋ、および操作パネル１０ｍなどによって構成される。
【００１８】
スキャナ１０ａは、原稿の用紙（以下、単に「原稿」と記載する。）に描かれている写真、文字、絵、図表などの画像を光学的に読み取って電子データ化する装置である。読み取られた画像は、ＲＧＢ（Ｒ（赤）、Ｇ（緑）、およびＢ（青））によって表されるビットマップなどの形式の画像データとして保存される。予め指定しておくことによって、ＰＤＦ（Portable Document Format）の形式で保存することもできる。
【００１９】
ＣＰＵ１０ｂは、スキャナ１０ａが読み取った原稿の画像データをＴＩＦＦ、ＪＰＥＧ、ビットマップ、およびＰＤＦなどの形式のファイルに変換するための処理を行う。また、ビットマップ形式（ラスタ形式）の画像データをベクタ形式に変換する処理を行う。ユーザからの入力の検出、操作パネル１０ｍの表示の制御，または電子メールの作成など、画像形成装置１の全体的な制御も行う。
【００２０】
印刷装置１０ｆは、スキャナ１０ａで読み取られた画像データの画像または他の装置から送信されてきた画像データの画像を用紙に印刷する装置である。画像形成装置１がカラー印刷に対応している場合は、イエロー、マゼンタ、シアン、およびブラックの４色のトナーを用いて印刷を行う。
【００２１】
操作パネル１０ｍは、ユーザが画像形成装置１に対して種々の入力を行うための装置である。ユーザは、操作パネル１０ｍを用いて、画像データの保存形式の選択、スキャンの条件の設定、処理の開始または実行の指令の入力、電子メールの宛先の入力などの種々の入力を行うことができる。
【００２２】
モデム１０ｇは、ＮＣＵ（Network Control Unit）が内蔵されており、アナログの公衆回線を介して他のファックス端末と接続し、ファクシミリプロトコルに基づくデータ制御およびファックスデータの変復調などを行う。
【００２３】
ネットワークインタフェース１０ｈは、ＮＩＣ（Network Interface Card）であって、ＬＡＮまたはインターネットなどを介して他の装置への接続を行う。
【００２４】
制御用回路１０ｋは、ハードディスク１０ｃ、操作パネル１０ｍ、スキャナ１０ａ、印刷装置１０ｆ、モデム１０ｇ、およびネットワークインタフェース１０ｈなどの装置を制御するための回路である。制御用回路１０ｋは、例えば、種々の電子部品を用いたハードウェア回路によって構成される。
【００２５】
ハードディスク１０ｃには、後に説明する図２に示すような各部の機能を実現するためのプログラムおよびデータなどが格納されている。これらは必要に応じてＲＡＭ１０ｄに読み出され、ＣＰＵ１０ｂによってプログラムが実行される。これらのプログラムまたはデータの一部または全部を、ＲＯＭ１０ｅに記憶させておいてもよい。または、図２の機能の一部または全部を、制御用回路１０ｋによって実現するようにしてもよい。
【００２６】
図２は画像形成装置１の機能的構成の例を示す図、図３は画像形成装置１における画像処理の流れを説明するための図である。
【００２７】
次に、文字および写真を含む画像が印刷された原稿ＧＫをスキャナ１０ａで読み取って得られるラスタ形式の原稿画像データＧＤを、ＰＤＦ形式のファイルに変換して保存する際の画像形成装置１の各部の処理について、図２および図３を参照しながら説明する。
【００２８】
図２に示すように、画像形成装置１は、画像データ取得部１１、文字非文字分離部１２、背景分離部１３、アウトライン化部１４、圧縮データ生成部１５、ファイル生成部１６、およびファイル保存部１７などによって構成される。
【００２９】
ユーザが原稿ＧＫをスキャナ１０ａにセットし、保存形式をＰＤＦに設定してスキャンの実行のコマンドを入力すると、スキャナ１０ａは、その原稿ＧＫの画像をスキャンし、ラスタ形式の原稿画像データＧＤを生成する（図３の＃１０１）。
【００３０】
画像データ取得部１１は、その原稿画像データＧＤを取得する（＃１０２）。文字非文字分離部１２は、原稿画像データＧＤに表される文字と、図、写真、または表などの文字意外のオブジェクトである非文字オブジェクトＨＯとを分離する処理を行う（＃１０３）。この処理は、公知の方法を用いて行う。
【００３１】
以下、原稿画像データＧＤから非文字オブジェクトＨＯが省かれて文字を表す画像データを「第一文字画像データＭＧ」と記載する。原稿画像データＧＤから文字が省かれて非文字オブジェクトＨＯを表す画像データを「非文字画像データＨＧ」と記載する。
【００３２】
背景分離部１３は、第一文字画像データＭＧに表される文字とその背景とを分離する処理を行う（＃１０４）。この処理は、例えば、濃度値が所定の濃度値以上である画素を、文字を形成する画素として抽出することによって行う。または、エッジを形成する画素を、文字を形成する画素として抽出することによって行う。
【００３３】
以下、第一文字画像データＭＧから背景が省かれて文字を表す画像データを「第二文字画像データＮＧ」と記載する。その文字が省かれてその背景を表す画像データを「背景画像データＫＧ」と記載する。
【００３４】
アウトライン化部１４は、第二文字画像データＮＧに表される各文字に対してアウトライン化の処理を施し、ラスタ形式で表される各文字をベクタ形式に変換する処理を行う（＃１０５）。これについては、後で詳しく説明する。以下、第二文字画像データＮＧに対してこのアウトライン化の処理が施されてできる画像データを「ベクタ文字画像データＶＤ」と記載する。
【００３５】
圧縮データ生成部１５は、ベクタ文字画像データＶＤ、背景画像データＫＧ、および非文字画像データＨＧのそれぞれについての圧縮データを生成する（＃１０６）。
【００３６】
具体的には、ベクタ文字画像データＶＤをＦＬＡＴＥなどの可逆圧縮の方式で圧縮する。背景画像データＫＧおよび非文字画像データＨＧに対しては低解像度化したあと、ＪＰＥＧなどの非可逆圧縮の方式で圧縮する。
【００３７】
ファイル生成部１６は、生成された、ベクタ文字画像データＶＤ、背景画像データＫＧ、および非文字画像データＨＧのそれぞれの圧縮データを用いてＰＤＦ形式のファイル（ＰＤＦファイル）を生成する。ファイル保存部１７は、生成されたＰＤＦファイルを保存する（＃１０７）。
【００３８】
図４はアウトライン化部１４の構成の例を示す図、図５は二値化された画像データに表される文字の例を示す図、図６は文字の輪郭を形成する頂点画素を検出するための画素の配置パターンＴＰを示す図、図７は頂点画素の検出の具体例を示す図、図８は直線近似の具体例を示す図、図９は選択曲線近似処理の具体例を示す図、図１０は「Ｌ」の文字を表す二値文字画像データＮＤの例を示す図、図１１は近似処理済ブロックデータＫＭＤの構成の例を示す図、図１２は近似処理済ブロックデータＫＭＤの例を示す図である。
【００３９】
アウトライン化部１４は、二値化部１０１、ラベリング部１０２、文字サイズ判定部１０３、近似方法決定部１０４、頂点検出部１０５、直線近似処理部１０６、および曲線近似処理部１０７などによって構成される。
【００４０】
二値化部１０１は、第二文字画像データＮＧを二値化する。二値化することによって、二値化の閾値よりも濃度値の高い画素がドットが打たれた画素（黒画素）となり、その閾値よりも濃度値の低い画素がドットが打たれていない画素（白画素）となる。これによって、第二文字画像データＮＧの文字の部分が、図５（ａ）に示すように黒画素によって表される。以下、第二文字画像データＮＧを二値化することによって得られた画像データを「二値文字画像データＮＤ」と記載する。
【００４１】
ラベリング部１０２は、二値文字画像データＮＤに示される文字ごとにラベリングを行う。この処理は次のようにして行う。
【００４２】
二値文字画像データＮＤに含まれる連結する黒画素である黒画素郡を検出し、図５（ｂ）に示すように、その黒画素郡を包含する矩形の領域であるブロックＢＫ（ブロックＢＫ１、ＢＫ２、…）を定義する。すなわち、二値文字画像データＮＤの左上端の画素の位置を原点として、そのブロックＢＫの左上端および右下端の画素の座標を求める。求めた左上端の画素の座標によってそのブロックＢＫの文字の位置が特定される。左上端および右下端の画素の座標によってそのブロックＢＫの縦の長さおよび横の長さ、すなわちそのブロックＢＫのサイズが特定される。ブロックＢＫのサイズは、そのブロックＢＫに含まれる文字のサイズとして使用する。
【００４３】
文字サイズ判定部１０３は、ラベリングされた各文字のそれぞれについて、文字のサイズが所定の大きさよりも小さい否かを判定する。
【００４４】
近似方法決定部１０４は、その判定結果に基づいてその文字の輪郭に対する近似方法を決定する。本実施形態では、文字のサイズが所定の大きさよりも小さいと判定された場合は、その文字の輪郭を曲線近似を用いることなく直線近似すると決定する。文字のサイズが所定の大きさよりも小さくないと判定された場合は、その文字の輪郭を直線近似に加えて曲線近似も用いて近似すると決定する。
【００４５】
所定の大きさは、例えば、縦３０ピクセルおよび横２０ピクセルの大きさである。この場合は、ブロックＢＫの縦の長さが３０ピクセル未満でありかつ横の長さが２０ピクセル未満である場合に、その文字の輪郭を曲線近似を用いることなく直線近似すると決定する。縦の長さが３０ピクセル以上でありまたは横の長さが２０ピクセル以上である場合に、その文字の輪郭を直線近似に加えて曲線近似も用いて近似すると決定する。
【００４６】
頂点検出部１０５は、各ブロックＢＫ内の文字の頂点の画素（頂点画素）を検出する。この検出の処理は、図６に示す、頂点画素の検出に用いる白画素と黒画素の配置のパターン（配置パターン）である頂点検出パターンＰＴ１〜ＰＴ８を用いて行う。すなわち、パターンマッチングによってこれら頂点検出パターンＰＴ１〜ＰＴ８のいずれかと一致するブロックＢＫ内の箇所を探索し、一致した箇所の画素のうちでその一致した頂点検出パターンＰＴの頂点位置Ｔに位置する画素を頂点画素として検出する。以下、頂点検出パターンＰＴ１、ＰＴ２、…を「頂点検出パターンＰＴ」と総称して記載することがある。他の装置または部材などについても同様に符号の末尾に付した連番またはアルファベットを省略することによって総称して記載することがある。ここで、図７を参照しながら頂点画素の検出の処理についてさらに具体的に説明する。
【００４７】
図７（ａ）には、二値文字画像データＮＤに含まれる「ａ」の文字を包含するブロックＢＫ１が示される。図７（ｂ）には、ブロックＢＫ内の特定の部分（特定部分ＡＲ１）の拡大図が示される。
【００４８】
この特定部分ＡＲ１に着目して、特定部分ＡＲ１内を左上から順に走査すると、画素群ＡＨの箇所において、頂点検出パターンＰＴ１と一致する配置パターンが検出される。その画素群ＡＨにおいて、その頂点検出パターンＰＴ１の頂点位置Ｔに位置する画素ＧＳ２２が頂点画素として検出される。同様にして頂点画素の検出を行うと、画素ＧＳ２３、ＧＳ４３、およびＧＳ４４が頂点画素として検出される。
【００４９】
検出された頂点画素を線分で結ぶことによって図７（ｃ）に示すような「ａ」の文字の輪郭を示す画像を生成できる。
【００５０】
直線近似処理部１０６は、二値文字画像データＮＤに含まれる各文字の輪郭を直線近似する。本実施形態では、３つ以上の頂点によって形成される文字の輪郭を２つの頂点を結ぶ線分（近似線分）によって直線近似する。そのような直線近似を文字の輪郭の全体に渡って行う。ここで、直線近似の手順について、図８を参照して具体的に説明する。
【００５１】
図８（ａ）には、「ａ」の文字の輪郭を示す画像が示される。この画像は、頂点検出部１０５によって求められた頂点画素の中心同士を線分で結ぶことによって描かれる。図８（ｂ）には、図８（ａ）の輪郭を示す画像の特定の部分（特定部分ＡＲ２）の拡大図が示される。
【００５２】
特定部分ＡＲ２において、まず、任意の頂点を始点として選択する。ここでは、頂点Ｐ１を始点として選択したものとする。始点Ｐ１と始点Ｐ１から２つ隣の頂点Ｐ３を近似線分の終点の候補（終点候補）として選択する。始点Ｐ１と終点候補Ｐ３とを結ぶ線分と、始点Ｐ１と終点候補Ｐ３との間にある頂点である頂点Ｐ２との距離を求める。求めた距離が所定の閾値（直線近似閾値）よりも短いか否かをチェックする。短い場合は、終点候補を次の頂点Ｐ４に移して同様の処理を行う。すなわち、始点Ｐ１と終点候補Ｐ４とを結ぶ線分と、始点Ｐ１と終点候補Ｐ４との間にある各頂点である頂点Ｐ２およびＰ３のそれぞれとの距離を求める。求めた各距離が所定の閾値（直線近似閾値）よりも短いか否かをチェックする。いずれの距離も直線近似閾値よりも短い場合は、終点候補をさらに次の頂点である頂点Ｐ５に移して同様の処理を行う。
【００５３】
始点と終点候補の頂点とを結ぶ線分と、始点とその終点候補の頂点との間にある各頂点との距離のいずれかが直線近似閾値よりも長くなるような終点候補が現れるまで、終点候補を、順次、次の頂点に移していく。そのいずれかの距離が直線近似閾値以上になった時点で近似線分の終点を決定する。図８（ｂ）の例では、終点候補が頂点Ｐ７となったときに、始点Ｐ１と終点候補Ｐ７とを結ぶ線分と頂点Ｐ６との距離が直線近似閾値よりも長くなるものとする。
【００５４】
終点候補が頂点Ｐ７に移ると、同様にして、始点Ｐ１と終点候補Ｐ７とを結ぶ線分と、始点Ｐ１と終点候補Ｐ７との間にある各頂点との距離を求める。その線分と頂点Ｐ６との距離は直線近似閾値よりも長いので、この時点で頂点Ｐ１を始点とする近似線分の終点を決定する。終点は、その時点の終点候補の一つ手前の頂点に決定する。図８（ｂ）の例では、終点候補Ｐ７の一つ手前の頂点Ｐ６を終点として決定する。そして、頂点Ｐ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、およびＰ６によって形成される輪郭が、図８（ｃ）に示すような始点Ｐ１と終点Ｐ６とを結ぶ線分Ｓ１６で近似されるように、頂点Ｐ１および頂点Ｐ６をそれぞれ始点および終点として記録しておく。
【００５５】
終点が決まると、その終点を次の近似線分の始点として、当該次の近似線分を求める処理を行う。すなわち、頂点Ｐ６を始点として、その２つ隣の頂点である頂点Ｐ８を終点候補として、それらを結ぶ線分と、それら始点Ｐ６と終点候補Ｐ８との間にある各頂点との距離を求める。以下、既に説明した方法と同様にして、終点候補を移していき、終点を決定する。同様の処理を繰り返し、文字の輪郭の全部について近似線分の始点および終点を求める。
【００５６】
直線近似処理部１０６は、上記のような方法で、ラベリングによって検出された全てのブロックＢＫの文字の輪郭を直線近似し、直線近似が行われたあとの文字を示す近似処理済ブロックデータＫＭＤをブロックＢＫごとに出力する。近似処理済ブロックデータＫＭＤの詳細については後に説明する。
【００５７】
曲線近似処理部１０７は、曲線近似を用いて文字の輪郭を近似すると決定されたブロックＢＫの文字の輪郭のうちで所定の条件を満たす部分を曲線近似する処理（選択曲線近似処理）を行う。曲線近似は、近似処理済ブロックデータＫＭＤに示される直線近似が施された後の文字の輪郭に対して行う。
【００５８】
本実施形態では、文字の輪郭を形成する近似線分のうちの隣り合う２つの近似線分に着目し、それら２つの近似線分が次の（１）および（２）の条件をともに満たす場合に、それら２つの近似線分によって表される輪郭をベジェ曲線で近似する。
（１）２つの近似線分の両方が所定の長さ（曲線近似閾値）よりも短い。
（２）２つの近似線分の接点にできる小さいほうの角度（判定対象角度）が所定の角度（近似閾値角度）よりも大きい。
【００５９】
ここで、選択曲線近似処理について図９を参照しながら具体的に説明する。
【００６０】
図９（ａ）には、近似線分Ｓ１〜Ｓ７によって形成される、特定部分ＡＲ２内の「ａ」の文字の輪郭が示される。図９（ａ）の例では、判定対象角度Ｋ６、Ｋ８、Ｋ１２、およびＫ１３が近似閾値角度よりも大きく、判定対象角度Ｋ１およびＫ１４が近似閾値角度よりも小さいものとする。また、近似線分Ｓ１、Ｓ２、Ｓ５、Ｓ６、およびＳ７の長さは、曲線近似閾値よりも短く、近似線分Ｓ３およびＳ４は、曲線近似閾値よりも長いものとする。
【００６１】
図９（ａ）において、近似線分Ｓ１とＳ２とに着目すると、これらの近似線分Ｓ１およびＳ２はいずれも曲線近似閾値よりも短いので上記の（１）の条件を満たす。また、判定対象角度Ｋ６は、近似閾値角度よりも大きいので上記の（２）の条件も満たす。すなわち、近似線分Ｓ１およびＳ２は上述の（１）および（２）の条件をともに満たすので、これらの近似線分の輪郭に対して曲線近似を行う。曲線近似は、例えば、次のようにして行う。
【００６２】
近似線分Ｓ１の中点Ｃ１および近似線分Ｓ２の中点Ｃ２を求める。それら中点Ｃ１およびＣ２をそれぞれ始端点および終端点とし、所定のルールに従ってさらに別の２つの制御点を決めて、図９（ｂ）に示すようなベジェ曲線ＢＣ１を求める。２つの制御点は、中点Ｃ１において近似線分Ｓ１に接しかつ中点Ｃ２において近似線分Ｓ２に接するベジェ曲線が描かれる点とする。例えば、頂点Ｐ６と中点Ｃ１との中点および頂点Ｐ６と中点Ｃ２との中点としてもよい。さらに、そのベジェ曲線がＰ６とできるだけ近くなるような点としてもよい。
【００６３】
次に、近似線分Ｓ２およびＳ３に着目する。近似線分Ｓ３は、曲線近似閾値よりも長いので、上記の（１）の条件を満たさない。よって、これらの近似線分の組合せに対しては、曲線近似は行わない。
【００６４】
隣り合う近似線分の各組合せに対してこのような処理を行い、上記の（１）および（２）の条件を満たす組合せに対して曲線近似を行っていく。図９（ａ）の例の場合は、このような処理によって、図９（ｂ）に示すような輪郭が得られる。
【００６５】
曲線近似処理部１０７は、このような方法で、直線近似処理部１０６から取得した全ての近似処理済ブロックデータＫＭＤの示される文字の輪郭に対して選択曲線近似処理を行い、近似処理済ブロックデータＫＭＤを、選択曲線近似処理が行われた後の文字を示すデータに更新する。ラベリングされた各文字の近似処理済ブロックデータＫＭＤを用いて、それらの文字を示すベクタ形式の画像データであるベクタ文字画像データＶＤを生成する。そして、そのベクタ文字画像データＶＤを圧縮データ生成部１５に出力する。ここで、近似処理済ブロックデータＫＭＤの詳細を図１０〜図１２を参照しながら説明する。
【００６６】
図１０には、「Ｌ」の文字を含む画像が示される。この「Ｌ」の文字の輪郭は、頂点Ａ、Ｂ、Ｃ、Ｄ、Ｅ、およびＦのそれぞれを結ぶ近似線分によって表される。この画像の左上端を原点とする各頂点Ａ、Ｂ、Ｃ、Ｄ、Ｅ、およびＦの座標は、図１０に示すとおりである。
【００６７】
図１０に示すこのブロックＢＫの近似処理済ブロックデータＫＭＤには、図１１に示すように、そのブロックＢＫの近似処理済ブロックデータＫＭＤの始まりを示す符号（ｑ）、倍率と精度、基準点の座標、頂点Ａ〜頂点Ｇの頂点データＴＤ、そのブロックＢＫの近似処理済ブロックデータＫＭＤの終りを示す符号（Ｑ）、およびそのブロックＢＫの右下端の点（ブロック終端点）の座標などが含まれる。基準点は、そのブロックＢＫの左上端の点である。
【００６８】
頂点データＴＤには、図１１（ｂ）に示すように、その頂点が直線近似による線分の終点である場合に、基準点を原点とするその頂点の座標および直線近似を表す符号の「Ｓ」が示される。
【００６９】
例えば、頂点Ｃの頂点データＴＤｃには、「２０，９８０，Ｓ」が示される。「Ｓ」は、直線近似を意味するので、頂点Ｃの直前の頂点である頂点Ｂと頂点Ｃとを結ぶ近似線分によって文字の輪郭を近似することを意味する。すなわち、基準点を原点とした場合の座標が（２０，０）の頂点Ｂおよび（２０，９８０）の頂点Ｃを結ぶ近似線分によって輪郭を描画して再現することを意味する。
【００７０】
一方、曲線近似の場合は、頂点データＴＤには、図１１（ｃ）に示すように、２つの制御点の座標、終端点の座標、および曲線近似を意味する符号の「Ｃ」が示される。図１１（ｂ）の例の場合は、基準点を原点とした（５，２０）および（１０，２０）の座標の点を制御点とし、（２０，５）の座標の点を終端点とし、この頂点データＴＤの頂点の直前の点（直前の近似方法が直線近似である場合は直前の近似線分の終点、直前の近似方法が曲線近似である場合は直前のベジェ曲線の終端点）を始端点としてベジェ曲線を求めることによって文字の輪郭を近似することを意味する。
【００７１】
図１２（ａ）には、直線近似が行われて生成されたあるブロックＢＫの近似処理済ブロックデータＫＭＤが示される。この近似処理済ブロックデータＫＭＤによって再現される文字の輪郭に対してさらに選択曲線近似処理を行うと、近似処理済ブロックデータＫＭＤが図１２（ｂ）のように更新される。図１２（ｂ）において、下線で示される箇所が曲線近似によって表される輪郭の部分の頂点の頂点データＴＤである。図１２の例から分かるように、曲線近似を行うと、頂点データＴＤのデータ量が多くなることによって近似処理済ブロックデータＫＭＤの全体のデータ量が多くなる。
【００７２】
図１３はスキャンした画像データをＰＤＦファイルに変換する際の画像形成装置１の処理の流れを説明するためのフローチャート、図１４はアウトライン化の処理の流れを説明するためのフローチャート、図１５はサイズの大きい文字および小さい文字に対して本実施形態のアウトライン化の処理を行った場合の結果の例を示す図である。
【００７３】
図１３において、ユーザは、スキャナ１０ａに原稿ＧＫをセットし、保存形式としてＰＤＦファイルを指定する。ユーザがスキャンの実行のコマンドを入力すると、画像形成装置１は、その原稿ＧＫをスキャンし（＃２０１）、その原稿ＧＫの画像を示すラスタ形式の原稿画像データＧＤを生成する（＃２０２）。画像形成装置１は、生成したラスタ形式の原稿画像データＧＤを用いて、以下のようにしてＰＤＦファイルを生成する。
【００７４】
原稿画像データＧＤにおける、文字の部分と非文字オブジェクトＨＯの部分とを抽出する（＃２０３）。非文字オブジェクトＨＯが除かれた、その抽出された文字を表す第一文字画像データＭＧから背景を除去する（＃２０４）。背景が除去された、その抽出された文字を表す第二文字画像データＮＧに対して本実施形態に係るアウトライン化の処理を施す（＃２０５）。
【００７５】
アウトライン化の処理において、第二文字画像データＮＧを二値化する（図１４の＃３０１）。二値化によって得られた二値文字画像データＮＤに対してラベリングの処理を行い、それに含まれる各文字を包含する各ブロックＢＫを求める（＃３０２）。ラベリングした各文字について、ベクタ形式への変換の際の近似方法を決定する。この決定は、次のようにして行う。
【００７６】
ラベリングされた文字を一つ選択する（＃３０３）。その文字（選択文字）のサイズを求める（＃３０４）。そのサイズが所定の大きさよりも小さいか否かをチェックする。
【００７７】
選択文字のサイズが所定の大きさよりも小さい場合は（＃３０５でＹｅｓ）、その選択文字に対して曲線近似の処理は行わないと決定する（＃３０６）。
【００７８】
選択文字のサイズが所定の大きさよりも小さくない場合は（＃３０５でＮｏ）、その選択文字に対して曲線近似の処理を行うと決定する（＃３０７）。
【００７９】
ラベリングした全ての文字に対してステップ＃３０３〜３０７の処理を行う（＃３０８でＮｏ）。
【００８０】
ラベリングした全ての文字に対してステップ＃３０３〜３０７の処理が完了すると（＃３０８でＹｅｓ）、各文字の頂点を検出し（＃３０９）、文字の輪郭を特定する（＃３１０）。各文字の輪郭を直線近似する（＃３１１）。
【００８１】
直線近似の後、ステップ＃３０７において曲線近似の処理を行うと決定した文字に対しては、既に説明した選択曲線近似処理を行う（＃３１２）。
【００８２】
すなわち、所定の大きさよりもサイズが小さい文字は、曲線近似を用いることなく直線近似のみによって輪郭を近似する。これによって、図１５（ａ）に示すように、文字の輪郭が直線によって描かれる。所定の大きさ以上のサイズの文字は、直線近似および曲線近似によって輪郭を近似する。これによって、図１５（ｂ）に示すように、文字の輪郭が直線および曲線によって描かれる。
【００８３】
以上の処理によって二値文字画像データＮＤをラスタ形式からベクタ形式に変換し、それによって生成されるベクタ形式のベクタ文字画像データＶＤを保存する（＃３１３）。
【００８４】
保存したベクタ文字画像データＶＤを可逆圧縮の方式で圧縮し、背景画像データＫＧおよび非文字画像データＨＧは、低解像度化した後、非可逆圧縮の方式で圧縮する（図１３の＃２０６）。それぞれの圧縮データを用いてＰＤＦファイルを生成する（＃２０７）。
【００８５】
図１６は大きなサイズの文字に対して本実施形態の近似の処理を行った結果の例を示す図、図１７は小さなサイズの文字に対して本実施形態の近似の処理を行った結果の例を示す図である。
【００８６】
図１６（ａ）および図１７（ａ）には、「ＡＢＣＤＥ」の各文字を直線近似した場合の例が示される。図１６（ｂ）および図１７（ｂ）には、それぞれ、その直線近似された図１６（ａ）および図１７（ａ）の各文字の輪郭に対して選択曲線近似処理を行った場合の例が示される。なお、図１６は１０ポイントの大きさの文字を用いた場合の例であり、図１７は６ポイントの大きさの文字を用いた場合の例である。
【００８７】
図１６（ａ）を見て分かるように、曲線近似を用いることなく直線近似のみで文字の輪郭を近似すると、文字の輪郭のカーブの部分に角が生じて文字が角張ってしまう。そうすすると、文字の形が不自然に見えてしまう。「Ｃ」の文字のようにカーブの割合が多い文字は、その不自然さが特に顕著に現れる。そこで、このような直線近似された文字の輪郭に対して選択曲線近似処理を行う。すると、図１６（ｂ）のような文字の輪郭を得ることができる。図１６（ａ）と図１６（ｂ）とを比較して分かるように、選択曲線近似処理を行うことによってより自然な輪郭を得ることができる。
【００８８】
しかし、図１７（ａ）と図１７（ｂ）とを比較して分かるように、文字のサイズが小さい場合は、曲線近似を用いた場合も用いなかった場合も、見た目にさほど大きな差は現れない。従って、画質の劣化を低減するためには、特に文字のサイズが大きい場合に、曲線近似を用いることが好ましいと言える。
【００８９】
本実施形態によると、直線近似と曲線近似との近似の結果にほとんど差がでないような小さな文字に対しては、近似後のデータ量が大きくなる曲線近似を用いない。よって、小さな文字に対しても無条件に曲線近似を用いる従来の方法と比べて、近似の処理の後のデータ量を減らすことができる。さらに、計算量の多い曲線近似の処理を好適に減らすことができるので処理の効率を高めることができる。また、直線近似をした場合に輪郭の角ばり具合が目立つ程度の大きさの文字に対しては曲線近似を用いるので、従来の方法と比べてほとんど画質を劣化させることなく上述の効果を奏することができる。
【００９０】
本実施形態では、所定の大きさを縦および横の長さが２０ピクセルの大きさとしたが、他の大きさであってもよい。また、所定の大きさをピクセルの単位で表したが、文字の大きさの単位である「ポイント」などの他の単位で表してもよい。ポイントで表す場合は、所定の大きさを、例えば、１０ポイントまたは６ポイントなどとしてもよい。
【００９１】
本実施形態では、スキャナ１０ａによってスキャンした画像データを用いたが、ネットワークインタフェース１０ｈによって他の装置から受信した画像データを用いてもよい。
【００９２】
本実施形態では、二値化部１０１において濃度値に基づいて二値化を行ったが、明度に基づいて行うようにしてもよい。その場合は、例えば、明度が所定の閾値よりも高い画素を白画素とし、低い画素を黒画素とする。
【００９３】
また、図２または図４の各部の機能の一部をハードウェアによって実現してもよい。例えば、入力画像処理部および出力画像処理部などのハードウェアを画像形成装置１に設けておく。入力画像処理部は、スキャナ１０ａから原稿画像データＧＤを受け付け、それに対して、色変換、色補正、解像度変換、領域判別などの処理を行う。処理された後のデータは、ハードディスク１０ｃ、ＲＡＭ１０ｄ、またはＲＯＭ１０ｅなどに保存する。
【００９４】
なお、直線近似および曲線近似の方法は、本実施形態で説明した方法に限られるものではなく、その他種々の方法を用いることができる。
【００９５】
その他、画像形成装置１の全体または各部の構成、機能、処理の内容または順序、各データが示す内容などは、本発明の趣旨に沿って適宜変更することができる。
【図面の簡単な説明】
【００９６】
【図１】本発明の一実施形態に係る画像形成装置のハードウェア構成の例を示す図である。
【図２】画像形成装置の機能的構成の例を示す図である。
【図３】画像形成装置における画像処理の流れを説明するための図である。
【図４】アウトライン化部の構成の例を示す図である。
【図５】二値化された画像データに表される文字の例を示す図である。
【図６】文字の輪郭を形成する頂点画素を検出するための画素の配置パターンを示す図である。
【図７】頂点画素の検出の具体例を示す図である。
【図８】直線近似の具体例を示す図である。
【図９】選択曲線近似処理の具体例を示す図である。
【図１０】「Ｌ」の文字を表す二値文字画像データの例を示す図である。
【図１１】近似処理済ブロックデータの構成の例を示す図である。
【図１２】近似処理済ブロックデータの例を示す図である。
【図１３】スキャンした画像データをＰＤＦファイルに変換する際の画像形成装置の処理の流れを説明するためのフローチャートである。
【図１４】アウトライン化の処理の流れを説明するためのフローチャートである。
【図１５】サイズの大きい文字および小さい文字に対して本実施形態のアウトライン化の処理を行った場合の結果の例を示す図である。
【図１６】大きなサイズの文字に対して本実施形態の近似の処理を行った結果の例を示す図である。
【図１７】小さなサイズの文字に対して本実施形態の近似の処理を行った結果の例を示す図である。
【符号の説明】
【００９７】
１  画像形成装置（画像処理装置、コンピュータ）
１４  アウトライン化部（画像変換手段）
１５  圧縮データ生成部（圧縮手段）
１０２  ラベリング部（文字抽出手段、サイズ検出手段）
１０４  近似方法決定部（判定手段）
１０６  直線近似処理部（画像変換手段）
１０７  曲線近似処理部（画像変換手段）
ＧＤ  原稿画像データ（イメージデータ）
【図１】
0004582200.tif 000002
【図２】
0004582200.tif 000003
【図３】
0004582200.tif 000004
【図４】
0004582200.tif 000005
【図５】
0004582200.tif 000006
【図６】
0004582200.tif 000007
【図７】
0004582200.tif 000008
【図８】
0004582200.tif 000009
【図９】
0004582200.tif 000010
【図１０】
0004582200.tif 000011
【図１１】
0004582200.tif 000012
【図１２】
0004582200.tif 000013
【図１３】
0004582200.tif 000014
【図１４】
0004582200.tif 000015
【図１５】
0004582200.tif 000016
【図１６】
0004582200.tif 000017
【図１７】
0004582200.tif 000018