説明

画像処理装置、画像処理方法、およびプログラム

【課題】出力される電子文書に、セル構造を持った表形式のオブジェクトを含めることを可能にし、効率良く電子文書のオブジェクト記述を生成する。
【解決手段】表を含む入力画像をから複数の画素塊を抽出し、その包含関係を解析する手段と、前記複数の画素塊が構成する領域を、文字領域、表領域、およびそれ以外の領域のうちの少なくともいずれかとして識別する手段と、前記解析した画素塊間の包含関係と、前記識別した画素塊の領域とに従って、前記複数の画素塊における包含関係を示すツリー構造のデータを生成する手段と、前記表領域として識別された画素塊に対して、表の行列構造を解析する手段と、前記表の行列構造を構成するセル要素それぞれの情報を生成し、前記ツリー構造のデータにおける表領域に関連付ける手段と、前記セル要素それぞれに対し、前記識別した領域のうち、当該セル要素の内容に相当する領域へのリンク情報を設定する手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、紙文書、または文書の画像データから編集可能な電子文書データを生成する画像処理装置、画像処理方法、およびプログラムに関する。
【背景技術】
【0002】
近年、文書を作成する際、フォントに装飾を凝らしたり、図を自由に作成したり、あるいは写真等を取り込んだりといった、高度な機能が用いられるようになっている。しかし、作成物の内容が高度になるにつれて、文書をまったく新規から作成するには大きな労力が必要とされる。よって、過去に作成した文書の一部をそのまま、あるいは加工編集したものを再利用できるようにすることが望まれている。
【0003】
一方、電子文書が紙に印刷された状態で配布されることも多い。そのように紙文書しか手元に存在しない場合でも、その内容を紙から再利用可能なデータとして得られるようにするための技術が開示されている。例えば、特許文献1では、紙の文書を装置に電子的に読み込ませた際に、その内容と一致する文書をデータベースから検索して取得し、読み込んだ紙面のデータの代わりに利用できることが開示されている。また、同一の文書がデータベースから特定できなかった場合は、読み込んだ文書の画像を再利用が容易な電子データへと変換するため、この場合も文書の内容を再利用することができる。
【0004】
従来、文書画像中の文字情報を再利用が容易な電子データへと変換する技術として、OCR技術がある。また、線や面で構成される図画情報を再利用が容易な電子データへと変換する技術として、ベクトル化の技術がある。例えば、特許文献1では、上記技術を用いて文書画像中の文字を文字コードにし、図形の輪郭をベクトルデータにすることで、再利用可能なデータへと変換する技術が開示されている。
【0005】
特許文献1では更に、文書画像中の文字、線画、自然画、表などの領域を識別し、各領域の関係をツリー構造で表現するデータを構築する技術を開示している。そして、同構造に従って上記文字コードやベクトルデータ、画像データ等を配置することで、アプリケーションで編集可能な電子文書ページへの変換を行う。この電子データは、元文書と同等のレイアウトを持ち、文書作成アプリケーション等で新規作成した電子文書ページと同様、文字や図形の位置やサイズの変更、さらに幾何学的な変形や色付けなどを容易に行うことができる。
【0006】
また、文書画像中の表形式領域の構造を認識する技術がある。例えば、特許文献2には、表内の矩形枠領域によって構成される行列構造を取得する技術が開示されている。この技術によって得られる枠領域の行構造と、上記技術による枠内文字のOCR結果とを組み合わせることで、文書画像中の表領域を、表構造を持つ電子データへと変換することが可能である。
【0007】
図22(a)は文書画像の例である。また、図22(b)は特許文献1などの技術を用いて文書画像中の領域を識別し、その包含関係をツリー構造(領域ツリー)で表現したものである。図22(b)の領域2210はページ全体、領域2211〜2219はページ内の各領域に対応する。ここで表領域2214以下の領域は、表の中に枠領域(白領域)2215〜2217があり、更にその枠領域の中に文字領域2218、2219があるという階層構造を成している。図22(b)は加えて、特許文献2などの技術を用いた表解析により得られた、表の行列構造情報を含んでいる。それらは、表領域2214に付与された2行2列という行列の大きさの情報と、枠領域2215〜2217に付与されている行列上での論理座標値として与えられている。かように組み合わされた同データは、表構造を持った電子文書ページに変換され、表編集可能なアプリケーションによって編集することが可能となる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特許第4251629号明細書
【特許文献2】特開平1−129358号公報
【特許文献3】米国特許出願公開第2008/0123945号明細書
【発明の概要】
【発明が解決しようとする課題】
【0009】
従来技術には、カラーの文書画像を再利用が容易な電子データに変換する場合に課題がある。例えば、特許文献1では、二値画像より得た画素塊を利用して領域を識別している。また、特許文献2は二値画像を入力として表枠の情報を抽出している。すなわち、カラー文書画像を入力とする場合には、二値化処理を一旦施す必要があった。しかし、二値化処理によって元のカラー画像の情報が失われてしまう場合がある。例えば、図20(a)に示される表領域は、白地にグレーの文字を含む枠領域2001と、グレー地に黒の文字を含む枠領域2002を含んでいる。この文字と下地のグレーの輝度値が両方とも等しい場合、どのような輝度を閾値として二値化しても、図20(b)、または図20(c)のように文字の情報が失われてしまう場合がある。
【0010】
このような問題に対応するため、特許文献3では、文字等の情報が失われないように、カラー画像を二値以上の画素値を持つことができる画像に減色してから、同色となった画素塊を抽出して領域を識別している。この技術によれば、図20(a)の枠領域2001内の白下地部分とグレー文字、枠領域2002内のグレー下地と黒文字をすべて識別することが可能である。しかし、二値以上の画素値を持つ画像より抽出した画素塊は、二値画像から抽出した画素塊よりも複雑な構造を取りうる。例えば、図21(a)は、部分的に色の異なる罫線や、枠領域内で背景色の変化がある表領域の画像例である。この画像を適切に減色して抽出した画素塊間の関係は、図21(b)のツリー構造で表わされる。図21(a)の右下の枠領域内部からは、色の異なる2つの背景色に対応する画素塊2106、2108と、文字の画素塊2107が抽出されている。しかし、これらの画素塊の間には、他の枠領域の背景色画素塊2102と文字画素塊2109のような包含関係はなく、ツリー上の同階層に配置される。
【0011】
そして、図21(b)のように複雑な構造ツリー構造のデータに対し、前述の表構造解析処理により得られた行列構造の情報を付与することは困難となる。具体的には、行列の論理座標を付与すべき枠領域の背景画素塊の位置が階層構造上一定で無い場合や、そもそも枠領域に1対1対応する画素塊が存在しない場合がある。その結果、同データを元に表編集可能な電子文書ページに変換しようとする際に、行列構造との関連付けが得られない場合や、あるいは行列構造へのアクセス方法が複雑になるという課題があった。
【課題を解決するための手段】
【0012】
上記課題を解決するために、本願発明は以下の構成を有する。すなわち、入力画像から編集が可能な電子データを生成する画像処理装置であって、表を含む画像を前記入力画像として入力する入力手段と、前記入力画像を構成する画素において画素値が近似する複数の画素塊を抽出し、当該複数の画素塊間の包含関係を解析する画素塊解析手段と、前記複数の画素塊が構成する領域を、文字領域、表領域、およびそれ以外の領域のうちの少なくともいずれかとして識別する識別手段と、前記画素塊解析手段にて解析した画素塊間の包含関係と、前記識別手段にて識別した画素塊の領域とに従って、領域間の包含関係を示すツリー構造のデータを生成する生成手段と、前記表領域として識別された画素塊に対して、表の行列構造を解析する表構造解析手段と、前記表の行列構造を構成するセル要素それぞれの情報を生成し、前記ツリー構造のデータにおける表領域に関連付ける関連付け手段と、前記セル要素それぞれに対し、前記識別手段にて識別した領域のうち、当該セル要素の内容に相当する領域へのリンク情報を設定する設定手段とを備える。
【発明の効果】
【0013】
本発明によれば、出力される電子文書に、セル構造を持った表形式のオブジェクトを含めることを可能にし、効率良く電子文書のオブジェクト記述を生成することができる。
【図面の簡単な説明】
【0014】
【図1】システム構成の一例を示す図。
【図2】各部位の処理によるデータの変化を示すブロック図。
【図3】画素塊解析部における処理を示すフローチャート。
【図4】ラベリング処理を示すフローチャート。
【図5】ラベリング処理の例を示す図。
【図6】画素塊解析部による処理結果の例を示す図。
【図7】レイアウト解析部における処理を示すフローチャート。
【図8】グラフィックスデータ生成部における処理を示すフローチャート。
【図9】レイアウト解析処理部における処理結果の例を示す図。
【図10】文字認識部における処理を示すフローチャート。
【図11】文字認識部が出力する文字データの実例を示す図。
【図12】グラフィックスデータ生成部における処理の実例を示す図。
【図13】電子文書記述生成部における処理を示すフローチャート。
【図14】S1305の処理内容を示すフローチャート。
【図15】レイアウト解析部における表内セル構造の解析処理の一例を示す図。
【図16】領域種別毎の出力対象を定義するテーブルの例を示す図。
【図17】電子文書の出力例を示す図。
【図18】電子文書のPCにおける表示例を示す図。
【図19】第二実施形態に係るS1305の処理内容を説明するフローチャート。
【図20】従来のカラーの表画像の二値化処理結果を示す例を示す図。
【図21】従来の画素塊へと分割しツリー構造を構築した例を示す図。
【図22】従来の二値の文書画像から領域のツリー構造を構築した例を示す図。
【発明を実施するための形態】
【0015】
<第一実施形態>
[システム構成]
以下、本発明を実施するための最良の形態について図面を用いて説明する。図1は本発明に係る画像処理装置を用いたシステム構成の一例を示す図である。画像処理装置100は、スキャナ101、CPU102、メモリ103、ハードディスク104、およびネットワークI/F105を含む。スキャナ101は、読みとった文書の紙面情報を画像データに変換する。CPU102は、画像データに電子文書生成処理を施すためのプログラムを実行する。メモリ103は、該プログラムを実行する際のワークメモリやデータの一時保存などに利用される。ハードディスク104は、該プログラムやデータを格納する。ネットワークI/F105は、外部装置とデータの入出力を行う。画像処理装置100は、ネットワークI/F105を介してLANやインターネットなどの有線または無線のネットワーク110に接続にされている。このネットワーク110には更に汎用のパーソナルコンピュータ(PC)120が接続されており、PC120は、画像処理装置100から送信されたデータを受信し、同コンピュータ上にて表示・編集などに利用することが可能である。
【0016】
[電子文書生成処理の構成]
図2は、本発明に係る画像処理装置のCPU102で実施される電子文書生成処理の構成を示すブロック図である。更に、電子文書生成処理の中で、生成される各種データが示されている。図2の入力画像200および出力電子文書210はそれぞれ電子文書生成処理の入力データおよび出力データである。この入力画像200を出力電子文書210として出力するまでの処理の流れと、処理を行う各処理部についての概要を説明する。また、各処理部の詳細な処理内容はその後で説明する。
【0017】
入力画像200は、図2の電子文書生成処理の対象となる画像データである。例えば図1に示す画像処理装置100では、スキャナ101により読み取られた紙文書の内容が、光電変換により電子的画素情報に変換された文書画像データである。もしくは、ネットワークI/F105を通して外部から供給された画像データ、画像処理装置100内で生成された画像データであってもよい。入力画像200は、具体的にはメモリ103もしくはハードディスク104に格納された状態で、以降の処理ブロックへと入力される。
【0018】
出力電子文書210は、電子文書生成処理の結果として出力される電子データである。この出力電子文書210は、入力画像200の内容を、利用者がパーソナルコンピュータのアプリケーション上で表示・編集が可能となる形式で表現したものである。またこの出力電子文書210内では、入力画像200に含まれている文字や図形、写真等の内容に応じて、それらの内容を種別毎に適切なデータ形式で表現することを特徴とする。その目的は、表示・保存・検索・編集・再利用等の異なる用途の各々に最適な電子文書を出力可能とするためである。それぞれのデータ形式および電子文書形式の具体例については後述する。
【0019】
画素塊解析部201は、入力画像200の画素内容(画素情報)を解析し、同色とみなされる連結画素のグループ化を行い、連結画素塊を形成する。そして、画素塊解析部201は、形成した連結画素塊の画素形状、および相対的な位置関係を含む画素塊データ206を生成する。
【0020】
レイアウト解析部202は、画素塊解析部201にて生成された画素塊データ206を入力として、各画素塊を文字と非文字に分類し、かつグループ化を行う。これにより、レイアウト解析部202は、入力画像200内に存在する領域を特定する。ここで特定される領域の種別としては、文字領域、線画領域、自然画領域、表領域などがある。そして、レイアウト解析部202は、それら特定された各領域の種類、座標と相対関係、および領域に含まれる画素塊の情報を含む領域データ207を生成する。
【0021】
グラフィックスデータ生成部203は、領域データ207、画素塊データ206、および入力画像200を入力とし、出力電子文書210内で各領域の内容に相当するグラフィックスデータ208を生成する。グラフィックスデータ208は、後述の電子文書記述生成部205において、各領域に対応するグラフィックスオブジェクト記述の生成に用いられる。具体的には、例えば、グラフィックスデータ生成部203は、領域データ207の中から写真の領域を特定し、入力画像200中の同領域の画素情報を利用して、写真部分の切り出し画像データを生成する。または、グラフィックスデータ生成部203は、線画の領域を特定し、対応する画素塊データの画素形状情報からその輪郭を抽出し、直線・曲線パス近似による線画部分のベクトルデータを生成する。更に、グラフィックスデータ生成部203は、入力画像200において文字・写真・線画といった前景部分の画素を、その周囲色で塗りつぶした画像データである、背景画像データを生成する。
【0022】
文字認識部204は、領域データ207から文字の領域を特定し、さらに同領域に対応する画素塊データ206から文字の画素形状を二値画像として再構成する。そして、文字認識部204は、構成した二値画像に対して文字認識処理を行い、文字領域内の認識文字コード列を得る。さらに、文字認識部204は、これらの文字コード列と、電子文書上で利用可能なその他の情報を含む文字データ209を生成する。文字認識部204は、認識処理を正しく行う為に入力画像200の天地方向を判別し、その方向が上以外の場合は、二値画像および領域情報を回転して文字認識処理を行うようにしてもよい。文字データ209は、文字認識結果の文字コード列のみではなく、各文字の座標情報、推定文字サイズやピッチ、行ピッチなど、文字認識処理に付随して推定された書式情報を含んでいてもよい。また、文字データ209は、文字画素塊データが有する色の情報を利用して推定された、各文字の色情報を含んでいてもよい。
【0023】
電子文書記述生成部205は、領域データ207、グラフィックスデータ208、および文字データ209を入力として、それらを用途に合った形式になるよう選択・変形・合成し、出力となる出力電子文書210の記述を生成する。電子文書記述生成部205は、1つの入力画像200に対し、1ページの出力電子文書を生成するようにしても、複数の入力画像に対し1のマルチページ電子文書が生成されるようにしてもよい。
【0024】
[各処理部の動作]
続いて、図2の電子文書生成処理を構成する各処理部の詳細な動作例を順に説明していく。各処理部による処理は、画像処理装置100が備えるCPU102が、記憶部であるメモリ103等に記憶されたプログラムを読み出し、実行することにより実現される。
【0025】
(画素塊解析部による処理)
図3に、画素塊解析部201の動作例を説明するフローチャートを示す。
【0026】
S301では、入力画像200が画素塊解析部201へと入力される。ここで入力画像200は、カラー画像であれば、各画素がRGB各々3つの8bit値で表現されるページサイズの画素集合として、メモリ103に展開した状態で入力されるものとする。なお、これはあくまで一例であって、グレー形式を含むRGB形式以外の色空間で表現されていてもよい。また、入力画像200が圧縮画像のストリームとして入力され、画素塊解析部201がメモリ103にてRGB画素などとなるように展開してもよい。
【0027】
S302では、画素塊解析部201は、入力画像200の各画素に対し、減色処理を施した減色画像を生成する。この減色画像において各画素がとる値の範囲は、入力画像200の画素値範囲以下の0〜N(N≧2)の値である。減色処理の方法自体については、本発明の本質と外れるので詳細な説明は省略する。しかし、減色後の画素値が白黒二値ではなく、元の入力画像200に含まれる文字や線等の色特徴を保持する画素値を保持するよう処理することで、本発明の効果が発揮されることは留意すべきである。つまり、白黒二値のような2種類の画素値を有する画像でなく、3種類以上の画素値を有することが可能な画像を対象として本発明に係る処理を適用することが本発明の効果を得る前提となる。
【0028】
このような減色処理の例としては、入力画像200がRGB形式の場合、各画素をR、G、B各要素についてそれぞれ128未満か128以上であることを0、1で表現した3bitで最大8色に減色する方法がある。また、各画素の輝度値Yを計算し、このYを4段階に量子化することで減色する方法もある。また、画像の画素値ヒストグラムからN個の代表色を推定したうえで代表色にID値を付与し、各画素には最も近似する代表色のID値を割りあてる方法もある。
【0029】
S303では、画素塊解析部201は、減色画像内で同じ画素値を持つ連結画素の集合に対し、公知のラベリング処理を行い、同一ラベルを持つ画素集合を画素塊として抽出する。これは、入力画像200中で色が近似する連結画素塊を抽出することを意味する。この連結画素の判定には、上下左右とすべての斜め方向の隣接画素を考慮する8連結判定を用いることにする。8連結判定を用いたラベリング処理については、図4および図5を用いて後述する。
【0030】
S304では、画素塊解析部201は、S303で生成した画素塊情報中の全画素塊を対象に、画素塊間の接触の有無を示す情報を保持するように、画素塊情報を更新する。具体的には、注目画素塊に対し、1)外接矩形が接するか重なる画素塊、2)さらに両画素塊のランの中に接触するランがある、の両条件に合致する画素塊のIDのリストを接触画素塊のリストとして登録する。これを全画素塊の組み合わせに対し実行する。なお、上記条件は一例であり、他の条件を用いても構わない。また、接触する画素塊を取得する処理は、S304のラベル付けのところで、接触ラベル間の関連づけを行っておくことで、より高速な接触関係の特定が可能である。しかし本処理の効率は発明の本質とは関係ないのでその説明は省略する。
【0031】
S305では、画素塊解析部201は、画素塊情報中の全画素塊を対象に、ある画素塊が別の画素塊を含む、あるいは別画素塊に含まれることを示す包含情報を生成し、画素塊情報に追加する。なお、本例では2画素塊が包含関係にあることを次の条件で定義する簡易判定処理を行う。1)2画素塊間が接触しており、かつ、2)片方の画素塊の外接矩形が他方の画素塊の外接矩形を完全に包含する。これは包含判定時の処理量を軽減し処理時間を省くためである。なお、他の条件を用いることによって判定を行い、画素間の正確な包含判定を用いるようにしてもよい。
【0032】
S306では、画素塊解析部201は、画素塊情報に追加された包含関係を、画素塊同士の親子関係とみなしたうえで、画像全体を祖先(ルート)とし、各画素塊をノードとする画素塊のツリー構造を生成する。なお、S305にて用いる処理条件では、親となる画素塊を持たない画素塊が存在する場合がある。その場合、当該画素塊が、接触関係にある画素塊の親と同じ親を持つようにツリー構造を生成する。また、親が複数ある画素塊が存在する場合があるが、その際は任意のひとつの親、例えば、階層の最も深い親とのみ親子関係を有すように構造を生成すればよい。S306で生成された画素塊ツリー構造と、各画素塊の情報とを合わせたものが、画素塊解析部201が生成する画素塊データ206となる。
【0033】
(8連結判定によるラベリング処理)
S303にて行われる8連結判定によるラベリング処理の例を図4のフローチャートを用いて説明する。
【0034】
S401では、画素塊解析部201は、ラベル値kを1に初期化する。S402では、画素塊解析部201は、減色画像の注目ラインにおいて、同一画素値が連続するランを現ランとして抽出する。最初は減色画像の最上ラインに注目し、その左端の画素から同じ画素値を持つ画素が右方向に連続する範囲をランとして抽出するものとする。抽出されたランは、始終点のx座標および注目ラインのy座標の組からなるラン情報として記憶される。なお、後述するように、同注目ラインでS402が再度処理される場合、処理済ランの右端の次の画素から始まるランを抽出する。
【0035】
S403では、画素塊解析部201は、注目ラインのひとつ上のラインにすでに抽出されたランがあり、かつ現ランと画素値が連結しているものがあるかどうかを調べる。ここで8連結しているとは、y座標=k、x座標による始終点=(s,e)の現ランに対し、y座標k−1、x座標(s−1,e+1)の範囲に1画素でも存在するランであり、かつ画素値が同一であることが条件である。なお、注目ラインが最上ラインの場合は、連結ランは常に存在しないこととなる。条件に合致する連結ランが無い場合は(S403にてNO)、S404に進み、画素塊解析部201は、現ランに新規ラベルLkを付与する。続いてS405で、画素塊解析部201は、ラベル値kに対して+1とする。一方、S403で条件に合致する連結ランが存在した場合(S403にてYES)、S406に進む。
【0036】
S406では、画素塊解析部201は、条件に合致する連結ランが複数で、かつ当該連結ランが複数のラベル種を有しているかどうかを調べる。複数のラベル種を有している場合は(S406にてYES)、S407に進み、画素塊解析部201は、最初に検出された連結ランが有するラベルを現ランに付与する。更に、画素塊解析部201は、全連結ランが有するラベルが同一グループとみなされるよう、ラベル値間の関連付けを行う。一方、連結ランが単一の場合、あるいは複数の連結ランが同種のラベルを有している場合は(S406にてNO)、S408に進み、画素塊解析部201は、連結ランが有するラベルを現ランに付与する。
【0037】
S405、S408、S409の後、S409に進み、画素塊解析部201は、注目ラインに次のランが有るか否か、すなわち現ランの終点が画像右端でないかどうかを調べる。次のランがある場合(S409にてYES)、画素塊解析部201は、そのランが抽出されるようにS402に進んで以降処理を繰り返す。注目ラインに次のランが無い場合(S409にてNO)、S410に進む。
【0038】
S410では、画素塊解析部201は、注目ラインが最終ラインかどうかを調べる。最終ラインではない場合(S410にてNO)、S411に進み、画素塊解析部201は、次のラインに移動する。そして、S402に戻り、画素塊解析部201は、そのライン左端の画素から新たなランを抽出して以降の処理を繰り返す。注目ラインが最終ラインの場合は(S410にてYES)、S412に進む。
【0039】
S412では、画素塊解析部201は、ラベル値毎に、同ラベルが付与されたランの集合により構成される画素塊情報を作成する。このランの集合を構成する際には、S407で関連づけられた複数種類のラベル値を持つランがひとつの画素塊ラン情報に集められるよう処理される。最終的に生成される画素塊情報として、ひとつの画素塊は、識別の為のID、外接矩形情報、画素値、および画素塊に集められたラン情報の集合の組から成る。
【0040】
(ラベリング処理の処理例)
図4のラベリング処理を適用した場合の処理例を図5に示す。図5(a)は処理対象となる減色画像の例であり、ひとつのマスが1画素を表す幅6×高さ3画素の画像で、各マス内の数値は画素値を示す。図5(b)は図5(a)に対するラベリング処理の結果の例である。
【0041】
ラベリング処理では、まず最上のライン(y=0のライン)に注目して、左端から始まる画素値3のラン501が抽出される。これより上にはラインが存在しないので連結ランは無く、ラン501には最初のラベルL1が与えられる。続く画素値1のラン502にも同様に新規ラベルL2が与えられる。
【0042】
最上ラインにもう画素は無いので次のライン(y=1のライン)に移動し、画素値1のラン511が抽出される。上ライン(y=0のライン)にはラン511に連結する画素値1のランは無いので、ラン511には、新規ラベルL3が与えられる。次の画素値3のラン512は、上ライン(y=0のライン)に同値のラン501が存在する。連結ランはこのラン501だけなので、ラン501のラベルL1がラン512にも与えられる。続いて、画素値1のラン513が抽出され、同様に上ライン(y=0のライン)の連結ランであるラン502のラベルL2が与えられる。続いて画素値3のラン514が抽出され、連結ランが無いので、新規ラベルL4が与えられる。3ライン目(y=2のライン)に移動し、画素値1のラン521が抽出され、上の連結ランであるラン511のラベルL3が与えられる。続く画素値3のラン522は上ライン(y=1のライン)の連結ランとして、ラン512とラン514が存在する。かつ、ラン512とラン514のラベル値はそれぞれL1およびL4と異なるので、ラン522には連結ランのうち最初に検出されたラン512のラベルL1が与えられる。加えて、ラベルL1とラベルL4を同一ラベルとみなすための関連付け情報が生成される。最後に、画素値2のラン523が抽出され、新規ラベルL5が与えられる。
【0043】
図5(c)はラベル付けされたラン集合から生成される画素塊情報の例である。ID1の画素塊は、前述の関連付けに基づき、ラベルL1のラン501、512、522およびラベルL4のラン514の集まりとして構成されている。またその矩形範囲として(0,0)−(5,2)、および画素値3が記憶されている。ID2の画素塊は、ラベルL2のラン502およびラン513により構成される、矩形範囲(2,0)−(5,1)、および画素値1の画素塊である。以降、ID3、ID4も同様に示される。なお、一度画素塊情報が構成されれば、ランの集合を構成する際に使用されたラベルの情報Lkは破棄してもよい。また、各ラン情報が持つ座標を、図5(c)に記されるように各画素塊の外接矩形の左上を原点とするように再設定してもよい。
【0044】
(画素塊解析部による処理結果の例)
図6に画素塊解析部201による処理結果の例を示す。図6(a)は画素塊解析部201に入力される減色画像の例である。図6(b)は、図6(a)に示す減色画像から抽出された画素塊情報の例であり、かつS304で生成された画素塊の接触関係を矢印で示した図である。図6(c)は、図6(b)に示す画素塊情報の例において、S305で生成された包含関係を矢印で示した図である。この矢印は矢の先が子、元が親を示している。図6(d)は、図6(b)および図6(c)から構成された画素塊ツリー情報の例である。図6(d)の画素塊601は包含関係による親画素塊が存在しないため、接触している画素塊602が親とする画素塊を親とするようにツリー構造が構築されている。
【0045】
なお、図3のフローチャートでは、画素塊解析処理により入力画像データ全体を一度に処理するように説明した。これに対し、入力画像データを複数部分に分け、各部分画像の入力と画素塊情報の抽出を繰り返しながら行っても構わない。例えば、特許文献3では、32画素四方のタイルをひとつの処理単位とし、画像の左上から順に画像入力、量子化、タイル内画素塊であるblobの作成、を繰り返すよう処理する例が説明されている。この特許文献3による説明では更に、処理済タイルである上タイルおよび左タイルにあるblobを現タイルのblobと結合することで、結果的に入力画像200と同じサイズも含む任意の大きさの画素塊生成している。この処理方法を適用することにより、本実施形態に係る画素塊データの生成処理に消費するメモリや処理時間を大幅に節約することも可能である。
【0046】
(レイアウト解析部による処理)
続いて、レイアウト解析部202の処理を、図7のフローチャートを用いて説明する。本処理では、メモリ103上の画素塊データ206を入力とし、文字、線画、自然画、表といった文書領域間の構造に基づいた、領域データ207をメモリ103上に構成していく。
【0047】
S701では、レイアウト解析部202は、入力である画素塊データ206中の各画素塊を、文字候補画素塊とそれ以外の画素塊に分類する。画素塊が文字候補であるか否かの分類は、公知の文書画像解析技術で利用されている文字画素塊判定方法を用いればよい。例えば、画素塊の外接矩形サイズを利用し、予め定められた高さおよび幅の範囲に収まるものを文字候補とする方法がある。
【0048】
本例においては、文字とみなす大きさを6ポイントから50ポイントまでとし、入力画像200の解像度から換算したTmin〜Tmaxの画素数に、画素塊の幅あるいは高さが収まるものを文字候補とする。ここでサイズに下限を設けることは、文字内部から抽出される背景相当の小画素塊を文字候補に含めないようにする効果がある。文字候補の判定条件に、更に画素の密度や比率、画素色などを加えてもよい。また大きさの閾値は、入力画像200から実際抽出された画素塊の集合より幅・高さの頻度情報を得て、動的に定めるようにしてもよい。
【0049】
S702では、レイアウト解析部202は、S701で分類された文字候補の画素塊に対し、互いに近傍にあるものに対するグループ化を行う。近傍であるか否かの判定は、画素塊の外接矩形座標間のユークリッド距離を計算し、予め定められた閾値以下であることで判定することができる。これはあくまで一例であり、距離計算にシティブロック距離など別の計算方法を用いてもよい。また、複数の文字は行をなして記述され、一般に行内の文字間隔は行間隔より狭いことから、小さい距離閾値で文字行をなす文字候補画素塊をグループ化し、さらに大きな距離閾値で複数の文字行をグループ化するようにしてもよい。なお、本グループ化処理では、画素塊ツリー構造において同じ親を持つ文字候補画素塊同士のみがグループ化の対象になるものとする。これは、近傍計算の対象となる画素塊の組み合わせを減らし、処理を高速化するためである。
【0050】
S703では、レイアウト解析部202は、S702でグループ化された文字候補画素塊の集合が、実際に文字集合であるか否かの判定をグループ毎に行う。そして、レイアウト解析部202は、文字集合であるとされたグループの画素塊の存在範囲をそれぞれ文字領域として特定する。そして特定された領域それぞれに対し、領域の座標と対応画素塊への関連付け情報を含む領域情報が、領域データ207の構成要素として記憶される。すなわち、文字領域に対しては、グループ化された文字候補画素集合への関連付け情報と、同画素塊を囲む外接矩形座標情報とが文字領域情報として記憶される。
【0051】
文字集合であるか否かの判定は、例えば、グループを含む矩形範囲で文字候補画素塊の射影を縦横に求め、文字列としての整列性を示すか否かで判断する方法がある。具体的には、横書きならば水平の射影、縦書きならば垂直の射影において、行部分には山、行間には谷となる頻度分布が観測されるものは文字領域の可能性が高いと判断できる。さらに、文字同士は斜体などの例外を除き、互いの外接矩形が大きく重複することは少ない。したがって、他の画素塊と大きな重複がないことも、文字領域か否かの判定の有効な手段となる。ただし、漢字などで1つの文字が複数の重複する画素塊に分割されているケースを除くために、重複判定を一定以上の大きさの画素塊間のみに制限することが効果的である。
【0052】
なお、文字領域として特定されたあとに、同領域内にある別の画素塊を文字候補画素塊の集合に追加してもよい。例えば、句読点や文字内の独立点部分の画素塊は、サイズ制限により文字候補画素塊に選出されていない可能性が高い。これら文字候補画素塊に含めるために、既に文字候補である画素塊と同色で近傍にある小サイズの画素塊を追加する処理を行ってもよい。
【0053】
S704では、レイアウト解析部202は、S701で文字候補以外に分類された画素塊から、線画・表枠候補の画素塊を選出する。線画・表枠候補か否かの判定は、文字候補以上の大きさであり、かつ画素塊の存在範囲全体に対する画素密度が低いことにより判断できる。
【0054】
S705では、レイアウト解析部202は、S704で線画・表枠候補とされた画素塊に対し、表枠であるか否かの判定を行い、表枠と判定された画素塊の存在領域を、表領域として特定する。そして、レイアウト解析部202は、対応する表枠の画素塊への関連付け情報と、同画素塊の外接矩形座標を含む領域情報とを、表領域情報として領域データ207に記憶する。
【0055】
表領域情報表枠か否かの判定は、例えば、画素塊の存在範囲において、画素塊のラン情報から縦横の画素ヒストグラムを計算し、その形状から判定を行えばよい。つまり画素塊が表枠に相当するものであれば、縦横の表外枠および罫線の存在する部分に、複数の鋭いピークがヒストグラム上に発生することを利用する。これらを検出することで、表枠かどうかの判定を行うことができる。あるいは、表枠画素塊の子に相当する画素塊の集合により判断することもできる。表枠の子となる画素塊は、表内の枠領域に相当するため、子領域すべてが矩形形状であり、かつ重なりなく整列していることは、表枠であることの有効な判断手段となる。
【0056】
S706では、レイアウト解析部202は、S704で線画・表枠候補とされ、かつS705で表枠と判定されなかった画素塊の存在領域を、線画領域として特定する。そして、レイアウト解析部202は、対応する線画の画素塊への関連付け情報と、同画素塊の外接矩形座標を含む領域情報とを、線画領域情報として領域データ207に記憶する。このとき、線画と判定された画素塊の近傍にある画素塊をグループ化した範囲を線画領域としてもよい。
【0057】
S707では、レイアウト解析部202は、ここまでに記憶されたどの領域にも対応しない画素塊の中から、写真等の自然画領域と判定される画素塊、もしくは画素塊の集合を選出し、その存在領域を自然画領域情報として記憶する。そして、レイアウト解析部202は、対応する画素塊集合への関連付け情報と、同画素塊の存在範囲の座標を含む領域情報とを、自然画領域情報として領域データ207に記憶する。
【0058】
自然画領域か否かの判定は、複数色の画素塊が重複、あるいは包含されるように存在しており、かつそれら画素塊の集合が一定の大きさ内の矩形を構成しているものを、矩形状の写真に相当する自然画領域と判定することにする。この判定はあくまで一例であって、任意形状の画素塊集合を対象にしてもよい。
【0059】
S708では、レイアウト解析部202は、ここまでに記憶されたどの領域にも対応しない画素塊の中から、一定以上の密度および面積を持つ画素塊を、フラット領域として記憶する。無地のページ全体を占める領域、文字や図の背景などで意味的なまとまりを持たせるために着色された色背景領域や、表内セルの背景などがこのフラット領域に相当する。
【0060】
S709では、レイアウト解析部202は、S708までに領域データ207に記憶されている各々領域をノードとし、その領域間の相対関係を表現する領域ツリーを構成する。領域ツリーの起点には、入力画像の全体範囲に相当する特殊なルートノードを配置する。そして、領域ツリーのノード間の親子関係は、画素塊ツリーにおいて各領域に対応する画素塊ノードが持つ親子関係と一致するようにする。ツリー構造を構成するための具体的処理としては、各領域データに親領域へのリンク情報、および子領域へのリンク情報のリストを付与することでツリー構造を構成する。なお、リストを実現するためのデータ構造は任意であり、前述のように各領域ノードが親子、兄弟関係にある領域ノードへのポインタを持つようにしてもよいし、子領域を配列構造で保持するようにしてもよい。
【0061】
S710では、レイアウト解析部202は、S709で生成された領域ツリーに存在する、表領域の各々に対し、表内のセル構造解析を行う。つまり、表構造解析として、表領域における表がどのような行列構造(セル構造)となっているかを解析する。そして、レイアウト解析部202は、解析された構造に基づいて配置されるセルの集合を特定し、セル要素リスト情報として表領域ノードに関連づけて記憶する。ここで「セル」とは、表を構成する項目のひとつに対応し、一般には罫線により4方を囲まれた表内の小領域である。セルは、表内で「行」すなわち横方向の連なり、および「列」すなわち縦方向の連なりからなる行列構造を成す。この行や列にまとまった意味を持つ項目を並べることで、表形式の情報は成立している。
【0062】
したがって、セルの行列構造を解析することは、画像化された表の内容を、再利用可能なデータとして記述するために重要である。この解析情報を後述の電子文書記述に利用するために、S710で生成されるセル要素リスト情報には、各セルの意味に基づく行列上の座標、いわゆる論理座標が付与される。なお、セル要素リストを実現するためのデータ構造は任意である。したがって、データ構造として、セル要素の配列や、セル要素を差すポインタの配列構造をとってもよいし、セル要素毎に前後のセル要素を差すポインタを持たせる構造をとってもよい。
【0063】
S710における、表内のセル構造の解析処理の一例を、図15を用いて以下に説明する。
【0064】
図15(a)の表枠1501は解析対象となる表枠の画像である。まず表枠の画素塊のラン情報から、表枠画素の垂直・水平射影によるヒストグラムが作成される。ヒストグラム1502は、表枠1501に対する垂直射影のヒストグラムの例である。また、ヒストグラム1503は、表枠1501に対する水平射影のヒストグラムの例である。
【0065】
図15(b)は、生成されたヒストグラムのピーク位置集合によって表枠範囲を4×3の升目領域に分割した例である。つまり表領域は、垂直方向射影のピーク位置x0,x1,...,xnのそれぞれに垂直線を、水平方向射影のピーク位置がy0,y1,...,ymのそれぞれに水平線を引き、線で囲まれた升目を1単位とするn×m個の領域へと分割される。
【0066】
続いて、この升目上での位置(i,j)を論理座標として、各々のセル要素を抽出する。具体的には、各升目位置における上下左右4方向の境界線上に、実際の表画像内の罫線が存在するかどうかを、表枠の画素塊情報を用いてチェックする。そして、実在する罫線で囲まれる範囲をそれぞれひとつのセル要素として抽出する。例えば、論理座標(i,j)のセル要素は、ある位置(i,j)の4方向の境界すべてに罫線が実在する場合に抽出される。あるいは、(i,j)と(i+1,j)の両升目を囲むように罫線が実在し、両者の境界に罫線が存在しない場合には、論理座標範囲(i,j)−(i+1,j)のセル要素として抽出される。図15のケースで各々抽出されたセル要素と、各々に付与された論理座標の例を図15(c)に示す。
【0067】
なお、上述の表内セル構造の解析処理はあくまで一例であり、他の公知の表構造解析処理を用いてもよい。例えば、実際には罫線が引かれていない項目の境界を表内の文字列の分布から推測して、上記升目の分割位置に加えるようにしてもよい。あるいは、表枠の画素塊以外を用いてもよい。例えば、異なる色で塗られた罫線を考慮するために、表枠の画素塊の子の中から、垂直あるいは水平線状の画素塊を特定し、そのx座標あるいはy座標を上記升目の分割位置に加えてもよい。あるいは、罫線では無く塗り分けによって表の項目が分割されている場合に対応するために、表領域の子要素であるフラット領域の垂直・水平辺の位置で分割してもよい。また、画素塊のラン情報だけではなく、入力画像の画素情報を用いて解析処理を行ってもよい。
【0068】
S711では、レイアウト解析部202は、S710で抽出した各セルと、同セルに含まれる文字や図、写真などの項目内容との関連づけを行う。具体的には、各セル要素の論理座標範囲に対応する画像上の座標範囲を求め、同範囲に包含される領域ノードへのリンクをセル要素が持つリンクのリストに追加する。従って、一つのセル内容に複数の領域ノードが含まれてもよい。
【0069】
また内容が空のセル要素はサイズ0のリストを保持するものとする。なお、ある表領域のセル要素の内容となる領域ノードは、同表領域ノードの子または子孫のノードからのみ特定されるものとする。また、セル内容に含めるか否かを領域ノードの種類によって変えてもよい。例えば、フラット領域を除く領域をセル内容に含めるようにしてもよい。特に、表枠を構成する罫線の一部が分離して表領域の子領域になっている場合に、セル要素の境界に近い線画領域を、セル内容に含めないようにすることで、表形式出力時のノイズを防ぐことができる。
【0070】
(レイアウト解析部による処理結果の例)
図7のフローチャートにより説明した、レイアウト解析部202における処理の結果の例を、図9を用いて説明する。図9(a)は、画素塊解析部201により減色され、画素塊に分解される文書画像の例である。図9(b)は、図9(a)に示す文書画像において抽出された画素塊を、画素塊ツリー構造で表現した例図である。図9(a)、(b)において、画素塊901、902、903はそれぞれ元画像において文字に相当する画素塊の集合である。図面上の都合で表現はされないが、画素塊901は黒色、画素塊902は青色、画素塊903は赤色のそれぞれ文字であるとする。画素塊904〜908は、表を構成する画素塊である。表枠である画素塊904は黒色の画素塊である。表内部の枠領域背景にそれぞれ相当する、画素塊905、907、908は明るい灰色の背景色の画素塊、画素塊906は画素塊905等による背景色よりやや暗い灰色の背景色の画素塊である。画素塊909は濃い灰色の星型の線画に相当する画素塊である。画素塊910、911は減色により二色に分離した、写真部分に相当する画素塊である。画素塊900は画像全体の背景となる白色の画素塊である。なお図9では、文字内部の小さな画素塊に関しては記載を省略している。
【0071】
図9(b)において、矢印は包含関係に基づく親子関係を示している。例えば、表を構成する画素塊904〜908において、画素塊905は表の左上枠内の単色背景領域である。画素塊905は内部に2つの文字の領域である画素塊902を包含するので、両者は親子関係となる。一方、表の右上枠内の背景領域は、上下に異なる色の画素塊906、907に分かれている。その結果、文字の画素塊903はどちらの画素塊にも包含されないので、それらの親となる表枠の画素塊904の直接の子となる。こういったケースはオリジナルの入力画像が元々そのように色分けされている場合の他、ノイズや減色処理を要因に、単色領域が意図せず過分割されて生ずることもある。いずれにせよ、カラーの画素塊構造抽出処理においては、普遍的に発生するケースであることを考慮すべきである。
【0072】
図9(c)は、図9(b)の画素塊ツリーから生成される領域ツリーの例である。その生成過程を図7のフローチャートのS701〜S709に従って以下説明する。まずS701〜S703にて、レイアウト解析部202は、画素塊901、902、903の3つの画素塊グループが文字候補画素塊として選出する。そして、レイアウト解析部202は、文字領域の判定条件を満たす、各存在範囲が文字領域として子領域ノード921、922、923を記憶する。
【0073】
S704で、レイアウト解析部202は、画素塊904、908を線画・表枠候補として選出する。S705では、レイアウト解析部202は、画素塊904を表枠と判定し、表領域として子領域ノード924を記憶する。S706では、レイアウト解析部202は、画素塊909を線画と判定し、線画領域として子領域ノード928を記憶する。
【0074】
S707で、レイアウト解析部202は、画素塊910、911が自然画領域を構成すると判定し、自然画領域として子領域ノード930を記憶する。S708では、レイアウト解析部202は、残る画素塊900、905、906、907、908をいずれもフラット領域として記憶する。そしてS709にて、レイアウト解析部202は、各領域をノードとし、各々対応する画素塊ツリーの親子構造を反映した領域ツリー構造を生成する。図9(c)において、線で結ばれる領域は親子関係を持つ。
【0075】
図9(d)は、S710の処理により表領域である子領域ノード924に付加されたセル要素のリストの構成例である。表領域である画素塊904から解析された、2行2列の行列構造に基づき、セル要素941は論理座標(1,1)を持ち、セル内容として文字領域である子領域ノード922へのリンクを有する。同様にセル要素942は論理座標(2,1)を持ち、セル内容として文字領域である子領域ノード923へのリンクを有する。セル要素943は存在範囲として論理座標(2,1)−(2,2)を持ち、セル内容を持たないのでリンクは有してない。なお、図9(c)と図9(d)の参照番号が一致するもの同士が対応している。
【0076】
(グラフィックスデータ生成部による処理)
続いて、グラフィックスデータ生成部203の処理を説明する。グラフィックスデータ生成部203は、領域データ207に含まれる各領域をグラフィックスオブジェクトとして表現する為のグラフィックスデータ208を生成する。ここで生成されるデータは、後述の電子文書記述生成部205において、各領域の内容をオブジェクトとして記述する際に利用される。以下、グラフィックスデータ生成部203の処理を図8のフローチャートを用いて説明する。
【0077】
S801では、グラフィックスデータ生成部203は、出力電子文書210において、線図形部分のオブジェクトをグラフィックスで表現するためのベクトルデータを生成する。本例におけるベクトルデータの生成対象領域は、入力となる領域データ207中に存在する文字領域、線画領域、および表領域とする。生成されたベクトルデータは、領域データ207中の対応する領域ノードに関連付けられたうえで、記憶部であるメモリ103あるいはハードディスク104に保存される。
【0078】
S801におけるベクトルデータ生成処理は、画素塊解析部201にて生成された画素塊データ206を用いて、対象領域に関連付けられた画素塊のラン情報から二値画像を構成し、当該二値画像に公知のベクトル化手法を用いて行う。例えば、輪郭線追跡により二値画像の外輪郭、内輪郭ループを抽出し、両者に対する直線、曲線近似を行ってベクトルパスデータを求めればよい。パスの塗り色には、画素塊に関連付けられた色情報を設定するものとする。
【0079】
図12(a)にベクトルデータ生成結果の例を示す。画素塊1201は文字Aの画素塊形状を示しており、これにベクトル化処理を施すことでベクトルデータ1211が生成される。同様に星型の線画を成す画素塊1202から、ベクトルデータ1212が生成される。いずれの生成されたベクトルデータも、画素塊が持つ画素凹凸が直線近似により平坦化されて、先鋭な線図形として再現されている。またベクトルデータなので拡大、縮小しても画質劣化が少なく、かつ変形や着色等も容易であるため、編集用途に適したデータである。
【0080】
S802では、グラフィックスデータ生成部203は、出力電子文書210において、フラット領域部分のオブジェクトをグラフィックスで表現するためのベクトルデータを生成する。すなわち、グラフィックスデータ生成部203は、領域データ207中に存在するフラット領域の画素塊に対し、S801と同様のベクトル化処理を施し、領域ノードに関連付けてメモリ103あるいはハードディスク104に保存する。なお、本例では、ページ全体の下地に相当するような、ルート領域直下のフラット領域に対するベクトルデータは生成しないものとする。
【0081】
また、S802のフラット領域のベクトル化処理では、ベクトル化対象の画素塊の内輪郭に関しては無視してベクトル化を行ってもよい。これは後述の電子文書記述生成時において、内輪郭にあたる部分は別オブジェクトが重畳され隠れるようになるからである。例えば、図12(b)の二値画像1203は、図9の画素塊905のラン情報から構築された二値画像であるが、ベクトル化処理の過程で白く抜けた文字部に相当する内輪郭は無視され、矩形状のベクトルデータ1213が生成される。一方、図9の画素塊906、907に対しては、ラン情報に相当する二値画像1204、1205から、文字の抜けによる凹凸を含む外輪郭形状そのままのベクトルデータ1214、1215が生成される。
【0082】
S803では、グラフィックスデータ生成部203は、出力電子文書210において、ベクトル化対象外の領域を表現するための、切り出し画像データを生成する。本例における切り出し画像データ生成領域は、領域データ207中に存在する自然画像の領域(自然画領域)とする。切り出された画像データは、領域データ207中の対応する領域ノードに関連付けられたうえで、メモリ103あるいはハードディスク104に保存される。ここで切り出し処理とは、入力画像200を参照し、対象範囲の画素のみからなる同サイズの画像データを生成する処理である。切り出された画像データはJPEG等の公知の圧縮技術で圧縮してもよい。
【0083】
S804では、グラフィックスデータ生成部203は、出力電子文書210において、背景に用いられる背景画像データを生成する。生成された背景画像データは領域データ207のルートノードに関連づけられて、メモリ103もしくはハードディスク104に保存される。
【0084】
背景画像とは、S801〜S803で生成されるベクトルデータや切り出し画像データを前景データとして、当該背景画像に重ねて描画することで、出力電子文書210が入力画像200と同等の見た目を有するように用意されるものである。背景画像データに対しては、前景データが存在する領域の画素情報を入力画像200から消去する処理を行う。
【0085】
画素情報の消去には、合成した出力電子文書210において、データが二重に見えるのを防ぐ効果がある。あるいは重畳により隠れてしまう領域に存在する無駄な画素情報を無くすことで圧縮効率を上げ、出力電子文書210をコンパクトにする効果がある。画素情報を消去する方法は、例えば、対象領域の矩形範囲をその周囲色で一様に塗り潰す方法がある。なお、対象領域が線図形領域の場合、線部分に相当する画素のみを、その近傍の画素色で塗り潰すようにすれば、線部分以外にあたる部分の色情報を背景情報に残すこともできる。
【0086】
圧縮効率を向上させる場合、画素情報を消去するのは、S801でベクトル化された線図形の領域と、S803で切り出された自然画領域のみでもよい。両者に比し、フラット領域の画素情報量は少ないので、フラット領域が背景画像に残っていても圧縮効率を下げない為である。
【0087】
この場合に図9(a)の入力画像の例に対し生成される背景画像データの例を図12(c)の背景画像1230に示す。図9(a)中の線図形部分、すなわち文字領域である画素塊901〜903、線画領域である画素塊908、および表枠領域である画素塊904の線図形部分画素は周辺の画素色で塗りつぶされている。また、自然画領域である画素塊909に関しては、その矩形範囲全体が周辺の画素色で塗りつぶされている。
【0088】
なお、グラフィックスデータ生成部203の処理で、どの種類の領域に対しベクトル化処理または画像切り出し処理を行うかは上述した例に限るものではない。例えば、線画、表領域に対して、画像切り出し処理を行うようにしてもよい。これら処理対象領域の選択は、電子文書生成処理の制御項目として、処理対象領域種類を外部指示により設定できるようにしてもよい。また、出力される電子文書の形式が複数あり、それぞれ別の用途がある場合、各用途に適したデータ形式を領域種別毎に変えられるようにしてもよい。
【0089】
同様に、背景画像データ生成時にどの種類の領域に対して画素情報の消去処理を行うかを電子文書生成処理の制御項目として設定してもよいし、生成する電子文書の形式に合わせて変えられるようにしてもよい。
【0090】
(文字認識部による処理)
文字認識部204の処理を、図10のフローチャートを用いて説明する。S1001では、文字認識部204は、文字認識処理に入力する文字画像を生成する。本説明では、文字認識処理において、文字を含む二値画像を入力とすることを前提とし、各文字領域の二値画像を生成する。文字領域の二値画像とは、領域内の文字画素を1、それ以外を0とする、入力画像と同じ画素数の二値画像である。実際の処理では、レイアウト解析部202が生成した領域データ207中の各文字領域に対し、同領域内に存在する画素塊情報を画素塊解析部201が生成した画素塊データ206から読み出す。そして、各画素塊が持つラン部分が1、それ以外が0になるように入力画像200と等サイズの画像を生成する。
【0091】
S1002では、文字認識部204は、各文字領域内に公知の文字認識処理を実行し、文字コード列を含む文字認識結果を得る。本実施形態において、文字認識結果は、文字領域情報、行情報、および認識文字情報で構成される。文字領域情報は文字が存在する範囲の座標と、認識された文字行数の情報を含む。行情報は、各行の行内文字数の情報を含む。認識文字情報は、各文字に対して認識された文字コードの情報を含む。認識文字情報には、文字認識処理により付加的に得られた各文字の情報を追加してもよい。例えば、各文字の外接矩形座標、行内の文字平均高さやピッチから推定される文字サイズ、太字、斜体、下線といった文字修飾情報、フォント種類などを付加してもよい。得られた文字認識結果は、領域データ207中の対応する文字領域に関連づけられて、メモリ103もしくはハードディスク104に記憶される。
【0092】
領域データ207に含まれる複数の文字領域がある場合は、文字認識部204は、それぞれの領域に対しS1001とS1002の処理を行って各領域の文字認識結果を記憶する。なお、S1001ですべての文字領域を含む入力と等サイズの二値画像を作成してから、各領域にS1002の文字認識処理を施すように処理してもよい。
【0093】
(文字認識部による処理結果の例)
図11は、ひとつの文字領域に対して得られる文字認識結果データ構成の例である。図11(a)は処理対象となる文字領域の例であり、“ab c”、“123”、“if”の3行からなる8つの文字を含んでいる。なお、1行目の“ab”と“c”との間には1文字分スペースが空いているものとする。
【0094】
図11(a)の文字領域に対する文字認識結果の例を図11(b)に示す。この文字認識結果の領域情報には、領域全体の外接矩形座標と、認識された文字行数3が保持されている。行情報は各行に含まれる文字数として、それぞれ4、3、2が保持されている。認識文字情報は、各文字の文字コード、文字の外接矩形座標、推定文字サイズ、太字・斜体などの文字修飾種類で構成されており、領域内の1行目先頭文字から順に全行続けて配置されている。例えば、図11(a)の1行目に対しては、ASCIIコードとしてそれぞれ0x61、0x62、0x20、0x63の4文字分の文字コード情報が保持されている。ここで3文字目は、スペース文字として認識された文字情報である。また、それぞれの文字の外接矩形座標、および本行内の共通情報として、推定文字サイズ14(ポイント)と、文字修飾なしの情報が保持されている。
【0095】
(電子文書記述生成部による処理)
電子文書記述生成部205の処理を図13のフローチャートを用いて説明する。S1301では、電子文書記述生成部205は、表領域に関するデータの出力形式を指定するモードを設定する。ここで設定可能なモードは、通常出力と表形式出力の2択であるとする。両モードの説明は、実際にモード設定の影響をうけるS1305の処理内容説明の箇所で行う。また、いずれのモードが設定されるかは、本電子文書生成処理の制御項目として予め指定されているものとする。また、ここで設定したモードは、生成される出力電子文書210のフォーマットの違いに関連するとして、以下のステップの記述データのフォーマットや記述文法が、同モードによって変更されるようにしてもよい。
【0096】
S1302では、電子文書記述生成部205は、出力電子文書210の開始部分を記述するデータを出力する。本説明では、出力先はメモリ103あるいはハードディスク104に確保される出力バッファ(不図示)である。以降、本処理でデータが出力される毎に、その内容は出力バッファ内に出力済のデータの末尾へ追記されていくものとする。
【0097】
S1303では、電子文書記述生成部205は、出力電子文書210において、ページの開始部分を記述するデータを出力する。なお本例では、1の入力画像200の内容を出力電子文書210の1ページに対応させるものとする。S1304では、電子文書記述生成部205は、領域データ207内におけるルートノードを最初の処理対象となる注目ノードに設定する。S1305は、後述の図14のフローチャートで説明される処理関数を呼び出すステップである。このS1305における関数処理では、電子文書記述生成部205は、注目ノードに関する領域データ記述の出力処理を行う、さらにその子領域ノード以下に対しても順にデータ出力処理が行われるよう同処理関数の再帰呼び出しをする。
【0098】
この処理関数としてのS1305による処理内容を、図14のフローチャートを用いて説明する。S1401では、電子文書記述生成部205は、現在の出力モードが表形式であるか否かを調べる。出力モードはS1301で設定されたものである。表形式の場合は(S1401にてYES)、S1406に進み、それ以外の場合は(S1401にてNO)、S1402に進む。
【0099】
S1402では、電子文書記述生成部205は、本関数の呼び出し時に、処理対象として指定された注目ノード(以下、指定注目ノードと記す)に対応する領域に、出力対象となるデータがあるか否かを調べる。データが有る場合は(S1402にてYES)、S1403に進み、データが無い場合は(S1402にてNO)、S1403の処理をスキップしてS1404に進む。
【0100】
ここで出力対象となるデータは、領域の種別毎に、図16のような定義テーブルによって予め指定されているものとする。例えば、図16に示す定義1601のテーブルが指定されている場合、指定注目ノードが“ルートノード”の場合は、関連付けられた背景画像データが出力対象となる。指定注目ノードが“文字領域ノード”の場合は、関連付けられた文字データが出力対象となる。以降同様に、“線画領域ノード”に対してはベクトルデータが出力対象となり、“写真領域ノード”に対しては切り出し画像データが出力対象となる。“表領域”と“フラット領域”のノードに対しては、出力対象データ無しと判定される。なお、定義テーブルに定められた出力対象が、指定注目ノードに関連づけられ存在していない場合も、出力データ無しと判定される。
【0101】
S1403では、電子文書記述生成部205は、S1402で出力対象とされたデータを、必要に応じて出力電子文書210の記述フォーマットへと変換したうえで、出力バッファへと出力する。
【0102】
S1404では、電子文書記述生成部205は、指定注目ノードが子領域ノードを持つか否かを調べる。子領域ノードを持つ場合は(S1404にてYES)S1405に進み、持たない場合は(S1404にてNO)、現在の指定注目ノードに対する本処理を終了する。
【0103】
S1405では、電子文書記述生成部205は、注目ノードが持つ子領域の各々を新たな注目ノードとして、それぞれに対する関数S1305の呼び出しを行う。すなわち、電子文書記述生成部205は、各子領域に対し、それらの子孫領域への再帰処理がなされるようなループ処理を行う。このループ処理が終了すると、指定注目ノード、およびその子領域ノードに対する再帰処理は終了したものとして、本処理を終了する。
【0104】
一方、S1401で出力モードが表形式であると判定された場合(S1401にてYES)、S1406に進む。そして、電子文書記述生成部205は、さらに指定注目ノードが表領域であるか否かを判定する。指定注目ノードが表領域である場合は(S1406にてYES)S1408に進み、それ以外である場合は(S1406にてNO)、S1407に進む。
【0105】
S1408に進んだ場合、すなわち指定注目ノードが表領域であった場合、電子文書記述生成部205は、表形式を開始する記述データを出力バッファに出力する。S1409にて、電子文書記述生成部205は、前述のS710により表領域ノードへ関連づけされたセル要素リストを対象に、その各セル要素を指定注目ノードとして、それぞれ関数S1305の呼び出しを行うことでループ処理を行う。電子文書記述生成部205は、すべてのセル要素に対して関数S1305の処理を行うと、ループ処理を終了し、S1410に進む。S1410では、表形式を終了する記述データを出力バッファに出力し、指定の表領域ノードを対象にした本処理を終了する。
【0106】
一方、S1406からS1407に進んだ場合、S1407にて更に、電子文書記述生成部205は、指定注目ノードがセル要素であるか否かを調べる。セル要素では無い場合(S1407にてNO)、すなわち指定注目ノードが、表領域以外の領域ツリーのノードであった場合は、S1402に進む。そして、電子文書記述生成部205は、上述したS1402以降と同処理を行う。一方、指定注目ノードがセル要素の場合、すなわち、現処理が前述のS1409のループ処理内部での関数S1305の呼び出しの処理である場合(S1407にてYES)、S1411に進む。
【0107】
S1411では、電子文書記述生成部205は、セル記述を開始するデータを出力バッファに出力する。S1412では、電子文書記述生成部205は、注目ノードに相当するセル要素が、セル内容となる領域ノードへのリンクを持っているか否かを調べる。リンクを持っている場合は(S1412にてYES)、S1413に進む。リンクを持っていない、すなわちリンクのリストサイズが0の場合は(S1412にてNO)、S1414に進む。
【0108】
S1413では、電子文書記述生成部205は、セル内容のリンクリストが保持しているリンク先の領域ノードそれぞれを指定注目ノードとして、S1305の関数処理呼び出しを行うことでループ処理を行う。電子文書記述生成部205は、すべてのリンク先の領域ノードに対し、S1305の処理を行った後、ループ処理を終了してS1414に進む。
【0109】
S1414にて、電子文書記述生成部205は、セル記述を終了するデータを出力バッファに出力し、現在の指定注目ノード、すなわち表領域に関連づけられたセル要素に対する、本処理を終了する。
【0110】
上述した複数箇所で説明されている、関数S1305の処理終了後の動作について補足する。図13のS1304の直後に、ルートノードを指定注目ノードとして、関数S1305が呼び出されている場合、電子文書記述生成部205は、S1306を実行する。一方、前述のループ処理S1405において、ある子領域ノードを指定注目ノードとして、関数S1305が呼び出されている場合は、電子文書記述生成部205は、次の子領域を指定注目ノードとして関数S1305を呼び出すようループ処理を続行する。セル要素に対するループ処理S1409において、セル要素を注目ノードとして、関数S1305が呼び出されている場合には、電子文書記述生成部205は、次のセル要素を注目ノードとするようループ処理を続行する。セル内容としてリンクされる領域ノードに対するループ処理S1413にて、関数S1305が呼び出されている場合は、電子文書記述生成部205は、リンクリストの次の領域ノードを注目ノードとして関数S1305を呼び出すようループ処理を続行する。
【0111】
図13に戻り、以降の処理について説明する。S1306では、電子文書記述生成部205は、ページの終端データを出力する。なお、S1305の再帰処理が終了した時点で、領域データ207中に含まれるノードにあり、1ページの内容として出力すべきデータの出力は完了している。
【0112】
S1307では、電子文書記述生成部205は、追加のページがあるか否かを調べる。追加のページは、図2の電子文書記述生成処理が複数ページの出力電子文書210を出力するよう動作している場合に、追加の画像が入力された際に発生する。追加のページがある場合は(S1307にてYES)、電子文書記述生成部205は、S1303に戻って以下の処理を繰り返す。追加のページが無い、すなわちこれ以上画像が入力されない場合は(S1307にてNO)、S1308へ進む。
【0113】
S1308では、電子文書記述生成部205は、電子文書の終端データを出力する。本データの追加により完結した電子文書データが出力バッファ上に完成する。最後にS1309では、電子文書記述生成部205は、出力バッファ上の電子文書データを出力電子文書210として、利用者により予め指定されたPC等の宛先に送信し、電子文書生成処理を終了する。
【0114】
なお、上記では、十分なサイズの出力バッファに出力電子文書210の全体を書き出すよう説明したが、もっと小さい出力バッファサイズで処理できるようにしてもよい。例えば、各ページの終端データを出力した時点で出力バッファの内容を指定送信先へと送信し、次ページの内容はクリアされた出力バッファの先頭から書き出すようにしてもよい。あるいはもっと小さい単位で出力バッファへの書き出しと送信、クリアを繰り返すようにしてもよい。
【0115】
(電子文書記述生成部による処理結果の例(その1))
図13および図14の具体的な処理内容の実例を示すために、図9(c)および図9(d)の領域データを入力とした場合の動作例、および出力例を以下に説明する。以下では、電子文書生成処理の制御パラメータとして、図13のS1301にて指定される出力モードと、図14のS1402で参照される出力対象の定義テーブルの組み合わせのケースを2通り設定し、それぞれのケースでの動作と出力例を説明する。
【0116】
まず、電子文書生成処理の制御パラメータとして、出力モードに“表形式”が指定され、出力対象の定義テーブルに、図16の定義1601が指定されているケースの出力例を、図17(a)の出力1700に示す。出力1700は、本説明の為の仮想の電子文書フォーマットに基づいた電子文書の例である。この出力1700は、図13、図14中のデータ出力を行う各処理ステップから出力されたデータの記述1701〜1718によって構成されている。以下、出力1700の生成過程を図13および図14の処理内容に沿って説明する。
【0117】
図13フローチャートのS1301の処理にて、本ケースの前提にとなる“表形式”の出力モードが設定される。続くS1302、S1303にて、電子文書記述生成部205は、電子文書の開始データ、およびページの開始データとして、それぞれ記述1701、1702を出力する。ここで、ページの開始データを示す記述1702は、ページサイズの情報である幅2480、高さ3520を含んでいる。
【0118】
S1304で、電子文書記述生成部205は、図9(c)の領域データにおけるルートノードを注目ノードに設定し、関数S1305を呼び出す。関数S1305の処理内容として、図14に移り、電子文書記述生成部205は、S1401にて判定を行う。ここでは、出力モードは表形式なのでS1406に進む。そして、注目ノードは、ルートノードなので、S1407を経てS1402に進む。
【0119】
S1402では、電子文書記述生成部205は、図16の定義1601を参照する。そして、ルートノードには出力対象となる背景画像データがあるので、S1403に進む。S1403では、電子文書記述生成部205は、背景画像データを出力電子文書のフォーマットに変換した記述1703を出力する。この記述1703は、インライン参照される圧縮画像データを、画像オブジェクトとして電子文書ページの指定範囲にイメージ描画する記述である。
【0120】
S1404に進み、ルートノードには子領域ノード920があるのでS1405に進む。ループ処理S1405内では、電子文書記述生成部205は、フラット領域である子領域ノード920に対して関数S1305を呼び出し、同領域を注目ノードとしたS1401以降の処理を行う。
【0121】
上記同様に、S1401、S1406、S1407、S1402と進む。S1402では図16の定義1601により、フラット領域の出力対象は無いので、S1404に進む。そして、電子文書記述生成部205は、子領域ノード921,930,929,924のそれぞれに対し、ループ処理S1405内で関数S1305を呼び出す。
【0122】
最初の3つの子領域ノードに対する処理フローは上述の子領域ノード920の場合と同等なので、詳細な説明は省略するが、子領域ノード921に対しては文字データが出力対象となり記述1704が出力される。記述1704は電子文書ページの指定範囲、サイズ、色で文字列を文字オブジェクトとして配置する記述である。子領域ノード930に対しては切り出し画像データが出力対象となり記述1705が出力される。記述1705は記述1703同様の画像オブジェクトを出力するイメージ描画の記述である。子領域ノード929に対してはベクトルデータを出力する記述1706が出力される。記述1706は、パスオブジェクトとして連続する直線・曲線パスを描画し塗色するベクトル描画記述である。なお、これらのノードは子領域を持たないので、関数S1305はS1404以降の処理は行われずに終了する。
【0123】
一方、最後の子領域である子領域ノード924に対しては、表領域であるのでS1406からS1408に進み、電子文書記述生成部205は、表形式オブジェクトの開始データである記述1707を出力する。記述1707には、表形式オブジェクトのパラメータとして、表領域の範囲座標、表の構造解析によって得られた行数と列数、そして行列構造の境界位置の座標リストが含まれる。
【0124】
続くS1409は、表領域に関連づけられたセル要素、すなわち図9(d)のセル要素941、942、943に対しそれぞれ関数S1305を呼び出すループ処理である。セル要素941に対する処理では、電子文書記述生成部205は、S1401、S1406、S1407からS1411に進み、セルの開始データとなる記述1708を出力する。このセル開始記述は、同セルの構造情報である論理座標“1,1”を含む。
【0125】
S1412にて、セル要素941は、セル内容としての子領域ノード922へのリンクを有しているので、ループ処理S1413に進む。そして、電子文書記述生成部205は、子領域ノード922への関数S1305呼び出しを行う。同呼び出し処理のフローは前述の文字領域ノードを注目ノードとした場合のフローと同様なので省略するが、結果として文字領域である子領域ノード922に関連づけられた文字データによる、文字オブジェクトの記述1709が出力される。
【0126】
ループが終了するとS1414に進み、電子文書記述生成部205は、セルの終了データである記述1710を出力する。
【0127】
その後、セル要素941に対する関数S1305の処理が終了したので、電子文書記述生成部205は、ループ処理S1409により次のセル要素942に対する関数S1305の呼び出し処理を行う。同様に、電子文書記述生成部205は、結果として論理座標“2,1”のセル開始記述1711、セル内容としての文字領域である子領域ノード923に関連づけられた文字データの記述1712、セル終了記述1713を出力する。
【0128】
最後のセル要素943に対して、電子文書記述生成部205は、論理座標の開始位置“1,2”、終了位置“2,2”のセル開始記述1714を出力した後、このセルに対しては、セル内容が無いため、続けてセル終了記述1715を出力する。
【0129】
電子文書記述生成部205は、全セル要素を処理した後、S1409のループを終了し、S1410にて電子文書記述生成部205は、表形式の終了データである記述1716を出力する。この関数S1305の終了により、子領域ノード920に対する全ての子領域ノードへの処理が終了する為、電子文書記述生成部205は、図13に戻りS1306に進む。
【0130】
S1306では、電子文書記述生成部205は、ページの終端データとして記述1717を出力する。ここでは追加のページは無いためS1308に進み、電子文書記述生成部205は、電子文書の終端データである記述1718を出力する。
【0131】
以上により完成した電子文書の出力1700がS1309で指定送信先へと送られることになる。
【0132】
(電子文書記述生成部による処理結果の例(その2))
次に、電子文書生成処理の制御パラメータとして、出力モードに“通常出力モード”が指定され、出力対象の定義テーブルとして、図16の定義1602が指定されているケースの出力例を、図17(b)の出力1750に示す。出力1750も、本説明の為の仮想の電子文書フォーマットに基づいた電子文書の例である。出力1750は、図13、図14中のデータ出力を行う各処理ステップから出力されたデータの記述1751〜1765によって構成されている。以下、出力1750の生成過程を図13および図14の処理内容に沿って説明する。
【0133】
図13に示すフローチャートのS1301の処理にて、本ケースの前提により“通常出力モード”が設定される。続くS1302で、電子文書記述生成部205は、電子文書の開始データの記述1751を出力する。この記述1751は出力モードが表形式ではないことに対応して、出力1700とは別形式の電子文書フォーマットを宣言するものである。ただし、本例では説明を簡略にするため、ページ内容を構成するオブジェクト記述のフォーマットは出力1700と同様であるとする。
【0134】
S1303にて、電子文書記述生成部205は、ページサイズの情報を含むページの開始データとして記述1752を出力する。S1304で、電子文書記述生成部205は、図9(c)領域データのルートノードを注目ノードに設定し、関数S1305を呼び出す。
【0135】
図14に移り、S1401で、出力モードは表形式では無いのでS1402に進む。S1402では電子文書記述生成部205は、図16の定義1601を参照する。ここでは、ルートノードには出力対象となる背景画像データがあるのでS1403に進む。
【0136】
S1403では、電子文書記述生成部205は、背景画像データを画像オブジェクトとして配置する記述1753を記述する。S1404に進み、ルートノードには子領域ノード920があるのでS1405に進む。
【0137】
電子文書記述生成部205は、ループ処理のS1405内では、フラット領域である子領域ノード920に対して関数S1305を呼び出し、同領域を注目ノードとしたS1401以降の処理を行う。ここで、出力モードが“通常モード”の場合、図14のS1406側に処理が進むことはない。よって、電子文書記述生成部205は、領域データのツリー順に、各領域ノードに対する関数S1305の処理を共通のフローで行う。その結果、図16の定義テーブルに従って対象領域のオブジェクトを記述するデータが順に出力されることになる。
【0138】
以下、ツリー順に処理される順番で出力内容を説明すると、フラット領域である子領域ノード920に対しては、関連づけられたデータが無いので出力は行われない。文字領域である子領域ノード921に対しては、文字領域である画素塊901の文字線をベクトル化したパスオブジェクトのデータとして記述1754が出力される。自然画領域である子領域ノード930に対しては、切り出し画像のオブジェクトを配置するデータとして記述1755が出力される。線画領域である子領域ノード929に対しては、線画のベクトルデータをパスオブジェクトとして描画する記述1756が出力される。
【0139】
表領域である子領域ノード924に対しては、表枠のベクトルデータをパスオブジェクトとして記述する記述1757が出力される。フラット領域である子領域ノード925に対しては、フラット領域のベクトルデータをパスオブジェクトとして描画する記述1758が出力される。文字領域である子領域ノード922に対しては、文字領域である画素塊902のベクトル化データをパスオブジェクトとして描画する記述1759が出力される。以下同様に、ノード926、923、927、928に対し記述1760、1761、1762、1763が出力される。
【0140】
電子文書記述生成部205は、全領域ノードの出力処理が終了すると、図13に戻ってS1306ではページの終端データとして記述1764を出力する。ここでは追加のページは無いためS1308に進み、電子文書記述生成部205は、電子文書の終端データである記述1765を出力する。以上により完成した電子文書の出力1750がS1309で指定送信先へと送られることになる。
【0141】
(PCにおける画面の例)
次に、本発明の画像処理装置100が実施する電子文書生成処理によって生成された出力電子文書210を受けとったPCの動作例を図18に示す。
【0142】
図18(a)は、図17の出力1700に示される、表形式の記述を含む出力電子文書210を利用可能なアプリケーション1801の動作画面の例である。アプリケーション1801はPC120上で動作するGUIベースのウィンドウプログラムであり、ユーザのキーボード入力やマウス操作によって文字入力や図形入力を受けつける。そして、紙面レイアウトと同等のページ表示を行いながら、その編集が可能な電子文書作成環境を提供する、いわゆるワードプロセッサである。アプリケーション1801は編集後または途中の電子文書の状態を、専用もしくは汎用の電子文書ファイルとして保存することが可能である。図17の出力1700は、この電子文書のフォーマットで記述されているものとする。
【0143】
図18(a)のページ画面1802は、アプリケーション1801で出力1700の電子文書を読み込み、同文書のページ内容として表示したページ画面の例である。ページ画面1802は、記述1702のサイズ指定に従って作成され、以降の記述によりページ内容のオブジェクトを順に描画した状態にある。
【0144】
まず、記述1703によりページ全体を覆うように背景画像データが描画される。以降の記述によるグラフィックスデータ、画像データは、それぞれこの背景に対する前景オブジェクトとして重畳描画される。
【0145】
文字部分1803は、図17の記述1704により文字オブジェクトとして配置された文字列である。記述1704は、指定の座標範囲に、入力画像から抽出した文字画素塊色である黒色で、文字列“ABC(改行)DEF”を描画する記述である。なお、記述1704にフォントの指定は無いため、文字部分1803はアプリケーション1801のデフォルトフォントで文字列が描画されている。オブジェクト1804は記述1705に従って配置された切り出し画像のオブジェクトであり、オブジェクト1805は記述1706に従ってベクトル描画された線画オブジェクトである。
【0146】
オブジェクト1806は、記述1707〜1715に基づいて描画された表形式のオブジェクトであり、記述1707に指定されるように2行2列の行列構造で3つのセル領域を有するように描画されている。そして、上段2つのセル内部には、それぞれ記述1709および1712に基づき、それぞれ青色の文字列“wx”、赤色の文字列“yz”が配置されている。
【0147】
なお、表1806内部の表枠・文字以外の部分は何も描画しないように設定されており、背景画像の画素がそのまま透過して見えるようになっている。ここで背景画像は図12(c)の背景画像1230のように表セルの背景にあたるフラット領域の画素を残しているので、表のオブジェクト1806は入力画像と同様の背景色を持つように見える。
【0148】
前述のとおり、アプリケーション1801では、表示された出力電子文書内の各オブジェクトに対する移動、変形といった編集操作が可能である。特に本例では、文字部分1803や文字部分1807、1808は文字コード列になっているので、文字の追加、削除や、フォント、書体、サイズ、色の変更といった、文字に対する編集操作を自由に行うことが可能である。また、表部分であるオブジェクト1806は表形式で表現されているため、セルの追加、削除や変形、罫線種類の変更といった表の編集操作を自由に行うことが可能である。よって、入力画像に対し、文字や表の編集を含む再利用を行いたい場合には、アプリケーション1801で利用可能な電子文書に変換することが好適である。
【0149】
なお、図17(a)に示す形式はあくまで一例であって、他の電子文書形式やオブジェクト記述方式を用いてもよい。特に、表形式のオブジェクト記述である記述1707〜1716の部分には、図17(c)のように、行数分のセル行要素が列数分のセル要素を含むような記述を用いてもよい。また、表のセル内に文字以外の領域の記述が含まれてもよい。
【0150】
一方、図18(b)は、図17の出力1750に示される電子文書を利用可能なアプリケーション1821の動作画面の例である。アプリケーション1821は1801同様に、PC120上で動作するGUIベースのウィンドウプログラムであり、ユーザが主にマウス操作による線分描画等で作図を行う、いわゆるドローイングツール等と呼ばれるものである。アプリケーション1821は、アプリケーション1801同様、編集後または途中の電子文書の状態を、専用もしくは汎用の電子文書ファイルとして保存することが可能である。図17の出力1750は、この電子文書のフォーマットで記述されているものとする。
【0151】
図18(b)のページ画面1822は、アプリケーション1821で出力1750の電子文書を読み込み、同文書のページ内容として表示したページ画面の例である。ページ画面1822は、記述1752のサイズ指定に従って作成され、以降、記述1753〜1763に基づいて、ベクトルデータもしくは画像データが順に描画されていく。
【0152】
これらの記述は、図13および図14の処理フローによって、領域データ207の領域ツリー順に出力されていることに特徴がある。図9(c)の領域ツリーの例の場合、子領域ノード920、921、930、929、924、925、922、926、923、927、928の順番である。そして、それぞれ出力データが記述1753、1754、1755、1756、1757、1758、1759、1760、1761、1762、1763の順番で出力されている。
【0153】
ここで、2つの記述の描画範囲が重なる場合、後の記述による描画オブジェクトによって、前の記述による描画オブジェクトは上書きされることになる。例として、記述1758および記述1759は、図9の表領域である画素塊904内部にある背景としての画素塊905とセル内の文字列である画素塊902の描画データである。これらは、図9(b)の画素塊の包含関係から導かれる領域ノード間の親子関係により、セル背景のフラット領域である子領域ノード925のデータ、セル内の文字領域である子領域ノード922のデータの順に記述されている。ここで、フラット領域のベクトルデータは、文字のベクトルデータに重畳されることを前提に、図12(b)に示すベクトルデータ1213のように内輪郭を再現しないベクトルデータにすることができる。このことはベクトルデータの記述量を減らし、生成される電子文書をコンパクトにする効果がある。
【0154】
アプリケーション1821では、表示された出力電子文書内の各オブジェクトに対する移動、変形といった編集操作が可能である。アプリケーション1801とは異なり、ベクトルデータで表現された文字に対する文字編集は不可能である。一方、文字部分の表現において、アプリケーションで利用可能なフォント種類に依存しないため、アプリケーション1801に比べて入力画像により忠実な表示が得られる。その為、見た目の一致度を重視して入力画像を再利用する場合には、本アプリケーションで利用可能な電子文書を生成することが好適となる。
【0155】
なお、図17における両記述の形式はあくまで一例であって、他の一般に公開された記述形式を用いてもよい。例えば、PDF(Page Description Format)、XPS(XML Paper Specification)、SVG(Scalable Vector Graphics)などのグラフィックスページ記述を用いてもよい。また、Office Open XML、Open Document Formatなどのページ編集データ記述などを用いてもよい。また、図17の出力1700と出力1750のように異なる電子文書フォーマットではなく、同一のフォーマットでオブジェクトの表現方式を変更するように電子文書を生成してもよい。
【0156】
以上説明したように、本発明に係る画像処理装置が実施する電子文書生成処理では、減色処理された入力画像に対し画素塊解析処理を行い、同色画素塊の抽出と、その相互関係を示す画素塊データを構築する。この画素塊データに対しレイアウト解析処理を行い、入力画像に存在する各種文書領域を特定し、同領域をノードとするツリー構造で表現した領域データを作成する。更に、このレイアウト解析処理において表解析を行い、各表領域に表内のセル構造を特定するセル要素リストを関連づける。
【0157】
またセル要素には、領域ツリー中でセル内容に相当する領域ノードへのリンクを保持させる。そして、出力電子文書におけるオブジェクト内容のデータとして、各領域に対応するグラフィックスデータを生成し、関連づける。また文字領域に対しては、文字認識を行って文字データを関連づける。そして最後に、上記生成された領域データ、グラフィックスデータ、および文字データから、出力電子文書の記述を生成する。
【0158】
このとき、表形式の出力モードでは、領域データの表領域を表オブジェクトとして、それ以外は各領域に関連付けられたグラフィックス又は文字オブジェクトとして、領域ツリー順に出力する記述を生成する。この場合、表領域以下のノードを処理する際、子領域ノードではなく、表領域に付加されたセル要素リストにアクセスする。そして、各セル要素が保持するリンク先の領域に関連づけられたオブジェクトデータをセル内容として記述する。これにより、セル構造に基づいて、表内の各領域のオブジェクトが配置された、表形式のオブジェクトを出力することが可能になる。
【0159】
一方、表形式ではない出力モードでは、表を含むすべての領域に対して領域ツリー順に処理し、各領域に関連付けられたグラフィックスオブジェクトを出力する記述を生成する。
【0160】
すなわち本実施形態によれば、画素塊構造の解析結果より生成されたツリー構造の領域データに、表解析結果によるセル構造に基づくアクセス手段を付与する。これは、出力される電子文書に、セル構造を持った表形式のオブジェクトを含めることを可能にする効果がある。また、領域データは包含関係に基づく領域のツリー構造も保持しているので、ツリー順に各領域のグラフィックスデータを記述するだけで、効率良く電子文書のオブジェクト記述を生成することができる。
【0161】
更に、表オブジェクトの出力内容を表形式にするかグラフィックス形式にするかを、領域データの表領域以下に対するデータアクセス方法により変更できる。すなわち、ひとつの領域データを用いて、生成する電子文書に表形式を含めるか否かを、電子文書の記述段階で容易に切り替えられる効果がある。
【0162】
<第二実施形態>
本発明の第一実施形態では、画像処理装置が実施する図2の電子文書生成処理を、画像の入力から電子文書の出力までを1単位の処理として説明した。これを、画素塊解析部201〜文字認識部204の解析・データ生成処理部と、それらデータから電子文書記述を生成する電子文書記述生成部205の2つに分割してもよい。つまり、前半の解析・データ生成処理は、領域データ207、グラフィックスデータ208、文字データ209をメモリ103もしくはハードディスク104に記憶して終了する。
【0163】
続く電子文書記述生成部205は、ここまでに記憶されたデータ(領域データ207〜文字データ209)に対して電子文書の記述を生成するよう動作する。そして、ひとつの入力から生成されたデータに複数回の電子文書記述生成処理を施すことで、複数種類の電子文書を生成するように構成してもよい。このとき、電子文書記述生成部205の制御パラメータである、出力モードおよび領域種別毎の出力対象の定義テーブルは、処理毎に変更することができる。
【0164】
すなわち、一回の解析・データ生成処理で得たデータ(領域データ207〜文字データ209)から、表形式オブジェクトを含む電子文書と含まない電子文書の両方を出力することが可能である。あるいは、過去に記憶された複数のデータ(領域データ207〜文字データ209)の中から、ユーザが変換対象を選ぶ。そして、出力電子文書形式を指示することで、指示に合ったデータ形式を持つ電子文書を生成することも可能である。
【0165】
すなわち本実施形態によれば、第一実施形態の効果に加え、更に、解析処理により得られたデータを記憶しておくことで、同じデータに対し出力形式を指定して複数の電子文書を生成することができる。これにより、入力画像から一度解析データを得る処理を実施しておけば、表形式オブジェクトの有無を含む複数形式の電子文書を生成することが可能となり、処理時間や処理リソースを削減する効果がある。
【0166】
<第三実施形態>
本発明に係る第一、第二実施形態では、表形式のオブジェクトを生成するか否かを、電子文書記述生成処理における出力モードとして設定し、入力画像から抽出されたすべての表領域に対して一律に作用するようにしていた。これを、電子文書記述生成処理内で、表領域ごとに表形式のオブジェクトを生成するか否かを選択できるようにしてもよい。
【0167】
図19は、図2の電子文書記述生成部205の処理を説明する図13のフローチャートにおける、関数S1305の別の実施形態を説明するフローチャートである。なお、図19にて図14と同じ記号が付与されたステップは、図14と同一の動作をするものとする。よって、重複する部分については、説明を省略する。
【0168】
図14との唯一の差分となるS1901では、電子文書記述生成部205は、注目の表領域ノードを表形式で出力するか否かを判定する。この判定は、表領域に付与されている情報である、セルの行列構造の複雑度から決めればよい。例えば、行数と列数が共に“1”の場合には、出力電子文書210でセル構造を再現する必要性は低く、逆に飾り枠の領域であるなど、表形式よりもグラフィックスのオブジェクトで表現するほうが適切である可能性もある。なお、これはあくまで一例であり、あるいは表枠画素塊の色や形状、表内フラット領域の分割数、セル内の文字認識結果などを考慮して決めてもよい。あるいは、ユーザに領域データを提示し、各表領域の出力形式を対話的に指定できるようにしてもよい。
【0169】
表形式で出力すると判定した場合(S1901にてYES)は、S1408に進み、電子文書記述生成部205は、以降、図14の説明と同様に、セル構造に基づく表オブジェクトの記述を出力する。それ以外の場合は(S1901にてNO)、S1402に進み、図14の説明と同様に、表枠およびそれらの子領域のグラフィックスデータによるオブジェクト記述が出力されるよう処理される。
【0170】
すなわち本発明に係る第三実施形態によれば、第一実施形態の効果に加え、更に、表オブジェクトの出力方法を、モード指定制御および対象表領域の特性に基づいて、表領域以下のデータアクセス方法変更により切り替える。よって、出力電子文書に表形式を含めるか否かを、電子文書の記述段階で容易に切り替えつつ、表形式の出力が適切な表領域のみが、表形式のオブジェクトで出力されるという効果がある。
【0171】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【0172】
また、本発明は、図2の各処理部の一部または全部を、電子回路等のハードウェアを用いて実現してもよい。

