(57)【特許請求の範囲】
【請求項１】
入力画像から空白文字及び通常の文字を特定する特定手段と、
前記特定手段で特定された空白文字に対して、当該空白文字の前後にある通常の文字の色情報を付加する付加手段と
を有することを特徴とする画像処理装置。
【請求項２】
入力画像から、空白文字及び通常の文字を含む文字列を特定する特定手段と、
前記特定手段で特定された文字列における通常の文字の色情報を識別する識別手段と、
前記特定手段で特定された文字列における空白文字に対して、前記特定された文字列における当該空白文字の前後にある通常の文字の前記識別された色情報を付加する付加手段と
を有することを特徴とする画像処理装置。
【請求項３】
入力画像から編集が可能な電子データを生成する画像処理装置であって、
文字列を含む画像を前記入力画像として入力する入力手段と、
前記入力画像を構成する画素において画素値が近似する複数の画素塊を抽出する抽出手段と、
前記複数の前記画素塊が構成する領域を、文字領域、およびそれ以外の領域のうちの少なくともいずれかとして識別する識別手段と、
前記文字領域として識別された画素塊から文字を解析し、当該文字の少なくとも文字コードと位置情報とを含む文字情報を取得する解析手段と、
前記文字情報により示される文字の配置から空白文字を含む文字列を特定する特定手段と、
前記文字情報にて示される位置の文字領域の画素塊から色情報を取得し、当該文字情報に付加する色情報付加手段と、
前記特定された文字列と当該文字列に含まれる文字の文字情報とから前記電子データを定義する記述を生成する生成手段と
を備え、
前記色情報付加手段は、前記文字列に含まれる空白文字の文字情報に対し、当該文字列における当該空白文字の前後にある文字の色情報を付加することを特徴とする画像処理装置。
【請求項４】
前記解析手段は更に、前記文字領域として識別された画素塊の文字に対し、文字サイズ、フォント形状、太字、斜体のうちの少なくとも一つの情報を修飾情報として取得し、
前記色情報付加手段は更に、前記文字列に含まれる空白文字の文字情報に対し、当該文字列における当該空白文字の前後にある文字の修飾情報を付加することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記色情報付加手段は、一つの文字情報にて示される位置に、二つ以上の画素塊が存在する場合、当該画素塊のうち、前記文字情報にて示される文字の範囲と重なる面積が最大の画素塊から前記色情報を取得することを特徴とする請求項３または４に記載の画像処理装置。
【請求項６】
前記文字情報に含まれる位置情報は、文字が含まれる矩形の領域の座標にて示されることを特徴とする請求項３乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
入力画像から空白文字及び通常の文字を特定する特定工程と、
前記特定工程にて特定された空白文字に対して、当該空白文字の前後にある通常の文字の色情報を付加する付加工程と
を有することを特徴とする画像処理方法。
【請求項８】
コンピュータを、
入力画像から空白文字及び通常の文字を特定する特定手段、
前記特定手段で特定された空白文字に対して、当該空白文字の前後にある通常の文字の色情報を付加する付加手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、紙文書、または文書の画像データから編集可能な電子文書データを生成する画像処理装置、画像処理方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、文書を作成する際、単に文字を打ち込むのみならず、フォントに装飾を凝らしたり、図を自由に作成したり、あるいは写真等を取り込んだりといった、高度な機能が用いられるようになっている。
【０００３】
しかし、作成物の内容が高度になるほど、文書をまったく新規から作成するには大きな労力が必要とされる。よって、過去に作成した文書の一部をそのまま、あるいは加工編集したものを再利用できるようにすることが望まれている。
【０００４】
一方、インターネットに代表されるようなネットワークの広がりにより、文書が電子的に配布される機会も増えたが、電子文書が紙に印刷された状態で配布されることも多い。そのように紙文書しか手元に存在しない場合でも、その内容を紙から再利用可能なデータとして得られるようにするための技術が開示されている。例えば、特許文献１では、紙の文書を装置に電子的に読み込ませた際に、その内容と一致する文書をデータベースから検索して取得し、読み込んだ紙面のデータの代わりに利用できることが記載されている。また、同一の文書がデータベースから特定できなかった場合は、読み込んだ文書の画像を再利用が容易な電子データへと変換するため、この場合も文書の内容を再利用することができる。
【０００５】
従来、文書画像中の文字情報を再利用が容易な電子データへと変換する技術として、ＯＣＲ技術があった。また、線や面で構成される図画情報を再利用が容易な電子データへと変換する技術として、ベクトル化の技術があった。例えば、特許文献１では、上記技術を用いて文書画像中の文字を文字コードにしたり、図形の輪郭をベクトルデータにすることで、再利用可能なデータへと変換する技術が開示されている。
【０００６】
特許文献１では更に、文書画像中の文字、線画、自然画、表などの領域を識別し、各領域の関係をツリー構造で表現するデータを構築する技術を開示している。そして、同構造に従って上記文字コードやベクトルデータ、画像データ等を配置することで、アプリケーションで編集可能な電子文書ページへの変換を行う。この電子データは、元文書と同等のレイアウトを持ち、文書作成アプリケーション等で新規作成した電子文書ページと同様、文字や図形の位置やサイズの変更、さらに幾何学的な変形や色付けなどを容易に行うことができる。
【０００７】
また、カラープリンタ等の普及により、カラフルに印刷された紙文書を受けとる機会も増えている。このようなカラー文書の内容を再利用しようとする場合、その色情報を再現したうえで、再利用可能なデータに変換することが求められる。このような要求に対し、特許文献２では、文字等の色情報が失われないように、カラー画像を２値以上の画素値を持つことができる画像に減色してから、同色となった画素塊を抽出して領域を識別している。この技術を利用して色情報を持つ画素塊取得し、上記ベクトル化等の処理を施すことで、色情報を再現したうえで再利用可能なデータを得ることができる。
【０００８】
また、特許文献３では、文字認識結果の各文字コードに対し、入力画像の画素を元に得た色情報を付加している。これにより、色情報を再現した再利用可能な文字データを得ることができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第４２５１６２９号明細書
【特許文献２】米国特許出願公開第２００８／０１２３９４５号明細書
【特許文献３】特開２００９−２０５２３２号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１０】
入力画像を電子文書に変換する際に、一文字ごとに色などの修飾情報を付加すると、その分ファイルサイズが増大してしまうという問題がある。
【００１１】
また、文字認識結果の中にスペース文字（空白文字）がある場合、当該スペース文字には対応する画素情報が存在しないので、当該スペース文字は色情報無しとして判定される。文字認識結果の文字列の中に、色情報が付与される文字と、色情報が付与されないスペース文字とが混在する場合、そのままの状態で電子文書への変換を行おうとすると、文字ごとに色情報の有無を記述する必要が出てしまう。その結果、電子文書のファイルサイズが増大することにより、保存や再利用の際に利便性が損なわれるという課題があった。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本願発明は以下の構成を有する。すなわち、画像処理装置であって、入力画像から空白文字及び通常の文字を特定する特定手段と、前記特定手段で特定された空白文字に対して、当該空白文字の前後にある通常の文字の色情報を付加する付加手段とを有する。
【発明の効果】
【００１３】
不可視の文字に対して前後の修飾情報を付加することで、生成する電子文書の見た目の情報を変えることなく、文字列中の修飾情報をまとめ、ファイルサイズを削減する。
【図面の簡単な説明】
【００１４】
【図１】システム構成の一例を示す図。
【図２】各部位の処理によるデータの変化を示すブロック図。
【図３】画素塊解析部における処理を示すフローチャート。
【図４】ラベリング処理を示すフローチャート。
【図５】ラベリング処理の例を示す図。
【図６】画素塊解析部による処理結果の例を示す図。
【図７】レイアウト解析部における処理を示すフローチャート。
【図８】グラフィックスデータ生成部における処理を示すフローチャート。
【図９】レイアウト解析処理部における処理結果の例を示す図。
【図１０】文字認識部における処理を示すフローチャート。
【図１１】文字領域の処理結果の例を示す図。
【図１２】色情報付加処理を示すフローチャート。
【図１３】色情報付加処理の処理結果の例を示す図。
【図１４】画素塊色情報を説明するための図。
【図１５】電子文書生成部における処理を示すフローチャート。
【図１６】領域種別毎の出力対象を定義するテーブルの例を示す図。
【図１７】電子文書データの出力例を示す図。
【図１８】第二実施形態に係る文字領域の処理結果の例を示す図。
【図１９】第二実施形態に係る電子文書の出力例を示す図。
【発明を実施するための形態】
【００１５】
＜第一実施形態＞
［システム構成］
以下、本発明を実施するための最良の形態について図面を用いて説明する。図１は本発明に係る画像処理装置を用いたシステム構成の一例を示す図である。画像処理装置１００は、スキャナ１０１、ＣＰＵ１０２、メモリ１０３、ハードディスク１０４、およびネットワークＩ／Ｆ１０５を含む。スキャナ１０１は、読みとった文書の紙面情報を画像データに変換する。ＣＰＵ１０２は、画像データに電子文書生成処理を施すためのプログラムを実行する。メモリ１０３は、該プログラムを実行する際のワークメモリやデータの一時保存などに利用される。ハードディスク１０４は、該プログラムやデータを格納する。ネットワークＩ／Ｆ１０５は、外部装置とデータの入出力を行う。画像処理装置１００は、ネットワークＩ／Ｆ１０５を介してＬＡＮやインターネットなどの有線または無線のネットワーク１１０に接続にされている。このネットワーク１１０には更に汎用のパーソナルコンピュータ（ＰＣ）１２０が接続されており、ＰＣ１２０は、画像処理装置１００から送信されたデータを受信し、同コンピュータ上にて表示・編集などに利用することが可能である。
【００１６】
［電子文書生成処理の構成］
図２は、本発明に係る画像処理装置のＣＰＵ１０２で実施される電子文書生成処理の構成を示すブロック図である。更に、電子文書生成処理の中で、生成される各種データが示されている。図２の入力画像２００および出力電子文書２１０はそれぞれ電子文書生成処理の入力データおよび出力データである。この入力画像２００を出力電子文書２１０として出力するまでの処理の流れと、処理を行う各処理部についての概要を説明する。また、各処理部の詳細な処理内容はその後で説明する。
【００１７】
入力画像２００は、図２の電子文書生成処理の対象となる画像データである。例えば図１に示す画像処理装置１００では、スキャナ１０１により読み取られた紙文書の内容が、光電変換により電子的画素情報に変換された文書画像データである。もしくは、ネットワークＩ／Ｆ１０５を通して外部から供給された画像データ、画像処理装置１００内で生成された画像データであってもよい。入力画像２００は、具体的にはメモリ１０３もしくはハードディスク１０４に格納された状態で、以降の処理ブロックへと入力される。
【００１８】
出力電子文書２１０は、電子文書生成処理の結果として出力される電子データである。この出力電子文書２１０は、入力画像２００の内容を、利用者がパーソナルコンピュータのアプリケーション上で表示・編集が可能となる形式で表現したものである。またこの出力電子文書２１０内では、入力画像２００に含まれている文字や図形、写真等の内容に応じて、それらの内容を種別毎に適切なデータ形式で表現することを特徴とする。その目的は、表示・保存・検索・編集・再利用等の異なる用途の各々に最適な電子文書を出力可能とするためである。それぞれのデータ形式および電子文書形式の具体例については後述する。
【００１９】
画素塊解析部２０１は、入力画像２００の画素内容（画素情報）を解析し、同色とみなされる連結画素のグループ化を行い、連結画素塊を形成する。そして、画素塊解析部２０１は、形成した連結画素塊の画素形状、および相対的な位置関係を含む画素塊データ２０６を生成する。
【００２０】
レイアウト解析部２０２は、画素塊解析部２０１にて生成された画素塊データ２０６を入力として、各画素塊を文字と非文字に分類し、かつグループ化を行う。これにより、レイアウト解析部２０２は、入力画像２００内に存在する領域を特定する。ここで特定される領域の種別としては、文字領域、線画領域、自然画領域、表領域などがある。そして、レイアウト解析部２０２は、それら特定された各領域の種類、座標と相対関係、および領域に含まれる画素塊の情報を含む領域データ２０７を生成する。
【００２１】
グラフィックスデータ生成部２０３は、領域データ２０７、画素塊データ２０６、および入力画像２００を入力とし、出力電子文書２１０内で各領域の内容に相当するグラフィックスデータ２０８を生成する。グラフィックスデータ２０８は、後述の電子文書記述生成部２０５において、各領域に対応するグラフィックスオブジェクト記述の生成に用いられる。具体的には、例えば、グラフィックスデータ生成部２０３は、領域データ２０７の中から写真の領域を特定し、入力画像２００中の同領域の画素情報を利用して、写真部分の切り出し画像データを生成する。または、グラフィックスデータ生成部２０３は、線画の領域を特定し、対応する画素塊データの画素形状情報からその輪郭を抽出し、直線・曲線パス近似による線画部分のベクトルデータを生成する。更に、グラフィックスデータ生成部２０３は、入力画像２００において文字・写真・線画といった前景部分の画素を、その周囲色で塗りつぶした画像データである、背景画像データを生成する。
【００２２】
文字認識部２０４は、領域データ２０７から文字の領域を特定し、さらに同領域に対応する画素塊データ２０６から文字の画素形状を二値画像として再構成する。そして、文字認識部２０４は、構成した二値画像に対して文字認識処理を行い、文字領域内の認識文字コード列を得る。さらに、文字認識部２０４は、これらの文字コード列と、電子文書上で利用可能なその他の情報を含む文字データ２０９を生成する。文字認識部２０４は、認識処理を正しく行う為に入力画像２００の天地方向を判別し、その方向が上以外の場合は、二値画像および領域情報を回転して文字認識処理を行うようにしてもよい。文字データ２０９は、文字認識結果の文字コード列のみではなく、各文字の座標情報、推定文字サイズやピッチ、行ピッチなど、文字認識処理に付随して推定された書式情報を含んでいてもよい。また、文字データ２０９は、文字画素塊データが有する色の情報を利用して推定された、各文字の色情報を含んでいてもよい。
【００２３】
電子文書記述生成部２０５は、領域データ２０７、グラフィックスデータ２０８、および文字データ２０９を入力として、それらを用途に合った形式になるよう選択・変形・合成し、出力となる出力電子文書２１０の記述を生成する。電子文書記述生成部２０５は、１つの入力画像２００に対し、１ページの出力電子文書を生成するようにしても、複数の入力画像に対し１のマルチページ電子文書が生成されるようにしてもよい。
【００２４】
［各処理部の動作］
続いて、図２の電子文書生成処理を構成する各処理部の詳細な動作例を順に説明していく。各処理部による処理は、画像処理装置１００が備えるＣＰＵ１０２が、記憶部であるメモリ１０３等に記憶されたプログラムを読み出し、実行することにより実現される。
【００２５】
（画素塊解析部による処理）
図３に、画素塊解析部２０１の動作例を説明するフローチャートを示す。
【００２６】
Ｓ３０１では、入力画像２００が画素塊解析部２０１へと入力される。ここで入力画像２００は、カラー画像であれば、各画素がＲＧＢ各々３つの８ｂｉｔ値で表現されるページサイズの画素集合として、メモリ１０３に展開した状態で入力されるものとする。なお、これはあくまで一例であって、グレー形式を含むＲＧＢ形式以外の色空間で表現されていてもよい。また、入力画像２００が圧縮画像のストリームとして入力され、画素塊解析部２０１がメモリ１０３にてＲＧＢ画素などとなるように展開してもよい。
【００２７】
Ｓ３０２では、画素塊解析部２０１は、入力画像２００の各画素に対し、減色処理を施した減色画像を生成する。この減色画像において各画素がとる値の範囲は、入力画像２００の画素値範囲以下の０〜Ｎ（Ｎ≧２）の値である。減色処理の方法自体については、本発明の本質と外れるので詳細な説明は省略する。しかし、減色後の画素値が白黒二値ではなく、元の入力画像２００に含まれる文字や線等の色特徴を保持する画素値を保持するよう処理することで、本発明の効果が発揮されることは留意すべきである。つまり、白黒二値のような２種類の画素値を有する画像でなく、３種類以上の画素値を有することが可能な画像を対象として本発明に係る処理を適用することが本発明の効果を得る前提となる。
【００２８】
このような減色処理の例としては、入力画像２００がＲＧＢ形式の場合、各画素をＲ、Ｇ、Ｂ各要素についてそれぞれ１２８未満か１２８以上であることを０、１で表現した３ｂｉｔで最大８色に減色する方法がある。また、各画素の輝度値Ｙを計算し、このＹを４段階に量子化することで減色する方法もある。また、画像の画素値ヒストグラムからＮ個の代表色を推定したうえで代表色にＩＤ値を付与し、各画素には最も近似する代表色のＩＤ値を割りあてる方法もある。
【００２９】
Ｓ３０３では、画素塊解析部２０１は、減色画像内で同じ画素値を持つ連結画素の集合に対し、公知のラベリング処理を行い、同一ラベルを持つ画素集合を画素塊として抽出する。これは、入力画像２００中で色が近似する連結画素塊を抽出することを意味する。この連結画素の判定には、上下左右とすべての斜め方向の隣接画素を考慮する８連結判定を用いることにする。８連結判定を用いたラベリング処理については、図４および図５を用いて後述する。
【００３０】
Ｓ３０４では、画素塊解析部２０１は、Ｓ３０３で生成した画素塊情報中の全画素塊を対象に、画素塊間の接触の有無を示す情報を保持するように、画素塊情報を更新する。具体的には、注目画素塊に対し、１）外接矩形が接するか重なる画素塊、２）さらに両画素塊のランの中に接触するランがある、の両条件に合致する画素塊のＩＤのリストを接触画素塊のリストとして登録する。これを全画素塊の組み合わせに対し実行する。なお、上記条件は一例であり、他の条件を用いても構わない。また、接触する画素塊を取得する処理は、Ｓ３０４のラベル付けのところで、接触ラベル間の関連づけを行っておくことで、より高速な接触関係の特定が可能である。しかし本処理の効率は発明の本質とは関係ないのでその説明は省略する。
【００３１】
Ｓ３０５では、画素塊解析部２０１は、画素塊情報中の全画素塊を対象に、ある画素塊が別の画素塊を含む、あるいは別画素塊に含まれることを示す包含情報を生成し、画素塊情報に追加する。なお、本例では２画素塊が包含関係にあることを次の条件で定義する簡易判定処理を行う。１）２画素塊間が接触しており、かつ、２）片方の画素塊の外接矩形が他方の画素塊の外接矩形を完全に包含する。これは包含判定時の処理量を軽減し処理時間を省くためである。なお、他の条件を用いることによって判定を行い、画素間の正確な包含判定を用いるようにしてもよい。
【００３２】
Ｓ３０６では、画素塊解析部２０１は、画素塊情報に追加された包含関係を、画素塊同士の親子関係とみなしたうえで、画像全体を祖先（ルート）とし、各画素塊をノードとする画素塊のツリー構造を生成する。なお、Ｓ３０５にて用いる処理条件では、親となる画素塊を持たない画素塊が存在する場合がある。その場合、当該画素塊が、接触関係にある画素塊の親と同じ親を持つようにツリー構造を生成する。また、親が複数ある画素塊が存在する場合があるが、その際は任意のひとつの親、例えば、階層の最も深い親とのみ親子関係を有すように構造を生成すればよい。Ｓ３０６で生成された画素塊ツリー構造と、各画素塊の情報とを合わせたものが、画素塊解析部２０１が生成する画素塊データ２０６となる。
【００３３】
（８連結判定によるラベリング処理）
Ｓ３０３にて行われる８連結判定によるラベリング処理の例を図４のフローチャートを用いて説明する。
【００３４】
Ｓ４０１では、画素塊解析部２０１は、ラベル値ｋを１に初期化する。Ｓ４０２では、画素塊解析部２０１は、減色画像の注目ラインにおいて、同一画素値が連続するランを現ランとして抽出する。最初は減色画像の最上ラインに注目し、その左端の画素から同じ画素値を持つ画素が右方向に連続する範囲をランとして抽出するものとする。抽出されたランは、始終点のｘ座標および注目ラインのｙ座標の組からなるラン情報として記憶される。なお、後述するように、同注目ラインでＳ４０２が再度処理される場合、処理済ランの右端の次の画素から始まるランを抽出する。
【００３５】
Ｓ４０３では、画素塊解析部２０１は、注目ラインのひとつ上のラインにすでに抽出されたランがあり、かつ現ランと画素値が連結しているものがあるかどうかを調べる。ここで８連結しているとは、ｙ座標＝ｋ、ｘ座標による始終点＝（ｓ，ｅ）の現ランに対し、ｙ座標ｋ−１、ｘ座標（ｓ−１，ｅ＋１）の範囲に１画素でも存在するランであり、かつ画素値が同一であることが条件である。なお、注目ラインが最上ラインの場合は、連結ランは常に存在しないこととなる。条件に合致する連結ランが無い場合は（Ｓ４０３にてＮＯ）、Ｓ４０４に進み、画素塊解析部２０１は、現ランに新規ラベルＬｋを付与する。続いてＳ４０５で、画素塊解析部２０１は、ラベル値ｋに対して＋１とする。一方、Ｓ４０３で条件に合致する連結ランが存在した場合（Ｓ４０３にてＹＥＳ）、Ｓ４０６に進む。
【００３６】
Ｓ４０６では、画素塊解析部２０１は、条件に合致する連結ランが複数で、かつ当該連結ランが複数のラベル種を有しているかどうかを調べる。複数のラベル種を有している場合は（Ｓ４０６にてＹＥＳ）、Ｓ４０７に進み、画素塊解析部２０１は、最初に検出された連結ランが有するラベルを現ランに付与する。更に、画素塊解析部２０１は、全連結ランが有するラベルが同一グループとみなされるよう、ラベル値間の関連付けを行う。一方、連結ランが単一の場合、あるいは複数の連結ランが同種のラベルを有している場合は（Ｓ４０６にてＮＯ）、Ｓ４０８に進み、画素塊解析部２０１は、連結ランが有するラベルを現ランに付与する。
【００３７】
Ｓ４０５、Ｓ４０８、Ｓ４０９の後、Ｓ４０９に進み、画素塊解析部２０１は、注目ラインに次のランが有るか否か、すなわち現ランの終点が画像右端でないかどうかを調べる。次のランがある場合（Ｓ４０９にてＹＥＳ）、画素塊解析部２０１は、そのランが抽出されるようにＳ４０２に進んで以降処理を繰り返す。注目ラインに次のランが無い場合（Ｓ４０９にてＮＯ）、Ｓ４１０に進む。
【００３８】
Ｓ４１０では、画素塊解析部２０１は、注目ラインが最終ラインかどうかを調べる。最終ラインではない場合（Ｓ４１０にてＮＯ）、Ｓ４１１に進み、画素塊解析部２０１は、次のラインに移動する。そして、Ｓ４０２に戻り、画素塊解析部２０１は、そのライン左端の画素から新たなランを抽出して以降の処理を繰り返す。注目ラインが最終ラインの場合は（Ｓ４１０にてＹＥＳ）、Ｓ４１２に進む。
【００３９】
Ｓ４１２では、画素塊解析部２０１は、ラベル値毎に、同ラベルが付与されたランの集合により構成される画素塊情報を作成する。このランの集合を構成する際には、Ｓ４０７で関連づけられた複数種類のラベル値を持つランがひとつの画素塊ラン情報に集められるよう処理される。最終的に生成される画素塊情報として、ひとつの画素塊は、識別の為のＩＤ、外接矩形情報、画素値、および画素塊に集められたラン情報の集合の組から成る。
【００４０】
（ラベリング処理の処理例）
図４のラベリング処理を適用した場合の処理例を図５に示す。図５（ａ）は処理対象となる減色画像の例であり、ひとつのマスが１画素を表す幅６×高さ３画素の画像で、各マス内の数値は画素値を示す。図５（ｂ）は図５（ａ）に対するラベリング処理の結果の例である。
【００４１】
ラベリング処理では、まず最上のライン（ｙ＝０のライン）に注目して、左端から始まる画素値３のラン５０１が抽出される。これより上にはラインが存在しないので連結ランは無く、ラン５０１には最初のラベルＬ１が与えられる。続く画素値１のラン５０２にも同様に新規ラベルＬ２が与えられる。
【００４２】
最上ラインにもう画素は無いので次のライン（ｙ＝１のライン）に移動し、画素値１のラン５１１が抽出される。上ライン（ｙ＝０のライン）にはラン５１１に連結する画素値１のランは無いので、ラン５１１には、新規ラベルＬ３が与えられる。次の画素値３のラン５１２は、上ライン（ｙ＝０のライン）に同値のラン５０１が存在する。連結ランはこのラン５０１だけなので、ラン５０１のラベルＬ１がラン５１２にも与えられる。続いて、画素値１のラン５１３が抽出され、同様に上ライン（ｙ＝０のライン）の連結ランであるラン５０２のラベルＬ２が与えられる。続いて画素値３のラン５１４が抽出され、連結ランが無いので、新規ラベルＬ４が与えられる。   ３ライン目（ｙ＝２のライン）に移動し、画素値１のラン５２１が抽出され、上の連結ランであるラン５１１のラベルＬ３が与えられる。続く画素値３のラン５２２は上ライン（ｙ＝１のライン）の連結ランとして、ラン５１２とラン５１４が存在する。かつ、ラン５１２とラン５１４のラベル値はそれぞれＬ１およびＬ４と異なるので、ラン５２２には連結ランのうち最初に検出されたラン５１２のラベルＬ１が与えられる。加えて、ラベルＬ１とラベルＬ４を同一ラベルとみなすための関連付け情報が生成される。最後に、画素値２のラン５２３が抽出され、新規ラベルＬ５が与えられる。
【００４３】
図５（ｃ）はラベル付けされたラン集合から生成される画素塊情報の例である。ＩＤ１の画素塊は、前述の関連付けに基づき、ラベルＬ１のラン５０１、５１２、５２２およびラベルＬ４のラン５１４の集まりとして構成されている。またその矩形範囲として（０，０）−（５，２）、および画素値３が記憶されている。ＩＤ２の画素塊は、ラベルＬ２のラン５０２およびラン５１３により構成される、矩形範囲（２，０）−（５，１）、および画素値１の画素塊である。以降、ＩＤ３、ＩＤ４も同様に示される。なお、一度画素塊情報が構成されれば、ランの集合を構成する際に使用されたラベルの情報Ｌｋは破棄してもよい。また、各ラン情報が持つ座標を、図５（ｃ）に記されるように各画素塊の外接矩形の左上を原点とするように再設定してもよい。
【００４４】
（画素塊解析部による処理結果の例）
図６に画素塊解析部２０１による処理結果の例を示す。図６（ａ）は画素塊解析部２０１に入力される減色画像の例である。図６（ｂ）は、図６（ａ）に示す減色画像から抽出された画素塊情報の例であり、かつＳ３０４で生成された画素塊の接触関係を矢印で示した図である。図６（ｃ）は、図６（ｂ）に示す画素塊情報の例において、Ｓ３０５で生成された包含関係を矢印で示した図である。この矢印は矢の先が子、元が親を示している。図６（ｄ）は、図６（ｂ）および図６（ｃ）から構成された画素塊ツリー情報の例である。図６（ｄ）の画素塊６０１は包含関係による親画素塊が存在しないため、接触している画素塊６０２が親とする画素塊を親とするようにツリー構造が構築されている。
【００４５】
なお、図３のフローチャートでは、画素塊解析処理により入力画像データ全体を一度に処理するように説明した。これに対し、入力画像データを複数部分に分け、各部分画像の入力と画素塊情報の抽出を繰り返しながら行っても構わない。例えば、特許文献３では、３２画素四方のタイルをひとつの処理単位とし、画像の左上から順に画像入力、量子化、タイル内画素塊であるｂｌｏｂの作成、を繰り返すよう処理する例が説明されている。この特許文献３による説明では更に、処理済タイルである上タイルおよび左タイルにあるｂｌｏｂを現タイルのｂｌｏｂと結合することで、結果的に入力画像２００と同じサイズも含む任意の大きさの画素塊生成している。この処理方法を適用することにより、本実施形態に係る画素塊データの生成処理に消費するメモリや処理時間を大幅に節約することも可能である。
【００４６】
（レイアウト解析部による処理）
続いて、レイアウト解析部２０２の処理を、図７のフローチャートを用いて説明する。本処理では、メモリ１０３上の画素塊データ２０６を入力とし、文字、線画、自然画、表といった文書領域間の構造に基づいた、領域データ２０７をメモリ１０３上に構成していく。
【００４７】
Ｓ７０１では、レイアウト解析部２０２は、入力である画素塊データ２０６中の各画素塊を、文字候補画素塊とそれ以外の画素塊に分類する。画素塊が文字候補であるか否かの分類は、公知の文書画像解析技術で利用されている文字画素塊判定方法を用いればよい。例えば、画素塊の外接矩形サイズを利用し、予め定められた高さおよび幅の範囲に収まるものを文字候補とする方法がある。
【００４８】
本例においては、文字とみなす大きさを６ポイントから５０ポイントまでとし、入力画像２００の解像度から換算したＴｍｉｎ〜Ｔｍａｘの画素数に、画素塊の幅あるいは高さが収まるものを文字候補とする。ここでサイズに下限を設けることは、文字内部から抽出される背景相当の小画素塊を文字候補に含めないようにする効果がある。文字候補の判定条件に、更に画素の密度や比率、画素色などを加えてもよい。また大きさの閾値は、入力画像２００から実際抽出された画素塊の集合より幅・高さの頻度情報を得て、動的に定めるようにしてもよい。
【００４９】
Ｓ７０２では、レイアウト解析部２０２は、Ｓ７０１で分類された文字候補の画素塊に対し、互いに近傍にあるものに対するグループ化を行う。近傍であるか否かの判定は、画素塊の外接矩形座標間のユークリッド距離を計算し、予め定められた閾値以下であることで判定することができる。これはあくまで一例であり、距離計算にシティブロック距離など別の計算方法を用いてもよい。また、複数の文字は行をなして記述され、一般に行内の文字間隔は行間隔より狭いことから、小さい距離閾値で文字行をなす文字候補画素塊をグループ化し、さらに大きな距離閾値で複数の文字行をグループ化するようにしてもよい。なお、本グループ化処理では、画素塊ツリー構造において同じ親を持つ文字候補画素塊同士のみがグループ化の対象になるものとする。これは、近傍計算の対象となる画素塊の組み合わせを減らし、処理を高速化するためである。
【００５０】
Ｓ７０３では、レイアウト解析部２０２は、Ｓ７０２でグループ化された文字候補画素塊の集合が、実際に文字集合であるか否かの判定をグループ毎に行う。そして、レイアウト解析部２０２は、文字集合であるとされたグループの画素塊の存在範囲をそれぞれ文字領域として特定する。そして特定された領域それぞれに対し、領域の座標と対応画素塊への関連付け情報を含む領域情報が、領域データ２０７の構成要素として記憶される。すなわち、文字領域に対しては、グループ化された文字候補画素集合への関連付け情報と、同画素塊を囲む外接矩形座標情報とが文字領域情報として記憶される。
【００５１】
文字集合であるか否かの判定は、例えば、グループを含む矩形範囲で文字候補画素塊の射影を縦横に求め、文字列としての整列性を示すか否かで判断する方法がある。具体的には、横書きならば水平の射影、縦書きならば垂直の射影において、行部分には山、行間には谷となる頻度分布が観測されるものは文字領域の可能性が高いと判断できる。さらに、文字同士は斜体などの例外を除き、互いの外接矩形が大きく重複することは少ない。したがって、他の画素塊と大きな重複がないことも、文字領域か否かの判定の有効な手段となる。ただし、漢字などで１つの文字が複数の重複する画素塊に分割されているケースを除くために、重複判定を一定以上の大きさの画素塊間のみに制限することが効果的である。
【００５２】
なお、文字領域として特定されたあとに、同領域内にある別の画素塊を文字候補画素塊の集合に追加してもよい。例えば、句読点や文字内の独立点部分の画素塊は、サイズ制限により文字候補画素塊に選出されていない可能性が高い。これら文字候補画素塊に含めるために、既に文字候補である画素塊と同色で近傍にある小サイズの画素塊を追加する処理を行ってもよい。
【００５３】
Ｓ７０４では、レイアウト解析部２０２は、Ｓ７０１で文字候補以外に分類された画素塊から、線画・表枠候補の画素塊を選出する。線画・表枠候補か否かの判定は、文字候補以上の大きさであり、かつ画素塊の存在範囲全体に対する画素密度が低いことにより判断できる。
【００５４】
Ｓ７０５では、レイアウト解析部２０２は、Ｓ７０４で線画・表枠候補とされた画素塊に対し、表枠であるか否かの判定を行い、表枠と判定された画素塊の存在領域を、表領域として特定する。そして、レイアウト解析部２０２は、対応する表枠の画素塊への関連付け情報と、同画素塊の外接矩形座標を含む領域情報とを、表領域情報として領域データ２０７に記憶する。
【００５５】
表領域情報表枠か否かの判定は、例えば、画素塊の存在範囲において、画素塊のラン情報から縦横の画素ヒストグラムを計算し、その形状から判定を行えばよい。つまり画素塊が表枠に相当するものであれば、縦横の表外枠および罫線の存在する部分に、複数の鋭いピークがヒストグラム上に発生することを利用する。これらを検出することで、表枠かどうかの判定を行うことができる。あるいは、表枠画素塊の子に相当する画素塊の集合により判断することもできる。表枠の子となる画素塊は、表内の枠領域に相当するため、子領域すべてが矩形形状であり、かつ重なりなく整列していることは、表枠であることの有効な判断手段となる。
【００５６】
Ｓ７０６では、レイアウト解析部２０２は、Ｓ７０４で線画・表枠候補とされ、かつＳ７０５で表枠と判定されなかった画素塊の存在領域を、線画領域として特定する。そして、レイアウト解析部２０２は、対応する線画の画素塊への関連付け情報と、同画素塊の外接矩形座標を含む領域情報とを、線画領域情報として領域データ２０７に記憶する。このとき、線画と判定された画素塊の近傍にある画素塊をグループ化した範囲を線画領域としてもよい。
【００５７】
Ｓ７０７では、レイアウト解析部２０２は、ここまでに記憶されたどの領域にも対応しない画素塊の中から、写真等の自然画領域と判定される画素塊、もしくは画素塊の集合を選出し、その存在領域を自然画領域情報として記憶する。そして、レイアウト解析部２０２は、対応する画素塊集合への関連付け情報と、同画素塊の存在範囲の座標を含む領域情報とを、自然画領域情報として領域データ２０７に記憶する。
【００５８】
自然画領域か否かの判定は、複数色の画素塊が重複、あるいは包含されるように存在しており、かつそれら画素塊の集合が一定の大きさ内の矩形を構成しているものを、矩形状の写真に相当する自然画領域と判定することにする。この判定はあくまで一例であって、任意形状の画素塊集合を対象にしてもよい。
【００５９】
Ｓ７０８では、レイアウト解析部２０２は、ここまでに記憶されたどの領域にも対応しない画素塊の中から、一定以上の密度および面積を持つ画素塊を、フラット領域として記憶する。無地のページ全体を占める領域、文字や図の背景などで意味的なまとまりを持たせるために着色された色背景領域や、表内セルの背景などがこのフラット領域に相当する。
【００６０】
Ｓ７０９では、レイアウト解析部２０２は、Ｓ７０８までに領域データ２０７に記憶されている各々領域をノードとし、その相対関係を表現する領域ツリーを構成する。領域ツリーの起点には、入力画像全体範囲に相当する特殊なルートノードを配置する。そして、領域ツリーのノード間の親子関係は、画素塊ツリーにおいて各領域に対応する画素塊ノードが持つ親子関係と一致するようにする。ツリー構造を構成するための具体的処理としては、各領域データに親領域へのリンク情報、および子領域へのリンク情報のリストを付与することでツリー構造を構成する。
【００６１】
（レイアウト解析部による処理結果の例）
図７のフローチャートにより説明した、レイアウト解析部２０２における処理の結果の例を、図９を用いて説明する。図９（ａ）は、画素塊解析部２０１により減色され、画素塊に分解される文書画像の例である。図９（ｂ）は、図９（ａ）に示す文書画像において抽出された画素塊を、画素塊ツリー構造で表現した例図である。図９（ａ）、（ｂ）において、画素塊９０１、９０２、９０３はそれぞれ元画像において文字に相当する画素塊の集合である。画素塊９０４〜９０７は、表を構成する画素塊である。画素塊９０８は星型の線画に相当する画素塊である。画素塊９０９、９１０は写真に相当する画素塊である。なお図９では、文字内部の小さな画素塊に関しては記載を省略している。
【００６２】
図９（ｂ）において、矢印は包含関係に基づく親子関係を示している。例えば、表を構成する画素塊９０４〜９０７において、画素塊９０５は表の左側枠内の単色背景領域である。画素塊９０５は内部に２つの文字の領域である画素塊９０２を包含するので、両者は親子関係となる。一方、表の右側枠内の背景領域は、上下に異なる色の画素塊９０６、９０７に分かれている。その結果、文字の画素塊９０３はどちらの画素塊にも包含されないので、それらの親となる表枠の画素塊９０４の直接の子となる。こういったケースはオリジナルの入力画像が元々そのように色分けされている場合の他、ノイズや減色処理を要因に、単色領域が意図せず過分割されて生ずることもある。いずれにせよカラーの画素塊構造抽出処理において普遍的に発生するケースであることを考慮すべきである。
【００６３】
図９（ｃ）は、図９（ｂ）の画素塊ツリーから生成される領域ツリーの例であり、その生成過程を図７のフローチャートのＳ７０１〜Ｓ７０９に従って以下説明する。まずＳ７０１〜Ｓ７０３にて、レイアウト解析部２０２は、画素塊９０１、９０２、９０３の３つの画素塊グループが文字候補画素塊として選出する。そして、レイアウト解析部２０２は、文字領域の判定条件を満たす、各存在範囲が文字領域として子領域ノード９２１、９２２、９２３を記憶する。
【００６４】
Ｓ７０４で、レイアウト解析部２０２は、画素塊９０４、９０８を線画・表枠候補として選出する。Ｓ７０５では、レイアウト解析部２０２は、画素塊９０４を表枠と判定し、表領域として子領域ノード９２４を記憶する。Ｓ７０６では、レイアウト解析部２０２は、画素塊９０８を線画と判定し、線画領域として子領域ノード９２８を記憶する。
【００６５】
Ｓ７０７で、レイアウト解析部２０２は、画素塊９０９、９１０が自然画領域を構成すると判定し、自然画領域として子領域ノード９２９を記憶する。Ｓ７０８では、レイアウト解析部２０２は、残る画素塊９００、９０５、９０６、９０７をいずれもフラット領域として記憶する。そしてＳ７０９にて、レイアウト解析部２０２は、各領域をノードとし、各々対応する画素塊ツリーの親子構造を反映した領域ツリー構造を生成する。図９（ｃ）において、線で結ばれる領域は親子関係を持つ。
【００６６】
（グラフィックスデータ生成部による処理）
続いて、グラフィックスデータ生成部２０３の処理を説明する。グラフィックスデータ生成部２０３は、領域データ２０７に含まれる各領域をグラフィックスオブジェクトとして表現する為のグラフィックスデータ２０８を生成する。ここで生成されるデータは、後述の電子文書記述生成部２０５において、各領域の内容をオブジェクトとして記述する際に利用される。以下、グラフィックスデータ生成部２０３の処理を図８のフローチャートを用いて説明する。
【００６７】
Ｓ８０１では、グラフィックスデータ生成部２０３は、出力電子文書２１０において、線図形部分のオブジェクトをグラフィックスで表現するためのベクトルデータを生成する。本例におけるベクトルデータの生成対象領域は、入力となる領域データ２０７中に存在する線画領域、および表領域とする。生成されたベクトルデータは、領域データ２０７中の対応する領域ノードに関連付けられたうえで、メモリ１０３あるいはハードディスク１０４に保存される。ベクトルデータ生成には、対象領域に関連付けられた画素塊の輪郭情報から、公知のベクトル化手法、すなわち直線、曲線パス近似手法を用いるものとする。各画素塊から生成されるパスの塗り色には、画素塊に関連付けられた色情報を設定するものとする。
【００６８】
Ｓ８０２では、グラフィックスデータ生成部２０３は、出力電子文書２１０において、ベクトル化対象外の領域を表現するための、切り出し画像データを生成する。本例における切り出し画像データ生成領域は、領域データ２０７中に存在する自然画像の領域（自然画領域）とする。切り出された画像データは、領域データ２０７中の対応する領域ノードに関連付けられたうえで、メモリ１０３あるいはハードディスク１０４に保存される。ここで切り出し処理とは、入力画像２００を参照し、対象範囲の画素のみからなる同サイズの画像データを生成する処理である。切り出された画像データはＪＰＥＧ等の公知の圧縮技術で圧縮してもよい。
【００６９】
Ｓ８０３では、グラフィックスデータ生成部２０３は、出力電子文書２１０において、背景に用いられる背景画像データを生成する。生成された背景画像データは領域データ２０７のルートノードに関連づけられて、メモリ１０３もしくはハードディスク１０４に保存される。
【００７０】
背景画像とは、Ｓ８０１、Ｓ８０２で生成されるベクトルデータや切り出し画像データを前景データとして、当該背景画像に重ねて描画することで、出力電子文書２１０が入力画像２００と同等の見た目を有するように用意されるものである。背景画像データに対しては、前景データが存在する領域の画素情報を入力画像２００から消去する処理を行う。
【００７１】
画素情報の消去には、合成した出力電子文書２１０において、データが二重に見えるのを防ぐ効果がある。あるいは重畳により隠れてしまう領域に存在する無駄な画素情報を無くすことで圧縮効率を上げ、出力電子文書をコンパクトにする効果がある。画素情報の消去は、例えば、対象領域の矩形範囲をその周囲色で一様に塗り潰す方法がある。なお、対象領域が線図形領域の場合、線部分に相当する画素のみを、その近傍の画素色で塗り潰すようにすれば、線部分以外にあたる部分の色情報を背景情報に残すこともできる。
【００７２】
なお、Ｓ８０１およびＳ８０２において、どの種類の領域に対しベクトル化処理または画像切り出し処理を行うかは上述した例に限るものではない。例えば、線画、表領域に対し画像切り処理を行うようにしてもよい。また、ベクトル化対象領域に文字領域を加えてもよい。これらの対象選択は、電子文書生成処理の制御項目として、処理対象領域種類を外部指示により設定できるようにしてもよい。また、生成される電子文書の形式が複数あり、それぞれ別の用途がある場合、各用途に適したデータ形式を領域種別毎に変えられるようにしてもよい。
【００７３】
また、Ｓ８０３の背景画像データ生成時に、どの種類の領域に対して画素情報の消去処理を行うかを、電子文書生成処理の制御項目として設定するようにしてもよいし、生成電子文書の形式に合わせて変えられるようにしてもよい。また、文字領域がベクトル化対象ではない場合にも、後述の文字認識部２０４の処理において、文字データ２０９が出力される場合には、文字画素が除去されるように背景データが生成されるようにしてもよい。
【００７４】
図９に、図９（ａ）の入力画像の例に対し生成される背景データの例を示す。図９（ａ）中のすなわち文字領域である画素塊９０１〜９０３、線画領域である画素塊９０８、および表枠領域である画素塊９０４の線図形部分画素が周辺の画素色で塗りつぶされている。また、自然画領域である画素塊９０９の矩形範囲が周辺の画素色で塗りつぶされている。
【００７５】
（文字認識部による処理）
文字認識部２０４の処理を、図１０のフローチャートを用いて説明する。Ｓ１００１では、文字認識部２０４は、文字認識処理に入力する文字画像を生成する。本説明では、文字認識処理において、文字を含む二値画像を入力とすることを前提とし、各文字領域の２値画像を生成する。文字領域の二値画像とは、領域内の文字画素を１、それ以外を０とする、入力画像と同じ画素数の二値画像である。実際の処理では、レイアウト解析部２０２が生成した領域データ２０７中の各文字領域に対し、同領域内に存在する画素塊情報を画素塊解析部２０１が生成した画素塊データ２０６から読み出す。そして、各画素塊が持つラン部分が１、それ以外が０になるように、入力画像２００と等サイズの画像を生成する。
【００７６】
Ｓ１００２では、文字認識部２０４は、入力された文字入りの文書画像が正置されていない、すなわち入力画像２００内に書かれた文字の上方向が９０°、１８０°、２７０°である可能性を想定する。そして、文字認識部２０４は、それらを正しい向きに補正するために必要な回転角を判別する方向判別処理を行う。
【００７７】
ここでの方向判別処理は、Ｓ１００１で生成した二値画像を利用して公知の手法で行う。方向判別処理の手法は本発明の本質とは異なるため詳細は省略する。なお、方向判別処理の一例として、画像中のいくつかの文字を０°のほか、９０°、１８０°、２７０°に回転した状態で計４方向に認識し、その際の認識スコアが最も高い方向を正しい方向と判断する方法が挙げられる。
【００７８】
Ｓ１００３では、文字認識部２０４は、Ｓ１００２で得られた、必要な回転角が０°かどうかを調べる。必要な回転角が０°、すなわち回転の必要が無い場合には（Ｓ１００３にてＹＥＳ）、Ｓ１００６に進む。９０°、１８０°、２７０°いずれかの回転が必要な場合には（Ｓ１００３にてＮＯ）、Ｓ１００４に進む。
【００７９】
Ｓ１００４では、文字認識部２０４は、Ｓ１００１で生成した二値画像を、Ｓ１００２で得られた必要回転角度分だけ回転する。Ｓ１００５では、文字認識部２０４は、Ｓ１００２で得られた回転角を領域データ２０７に回転情報として付加する。
【００８０】
Ｓ１００６では、文字認識部２０４は、回転された二値画像および文字領域情報を利用して、各文字領域内に公知の文字認識処理を実行し、文字コード列を含む文字認識結果を得る。なお、回転角が０°以外の場合は、文字認識処理に指定する領域情報も、回転された二値画像上での領域に一致するように回転されたものとする。文字認識結果は、文字領域情報、行情報、および認識文字情報で構成される。文字領域情報は、位置情報として文字が存在する範囲の座標と、認識された文字行数の情報を含む。行情報は、各行の行内文字数の情報を含む。認識文字情報は、各文字に対して認識された文字コードと、文字の外接矩形座標の情報とを含む。認識文字情報には、文字認識処理により付加的に得られた各文字の情報を追加してもよい。例えば、行内の文字平均高さやピッチから推定される文字サイズや、太字、斜体、下線といった文字修飾情報やフォント種類などを付加してもよい。
【００８１】
Ｓ１００７では、文字認識部２０４は、Ｓ１００６で出力された文字認識結果の各文字に色情報を付加する。本処理では、画素塊データ２０６に保持されている、各画素塊の外接矩形座標と、画素値すなわち画素塊の色情報とを利用する。ただし、文字認識処理は二値画像を文字領域単位で指定して行われており、文字認識処理の結果である文字単位は、画素塊データ２０６の画素塊と関連づけられていない。
【００８２】
（色情報付加処理）
文字認識部２０４によるＳ１００７の処理を図１２のフローチャートを用いて説明する。Ｓ１２０１では、文字認識部２０４は、領域データ２０７の文字領域に属する画素塊データ２０６から未処理画素塊一つを処理対象Ｃとして選択する。このとき、文字認識部２０４は、文字データ２０９の処理情報をクリアする。画素塊データに対する処理順序は、画素塊データの処理方法や原稿の入力方向などにより異なるため、不定、つまり文字の読み順であることを前提としない。なお、領域データ２０７に０°以外の回転角が付与されている場合は、処理対象の画素塊Ｃに対する以下のステップの処理において、回転角により回転された座標を用いる。これにより、入力画像の方向と文字認識処理時の正置方向が異なる場合に、両者から得られたデータの不一致を解消することができる。
【００８３】
Ｓ１２０２では、文字認識部２０４は、文字データ２０９から未処理文字の一つを処理対象Ｏとして選択する。Ｓ１２０３では、文字認識部２０４は、画素塊Ｃと文字データＯの領域の外接矩形の重なりを判定する。ＣとＯの領域の外接矩形が重なれば（Ｓ１２０３にてＹＥＳ）、Ｓ１２０４へ進む。ＣとＯの領域の外接矩形が重ならない場合は（Ｓ１２０３にてＮＯ）、Ｓ１２０２へ進み、文字認識部２０４は、次の未処理文字データを処理対象Ｏとする。
【００８４】
Ｓ１２０４では、文字認識部２０４は、既に文字Ｏに画素塊Ｃが関連付けられているかを判断する。関連付けられていなければ（Ｓ１２０４にてＮＯ）、Ｓ１２０６へ進む。関連付けられていれば（Ｓ１２０４にてＹＥＳ）、文字認識部２０４は、画素塊Ｃを文字Ｏの関連画素塊Ｏｃとして、Ｓ１２０５へ進む。ここで、文字と画素塊とが関連付けられているかの判定は、当該文字に色情報が付加されているかで判断することができる。
【００８５】
Ｓ１２０５では、文字認識部２０４は、既に文字Ｏに関連づけられた画素塊Ｏｃと文字Ｏの重なりの面積が近似するかを判定する。ここでは、文字認識部２０４は、既に文字Ｏに関連づけられた画素Ｏｃと文字Ｏの重なりの面積と、画素塊Ｃと文字Ｏの重なりの面積の大きさを判定する。あるいは単に画素塊Ｃと文字Ｏの重なりの大きさと文字Ｏの面積の近さ、つまり画素塊Ｃが文字Ｏをカバーする面積の広さにより判定しても良い。
【００８６】
本工程は、小領域を無視することで文字矩形内に存在するノイズの色の付加を防ぐ目的と、より正確な色情報を持つ画素塊と関連づける効果がある。先に説明した様に、文字画素塊と文字は一対一で対応するとは限らない。例えば偏と旁からなる漢字では偏と旁でそれぞれ一つの画素塊が形成される。偏と旁が同色であれば、どちらの色情報を用いても構わないが、インクの滲みやスキャナの光学解像度の問題から文字輪郭部の色味は一般的に異なる。そのため、小さい画素塊では輪郭部の占める面積が大きくなり不正確な色情報が抽出される可能性が高い。よって、面積を比較することで、より正確な色情報を持つと推定される画素塊を選択する。面積が近似していれば（Ｓ１２０５にてＹＥＳ）Ｓ１２０６へ進む。面積が近似していない場合は（Ｓ１２０５にてＮＯ）、Ｓ１２０２へ進み、文字認識部２０４は、次の未処理文字データを処理対象Ｏとする。
【００８７】
Ｓ１２０６では、文字認識部２０４は、文字Ｏに対して、関連付けられた画素塊Ｃの色情報を付加する。本実施形態では、文字Ｏの関連画素塊Ｏｃとして画素塊Ｃを関連付けることで、文字Ｏに対する関連画素塊Ｏｃの色情報を参照可能とする。その後、Ｓ１２０７へ進む。
【００８８】
Ｓ１２０７では、文字認識部２０４は、文字データ２０９の全文字に対して処理が終了したかを判定する。処理が終了していれば（Ｓ１２０７にてＹＥＳ）Ｓ１２０８へ進む。未処理の文字データがあれば（Ｓ１２０７にてＮＯ）、Ｓ１２０２へ進み、文字認識部２０４は、次の未処理文字データを処理対象Ｏとする。
【００８９】
Ｓ１２０８では、文字認識部２０４は、画素塊データ２０６の全画素塊データに対して処理が終了したかを判定する。未処理画素塊データがあれば（Ｓ１２０８にてＮＯ）、Ｓ１２０１へ進み、文字認識部２０４は、次の未処理画素塊データを処理対象Ｃとする。全画素塊に対して処理が終了していれば（Ｓ１２０８にてＹＥＳ）、Ｓ１２０９へ進む。
【００９０】
Ｓ１２０９では、文字認識部２０４は、色情報のない文字データに対する色付け処理を行う。文字認識部２０４の出力する文字データは画素塊を元にしているため、出力される文字データには一致する画素塊が存在するが、空白などの不可視文字を認識する場合は例外的に一致する画素塊が存在しない。前の文字が存在すれば、文字認識部２０４は、前の文字と同一の文字色を色情報に付加する。前の文字が存在しない場合は、文字認識部２０４は、後ろの文字の色情報を参照し、存在しない場合はさらに後方の文字を辿り、文字色が存在した時点での文字色を付加する。この処理を色情報のない文字データ全てに行うことで、全ての空白文字に、前、あるいは後方の文字列の色情報が付けられる。なお、本実施形態では、前の文字の色を優先的に付加したが、後ろの文字の色を優先的に付加してもよい。
【００９１】
（色情報付加処理の処理結果の例）
以下、入力される文字領域の例として図１１を用い、図１２のフローチャートの処理を説明する。図１１（ａ）は文字領域の例であり、“ａｂ  ｃ”、“１２３”、“ｉｆ”の３行からなる８つの文字とスペース（空白文字）とを含んでいる。ここで、“ａｂ  ｃ”は黒色、“１２３”が赤色、“ｉｆ”が青色であるとする。なお、１行目の“ａｂ”と“ｃ”の間にはスペースが含まれているものとする。
【００９２】
図１１（ｂ）は、図１１（ａ）を文字認識した結果の例である。本例では、文字Ｏ０１から文字Ｏ０９まで９文字の文字コード情報と矩形座標情報、推定文字サイズ、そして行情報が認識されている。なお、文字認識は二値の情報を元に行われるため、色情報は付加されていない。
【００９３】
図１１（ｃ）は、文字領域に対して画素塊解析部２０１より得られた画素塊データ２０６の例である。Ｃ０１からＣ０９で表した９個の画素塊と、それぞれの外接矩形座標、そして色情報が格納されている。本例では色情報の表記を赤成分４ｂｉｔ、緑成分４ｂｉｔ、青成分４ｂｉｔの３桁の１６進数ＲＧＢ表記を用いる。このとき、色情報の値は、黒色なら“＃０００”、赤色なら“＃Ｆ００”、青色なら“＃００Ｆ”となる。画素塊データは、先に説明した通り画素の連結からなるため、文字認識結果と領域が異なる。例えば、文字認識結果でスペースと認識された部分に対して画素塊は存在しない。
【００９４】
また、図１３（ａ）で示す通り、文字Ｏ０８の文字矩形が実線１３００で囲まれた一つの領域であるのに対し、画素塊は破線１３０１と破線１３０２で囲まれたＣ０７、Ｃ０８の二つの領域に分割される。また、Ｃ０７の画素塊の色情報が実際は青色を表す“＃００Ｆ”であるにも関わらず、文字の滲み、あるいはスキャン解像度によって、“＃３３Ｆ”として得られている。文字の滲み、スキャン解像度による色の誤差については図１４を用いて説明をする。
【００９５】
図１４（ａ）は、図１１（ａ）の文字“ｉ”のスキャン画像を拡大した図である。３×３の小領域からなる領域１４０１は、色滲みとスキャン解像度の影響により、本来の色よりも淡色で得られている。領域１４０２は領域１４０１と比較してより大きい領域であるため、色の滲みやスキャン解像度の影響を受けている領域が少ない。
【００９６】
図１４（ｂ）は、図１４（ａ）に対して減色処理（Ｓ３０２）を行った結果を図示したものである。減色処理により領域１４０１の画素塊は本来の色より淡色にまとめられている。
【００９７】
続いて、図１２のフローチャートに沿って、図１１に示す情報に対する色情報付加処理を具体的に説明する。
【００９８】
Ｓ１２０１で、図１１（ｃ）に示す画素塊Ｃ０１が選択されたとする。Ｓ１２０２では図１１（ｂ）に示す未処理の文字Ｏ０１が選択され、Ｓ１２０３で外接矩形の重なりの判定が行われる。このとき、画素塊Ｃ０１の外接矩形は、文字Ｏ０１の外接矩形に内包されており、重なっていると判定され、Ｓ１２０４に進む。ここで文字Ｏ０１には色情報が未付加であるためＳ１２０６へ進み、文字Ｃ０１と関連付けられ、画素塊Ｃ０１の色情報“＃０００”が文字Ｏ０１の色情報として参照可能となる。同様の処理により、画素塊Ｃ０２と文字Ｏ０２、画素塊Ｃ０３と文字Ｏ０４、画素塊Ｃ０４と文字Ｏ０５、画素塊Ｃ０５と文字Ｏ０６、画素塊Ｃ０６と文字Ｏ０７、画素塊Ｃ０７と文字Ｏ０８がそれぞれ関連付けられる。
【００９９】
次にＳ１２０１で画素塊Ｃ０８が選択され、Ｓ１２０２で文字Ｏ０８が選択され、Ｓ１２０３へ進んだとする。この時、画素塊Ｃ０８の外接矩形と文字Ｏ０８の外接矩形が重なるため、Ｓ１２０４へ進む。Ｓ１２０４では、文字Ｏ０８に既に画素塊Ｃ０７が関連付けられているため、Ｓ１２０５へ進む。Ｓ１２０５では、既に関連づけられている画素塊Ｃ０７と文字Ｏ０８の重なっている面積の差を比較する。
【０１００】
画素塊Ｃ０７は、全領域が文字Ｏ０８に内包されており、重なりの面積は、図１３（ａ）の領域１３１１で示す画素塊Ｃ０７の面積、つまり３×３＝９となる。一方、画素塊Ｃ０８と文字Ｏ０８においては、画素塊Ｃ０８は全領域が文字Ｏ０８に内包されており、図１３（ａ）の領域１３１２で示す矩形面積７×１３＝９１となる。この場合、画素塊Ｃ０８の方がより文字Ｏ０８に近いと判定され、Ｓ１２０６にて、画素塊Ｃ０８と文字Ｏ０８とが関連づけられる。これにより、文字Ｏ０８の色情報が、画素塊Ｃ０７の“＃３３Ｆ”から、Ｃ０８の“＃００Ｆ”に変更される。
【０１０１】
続けてＳ１２０１へ進み、画素塊Ｃ０９と文字Ｏ０９が関連づけられる。全ての画素塊に対して処理が終わり、Ｓ１２０９へ進む。図１３（ｂ）は、この時点での文字データに対する色情報の値である。文字Ｏ０３は空白文字（スペース）であるため、対応する画素塊がなく、色が付加されていない。Ｓ１２０９では、文字認識部２０４は、色情報が未付加の文字Ｏ０３に対して前後の色情報を付加する。前の文字Ｏ０２に色情報＃０００が付加されているため、文字認識部２０４は、Ｏ０３に対しても“＃０００”を付加し、処理を終了する。文字認識部２０４の全処理を終了したあとの文字データの例を図１３（ｃ）に示す。
【０１０２】
Ｓ１２０５の処理を行わない場合は、Ｃ０７とＣ０８のどちらの色がＯ０８に付加されるかは不定であるため、本来の色ではないＣ０７の“＃３３Ｆ”が付加されることがある。
【０１０３】
（電子文書記述生成部による処理）
電子文書記述生成部２０５の処理を図１５のフローチャートを用いて説明する。Ｓ１５０１では、電子文書記述生成部２０５は、出力電子文書２１０の開始部分を記述するデータを出力する。なお、本説明では、出力先はメモリ１０３あるいはハードディスク１０４に確保された出力バッファである。以降、処理でデータが出力される毎に、その内容は出力バッファ内に出力済のデータの末尾へと追加されるよう記憶されていくものとする。
【０１０４】
Ｓ１５０２では、電子文書記述生成部２０５は、出力電子文書２１０において、ページの開始部分を記述するデータを出力する。なお、本実施形態に係る電子文書生成処理では、ひとつの入力画像の内容を出力電子文書２１０の１ページに対応させるものとする。Ｓ１５０３では、電子文書記述生成部２０５は、領域データ２０７内におけるルートノードを最初の処理対象となる注目ノードに設定する。
【０１０５】
Ｓ１５０４では、電子文書記述生成部２０５は、注目ノードが出力対象領域であるかどうかを調べる。出力対象領域である場合は（Ｓ１５０４にてＹＥＳ）、Ｓ１５０５に進む。出力対象領域では無い場合は（Ｓ１５０４にてＮＯ）、Ｓ１５０６に進む。ここで注目ノードが出力対象領域か否かは、電子文書記述生成部２０５に設定された定義テーブルに基づいて判断される。この定義テーブルには、前背景、文字、線画、自然画、表の領域種別毎に、出力の有無および方式（データ形式）が定義される。
【０１０６】
図１６に出力対象領域の定義テーブルの一例を示す。図１６では、定義１６０１と定義１６０２の２種類の定義テーブルが定められている。どちらのテーブルを用いるかは、本電子文書生成処理に予め指示されていてもよいし、入力内容によって電子文書生成処理内で自動選択するようになっていてもよい。
【０１０７】
Ｓ１５０５では、電子文書記述生成部２０５は、注目ノードに対し、領域に対応づけられているグラフィックスデータ２０８もしくは文字データ２０９を出力する。なお、領域データ２０７に対し、図１０のＳ１００５にて、０°以外の回転角情報が付与されている場合がある。これは、入力画像２００の向きが、文字が読める正置方向と異なる場合に相当する。図１０で説明したように、このとき領域に対応づけられている文字データは、正置方向に回転された二値画像から得られたものであり、正置方向の座標を有する。一方、グラフィックスデータ２０８は、入力画像２００から得た、正置とは異なる方向の座標を有する。これらの不一致を解消する為に、グラフィックスデータ２０８に対しては、座標を正置方向へと回転したデータを出力するものとする。
【０１０８】
Ｓ１５０６では、電子文書記述生成部２０５は、注目ノードの次に出力処理が行われるべきノードである、次ノードを取得する。Ｓ１５０７では、電子文書記述生成部２０５は、Ｓ１５０６で次ノードが取得できたか否かを判定する。次ノードが取得できた場合は（Ｓ１５０７にてＹＥＳ）、Ｓ１５０８に進み、取得できなかった場合は（Ｓ１５０７にてＮＯ）、Ｓ１５０９に進む。Ｓ１５０８では、電子文書記述生成部２０５は、Ｓ１５０６で取得した次ノードを新たな注目ノードとしてＳ１５０４に戻り、以降の処理を繰り返す。Ｓ１５０９では、電子文書記述生成部２０５は、領域データにさらに出力すべき領域のノードが無い、すなわち出力１ページぶんのデータ記述が終了したとして、ページの終端データを出力する。
【０１０９】
Ｓ１５１０では、電子文書記述生成部２０５は、追加のページがあるか否かを調べる。追加のページは、電子文書生成処理が複数ページの電子文書を出力するよう動作している場合、追加の画像が入力された際に発生する。追加のページがある場合は（Ｓ１５１０にてＹＥＳ）、電子文書記述生成部２０５は、Ｓ１５０２に戻って、以降の処理を繰り返す。追加のページが無い、すなわちこれ以上画像が入力されない場合は（Ｓ１５１０にてＮＯ）、Ｓ１５１１へ進む。
【０１１０】
Ｓ１５１１では、電子文書記述生成部２０５は、電子文書データにおける終端データを出力する。終端データの出力により完結した電子文書データが出力バッファ上に構成される。Ｓ１５１２では、電子文書記述生成部２０５は、出力バッファ上の電子文書データを出力電子文書２１０として利用者が予め指定したＰＣ等に送信し、電子文書生成処理を終了する。
【０１１１】
なお本説明では、電子文書データの全体を出力バッファに書き出すように処理したが、より小さい出力バッファサイズで処理できるようにしてもよい。例えば、各ページの終端データを出力した時点で同ページの内容を指定送信先に送信し、次ページの内容は再び出力バッファの先頭からデータを書き出すようにしてもよい。あるいはより小さい単位で出力バッファへの書き出しと送信、クリアを繰り返すようにしてもよい。
【０１１２】
（電子ファイルの変換例）
図１７は、図１３の文字認識結果を電子文書記述生成部２０５により電子文書データに変換した例の一部分である。本例ではＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式の仮想のフォーマットで表現している。なお、記述形式はこれに限定するものではなく、他の形式を用いても構わない。ｔｅｘｔＬｉｎｅ要素が１行の文字列、ｒｕｎ要素がそのうちの同一の修飾情報を持つ文字列をまとめている。ｔｅｘｔ要素に囲まれた文字列が実際に出力する文字列であり、色情報を示すｃｏｌｏｒ属性、文字サイズを示すｓｉｚｅ属性からなる。図１７（ａ）は、図１２のＳ１２０５とＳ１２０９の処理を行わない状態を電子ファイル化した例の一部である。
【０１１３】
図１７（ｂ）は、Ｓ１２０９の処理を施した後、つまり図１３（ｃ）を電子ファイル化した例の一部である。図１３（ｂ）の例では、１行目の“ａｂ”と“ｃ”の間のスペースに色情報がないため、３つのｒｕｎ要素が作成される。ここで、“＆ｎｂｓｐ；”は、スペースを表す記号である。また３行目の“ｉ”の色情報が“＃３３Ｆ”になったため、３行目に２つのｒｕｎ要素が作成され、３行合計６つのｒｕｎ要素が作成される。
【０１１４】
一方、図１３（ｃ）では、Ｓ１２０９の処理によってスペースに前の文字の色情報を付加したため、１行目の“ａｂ  ｃ”が１つのｒｕｎ要素で表される。３行目“ｉ”のＳ１２０５の処理によって色情報が“＃００Ｆ”となっているため１つのｒｕｎ要素で表現され、合計３つのｒｕｎ要素で記述される。スペースは不可視の文字コードであるため、電子文書の表示に影響しない。
【０１１５】
このように、本発明を適用することでテキストに色情報を付加した上で、スペースなどの空白を示す文字の記述を省略でき記述量の削減をすることが可能となる。
【０１１６】
＜第二実施形態＞
第一実施形態では、図１２のＳ１２０９において色情報を付加したが、色情報に限らず文字の修飾情報を未定義文字に付加してもよい。以下、入力文字領域の例として図１８を用いた処理を説明する。ここでの色情報以外の修飾情報の例として、文字サイズ、フォント形状、文字を装飾する情報が挙げられる。
【０１１７】
図１８（ａ）は、文字領域の例であり、１行の文字列“ａｂ  ｃ”からなる。このとき、文字ａ、ｂ、ｃの文字列は緑色で、フォント形状がゴシック体、斜体、太字といった装飾情報で描画された文字であるとする。
【０１１８】
図１８（ｂ）は、文字認識結果に対してＳ１２０６の処理によって色情報を付加した例である。文字コード０ｘ６１、０ｘ６２、０ｘ２０、０ｘ６３の４文字が認識される。更に、文字コード０ｘ６１、０ｘ６２、０ｘ６３について、文字サイズ“１４”のサイズ情報、ゴシックのフォント形状情報、斜体、太字の装飾情報、緑を表す“＃０Ｆ０”の色情報を有するとする。スペースを表す“０ｘ２０”に対してはフォント形状情報、装飾情報、色情報が未定義である。
【０１１９】
図１８（ｃ）は、図１８（ｂ）に対してＳ１２０９の処理で前後のフォント形状情報、装飾情報、色情報を付加した例である。ここで、スペースに対して、情報が付加されていることが分かる。
【０１２０】
図１９は、図１８の認識結果の例をそれぞれ電子文書データに変換した例である。図１９（ａ）は図１８（ｂ）の変換結果であり、図１９（ｂ）は図１８（ｃ）の変換結果である。図１７で説明したＸＭＬ形式のｔｅｘｔ要素にさらに、フォント形状を表すｆｏｎｔ属性、太字を表すｂ属性、斜体を表すｉ属性が加わっている。図１９（ａ）が“ａｂ”とスペースと“ｃ”の３つのｒｕｎ要素から構成されているのに対し、図１９（ｂ）では“ａｂ  ｃ”と一つのｒｕｎ要素になっている。スペースは不可視の文字コードであるため、電子文書の表示には影響しない。
【０１２１】
このように、本実施形態を適用することで、フォント形状や装飾情報を認識した場合にもスペースなどの空白を示す文字の記述を省略し、記述量の削減を行うことが可能となる。
【０１２２】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０１２３】
また、本発明は、図２の各処理部の一部または全部を、電子回路等のハードウェアを用いて実現してもよい。
【図１】
0005767549.tif 000002
【図２】
0005767549.tif 000003
【図３】
0005767549.tif 000004
【図４】
0005767549.tif 000005
【図５】
0005767549.tif 000006
【図６】
0005767549.tif 000007
【図７】
0005767549.tif 000008
【図８】
0005767549.tif 000009
【図９】
0005767549.tif 000010
【図１０】
0005767549.tif 000011
【図１１】
0005767549.tif 000012
【図１２】
0005767549.tif 000013
【図１３】
0005767549.tif 000014
【図１４】
0005767549.tif 000015
【図１５】
0005767549.tif 000016
【図１６】
0005767549.tif 000017
【図１７】
0005767549.tif 000018
【図１８】
0005767549.tif 000019
【図１９】
0005767549.tif 000020