説明

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

【課題】電子文書に対する多くの目的に最適なフォーマット仕様の電子文書を作成する画像処理装置、画像処理方法、及びプログラムを提供すること。
【解決手段】入力画像200から表領域を識別し、当該表領域の表構造を解析する。解析された表構造に対して表罫線判定を行い、判定結果に応じて、枠罫線情報及びベクトル罫線オブジェクトを生成する。生成された枠罫線情報及びベクトル罫線オブジェクトを用いて、電子文書(ワークブック220)を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は文書画像処理結果の保存方法に関する。
【背景技術】
【0002】
近年、インターネットに代表されるようなネットワークの広がりにより、文書が電子的に配布される機会も増えたが、電子文書(ドキュメント)が紙に印刷された状態で配布されることも多い。紙文書しか手元に存在しない場合でも、その内容を紙から再利用可能なデータとして得られるようにするための技術が考えられている。たとえば、特許文献1には、端末から文書画像をサーバに送信し、サーバ上で認識した当該文書画像のデータを再利用可能なフォーマットに変換して端末に戻す技術が開示されている。また、特許文献2には、文書画像をオブジェクトの種類に対応する領域に分けて、個別にデータを出力できるようにする技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平11-167532号公報
【特許文献2】特開2005-346137号公報
【特許文献3】米国特許第5,680,478号明細書
【特許文献4】特開2004-086436号公報
【特許文献5】特許第3026592号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
紙文書をスキャンして生成された文書画像を電子文書化する時、ユーザが再利用したいデータの形式は場合によって異なるが、それぞれがユーザにとって利用しやすい状態で文書画像中のオブジェクトが配置されることが望まれる。たとえば、文書画像中の表を表として編集して使いたいユーザにとっては、電子文書上で表オブジェクトとして編集可能な状態で配置される事が望ましい。また、表を再度印刷して紙文書として使いたいユーザにとっては、できる限り文書画像に忠実に表罫線等のビジュアル情報を再現した状態で配置される事が望ましい。しかし、電子文書のフォーマットの仕様によっては、画像上の表を表オブジェクトに変換する際、文書画像の表罫線を完全に再現する事ができない場合がある。また、表のビジュアル情報を再現する為に、特許文献2などの方法を用いて表をベクトルオブジェクトとして描画する方法があるが、この方法ではユーザが表を表として編集する事、たとえば行の追加や削除をする事ができない。このように、ユーザが表を表として編集して使用したい場合や、印刷やディスプレイ出力して使用したい場合など、その目的によって最適なフォーマットの仕様は異なる。したがって、電子文書に対する多くの目的に最適なフォーマット仕様の電子文書を作成する事は困難である。
【課題を解決するための手段】
【0005】
本発明に係る画像処理装置は、入力された画像から、所定のフォーマット仕様が定められた電子文書を生成する画像処理装置であって、前記画像を解析し、表領域を識別する領域識別手段と、前記識別された表領域の表構造及び罫線を解析し、表のセルの情報を含む表構造情報を生成する表構造解析手段と、前記生成された表構造情報に含まれる前記セルの辺を前記フォーマット仕様に従って表の枠罫線として表現可能であるか否かを判断する判断手段と、前記枠罫線として表現可能であると判断された前記辺から枠罫線情報を生成する手段と、前記枠罫線として表現不可能であると判断された前記辺に対してベクトル変換処理を行い、ベクトル罫線オブジェクトを生成する手段と、前記生成された前記表構造情報、前記枠罫線情報、及び前記ベクトル罫線オブジェクトから前記電子文書を生成する電子文書生成手段とを備えたことを特徴とする。
【0006】
本発明に係る画像処理方法は、入力された画像から、所定のフォーマット仕様が定められた電子文書を生成する画像処理方法であって、前記画像を解析し、表領域を識別する領域識別ステップと、前記識別された表領域の表構造及び罫線を解析し、表のセルの情報を含む表構造情報を生成する表構造解析ステップと、前記生成された表構造情報に含まれる前記セルの辺を前記フォーマット仕様に従って表の枠罫線として表現可能であるか否かを判断する判断ステップと、前記枠罫線として表現可能であると判断された前記辺から枠罫線情報を生成するステップと、前記枠罫線として表現不可能であると判断された前記辺に対してベクトル変換処理を行い、ベクトル罫線オブジェクトを生成するステップと、前記生成された前記表構造情報、前記枠罫線情報、及び前記ベクトル罫線オブジェクトから前記電子文書を生成する電子文書生成ステップとを備えたことを特徴とする。
【0007】
本発明に係るプログラムは、入力された画像から、所定のフォーマット仕様が定められた電子文書を生成する画像処理方法をコンピュータに実行させるためのプログラムであって、前記方法は、前記画像を解析し、表領域を識別する領域識別ステップと、前記識別された表領域の表構造及び罫線を解析し、表のセルの情報を含む表構造情報を生成する表構造解析ステップと、前記生成された表構造情報に含まれる前記セルの辺を前記フォーマット仕様に従って表の枠罫線として表現可能であるか否かを判断する判断ステップと、前記枠罫線として表現可能であると判断された前記辺から枠罫線情報を生成するステップと、前記枠罫線として表現不可能であると判断された前記辺に対してベクトル変換処理を行い、ベクトル罫線オブジェクトを生成するステップと、前記生成された前記表構造情報、前記枠罫線情報、及び前記ベクトル罫線オブジェクトから前記電子文書を生成する電子文書生成ステップとを備えたことを特徴とするプログラム。
【発明の効果】
【0008】
本発明によれば、電子文書に対する多くの目的に最適なフォーマット仕様の電子文書を作成する画像処理装置、画像処理方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【0009】
【図1】本発明の実施形態におけるシステムの構成例を示す図である。
【図2】一実施形態における画像処理装置の動作を説明する図である。
【図3】一実施形態における表構造情報を説明する図である。
【図4】一実施形態における表罫線判定の処理を示すフローチャートである。
【図5】一実施形態における表罫線生成の処理を示すフローチャートである。
【図6】一実施形態における入力画像の例を示す図である。
【図7】一実施形態における表構造情報解析結果の一例を示す図である。
【図8】一実施形態における文字領域の文字認識結果の一例を示す図である。
【図9】一実施形態における変換対象ワークブックドキュメントの仕様の一例を示す図である。
【図10】一実施形態における変換されたワークブックドキュメントの一例を示す図である。
【図11】一実施形態における表示・編集プログラムにワークブックドキュメントを表示した例である。
【図12】他の実施形態における表示・編集プログラムでワークブックドキュメントを編集した例を示す図である。
【図13】他の実施形態における入力画像の例を示す図である。
【図14】他の実施形態における変換対象ワークブックドキュメントの仕様の例を示す図である。
【図15】他の実施形態における表罫線判定の処理を示すフローチャートである。
【図16】他の実施形態における表示・編集プログラムにワークブックドキュメントを表示した例である。
【発明を実施するための形態】
【0010】
以下、図面を参照して本発明の好適な実施形態を詳細に説明する。ただし、発明の範囲は、これらに限定されない。
【0011】
<実施形態1>
図1は実施形態1において用いられるシステムの構成の一例を示す図である。符号100は本発明を実現するための画像処理装置の構成例である。画像処理装置100は、スキャナ101、CPU102、メモリ103、ハードディスク104、及びネットワークI/F105を備える。スキャナ101は、読みとった文書の紙面情報を画像データに変換する読取装置である。CPU102は、画像データに本発明の処理を施すための電子ドキュメント生成プログラムを実行するプロセッサである。メモリ103は、ハードディスク104等から展開したプログラムを実行する際のワークメモリやデータの一時保存などに利用される。ハードディスク104は、電子ドキュメント生成プログラム等のプログラムやデータを格納する記憶装置である。ネットワークI/F105は、外部装置とデータの入出力を行うためのインタフェースである。パーソナルコンピュータ(PC)120は、画像処理装置100とLAN110などのネットワークで接続され、画像処理装置から送信されたデータを受信する端末装置である。PC120では、受信した電子ドキュメントを画面に表示し編集することが可能な表示・編集プロラグム121を実行することが可能である。
【0012】
図2は実施形態1における画像処理装置100の動作を説明する図である。図2に示される各処理は、CPU102で電子ドキュメント生成プログラムを実行することによって実現されるものとするが、その一部又は全部を電気回路で構成するようにしても構わない。
【0013】
符号200はスキャナ101から入力された入力画像である。符号210はこの入力画像200から電子ドキュメントを生成するための電子ドキュメント生成部である。ワークブックドキュメント220は電子ドキュメント生成部200によって生成された電子ドキュメント(電子文書)である。ワークブックドキュメント220には、所定のフォーマット仕様が定められている。フォーマット仕様の例については後述する。
【0014】
ブロック211〜215は、電子ドキュメント生成部210で実行される各処理を模式的に示したものである。
【0015】
符号211は入力された文書画像を解析し文字、表、自然画などの領域を抽出する領域識別部である。符号212は領域識別部211から抽出された表領域について表構造及び罫線の解析を行い、表構造情報を生成する表構造解析部である。
【0016】
図3は、表構造解析部212から得られる表構造情報をツリー表現で示した図である。表構造情報は、行と、行を列に切り分けた表の最小構成単位であるセルとから木構造を形成する。セルは子要素としてデータ、矩形、罫線の情報を持つ。データは、セル内の文字の認識結果を格納する。矩形は、位置x,yとサイズw,hから構成され、セルの文書中の座標を格納する。罫線は、セルを囲む罫線枠の情報で、上下左右の辺から構成され、辺は線の太さやパターン情報である線種、線色の情報を持ち、角がそれぞれ左上、右上、右下、左下から構成され、角の曲率の情報を格納する。また、図3で示す情報の持ち方は一例であり、行と列の分け方を逆にしてもよいし、表構造の情報を木構造で持たなくてもよい。
【0017】
図2の符号213は表構造解析部212から抽出された文字領域について文字認識を行う文字認識部である。認識した結果は、表構造情報のセル要素内のデータへ格納する。符号214は表罫線を、変換対象のワークブックドキュメントのフォーマットの仕様と照らし合わせセルの枠罫線として表現可能か判断する表罫線判定部である。
【0018】
符号215は表の罫線情報を生成する表罫線生成部であり、表罫線判定部214でセルの枠罫線としての描画が不可能と判断されたセルに対してはベクトル罫線オブジェクトを生成し、適切な位置に配置する。符号216は文字認識データとベクトル罫線オブジェクトとセルの枠罫線情報をワークブックドキュメント220のフォーマットへ変換するワークブックドキュメント変換部(電子文書生成部)である。
【0019】
ワークブックドキュメント生成部210によって生成されたワークブックドキュメント220はシート221を有し、PC120が保持する表示・編集プログラム121によって表示・編集が可能である。シート221はワークブックドキュメント内のページ単位であるシートのデータであり、表情報222,罫線ベクトル情報223を含んで構成される。
【0020】
以下に図4のフローチャートを用いて表罫線判定部214の例を説明する。
ステップS401では、表構造解析部212で抽出した表構造ツリーのセル要素から、表罫線判定処理が未処理のセル領域を選択する。ステップS402では、セルの辺要素について、それぞれにベクトル化をするかどうかを判断するベクトル化フラグを用意し、それらを偽に設定する。ベクトル化フラグに設定された情報は、メモリ103やハードディスク104などの記憶部に記憶される。以下に説明する種々の処理結果の情報についても同様である。ステップS403は、全ての{辺,隣辺}に対して、すなわち、{上,右},{右,下},{下,左},{左,上}に対して繰り返し処理をさせる繰り返し端を示す。辺に対して時計回り順方向に接する辺を隣辺としている。ステップS404では、辺と隣辺とが接する角の曲率が変換対象であるワークブックドキュメントフォーマットの仕様の範囲内であるかを判断する。もし範囲内であれば、S405、範囲外であればS408へ進む。ステップS405では辺の線色が変換対象であるワークブックドキュメントフォーマットの仕様の範囲内であるかを判断する。範囲内であればS406へ、範囲外であればS409へ進む。ステップS406では、辺の線種が変換対象であるワークブックドキュメントフォーマットの仕様の範囲内であるかを判断する。もし範囲内であればS407へ、範囲外であればS409へ進む。ステップS407はS403から始まる繰り返しの終端である。{辺,隣辺}が{左,上}であれば、繰り返しを終了しS410へ、そうでなければS403へ進む。ステップS408では、辺と隣辺のベクトル化フラグを真に設定し、S407へ進む。ステップS409では、辺のベクトル化フラグを真に設定し、S407へ進む。ステップS410では、未処理のセルが残っているかを判断し、未処理のセルがなければ処理を終了し、未処理のセルがあればS401へ進む。
【0021】
以上のように図4に示した処理によれば、表罫線判定部214において、辺と隣辺とが接する角の曲率、辺の線色、及び辺の線種が変換対象のワークブックドキュメントのフォーマットの仕様の範囲内であるか否かが判断される。フォーマットの仕様の範囲内でないと判断された場合、すなわち、辺をフォーマット仕様に従って表現不可能であると判断された場合、その辺のベクトル化フラグが真に設定される。なお、表現可能であるか否かの判断の方法はこの方法に限定されず、フォーマットの仕様が有しうる属性に基づいて判断される。
【0022】
以下に図5のフローチャートを用いて表罫線生成部215で行われる処理の例を説明する
ステップS501は表構造解析部212で抽出した表構造情報のセル情報から、表罫線生成処理が未処理のセル領域を選択する。ステップS502は1つのセル領域について、上辺、右辺、下辺、左辺に対して処理を繰り返す繰り返し端を示す。ステップS503は辺の罫線生成処理が既に行われているかを判断する。罫線生成処理が未処理であればS504へ、処理済であればS508へ進む。ステップS504は表罫線判定部214で付加したベクトル化フラグが真か偽かを判断する。真の場合はS505へ偽の場合はS509へ進む。ステップS505は隣り合った辺同士のベクトル化辺を結合する処理を行う。隣り合った辺のベクトル化フラグが真ならば結合し、残る平行している辺のベクトル化フラグが真ならばさらに結合する。隣り合った両辺がいずれも偽であれば、辺は結合されない。ステップS506ではS505で結合されたベクトル化辺に対して、ベクトル化処理を行う。すなわち、入力文書画像の対象罫線領域に対してベクトル変換処理を行い、ベクトル罫線オブジェクトを表罫線情報として生成する。ステップS507ではS506で生成されたベクトル罫線オブジェクトをセル上に配置する。配置位置はベクトル罫線オブジェクトの外接矩形左上点座標と右下点座標をそれぞれ、当該ベクトル罫線オブジェクトに対応するセルの左上座標相対位置、セルの右下座標相対位置になるようにする。すなわち、前記ベクトル罫線オブジェクトを表領域の相対座標に配置した表罫線情報を生成する。ステップS508はS502から始まる繰り返しの終端を示す。辺が左であれば(すなわち、1つのセル領域の上辺、右辺、下辺、左辺の全てに対して処理が終了した場合は)、S510へ、そうでなければS502へ進む。ステップS509では表構造情報の曲率、線種、線色の情報から変換対象であるドキュメントフォーマットのセルの罫線の仕様を用いてセルの枠罫線情報を表罫線情報として設定する。ステップS510では表罫線生成が未処理のセルがあるか判断する。未処理のセルがあればS501へ、未処理のセルがなければ処理を終了する。
【0023】
以上のように図5に示した処理によれば、ベクトル化フラグが真である隣り合う辺同士を結合してベクトル化処理を行い、生成されたベクトル罫線オブジェクトをセル上(すなわち、表領域の相対位置)に配置した表罫線情報を生成する。ベクトル化フラグが偽である辺に対しては、ドキュメントフォーマットのセルの罫線の仕様を用いてセルの枠罫線情報を設定した表罫線情報を生成する。
【0024】
以下、入力画像200の例として図6に示す画像600をワークブックドキュメント生成部210が独自形式のワークブックドキュメント220へ変換する処理の例を説明する。
【0025】
まず、領域識別部211で公知の画像解析処理を用いて入力画像中の文字領域と表領域を抽出する。領域の識別処理に関しては、例えば特許文献3にその例が提案されている。特許文献3には、文書画像中の黒画素、白画素の集合を抽出し、その形状、大きさ、集合状態等から、文字、絵や図、表、枠、線といった特徴的な領域を抽出することが開示されている。また領域の識別処理を使わずに、画像からランレングス等を用いて原始的な線情報を抽出する方法も存在する。
【0026】
画像600の例では、点線で囲まれる領域601が表領域として、領域602,603,604,605,606が文字領域として抽出されたものとする。
【0027】
次に、表構造解析部212では公知の表構造解析技術を用いて表内の行、列構造、罫線の線色、線種、角部曲率などの情報が抽出される。表構造解析技術に関しては、例えば特許文献4にその例が提案されている。特許文献4には、表領域内部の白画素塊の境界近傍から2方向のエッジからそれぞれ求めたヒストグラムに基づいて罫線情報を取得することが開示されている。
【0028】
図7は表構造解析部212で抽出された情報の例を表で示したものである。1-1のセルは、左上から1行1列目のセルを表す。このセルの外接矩形は左上座標が(100,200)(左上原点、単位pixel)、サイズが(200,70)(幅,高さ、単位pixel)であることが示されている。このセルの辺は線色が全辺RGB12bitで#000(黒)、線種が全辺1であることが示されている。このセルの曲率は、左上に関して曲率1/30(1/pixel)、その他角部が曲率∞(曲率半径0)であることが示されている。
【0029】
線種の情報については、ここでは罫線パターンの表示領域と、非表示領域の太さに対する長さのパターンの繰り返しで表現している。例えば1であれば表示領域のみで実線、1-1であれば表示領域と非表示領域が太さと同じ幅で繰り返す破線を示す。線種のパターン情報の持ち方は一例であって、別の手法で情報を格納しても構わない。
【0030】
1-2のセルは、左上から1行2列目のセルを表す。セルの外接矩形が左上座標(300,200)、サイズ(400,70)、辺について線色が全辺#000(黒)、線種が全辺実線、曲率が、右上に関して1/30、その他角部が曲率∞(曲率半径0)のセル情報が抽出されたことを表す。
【0031】
2-1のセルは、左上から2行1列目のセルを表す。セルの外接矩形が左上座標(100,270)、サイズ(200,70)、辺について線色が全辺#000(黒)、線種が全辺実線、曲率が、左下に関して1/30、その他角部が曲率∞(曲率半径0)のセル情報が抽出されたことを表す。
【0032】
2-2のセルは、左上から2行2列目のセルを表す。セルの外接矩形が左上座標(300,270)、サイズ(400,70)、辺について線色が全辺#000(黒)、線種が全辺実線、曲率が、右下に関して1/30、その他角部が曲率∞(曲率半径0)のセル情報が抽出されたことを表す。
【0033】
文字認識部213では公知の文字認識技術を用いて各文字領域内の文字認識を行い、文字コードデータを生成、文字の大きさと合わせてOCR表示データを生成する。文字認識処理の1例について簡単に説明する。本説明はあくまで一例であって別の手法を用いてもよい。
【0034】
文字認識処理ではまず文字領域の縦書き横書きすなわち行方向を判断する。これは画像を二値化し、縦横の射影をとって射影分散の低いほうを行方向と判定する方法がある。次に画像を個々の文字画像へと分割する。これは二値画像の行方向への射影を用いて切断すべき行間を発見することで行画像に分割し、さらに行画像を行と垂直方向への射影を用いて切断すべき文字間を発見することで文字画像へと分割すればよい。そしてそれら文字画像ひとつひとつに対して特徴を取り、あらかじめ全字種分の特徴を保存した辞書から一番特徴の近いものを探し、辞書が示す文字コードを各文字の認識結果とする。文字の大きさは各文字を認識する際に得られる文字の大きさを平均した値として得ることができるが、他の方法を用いてもよい。
【0035】
図8は、図6の例における領域識別部211と文字認識部213による処理の結果の例を表で示したものである。この例では、領域602、603、604、605、606から、それぞれ文字列”ApplicationForm“、”ID“、”1234567“、”Name”、”Maruko Taro”がそれぞれ文字認識部の認識結果として抽出された。
【0036】
領域603は図7で示す1-1のセルの範囲内であるため1-1のセルのデータとして格納される。領域604は1-2のセルの範囲内であるため1-2のセルのデータとして格納される。領域605は2-1のセルの範囲内であるため2-1のセルのデータとして格納される。領域606は2-2のセルの範囲内であるため2-2のセルのデータとして格納される。
【0037】
表罫線判定部214の処理は、図4のフローチャートに従って説明する。
ステップS401では、罫線判定の未処理セルとして、1-1のセルを選択する。ステップS402では、1-1セルの上辺、下辺、左辺、右辺の情報としてベクトル化フラグを定義し、それぞれに偽の情報を設定する。ステップS403では、辺の変数に上、隣辺の変数に右の値を代入し、繰り返し処理を開始する。
【0038】
ステップS404では、辺と隣辺との角である右上角部の曲率が仕様範囲内であるかの判断を行う。変換対象ワークブックドキュメントの仕様は図9で説明する。ここでの変換対象は独自のXML形式のワークブックドキュメントフォーマットであるWorkbookDocumentAとし、線色の仕様は単色の32bitカラー、線種の仕様は実線と3パターンの破線、角部の曲率については∞とする。セル1-1の右上角部については、曲率∞、つまり仕様範囲内であるため、S405へ進む。
【0039】
ステップS405では、辺の線色が仕様線色の範囲内であるかの判断を行う。線色はRGB12bit単色であり、RGB32bitに変換する事が可能、つまり仕様範囲内であるため、S406へ進む。ステップS406では、辺の線種が仕様線種の範囲内であるかの判断を行う。線種は1(実線)、つまり仕様範囲内であるため、S407へ進む。
【0040】
ステップS407では、繰り返し処理が終了していないため、S403へ進む。ステップS403では、辺に右を、隣辺に下を代入し、S404へ進む。{辺、隣辺}が{右、下}{下、左}に関しては同様に仕様の範囲内であり、ベクトル化フラグは偽のままである。最後に{辺、隣辺}に{左、上}を代入しS404へ進む。ステップS404では、辺と隣辺の角である左上角部の曲率が1/30であり、仕様の範囲外であるため、S408へ進む。ステップS408では、辺と隣辺である、左辺と上辺のベクトル化フラグに真を設定し、S407へ進む。ステップS407では、繰り返し処理の終了が判断されS410へ進む。ステップS410では、1-2、2-1、2-2のセルに関して未処理であるため、S401へ進む。
【0041】
1-2、2-1、2-2のセルに関して同様に処理を行うと、1-2のセルでは、上辺と右辺のベクトル化フラグが真に、2-1のセルでは下辺と左辺のベクトル化フラグが真に、2-2のセルでは右辺と下辺のベクトル化フラグが真に設定される。ステップS410では、全てのセルに関してベクトル化判定処理が終了したため、処理を終了する。
【0042】
次に、表罫線生成部215の処理は、図5のフローチャートに従って説明する。ステップS501では、未処理セルとして1-1のセルを選択する。ステップS502では、辺の変数に対して上を代入し、繰り返し処理を開始する。ステップS503では、上辺は未ベクトル化の辺であるため、S504へ進む。ステップS504では、表罫線判定部214で格納したベクトル化フラグから、1-1のセルの上辺は真であるため、S505へ進む。ステップS505では、左辺のベクトル化フラグが真であるため、左辺を結合してベクトル化を行う事を決定する。
【0043】
ステップS506では、S505で結合した対象辺について、公知のベクトル化技術を用いて入力画像から、ベクトル罫線オブジェクトの生成を行う。ベクトル化技術の例としては、特許文献5や特許文献2に開示された方法がある。たとえば特許文献5では、画像をラスタ走査しながら注目画素とその近傍画素の状態に基づいて、水平方向及び垂直方向の画素間ベクトルを検出する。次に、これら画素間ベクトル同士の接続状態をもとに、画像データの輪郭を抽出することで、アウトラインベクトルと呼ばれる連結画素データの周回を画素間ベクトルの集合で記述する情報を生成する技術を開示している。また、特許文献2では、アウトラインベクトルを直線や2次や3次のベジェ曲線で近似することで、大きく変倍しても高画質なベクトル記述データをする技術を開示している。
【0044】
ステップS507では、S506で生成したベクトル罫線オブジェクトを、ベクトル罫線オブジェクト外接矩形左上端座標をセル左上端の相対座標として決定する。ベクトル罫線オブジェクト外接矩形左下端座標をセル右下端(または右下セルの左上端)の相対座標として決定する。ベクトル罫線オブジェクトの配置座標値を決定する。ステップS508では、繰り返し処理の終了条件を満たしていないため、S502へ進む。ステップS502では辺の値に右を代入する。ステップS503では右辺は未ベクトル化であるため、S504に進む。ステップS504では、辺のベクトル化フラグは偽であるため、S509へ進む。ステップS509では、表構造情報の角部曲率∞、実線、#000の情報から変換対象のワークブックドキュメントのセルの罫線枠形式に変換する。
【0045】
ステップS508では、繰り返し処理の終了条件を満たしていないため、S502へ進む。ステップS502では辺に下を代入し、処理を繰り返す。下辺に関しては右辺と同様にセルの枠罫線形式に変換される。最後に辺の値に左を代入し、S503へ進む。ステップS503では、左辺に関しては上辺と結合しており、上辺の処理時にベクトル化が完了しているため、S508に進む。ステップS508では繰り返し処理が終了したため、S510へ進む。ステップS510では、1-2,2-1,2-2のセルに関して未処理であるためS501へ進む。
【0046】
ステップS501から同様に1-2,2-1,2-2に関して処理を行うと、1-2のセルで上辺、右辺が結合してベクトル罫線オブジェクトに、下辺、左辺がセルの罫線枠形式へ変換される。2-1のセルで下辺、左辺が結合されてベクトル罫線オブジェクトに、上辺、右辺がセルの罫線枠形式へ変換される。2-2のセルで右辺、下辺が結合されてベクトル罫線オブジェクトに、上辺、左辺がセルの罫線枠形式へ変換される。S510で未処理セルが存在しないため、処理を終了する。
【0047】
ワークブック変換部216では、表構造解析部212で生成した表構造情報、文字認識部213で認識した文字、及び表罫線生成部215で生成した表の罫線情報を元に、ワークブックドキュメント形式の電子文書に変換を行う。
【0048】
図10の電子ドキュメント1000は、本実施例の説明のために作られた仮想的なXMLフォーマットの仕様に従って作られたワークブックドキュメント220の例である。
【0049】
符号1001はテーブル情報を格納する部分で要素名”Table”に囲われた箇所に該当する。符号1001には、テーブルの列の情報を記述した”Column”要素部1003と、行の情報を記述した”Row”要素部1004が格納されている。ワークブックドキュメントのシートは1つの大きなテーブル情報から生成されている。
【0050】
図6の入力画像例では、画像内の行列数は2×2であるが、表上方と、表左方の余白を表現するために、1行1列を追加し、3×3とする。従って、列を示す”Colum”要素1003が3つ、行を示す”Row”要素部1004が3つそれぞれ存在する。“Colum”要素1003には、列番号”c”属性と、それぞれの列幅”width”属性が格納されている。
【0051】
“Colum”要素1003に関して、図7のセルの矩形情報に示されているように、表左方の幅が100(すなわち、セル1-1の位置のx座標が100)であるため、”Colum”要素1003のc=1の”Column”要素の幅widthは100になる。図7の表1列目のセルのサイズの幅が200であるから、”Colum”要素1003のc=2の”Column”要素の幅widthは200になる。図7の表2列目のセルのサイズの幅が400であるから、”Colum”要素1003のc=3の”Column”要素の幅widthは400である。
【0052】
“Row”要素には、行番号”r”属性と、それぞれの行高さ”hight”属性が格納され、列数分のセル情報”Cell”要素から構成される。
【0053】
”Row”要素部1004に関して、図7に示したセルの矩形情報に示されているように、表上方の高さが200(すなわち、セル1-1の位置のy座標が200)であるため、r=1の”Row”要素の高さhightが200になる。表1行目の高さ70であるから、r=2の”Row”要素の高さhightが70である。表2行目の高さが70であるから、r=3の”Row”要素の高さhightが70である。
【0054】
また、r=1の”Row”要素は余白であり、セル情報が存在しないため、子要素”Cell”要素は存在しない。r=2とr=3の”Row”要素”はそれぞれ2つのセル情報が存在するため、2つの”Cell”要素を持つ。
【0055】
“Cell”要素には、自身がc列目であることを示す”c”属性、セル内に記述されているデータの型”type”属性、セル内のデータの値”value”属性が格納され、セルの枠線情報”Line”から構成される。ここでは図8に示した文字認識の結果から、r=2の”Row”要素内のc=2の”Cell”要素には、type=”string”、value=”ID”が格納されている。c=3の”Cell”要素には、type=”string”、value=”1234567”が格納されている。r=3の”Row”要素内のc=2の”Cell”要素には、type=”string”、value=”Name”が格納されている。c=3の”Cell”要素には、type=”string”、value=”Maruko Taro”が格納されている。
【0056】
“Line”要素には、四辺の内のいずれにあたるのかを示す”position”属性、線種を示す”type”属性、線色を示す”color”属性の情報が格納されている。
【0057】
図5のフローチャートで生成されたセルの枠罫線情報から、r=2”Row”内c=2”Cell”には、positionがrightとbottomの二つの”Line”要素が設定される。それぞれのtype属性には、実線を示すsolid、color属性に黒を示す#000000が格納されている。
【0058】
r=2”Row”内c=3”Cell”には、positionがleftとbottomの二つの”Line”要素が設定されている。それぞれのtype属性に実線を示すsolid、color属性に黒を示す#000000が格納されている。
【0059】
r=3”Row”内c=2”Cell”には、positionがrightとtopの二つの”Line”要素が設定されている。それぞれのtype属性に実線を示すsolid、color属性に黒を示す#000000が格納されている。
【0060】
r=3”Row”内c=3”Cell”には、positionがleftとtopの二つの”Line”要素が設定されている。それぞれtype属性に実線を示すsolid、color属性に黒を示す#000000が格納されている。
【0061】
符号1002はテーブル上に自由に配置される、図形情報を格納する部分で要素名”Shapes”に囲われた箇所に該当する。符号1002には、図形情報を記述した複数の”Shape”要素から構成される。
【0062】
”Shape”要素は、子要素に図形オブジェクトを持ち、図形オブジェクトの描画位置情報を属性として格納する。ここでは、”Shape”要素は1つのベクトル罫線オブジェクトに相当する。符号1002には、ベジエ曲線を表す子要素”Path”から構成される4つの”Shape”要素1005,1006,1007,1008が存在する。本発明では、ベクトル罫線オブジェクトは、左上端と右下端をセルの相対座標として定義している。そのため、”Shape”要素は左上端相対の対象セルの行列を示すfromCell、相対座標を示すfromPos、右下端相対の対象セルの行列を示すtoCell、相対座標を示すtoPosの情報から構成される。
【0063】
具体的に、セル1-1の左上辺のベクトル罫線オブジェクトである”Shape”要素1005について説明する。”Shape”要素1005には、2行2列目(fromCell=”2 2”)のセルについて左上端(0,0)(fropPos=”0 0”)から右下端までの範囲に描画する位置、サイズ情報が記述されている。2行2列目の右下端は、3行3列目(toCell=”3 3”)の左上端(0,0)(toPos=”0 0”)に相当する。
【0064】
同様に1-2セル右上辺のベクトル罫線オブジェクトである”Shape”要素1006は次のとおりである。すなわち、2行3列目(fromCell=”2 3”)のセルについて左上端(0,0)(fropPos=”0 0”)から右下端までの範囲に描画する位置、サイズ情報が記述されている。2行3列目の右下端は、3行4列目(toCell=”3 4”)の左上端(0,0)(toPos=”0 0”)に相当する。
【0065】
2-1セル左下辺のベクトル罫線オブジェクトである”Shape”要素1007は次のとおりである。すなわち、3行2列目(fromCell=”3 2”)のセルについて左上端(0,0)(fropPos=”0 0”)から右下端までの範囲に描画する位置、サイズ情報が記述されている。3行2列目の右下端は、4行3列目(toCell=”3 4”)の左上端(0,0)(toPos=”0 0”)に相当する。
【0066】
2-2セル右下辺のベクトル罫線オブジェクトである”Shape”要素1008は次のとおりである。すなわち、3行3列目(fromCell=”3 3”)のセルについて左上端(0,0)(fropPos=”0 0”)から右下端までの範囲に描画する位置、サイズ情報が記述されている。3行3列目の右下端は、4行4列目(toCell=”4 4”)の左上端(0,0)(toPos=”0 0”)に相当する。
【0067】
“Path”要素はオブジェクトの形状の情報を持ち、”canvasSize”属性で設定した大きさの平面上に、”data”属性で3次ベジエを用いて曲線の形状を記述している。
【0068】
ウィンドウ1101は表示・編集プログラム121により表示されるウィンドウであり、シート編集ウィンドウ1102を含む。
【0069】
シート編集ウィンドウ1102には、ワークブックドキュメント220中のシート情報221の内容に従った表示がなされる。本発明の実施形態1が例示する図10の電子ドキュメント1000に対しては、表情報1001および罫線データ1002の内容が描画されている。セルの枠罫線では表現不可能である角部が曲率を持つ表に対して、入力画像通りに再現されている。
【0070】
さらにシート編集ウィンドウ1102内で、ユーザは表の行の追加やセルの内容の変更、セルのサイズの変更が可能である。また編集後のワークブックドキュメントの保存や、シート編集ウィンドウ1102に表示されたとおりの外観で紙面を印刷することも可能である。
【0071】
図12はユーザが行の追加、セルサイズの変更を行った結果の例である。ベクトル罫線オブジェクトはセルに対して相対座標で記述しているため、セルのサイズの変更や、行の挿入などの操作を行っても、あたかもセルの枠罫線であるかの様に追従する。
【0072】
以上説明したように、本実施例によれば、フォーマットの仕様では再現不可能である罫線を表現しつつ、表としての編集が可能なワークブックを生成する。
【0073】
このように生成したワークブックは表示・編集プログラム121において、メニューなどからユーザが容易に選択し、使用することができる。すなわち本実施形態によれば、ワークブックを印刷若しくはディスプレイへ表示すること、又はワークブックの表を編集することのいずれか、あるいはその両方の目的に適したフォーマットでワークブックを提供することが可能である。
【0074】
<実施形態2>
実施形態1では、単純に仕様で表現不可能な罫線の切り換えであったが、構造自体が複雑で再現不可能な罫線であっても良い。
【0075】
以下では図13の画像1300を入力画像、図14の表を変換先フォーマットの仕様とした例の処理を説明する。
【0076】
例えば、画像1300を領域識別部211で処理した場合に、表領域として領域1301と1302が抽出されたとする。
【0077】
領域1301と1302に対して、表構造解析部212により実施形態1と同様の処理がなされて表構造情報が抽出され、文字認識部213により文字領域に対して文字の認識結果が抽出される。
【0078】
表罫線判定部214による処理の例を、図15のフローチャートを用いて説明する。
本実施形態2では、罫線仕様の判定基準が増えているため、図4に示された実施形態1における表罫線判定のフローチャートに、S1501の表構造自体の仕様判定の処理が加わっている。
【0079】
S1501では、表自体の位置に関して仕様の範囲を満たすかどうかの判定を行う。領域1301に関しては、表の位置の仕様を満たしており、S1502へ進む。その後は実施形態1と同様の処理が行われ、1行1列目セルの左、上辺のベクトル化フラグが真に、1行2列目セルの右、上辺のベクトル化フラグが真に、3行1列目セルの左、下、右辺のベクトル化フラグが真に設定される。
【0080】
表領域1302に関しては、表の位置が1301のセルの内部にあるため、S1512へ進む。S1512では表構造の持つすべての辺に対してベクトル化フラグを真に設定し、内部の文字列も図形オブジェクト内のテキストとして表現する。
【0081】
表罫線判定部214の判定結果を元に表罫線生成部215で表罫線の生成を行う。領域1301に関しては1行1列目セルの左上辺がベクトル罫線オブジェクトに、1行2列目の右上辺がベクトル罫線オブジェクトに、3行1列目の右下左辺がベクトル罫線オブジェクトに変換される。表領域1302に関してはすべての辺に関してベクトル罫線オブジェクトに変換する。
【0082】
ワークブック変換部216で文字認識部213、215の結果を元に、文字認識データとベクトル罫線オブジェクトとセルの枠罫線情報とをワークブックドキュメントに変換する処理を行う。
【0083】
図16は画像1300を変換したワークブックドキュメントを表示・編集プログラム121で開いた例である。図16で示したように、本来の仕様では表現不可能な領域1302に関しても再現することができる。
【0084】
本実施形態によれば、表の構造自体が複雑であっても、ワークブックを印刷若しくはディスプレイへ表示すること、又はワークブックの表を編集することのいずれか、あるいはその両方の目的に適したフォーマットでワークブックを提供することが可能である。
【0085】
<その他の実施形態>
本発明は、複数の機器(例えばコンピュータ、インタフェース機器、リーダ、プリンタなど)から構成されるシステムに適用することも、1つの機器からなる装置(複合機、プリンタ、ファクシミリ装置など)に適用することも可能である。
【0086】
前述した実施形態の機能を実現するように前述した実施形態の構成を動作させるプログラムを記憶媒体に記憶させ、該記憶媒体に記憶されたプログラムをコードとして読み出し、コンピュータにおいて実行する処理方法も上述の実施形態の範疇に含まれる。即ちコンピュータ読み取り可能な記憶媒体も実施例の範囲に含まれる。また、前述のコンピュータプログラムが記憶された記憶媒体はもちろんそのコンピュータプログラム自体も上述の実施形態に含まれる。
【0087】
かかる記憶媒体としてはたとえばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD―ROM、磁気テープ、不揮発性メモリカード、ROMを用いることができる。
【0088】
また前述の記憶媒体に記憶されたプログラム単体で処理を実行しているものに限らず、他のソフトウエア、拡張ボードの機能と共同して、OS上で動作し前述の実施形態の動作を実行するものも前述した実施形態の範疇に含まれる。
【符号の説明】
【0089】
100 画像処理装置
101 スキャナ
102 CPU
103 メモリ
104 ハードディスク
105 ネットワークI/F

