(57)【特許請求の範囲】
【請求項１】
スキャン画像を解析することによって認識されたセルで構成される表を含むスキャン画像を表示手段に表示させる制御手段と、
前記表示手段によって表示されたスキャン画像に含まれているセルの選択と、前記選択されたセルの文字の編集指示とを受け付ける受付手段とを有し、
前記制御手段は、前記受付手段によってセルの選択を受け付けた場合、前記選択を受け付けたセルを前記スキャン画像上で強調したスキャン画像を前記表示手段に表示させ、
前記受付手段によってセルの選択を受け付け、さらに前記受付手段によって前記選択を受け付けたセルの文字の編集指示を受け付けた場合、前記制御手段は、前記受付手段によって選択を受け付けたセル内の、該セルより狭い領域を削除することを特徴とする情報処理装置。
【請求項２】
前記制御手段は、前記領域が削除されたセル内に編集後の文字を追加したスキャン画像を前記表示手段に表示させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記領域として、前記受付手段によって選択を受け付けたセルに内接する四本の直線に内接する矩形を削除することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記制御手段は、前記領域として、前記受付手段によって選択を受け付けたセルに内接する直線に囲まれた領域を削除することを特徴とする請求項１または２に記載の情報処理装置。
【請求項５】
前記制御手段は、前記領域の色を白に置き換えることで削除を行なうことを特徴とする請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記制御手段は、セルを拡大または縮小するハンドルを前記受付手段によって選択を受け付けたセルに追加したスキャン画像を前記表示手段に表示させることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記受付手段は、前記受付手段によって選択を受け付けたセルを拡大して他のセルと結合する指示をさらに受け付け、
前記情報処理装置は、前記受付手段によって前記結合する指示を受け付けた場合、前記受付手段にて前記選択を受け付けたセル内の文字と前記他のセル内の文字とを結合する結合手段をさらに有し、
前記制御手段は、前記結合後のセルを削除の対象と決定することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記受付手段は、前記受付手段によって選択を受け付けたセルを拡大して他のセルと結合する指示をさらに受け付け、
前記情報処理装置は、前記受付手段によって前記結合する指示を受け付けた場合、前記受付手段によって前記選択を受け付けたセル内の文字と前記他のセル内の文字とを結合する結合手段をさらに有し、
前記制御手段は、結合前のそれぞれのセルを削除の対象と決定することを特徴とする請求項６に記載の情報処理装置。
【請求項９】
前記受付手段は、前記受付手段によって選択を受け付けたセルを拡大して他のセルと結合する指示と、結合前のセルを削除対象とするか、結合後のセルを削除対象とするかの指示と、をさらに受け付け、
前記情報処理装置は、前記受付手段によって前記結合する指示を受け付けた場合、前記受付手段によって前記選択を受け付けたセル内の文字と前記他のセル内の文字とを結合する結合手段をさらに有し、
前記制御手段は、前記受付手段で受け付けた削除対象の指示に応じたセルを削除の対象と決定することを特徴とする請求項６に記載の情報処理装置。
【請求項１０】
前記受付手段は、前記受付手段によって選択を受け付けたセルを縮小して複数のセルに分割する指示をさらに受け付け、
前記情報処理装置は、前記受付手段にて前記分割する指示を受け付けた場合、前記受付手段にて前記選択を受け付けたセル内の文字領域とセルの領域とを分割して新しい複数の認識セルを生成する分割手段をさらに有することを特徴とする請求項６に記載の情報処理装置。
【請求項１１】
前記制御手段は、前記受付手段によって選択を受け付けたセル内に複数の文字領域が含まれている場合、編集された文字が含まれる文字領域を前記領域の代わりに削除することを特徴とする請求項１から１０のいずれか一項に記載の情報処理装置。
【請求項１２】
スキャン画像を解析することによって認識されたセルで構成される表を含むスキャン画像を表示手段に表示させ、
前記表示手段によって表示されたスキャン画像に含まれているセルの選択を受け付け、
前記選択されたセルの文字の編集指示を受け付け、
前記セルの選択を受け付けた場合、前記選択を受け付けたセルを前記スキャン画像上で強調したスキャン画像を前記表示手段に表示させ、
前記セルの選択を受け付け、さらに前記選択を受け付けたセルの文字の編集指示を受け付けた場合、前記選択を受け付けたセル内の、該セルより狭い領域を削除することを特徴とする情報処理方法。
【請求項１３】
コンピュータを請求項１から１１のいずれか一項に記載の情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、プログラムに関する。
【背景技術】
【０００２】
図１は、スキャナで原稿をスキャンして得られるスキャン画像の一例である。このスキャン画像を編集したい場合がある。特許文献１は、スキャン画像の編集機能を開示している。
【０００３】
具体的には、特許文献１は、スキャン画像から、複数の罫線により構成される表領域を特定し、さらに、その表領域の内部の文字を文字認識する。また、表領域を構成する各罫線をベクトル化する。
【０００４】
特許文献１は、その図５に示されているように、スキャン画像を表示する表示ウィンドウと、ベクトル化結果及び認識文字を表示する編集用ウィンドウとを左右に並べて表示する。そして、ユーザがこの編集用ウィンドウにて文字の編集を行うと、表示ウィンドウに表示されているスキャン画像から上記特定された表領域が削除される。そして、編集後の文字が追加された表が生成されると、当該生成された表を含むスキャン画像が表示ウィンドウに表示される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−０９４７６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術によって特定された表領域がスキャン画像の罫線と重なっていた場合、スキャン画像の罫線も削除されることになる。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、スキャン画像を解析することによって認識されたセルで構成される表を含むスキャン画像を表示手段に表示させる制御手段と、前記表示手段によって表示されたスキャン画像に含まれているセルの選択と、前記選択されたセルの文字の編集指示とを受け付ける受付手段とを有し、前記制御手段は、前記受付手段によってセルの選択を受け付けた場合、前記選択を受け付けたセルを前記スキャン画像上で強調したスキャン画像を前記表示手段に表示させ、前記受付手段によってセルの選択を受け付け、さらに前記受付手段によって前記選択を受け付けたセルの文字の編集指示を受け付けた場合、前記制御手段は、前記受付手段によって選択を受け付けたセル内の、該セルより狭い領域を削除することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、スキャン画像の罫線が削除されてしまうことを防止できる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態で説明するスキャン画像の例である。
【図２】本実施形態で説明する複写機２００の構成を示すブロック図である。
【図３】本実施形態で説明する情報処理装置３００の構成を示すブロック図である。
【図４】本実施形態で説明するスキャン画像の領域分割結果を示す図である。
【図５】本実施形態で説明する認識セルの検出を示す図である。
【図６】本実施形態で説明する認識セルの枠を表示する表示画面の例を示す図である。
【図７】本実施形態で説明するメインフローチャートを示す図である。
【図８】本実施形態で説明する認識セルが選択された際に表示される表示画面の例を示す図である。
【図９】本実施形態で説明する編集のフローチャートを示す図である。
【図１０】本実施形態で説明する編集後の文字を表示した画面を示す図である。
【図１１】本実施形態で説明する編集後の文字の表示フローを示す図である。
【図１２】本実施形態で説明する認識セルを結合または分割するフローチャートを示す図である。
【図１３】本実施形態で説明する認識セル４０６が選択された際に表示される表示画面の例を示す図である。
【図１４】本実施形態で認識セルを拡大する際に表示される表示画面の例を示す図である。
【図１５】本実施形態で認識セルを拡大する際に表示される表示画面の例を示す図である。
【図１６】本実施形態で説明する認識セルを結合後に表示される表示画面の例を示す図である。
【図１７】本実施形態で説明する認識セル４０７が選択された際に表示される表示画面の例を示す図である。
【図１８】本実施形態で説明する認識セルを縮小する際に表示される表示画面の例を示す図である。
【図１９】本実施形態で説明する認識セルの分割後に表示される表示画面の例を示す図である。
【図２０】本実施形態で説明する認識文字の選択の処理後に表示される表示画面の例を示す図である。
【図２１】本実施形態で説明する編集ウィンドウに表示する認識文字を選択するフローチャートの例を示す図である。
【図２２】本実施形態で説明するセル内接直線検出領域を示す図である。
【図２３】本実施形態で説明する認識セル内部の削除のフローチャートを示す図である。
【図２４】本実施形態で説明するセル内接直線の検出を示す図である。
【図２５】本実施形態で説明する式１の意味を説明する図である。
【発明を実施するための形態】
【００１０】
まず、実施形態の説明に先立って本明細書で用いる言葉の定義を行う。
【００１１】
「オリジナル文字」とは、スキャン画像中の文字のことである。
【００１２】
「認識文字」とは、オリジナル文字を文字認識することで得られた文字コード、又は、編集ウィンドウに表示される、その文字コードに対応する文字のことである。この認識文字は、編集ウィンドウ用文字サイズ（編集ウィンドウ用文字サイズとは、編集ウィンドウ用に設定された文字サイズという意味である）で編集ウィンドウ上に表示される。
【００１３】
「文字の編集」は、ユーザが、編集ウィンドウから認識文字を削除して、代わりの文字を編集ウィンドウに入力する行為を示す。編集後の文字とは、入力された代わりの文字、又は、その文字に対応する文字コードのことである。この編集後の文字は、編集ウィンドウ上に表示される場合には、編集ウィンドウ用文字サイズで表示されるが、スキャン画像上に表示される場合には、スキャン画像用文字サイズで表示される。もちろん、一部の認識文字を削除して変わりの文字を入力することも「文字の編集」に含まれる。また、単に認識文字を削除する行為や、認識文字を削除することなくユーザが追加の文字を編集ウィンドウに入力する行為も「文字の編集」に含まれる。
【００１４】
なお、スキャン画像用文字サイズも編集ウィンドウ用文字サイズも共にそのデフォルト値は、予め保存部３０２に保存されているものとする。
【００１５】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１６】
＜第１の実施形態＞
＜複写機の構成と情報処理装置の構成＞
図２に本実施形態における複写機２００の構成を示す。複写機２００は、スキャナ２０１、送受信部２０２、プリンタ２０３を有する。
【００１７】
図３に本実施形態における情報処理装置３００の構成を示す。情報処理装置３００は、送受信部３０１、保存部３０２、制御部３０３、表示部３０４、及び受付部３０５を有する。また、情報処理装置３００は、不図示のＣＰＵとＲＯＭとＲＡＭとを内部に有する。ＣＰＵはＲＯＭから情報処理装置３００のプログラムをロードし、一次保存領域としてＲＡＭを利用して情報処理装置３００のプログラムを実行する。以上の動作により、図３に示す各部の処理が実行される。なお、受付部３０５は、キーボードとマウスとを含む形態が一般的であるが、この形態に限られない。また、受付部３０５と表示部３０４とは一体であっても良い。その場合、受付部３０５と表示部３０４をまとめてタッチパネルと呼ぶことになり、実施形態中のクリックなる記載は、タッチと読み替えて以下の実施形態を解釈することになる。
【００１８】
＜スキャンから領域分割、文字認識まで＞
次に、本実施形態で行なう処理を説明する。複写機２００のスキャナが文書をスキャンすると、スキャン画像（スキャン画像データとも言う）が生成される。生成されたスキャン画像を送受信部２０２が情報処理装置３００に送信する。すると、情報処理装置３００の送受信部３０１がこれを受信し、保存部３０２にそのスキャン画像を保存する。
【００１９】
ユーザが受付部３０５を介して、保存部３０２に保存されている複数のスキャン画像の中から、一つのスキャン画像を選択する。すると、制御部３０３は、そのスキャン画像を表示部３０４に表示する。
【００２０】
ユーザが受付部３０５を介して、表示部３０４に表示されたスキャン画像の解析を指示する。すると、制御部３０３は、後述する領域分割と、文字認識と、認識セル枠表示との三つの処理を実行し、実行結果を表示部３０４に表示する。
【００２１】
＜領域分割（１）−（５）、文字認識（６）、認識セル枠表示（７）の説明＞
次に、前述の領域分割処理と文字認識処理と認識セル枠表示処理の詳細について説明する。領域分割処理は、以下の（１）から（５）の処理で行なわれる。図１のスキャン画像に対して以下で説明する領域分割処理を行なうことで、図４の太線や点線で示すような領域が抽出されることになる。
【００２２】
（１）二値化
制御部３０３は、スキャン画像に対して２値化を行うことにより、２値画像を得る。この２値化により、例えばスキャン画像の画素のうち、閾値より濃い色の画素は黒画素、その閾値以下の薄い色の画素は白画素となった２値画像が得られる。なお、以下では、スキャン画像が１００ＤＰＩであるものとして説明を行うが、スキャン画像がこの解像度に限られないのは言うまでもない。
【００２３】
（２）黒画素塊検出
制御部３０３は、２値画像に対して８連結で繋がる黒画素の輪郭を追跡することにより、８方向の何れかの方向で連続して存在する黒画素の塊（黒画素塊）を検出する。８連結とは、左上、左、左下、下、右下、右、右上、上の８つの方向の何れかで、同じ色（今回のケースでは黒）の画素が連続しているという意味である。なお、４連結とは、左、下、右、上の４つの方向の何れかで同じ色の画素が連続しているという意味である。この黒画素塊検出処理では、８方向に存在する８つの隣接画素の何れもが黒画素ではない単独の黒画素は検出されない。一方、８方向に存在する８つの隣接画素の何れか１つにでも黒画素が存在する黒画素は、その隣接する黒画素と共に、黒画素塊として検出されることになる。図５は、制御部３０３が検出した黒画素塊５０１の一例を含む図である。また制御部３０３は、検出した黒画素塊の外接矩形の位置情報を算出する。外接矩形の位置情報とは、外接矩形の四頂点のX, Y座標情報のことである。なお、X軸は右方向に伸び、Y軸は下方向に伸びているものとする。幅は、X軸方向の長さ、高さは、Y軸方向の長さを指す。図５は、黒画素塊５０１の外接矩形５０２を含んでいる。なお、本明細書で矩形と表現した時には、斜め向きの矩形は含まれず、四辺の全てがX座標軸,Y,座標軸の何れかと平行な矩形を表すものとする。
【００２４】
（３）表領域検出
制御部３０３は検出した黒画素塊が所定の条件に該当するか判定し、表領域を検出する。例えば、制御部３０３は以下の全てに該当する黒画素塊を、表の枠線を構成する黒画素塊であると判定する。
（ａ）黒画素塊の外接矩形の幅及び高さが閾値以上（たとえば、100画素（０．２５ｃｍ）以上）である。
（ｂ）外接矩形の内部における黒画素塊の充填率が閾値以下である（たとえば、黒画素塊が外接矩形に占める割合が２０％以下）。
（ｃ）黒画素塊の最大幅及び高さと、その外接矩形の幅及び高さとの差が何れも小さい（たとえば、黒画素塊の最大幅及び高さと、その外接矩形の幅及び高さの画素の差がともに１０画素以下）。
【００２５】
制御部３０３は、表の枠線を構成すると判定した黒画素塊の外接矩形の位置情報を保存部３０２に保存する。以下では、そのように保存された位置情報を持つ外接矩形を表領域と呼ぶ。ここでは、図５の黒画素塊５０１は上記の（ａ）から（ｃ）の判定処理の結果、表の枠線を構成すると判定されたものとする。それに伴い、外接矩形５０２は、表領域と呼ばれることになる。なお、図５においては数字「１２３」や「５７」も黒画素塊として検出されているものの、上記の所定の条件に該当しないので、これらの黒画素塊の外接矩形は表領域として検出されていないものとする。
【００２６】
（４）認識セルの特定
制御部３０３は、検出した表領域内部のセル（以下、認識セルという）を特定する。認識セルを特定するためには、表領域内部の白画素の輪郭を追跡することにより、白画素塊を検出する必要がある。その上で、その白画素塊が所定の条件に合致する場合に、その白画素塊の外接矩形は、認識セルとして特定される。前述の図５は、外接矩形５０２（すなわち、表領域）内部の認識セル５０３及び５０４を含んでいる。制御部３０３は、特定された認識セルの位置情報を保存部３０２に保存する。
【００２７】
なお、例えば、所定の条件に合致するとは、以下の三つの条件の全てに合致することを指す。
（ａ）白画素塊の外接矩形の幅、高さが閾値以上（たとえば、20画素）である。
（ｂ）外接矩形の内部における黒画素塊の充填率が閾値以下である（たとえば、黒画素塊が外接矩形に占める割合が２０％以下）。
（ｃ）白画素塊の最大幅及び高さと、その外接矩形の幅及び高さとの差が何れも小さい（たとえば、白画素塊の最大幅及び高さと、その外接矩形の幅及び高さとの画素の差がともに５画素以下）。
【００２８】
（５）認識セル内の文字領域の特定
制御部３０３は、各認識セルの内部に、その各認識セルに内接する白画素塊によって囲まれた黒画素塊があるか判定する。そして、黒画素塊があると判定した場合、あると判定された全ての黒画素塊に外接矩形を設定する。
【００２９】
さらに、制御部３０３は、一つの認識セルの中に複数の外接矩形を設定した場合には、外接矩形同士の距離が閾値（例えば２０画素・・・０．５ｃｍ）以内であるか判定する。具体的には、制御部３０３は、外接矩形を一つ一つ選択し、選択された外接矩形からの距離が閾値以内である外接矩形を検出する。
【００３０】
さらに、制御部３０３は、選択された外接矩形からの距離が閾値以内である外接矩形を検出した場合、検出した外接矩形と、選択された外接矩形とを統合する。即ち、制御部３０３は、両方の外接矩形に外接する新たな外接矩形を設定し、その代わり、選択された外接矩形と、検出された外接矩形とを削除する。
【００３１】
新たな外接矩形の設定及び二つの外接矩形の削除が完了した後、制御部３０３は、その認識セル内の外接矩形をまた初めから一つ一つ選択し、互いの間の距離が閾値以内である外接矩形同士を統合していく。以上の処理を、互いの間の距離が閾値以内である外接矩形が無くなるまで繰り返して、外接矩形同士の統合を行なう。
【００３２】
以上の通り、この認識セル内の文字領域の特定処理においては、一つの認識セルの内部に存在する外接矩形同士の統合を行うが、認識セルをまたぐ外接矩形同士の統合を行わない。
【００３３】
以上の処理が終わって依然として設定されている、認識セル内部の黒画素塊の外接矩形は、文字領域と呼ばれる。以上の処理を認識セル内の文字領域の特定と呼ぶ。制御部３０３は、認識セルの内部に存在する文字領域の位置情報を、当該認識セルに関連付けて保存部３０２に保存する。
【００３４】
図５は文字領域５０５，５０６を含んでいる図である。すなわち、認識セル５０３には、文字領域５０５が、認識セル５０４には文字領域５０６が関連付けられ、保存部３０２に保存される。
【００３５】
前述の通り図１のスキャン画像に対して行われた領域分割の結果が図４に示されている。図４では、特定された認識セルを示す外接矩形に太線枠を付け、文字領域を示す外接矩形に点線枠を付けている。図４の例では、認識セル４０１、４０２、４０３、４０４、４０６、４０７と、文字領域４０５を含んでいる。なお、図４の例では、符号を付していない他の矩形も認識セルや文字領域であるが、ここでは一部の認識セルや文字領域のみに符号を付している。
【００３６】
この図４では、認識セル４０３内部の罫線が掠れてしまっているため、本来は、複数のセルからなる認識セル４０３が１つの認識セルとして特定されている。また、認識セル４０６、４０７は、本来は、単一のセルであるにも関わらず、ノイズの関係で、別々の認識セルとして特定されている。このように本来の認識すべき認識セルと異なるセルを認識セルとして特定する場合の対応方法については、後述する。
【００３７】
（６）文字認識
制御部３０３は、各文字領域に対して文字認識を行うことによって、各文字領域に対応する認識文字を得る。認識文字は、対応する文字領域に関連付けて保存部３０２に保存する。認識文字が対応する文字領域と関連付けらるということは、認識文字は、文字領域と予め関連付けられている認識セルとも関連付けられることになる。文字認識を行わない場合、もしくは文字認識に失敗した場合は、文字領域に関連付けられる認識文字はない。
【００３８】
上記の（１）から（６）までの処理、すなわち領域分割処理と文字認識処理とを行なった結果保存部３０２に保存される情報は図５では以下のとおりになる。認識セル５０３には、文字領域５０５と、認識文字「１２３」とが関連付けられて保存部３０２に保存される。また、認識セル５０４には文字領域５０６と、認識文字「５７」とが関連付けられ、保存部３０２に保存される。
【００３９】
（７）認識セル枠表示
制御部３０３は、各認識セルを強調表示した画面を表示部３０４に表示する。すなわち、制御部３０３は、各認識セルの四辺（即ち、前述の白画素塊の外接矩形の四辺）に太線枠を付けてスキャン画像を表示部３０４に表示する。図１のスキャン画像を解析した結果、各認識セルの四辺に太線枠をつけて表示部３０４に表示した画面は図６である。すなわち、図６は、図１のスキャン画像に対して、前述の領域分割と、文字認識と、認識セル枠表示との三つの処理を実行した後に表示部３０４に表示される画面である。なお、枠の形態は、太線でなくても実線でなくても良く、黒でなくても良いのは言うまでも無いが、これ以降は、太線であるものとして説明を続ける。また、この（７）認識セル枠表示の処理で太線枠と共に表示されるスキャン画像は、（１）−（６）の処理が行われる前のスキャン画像であり、即ち、２値化前のスキャン画像である。
【００４０】
以上の処理が、ユーザがスキャン画像の解析を指示した際に行なわれる処理であり、図１のスキャン画像の解析の結果、図６のような画面が表示部３０４に表示されている。
【００４１】
＜表領域内の編集処理の説明＞
次に、図６のような画面が表示部３０４に表示された後に、ユーザが認識セルを指定して表領域内を編集する処理について説明する。
【００４２】
図７は、表領域内の編集処理のフローチャートを示す図である。ステップＳ７０１において受付部３０５は、ユーザからの認識セルの選択を受け付ける。例えば、ユーザは、受付部３０５を介して、表示部３０４に表示されている図６における任意の箇所をクリックする。なお、本明細書においてクリックとは、マウスの左ボタンを押して、すぐに（押してから一定時間内に）離す行為のことである。クリックされた箇所が認識セルの外接矩形の内側の場合に、制御部３０３は、その認識セルが選択されたと判定する。
【００４３】
次に、ステップＳ７０２において制御部３０３は、ステップＳ７０１で選択を受け付けた認識セルの編集ウィンドウと、認識セル位置を変更するためのハンドルとを表示する。編集ウィンドウと認識セル位置変更ハンドルについては図面を元に説明する。
【００４４】
図８に、認識セル８０２が選択された際に表示される表示画面を示す。ここでは、ユーザによってマウスポインタ８０１で認識セル８０２が選択されたことを受付部３０５が受け付けたものとして以下説明を続ける。
【００４５】
認識セルの選択が受付部３０５で受け付けられると、制御部３０３は、編集ウィンドウ８０４とハンドル８０３とを表示部３０４に追加表示する。編集ウィンドウ８０４は、選択された認識セルの内部のオリジナル文字を編集するためのウィンドウである。ハンドル８０３は、選択された認識セル８０２の位置や大きさを変更するためのハンドルである。このハンドル８０３（認識セル位置変更ハンドルと呼ばれる）は、選択された認識セル８０２の太線枠の四頂点に追加表示される。図８の例では、ハンドル８０３は認識セルの四頂点に塗りつぶし矩形として表示される。編集ウィンドウ８０４は選択された認識セルと重複しない任意の位置の最上面に表示される。
【００４６】
なお、ステップＳ７０２の表示処理においては、図８に示すように、選択された認識セル（選択状態の認識セル）が他の認識セルと区別つくようにするのも好ましい。例えば、選択状態の認識セルの枠をより太くするのも好ましい（極太線枠とするのも好ましい）。もちろん他の認識セルと区別つくのであれば他の方法を取っても良い。例えば、選択状態の認識セルの枠を他の色にしたり、点線とするような方法も考えられる。ただし、本明細書では、選択された認識セルを他の認識セルと区別つけるための方法として極太線枠を用いる方法を採用した場合を例に以下説明を続ける。なお、認識セルに対する選択状態が解除された場合には、そうした極太線枠状態から元の状態に戻ることになる（即ち、他の認識セルと同じ太線枠状態に戻ることになる）。
【００４７】
図８の編集ウィンドウ８０４には、文字入力欄８０５と、ＯＫボタン８０６と、Ａｐｐｌｙボタン８０７と、Ｃａｎｃｅｌボタン８０８とが表示されている。編集ウィンドウ８０４における文字入力欄８０５には、選択された認識セルに関連付けられている認識文字が編集ウィンドウ用文字サイズで表示される。すなわち、選択された認識セルに関連付けられている文字領域に関連付けられている認識文字が表示される。（表示の詳細処理は図２１で説明する）。ユーザはこの文字入力欄８０５から認識文字を削除し、代わりに、他の文字を入力することができる。そうすることにより、認識文字の編集ができる（編集の詳細処理は図９で説明する）。なお、選択された認識セルと関連付けられている認識文字が無い場合がある。例えば、選択された認識セル内部から文字領域が検出されなかった、もしくは文字領域は検出されたが文字認識が失敗して認識文字が存在しないような場合には、文字入力欄８０５は空欄となる。
【００４８】
ここで、OKボタン８０６は、文字の編集を確定する場合にクリックされるボタンである。Applyボタン８０７は、編集後の文字をスキャン画像上に表示して文字の表示位置を確認したい場合にクリックされるボタンである。ＯＫボタン８０６とＡｐｐｌｙボタン８０７とのどちらをクリックした場合も編集後の文字はスキャン画像上に表示されることになる。なお、ＯＫボタンとＡｐｐｌｙボタンとをクリックした際の基本的な違いは、ＯＫボタンをクリックした場合は認識セルの選択が解除されるのに対して、Ａｐｐｌｙボタンをクリックした場合は認識セルの選択が解除されないことである。なお、この図８においてＡｐｐｌｙボタン８０７をクリックした場合は、認識セル中に表示する編集後の文字の位置を変更するハンドルが表示される。詳細については後述する。Cancelボタン８０８は、文字の編集をキャンセルしたい場合にクリックされるボタンである。
【００４９】
以上がステップＳ７０２の編集ウィンドウと認識セル位置変更ハンドルとの表示処理である。ステップＳ７０２の処理の結果、図８のような画面が表示部３０４に表示された後、ユーザは受付部３０５に対して新たな操作を行う。ステップＳ７０３において制御部３０３は、受付部３０５で受け付けた新たな操作が文字編集かハンドル操作かを判定する。すなわち、受付部３０５で受け付けた操作が文字編集指示か認識セル位置変更指示かを判定する。ステップＳ７０３において受付部３０５が受け付けた操作が編集ウィンドウ８０４上での文字編集であると判定した場合、制御部３０３は、ステップＳ７０４の文字編集処理に処理を進める。ユーザが受付部３０５に対して行った操作が認識セル位置変更ハンドルに対する操作であると判定した場合、制御部３０３は、ステップＳ７０５の認識セル位置変更処理に処理を進める。なお、受け付けた操作が文字編集処理か認識セル位置変更処理かの判定は、例えば次のように行なわれる。ユーザが編集ウィンドウ８０４上でクリックをするなどして編集ウィンドウ８０４をアクティブにしたり、認識文字の編集処理を行なっていること（文字の削除や文字の入力）を受け付けた場合などに、制御部３０３は、文字編集処理を受け付けたと判定する。また、認識セル位置変更ハンドル８０３に対する操作がなされたことを受け付けた場合、制御部３０３は認識セル位置変更処理を受け付けたと判定する。
【００５０】
＜文字編集処理の説明＞
次に、図７のステップＳ７０４の文字編集処理の詳細について図９のフローチャートを元に説明する。図９は、文字編集処理のフローチャートを示す図である。
【００５１】
ステップＳ９０１で制御部３０３は、図８に示す画面で表示部３０４に表示されている、選択された認識セルの認識セル位置変更ハンドル８０３を非表示にする。
【００５２】
次に、ステップＳ９０２で制御部３０３は、図８に示す画面の編集ウィンドウ８０４上で編集された後の文字を、編集ウィンドウ用文字サイズで編集ウィンドウ８０４に表示する。すなわち、ステップＳ９０２は、ユーザが認識文字を削除して代わりの文字を入力した後の処理である。
【００５３】
ステップＳ９０３で制御部３０３は、文字編集後にユーザが受付部３０５に対して行った操作が、別の認識セルの選択か、Applyボタンのクリックか、OKボタンのクリックか、Cancelボタンのクリックかを判定する。Cancelボタンのクリックであると判定した場合には、制御部３０３は、選択されている認識セルの選択状態を解除して図９の処理を終了する。つまり、ステップＳ９０２で編集ウィンドウに表示されている編集後の文字はスキャン画像には反映されない。なお、これ以降では説明を省略するが、選択状態が解除された認識セルは、上述の通り、極太線枠状態から、他の認識セルと同じ太線枠状態に戻ることになる。
【００５４】
ステップＳ９０３においてＣｅｎｃｅｌボタンのクリック以外であると判定した場合には、ステップＳ９０４において制御部３０３は、選択されている認識セル内部（即ち、スキャン画像におけるその認識セルの内部）の色を全て削除する。すなわち、認識セルの元となる、白画素塊の外接矩形の内部の色を全て削除する。例えば図５の例で説明すると、認識セル５０３内部の色を全て削除するということは、認識セル内の文字領域５０５はもちろんのこと、白画素塊と、さらには一部の黒画素塊も削除することになる。なお、ここで、色を削除するとは、認識セル内の画素の色情報を既定の色情報に置換するという意味である。本実施形態では、規定の色情報が白であるものとして説明を続けるが、白に限るものではない。このステップＳ９０４における具体的な処理は、図２２−図２４を用いて後述する。
【００５５】
次に、ステップＳ９０５において制御部３０３は、編集後の文字を、内部の色を全て削除したその認識セル内部にスキャン画像用文字サイズで配置する。そして、ステップＳ９０６において制御部３０３は、編集後のスキャン画像（即ち、認識セル内部の削除、及び、編集後の文字の配置が完了した画像）を保存部３０２に保存する。また、表示部３０４で表示されているスキャン画像をこの編集後のスキャン画像を置き換える。そうすることにより、この編集後のスキャン画像は、各認識セルの外接矩形に太線枠が付けられた状態で表示されることになる。このステップＳ９０４からステップＳ９０６の処理は、ユーザの操作が別の認識セルの選択か、Applyボタンのクリックか、OKボタンのクリックのいずれの場合でも共通の処理である。なお、現在選択されている認識セルの外接矩形については極太線枠状態で表示されたままとなる。
【００５６】
次に、各操作の個別の処理を説明する。ステップＳ９０７では、ユーザの操作を判定する。ステップＳ９０３で判定した操作がOKボタンのクリックであれば、制御部３０３は、選択されている認識セルの選択状態を解除した上で図９の処理を終了する。つまり、編集後のスキャン画像に置き換えた画面上で、極太線枠状態となっている認識セルを、太線枠が付けられた状態に戻して図９の処理を終了する。また、ステップＳ９０３で判定した操作が別の認識セルの選択であれば、制御部３０３は、選択されている認識セルの選択状態を解除した上で図７のステップＳ７０２に処理を進める。つまり別の認識セルが選択された場合には、図７のステップＳ７０２でその別の認識セルの編集ウィンドウと、その別の認識セルに対して認識セル位置変更ハンドルとが表示されることになる。
【００５７】
また、ステップＳ９０３で判定した操作がApplyボタンのクリックであれば、ステップＳ９０８において制御部３０３は、ステップＳ９０５で配置された編集後の文字の外接矩形の四頂点に文字位置変更ハンドルを表示する。文字位置変更ハンドルは、認識セル位置変更ハンドルと同様に、文字位置を変更する際に用いられるハンドルである。図１０は、図８の編集ウィンドウ８０４の文字を編集した後に、Ａｐｐｌｙボタン８０７をクリックした際に表示される画面を示している。認識セル１００２の文字は、編集後の文字１００１と同じ文字となっている。そして、図１０は図８と異なり、認識セル１００２ではなく認識文字（すなわち、文字領域）が極太線枠表示となっており、文字領域の四頂点に文字位置変更ハンドル１００３が表示されている。
【００５８】
ユーザがもし編集後の文字の位置を変更したい場合には、この文字位置変更ハンドル１００３の位置を動かす操作を受付部３０５に対して行うことになる。ステップＳ９０９において受付部３０５が文字位置の変更を受け付けると、その操作に応じた文字位置変更を制御部３０３は行い、さらに、その文字位置変更後の画像を、保存部３０２で保存されている編集後のスキャン画像と置き換える。さらに、表示中の編集後のスキャン画像とも置き換える。そうすることにより、文字位置変更後の画像が、編集後のスキャン画像として保存、表示されることになる。文字位置を変更するとは、保存部３０２に保存されている文字領域の位置情報を変更することを意味する。一方、文字位置を変更する必要が無い場合には、文字位置変更ハンドルに対する操作は行われない。その場合、ステップＳ９０９では何も行われず、ステップＳ９０９の処理はスキップされることになる。
【００５９】
その後、ユーザは、別の認識セルを選択するか、OKボタンをクリックするか、Cancelボタンをクリックすることになる。ステップＳ９１０で制御部３０３は、受付部３０５が受け付けたユーザの操作に応じた処理を行なう。もし別の認識セルの選択がされたことを受付部３０５が受付けると、制御部３０３は、選択されている認識セルの選択状態を解除してステップＳ７０２に処理を進める。OKボタンがクリックされたことを受付部３０５が受付けると、制御部３０３は、選択されている認識セルの選択状態を解除して図９の処理を終了する。また、もしCancelボタンがクリックされたことを受付部３０５が受付けると、ステップＳ９１０において制御部３０３は、選択されている認識セルの内部を元の状態に戻す（即ち、ステップＳ９０４の黒画素塊の削除前の状態に戻す）。その上で制御部３０３は、選択されている認識セルの選択状態を解除して図９の処理を終了する。なお、ステップＳ９１０において受付部３０５が受け付けたユーザの操作がApplyボタンのクリックである場合、ステップＳ９０８に処理を戻すことになるが、この処理は図９では省略する。
【００６０】
図９の処理が終了した後は、ユーザからの他の認識セルの選択を待つ状態となる。また、ユーザから受付部３０５に対して別の装置への編集後のスキャン画像の送信が指示された場合には、制御部３０３は、その選択待ち状態を解除する。その上で、制御部３０３は、保存部３０２に保存されている編集後のスキャン画像を送受信部３０１に別の装置へ送信させる。その別の装置が仮に複写機２００だったとすると、複写機２００は、編集後のスキャン画像を送受信部２０２により受信し、ユーザからの指示によっては編集後のスキャン画像をプリンタ２０３により印刷することになる。
【００６１】
以上の処理を行った場合、別の装置に送信される編集後のスキャン画像は、（選択されていた）認識セル内部の削除、及び、編集後の文字の配置が完了した画像となる。しかし、送信される画像は、必ずしもこれに限られるものではない。例えば、元のスキャン画像（２値化前のスキャン画像）と、認識セル内部の削除命令と、編集後の文字の配置命令とを含むファイルであっても良い。そのようなファイルを別の装置が受信した場合には、その別の装置の側で元のスキャン画像から認識セル内部の削除、及び、編集後の文字の配置が行われることになる。もちろん、認識セルを特定する位置情報が含まれても良いし、スキャン画像自体の解析処理を別の装置が行なう構成でもよい。
【００６２】
＜編集後の文字の配置処理の説明＞
次に、図１１を用いて、ステップＳ９０５の編集後の文字を認識セル内部に配置する処理の詳細を説明する。
【００６３】
ステップＳ１１０１で制御部３０３は、選択されている認識セルの位置情報、および当該認識セルに関連付けられた文字領域の位置情報を保存部３０２から取得する。
【００６４】
次にステップＳ１１０２で制御部３０３はステップＳ１１０１で取得した位置情報を用いて基準線の設定を行う。基準線とは、文字を配置する際の基準とする線のことであり、例えば基準線を文字領域の右側に設定すれば編集後の文字は文字領域の右寄りに配置されることになる。
【００６５】
認識セルの左上座標を(X1, Y1)、右下座標を(X2, Y2)、文字領域の左上座標を(x1, y1)、右下座標を(x2, y2)とする。制御部３０３は、基準線の設定を行うために、まず、選択されている認識セルにおける文字領域の左右の余白を以下のように計算する。なお、先に説明したように、X軸は右方向に伸び、Y軸は下方向に伸びているものとする。つまり、x 座標は右に行くほど大きくなり、y 座標は下に行くほど大きくなるものとする。  
左側の余白  x1 - X1
右側の余白  X2 - x2
そして、（左側の余白）≧（右側の余白）ならば、基準線は文字領域の右辺、すなわち、(x2,y1), (x2, y2)を結ぶ直線に設定される。逆に、（左側の余白）＜（右側の余白）ならば、基準線は文字領域の左辺、すなわち、(x1, y1), (x1, y2)を結ぶ直線に設定される。
【００６６】
ステップＳ１１０３で制御部３０３は、選択されている認識セル内部の設定されている基準線に合わせて、編集後の文字を配置する。この時、配置される文字のサイズとして、スキャン画像用文字サイズのデフォルト値が用いられるものとするが、下記のようにして決定されたサイズを用いても良い。たとえば、選択されている認識セル内部に存在していたオリジナル文字の幅が４文字で１００ドットだった場合に、１文字あたりのサイズは、２５ドットと推定される。この認識セル内部に編集後の文字を違和感なく配置するためには、編集後の文字も１文字あたり２５ドット程度であるのが好ましい。このことから、標準的な文字のサイズが２５ドットとなるようなポイント数を計算し、そのポイント数を、配置される文字のサイズとして用いることも可能である。また、そのように決定された文字サイズをユーザが手動で変更できるような構成としても良い。さらには、配置される文字の色やフォント、スタイル（標準、斜体、太字）をユーザが手動で変更できるような構成としても良い。
【００６７】
ここで、編集後の文字の外接矩形の高さがH、幅がWだったとする。また、保存部３０２に保存されている文字領域の左上座標が(x1, y1)、右下座標が(x2, y2)であり、ステップＳ１１０２で求めた基準線が文字領域の右辺だったとする。
【００６８】
この場合、編集後の文字の外接矩形を配置する座標は、
左上座標(x2- W, y2-H)
右下座標(x2, y2)
となる。
【００６９】
もし、基準線が左辺の場合には、編集後の文字の外接矩形の左辺を基準線（文字領域の左辺）に合わせるため、編集後の文字を配置する座標は、
左上座標(x1, y2-H)
右下座標(x1+W, y2)
となる。
【００７０】
なお、これらの例では、編集後の文字の高さ方向（Y方向）の位置は、オリジナル文字の配置されていた文字領域の下辺の位置を基準とした。しかしながら、この位置ではなく、編集後の文字の高さ方向の中心と、オリジナル文字の配置されていた文字領域の高さ方向の中心が揃うように編集後の文字の位置を決めても構わない。
【００７１】
＜認識セル位置変更処理の説明＞
次に、図７に戻り、今度はステップＳ７０５の認識セル位置変更処理の詳細について説明する。上述の通り、ステップＳ７０３においてユーザが受付部３０５に対して行った操作が認識セル位置変更ハンドル８０３に対する操作であれば、制御部３０３は、ステップＳ７０５に処理を進める。
【００７２】
ステップＳ７０５で制御部３０３は、その操作に合わせて、認識セルの位置を変更し、変更後の位置の認識セルの四辺を極太線枠状態にして表示部３０４に表示する。この際、変更前の位置の認識セルの四辺の極太線枠状態は解除され、通常の状態（太線枠も極太線枠も付いていない状態）に戻ることになる。また、認識セル位置変更ハンドル８０３も同様に、変更前の位置の認識セルの四頂点からは解除され、変更後の位置の認識セルの四頂点に表示されることになる。なお、認識セルの位置を変更するとは、保存部３０２に保存されている認識セルの位置情報を変更することを意味する。
【００７３】
その後、制御部３０３は、編集ウィンドウ８０４を介した文字編集が行われるまで待機し、文字編集が行われると制御部３０３は、ステップＳ７０４の文字編集処理、すなわち、前述の図９のステップＳ９０１に処理を進める。
【００７４】
このように、文字編集が行われる前に認識セルの位置を変更可能とすることによって、文字編集処理におけるステップＳ９０４で内部が削除される対象となる認識セルの位置を変更することができる。これにより、削除されるべき部位が削除され、かつ、削除されるべきでない部位が削除されずにすむこととなる。
【００７５】
＜認識セルの結合と分割処理の説明＞
ステップＳ７０５の認識セル位置変更処理によって認識セルが結合されたり分割されたりする場合がある。以下では、この認識セルの結合と分割処理の詳細を説明する。
【００７６】
前述の図４において、認識セル４０６と認識セル４０７とは、本来は単一のセルであるにも関わらず、ノイズの関係で別々の認識セルとして特定されている。認識セル４０６と認識セル４０７とを結合して、単一の認識セルとする処理について、図１２を用いて説明する。なお図１２は、図７のステップＳ７０５の認識セル位置変更処理の詳細を示す図である。
【００７７】
まず、ステップＳ１２０１において、受付部３０５は、認識セル位置変更ハンドルをドラッグすることによる認識セルの位置の変更を受け付ける。すなわち、ユーザが受付部３０５を介して、認識セル位置変更ハンドルをドラッグして、選択中の認識セルの位置を変更したことを検知する。
【００７８】
ステップＳ１２０２で制御部３０３は、ステップＳ１２０１で受付部３０５を介して検知した変更した位置が、選択中の認識セルの縮小にあたるか、拡大にあたるか、またはどちらにもあたらないかを判定する。具体的な判定方法を以下に述べる。位置を変更する前の認識セルの幅をW１、高さをH1とし、位置を変更した後の認識セルの幅をW2、高さをH2とする。W1＜W2かつH1＜H2の場合は、制御部３０３が認識セルの拡大と判定する。W1＞W2かつH1＞H2の場合は、制御部３０３が認識セルの縮小と判定する。それ以外の場合は、制御部３０３が、どちらにもあたらないと判定する。どちらにもあたらないと判定された場合は、制御部３０３は保存部３０２に保存されている、対象の認識セルの位置情報を変更して認識セル位置変更処理を終了する。その後は、図７のステップＳ７０５に進む。
【００７９】
認識セルの拡大と判定した場合、ステップＳ１２０３において制御部３０３は、拡大後の認識セルが、別の認識セルを包含するかどうかを判定する。別の認識セルを包含しないと判定した場合は、制御部３０３は認識セルの結合は行わず、保存部３０２に保存されている、対象の認識セルの位置情報を変更して処理を終了する。
【００８０】
一方、ステップＳ１２０３で別の認識セルを包含すると判定した場合は、ステップＳ１１２０４において制御部３０３は、拡大後の認識セルと、この拡大後の認識セルが包含した当該別の認識セルとを結合する。
【００８１】
ステップＳ１２０４の認識セルの結合ステップで制御部３０３は、結合する前の各々の認識セルの座標を元に、両方の認識セルを含む最小の矩形を結合後の認識セルと設定する。そして、その設定した結合後の認識セルの位置情報を保存部３０２に保存する。例えば、結合する２つの認識セルの左上座標をそれぞれ(Xa, Ya)、(Xb, Yb)とし、仮にXa＞Xb、Ya＜Ybとすると、結合後の認識セルの左上座標は（Xb、Ya）になる。左下、右上、右下座標についても同様の考え方で決定する。また、結合する認識セルが３個以上の場合でも同様である。なお、結合後の認識セルの位置情報は、複数存在する結合前の認識セルの位置情報（認識セル位置変更ハンドルを操作する前の、認識セル位置変更ハンドルを操作した認識セルの位置情報と上記別の認識セルの位置情報）と関連付けて保存される。結合後の認識セルは、認識セルの結合処理後、結合していない通常の認識セルと同様に操作される。なお、結合前の認識セルの位置情報を、結合後の認識セルと関連付けて保存する理由は、その後の文字編集処理が行なわれる際に、前述のステップＳ９０４の認識セルの内部の削除の際に使用されることがあるからである。
【００８２】
次に、ステップＳ１２０５において制御部３０３は、各々の認識セルに含まれる文字領域を結合する。具体的には、制御部３０３が、結合後の認識セルに含まれている文字領域を検出する。ここで検出される文字領域とは、拡大前の認識セルに含まれている文字領域と、上記別の認識セルに含まれている文字領域である。その上で、検出した文字領域同士を結合する。結合後の文字領域は、結合前の全ての文字領域を包含する最小の矩形となる。この最小の矩形の位置情報を結合後の文字領域の位置情報として、結合後の認識セルと関連付けて保存部３０２に保存する。そして、その代わりに、拡大前の認識セルに含まれていた文字領域の位置情報と、上記別の認識セルに含まれていた文字領域の位置情報を保存部３０２から削除する。このとき、結合前の文字領域については前述のステップＳ９０４の認識セル内部の削除の際に使用されないので、ここで削除する。
【００８３】
次にステップＳ１２０６において制御部３０３は、認識文字を結合する。具体的には、制御部３０３は結合後の文字領域に含まれる複数の認識文字を結合することにより、１つの認識文字を新規に作成する。代わりに、元の複数の認識文字は削除する。新規に作成した認識文字は、制御部３０３が結合後の文字領域に関連付ける。なお、認識文字の結合では、単純に複数の認識文字を繋げるだけでもよいし、認識文字の間にスペースを挿入してもよい。
【００８４】
次にステップＳ１２０７において制御部３０３は、結合前の認識セルの四頂点から認識セル位置変更ハンドルを削除して、結合後の認識セルの四頂点に認識セル位置変更ハンドルを表示する。つまり、結合後の認識セルが選択された状態にする。また、ステップＳ１２０８において制御部３０３は、結合後の認識文字を、編集ウィンドウ８０４における文字入力欄８０５に表示する。このように、ステップＳ１２０８の処理が終ると、結合後の認識セルが選択され、結合後の認識文字が編集ウィンドウに表示されることになる。つまり、図７のステップＳ７０２の処理が終っている状態と同じ状態となっている。その後の処理は、図７のステップＳ７０３の判定によって前述したような処理が行なわれることになる。
【００８５】
以上の認識セルの結合処理について、図１３から図１６を用いて、具体例を示す。図１３はノイズにより別々の認識セルとして特定された認識セル４０６と認識セル４０７のうち、認識セル４０６がユーザにより選択された際の表示画面である。認識セル４０６と認識セル４０７は別々の認識セルとして特定されているため、文字入力欄１３０１には認識文字として「Gym Bag」ではなく「Gym」が表示されている。
【００８６】
認識セル４０６と認識セル４０７とを結合したい場合、まずユーザは認識セル４０６の認識セル位置変更ハンドル８０３をドラッグして、認識セル４０７を全て含むまで拡大する（Ｓ１２０１）。図１４は、ユーザが認識セル位置変更ハンドル８０３をマウスポインタ８０１を用いて右方向にドラッグして認識セル４０７を全て含むまで拡大した様子を示している。なお、認識セルをドラッグして拡大する際には、認識セルを拡大している最中であることが分かるよう、認識セルの枠の表示を変更するのが好ましい。例えば点線１４０１のように、認識セルを拡大している間は、認識セルの枠を点線で表示する。
【００８７】
ユーザが認識セル位置変更ハンドル８０３のドラッグを完了すると、制御部３０３は認識セル４０６と認識セル４０７とを結合して、図１５に示すように結合後の認識セル１５０１を表示部３０４に表示する。また、文字領域の結合も行う。さらに、認識文字の結合を行い、結合後の認識文字「Gym Bag」を認識文字として編集ウィンドウの文字入力欄１５０２に表示する（Ｓ１２０３からＳ１２０８）。
【００８８】
ところで、結合後の認識セル１５０１のように、ノイズにより別々の認識セルとして特定された認識セルを結合した場合は、文字編集処理のステップＳ９０４の認識セルの内部の削除において、結合後の認識セル内部を削除するのが望ましい。なぜならば、結合前の認識セル内部をそれぞれ削除すると、ノイズが削除されず残ってしまうからである。
【００８９】
一方で、結合後の認識セル内部を削除するのではなく、結合前の認識セル内部を削除した方が望ましい場合もある。図１６は、結合前の認識セル内部を削除した方が好ましい例を示している。図１６は、６つの別々の認識セルとして特定された認識セル（認識文字が「￥」「８」「１」「５」「０」「０」である６つのセル）を１つの認識セルに結合した後の認識セル１６０１を示している。６つの認識セルは、数字の桁を区切るための罫線により、別々の認識セルとして特定される。この場合、認識セルの結合は認識文字の編集を容易にするために行ったものである。罫線は「数字の桁を区切る」という意味があるものなので、文字編集処理のステップＳ９０４の認識セルの内部の削除を行った際も、桁を区切る罫線を維持するのが望ましい。ステップＳ９０４の認識セルの内部の削除において、結合後の認識セル内部を削除すると、桁を区切る罫線も消去されてしまうからである。従って、図１６のような場合、桁を区切る罫線を維持するために、結合前の認識セル内部を削除するのが望ましい。
【００９０】
このように、削除対象の認識セルとして、結合後の認識セル内部を削除するのが望ましい場合と、結合前の認識セルの内部を削除するのが望ましい場合とがある。この２つの場合に対応するため、例えば図１５や図１６に示すように、どちらを削除対象の認識セルとするかをユーザに選択させるＵＩを表示する。すなわち、認識セルの結合を行った場合、ステップＳ１２０８の結合後の認識文字を表示する際に、編集ウィンドウに「結合後の認識セル内部を削除する」「結合前の認識セル内部を削除する」のどちらかをユーザが選択できるＵＩ１５０３を表示する。ＵＩ１５０３はどちらか一方が選択状態の場合に、もう一方が非選択状態になるラジオボタンである。初期状態は、「結合後の認識セル内部を削除する」を選択状態とする。「結合後の認識セル内部を削除する」「結合前の認識セル内部を削除する」のどちらが選択されているかの情報は保存部３０２に認識セルと関連付けて保存され、ステップＳ９０４の認識セルの内部の削除の際に取得される。なお、ステップＳ１２０８の表示処理が行なわれると、認識セル位置変更処理は終了となる。その後は、図７のステップＳ７０６に進む。ここで、例えば、編集ウィンドウ１５０２の認識文字の編集が行なわれると処理は図７のＳ７０６からＳ７０３を経てＳ７０４の文字編集処理に移行する。また、ＵＩ１５０３のＯＫボタン、Ａｐｐｌｙボタン、またはＣａｎｃｅｌボタンが押された場合も同様に、Ｓ７０４の文字編集処理に移行する。その後の文字編集処理は図９で説明したものと同様の処理が行なわれる。なお、図９のステップＳ９０１やＳ９０２は編集ウィンドウ１５０２での編集が行なわれていない場合にはスキップしてもよい。
【００９１】
例えば、図１５の状態で、ＯＫボタンがクリックされるとする。すると、ステップＳ９０３からステップＳ９０４に進み、このステップＳ９０４での処理では、結合後の認識セル内部が削除されることになる。なお、図１５の状態でＡｐｐｌｙボタンがクリックされた場合も同様に、結合後の認識セル内部が削除される。なお、前述のようにＡｐｐｌｙボタンをクリックした場合とＯＫボタンをクリックした場合の違いとしては、認識セルが選択状態のままであるか否かということである。
【００９２】
次に、認識セルの分割について説明する。図１７において、認識セル４０３は、本来は「Description」、「Quantity」、「Unit  Price」、「Amount」の認識文字を含む４つの認識セルとなるべきである。しかし、スキャン画像の罫線が掠れているため、１つの認識セルとして特定されている。また、編集ウィンドウにおいてもこれらの４つの認識文字が文字入力欄１７０１に表示されている。認識セル４０３を分割して、複数の認識セルとする処理について、図１２のステップＳ１２１１−Ｓ１２１６を用いて説明する。
【００９３】
ステップＳ１２０２で、制御部３０３が認識セルの縮小と判断した場合、ステップＳ１２１１において制御部３０３は、選択中の認識セルに含まれていた文字領域の全てが、縮小後の認識セル内でも含まれているかどうかを判定する。全て含まれていると判定した場合は、制御部３０３は選択中の認識セルの分割は行わず、保存部３０２に保存されている、対象の認識セルの位置情報を変更して処理を終了する。
【００９４】
一方、Ｓ１２１１で縮小後の認識セルに含まれない文字領域があると判定した場合は、ステップＳ１２１２で制御部３０３は、縮小前の認識セルを分割する。即ち、縮小前の認識セルに含まれていた文字領域の一部又は全てが、縮小後の認識セル内に含まれていない場合には、縮小前の認識セルを分割する。縮小前の認識セルの分割とは、具体的には、制御部３０３は、縮小後の認識セルとは別に、新規に認識セルを作成することを意味する。
【００９５】
縮小後の認識セルと、上記新規に作成する認識セルの位置情報は、縮小後の認識セルの位置情報と縮小前の認識セルの位置情報とを元に制御部３０３が決定する。例えば、縮小前の認識セルが、左上座標(Xa1,Ya1)、右下座標(Xa2,Ya2)とする。ユーザが右下の認識セル位置変更ハンドルをドラッグして認識セルを左方向に縮小して、その結果右下座標が(Xa2 - W ,Ya2)になったとする（Wは縮小幅）。この場合、制御部３０３は「X座標= Xa2 - W」の位置で縮小前の認識セルを分割すると判断する。分割した結果、縮小後の認識セルの座標は、左上座標(Xa1,Ya1)右下座標(Xa2 - W ,Ya2)となり、新規に作成した認識セルの座標は、左上座標(Xa2 - W ,Ya1)右下座標(Xa2,Ya2)となる。
【００９６】
次にステップＳ１２１３において制御部３０３は、文字領域の分割を行う。具体的には、まず縮小後の認識セル内に包含されていない文字領域と、縮小後の認識セルとの関連付けを解除し、代わりに、その文字領域を、新規に作成した認識セルに新たに関連付ける。また、認識セルを分割した位置の上に文字領域が重なっている場合は、その分割した位置で文字領域も分割する。例えば、左上座標(Xa3,Ya3)、右下座標(Xa4,Ya4)の文字領域を、X座標がXa5の位置で分割するとする。この場合は、左上座標(Xa3,Ya3)、右下座標(Xa5,Ya4)の文字領域と、左上座標(Xa5,Ya3)、右下座標(Xa4,Ya4)の文字領域の、２つの文字領域を作成する。そして、元の文字領域は制御部３０３によって削除される。その後、制御部３０３は、新規に作成した２つの文字領域を、文字領域を包含している認識セルにそれぞれ関連付ける。
【００９７】
次にステップＳ１２１４において制御部３０３は、認識文字の分割を行う。上記分割された文字領域に含まれるように認識文字を分割して、各文字領域に関連付ける。
【００９８】
次にステップＳ１２１５において制御部３０３は、分割後の認識セルのうち、もっとも左上側にある認識セルの四頂点に対して認識セル位置変更ハンドルを表示部３０４に表示する。つまり、分割後に生成された複数の認識セルのうち、最も左上側に位置する認識セルを選択状態にする。また、ステップＳ１２１６において制御部３０３は、ステップＳ１２１５で選択状態にされた分割後の認識セルに関連付けられている認識文字を、編集ウィンドウにおける文字入力欄に表示する。
【００９９】
以上の認識セルの分割手段について、図１７、図１８、図１９を用いて、具体例を示す。図１７では認識セル４０３が選択されている状態の表示画面である。認識セル４０３は本来は複数の認識セルとなるべきだが、スキャン画像の罫線が掠れているため、単一の認識セルとして特定されている。単一の認識セルとして特定されているため、文字入力欄１７０１には、認識セル４０３内の認識文字が全て結合されて表示されている。
【０１００】
認識セル４０３を分割したい場合、図１８に示すように、まずユーザは認識セル４０３の認識セル位置変更ハンドル８０３をドラッグして、認識セルを分割したい位置まで認識セルを縮小する。なお、認識セルをドラッグして縮小する際には、認識セルを縮小している最中であることが分かるよう、認識セルの枠の表示を変更するのが好ましい。例えば点線１８０１のように、認識セルを縮小している間は、認識セルの枠を点線で表示する。図１８の縮小後の認識セルの中には、認識文字「Description」の文字領域のみが含まれていて、「Quantity」、「Unit  Price」、「Amount」は含まれていない。そのため前述のステップＳ１５１１で制御部３０３は、縮小後の認識セルに包含していない文字領域があると判定し、認識セルの分割をおこなう。
【０１０１】
認識セルを分割した後、制御部３０３は、分割された各々の認識セルのうち、もっとも左上に位置する認識セル１９０２を選択状態にする。図１９は、左上に位置する認識セルを選択状態にした例を示している。また、制御部３０３は、分割後の認識セルに含まれる認識文字「Description」を文字入力欄１９０１に表示する。この図１９の状態は、前述の図７のステップＳ７０２の処理が行なわれた後と同様に編集ウィンドウと認識セル位置変更ハンドルの表示が行われている例である。従って、その後の処理は、図７のステップＳ７０３以降の処理に従って処理が行なわれる。なお、図１９の例では、認識セル１９０２の残りの認識セル（すなわち、分割に伴い新規に作成された認識セル）は、本来複数の認識セルとなるべきものが一つの認識セルとなっている状態である。そこで、ユーザは同様の処理を繰り返して、残りの認識セルについても同様に分割をすることができる。
【０１０２】
＜編集ウィンドウに表示する認識文字の選択＞
次に、図７のステップＳ７０２において制御部３０３が行う編集ウィンドウに表示する認識文字の選択処理について説明する。領域解析の文字領域検出の結果、１つの認識セル内に複数の文字領域が存在する場合がある。具体的には、図４の認識セル４０１、４０２のようなケースである。このような場合、認識セルに関連付けられたすべての認識文字を編集ウィンドウに表示するとユーザの利便性を損なうことがある。したがって、認識セル内の文字領域の位置関係により、編集ウィンドウ表示する認識文字を選択する必要がある。
【０１０３】
図２０（ａ）は、認識セルの枠を表示する表示画面である図５の一部を示す図である。なお、理解を容易にするために、図４の認識セル４０１を符号として付している。マウスポインタ８０１が図２０（ａ）の位置にあった時にユーザがクリックすることで制御部３０３が実行する処理、すなわち図７のステップＳ７０２の詳細を図２１のフローチャートに示す。また、この処理の実行後の表示部３０４の状態を図２０（ｂ）に示す。
【０１０４】
図２１のフローチャートに基づいて詳細な処理を説明する。ステップＳ２１０１において制御部３０３は、認識セル位置変更ハンドルを表示する。図２０（ｂ）では認識セル位置変更ハンドル８０３に相当する。
【０１０５】
次にステップＳ２１０２において制御部３０３は、認識セルに関連付けられた文字領域の位置情報を保存部３０２から取得する。次に、ステップＳ２１０３において制御部３０３は、ステップＳ２１０２で取得した文字領域が複数あるかを判定する。取得した文字領域が１つであれば、ステップＳ２１０９で制御部３０３はその文字領域の認識文字をそのまま編集ウィンドウに表示する。一方、取得した文字領域が２つ以上あれば、ステップ２１０４からステップＳ２１０７の処理を経てどの文字領域とその認識文字を表示するかを判定する。
【０１０６】
まず、ステップＳ２１０４において制御部３０３は文字領域の外接矩形の位置情報により、文字領域の外接矩形を統合するか否かを判定する。比較対象の文字領域の外接矩形Ａの右上座標を（Ｌ＿ａ，Ｔ＿ａ）、左下座標を（Ｒ＿ａ，Ｂ＿ａ）、外接矩形Ｂの右上座標を（Ｌ＿ｂ，Ｔ＿ｂ）、左下座標を（Ｒ＿ｂ，Ｂ＿ｂ）とし、統合判定条件は以下のとおりである。
【０１０７】
２つの外接矩形Ａ、Ｂが行方向となる横方向で重ならない場合、すなわち、Ｂ＿ａ＜Ｔ＿ｂの場合は結合しない。  
そうでなければ（Ｂ＿ａ≧Ｔ＿ｂ）、２つの外接矩形が十分離れている場合、すなわち、Ｌ＿ｂ−Ｒ＿ａ  が閾値以上の場合、（例えば２０画素・・・１ｃｍ）は結合しない。
【０１０８】
次に、ステップＳ２１０５において制御部３０３は、統合すると判定した文字領域の外接矩形を結合し、さらにステップＳ２１０６において制御部３０３は認識文字も統合する。
【０１０９】
ステップＳ２１０４〜Ｓ２１０６の処理の具体例を示す。認識セル４０１内の文字領域は、
ＳＯＬＤ  ＴＯ  −−（１）
Ｋａｗａｓａｋｉ  ＢｌａｃｋＢｌｕｅ  −−（２）
Ｃｏ．，Ｌｔｄ．−−（３）
５３，  Ｉｍａｉ  Ｋａｍｉｃｈｏ，−−（４）
Ｎａｋａｈａｒａ−ｋｕ  Ｋａｗａｓａｋｉ−ｓｈｉ，−−（５）
Ｋａｎａｇａｗａ，  〒２１１−８５１１−−（６）
Ｔｅｌ−−（７）
０４４−９８７−６５４３−−（８）
Ｆａｘ−−（９）
０４４−９８７０６５４４−−（１０）
の１０個存在する。
【０１１０】
これらの文字領域の位置情報を入力された制御部３０３は、「Ｋａｗａｓａｋｉ  ＢｌａｃｋＢｌｕｅ」と「Ｃｏ．，Ｌｔｄ．」との２つの文字領域は統合すると判定し文字領域の外接矩形および認識文字を統合する。
【０１１１】
次に、ステップＳ２１０７において制御部３０３は、編集ウィンドウ８０４に表示する文字領域を選択する。選択条件は以下のとおりである。
【０１１２】
マウスポインタ８０１の位置が、ある文字領域の内側であれば、その文字領域とする。
【０１１３】
さらに、マウスポインタ８０１の位置が、どの文字領域の内側でもなければ、マウスポイント８０１の位置と最も距離が近い文字領域を選択する。
【０１１４】
次に、ステップＳ２１０８において制御部３０３は、表示部３０４に統合した文字領域の外接矩形の枠を表示する。これは、認識セル内の複数の文字領域のうち、どの文字領域が選択可能かをユーザへ明確に提示するために実施する。もし、統合処理後の文字領域の数が１であれば、文字領域は１つに確定するため、枠表示処理はスキップしてもよい。
【０１１５】
また、ステップＳ２１０７にて制御部３０３が選択した文字領域とそれ以外の文字領域を区別するために枠の表示方法を変える。本実施形態では、図２０（ｂ）のように選択された文字領域２５０２に太線、他の文字領域２５０３に細線枠を用いたが、両者を区別できる表示であれば方法は問わない。
【０１１６】
ステップＳ２１０９において制御部３０３は選択した文字領域に関連付けられた認識文字を編集ウィンドウに表示する。図２５（ｂ）では、文字領域２５０２が選択された文字領域を示しており、文字領域２５０２に関連付けられた認識文字”Ｋａｗａｓａｋｉ  ＢｌａｃｋＢｌｕｅ  Ｃｏ．，Ｌｔｄ．”を編集ウィンドウに表示している。
【０１１７】
＜認識セル内部の削除の詳細＞
次に、図９のステップＳ９０４における選択されている認識セル内部の削除処理の詳細について説明する。
【０１１８】
スキャン画像には、認識セルに対して、対応する実際のセルが１つ存在する。以降、スキャン画像の実際のセルを単にセルと呼ぶ。図５で説明したように、保存部３０２で保存されている認識セルの位置情報は、外接矩形の座標情報である。スキャン画像の傾きや歪みにより、認識セル５０３、５０４の外接矩形の座標情報とセルの罫線（黒画素塊５０１）の位置とは、図５に示すように完全には一致しない。認識セルの外接矩形の内側にセルの罫線の一部が含まれていた場合、認識セル内部をすべて削除すると、セルの罫線の一部を削除してしまう場合がある。セルの罫線を削除することなく、認識セル内部のセルの罫線以外を削除するステップを以下に説明する。
【０１１９】
図２２は、セルに内接する直線を検出する例を示す図である。図２２は、スキャン画像の実際のセル２２１４を示している。図２２（ａ）は、セル２２１４が、四頂点２２１０−２２１３を繋ぐ四本の罫線からなる領域であることを示している。図２２（ｂ）はセル２２１４に対応する認識セル２２０１を示している。図２２（ｃ）は、セル２２１４に内接する直線２２０２−２２０５を示している。セルに内接する直線のことをセル内接直線と呼ぶ。セル内接直線は１つのセルに対して、上下左右の四本存在する。
【０１２０】
認識セルに対応するセルのセル内接直線を検出するための領域を、セル内接直線検出領域と呼ぶ。図２２（ｄ）及び図２２（ｅ）はセル内接直線検出領域を示す図である。１つの認識セル２２０１に対して、それぞれ点線の矩形で示す４つのセル内接直線検出領域２２０６−２２０９が存在する。
【０１２１】
本実施形態では、認識セル内部の色を削除する際に、認識セルに対応する外接矩形内の画素を削除するのではなく、認識セルに対応するセル（実際のセル）のセル内接直線を検出し、検出したセル内接直線に基づいて削除する領域を決定する。以下、具体的な処理について説明する。
【０１２２】
図２３は、図９のステップＳ９０４の認識セル内部の削除の詳細な処理を示すフローチャートである。ステップＳ２３００で制御部３０３は、削除範囲の判定を行う。削除範囲は、文字領域、結合前の認識セル、認識セルのいずれかであり、制御部３０３はどの範囲を削除するかを判定する。具体的には、選択された認識セルに、関連付けられた文字領域が複数ある場合、制御部３０３は、削除範囲は文字領域と判定し、ステップＳ２３０７に処理を進める。ステップＳ２３０７において制御部３０３は、編集対象の文字領域の位置情報を保存部３０２から取得し、文字領域内部の色情報を削除する。具体的には、領域内部の画素の色情報を白に置換する。図２０に示すように、認識セルに関連付けられた文字領域が複数ある場合は、認識セル内部をすべて削除してしまうと、編集処理をしていない文字領域も合わせて削除してしまう可能性がある。従って、この削除範囲の判定処理により、編集対象の文字領域のみ削除することが可能となる。なお、文字領域のみを削除する場合、認識セル内部の削除と比べてとセルの罫線が消える可能性が小さい。そこで、認識セル内部を削除する全ての処理の際に文字領域のみを削除することで罫線の消失を防止することも考えられる。しかしながら、そもそもセルを編集したいというユーザの要望は、例えばノイズなどが原因でセルを誤認識してしまったり文字を誤認識してしまうことに対する対処のためである。文字領域のみを削除することでは、このようなユーザの要望には十分に応えられない可能性がある。従って、本実施例では、基本的に（結合前または結合後の）認識セル内部を削除しており、例外的な処理として、文字領域のみを削除する例を示している。
【０１２３】
ステップＳ２３００において制御部３０３は、選択された認識セルが結合後の認識セルであり、かつ、図１５のラジオボタン１５０３において、「結合前の認識セル内部を削除する」が選択されている場合、削除範囲は結合前の認識セルと判定する。そして、制御部３０３は、ステップＳ２２０６において、結合前の認識セル座標を取得するの処理を行う。すなわち、制御部３０３は、選択されている結合後の認識セルと関連付けて保存されている複数の結合前の認識セルの位置情報を保存部３０２から取得する。この場合、後述するステップＳ２３０２からＳ２３０６における認識セルとは、結合前の認識セルそれぞれのこととする。つまり、制御部３０３は、複数の結合前の認識セルに対して、それぞれ後述するＳ２３０２からＳ２３０５の処理を行い、それぞれの結合前の認識セル内部を削除する。
【０１２４】
ステップＳ２３００において、削除範囲が文字領域でも結合前の認識セルでもない場合は、制御部３０３は、削除範囲は認識セルと判定する。これには、認識セルが結合後の認識セルであり、かつ、図１５のラジオボタン１５０３において、「結合後の認識セル内部を削除する」が選択されている場合も含まれている。この場合、ステップＳ２３０１からＳ２３０５の処理における認識セルは結合後の認識セルのこととする。ステップＳ２３０１で、制御部３０３は、選択されている認識セル２２０１の位置情報を保存部３０２から取得する。
【０１２５】
次に、認識セル内部の処理を説明する。ステップＳ２３０２で制御部３０３は、認識セル２２０１の上下左右計４つのセル内接直線検出領域２２０６−２２０９を設定する。上部のセル内接直線検出領域２２０６は、認識セル２２０１の上部の辺を基準として、上下にあらかじめ決められた値分（例えば２０画素・・・０．５０ｃｍ）広げた領域である。下部のセル内接直線検出領域２２０７は、上部と同様の方法で設定される。左部のセル内接直線検出領域２２０８は、認識セルの左部の辺を基準として、左右にあらかじめ決められた値分広げた領域である。右部のセル内接直線検出領域２２０９は左部と同様の方法で設定される。
【０１２６】
ステップＳ２３０３で制御部３０３は、上下左右のセル内接直線検出領域２２０６−２２０９に対して、直線検出を行う。直線検出は例えばハフ変換を用いて行なわれる。
【０１２７】
上部のセル内接直線検出領域２００６に対するハフ変換による直線検出の方法を具体的に説明する。まず、制御部３０３は、上部のセル内接直線検出領域２２０６に対して、エッジ検出を行う。エッジ検出により、上下左右の画素との濃度の差が閾値以上のエッジ画素と、それ以外の非エッジ画素とに分類される。図２４はセル内直線を検出する例を示す図である。図２４は、エッジ画像２４０１を示している。このエッジ画像２４０１は上部のセル内接直線検出領域２２０６に対してエッジ検出を行い、エッジ画素を黒画素として表示した画像である。画素２４０２は上部のセル内接直線検出領域２２０６内のエッジ画素の１つであり、その座標を(Xb1,Yb1)と表す。 (Xb1,Yb1)を通る直線は式１で表現される。ρは原点から直線に垂線を引いた時の長さであり、θはx軸とのなす角度である。また、ρの小数点第一位を四捨五入し、整数化したものをρiとする。
【０１２８】
ρ= Xb1 cosθ+ Yb1 sinθ・・・式１
この式１が表す直線を図２５に図示する。制御部３０３は、θを一定の変化量（たとえば、１度ごと）で0度から360度まで変化させ、それぞれのθに対するρの値を計算することで、(Xb1,Yb1)を通る直線の(ρ, θ)の組み合わせを３６０個求める。制御部３０３は、上部のセル内接直線検出領域内２２０６で、この処理をエッジ画素の全てに対して行うことにより、エッジ画素数×３６０個の（ρ, θ）の組み合わせを求める。仮にエッジ画素数が１００個あるとすると、３万６０００個の（ρ, θ）の組み合わせが求まるわけである。その中には、もちろん重複があり、例えば（ρ1, θ1）の組み合わせは２０回あった、（ρ2, θ2）の組み合わせは３０回あったというふうに重複回数が求まる。つまり、（ρi, θi）の組み合わせの出現頻度が求まることになる。この出現頻度を閾値と比較し、その閾値を超えた（ρi, θi）の組み合わせを直線を表す数式とみなす。
【０１２９】
この閾値は、上部もしくは下部のセル内接直線検出領域の場合、セル内接直線検出領域の幅にあらかじめ定められた定数（例えば、０．７）を掛けた値とする。左部もしくは右部のセル内接直線検出領域の場合、セル内接直線検出領域の高さにあらかじめ定められた定数を掛けた値とする。その結果、図２４の例では、エッジ画像２４０１に対して直線検出を行った結果、直線２４０３と直線２４０４との二本の直線が検出される。直線２４０３と直線２４０４は検出された直線を黒画素で示した線である。制御部３０３は、下部、左部、右部に関しても同様の方法でそれぞれ直線検出を行う。
【０１３０】
ステップＳ２３０４で、制御部３０３は、ステップＳ２３０３における直線検出結果を基にセル内接直線を特定する。例えば、上部のセル内接直線検出領域の場合、上部のセル内接直線検出領域２２０６から２本の直線が検出されている。この２本の直線の中から、認識セルを基準として最も内側、すなわち最下部の直線を上部のセル内接直線として検出する。
【０１３１】
数学的には、図２４においては、上部のセル内接直線検出領域２２０６の中央のx座標２４０５における、検出された各直線２４０３、２４１４のy座標の値を算出し、y座標の値が最も大きい直線をセル内接直線として特定することになる。図２４の例では、y座標の値が最も大きい直線２４０４がセル内接直線として特定される。
【０１３２】
また、制御部３０３は上部のセル内接直線検出領域に１つも直線が検出されなかった場合、認識セルの上部の辺をセル内接直線として特定する。もちろん、１本のみ直線が検出された場合、その直線をセル内接直線として特定する。制御部３０３は、下部、左部、右部に関しても同様にそれぞれ最も内側の直線をセル内接直線として検出する。
【０１３３】
ステップＳ２３０５で制御部３０３は、スキャン画像に対して上下左右の四本のセル内接直線に囲まれた領域内部の色情報を削除する。具体的には、領域内部の画素の色情報を白に置換する。
【０１３４】
また、上下左右の四本のセル内接直線に囲まれた領域内部の色情報を削除する際、処理の簡易化のために、例えば図２２（ｆ）において点線で示す四本のセル内接直線に囲まれた領域内部の矩形２２２１の色情報を削除してもよい。矩形２２２１を特定する具体的な方法を以下に説明する。セル内接直線の左上の交点２２１５を座標（Ｘc1, Yc1）、左下の交点２２１６を座標（Ｘc2, Yc2）、右下の交点２２１７を座標（Ｘc3, Yc3）、右上の交点を座標（Ｘc4, Yc4）とする。また、AとBの小さいほうの値をmin(A, B)と表現し、AとBの大きいほうの値をmax(A, B)と表現する。矩形２２２１は、左上座標２２１９が（max(Xc1, Xc2）, max(Yc1, Yc4))で、右下座標２２２０が(min(Xc3, Xc4), min(Yc2, Yc3))の矩形として表現される。この矩形内部の色情報を削除することで、四本のセル内接直線に囲まれた領域内部の矩形２２２１の色情報を削除することができる。
【０１３５】
ステップＳ２３００からＳ２３０７の処理により、スキャン画像のセルの罫線を削除することなく、認識セル内部の罫線以外の色を削除することができる。
【０１３６】
＜その他の実施形態＞
上記の例では、スキャナで読み取ったスキャン画像を編集する例を説明した。このスキャン画像は各種のスキャナで読み取った画像であればよく、また、カメラスキャナのように撮像装置で撮像して得られた画像であってもよい。
【０１３７】
本発明の目的は、以下の処理を実行することによっても達成される。即ち、前記実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。
【０１３８】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
【図１】
0006370162.tif 000002
【図２】
0006370162.tif 000003
【図３】
0006370162.tif 000004
【図４】
0006370162.tif 000005
【図５】
0006370162.tif 000006
【図６】
0006370162.tif 000007
【図７】
0006370162.tif 000008
【図８】
0006370162.tif 000009
【図９】
0006370162.tif 000010
【図１０】
0006370162.tif 000011
【図１１】
0006370162.tif 000012
【図１２】
0006370162.tif 000013
【図１３】
0006370162.tif 000014
【図１４】
0006370162.tif 000015
【図１５】
0006370162.tif 000016
【図１６】
0006370162.tif 000017
【図１７】
0006370162.tif 000018
【図１８】
0006370162.tif 000019
【図１９】
0006370162.tif 000020
【図２０】
0006370162.tif 000021
【図２１】
0006370162.tif 000022
【図２２】
0006370162.tif 000023
【図２３】
0006370162.tif 000024
【図２４】
0006370162.tif 000025
【図２５】
0006370162.tif 000026