【特許請求の範囲】
【請求項1】
入力画像から編集が可能な電子データを生成する画像処理装置であって、
表を含む画像を前記入力画像として入力する入力手段と、
前記入力画像を構成する画素において画素値が近似する複数の画素塊を抽出し、当該複数の画素塊間の包含関係を解析する画素塊解析手段と、
前記複数の画素塊が構成する領域を、文字領域、表領域、およびそれ以外の領域のうちの少なくともいずれかとして識別する識別手段と、
前記画素塊解析手段にて解析した画素塊間の包含関係と、前記識別手段にて識別した画素塊の領域とに従って、領域間の包含関係を示すツリー構造のデータを生成する生成手段と、
前記表領域として識別された画素塊に対して、表の行列構造を解析する表構造解析手段と、
前記表の行列構造を構成するセル要素それぞれの情報を生成し、前記ツリー構造のデータにおける表領域に関連付ける関連付け手段と、
前記セル要素それぞれに対し、前記識別手段にて識別した領域のうち、当該セル要素の内容に相当する領域へのリンク情報を設定する設定手段と
を備えることを特徴とする画像処理装置。
【請求項2】
前記画素塊解析手段が画素塊を抽出する入力画像を構成する画素値は、3種類以上の値のうちのいずれかから設定されることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記ツリー構造のデータから、前記電子データを定義する記述を生成する生成手段と、
前記表領域を、表形式にて出力するか否かの指定を受け付ける指定手段と
を更に有し、
前記生成手段は、前記表領域を表形式で出力する場合には、当該表領域に関連付けられたセル要素の情報と前記リンク情報とに従って前記電子データにおける当該表領域の記述を生成し、当該表領域を表形式で出力しない場合には、前記ツリー構造に従って前記電子データにおける前記表領域の記述を生成することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記文字領域の画素塊から文字を認識し、文字データを生成する文字認識手段を更に有し、
前記生成手段は、前記文字データを用いて前記電子データにおける当該文字領域の記述を生成することを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記ツリー構造を構成する各領域のデータとして、ベクトルデータもしくは前記入力画像から切り出した画像データで表現されるグラフィックスデータを生成するグラフィックスデータ生成手段を更に有し、
前記生成手段は、前記グラフィックスデータを用いて前記電子データにおける記述を生成することを特徴とする請求項3に記載の画像処理装置。
【請求項6】
前記生成手段は、ひとつの入力画像に対応する前記ツリー構造のデータおよび領域のデータから、複数種類の電子データを定義する記述を生成し、
前記複数種類の電子データは、表形式にて定義された表領域の記述を含む電子データ、および表形式にて定義されていない表領域の記述を含む電子データであることを特徴とする請求項3に記載の画像処理装置。
【請求項7】
前記指定手段は、前記入力画像に含まれる表領域ごとに、表形式で出力するか否かの指定を受け付けることを特徴とする請求項3に記載の画像処理装置。
【請求項8】
入力画像から編集が可能な電子データを生成する画像処理方法であって、
入力手段が、表を含む画像を前記入力画像として入力する入力工程と、
画素塊解析手段が、前記入力画像を構成する画素において画素値が近似する複数の画素塊を抽出し、当該複数の画素塊間の包含関係を解析する画素塊解析工程と、
識別手段が、前記複数の画素塊が構成する領域を、文字領域、表領域、およびそれ以外の領域のうちの少なくともいずれかとして識別する識別工程と、
生成手段が、前記画素塊解析工程にて解析した画素塊間の包含関係と、前記識別工程にて識別した画素塊の領域とに従って、領域間の包含関係を示すツリー構造のデータを生成する生成工程と、
表構造解析手段が、前記表領域として識別された画素塊に対して、表の行列構造を解析する表構造解析工程と、
関連付け手段が、前記表の行列構造を構成するセル要素それぞれの情報を生成し、前記ツリー構造のデータにおける表領域に関連付ける関連付け工程と、
設定手段が、前記セル要素それぞれに対し、前記識別工程にて識別した領域のうち、当該セル要素の内容に相当する領域へのリンク情報を設定する設定工程と
を有することを特徴とする画像処理方法。
【請求項9】
コンピュータを、
表を含む画像を入力画像として入力する入力手段、
前記入力画像を構成する画素において画素値が近似する複数の画素塊を抽出し、当該複数の画素塊間の包含関係を解析する画素塊解析手段、
前記複数の画素塊が構成する領域を、文字領域、表領域、およびそれ以外の領域のうちの少なくともいずれかとして識別する識別手段、
前記画素塊解析手段にて解析した画素塊間の包含関係と、前記識別手段にて識別した画素塊の領域とに従って、領域間の包含関係を示すツリー構造のデータを生成する生成手段、
前記表領域として識別された画素塊に対して、表の行列構造を解析する表構造解析手段、
前記表の行列構造を構成するセル要素それぞれの情報を生成し、前記ツリー構造のデータにおける表領域に関連付ける関連付け手段、
前記セル要素それぞれに対し、前記識別手段にて識別した領域のうち、当該セル要素の内容に相当する領域へのリンク情報を設定する設定手段
として機能させるためのプログラム。

【図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

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2013−80348(P2013−80348A)
【公開日】平成25年5月2日(2013.5.2)
【国際特許分類】
【出願番号】特願2011−219563(P2011−219563)
【出願日】平成23年10月3日(2011.10.3)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】