【特許請求の範囲】
【請求項1】
入力された画像から、所定のフォーマット仕様が定められた電子文書を生成する画像処理装置であって、
前記画像を解析し、表領域を識別する領域識別手段と、
前記識別された表領域の表構造及び罫線を解析し、表のセルの情報を含む表構造情報を生成する表構造解析手段と、
前記生成された表構造情報に含まれる前記セルの辺を前記フォーマット仕様に従って表の枠罫線として表現可能であるか否かを判断する判断手段と、
前記枠罫線として表現可能であると判断された前記辺から枠罫線情報を生成する手段と、
前記枠罫線として表現不可能であると判断された前記辺に対してベクトル変換処理を行い、ベクトル罫線オブジェクトを生成する手段と、
前記生成された前記表構造情報、前記枠罫線情報、及び前記ベクトル罫線オブジェクトから前記電子文書を生成する電子文書生成手段と
を備えたことを特徴とする画像処理装置。
【請求項2】
前記判断手段は、前記辺とその隣辺とが接する角の曲率に基づいて、前記判断を行うこと
を特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記判断手段は、前記辺の線色に基づいて、前記判断を行うこと
を特徴とする請求項1又は請求項2に記載の画像処理装置。
【請求項4】
前記判断手段は、前記辺の線種に基づいて、前記判断を行うこと
を特徴とする請求項1から請求項3のいずれか1項に記載の画像処理装置。
【請求項5】
入力された画像から、所定のフォーマット仕様が定められた電子文書を生成する画像処理装置であって、
前記画像を解析し、表領域を識別する領域識別手段と、
前記識別された表領域の表構造及び罫線を解析し、表のセルの情報を含む表構造情報を生成する表構造解析手段と、
前記生成された表構造情報に含まれる表の位置に基づいて、前記表を前記フォーマット仕様に従って表の枠罫線として表現可能であるか否かを判断する判断手段と、
前記枠罫線として表現可能であると判断された前記辺から枠罫線情報を生成する手段と、
前記枠罫線として表現不可能であると判断された前記辺に対してベクトル変換処理を行い、ベクトル罫線オブジェクトを生成する手段と、
前記生成された前記表構造情報、前記枠罫線情報、及び前記ベクトル罫線オブジェクトから前記電子文書を生成する電子文書生成手段と
を備えたことを特徴とする画像処理装置。
【請求項6】
文字認識手段を備え、
前記領域識別手段は、文字領域を識別し、
前記文字認識手段は、前記識別された文字領域から文字を認識し、
前記電子文書生成手段は、前記生成された前記表構造情報、前記枠罫線情報、前記ベクトル罫線オブジェクト、及び前記認識された文字から前記電子文書を生成すること
を特徴とする請求項1から請求項5のいずれか1項に記載の画像処理装置。
【請求項7】
入力された画像から、所定のフォーマット仕様が定められた電子文書を生成する画像処理方法であって、
前記画像を解析し、表領域を識別する領域識別ステップと、
前記識別された表領域の表構造及び罫線を解析し、表のセルの情報を含む表構造情報を生成する表構造解析ステップと、
前記生成された表構造情報に含まれる前記セルの辺を前記フォーマット仕様に従って表の枠罫線として表現可能であるか否かを判断する判断ステップと、
前記枠罫線として表現可能であると判断された前記辺から枠罫線情報を生成するステップと、
前記枠罫線として表現不可能であると判断された前記辺に対してベクトル変換処理を行い、ベクトル罫線オブジェクトを生成するステップと、
前記生成された前記表構造情報、前記枠罫線情報、及び前記ベクトル罫線オブジェクトから前記電子文書を生成する電子文書生成ステップと
を備えたことを特徴とする画像処理方法。
【請求項8】
入力された画像から、所定のフォーマット仕様が定められた電子文書を生成する画像処理方法であって、
前記画像を解析し、表領域を識別する領域識別ステップと、
前記識別された表領域の表構造及び罫線を解析し、表のセルの情報を含む表構造情報を生成する表構造解析ステップと、
前記生成された表構造情報に含まれる表の位置に基づいて、前記表を前記フォーマット仕様に従って表の枠罫線として表現可能であるか否かを判断する判断ステップと、
前記枠罫線として表現可能であると判断された前記辺から枠罫線情報を生成するステップと、
前記枠罫線として表現不可能であると判断された前記辺に対してベクトル変換処理を行い、ベクトル罫線オブジェクトを生成するステップと、
前記生成された前記表構造情報、前記枠罫線情報、及び前記ベクトル罫線オブジェクトから前記電子文書を生成する電子文書生成ステップと
を備えたことを特徴とする画像処理方法。
【請求項9】
入力された画像から、所定のフォーマット仕様が定められた電子文書を生成する画像処理方法をコンピュータに実行させるためのプログラムであって、前記方法は、
前記画像を解析し、表領域を識別する領域識別ステップと、
前記識別された表領域の表構造及び罫線を解析し、表のセルの情報を含む表構造情報を生成する表構造解析ステップと、
前記生成された表構造情報に含まれる前記セルの辺を前記フォーマット仕様に従って表の枠罫線として表現可能であるか否かを判断する判断ステップと、
前記枠罫線として表現可能であると判断された前記辺から枠罫線情報を生成するステップと、
前記枠罫線として表現不可能であると判断された前記辺に対してベクトル変換処理を行い、ベクトル罫線オブジェクトを生成するステップと、
前記生成された前記表構造情報、前記枠罫線情報、及び前記ベクトル罫線オブジェクトから前記電子文書を生成する電子文書生成ステップと
を備えたことを特徴とするプログラム。
【請求項10】
入力された画像から、所定のフォーマット仕様が定められた電子文書を生成する画像処理方法をコンピュータに実行させるためのプログラムであって、前記方法は、
前記画像を解析し、表領域を識別する領域識別ステップと、
前記識別された表領域の表構造及び罫線を解析し、表のセルの情報を含む表構造情報を生成する表構造解析ステップと、
前記生成された表構造情報に含まれる表の位置に基づいて、前記表を前記フォーマット仕様に従って表の枠罫線として表現可能であるか否かを判断する判断ステップと、
前記枠罫線として表現可能であると判断された前記辺から枠罫線情報を生成するステップと、
前記枠罫線として表現不可能であると判断された前記辺に対してベクトル変換処理を行い、ベクトル罫線オブジェクトを生成するステップと、
前記生成された前記表構造情報、前記枠罫線情報、及び前記ベクトル罫線オブジェクトから前記電子文書を生成する電子文書生成ステップと
を備えたことを特徴とするプログラム。

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


【公開番号】特開2011−13897(P2011−13897A)
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願番号】特願2009−156971(P2009−156971)
【出願日】平成21年7月1日(2009.7.1)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】