(57)【要約】【課題】本発明は、読み取った文書の画像から表罫線を抽出する際に、対象となる表罫線の選別作業を効率良く行うことができる情報処理装置を提供する。【解決手段】ＰＣ２０１は、スキャナ２０２で文書を読み取って得られた画像から第一の罫線候補抽出処理と第二の罫線候補抽出処理を実行して罫線候補を抽出し、抽出された罫線の種別を判定する。そして、判定された罫線の種別に従って罫線候補をグループ分けして修正画面及び／又はリスト画面を表示し、表示された罫線の選択や修正を受け付ける。【選択図】図１０
2010033177.tif 000002
【特許請求の範囲】
【請求項１】
画像の入力を受け付ける情報処理装置であって、
入力された画像から候補となる罫線を抽出する罫線抽出手段と、
前記抽出された罫線の特徴に従って罫線を分類する罫線分類手段と、
前記分類された罫線を分類ごとに表示する罫線表示手段と、
前記表示された罫線を分類ごとに選択を受け付ける罫線選択手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記罫線選択手段で選択された罫線の修正を分類ごとに受け付ける罫線修正手段をさらに備えることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記罫線表示手段は、前記候補となる罫線を一覧表示する罫線一覧表示手段と、前記入力された画像と前記候補となる罫線とを重ねて表示する罫線画像表示手段とを備え、前記罫線一覧表示手段および前記罫線画像表示手段の少なくとも１つにより表示を行うことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記罫線修正手段は、前記表示された罫線の削除または新たな罫線の作成を受け付けることを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記分類された罫線の線種を決定する線種決定手段をさらに備え、前記罫線表示手段は、前記決定された罫線の線種ごとに表示を行うことを特徴とする請求項３または４に記載の情報処理装置。
【請求項６】
前記罫線表示手段により表示された罫線の線種を変更する線種変更手段をさらに備えることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記罫線一覧表示手段で表示が行われた場合、前記罫線選択手段は、前記表示された罫線の単独または分類ごとの選択を受け付け、前記線種変更手段は、当該分類ごとの選択を受け付けたときは、当該分類の罫線の線種をまとめて変更することを特徴とする請求項６記載の情報処理装置。
【請求項８】
前記罫線表示手段は、前記変更された罫線の線種に従って表示画面を更新することを特徴とする請求項６または７に記載の情報処理装置。
【請求項９】
前記罫線表示手段で表示された罫線を、罫線として決定する罫線決定手段をさらに備え、
前記罫線表示手段は、前記罫線決定手段により決定された罫線と決定されていない罫線とを識別可能に表示することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記画像から文字領域を抽出して文字認識を行う文字認識手段と、
前記文字認識された文字認識結果のうち、利用する文字認識結果を決定する文字認識結果利用決定手段とをさらに備えることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記決定した罫線の線種を示す線種情報、および当該罫線の座標位置を示す座標情報を含む罫線情報を取得する罫線情報取得手段と、
前記決定された文字認識結果、および前記文字領域の座標位置を示す座標情報を含む文字情報を取得する文字情報取得手段と、
前記取得された罫線情報および文字情報から入力フォームとして利用可能な出力データを出力する出力手段とをさらに備えることを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
画像の入力を受け付ける情報処理装置の画像処理方法であって、
入力された画像から候補となる罫線を抽出する罫線抽出工程と、
前記抽出された罫線の特徴に従って罫線を分類する罫線分類手段と、
前記分類された罫線を分類ごとに表示する罫線表示工程と、
前記表示された罫線を分類ごとに選択を受け付ける罫線選択工程とを備えることを特徴とする画像処理方法。
【請求項１３】
画像の入力を受け付ける情報処理装置の画像処理方法をコンピュータに実行させるプログラムであって、
入力された画像から候補となる罫線を抽出する罫線抽出ステップと、
前記抽出された罫線の特徴に従って罫線を分類する罫線分類ステップと、
前記分類された罫線を分類ごとに表示する罫線表示ステップと、
前記表示された罫線を分類ごとに選択を受け付ける罫線選択ステップとを備えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び画像処理方法、並びにプログラムに関し、特に、文書画像から表罫線を抽出するときの表罫線の選別や修正を行うことができる情報処理装置及び画像処理方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来、スキャナ機能を備えた複合機を用いて紙文書の電子化が行われている。また、電子化された紙文書の内容を特定するために、電子化された紙文書に対して帳票認識やフォーム認識、文字認識処理が行われている。さらに、文字認識した結果を修正し、紙文書に含まれる文字列をデータベース等に格納して、情報を管理することが行われている。
【０００３】
文字認識した結果を修正する技術として、例えば、表領域の画像と表罫線の画像とが表示された画面上で、読み取った文書を文字認識することによって得られる文字を表示して、文字認識結果の確認・修正を行わせる技術が提案されている（特許文献１参照）。この技術では、文字認識した結果を修正する場合、読み取る文書と同じフォームの画像で劣化の少ない画像データを予め記憶し、この画像データから表領域を抽出し、この表領域の罫線とセルを抽出して、表罫線の抽出結果とセルの抽出結果とで構成される表データを作成するので、適切に表や罫線を解析することができる。
【特許文献１】特開平０８−３２９１８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１の技術では、読み取る文書と同じフォームの画像データが存在しない場合、読み取った文書の画像から表や罫線を抽出しなければならない。そのため、文書上の表や罫線が不鮮明であったり、スキャナの読取精度が低いときは、文書の画像から表罫線が抽出できないことがある。
【０００５】
表罫線が抽出できなかった場合、オペレータは抽出できなかった表罫線を表領域の画像から見つけ出さなければならないため、確認・修正作業が煩雑なものとなる。文字認識した結果の修正をしやすくするためにだけに表罫線を表示するのであれば大きな支障は生じないが、読み取った文書の画像から表罫線を抽出し、抽出された表罫線を用いて新たなフォームを生成する場合、表罫線の修正を罫線１本単位で行わなければならない。特に、抽出できない表罫線が多い場合は罫線作成の作業量が多大となる。
【０００６】
また、対象となる表罫線の線種が実線のみであるため、点線等の実線以外の種類の表罫線が扱えないという問題もある。
【０００７】
そこで、本発明は、読み取った文書の画像から表罫線を抽出する際に、対象となる表罫線の選別作業を効率良く行うことができる情報処理装置及び画像処理方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、請求項１記載の情報処理装置は、画像の入力を受け付ける情報処理装置であって、入力された画像から候補となる罫線を抽出する罫線抽出手段と、前記抽出された罫線の特徴に従って罫線を分類する罫線分類手段と、前記分類された罫線を分類ごとに表示する罫線表示手段と、前記表示された罫線を分類ごとに選択を受け付ける罫線選択手段とを備えることを特徴とする。
【０００９】
上記目的を達成するために、請求項１２記載の情報処理装置の画像処理方法は、画像の入力を受け付ける情報処理装置の画像処理方法であって、入力された画像から候補となる罫線を抽出する罫線抽出工程と、前記抽出された罫線の特徴に従って罫線を分類する罫線分類手段と、前記分類された罫線を分類ごとに表示する罫線表示工程と、前記表示された罫線を分類ごとに選択を受け付ける罫線選択工程とを備えることを特徴とする。
【００１０】
上記目的を達成するために、請求項１３記載のプログラムは、画像の入力を受け付ける情報処理装置の画像処理方法をコンピュータに実行させるプログラムであって、入力された画像から候補となる罫線を抽出する罫線抽出ステップと、前記抽出された罫線の特徴に従って罫線を分類する罫線分類ステップと、前記分類された罫線を分類ごとに表示する罫線表示ステップと、前記表示された罫線を分類ごとに選択を受け付ける罫線選択ステップとを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、読み取った文書の画像から表罫線を抽出する際に、対象となる表罫線の選別や修正作業を効率良く行うことができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
【００１３】
図１は、本発明の実施形態に係る画像処理方法が適用された画像処理システムの構成例を示す図である。
【００１４】
図１において、画像処理システムは、例えば、情報処理装置としてのパーソナルコンピュータ（ＰＣ）２０１と、画像読取装置としてのスキャナ２０２と、印刷装置としてのプリンタ２０３とを備え、これらがネットワーク２０４を介して互いに接続されている。スキャナ２０２は、紙文書を光学的に読み取って電子化し、その画像データをＰＣ２０１に送ることができる。ＰＣ２０１は、受信した画像データに対して所定の画像処理を実行する。その際、オペレータがキーボードやマウス等を操作して処理結果の確認および修正を行うことができる。プリンタ２０３は、所定の画像処理が行われた画像データをＰＣ２０１から受信して印刷を行う。ネットワーク２０４は、インターネット、ＬＡＮやＷＡＮ、電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、通信衛星回線、ケーブルテレビ回線、データ放送用無線回線等のいずれか、またはこれらの組み合わせにより実現される、いわゆる通信ネットワークであり、データの送受信が可能であればよい。
【００１５】
なお、本発明の実施形態に係る画像処理方法を図示の画像処理システムに適用した形態について説明するが、これに限定されず、スキャナやプリンタが一体的に構成された複合機に適用した形態であってもよい。また、ＰＣ２０１は、スキャナ２０２から入力された画像データに限らず、デジタルカメラ等で撮影された文書画像データに対して本発明の画像処理方法を実行してもよく、画像データの入力先や入力方法を限定するものではない。
【００１６】
図２は、図１のＰＣ２０１の概略構成を示すブロック図である。
【００１７】
ＰＣ２０１において、ＣＰＵ１０１は、ＲＯＭ１０２に格納されている制御プログラムに従って装置全体の制御を行う。ＲＯＭ１０２は、ＣＰＵ１０１が実行する後述する処理等の制御プログラムを含む各種プログラムや各種パラメータデータを格納する。ＲＡＭ１０３は、記憶装置１０４からロードされたプログラムを一時的に記憶したり、エリア画像や各種データを記憶する。また、ＲＡＭ１０３は、データの作業領域や一時待避領域として機能する。
【００１８】
記憶装置１０４は、例えば、ハードディスクやＣＤ−ＲＯＭ等で構成され、画像データを管理するデータベースを含む各種データを記憶する。ディスプレイ１０５は、例えば、ＬＣＤやＣＲＴで構成される。入力装置１０６は、例えば、マウスやキーボード、ペンタブレット等で構成される。
【００１９】
ネットワークインターフェース（Ｉ／Ｆ）１０９は、ネットワーク２０４上に接続されている外部装置（スキャナ２０２やプリンタ２０３に限らず、不図示のサーバや外部記憶装置等）と通信し、プログラムやデータを読み込んだり、書き込んだりする。
【００２０】
図３は、図１の画像処理システムにて実行される画像処理の流れを示すフローチャートである。本処理は、ＰＣ２０１内の画像処理プログラムに基づいてＣＰＵ１０１により実行される処理である。
【００２１】
まず、ステップＳ３０１では、ＰＣ２０１は、スキャナ２０２を制御して紙文書の画像を読み取らせて、その画像データを取得する。次に、ＰＣ２０１は、画像データに二値化処理を行い（ステップＳ３０２）、二値化処理された画像に対してブロックセレクション処理を行って、画像から表、文字、絵や図、枠、線の各領域を抽出する（ステップＳ３０３）。
【００２２】
次に、ステップＳ３０４では、ＰＣ２０１は、ステップＳ３０３で抽出した表領域をディスプレイ１０５に表示し、表示した表領域のうち修正対象となる表領域をユーザに選択させる（罫線選択）。次に、ＰＣ２０１は、選択された表領域から表罫線の候補となる罫線（以下、「罫線候補」と呼ぶ。）を罫線の種類ごとに抽出し（ステップＳ３０５）、抽出した罫線候補をグループ分け（罫線分類）する（ステップＳ３０６）。
【００２３】
ステップＳ３０７では、ＰＣ２０１は、グループ分けされた罫線候補を所定の画面でディスプレイ１０５に表示（罫線表示）し、オペレータの指示に従って単独若しくは複数単位で確認・修正して罫線候補を修正する（罫線修正）。次に、ステップＳ３０８では、ＰＣ２０１は、罫線候補に囲まれる領域内にある全ての文字に対して文字認識を行う。文字認識の際には、文字認識する領域を規定した情報（文字認識領域の座標、認識する領域の文字方向（縦書き横書き）、文字種別などを設定した情報）に従って、文字情報（文字列）を取得する。
【００２４】
次に、ステップＳ３０９では、ＰＣ２０１は、ステップＳ３０８で取得した文字情報をオペレータの指示に従って確認・修正する。ステップＳ３１０では、ＰＣ２０１は、全ての表領域に対して処理を行ったかを判定し、処理を行っていない全ての表領域に対して上記ステップＳ３０４〜Ｓ３０９の処理を行う。
【００２５】
ステップＳ３１１では、ＰＣ２０１は、修正後の認識結果から、例えば、図２７に示すような出力データを生成する。生成された出力データは、プリンタ２０３に出力され得るが、他の文書管理システム（不図示）に出力され、利用される場合もある。また、ＰＣ２０１は、生成した出力データをイメージ化して新たな帳票画像を生成することができる。これにより、紙文書から業務で利用する記入用紙（入力フォーム）を作成することができ、入力フォームの生成においてオペレータの負荷を軽減することができる。
【００２６】
図３のステップＳ３０３で実行されるブロックセレクション処理とは、二値化された文書画像から黒画素の８連結領域の集合を抽出して、その黒画素集合の内部で白画素の４連結領域の集合（以下、「内部領域」とよぶ。）を抽出し、これらの抽出した結果に基づいて、表、文字、絵や図、枠、線といった文書に特徴的な領域に分離分割する処理をいい、先行技術として米国特許第５６８０４７８号「Method and apparatus for character recognition（Shin-Ywan Wangら／CanonK.K)」などがある。
【００２７】
図４は、スキャナ２０２で読み取られた文書画像の一例を示す図である。図５は、図４の文書画像に対してブロックセレクション処理を行った結果を示す図である。
【００２８】
上記技術を用いて、図４に示す文書画像３００に対してブロックセレクション処理が行われると、文書上の題名、水平線、文字、絵、図、及び表が、図５に示すように、題名領域、水平線領域、文字領域、絵領域、図領域、及び表領域に分類され、抽出される。特に、表領域に関しては、その内部が複数のセル領域に分かれて抽出される。例えば、図６（ａ）に示す表領域５００の場合、図６（ｂ）に示す７つのセル領域７０１〜７０７が抽出される。
【００２９】
次に、図３のステップＳ３０５の罫線候補の抽出処理の詳細を図７及び図８を参照して説明する。以下の説明では、ＰＣ２０１における処理をＣＰＵ１０１による処理として説明する。
【００３０】
図７は、図３のステップＳ３０５の罫線候補の抽出処理の詳細を示すフローチャートである。図８は、図７の罫線候補の抽出処理により図６（ｂ）のセル領域７０１〜７０７から抽出された罫線候補の一例を示す図である。
【００３１】
図７において、ステップＳ８０１では、ＣＰＵ１０１は、表領域内から罫線候補を抽出するために、例えば、図６（ｂ）のように抽出されたセル領域７０１〜７０７から対象とするセル領域を１つ選択する。次に、ステップＳ８０２では、ＣＰＵ１０１は、選択したセル領域の枠線から罫線候補を抽出する（第一の罫線候補抽出処理）。第一の罫線候補抽出処理では、各セル領域の上辺、下辺、左辺、右辺を罫線候補として抽出する。本処理の詳細については後述する。
【００３２】
次に、ステップＳ８０３では、ＣＰＵ１０１は、選択したセル領域内の画像を垂直方向及び水平方向に黒画素を走査し、ステップＳ８０２で抽出したセル領域の枠線以外の罫線候補を抽出する（第二の罫線候補抽出処理）。本処理の詳細については後述する。
【００３３】
次に、ステップＳ８０４では、ＣＰＵ１０１は、ステップＳ８０２〜ステップＳ８０３の処理を表領域内の全てのセル領域に対して行ったかを判定する。全てのセル領域に対して処理を行っていない場合はステップＳ８０１へ戻り、次のセル領域の選択を行う。一方、全てのセル領域に対して処理を行った場合はリターンする。
【００３４】
上記処理の結果、例えば、図６（ｂ）のセル領域７０１〜７０７から図８に示す水平方向の罫線候補ｗ１〜ｗ１３と垂直方向の罫線候補ｈ１〜ｈ２２が抽出される。水平方向の罫線候補ｗ１〜ｗ１０と垂直方向の罫線候補ｈ１〜ｈ９は、ステップＳ８０２の処理で抽出される罫線候補であり、水平方向の罫線候補ｗ１１〜ｗ１３と垂直方向の罫線候補ｈ９〜ｈ２２は、ステップＳ８０３の処理で抽出される罫線候補である。
【００３５】
図９は、図７のステップＳ８０２の第一の罫線候補抽出処理の詳細を示すフローチャートである。なお、抽出された罫線候補は、罫線候補を一意に識別するための識別子が付与される。本処理では、識別子として、水平方向の罫線候補にｗ１〜ｗ１０、垂直方向の罫線候補にｈ１〜ｈ９が付与される。
【００３６】
ステップＳ１００１では、ＣＰＵ１０１は、選択された対象のセル領域が一行目のセル領域であるか否かを判定する。セル領域が一行目である場合、セル領域の上辺を罫線候補として抽出する（ステップＳ１００２）。一方、セル領域が一行目以外の場合は、ステップＳ１００３に進む。
【００３７】
ステップＳ１００３では、ＣＰＵ１０１は、セル領域の下辺を罫線候補として抽出する。次に、ステップＳ１００４では、ＣＰＵ１０１は、セル領域が一列目であるか否かを判定する。セル領域が一列目である場合、セル領域の左辺を罫線候補として抽出する（ステップＳ１００５）。一方、セル領域が一列目以外の場合は、ＣＰＵ１０１は、セル領域の右辺を罫線候補として抽出する（ステップＳ１００６）。
【００３８】
ステップＳ１００２，Ｓ１００３，Ｓ１００５，Ｓ１００６の処理により、図６（ｂ）のセル領域７０１〜７０７の各辺が抽出される。なお、本実施形態では、例えば、セル領域７０１〜７０３の下辺とセル領域７０４〜７０６の上辺が重なる場合は、セル領域７０１〜７０７の下辺を採用する構成としたが、セル領域７０４〜７０６の上辺を採用するように構成してもよい。
【００３９】
ステップＳ１００７では、ＣＰＵ１０１は、抽出した全罫線候補にフラグＡを立てる（フラグＡ＝ＯＮ）。このフラグは、後述する罫線候補をグループ分けする際に使用される。つまり、このフラグは、ブロックセレクションによって得られたセルから抽出された罫線であるという特徴を表したものである。このように、上記ステップＳ１００１〜ステップＳ１００７の処理により、セル領域の枠線が抽出される。
【００４０】
抽出された罫線候補は、罫線の種別を分類するために、図１３に示す管理情報により管理される。上記処理にて抽出された罫線候補ｈ１〜ｈ９，ｗ１〜ｗ１０には、フラグＡに○印が記憶される。この管理情報は、ＲＡＭ１０３または記憶装置１０４に記憶される。また、抽出した罫線候補については、表領域内の座標値を持っている。また、罫線の長さについても保持するように構成することも可能である。
【００４１】
図１０は、図７のステップＳ８０３の第二の罫線候補抽出処理の詳細を示すフローチャートである。図１１は、選択したセル領域内の画像に対して垂直及び水平方向に黒画素の走査を行うときの様子を示す図である。なお、抽出された罫線候補は、罫線候補を一意に識別するための識別子が付与される。本処理では、識別子として、水平方向の罫線候補にｗ１１〜ｗ１３、垂直方向の罫線候補にｈ９〜ｈ２２が付与される。
【００４２】
ステップＳ１１０１では、ＣＰＵ１０１は、画素走査をするラインの位置を制御するための変数Ｎを初期化する。次に、ステップＳ１１０２では、ＣＰＵ１０１は、上述した図１３に示す管理情報のフラグＢ〜ＦをＯＦＦ（リセット）にする。
【００４３】
次に、ステップＳ１１０３では、ＣＰＵ１０１は、セル領域内のＮ列目の黒画素を垂直方向に走査する。画素走査をする範囲は、例えば、図１１に示すように、セル領域の枠線の黒画素を検知しないように数画素内側がその範囲となる。ここで、後述するステップＳ１１０４，Ｓ１１０６，Ｓ１１０８，Ｓ１１１０，及びＳ１１１２で用いられる最大ランレングス長（黒画素が連続して現れる長さ）、セルの高さ、黒画素数、ランレングス数、セル領域上端のランレングス長、セル領域下端のランレングス長を、各セル領域（例えば、図６（ｂ）に示すセル領域７０１〜７０７）内の画像から取得する。
【００４４】
ステップＳ１１０４では、ＣＰＵ１０１は、走査した黒画素ラインが、条件１：「最大ランレングス長／セルの高さ＞任意の閾値」に一致するか否かを判定する。この判定は、黒画素が連続している黒画素ラインか否かを判定するもので、最大ランレングス長、セルの高さ、任意の閾値の単位は全て画素数である。一致する場合はフラグＢを立て（フラグＢ＝ＯＮ）（ステップＳ１１０５）、ステップＳ１１０６に進む。一方、一致しない場合はそのままステップＳ１１０６に進む。つまり、このフラグは、黒画素が連続していると判定された罫線（黒画素ライン）であるという特徴を表したものである。
【００４５】
ステップＳ１１０６では、ＣＰＵ１０１は、走査した黒画素ラインが、条件２：「黒画素数／セルの高さ＞任意の閾値」に一致するか否かを判定する。この判定は、黒画素が多い黒画素ラインか否かを判定するもので、黒画素数、セルの高さ、任意の閾値の単位は全て画素数である。一致する場合はフラグＣを立て（フラグＣ＝ＯＮ）（ステップＳ１１０７）、ステップＳ１１０８に進む。一方、一致しない場合はそのままステップＳ１１０８に進む。つまり、このフラグは、黒画素が多いと判定された罫線（黒画素ライン）であるという特徴を表したものである。
【００４６】
ステップＳ１１０８では、走査した黒画素ラインが、条件３：「ランレングス数／セルの高さ＞任意の閾値」に一致するか否かを判定する。この判定は、黒画素の塊が多い点線のような黒画素ラインか否かを判定するもので、ランレングス数の単位は連続する黒画素塊の数である。また、セルの高さと任意の閾値の単位は画素数である。一致する場合は、フラグＤを立て（フラグＤ＝ＯＮ）（ステップＳ１１０９）、ステップＳ１１１０に進む。一方、一致しない場合はそのままステップＳ１１１０に進む。つまり、このフラグは、黒画素の塊が多いと判定された罫線（黒画素ライン）であるという特徴を表したものである。
【００４７】
ステップＳ１１１０では、ＣＰＵ１０１は、走査した黒画素ラインが、条件４：「セル領域の上端のランレングス長／セルの高さ＞任意の閾値」に一致するか否かを判定する。この判定は、中心部の黒画素は欠けているがセル領域の上端から黒画素が連続している黒画素ラインか否かを判定するもので、セル領域の上端のランレングス長、セルの高さ、任意の閾値の単位は全て画素数である。一致する場合はフラグＥを立て（フラグＥ＝ＯＮ）（ステップＳ１１１１）、ステップＳ１１１２に進む。一致しない場合はそのままステップＳ１１１２に進む。上端のランレングスとは、図１１に示す１２０１のように、走査開始位置から連続して続く黒画素をいう。つまり、このフラグは、中心部の黒画素は欠けているがセル領域の上端から黒画素が連続していると判定された罫線（黒画素ライン）であるという特徴を表したものである。
【００４８】
ステップＳ１１１２では、ＣＰＵ１０１は、走査した黒画素ラインが、条件５：「セル領域の下端のランレングス長／セルの高さ＞任意の閾値」に一致するか否かを判定する。この判定は、中心部の黒画素は欠けているがセル領域の下端から黒画素が連続している黒画素ラインか否かを判定するもので、セル領域の下端のランレングス長、セルの高さ、任意の閾値の単位は全て画素数である。一致する場合は、フラグＦを立て（フラグＦ＝ＯＮ）（ステップＳ１１１３）、ステップＳ１１１４に進む。一方、一致しない場合はそのままステップＳ１１１４に進む。下端のランレングスとは、図１１に示す１２０２のように、走査終了位置まで連続して続く黒画素をいう。つまり、このフラグは、中心部の黒画素は欠けているがセル領域の下端から黒画素が連続していると判定された罫線（黒画素ライン）であるという特徴を表したものである。
【００４９】
上記条件１〜条件５の任意の閾値は、０から１の間の値が任意に設定されるが、値が大きいほど抽出する条件が厳しくなるため、より罫線らしい罫線候補が抽出されることになる。条件１〜条件５の任意の閾値については、予め設定されていてもよいし、オペレータが設定するようにしてもよく特に限定するものではない。
【００５０】
ステップＳ１１１４では、ＣＰＵ１０１は、フラグＢ〜Ｆのうち一つでもフラグが立っている黒画素ラインを罫線候補として抽出し、フラグが１つも立っていない場合は罫線候補とはしない。抽出された罫線候補には、罫線候補識別情報が付与され、図１３に示す管理情報により管理される。なお、ステップＳ１１０５，Ｓ１１０７，Ｓ１１０９，Ｓ１１１１，Ｓ１１１３で設定された各フラグの値（例えば、Ａ〜Ｆ）は、後述する罫線候補をグループ分けする際に使用されるので、図１３に示すように、罫線候補ごとに記憶される。
【００５１】
ステップＳ１１１５では、ＣＰＵ１０１は、全ての黒画素ラインに対して、上述したステップＳ１１０２〜ステップＳ１１１４の処理を行ったかを判定する。この結果、行っていない場合は、変数Ｎをインクリメント（Ｎ←Ｎ＋１）して（ステップＳ１１１６）、次の画素列に対して、ステップＳ１１０２〜ステップＳ１１１４の処理を行う。全ての画素列に対して黒画素走査を行い、垂直方向の罫線候補を抽出する。
【００５２】
さらに、上記ステップＳ１１０１〜ステップＳ１１１５と同様の処理を、図１１に示すように、セル領域内の黒画素を水平方向に行うことによって、水平方向の罫線候補も抽出する。この場合、垂直方向の罫線候補抽出時の各判定基準にあった「セルの高さ」は「セルの幅」となり、ステップＳ１１１０の判定基準である「セル領域の上端のランレングス長」は「セル領域の左端のランレングス長」となり、ステップＳ１１１２の判定基準である「セル領域の下端のランレングス長」は「セル領域の右端のランレングス長」となる。なお、セルの左端のランレングスとは、図１１に示すように、走査開始位置から連続して続く黒画素を指し、セルの右端のランレングスとは、図１１に示すように、走査終了位置まで連続して続く黒画素を指す。
【００５３】
図１２は、図３のステップＳ３０６の罫線候補のグループ分け処理の詳細を示すフローチャートである。
【００５４】
ステップＳ１３０１では、ＣＰＵ１０１は、図１３に示す管理情報により記憶管理されている罫線候補の中でグループ分けしていない罫線候補を選択する。次に、ステップＳ１３０２では、ＣＰＵ１０１は、ステップＳ１３０１にて選択した罫線候補以外のグループ分けしていない罫線候補の中からステップＳ１３０１にて選択した罫線候補と同じフラグ値を持つ罫線候補を検索する。
【００５５】
次に、ステップＳ１３０３では、ＣＰＵ１０１は、ステップＳ１３０２にて検索した罫線候補とステップＳ１３０１の罫線候補を同じフラグ値を持つ罫線候補としてグループ分けする。このグループ分け後の管理方法は、図１３に示す管理情報にグループフラグ（例えば、ａ〜ｄ）を持たせて管理するように構成しても、別途ＲＡＭ１０３上にグループ毎に罫線候補識別情報を記憶させて管理するように構成してもよい。
【００５６】
次に、ステップＳ１３０４では、ＣＰＵ１０１は、全ての罫線候補をグループ分けしたかを判定し、グループ分けがされていない罫線候補がある場合は、ステップＳ１３０１に進み、全ての罫線候補をグループ分けするまでステップＳ１３０１〜ステップＳ１３０３の処理を繰り返す。図１３に示す管理情報は、図８に示す各罫線候補（ｈ１〜ｈ９，ｗ１〜ｗ１０，ｈ１８〜ｈ２２，ｗ１１〜ｗ１３，ｈ１０〜ｈ１７）がフラグ値によってグループ分けされた状態にある。
【００５７】
図１４は、図３のステップＳ３０７の罫線候補の確認・修正処理の詳細を示すフローチャートである。
【００５８】
ステップＳ１５０１では、ＣＰＵ１０１は、図６（ａ）に示すような表領域５００の画像とステップＳ３０５にて抽出した図８に示すような罫線候補の画像とを重ねて修正画面としてディスプレイ１０５に表示する。修正画面では、罫線候補の識別を容易にするために、任意の番号や記号が同時に付加表示され、更に、グループ分けされた罫線候補がグループ毎に識別できるように表示される。なお、図８に示す表示方法は、各罫線候補の表示線種に相違を持たせることで識別できるようにしているが、特に限定するものではなく、オペレータが識別しやすい表示方法であることが望ましい。例えば、識別できるようにグループ毎に色分け表示してもよい。
【００５９】
次に、ステップＳ１５０２では、ＣＰＵ１０１は、罫線候補を、修正画面上で修正するのか、罫線候補が一覧表示されたリスト画面によって修正するのかを判定する。リスト画面による修正が行われる場合は、ステップＳ１５０３に進む。一方、画像と罫線候補とを重ねて表示する修正画面による修正が行われる場合は、ステップＳ１５１２に進む。
【００６０】
オペレータはリスト画面による修正を行う場合、修正画面上で罫線候補以外をマウスで選択したときに表示される図１７（ａ）のメニューダイアログ１６００の「リスト表示／非表示」ボタン１６０３を押下する。なお、リスト画面を非表示にする場合にも同様の操作を行う必要がある。なお、修正画面とリスト画面とは連動しているので、リスト画面にて修正が行われた場合はリアルタイムに修正画面に反映され、修正画面にて修正が行われた場合はリアルタイムにリスト画面に反映される。
【００６１】
ステップＳ１５０３では、ＣＰＵ１０１は、ステップＳ３０５にて抽出した罫線候補を修正画面と同時に図１５のリスト画面１４００にて表示する。なお、図１５に示すように、罫線候補のリストはグループ分けされた状態で表示される。リスト画面を表示する際に、ステップＳ３０６でグループ分けしたグループごとに罫線属性（実線か点線かの線分類）が決定される。
【００６２】
図１５に示すリスト画面１４００では、「グループ名」欄１４０２、「罫線」欄１４０３、「属性」欄１４０４、「状態」欄１４０５からなる。これら「グループ名」欄１４０２、「罫線」欄１４０３、「属性」欄１４０４、「状態」欄１４０５に格納される値や情報は、ＲＡＭ１０３或いは記憶装置１０４に記憶される。
【００６３】
「グループ名」欄１４０２には、ステップＳ３０６でグループ分けされた各グループを一意に識別するための記号（本実施の形態では、英小文字）が表示される。「罫線」欄１４０３には、ステップＳ３０５で抽出した罫線候補を一意に識別するための記号（識別情報）が表示される。
【００６４】
「属性」欄１４０４には、罫線候補の線種が表示される。本実施形態では、フラグＣとフラグＤのみを保持するグループｂの罫線候補を点線とし、それ以外の罫線候補は実線として初期設定されているが、特に限定するものではない。なお、どのフラグがＯＮで点線であるかといった対応情報については、ＣＰＵ１０１が参照する外部ファイル或いはＣＰＵ１０１が実行するプログラム内で保持されているものとする。
【００６５】
「状態」欄１４０５は、罫線候補の状態を示すものである。「状態」欄１４０５が「候補」の場合は罫線候補が再利用されない状態を示し、「採用」の場合は罫線として再利用される状態を示す。本実施形態では、全ての罫線候補の初期状態を「候補」としているが、特に限定するもではなく、任意のグループ、例えば、セル領域の枠線から抽出された罫線候補のグループａについては初期状態を「採用」としてもよい。
【００６６】
図１４に戻り、ステップＳ１５０４では、ＣＰＵ１０１は、修正画面とリストに表示する罫線グループの信頼度の選択命令を受け付ける。オペレータは、図１５に示すリスト画面１４００上の「表示する罫線の信頼度」１４０６のスライドバーを操作して選択命令を出す。なお、本実施形態では、セル領域の枠線から抽出されたことを示すフラグＡの値を保持する罫線候補が最も信頼度が高いグループとし、次に点線であることを示すフラグＣとフラグＤの値のみを保持する罫線候補、黒画素が欠けた罫線であることを示すフラグＢ〜Ｆの値を全て保持する罫線候補、それ以外のフラグ値を保持する罫線候補の順に信頼度が高いものとするが、特に限定するものではなく順番を変えてもよい。なお、オペレータにより選択された信頼度の設定情報については、ＣＰＵ１０１が参照する外部ファイル或いはＣＰＵ１０１が実行するプログラム内で保持されるものとする。
【００６７】
ステップＳ１５０５では、ＣＰＵ１０１は、ディスプレイ１０５に表示された修正画面及びリスト画面の更新を行う。図１５に示すリスト画面１４００において、オペレータが最も信頼度が高い罫線グループのみ表示することを選択した場合、図１６に示すリスト画面１５００に切り替わる。このとき、修正画面上でもグループａの罫線候補のみが表示される。
【００６８】
ステップＳ１５０６では、ＣＰＵ１０１は、修正対象の罫線候補及び／又はグループの選択命令を受け付ける。罫線候補を単独で選択する場合は、図１５に示すように単独で罫線候補欄を選択（単独選択）する。一方、グループで選択する場合は、図１５に示すように罫線候補欄をグループ単位で選択する。上述したように、修正画面とリスト画面とは連動しているので、選択した罫線が修正画面上でも選択されているように表示される。
【００６９】
ステップＳ１５０７では、ＣＰＵ１０１は、オペレータの修正命令を受け付ける。オペレータは、選択した罫線候補及び／又はグループを削除する場合、図１５に示すリスト画面１４００上の「消去」ボタン１４０９を押下する。一方、線種を変更する場合には、「点線」ボタン１４０８または「実線」ボタン１４０７を押下する。
【００７０】
ステップＳ１５０８では、ＣＰＵ１０１は、罫線候補に対してステップＳ１５０７の修正命令を実行し、罫線候補の修正を行う。本処理の詳細については後述する。
【００７１】
次に、ステップＳ１５０９では、ＣＰＵ１０１は、ステップＳ１５０８で行った修正処理のキャンセル命令を受け付け、罫線候補を修正前に戻すか否かを判定する。オペレータが図１５の「キャンセル」ボタン１４１１を押下することでＣＰＵ１０１がキャンセル命令を受けた場合は、修正前の状態に戻し（ステップＳ１５１１）、ステップＳ１５１９へ進む。一方、修正前の状態に戻さない場合は、ＣＰＵ１０１は、ステップＳ１５０８の修正処理を反映させるべく修正画面及びリスト画面の更新を行い（ステップＳ１５１０）、ステップＳ１５１９へ移行する。
【００７２】
ステップＳ１５１２では、ＣＰＵ１０１は、修正対象の罫線候補及び／又はグループの選択命令を受け付ける。オペレータは修正画面内の修正対象の罫線候補をマウスでクリックして選択する。なお、複数の罫線候補を選択する場合はキーボードの特定のキーを押下しながら罫線候補を選択する。修正画面上では、選択された罫線候補と選択されていない罫線候補を識別するために、選択された罫線候補を選択されていない罫線候補に比べて太く表示する。なお、本実施形態では、線の太さに差異を持たせることで識別できるようにしているが、特に限定するものではなく、オペレータが識別容易であればどのような形態であってもよい。
【００７３】
次に、ステップＳ１５１３では、ＣＰＵ１０１は、オペレータの修正命令を受け付ける。オペレータは、修正対象の罫線候補の上でマウスの右ボタンを押下して表示される図１７（ｂ）のメニューダイアログ１６１０を操作して修正作業を行う。例えば、属性を修正する場合は、メニューダイアログ１６１０内の「実線」ボタン１６１１または「点線」ボタン１６１２を押下する。状態を修正する場合は、「採用／候補」ボタン１６１３を押下する。削除する場合は「消去」ボタン１６１４を押下する。
【００７４】
次に、ＣＰＵ１０１は、罫線候補に対してステップＳ１５１３の修正命令を実行し、罫線候補の修正を行い（ステップＳ１５１４）、修正画面及びリスト画面の更新を行う（ステップＳ１５１５）。
【００７５】
次に、ステップＳ１５１６では、ＣＰＵ１０１は、罫線候補の新規作成命令を受け付ける。オペレータは、実線を新規作成する場合には、図１７（ａ）示すメニューダイアログ１６００の「実線を引く」ボタン１６０１を、点線を新規作成する場合には、「点線を引く」ボタン１６０２を押下した後、マウスの左ボタンを押下したまま、修正画面上を図８の矢印ａのようになぞり、所望の罫線を作成する。
【００７６】
次に、ステップＳ１５１７では、ＣＰＵ１０１は、罫線候補を作成する。罫線候補を作成した場合、リスト画面上の「状態」欄１４０５は「採用」となり、信頼度は最も高い状態となる。また、点線の候補を作成した場合は「属性」欄１４０４は「点線」となり、実線を作成した場合は「属性」欄１４０４は「実線」となり、それぞれグループ分けされる。例えば、表示されている図８の罫線候補の中に実線の罫線候補ｚ１，ｚ２と点線の罫線候補ｔ１，ｔ２が作成された場合、リスト画面１４００は図１８に示すリスト画面１７００に更新される。リスト画面１７００上では、罫線候補ｚ１，ｚ２がグループｅにグループ分けされ、罫線候補ｔ１，ｔ２がグループｆにグループ分けされる。ステップＳ１５１７の後、ＣＰＵ１０１は、ディスプレイ１０５に表示された修正画面及びリスト画面の更新を行い（ステップＳ１５１８）、ステップＳ１５１９へ移行する。
【００７７】
ステップＳ１５１９では、ＣＰＵ１０１は、罫線候補の修正に対する終了命令があるか否かを判定し、終了ではない場合は、ステップＳ１５０２に戻り、修正処理を継続する。オペレータは罫線候補の修正作業を終了する場合、リスト画面１４００上の「ＯＫ」ボタン１４１０を押下する。修正処理を終了すると、例えば、リスト画面１４００が図１９に示すリスト画面１８００に更新される。ここでは、リスト画面１８００上の「状態」欄１４０５で「採用」となっている罫線の罫線識別情報と属性情報と座標情報が、図２４に示すデータ構造を有する罫線情報として、ＣＰＵ１０１が参照する外部ファイル或いはＣＰＵ１０１が実行するプログラムに保持される。罫線識別情報は、罫線候補を一意に識別するための識別情報であり、属性情報は該罫線の属性を示す属性情報であり、座標情報は罫線の画像上の座標位置を示す座標情報である。
【００７８】
図２０は、図１４のステップＳ１５０８及びステップＳ１５１４の修正処理の詳細を示すフローチャートである。
【００７９】
ステップＳ２１０１では、ＣＰＵ１０１は、選択されている罫線候補がグループ単位で選択されているのか、単独で選択されているのかを判定する。グループ単位で選択されている場合はステップＳ２１０２に進み、単独で選択されている場合はステップＳ２１１０に進む。
【００８０】
ステップＳ２１０２では、ＣＰＵ１０１は、グループに含まれる罫線候補の数を制御するための変数Ｎを初期化し、ステップＳ２１０３では、Ｎ本目の罫線候補を選択する。
【００８１】
次に、ステップＳ２１０４では、ＣＰＵ１０１は、選択した罫線候補に対して削除命令があったかを判定する。削除命令があった場合は、罫線候補を削除して（ステップＳ２１０５）、ステップＳ２１０８へ移行する。一方、削除命令がなかった場合は、ステップＳ２１０６に進み、罫線候補の「属性」を修正する。
【００８２】
次に、ステップＳ２１０７では、ＣＰＵ１０１は、罫線候補の「状態」を修正する。「状態」の修正としては、「採用」→「候補」または「候補」→「採用」に修正可能である。なお、「状態」の内容に応じて、罫線の色を変えて、採用された罫線と採用されていない罫線を識別可能に表示させることが可能である。また、修正した「属性」や「状態」をリスト画面上で更新する（図１４のステップＳ１５１０）。
【００８３】
ステップＳ２１０８では、ＣＰＵ１０１は、グループ内の全ての罫線候補に対して上記修正処理を行ったか否かを判定し、行っていない場合は、変数Ｎをインクリメント（Ｎ←Ｎ＋１）して（ステップＳ２１０９）、全ての罫線候補に対して修正処理を行い、リターンする。
【００８４】
ステップＳ２１１０では、ＣＰＵ１０１は、選択した罫線候補に対して削除命令があったかを判定する。削除命令があった場合は、罫線候補を削除して（ステップＳ２１１１）、リターンする。一方、削除命令がなかった場合は、ステップＳ２１１２に進み、罫線候補の「属性」を修正する。続いて、ステップＳ２１１３では、ＣＰＵ１０１は、罫線候補の「状態」を修正してリターンする。
【００８５】
図２１は、図３のステップＳ３０９の文字認識結果の確認・修正処理の詳細を示すフローチャートである。
【００８６】
ステップＳ２２０１では、ＣＰＵ１０１は、ステップＳ３０８で取得した文字情報に基づいて、文字認識結果用の修正画面をディスプレイ１０５に表示する。本実施形態では、図３のステップＳ３０７にて図１９に示すリスト画面１８００のように最終的な罫線候補の修正が行われると、ＣＰＵ１０１は、ＲＡＭ１０３等に保持された図２４に示す罫線情報の座標情報と、ステップＳ３０８にてＲＡＭ１０３等に保持された図２５に示す文字情報の座標情報とに従って、図２２（ａ）のような修正画面２１００をディスプレイ１０５に表示する。
【００８７】
文字情報は、文字領域を一意に識別できる文字識別情報と、当該文字領域の文字認識結果を示す文字情報と、文字領域の画像上の座標位置を示す座標情報とからなる。なお、文字情報の座標情報は、例えば、図２６の点線で示すように、文字領域を囲む最小の矩形２６００の左上座標（外接矩形の左上Ｘ座標、同左上Ｙ座標）２６０１と右下座標（外接矩形の右下Ｘ座標、同右下Ｙ座標）２６０２である。
【００８８】
ステップＳ２２０２では、ＣＰＵ１０１は、再利用対象の文字領域の選択命令を受け付ける。オペレータは、修正対象の文字領域をマウスでクリックする。なお、再利用する文字領域については、例えば、濃い色で表示する一方、破棄する文字領域については、再利用する文字領域に比べて薄い色で表示する。本実施形態では、全文字領域の初期状態を破棄状態としているが、特に限定するものではなく再利用状態としてもよい。
【００８９】
オペレータから選択命令があると、ＣＰＵ１０１は、選択命令のあった文字領域の文字認識結果を図２３に示すような文字認識結果修正画面２２００で表示する（ステップＳ２２０３）。
【００９０】
次に、ステップＳ２２０４では、ＣＰＵ１０１は、文字認識結果の修正命令を受け付ける。オペレータは、文字認識結果修正画面２２００上の文字認識結果欄２２０１に正しい認識結果を入力する。
【００９１】
次に、ステップＳ２２０５では、ＣＰＵ１０１は、オペレータから修正入力があったかを判定し、修正入力があった場合は、入力された通りに文字認識結果を修正し、文字認識修正画面を更新する（ステップＳ２２０６）。
【００９２】
ステップＳ２２０７では、ＣＰＵ１０１は、「状態」の修正命令を受け付ける。オペレータは文字認識結果を再利用する場合は、文字認識結果修正画面２２００上の「再利用する」チェックボックス２２０２を選択する（文字認識結果利用決定）。一方、文字認識結果を再利用せずに削除する場合は、文字認識結果修正画面２２００上の「破棄」チェックボックス２２０３を選択する。このように、オペレータより「状態」の修正命令を受け付けると、「状態」が修正される。
【００９３】
次に、ステップＳ２２０８では、ＣＰＵ１０１は、文字認識結果の修正終了の命令があるか否かを判定する。オペレータは修正を終了する場合は、文字認識結果修正画面２２００上のＯＫボタン２２０４を押下する。オペレータより終了命令があった場合は、文字認識結果修正画面２２００を閉じてステップＳ２２０９に進む。終了命令がない場合は、ステップＳ２２０４に戻り、修正作業を継続する。なお、文字認識の修正の際に表示する文字列の位置を移動させることも可能である。移動させた場合、文字認識した結果得られた座標情報も変更される。
【００９４】
ステップＳ２２０９では、ＣＰＵ１０１は、ステップＳ２２０７で破棄命令があったか、すなわち文字認識結果修正画面２２００上で「破棄」チェックボックス２２０３がチェックされているかを判定する。破棄命令があった場合はステップＳ２２１０に進み、文字認識結果を消去する。破棄命令がなかった場合はそのままステップＳ２２１１に進む。
【００９５】
ステップＳ２２１１では、ＣＰＵ１０１は、修正した文字認識結果を反映させる。例えば、図２２（ａ）の「１フリガナ）」を「（フリガナ）」に修正して「状態」を「採用」にした場合、修正画面は、図２２（ｂ）のように、「状態」が「採用」の文字認識結果が、「状態」が「候補」の文字認識結果と識別できるように更新される。
【００９６】
ステップＳ２２１２では、ＣＰＵ１０１は、修正終了命令があるか否かを判定する。オペレータは修正を終了する場合、修正画面上の文字領域以外の箇所でマウスをクリックし、不図示の終了メニューダイアログを表示させて選択する。オペレータより処理の終了命令があると文字認識結果の確認・修正処理を終了し、再利用する文字領域の図２５に示すような文字情報をＣＰＵ１０１が参照する外部ファイル或いはＣＰＵ１０１が実行するプログラム内で保持する。
【００９７】
修正処理が終了すると、ＣＰＵ１０１は、ステップＳ３０７で修正された罫線と、ステップＳ３０９で修正された文字認識結果とに従って、出力データを生成する（ステップＳ３１１）。生成された出力データから、例えば、フォーム作成アプリケーションにより入力フォーム（記入用紙）が生成される。なお、フォーム作成アプリケーションに取り込まず、出力データを元に表を生成し、画像化してもよい。この画像化された表を、ユーザが新たな入力フォームとして用いることも可能である。これにより、画像から再利用可能な罫線と文字列を抽出できるので、新たなフォームの生成が容易に行える。
【００９８】
上記実施形態によれば、読み取って得られた画像から第一の罫線候補抽出処理と第二の罫線候補抽出処理を実行して罫線候補を抽出し、抽出された罫線の種別を判定する。そして、判定された罫線の種別に従って罫線候補をグループ分けして修正画面及び／又はリスト画面を表示し、表示された罫線の選択や修正を受け付ける。これにより、より多くの罫線候補を抽出し、抽出した罫線候補をグループ単位で修正することができ、読み取った文書の画像から表罫線を抽出する際に、対象となる表罫線の選別や修正作業を効率良く行うことができる。
【００９９】
また、従来では、レイアウト解析で抽出された罫線のみが修正対象となっているため、画像状態の劣化等により文書画像から表罫線が抽出できなかった場合にオペレータは抽出できなかった表罫線を表領域の画像から見つけ出さなければならず、また、抽出した罫線のグループ分けを行っていないため、罫線が多い場合は確認・修正の作業量が多大となっていたが、より多くの罫線候補を抽出し、グループ単位で修正することができ、その結果、オペレータの修正作業を軽減することができる。
【０１００】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。また、本発明は、例えば、システム、装置、方法、プログラム若しくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【０１０１】
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１０２】
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
【０１０３】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１０４】
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行う場合である。
【０１０５】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現する場合も含まれる。この場合、上記プログラムは、該プログラムを記憶した記憶媒体から直接、またはインターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続された不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
【図面の簡単な説明】
【０１０６】
【図１】本発明の実施形態に係る画像処理方法が適用された画像処理システムの構成例を示す図である。
【図２】図１のＰＣの概略構成を示すブロック図である。
【図３】図１の画像処理システムにて実行される画像処理の流れを示すフローチャートである。
【図４】スキャナで読み取られた文書画像の一例を示す図である。
【図５】図４の文書画像に対してブロックセレクション処理を行った結果を示す図である。
【図６】（ａ）はブロックセレクション処理により文書画像から抽出された表領域の一例を示す図であり、（ｂ）は図６（ａ）の表領域から抽出されたセル領域を示す図である。
【図７】図３のステップＳ３０５の罫線候補の抽出処理の詳細を示すフローチャートである。
【図８】図７の罫線候補の抽出処理により図６（ｂ）のセル領域７０１〜７０７から抽出された罫線候補の一例を示す図である。
【図９】図７のステップＳ８０２の第一の罫線候補抽出処理の詳細を示すフローチャートである。
【図１０】図７のステップＳ８０３の第二の罫線候補抽出処理の詳細を示すフローチャートである。
【図１１】選択したセル領域内の画像に対して垂直及び水平方向に黒画素の走査を行うときの様子を示す図である。
【図１２】図３のステップＳ３０６の罫線候補のグループ分け処理の詳細を示すフローチャートである。
【図１３】図８に示す罫線候補がグループ分けされた際に得られる罫線候補の管理情報の一例を示す図である。
【図１４】図３のステップＳ３０７の罫線候補の確認・修正処理の詳細を示すフローチャートである。
【図１５】ＴＶモニタに表示されるリスト画面の一例を示す図である。
【図１６】表示レベルを最も高くした場合のリスト画面の一例を示す図である。
【図１７】（ａ）は修正画面上でマウスのボタンが押下された際に表示するダイアログの一例を示す図であり、（ｂ）は修正画面上で罫線候補を修正するためのメニューダイアログの一例を示す図である。
【図１８】罫線候補を新規に作成した場合のリスト画面の一例を示す図である。
【図１９】修正終了後の最終的な罫線候補のリスト画面の一例を示す図である。
【図２０】図１４のステップＳ１５０８及びステップＳ１５１４の修正処理の詳細を示すフローチャートである。
【図２１】図３のステップＳ３０９の文字認識結果の確認・修正処理の詳細を示すフローチャートである。
【図２２】（ａ）は文字認識修正画面の一例を示す図であり、（ｂ）は修正後の文字認識修正画面の一例を示す図である。
【図２３】文字認識結果を修正するための文字認識結果修正画面の一例を示す図である。
【図２４】罫線情報のデータ構造の一例を示す図である。
【図２５】文字情報のデータ構造の一例を示す図である。
【図２６】文字認識結果の確認・修正処理時に行われる文字情報の座標を示すための外接矩形を示す図である。
【図２７】出力データの構造の一例を示す図である。
【符号の説明】
【０１０７】
１０１  ＣＰＵ
１０２  ＲＡＭ
１０４  記憶装置
２０１  ＰＣ
２０２  スキャナ
２０３  プリンタ
５００  表領域
【図１】
2010033177.tif 000003
【図２】
2010033177.tif 000004
【図３】
2010033177.tif 000005
【図４】
2010033177.tif 000006
【図５】
2010033177.tif 000007
【図６】
2010033177.tif 000008
【図７】
2010033177.tif 000009
【図８】
2010033177.tif 000010
【図９】
2010033177.tif 000011
【図１０】
2010033177.tif 000012
【図１１】
2010033177.tif 000013
【図１２】
2010033177.tif 000014
【図１３】
2010033177.tif 000015
【図１４】
2010033177.tif 000016
【図１５】
2010033177.tif 000017
【図１６】
2010033177.tif 000018
【図１７】
2010033177.tif 000019
【図１８】
2010033177.tif 000020
【図１９】
2010033177.tif 000021
【図２０】
2010033177.tif 000022
【図２１】
2010033177.tif 000023
【図２２】
2010033177.tif 000024
【図２３】
2010033177.tif 000025
【図２４】
2010033177.tif 000026
【図２５】
2010033177.tif 000027
【図２６】
2010033177.tif 000028
【図２７】
2010033177.tif 000029