(57)【特許請求の範囲】
【請求項１】
画像に含まれるテーブル内の複数のセルを表示するように制御する第１表示制御手段と、
前記表示された前記複数のセルの中から、ユーザの指示に基づいて１つのセルを選択する選択手段と、
前記選択手段によって選択された１つのセルの大きさを変更するためのハンドルを更に表示するように制御する第２表示制御手段と、
前記ユーザによる前記ハンドルの操作に応じて、前記選択手段によって選択された１つのセルを縮小する縮小手段と、
前記縮小手段によって縮小される前の前記１つのセルに含まれ且つ前記縮小手段によって縮小された後のセルに含まれない文字領域があるか否かを判定する判定手段と、
前記判定手段によって前記文字領域があると判定されたことに従って、当該文字領域を含む新たなセルを作成する作成手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記作成手段は、前記縮小手段によって縮小される前の前記１つのセルを、前記縮小手段によって縮小された後の領域と、それ以外の領域に分割することによって、前記新たなセルを作成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１表示制御手段により表示される前記複数のセルは、それぞれ、４つの辺に囲まれる矩形の領域であることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記縮小手段は、前記ユーザによる前記ハンドルの操作で指示された位置が前記テーブルの罫線の座標位置におおよそ等しいと判断した場合、当該おおよそ等しいと判断した前記テーブルの罫線の座標位置に合うように、前記第１のセルの大きさを変更することを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
原稿の画像を読み取る読取手段をさらに有し、
前記第１の表示制御手段は、前記読取手段によって読み取られた前記画像に含まれるテーブル内の複数のセルを表示するように制御することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記ユーザによる前記ハンドルの操作に応じて、前記選択手段によって選択された１つのセルを拡大する拡大手段をさらに有することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
コンピュータを、請求項１乃至６の何れか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項８】
情報処理装置の第１表示制御手段が、画像に含まれるテーブル内の複数のセルを表示するように制御する第１表示制御工程と、
前記情報処理装置の選択手段が、前記表示された前記複数のセルの中から、ユーザの指示に基づいて１つのセルを選択する選択工程と、
前記選択工程で選択された１つのセルの大きさを変更するためのハンドルを更に表示するように制御する第２表示制御工程と、
前記情報処理装置の縮小手段が、前記ユーザによる前記ハンドルの操作に応じて、前記選択工程で選択された１つのセルを縮小する縮小工程と、
前記情報処理装置の作成手段が、前記縮小工程で縮小される前の前記１つのセルに含まれ且つ前記縮小工程で縮小された後のセルに含まれない文字領域があるか否かを判定する判定工程と、
前記判定工程で前記文字があると判定されたことに従って、当該文字領域を含む新たなセルを作成する作成工程と
を有することを特徴とする情報処理方法。
【請求項９】
前記作成工程では、前記縮小手段によって縮小される前の前記１つのセルを、前記縮小手段によって縮小された後の領域と、それ以外の領域に分割することによって、前記新たなセルを作成することを特徴とする請求項８に記載の情報処理方法。
【請求項１０】
前記第１表示制御工程で表示される前記複数のセルは、それぞれ、４つの辺に囲まれる矩形の領域であることを特徴とする請求項８または９の何れか１項に記載の情報処理方法。
【請求項１１】
前記縮小工程では、前記ユーザによる前記ハンドルの操作で指示された位置が前記テーブルの罫線の座標位置におおよそ等しいと判断した場合、当該おおよそ等しいと判断した前記テーブルの罫線の座標位置に合うように、前記第１のセルの大きさを変更することを特徴とする請求項８乃至１０の何れか１項に記載の情報処理方法。
【請求項１２】
原稿の画像を読み取る読取工程をさらに有し、
前記第１の表示制御工程では、前記読取工程で読み取られた前記画像に含まれるテーブル内の複数のセルを表示するように制御することを特徴とする請求項８乃至１１のいずれか１項に記載の情報処理方法。
【請求項１３】
前記ユーザによる前記ハンドルの操作に応じて、前記選択工程で選択された１つのセルを拡大する拡大手段をさらに有することを特徴とする請求項８乃至１２のいずれか１項に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、プログラムに関する。
【背景技術】
【０００２】
図３は、スキャン画像の一例である。このスキャン画像を編集したい場合がある。特許文献１は、スキャン画像の編集機能を開示している。
【０００３】
具体的には、特許文献１は、スキャン画像から、複数の罫線により構成される表領域を特定し、さらに、その表領域の内部の文字を文字認識する。また、表領域を構成する各罫線をベクトル化する。
【０００４】
そして、スキャン画像を左のウィンドウに表示しつつ、ベクトル化結果と認識文字とを右のウィンドウに表示する（特許文献１の図５）。
【０００５】
ユーザがこの右のウィンドウにて文字の編集を行うと、左のウィンドウから、上記特定された表領域が削除される。そして、編集後の文字が追加された表を生成し、当該生成された表を左のウィンドウに表示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−０９４７６０
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の手法では、表領域を誤判定されると、文字の編集が大変になる。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の情報処理装置は、画像に含まれるテーブル内の複数のセルを表示するように制御する第１表示制御手段と、
前記表示された前記複数のセルの中から、ユーザの指示に基づいて１つのセルを選択する選択手段と、前記選択手段によって選択された１つのセルを縮小するためのハンドルを更に表示するように制御する第２表示制御手段と、前記ユーザによる前記ハンドルの操作に応じて、前記選択手段によって選択された１つのセルを縮小する縮小手段と、前記縮小手段によって縮小される前の前記１つのセルに含まれ且つ前記縮小手段によって縮小された後のセルに含まれない文字領域があるか否かを判定する判定手段と、前記判定手段によって前記文字領域があると判定されたことに従って、当該文字を含む新たなセルを作成する作成手段とを有することを特徴とする。
【発明の効果】
【０００９】
縮小される前の１つのセルに含まれ且つ縮小された後のセルに含まれない文字領域があると判定されたことに従って、当該文字を含む新たなセルを容易に作成できるようになる。
【図面の簡単な説明】
【００１０】
【図１】複写機１００の構成を示すブロック図
【図２】情報処理装置２００の構成を示すブロック図
【図３】スキャン画像の例
【図４】スキャン画像の領域分割結果
【図５】認識セルの枠を表示する表示画面
【図６】認識セルが選択された際に表示される表示画面
【図７】編集後の文字を表示した画面
【図８】メインフローチャート
【図９】編集のフローチャート
【図１０】認識セルの位置を変更するフローチャート
【図１１】編集後の文字の表示フロー
【図１２】認識セル４０６が選択された際に表示される表示画面
【図１３】認識セルを拡大する際に表示される表示画面
【図１４】認識セルを結合後に表示される表示画面
【図１５】認識セルを結合・分割するフローチャート
【図１６】認識セル４０７が選択された際に表示される表示画面
【図１７】認識セルを縮小する際に表示される表示画面
【図１８】認識セルを分割後に表示される表示画面
【図１９】式１の意味を説明する図
【図２０】セル内接直線検出領域を示す図
【図２１】セル内接直線の検出を示す図
【図２２】認識セル内部の削除のフローチャート
【図２３】認識セルの検出を示す図
【図２４】第２の実施形態のフローチャート
【図２５】第２の実施形態の表示画面
【図２６】第３の実施形態のフローチャート１
【図２７】第３の実施形態のフローチャート２
【図２８】第３の実施形態のフローチャート３
【図２９】第３の実施形態の説明で使用する、表領域の例
【図３０】第３の実施形態の説明で使用する、外接矩形の例
【発明を実施するための形態】
【００１１】
まず、言葉の定義を行う。
【００１２】
オリジナル文字とは、スキャン画像中の文字のことである。
【００１３】
認識文字とは、オリジナル文字を文字認識することで得られた文字コード、又は、編集ウィンドウに表示される、その文字コードに対応する文字のことである。この認識文字は、編集ウィンドウ用文字サイズ（編集ウィンドウ用文字サイズとは、編集ウィンドウ用に設定された文字サイズという意味である）で編集ウィンドウ上に表示される。
【００１４】
文字の編集は、ユーザが、編集ウィンドウから認識文字を削除して、代わりの文字を編集ウィンドウに入力する行為を示す。編集後の文字とは、入力された代わりの文字、又は、その文字に対応する文字コードのことである。この編集後の文字は、編集ウィンドウ上に表示される場合には、編集ウィンドウ用文字サイズで表示されるが、スキャン画像上に表示される場合には、スキャン画像用文字サイズで表示される。
【００１５】
なお、スキャン画像用文字サイズも編集ウィンドウ用文字サイズも共にそのデフォルト値は、予め保存部２０２に保存されているものとする。
【００１６】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１７】
＜第１の実施形態＞
＜複写機の構成と情報処理装置の構成＞
図１に本実施形態における複写機１００の構成を示す。複写機１００は、スキャナ１０１、送受信部１０２、プリンタ１０３より構成される。
【００１８】
図２に本実施形態における情報処理装置２００の構成を示す。情報処理装置２００は、ＣＰＵとＲＯＭ及びＲＡＭを内部に有する。ＣＰＵはＲＯＭから情報処理装置２００のプログラムをロードし、一次保存領域としてＲＡＭを利用して情報処理装置２００のプログラムを実行する。以上の動作により、各部（２０１−２０５）の処理が実行される。なお、受付部２０５は、キーボードとマウスを含む形態が一般的であるが、この形態に限られない。また、受付部２０５と表示部２０４は一体であっても良い。その場合、受付部２０５と表示部２０４をまとめてタッチパネルと呼ぶことになり、実施例中のクリックなる記載は、タッチと読み替えて頂くことになる。
【００１９】
＜スキャンから領域分割、文字認識まで＞
複写機１００のスキャナが文書をスキャンすると、スキャン画像（スキャン画像データとも言う）が生成される。生成されたスキャン画像を送受信部１０２が情報処理装置２００に送信する。すると、情報処理装置２００の送受信部２０１がこれを受信し、保存部２０２にそのスキャン画像を保存する。
【００２０】
ユーザが受付部２０５を介して、保存部２０２に保存されている複数のスキャン画像の中から、一つのスキャン画像を選択する。すると、制御部２０３は、そのスキャン画像を表示部２０４に表示する。
【００２１】
ユーザが受付部２０５を介して、表示部２０４に表示されたスキャン画像の解析を指示する。すると、制御部２０３は、領域分割と、文字認識と、認識セル枠表示の三つの処理を実行し、実行結果を表示部２０４に表示する。図３は、スキャン画像の例であり、図４は、制御部２０３による三つの処理の実行後の表示部２０４の表示結果である。
【００２２】
＜領域分割（１）−（５）、文字認識（６）、認識セル枠表示（７）の説明＞
（１）二値化
制御部２０３は、スキャン画像に対して２値化を行うことにより、２値画像を得る。この２値化により、スキャン画像における閾値より濃い色の画素は黒画素、その閾値より薄い色の画素は白画素となる。なお、以下では、スキャン画像が１００ＤＰＩであるものとして説明を行うが、スキャン画像がこの解像度に限られないのは言うまでもない。
【００２３】
（２）黒画素塊検出
制御部２０３は、２値画像に対して８連結で繋がる黒画素の輪郭を追跡することにより、８方向の何れかの方向で連続して存在する黒画素の塊（黒画素塊）を検出する。８連結とは、左上、左、左下、下、右下、右、右上、上の８つの方向の何れかで、同じ色（今回のケースでは黒）の画素が連続しているという意味である。一方、４連結とは、左、下、右、上の４つの方向の何れかで同じ色の画素が連続しているという意味である。この（２）では、８方向に存在する８つの隣接画素の何れもが黒画素ではない単独の黒画素は検出されない。一方、８方向に存在する８つの隣接画素の何れか１つにでも黒画素が存在する黒画素は、その隣接する黒画素と共に、黒画素塊として検出されることになる。図２３の２３０１は制御部２０３が検出した黒画素塊の一例である。また制御部２０３は、検出した黒画素塊の外接矩形の位置情報（四頂点のＸ、Ｙ座標情報のこと）を算出する。なお、Ｘ軸は右方向に伸び、Ｙ軸は下方向に伸びているものとする。幅は、Ｘ軸方向の長さ、高さは、Ｙ軸方向の長さを指す。図２３の２３０２は黒画素塊２３０１の外接矩形である。なお、本明細書で矩形と表現した時には、斜め向きの矩形は含まれず、四辺の全てがＸ座標軸、Ｙ座標軸の何れかと平行な矩形を表す。
【００２４】
（３）表領域検出
制御部２０３は検出した黒画素塊が以下の全ての条件に該当するか判定し、全てに該当する黒画素塊を表の枠線を構成する黒画素塊であると判定する。
【００２５】
黒画素塊の外接矩形の幅、高さが閾値以上（たとえば、１００画素・・・０．２５ｃｍ以上）である。
【００２６】
外接矩形の内部における黒画素塊の充填率が閾値以下である（たとえば、黒画素塊が外接矩形に占める割合が２０％以下）。
【００２７】
黒画素塊の最大幅及び高さと、外接矩形の幅及び高さの差が何れも小さい（たとえば、黒画素塊の最大幅及び高さと、外接矩形の幅及び高さの画素の差がともに１０画素以下）。
【００２８】
制御部２０３は、表の枠線を構成すると判定した黒画素塊の外接矩形の位置情報を保存部２０２に保存する。以下では、そのように保存された位置情報を持つ外接矩形を表領域と呼ぶ。なお、以上の判定の結果、図２３の黒画素塊２３０１は表の枠線を構成すると判定されたものとする。それに伴い、外接矩形２３０２は、表領域と呼ばれることになる。
【００２９】
（４）認識セルの特定
制御部２０３は、表領域内部の認識セルを特定する。認識セルを特定するためには、表領域内部の白画素の輪郭を追跡することにより、白画素塊を検出する必要がある。その上で、その白画素塊が所定の条件に合致する場合に、その白画素塊の外接矩形は、認識セルとして特定される。図２３の２３０３、２３０４は、制御部２０３が特定した認識セルである。制御部２０３は、特定された認識セルの位置情報を保存部２０２に保存する。
【００３０】
なお、例えば、所定の条件に合致するとは、以下の三つの条件の全てに合致することを指す。
【００３１】
白画素塊の外接矩形の幅、高さが閾値以上（たとえば、２０画素）である。
【００３２】
外接矩形の内部における黒画素塊の充填率が閾値以下である（たとえば、黒画素塊が外接矩形に占める割合が２０％以下）。
【００３３】
白画素塊の最大幅及び高さと、外接矩形の幅及び高さの差が何れも小さい（たとえば、白画素塊の最大幅及び高さと、外接矩形の幅及び高さの画素の差がともに５画素以下）。
【００３４】
（５）認識セル内の文字領域の特定
制御部２０３は、各認識セルの内部に、その各認識セルに内接する白画素塊によって囲まれた黒画素塊があるか判定する。そして、黒画素塊があると判定した場合、あると判定された全ての黒画素塊に外接矩形を設定する。
【００３５】
さらに、制御部２０３は、自身が一つの認識セルの中に複数の外接矩形を設定した場合には、外接矩形同士の距離が閾値３（例えば２０画素・・・０．５ｃｍ）以内であるか判定する。具体的には、制御部２０３は、外接矩形を一つ一つ選択し、選択された外接矩形からの距離が閾値３以内である外接矩形を検出する。
【００３６】
さらに、制御部２０３は、自身がそうした外接矩形を検出した場合、検出した外接矩形と、選択された外接矩形とを統合する。即ち、制御部２０３は、両方の外接矩形に外接する新たな外接矩形を設定し、その代わり、選択された外接矩形と、検出された外接矩形を削除する。
【００３７】
新たな外接矩形の設定、二つの外接矩形の削除が完了した後、制御部２０３は、その認識セル内の外接矩形をまた初めから一つ一つ選択し、互いの間の距離が閾値３以内である外接矩形同士を統合していく。以上の処理を繰り返す。即ち、互いの間の距離が閾値３以内である外接矩形が無くなるまで、外接矩形同士の統合が繰り返される。
【００３８】
以上の通り、本実施例では、一つの認識セルの内部に存在する外接矩形同士の統合を行うが、認識セルをまたぐ外接矩形同士の統合を行わない。
【００３９】
以上の処理が終わって依然として設定されている外接矩形は、文字領域と呼ばれる。以上の処理を認識セル内の文字領域の特定と呼ぶ。制御部２０３は、認識セルの内部に存在する文字領域の位置情報を、当該認識セルに関連付けて保存部２０２に保存する。
【００４０】
図２３の２３０５、２３０６は文字領域であって、認識セル２３０３には、文字領域２３０５が、認識セル２３０４には文字領域２３０６が関連付けられ、保存部２０２に保存される。
【００４１】
図３のスキャン画像に対して行われた領域分割の結果を図４に示す。図４では、特定された認識セルを示す外接矩形に太線枠を付け、文字領域を示す外接矩形に点線枠を付けている。図４の例では、４０２、４０３、４０４、４０６、４０７が認識セルである。４０１、４０５が文字領域である。
【００４２】
この図４では、４０３内部の罫線が掠れてしまっているため、本来は、複数のセルからなる４０３が１つの認識セルとして特定されている。また、４０６、４０７は、本来は、単一のセルであるにも関わらず、ノイズの関係で、別々の認識セルとして特定されている。
【００４３】
（６）文字認識
制御部２０３は、各文字領域に対して文字認識を行うことによって、各文字領域に対応する認識文字を得る。認識文字は、対応する文字領域に関連付けて保存部２０２に保存する。そうすることによって、認識文字は、文字領域と予め関連付けられている認識セルとも関連付けられることになる。文字認識を行わない場合、もしくは文字認識に失敗した場合は、文字領域に関連付けられる認識文字はない。
【００４４】
（７）認識セル枠表示
制御部２０３は、各認識セルの四辺（即ち、外接矩形の四辺）に太線枠を付けてスキャン画像を表示部２０４に表示する。表示された画面は図５となっている。なお、枠の形態は、太線でなくても実線でなくても良く、黒でなくても良いのは言うまでも無いが、これ以降は、太線であるものとして説明を続ける。また、この（７）で太線枠と共に表示されるスキャン画像は、（１）−（６）の処理が行われる前のスキャン画像であり、即ち、２値化前のスキャン画像である。
【００４５】
＜図８の説明＞
ユーザが受付部２０５を介して、表示部２０４に表示されている図５における任意の箇所をクリックする。なお、本明細書においてクリックとは、マウスの左ボタンを押して、すぐに（押してから一定時間内に）離す行為のことである。クリックされた箇所が認識セルの外接矩形の内側の場合に、制御部２０３は、その認識セルが選択されたと判定する（Ｓ８０１）。図６に、認識セル６０２が選択された際に表示される表示画面を示す。ここでは、認識セル６０２が選択されたものとして以下説明を続ける。なお、６０１は、受付部２０５を介してユーザが指し示している場所を示すマウスポインタである。
【００４６】
上記判定がなされると、制御部２０３は、選択された認識セルの内部のオリジナル文字を編集するための編集ウィンドウ６０４と、選択された認識セル６０２の位置や大きさを変更するためのハンドル６０３とを表示部２０４に追加表示する（Ｓ８０２）。このハンドル６０３（認識セル位置変更ハンドルと呼ばれる）は、選択された認識セル６０２の太線枠の四頂点に追加表示される。図６に、認識セル位置変更ハンドル６０３と編集ウィンドウ６０４が追加表示された結果を示す。
【００４７】
またＳ８０２では図６のように、選択された認識セル（選択状態の認識セル）が他の認識セルと区別つくようにするのも好ましい。例えば、選択状態の認識セルの枠をより太くするのも好ましい（極太線枠とするのも好ましい）。もちろん他の認識セルと区別つくのであれば他の方法を取っても良い。例えば、選択状態の認識セルの枠を他の色にしたり、点線とするような方法も考えられる。ただし、本明細書では、選択された認識セルを他の認識セルと区別つけるための方法として極太線枠を用いる方法を採用した場合を例に以下説明を続ける。
【００４８】
なお、認識セルに対する選択状態が解除された場合には、そうした極太線枠状態から元の状態に戻ることになる（即ち、他の認識セルと同じ太線枠状態に戻ることになる）。
【００４９】
編集ウィンドウ６０４における文字入力欄６０５には、選択された認識セルに関連付けられている認識文字が編集ウィンドウ用文字サイズで表示される。ユーザはこの文字入力欄６０５から認識文字を削除し、代わりに、他の文字を入力することができる。そうすることにより、認識文字の編集ができる。なお、選択された認識セルと関連付けられている認識文字が無い（例えば、選択された認識セル内部から文字領域が検出されなかった、もしくは文字領域は検出されたが文字認識が失敗して認識文字が存在しない。）場合には、文字入力欄６０５は空欄となる。
【００５０】
ＯＫボタン６０６は、文字の編集を確定する場合にクリックされるボタンである。Ａｐｐｌｙボタン６０７は、編集後の文字をスキャン画像上に表示したい場合にクリックされるボタンである。Ｃａｎｃｅｌボタン６０８は、文字の編集をキャンセルしたい場合にクリックされるボタンである。
【００５１】
図６が表示された後、ユーザは受付部２０５に対して新たな操作を行う。もしその操作が編集ウィンドウ６０４上での文字編集であれば、制御部２０３は、Ｓ８０３（図９のＳ９０１）に処理を進める。ユーザが受付部２０５に対して行った操作が認識セル位置変更ハンドルに対する操作であれば、制御部２０３は、Ｓ８０４（図１０のＳ１００１）に処理を進める。
【００５２】
＜図９の説明＞
Ｓ９０１では、制御部２０３は、認識セル位置変更ハンドル６０３を非表示にする。
【００５３】
Ｓ９０２では、制御部２０３は、編集ウィンドウ６０４上で編集された後の文字を、編集ウィンドウ用文字サイズで編集ウィンドウ６０４に表示する。
【００５４】
Ｓ９０３では、制御部２０３は、文字編集後にユーザが受付部２０５に対して行った操作が、別の認識セルの選択か、Ａｐｐｌｙボタンのクリックか、ＯＫボタンのクリックか、Ｃａｎｃｅｌボタンのクリックか判定する。Ｃａｎｃｅｌボタンのクリックであると判定した場合には、制御部２０３は、選択されている認識セルの選択状態を解除して図９の処理を終了する。なお、これ以降では説明を省略するが、選択状態が解除された認識セルは、上述の通り、極太線枠状態から、他の認識セルと同じ太線枠状態に戻ることになる。
【００５５】
それ以外であると判定した場合には、制御部２０３は、選択されている認識セル内部（即ち、スキャン画像における認識セルの内部）の色を全て削除する（Ｓ９０４）。ここで、色を削除するとは、認識セル内の画素の色情報を既定の色情報に置換するという意味である。本実施例では、規定の色情報が白であるものとして説明を続けるが、白に限るものではない。このＳ９０４における具体的な処理は、図２０−図２２を用いて後述する。
【００５６】
その上で制御部２０３は、編集後の文字をその認識セル内部にスキャン画像用文字サイズで配置する（Ｓ９０５．１。図１１で詳細に説明する）。そして、制御部２０３は、編集後のスキャン画像（即ち、認識セル内部の削除、及び、編集後の文字の配置が完了した画像）を保存部２０２に保存すると共に、表示部２０４で表示されているスキャン画像にこの編集後のスキャン画像を置き換える（Ｓ９０５．２）。そうすることにより、この編集後のスキャン画像は、各認識セルの外接矩形に太線枠が付けられた状態で表示されることになる。また、現在選択されている認識セルの外接矩形については極太線枠状態で表示されたままとなる。
【００５７】
さらに、上記操作がＯＫボタンのクリックであれば（Ｓ９０６）、制御部２０３は、選択されている認識セルの選択状態を解除した上で図９の処理を終了する。また、上記操作が別の認識セルの選択であれば（Ｓ９０６）、制御部２０３は、選択されている認識セルの選択状態を解除した上でＳ８０２に処理を進める。また、上記操作がＡｐｐｌｙボタン６０７のクリックであれば（Ｓ９０６）、制御部２０３は、Ｓ９０５．１で配置された編集後の文字の外接矩形の四頂点に文字位置変更ハンドルを表示する（Ｓ９０７）。
【００５８】
ユーザがもし編集後の文字の位置を変更したい場合には、この文字位置変更ハンドルの位置を動かす操作を受付部２０５に対して行うことになる。すると、その操作に応じた文字位置変更を制御部２０３は行い、さらに、その文字位置変更後の画像を、保存部２０２で保存されている編集後のスキャン画像と置き換える。さらに、表示中の編集後のスキャン画像とも置き換える。そうすることにより、文字位置変更後の画像が、編集後のスキャン画像として保存、表示されることになる（Ｓ９０８）。一方、文字位置を変更する必要が無い場合には、文字位置変更ハンドルに対する操作は行われない。その場合、Ｓ９０８では何も行われず、スキップされることになる。
【００５９】
その後、ユーザは、別の認識セルを選択するか、ＯＫボタンをクリックするか、Ｃａｎｃｅｌボタンをクリックすることになる。もし別の認識セルの選択がされたことを受付部２０５が受付けると（Ｓ９０９）、制御部２０３は、選択されている認識セルの選択状態を解除してＳ８０２に処理を進める。ＯＫボタンがクリックされたことを受付部２０５が受付けると（Ｓ９０９）、制御部２０３は、選択されている認識セルの選択状態を解除して図９の処理を終了する。また、もしＣａｎｃｅｌボタンがクリックされたことを受付部２０５が受付けると（Ｓ９０９）、制御部２０３は、選択されている認識セルの内部を元の状態に戻す（即ち、黒画素塊の削除前の状態に戻す）。その上で制御部２０３は、選択されている認識セルの選択状態を解除して図９の処理を終了する（Ｓ９１０）。
【００６０】
図９の処理が終了した後は、ユーザからの他の認識セルの選択を待つ状態となる。また、ユーザから受付部２０５に対して別の装置への編集後のスキャン画像の送信が指示された場合には、制御部２０３は、その選択待ち状態を解除する。その上で、制御部２０３は、保存部２０２に保存されている編集後のスキャン画像を送受信部２０１に別の装置へ送信させる。その別の装置が仮に複写機１００だったとすると、複写機１００は、編集後のスキャン画像を送受信部１０２により受信し、ユーザからの指示によっては編集後のスキャン画像をプリンタ１０３により印刷することになる。
【００６１】
以上の処理を行った場合、別の装置に送信される編集後のスキャン画像は、（選択されていた）認識セル内部の削除、及び、編集後の文字の配置が完了した画像となる。しかし、送信される画像は、必ずしもこれに限られるものではない。例えば、元のスキャン画像（２値化前のスキャン画像）と、認識セル内部の削除命令と、編集後の文字の配置命令とを含むファイルであっても良い。そのようなファイルを別の装置が受信した場合には、その別の装置の側で元のスキャン画像から認識セル内部の削除、及び、編集後の文字の配置が行われることになる。
【００６２】
＜図１０の説明＞
上述の通り、ユーザが受付部２０５に対して行った操作が認識セル位置変更ハンドル６０３に対する操作であれば、制御部２０３は、Ｓ８０４（図１０のＳ１００１）に処理を進める。
【００６３】
Ｓ１００１では、制御部２０３は、その操作に合わせて、認識セルの位置を変更し、変更後の位置の認識セルの四辺を極太線枠状態にして表示部２０４に表示する。この際、変更前の位置の認識セルの四辺の極太線枠状態は解除され、通常の状態（太線枠も極太線枠も付いていない状態）に戻ることになる。また、認識セル位置変更ハンドル６０３も同様に、変更前の位置の認識セルの四頂点からは解除され、変更後の位置の認識セルの四頂点に表示されることになる。なお、認識セルの位置を変更するとは、保存部２０２に保存されている認識セルの位置情報を変更することを意味する。
【００６４】
その後、制御部２０３は、編集ウィンドウ６０４を介した文字編集が行われるまで待機し、文字編集が行われると制御部２０３は、Ｓ９０１に処理を進める。
【００６５】
このように、文字編集が行われる前に認識セルの位置を変更可能とすることによって、Ｓ９０４で内部が削除される対象となる認識セルの位置を変更することができる。これにより、削除されるべき部位が削除され、かつ、削除されるべきでない部位が削除されずにすむこととなる。
【００６６】
＜図１１の説明＞
図１１を用いて、Ｓ９０５．１の処理の詳細を説明する。
【００６７】
Ｓ１１０１で、制御部２０３は、選択されている認識セルの位置情報、および当該認識セルに関連付けられた文字領域の位置情報を保存部２０２から取得する。
【００６８】
次にＳ１１０２で、制御部２０３は基準線の設定を行う。
【００６９】
認識セルの左上座標を（Ｘ１，Ｙ１）、右下座標を（Ｘ２，Ｙ２）、文字領域の左上座標を（ｘ１，ｙ１）、右下座標を（ｘ２，ｙ２）とする。
【００７０】
制御部２０３は、基準線の設定を行うために、まず、選択されている認識セルにおける文字領域の左右の余白を計算する。
左側の余白  ｘ１−Ｘ１
右側の余白  Ｘ２−ｘ２
（左側の余白）≧（右側の余白）ならば、基準線は文字領域の右辺、すなわち、（ｘ２，ｙ２），（ｘ２，ｙ２）を結ぶ直線に設定される。
（左側の余白）＜（右側の余白）ならば、基準線は文字領域の左辺、すなわち、（ｘ１，ｙ１），（ｘ１，ｙ２）を結ぶ直線に設定される。
【００７１】
Ｓ１１０３で、制御部２０３は、選択されている認識セル内部の設定されている基準線に合わせて、編集後の文字を配置する。
【００７２】
この時、配置される文字のサイズとして、スキャン画像用文字サイズのデフォルト値が用いられるものとするが、下記のようにして決定されたサイズを用いても良い。たとえば、選択されている認識セル内部に存在していたオリジナル文字の幅が４文字で１００ドットだった場合に、１文字あたりのサイズは、２５ドットと推定される。この認識セル内部に編集後の文字を違和感なく配置するためには、編集後の文字も１文字あたり２５ドット程度であるのが好ましい。このことから、標準的な文字のサイズが２５ドットとなるようなポイント数を計算し、そのポイント数を、配置される文字のサイズとして用いることも可能である。また、そのように決定された文字サイズをユーザが手動で変更できるような構成としても良い。さらには、配置される文字の色やフォント、スタイル（標準、斜体、太字）をユーザが手動で変更できるような構成としても良い。
【００７３】
ここで、編集後の文字の外接矩形の高さがＨ、幅がＷだったとする。また、文字領域の左上座標が（ｘ１，ｙ１）、右下座標が（ｘ２，ｙ２）であり、Ｓ１１０２で求めた基準線が文字領域の右辺だったとする。
【００７４】
この場合、編集後の文字の外接矩形を配置する座標は、Ｗｉｎｄｏｗｓ（登録商標）の場合（ｘ座標は右に行くほど大きくなり、ｙ座標は下に行くほど大きくなる）、
左上座標（ｘ２−Ｗ，ｙ２−Ｈ）
右下座標（ｘ２，ｙ２）
となる。
【００７５】
もし、基準線が左辺の場合には、編集後の文字の外接矩形の左辺を基準線（文字領域の左辺）に合わせるため、編集後の文字を配置する座標は、
左上座標（ｘ１，ｙ２−Ｈ）
右下座標（ｘ１＋Ｗ，ｙ２）
となる。
【００７６】
なお、これらの例では、編集後の文字の高さ方向（Ｙ方向）の位置は、オリジナル文字の配置されていた文字領域の下辺の位置を基準とした。しかしながら、この位置ではなく、編集後の文字の高さ方向の中心と、オリジナル文字の配置されていた文字領域の高さ方向の中心が揃うように編集後の文字の位置を決めても構わない。
【００７７】
＜Ｓ１００１の詳細（認識セルの結合と分割）＞
図４において、認識セル４０６と認識セル４０７は、本来は単一のセルであるにも関わらず、ノイズの関係で別々の認識セルとして特定されている。認識セル４０６と認識セル４０７を結合して、単一の認識セルとする手段について、図１５を用いて説明する。なお図１５は、図１０のＳ１００１の認識セル位置変更の処理の詳細を示す。
【００７８】
まず、ユーザが受付部２０５を介して、認識セル位置変更ハンドルをドラッグして、選択中の認識セルの位置を変更する（Ｓ１５０１）。本実施形態では、認識セルの四頂点に表示されている四つのハンドルのうちの一つのハンドルを掴んで、その一つのハンドルの位置の変更のみを行うため、認識セルのサイズも自動的に変更されることになる。
【００７９】
Ｓ１５０２では、制御部２０３が、変更した位置が、選択中の認識セルの縮小にあたるか、拡大にあたるか、どちらにもあたらないかを判定する。具体的な判定方法を以下に述べる。位置を変更する前の認識セルの幅をＷ１、高さをＨ１とし、位置を変更した後の認識セルの幅をＷ２、高さをＨ２とする。Ｗ１＜Ｗ２かつＨ１＜Ｈ２の場合は、制御部２０３が認識セルの拡大と判定する。Ｗ１＞Ｗ２かつＨ１＞Ｈ２の場合は、制御部２０３が認識セルの拡大と判定する。それ以外の場合は、制御部２０３が、どちらにもあたらないと判定する。
【００８０】
どちらにもあたらないと判定された場合は、制御部２０３は処理を終了する。
【００８１】
認識セルの拡大と判定した場合、制御部２０３は、拡大後の認識セルが、別の認識セルを包含するかどうかを判定する（Ｓ１５０３）。別の認識セルを包含しないと判定した場合は、制御部２０３は認識セルの結合は行わず、処理を終了する。
【００８２】
一方、Ｓ１５０３で別の認識セルを包含すると判定した場合は、制御部２０３は、拡大後の認識セルと、包含した当該別の認識セルを結合する（Ｓ１５０５）。
【００８３】
認識セルの結合ステップ（Ｓ１５０５）では、制御部２０３は、結合する前の各々の認識セルの座標を元に、両方の認識セルを含む最小の矩形を結合後の認識セルと設定する。そして、その設定した結合後の認識セルの位置情報を保存部２０２に保存する。例えば、結合する２つの認識セルの左上座標をそれぞれ（Ｘａ，Ｙａ）、（Ｘｂ，Ｙｂ）とし、仮にＸａ＞Ｘｂ、Ｙａ＜Ｙｂとすると、結合後の認識セルの左上座標は（Ｘｂ，Ｙａ）になる。左下、右上、右下座標についても同様の考え方で決定する。また、結合する認識セルが３個以上の場合でも同様である。なお、結合後の認識セルの位置情報が保存されることに伴い、拡大後の認識セルの位置情報及び上記別の認識セルの位置情報は保存部２０２から削除される。
【００８４】
次に、制御部２０３は、各々の認識セルに含まれる文字領域を結合する（Ｓ１５０６）。
【００８５】
具体的には、制御部２０３が、結合後の認識セルに含まれている文字領域を検出する。検出される文字領域は、拡大前の認識セルに含まれている文字領域と、上記別の認識セルに含まれている文字領域となる。その上で、検出した文字領域同士を結合する。結合後の文字領域は、結合前の全ての文字領域を包含する最小の矩形となる。この最小の矩形の位置情報を結合後の文字領域の位置情報として、結合後の認識セルと関連付けて保存部２０２に保存する。その代わりに、拡大前の認識セルに含まれていた文字領域の位置情報と、上記別の認識セルに含まれていた文字領域の位置情報を保存部２０２から削除する。
【００８６】
次に制御部２０３は、認識文字を結合する（Ｓ１５０７）。具体的には、制御部２０３は結合後の文字領域に含まれる複数の認識文字を結合することにより、１つの認識文字を新規に作成する。代わりに、元の複数の認識文字は削除する。新規に作成した認識文字は、制御部２０３が結合後の文字領域に関連付ける。なお、認識文字の結合では、単純に複数の認識文字を繋げるだけでもよいし、認識文字の間にスペースを挿入してもよい。
【００８７】
次に制御部２０３は、結合前の認識セルの四頂点から認識セル位置変更ハンドルを消して、結合後の認識セルの四頂点に認識セル位置変更ハンドルを表示部２０４に表示する（Ｓ１５０８）。つまり、結合後の認識セルが選択された状態にする。
【００８８】
また、制御部２０３は、結合後の認識文字を、編集ウィンドウ６０４における文字入力欄６０５に表示する（Ｓ１５０９）。
【００８９】
以上の認識セルの結合手段について、図１２、図１３、図１４を用いて、具体例を示す。
【００９０】
図１２はノイズにより別々の認識セルとして特定された認識セル４０６と認識セル４０７のうち、認識セル４０６がユーザにより選択された際の表示画面である。認識セル４０６と認識セル４０７は別々の認識セルとして特定されているため、文字入力欄１２０１には認識文字として「Ｇｙｍ  Ｂａｇ」ではなく「Ｇｙｍ」が表示されている。
【００９１】
認識セル４０６と認識セル４０７を結合したい場合、まずユーザは認識セル４０６の認識セル位置変更ハンドル６０３をドラッグして、認識セル４０７を全て含むまで拡大する（図１３）。なお、認識セルをドラッグして拡大する際には、認識セルを拡大している最中であることが分かるよう、認識セルの枠の表示を変更するのが好ましい。例えば１３０１のように、認識セルを拡大している間は、認識セルの枠を点線で表示する。
【００９２】
ユーザが認識セル位置変更ハンドル６０３のドラッグを完了すると、制御部２０３は認識セル４０６と認識セル４０７を結合して、結合後の認識セル１４０１を表示部２０４に表示する（図１４）。また、文字領域の結合も行う。そして、Ｓ１５０７で認識文字の結合を行い、結合後の認識文字「Ｇｙｍ  Ｂａｇ」を認識文字として文字入力欄１４０２に表示する。
【００９３】
次に、認識セルの分割について説明する。
【００９４】
図１６において、認識セル４０３は、本来は「Ｄｅｓｃｒｉｐｔｉｏｎ」、「Ｑｕａｎｔｉｔｙ」、「Ｕｎｉｔ  Ｐｒｉｃｅ」、「Ａｍｏｕｎｔ」の認識文字を含む４つの認識セルとなるべきである。しかし、スキャン画像の罫線が掠れているため、１つの認識セルとして特定されている。認識セル４０３を分割して、複数の認識セルとする手段について、Ｓ１５１１−Ｓ１５１６を用いて説明する。
【００９５】
Ｓ１５０２で、制御部２０３が認識セルの縮小と判断した場合、次に制御部２０３は、選択中の認識セルに含まれていた文字領域の全てが、縮小後の認識セル内でも含まれているかどうかを判定する（Ｓ１５１１）。全て含まれていると判定した場合は、制御部２０３は選択中の認識セルの分割は行わず、処理を終了する。
【００９６】
一方、Ｓ１５１１で縮小後の認識セルに含まれない文字領域があると判定した場合は、制御部２０３は、縮小前の認識セルを分割する（Ｓ１５１２）。即ち、縮小前の認識セルに含まれていた文字領域の一部又は全てが、縮小後の認識セル内に含まれていない場合には、縮小前の認識セルを分割する。縮小前の認識セルの分割とは、具体的には、制御部２０３は、縮小後の認識セルとは別に、新規に認識セルを作成することを意味する。
【００９７】
縮小後の認識セルと、上記新規に作成する認識セルの位置情報は、縮小後の認識セルの位置情報と縮小前の認識セルの位置情報とを元に制御部２０３が決定する。例えば、縮小前の認識セルが、左上座標（Ｘａ１，Ｙａ１）、右下座標（Ｘａ２，Ｙａ２）とする。ユーザが右下の認識セル位置変更ハンドルをドラッグして認識セルを左方向に縮小して、その結果右下座標が（Ｘａ２−Ｗ，Ｙａ２）になったとする（Ｗは縮小幅）。この場合、制御部２０３は「Ｘ座標＝Ｘａ２−Ｗ」の位置で縮小前の認識セルを分割すると判断する。分割した結果、縮小後の認識セルの座標は、左上座標（Ｘａ１，Ｙａ１）右下座標（Ｘａ２−Ｗ，Ｙａ２）となり、新規に作成した認識セルの座標は、左上座標（Ｘａ２−Ｗ，Ｙａ１）右下座標（Ｘａ２，Ｙａ２）となる。
【００９８】
次に制御部２０３は、文字領域の分割を行う（Ｓ１５１３）。具体的には、まず縮小後の認識セル内に包含されていない文字領域と、縮小後の認識セルとの関連付けを解除し、代わりに、その文字領域を、新規に作成した認識セルに新たに関連付ける。また、認識セルを分割した位置の上に文字領域が重なっている場合は、その分割した位置で文字領域も分割する。例えば、左上座標（Ｘａ３，Ｙａ３）、右下座標（Ｘａ４，Ｙａ４）の文字領域を、Ｘ座標がＸａ５の位置で分割するとする。この場合は、左上座標（Ｘａ３，Ｙａ３）、右下座標（Ｘａ５，Ｙａ４）の文字領域と、左上座標（Ｘａ５，Ｙａ４）、右下座標（Ｘａ４，Ｙａ４）の文字領域の、２つの文字領域を作成する。そして、元の文字領域は制御部２０３が削除する。その後、制御部２０３は、新規に作成した２つの文字領域を、文字領域を包含している認識セルにそれぞれ関連付ける。
【００９９】
次に制御部２０３は、認識文字の分割を行う（Ｓ１５１４）。上記分割された文字領域に含まれるように認識文字を分割して、各文字領域に関連付ける。
【０１００】
次に制御部２０３は、分割後の認識セルのうち、もっとも左上側にある認識セルの四頂点に対して認識セル位置変更ハンドルを表示部２０４に表示する（Ｓ１５１５）。つまり、分割後に生成された複数の認識セルのうち、最も左上側に位置する認識セルを選択状態にする。また、制御部２０３は、分割後の認識文字を、編集ウィンドウ６０４における文字入力欄６０５に表示する（Ｓ１５１６）。
【０１０１】
以上の認識セルの分割手段について、図１６、図１７、図１８を用いて、具体例を示す。図１６では認識セル４０３が選択されている状態の表示画面である。認識セル４０３は本来は複数の認識セルとなるべきだが、スキャン画像の罫線が掠れているため、単一の認識セルとして特定されている。単一の認識セルとして特定されているため、文字入力欄１６０１には、認識セル４０３内の認識文字が全て結合されて表示されている。
【０１０２】
認識セル４０３を分割したい場合、まずユーザは認識セル４０３の認識セル位置変更ハンドル６０３をドラッグして、認識セルを分割したい位置まで認識セルを縮小する（図１５）。
【０１０３】
図１７では、縮小後の認識セルの中には、認識文字「Ｄｅｓｃｒｉｐｔｉｏｎ」の文字領域のみが含まれていて、「Ｑｕａｎｔｉｔｙ」、「Ｕｎｉｔ  Ｐｒｉｃｅ」、「Ａｍｏｕｎｔ」は含まれていない。そのためＳ１９０３で、制御部２０３は、縮小後の認識セルに包含していない文字領域があると判定し、認識セルの分割をおこなう。
【０１０４】
認識セルを分割したあと、制御部２０３は、分割された各々の認識セルのうち、もっとも左上に位置する認識セルを選択状態にする（図１８）。また、制御部２０３は、分割後の認識セルに含まれる認識文字「Ｄｅｓｃｒｉｐｔｉｏｎ」を文字入力欄１８０２に表示する。
【０１０５】
＜Ｓ９０４の詳細（図２０−図２３）＞
図２０−２３を用いて、Ｓ９０４の詳細を説明する。
【０１０６】
スキャン画像には、認識セルに対して、対応する実際のセルが１つ存在する。以降、スキャン画像の実際のセルをセルと呼ぶ。
【０１０７】
保存部２０２で保存されている認識セルの位置情報は、外接矩形の座標情報である。スキャン画像の傾きや歪みにより、認識セルの外接矩形の座標情報（２３０３、２３０４）とセルの罫線（２３０１）の位置は完全には一致しない。認識セルの外接矩形の内側にセルの罫線の一部が含まれていた場合、認識セル内部をすべて削除すると、セルの罫線の一部を削除してしまう場合がある。セルの罫線を削除することなく、認識セル内部のセルの罫線以外を削除するステップを以下に説明する。
【０１０８】
図２０で２０１４はセルである。セル２０１４は、四点（２０１０−２０１３）を繋ぐ四本の罫線からなる領域である。２００１は、セル２０１４に対応する認識セルである。セル２０１４に内接する直線をセル内接直線と呼ぶ。セル内接直線は１つのセルに対して、上下左右の四本存在する（２００２−２００５）。
【０１０９】
認識セル２００１に対応するセルのセル内接直線を検出するための領域を、セル内接直線検出領域と呼ぶ。１つの認識セルに対して４つのセル内接直線検出領域がある（２００６−２００９）。
【０１１０】
Ｓ２２０１で、制御部２０３は、選択されている認識セル２００１の位置情報を保存部２０２から取得する。
【０１１１】
Ｓ２２０２で、制御部２０３は、認識セル２００１の上下左右計４つのセル内接直線検出領域（２００６−２００９）を設定する。
【０１１２】
上部のセル内接直線検出領域２００６は、認識セル２００１の上部の辺を基準として、上下にあらかじめ決められた値分（例えば２０画素・・・０．５０ｃｍ）広げた領域である。下部のセル内接直線検出領域２００７上部と同様の方法で設定される。左部のセル内接直線検出領域２００８は、認識セルの左部の辺を基準として、左右にあらかじめ決められた値分広げた領域である。右部のセル内接直線検出領域２００９は左部と同様の方法で設定される。
【０１１３】
Ｓ２２０３で、制御部２０３は、上下左右のセル内接直線検出領域（２００６−２００９）に対して、直線検出を行う。直線検出はハフ変換を用いる。
【０１１４】
上部のセル内接直線検出領域２００６に対するハフ変換による直線検出の方法を具体的に説明する。
【０１１５】
まず、制御部２０３は、上部のセル内接直線検出領域２００６に対して、エッジ検出を行う。エッジ検出により、上下左右の画素との濃度の差が閾値以上のエッジ画素と、それ以外の非エッジ画素に分類される。図２１の２１０１は上部のセル内接直線検出領域２００６に対してエッジ検出を行い、エッジ画素を黒画素として表示した図である。
【０１１６】
２１０２は上部のセル内接直線検出領域２００６内のエッジ画素の１つであり、エッジ画素の座標を（Ｘｂ１，Ｙｂ１）と表す。（Ｘｂ１，Ｙｂ１）を通る直線は式１で表現される。ρは原点から直線に垂線を引いた時の長さであり、θはｘ軸とのなす角度である。また、ρの小数点第一位を四捨五入し、整数化したものをρｉとする。
ρ＝Ｘｂ１ｃｏｓθ＋Ｙｂ１ｓｉｎθ・・・式１
この式１が表す直線を図１９に図示する。
【０１１７】
制御部２０３は、θを一定の変化量（たとえば、１度ごと）で０度から３６０度まで変化させ、それぞれのθに対するρの値を計算することで、（Ｘｂ１，Ｙｂ１）を通る直線の（ρ，θ）の組み合わせを３６０個求める。制御部２０３は、上部のセル内接直線検出領域内２００６で、この処理をエッジ画素の全てに対して行うことにより、エッジ画素数×３６０個の（ρ，θ）の組み合わせを求める。仮にエッジ画素数が１００個あるとすると、３万６０００個の（ρ，θ）の組み合わせが求まるわけである。その中には、もちろん重複があり、（ρ１，θ１）の組み合わせは２０回あった、（ρ２，θ２）の組み合わせは３０回あったというふうに重複回数が求まる。つまり、（ρｉ，θｉ）の組み合わせの出現頻度が求まることになる。
【０１１８】
この出現頻度を閾値と比較し、その閾値を超えた（ρｉ，θｉ）の組み合わせを直線を表す数式とみなす。
【０１１９】
この閾値は、上部もしくは下部のセル内接直線検出領域の場合、セル内接直線検出領域の幅にあらかじめ定められた定数（例えば、０．７）を掛けた値とする。左部もしくは右部のセル内接直線検出領域の場合、セル内接直線検出領域の高さにあらかじめ定められた定数を掛けた値とする。その結果、図２１の例では、２１０１に対して直線検出を行った結果、２１０３と２１０４の二本の直線が検出される。２１０３と２１０４は検出された直線を黒画素で示した線である。制御部２０３は、下部、左部、右部に関しても同様の方法でそれぞれ直線検出を行う。
【０１２０】
Ｓ２２０４で、制御部２０３は、Ｓ２２０３における直線検出結果を基にセル内接直線を特定する。
【０１２１】
例えば、上部のセル内接直線検出領域の場合、上部のセル内接直線検出領域２００６から２本の直線が検出されている。この２本の直線の中から、認識セルを基準として最も内側、すなわち最下部の直線を上部のセル内接直線として検出する。
【０１２２】
数学的には、上部のセル内接直線検出領域２００６の中央のｘ座標２１０５における、検出された各直線（２１０３、２０１４）のｙ座標の値を算出し、ｙ座標の値が最も大きい直線をセル内接直線として特定することになる。図２１の例では、ｙ座標の値が最も大きい２０１４がセル内接直線として特定される。
【０１２３】
また、制御部２０３は上部のセル内接直線検出領域に１つも直線が検出されなかった場合、認識セルの上部の辺をセル内接直線として特定する。もちろん、１本のみ直線が検出された場合、その直線をセル内接直線として特定する。
【０１２４】
制御部２０３は、下部、左部、右部に関しても同様にそれぞれ最も内側の直線をセル内接直線として検出する。
【０１２５】
Ｓ２２０５で、制御部２０３は、スキャン画像に対して上下左右の四本のセル内接直線に囲まれた領域内部の色情報を削除する。具体的には、領域内部の画素の色情報を白に置換する。
【０１２６】
この処理により、スキャン画像のセルの罫線を削除することなく、認識セル内部の罫線以外の色を削除することができる。
【０１２７】
＜第２の実施形態＞
第１の実施形態では、認識セルを縮小することで認識セルを分割する方法について述べた。それに対して本実施例では、別の手段で認識セルを分割する方法について述べる。
【０１２８】
＜図２４、図２５の説明＞
図２４と図２５を用いて本実施例を説明する。図２４は本実施例のフローチャートであり、図２５は図２４を補足説明するための図である。
【０１２９】
Ｓ１００１の後に、制御部２０３は、編集ウィンドウ６０４にＰａｒｔｉｔｉｏｎボタンを表示する。図２５にＰａｒｔｉｔｉｏｎボタンの表示例を示す。図１２では編集ウィンドウ６０４内にＰａｒｔｉｔｉｏｎボタン２５０１が表示されている。なお、編集ウィンドウ以外の場所にＰａｒｔｉｔｉｏｎボタンがあっても構わない。また、ボタンではなく、メニューなどの表示方法でも構わない。
【０１３０】
次にユーザは、Ｐａｒｔｉｔｉｏｎボタンを押す（Ｓ２４０２）。
【０１３１】
次に制御部２０３は、認識セル位置変更ハンドルを非表示にする（Ｓ２４０３）。
【０１３２】
次に制御部２０３は、認識セルを分割する位置を示す直線を表示し、選択状態にする（Ｓ２４０４）。以後、上記認識セルを分割する位置を示す直線を分割線ハンドルと呼ぶ。分割線ハンドルの初期の表示位置は、選択されている認識セルのｘ座標の中間とし、認識セルをｙ軸方向に横切るように表示する。
【０１３３】
図２５に分割線ハンドルの表示の一例を示す。図２５では、ユーザがＰａｒｔｉｔｉｏｎボタン２５０１を押した状態であり、分割線ハンドル２５０２が表示されている。
【０１３４】
次にユーザは、認識セルを分割したい位置まで、分割線ハンドルをｘ軸方向にドラッグする（Ｓ２４０５）。
【０１３５】
次に制御部２０３は、ユーザがＯＫ、Ａｐｐｌｙ、Ｃａｎｃｅｌボタンのうち、どのボタンを押したかを判定する（Ｓ２４０６）。
【０１３６】
Ｃａｎｃｅｌボタンを押したと判定された場合は、制御部２０３は分割線ハンドルを非表示にする（Ｓ２４０７）。そして処理を終了する。
【０１３７】
ＯＫまたはＡｐｐｌｙボタンが押されたと判定された場合は、制御部２０３が、分割前の認識セル内にある文字領域が、分割線ハンドルの位置で左右に分かれるかどうかを判定する（Ｓ２４０８）。
【０１３８】
Ｓ２４０８で分かれないと判定された場合は、制御部２０３は認識セルの分割を行わず、処理を終了する。これは、仮に分割線ハンドルの位置で認識セルを分割した場合、文字領域を含まない認識セルが作成されることになるためである。
【０１３９】
Ｓ２４０８で分かれると判定された場合は、制御部２０３は、認識セルを分割する。分割前の認識セルの左上座標（ｘ１，ｙ１）、右下座標を（ｘ２，ｙ２）、分割線ハンドルのｘ座標をＸとする。制御部２０３は左上座標（ｘ１，ｙ１）、右下座標を（Ｘ，ｙ２）の認識セルと、左上座標（Ｘ，ｙ１）、右下座標を（ｘ２，ｙ２）の認識セルを作成する。そして、分割前の認識セルは保存部２０２から削除する。
【０１４０】
その後はＳ１５１３の処理に進み、最終的に認識セルは分割される。
【０１４１】
なお、図２４のフローチャートでは、認識セルをＸ軸方向で分割する方法について述べたが、同様の考え方で認識セルをＹ軸方向に分割することもできる。
【０１４２】
＜第３の実施形態＞
本実施形態では、認識セルを分割する位置をユーザが決定する際に、分割する位置をスキャン画像の内容に合わせて自動的に調整する方法について述べる。
【０１４３】
まずは図２９、図３０を用いて、分割する位置を、どの位置に調整すべきかについて述べる。
【０１４４】
＜図２９の説明＞
図２９は図５の認識セルの枠を表示する表示画面のうち、表領域の部分を記載したものであり、認識セル４０３が選択された状態である。
【０１４５】
認識セル４０３内部の罫線が掠れてしまっているため、本来は、複数のセルからなる４０３が１つの認識セルとして特定されている。このため、複数のユーザが認識セル４０３を縮小して、認識セル４０３を分割する。このとき、ユーザが認識セル４０３を分割する位置は、表の罫線２９０１、２９０２、２９０３のいずれかであることが考えられる。つまり、ユーザは、表領域の罫線に沿って認識セル４０３を分割する。
【０１４６】
このとき、特にタブレットなどの場合、表示部２０４が小さいため、認識セルの分割位置を表の罫線の位置に合わせることが困難な場合がある。
【０１４７】
そのため、ユーザが分割する位置を決める際に、分割位置を表の罫線の位置に自動的に合わせる機能があると、ユーザの負担が軽減される。
【０１４８】
＜図３０の説明＞
図３０は認識セル４０３の右側付近を拡大して表示したものである。３００２はスキャン画像内の「Ａ」というオリジナル文字を示す。３００３はオリジナル文字「Ａ」の外接矩形である。３００４〜３０１２も同様である。
【０１４９】
ユーザは、認識セルを分割する位置を任意に指定することができる。しかし、１文字の範囲内に分割位置が指定されても、１文字を分割することは意味が無いため、１文字は分割しないようにするべきである。例えばオリジナル文字「Ａ」の外接矩形３００３の領域内で分割位置が指定されても、「Ａ」という１文字は分割しないのが望ましい。
【０１５０】
そのため、ユーザが分割する位置を決める際に、１文字の範囲内に分割位置が指定されても、分割位置を自動的に調整して１文字を分割しないようにする。
【０１５１】
＜図２６の説明＞
図２６、図２７、図２８を用いて、分割位置を自動的に調整する方法について記載する。図２６、図２７の処理では、分割位置を自動的に調整するために必要な情報を保存部２０２に保存する。その情報を使用して図２８の処理で分割位置を自動的に調整する。
【０１５２】
図２６は、＜第１の実施形態＞の「（３）表領域検出」で説明した処理に対して、必要な情報を保存する処理を追加したフローチャートである。
【０１５３】
まず制御部２０３が、スキャン画像から表領域を検出する（Ｓ２６０１）。
【０１５４】
次に制御部２０３は、表領域の左上座標と左下座標を保存部２０２に保存する（Ｓ２６０２）。
【０１５５】
次に制御部２０３は、表領域の罫線の座標を保存部２０２に保存する（Ｓ２６０３）。例えば、図２９の例の場合、縦方向の罫線２９０１、２９０２、２９０３について、Ｘ座標をそれぞれ保存部２０２に保存する。
【０１５６】
＜図２７の説明＞
図２７は、＜第１の実施形態＞の「（５）認識セル内の文字領域の特定」で説明した処理に対して、必要な情報を保存する処理を追加したフローチャートである。
【０１５７】
制御部２０３は、認識セル内の文字領域の特定を開始する（Ｓ２７０１）。
【０１５８】
次に制御部２０３は、全ての黒画素塊に外接矩形を設定する（Ｓ２７０２）。
【０１５９】
次に制御部２０３は、外接矩形を保存部２０２に保存する（Ｓ２７０３）。具体的には各外接矩形の左上座標と右下座標を保存する。
【０１６０】
次に制御部２０３は、外接矩形を統合していき、最終的に文字領域を特定する（Ｓ２７０４）。
【０１６１】
次に制御部２０３は、文字領域と、Ｓ２７０３で保存した外接矩形を関連付け、その関連付けた情報を保存部２０２に保存する（Ｓ２７０５）。例えば、「Ａｍｏｕｎｔ」というオリジナル文字に対する文字領域に対して、「Ａ」、「ｍ」、「ｏ」、「ｕ」、「ｎ」、「ｔ」の外接矩形を関連付ける。
【０１６２】
＜図２８の説明＞
Ｓ１５０２で認識セルの縮小と判定された場合に、制御部２０３が、選択されている認識セルが、表領域内にあるかどうかを判定する（Ｓ２８０１）。具体的にはＳ２６０２で保存した表領域の座標と、認識セルの座標を元に判定する。
【０１６３】
認識セルが表領域内にあると判定された場合は、制御部２０３は、位置変更後の認識セルの座標と、表の罫線の座標がおおよそ等しいかどうかを判定する（Ｓ２８０２）。具体的には、Ｓ２６０３で保存した表領域の罫線の座標と、位置変更後の認識セルの座標を元に判定する。例えば、認識セルを左方向に位置変更し、その結果、認識セルの右下座標が（ｘ，ｙ）になったとする。また、表領域の罫線が３つあるとし、各罫線のＸ座標をそれぞれｘ１、ｘ２、ｘ３とする。このとき、制御部２０３は、
ｘ１−ｗ＜ｘ＜ｘ１＋ｗ
ｘ２−ｗ＜ｘ＜ｘ２＋ｗ
ｘ３−ｗ＜ｘ＜ｘ３＋ｗ
のいずれかを満たすかどうかを判定する。ｗは任意の数値であるが、例えば０．１などの小さい値がのぞましい。
【０１６４】
Ｓ２８０２でおおよそ等しいと判定された場合、制御部２０３は、位置変更後の認識セルの位置を、表領域の罫線の位置に変更する（Ｓ２８０３）。例えば、上記の例で
ｘ２−ｗ＜ｘ＜ｘ２＋ｗ
を満たす場合は、制御部２０３は、認識セルのｘ座標をｘ２に変更する。本処理により、図２６で説明した問題が解決する。
【０１６５】
その後はＳ１５１１の処理に進み、最終的には認識セルは分割される。
【０１６６】
一方、Ｓ２８０２で表領域外と判定された場合、またはＳ２８０２で等しくないと判定された場合は、認識セルの位置を表領域の罫線の位置に合わせる処理は行わず、Ｓ２８０４の処理に進む。
【０１６７】
制御部２０３は、位置変更後の認識セルの座標が、１文字の外接矩形内にあるかどうかを判定する（Ｓ２８０４）。具体的には、まず位置変更後の認識セルの座標が文字領域内にあるかどうかを判定する。図３０の例でいえば、「Ａｍｏｕｎｔ」の文字領域内に位置変更後の認識セルの座標が含まれるかどうかを判定する。含まれる場合は、次に、制御部２０３は、Ｓ２７０３とＳ２７０５で保存した情報を元に、文字領域内の各外接矩形内に、位置変更後の認識セルの座標が含まれるかどうかを判定する。例えば、認識セルを左方向に位置変更し、その結果、認識セルの右下座標が（ｘ，ｙ）になったとする。このとき、ｘが外接矩形内にあるかどうかを判定する。図３０の例でいえば、外接矩形３００２、３００５、３００７、３００９、３０１１、３０１３内にあるかどうかを判定する。
【０１６８】
Ｓ２８０４で外接矩形内にないと判定された場合は、認識セルの位置調整は行わず、Ｓ１５１１に進む。
【０１６９】
Ｓ２８０４で外接矩形内にあると判定された場合は、制御部２０３は、位置変更後の認識セルの位置を、外接矩形外に変更する。位置変更後の認識セルの左上座標（Ｘａ，Ｙａ）、右下座標（Ｘｂ，Ｙｂ）とする。また外接矩形の左上座標（Ｘ１，Ｙ１）、右下座標（Ｘ２，Ｙ２）として、
Ｘ１＜Ｘｂ＜Ｘ２
とする。つまり位置変更後の認識セルの座標が、外接矩形に含まれているとする。このとき、制御部２０３は、
Ｘｂ−Ｘ１＞Ｘ２−Ｘｂ
を満たすかどうかを判定する。満たす場合は、制御部２０３は、Ｘｂの値をＸ２に変更する。満たさない場合はＸｂの値をＸ１に変更する。すなわち、外接矩形の左右の近い方に、認識セルの位置を変更する。本処理により、図２７で説明した問題が解決する。
【０１７０】
その後はＳ１５１１の処理に進み、最終的には認識セルは分割される。
【０１７１】
以上により認識セルの位置を自動的に調整することができる。
【０１７２】
なお上記では、認識セルをＸ軸方向で分割する方法について述べたが、同様の考え方で認識セルをＹ軸方向に分割することもできる。
【０１７３】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006452329.tif 000002
【図２】
0006452329.tif 000003
【図３】
0006452329.tif 000004
【図４】
0006452329.tif 000005
【図５】
0006452329.tif 000006
【図６】
0006452329.tif 000007
【図７】
0006452329.tif 000008
【図８】
0006452329.tif 000009
【図９】
0006452329.tif 000010
【図１０】
0006452329.tif 000011
【図１１】
0006452329.tif 000012
【図１２】
0006452329.tif 000013
【図１３】
0006452329.tif 000014
【図１４】
0006452329.tif 000015
【図１５】
0006452329.tif 000016
【図１６】
0006452329.tif 000017
【図１７】
0006452329.tif 000018
【図１８】
0006452329.tif 000019
【図１９】
0006452329.tif 000020
【図２０】
0006452329.tif 000021
【図２１】
0006452329.tif 000022
【図２２】
0006452329.tif 000023
【図２３】
0006452329.tif 000024
【図２４】
0006452329.tif 000025
【図２５】
0006452329.tif 000026
【図２６】
0006452329.tif 000027
【図２７】
0006452329.tif 000028
【図２８】
0006452329.tif 000029
【図２９】
0006452329.tif 000030
【図３０】
0006452329.tif 000031