(57)【特許請求の範囲】
【請求項１】
コンピュータのメモリで有色および無色のピクセルの二レベルのアレイとして表現された画像における横向きのラインをまっすぐに修正する方法において、
ａ．前記コンピュータメモリの一部を、一定の記憶容量を有し且つ複数の行および列を含む格子として編成されているローリングバッファとして規定する過程と、
ｂ．前記アレイをスキャンして、横に連続する所定のスレッショルド数の有色ピクセルを含み且つ所定の最大値を超えない有色ピクセルの縦方向の範囲を有し且つその範囲の変動が所定の量を超えないような横向きのラインセグメントを見つける過程と、
ｃ．前記横向きのラインセグメントの各々をまっすぐに修正する過程とを備え、前記修正する過程ｃ．が、
ｉ．横向きのラインセグメントを含む画像の部分に相当するデータを前記コンピュータメモリから前記ローリングバッファに入れる過程と、
ｉｉ．前記バッファの第１の列および後続の各列について、
（ａ）連続的な有色ピクセルの縦方向の範囲を識別し、
（ｂ）前記識別した範囲の最上位および最下位の有色ピクセルを識別して両ピクセル間の距離を記録し、そして、
（ｃ）前記連続した縦方向の範囲の有色ピクセルの値をゼロ値にリセットすることにより消去する過程と、
ｉｉｉ．前記バッファの内容を前記コンピュータメモリに戻す過程と、
ｉｖ．前記コンピュータメモリの第１の横方向に連続する部分を用いて前記過程ｉ〜ｉｉｉを繰り返すことにより、前記ラインセグメントの第１の端点に到達するまで、前記ラインセグメント上の有色ピクセルを消去する過程と、
ｖ．前記コンピュータメモリの第２の横方向に連続する部分を用いて前記過程ｉ〜ｉｉｉを繰り返すことにより、前記ラインセグメントの第２の端点に到達するまで、前記ラインセグメント上の有色ピクセルを消去する過程と、
ｖｉ．前記記録した最上位ピクセルと最下位ピクセルとの間の平均距離と、前記コンピュータメモリ上における前記ラインセグメントの前記第１の端点位置および第２の端点位置とを前記コンピュータメモリ上のテーブルに記録する過程と、
ｖｉｉ．前記記録されたテーブルに基いて、前記第１の端点位置および第２の端点位置間に、前記平均距離に等しい太さを有するラインを前記コンピュータメモリ上に描画する過程と
を有することを特徴とする方法。
【請求項２】
コンピュータのメモリで有色および無色のピクセルの二レベルのアレイとして表現された画像における縦向きのラインをまっすぐに修正する方法であって、縦方向の第１および後続のピクセル列をスキャンして、縦に連続する所定のスレッショルド数の有色ピクセルを含み且つ有色ピクセルの所定の最大値を超えない横方向の範囲を有し且つその範囲の変動が所定の量を超えないような縦のラインセグメントを見つける過程を含むものにおいて、
ａ．現在の列において縦のピクセル位置ｙに初期有色ピクセルを位置決めする過程と、
ｂ．位置ｙからのスレッショルド縦方向距離ｔが前記メモリの最上位または最下位のピクセル行を超えるかどうかを判定し、超える場合、前記現在の列でのスキャニングを終了する過程と、
ｃ．前記位置ｙからのスレッショルド縦方向距離ｔが前記メモリの最上位または最下位のピクセル行を超えない場合、位置ｙから距離ｔだけ縦方向に離れたピクセルが有色であるかどうかを判定する過程と、
ｄ．前記位置ｙから距離ｔだけ縦方向に離れたピクセルが有色でない場合、位置ｙを位置ｙ＋ｔに置き換える過程と、
ｅ．前記過程ｂに戻る過程と、
ｆ．前記位置ｙから距離ｔだけ縦方向に離れたピクセルが有色である場合、位置ｙと位置ｙ＋ｔとの間に存在するいずれかのピクセルが無色であるかどうかを判定する過程と、
ｇ．前記位置ｙと位置ｙ＋ｔとの間に存在するいずれかのピクセルが無色である場合、位置ｙを中間の無色ピクセルの位置に置き換える過程と、
ｈ．前記過程ｂに戻る過程と、
ｉ．前記位置ｙと位置ｙ＋ｔとの間に存在するいずれのピクセルも無色でない場合、位置ｙから位置ｙ＋ｔまでを縦方向のラインセグメントとして識別する過程と、
ｊ．前記識別された縦方向のラインセグメントを第1の縦方向にスキャンすることにより、前記ラインセグメントの第1の端点に到達するまで、各有色ピクセルに隣接して横向き連続して並ぶ有色ピクセルの値をゼロ値にリセットすることにより消去する過程と、
ｋ．前記識別された縦方向のラインセグメントを第２の縦方向にスキャンすることにより、前記ラインセグメントの第２の端点に到達するまで、各有色ピクセルに隣接して横向き連続して並ぶ有色ピクセルの値をゼロ値にリセットすることにより消去する過程と、
ｌ．前記縦方向のラインセグメントの端点間の消去された有色ピクセルの平均数を記録する過程と、
ｍ．前記第1の端点と、前記第2の端点と、前記消去された有色ピクセルの平均数を縦の
ライン情報として前記コンピュータメモリ上にテーブルとして記録する過程と、
ｎ．後続の各列について過程ａ〜ｍを繰り返す過程と
ｏ．前記記録されたテーブルに基いて、前記第１の端点位置および第２の端点位置間に、前記消去された有色ピクセルの平均数に等しい太さを有するラインを前記コンピュータメモリ上に描画する過程と、
を備えることを特徴とする方法。
【請求項３】
画像をディジタルで表現し、前記画像を解析して横向きのラインを見つけ、前記横向きのラインをまっすぐに修正する画像処理装置において、
ａ．プロセッサと、
ｂ．有色および無色のピクセルの二レベルのアレイとして前記画像を記憶するための、前記プロセッサがアクセス可能な第１のコンピュータメモリと、
ｃ．一定の記憶容量を有し且つ複数の行および列を含む格子として編成されている、前記画像の可変部分を記憶するための、前記プロセッサがアクセス可能な第２のコンピュータメモリと、
ｄ．前記横向きのラインセグメントを検知するように構成されたプレスキャニングモジュールと、
ｅ．前記プレスキャニングモジュールによって検知されたラインセグメントを含む横向きのラインの端点位置と平均太さとを前記第１のコンピュータメモリ上のテーブルに記録させるように構成されたものであって、前記プロセッサに対して、
ｉ．横向きのラインセグメントを含む前記画像の一部に相当するデータを前記第１のコンピュータメモリから前記第２のコンピュータメモリに入れることと、
ｉｉ．第１のバッファ列および後続の各バッファ列について、
（ａ）有色ピクセルが縦方向に連続した範囲を識別し、
（ｂ）前記範囲の最上位および最下位の有色ピクセルを識別し、両ピクセル間の距離を記録し、
（ｃ）前記範囲の有色ピクセルの値をゼロ値にリセットすることにより消去することと、
ｉｉｉ．前記第１のコンピュータメモリの内容を前記第２のコンピュータメモリに戻すことと、
ｉｖ．第１の横方向で連続する前記第２のコンピュータメモリの部分を用いて、前記横向きのラインセグメントの第１の端点に到達するまで、前記過程ｉ〜ｉｉｉを繰り返すことにより、前記横向きのラインセグメント上の有色ピクセルを消去することと、
ｖ．第２の横方向で連続する前記第２のコンピュータメモリの部分を用いて、前記横向きのラインセグメントの第２の端点に到達するまで、前記過程ｉ〜ｉｉｉを繰り返すことにより、前記横向きのラインセグメント上の有色ピクセルを消去することと、
ｖｉ．前記記録した最上位ピクセルと最下位ピクセルとの間の平均距離および各ラインセグメントの前記第１のコンピュータメモリ上における前記第１の端点位置と前記第２の端点位置を、前記第１のコンピュータメモリ上にテーブルとして記録することと
を行わせしめるアイソレーションモジュールと、
ｆ．前記アイソレーションモジュールによって前記端点位置と平均太さとを前記第１のコンピュータメモリ上のテーブルに記録された前記各ラインセグメントについて、前記記録されたテーブルに基いて、前記各ラインセグメントの前記第１のコンピュータメモリ上における前記第１の端点位置および第２の端点位置間に、前記平均距離に等しい太さを有するまっすぐなラインを描画するライン描画モジュールと
を有することを特徴とする装置。
【請求項４】
画像をディジタルで表現し、前記画像を解析して縦向きのラインをまっすぐに修正する装置において、
ａ．プロセッサと、
ｂ．有色および無色のピクセルの二レベルのアレイとして画像を記憶するための、前記プロセッサがアクセス可能な第１のコンピュータメモリと、
ｃ．前記プロセッサに縦方向の第１および後続のピクセル列をスキャンさせることによって、縦に連続する所定のスレッショルド数の有色ピクセルを含み且つ有色ピクセルの所定の最大値を超えない横方向の範囲を有し且つその範囲の変動が所定の量を超えないような縦向きのラインを位置決めする解析エンジンであって、前記プロセッサに対し、
ｉ．現在の列において縦のピクセル位置ｙに初期有色ピクセルを位置決めすることと、
ｉｉ．位置ｙからのスレッショルド縦方向距離ｔが前記第１のコンピュータメモリの最上位または最下位のピクセル行を超えるかどうかを判定し、超える場合、前記現在の列におけるスキャニングを終了することと、
ｉｉｉ．前記位置ｙからのスレッショルド縦方向距離ｔが前記第１のコンピュータメモリの最上位または最下位のピクセル行を超えない場合、有色であるかどうかを判定することと、
ｉｖ．前記位置ｙから距離ｔだけ縦方向に離れたピクセルが有色でない場合、位置ｙを位置ｙ＋ｔに置き換えることと、
ｖ．前記過程ｉｉに戻ることと
ｖｉ．前記位置ｙから距離ｔだけ縦方向に離れたピクセルが有色である場合、位置ｙと位置ｙ＋ｔとの間に位置するいずれかのピクセルが無色であるかどうかを判定することと、
ｖｉｉ．前記位置ｙと位置ｙ＋ｔとの間に位置するいずれかのピクセルが無色である場合、位置ｙを中間の無色ピクセルの位置に置き換えることと、
ｖｉｉｉ．前記過程ｉｉに戻ることと、
ｉｘ．前記位置ｙと位置ｙ＋ｔとの間に位置するいずれのピクセルも無色でない場合、位置ｙから位置ｙ＋ｔまでを縦方向のラインセグメントとして識別することと、
ｘ．前記識別された縦方向のラインセグメントを第1の縦方向にスキャンすることにより、前記ラインセグメントの第1の端点に到達するまで、各有色ピクセルに隣接して横向き連続して並ぶ有色ピクセルの値をゼロ値にリセットすることにより消去することと、
ｘｉ．前記識別された縦方向のラインセグメントを第２の縦方向にスキャンすることにより、前記ラインセグメントの第２の端点に到達するまで、各有色ピクセルに隣接して横向き連続して並ぶ有色ピクセルの値をゼロ値にリセットすることにより消去することと、
ｘｉｉ．前記縦方向のラインセグメントの端点間の消去された有色ピクセルの平均数を記録することと、
ｘｉｉｉ．前記第1の端点と、前記第2の端点と、前記消去された有色ピクセルの平均数を縦のライン情報として前記第1のコンピュータメモリ上にテーブルとして記録することと、
ｘｉｖ．後続の各列について過程ｉｉ〜ｘｉｉｉを繰り返すことを行わせしめる解析エンジンと
ｄ．前記記録されたテーブルに基いて、前記第１のコンピュータメモリ上における前記第１の端点位置および第２の端点位置間に、前記消去された有色ピクセルの平均数に等しい太さを有するまっすぐなラインを描画するライン描画モジュールと
を備えることを特徴とする装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタル文書処理、詳細には、ディジタル化表現の文書における横のラインおよび縦のラインを検知しまっすぐに修正する方法に関する。
【０００２】
【従来の技術】
ディジタル化画像、特に光電式スキャナによってソース文書から直接取得したものは、不完全に描かれたラインを有することが多い。こうした状況は、例えばテキスト情報と画像情報とを含む文書がスキャナに正しく位置合せされなかった時などに生じる可能性があり、その文書で正しく描かれていたラインが傾いたり“ギザギザ”に見えるディジタル化画像をもたらす。また、これは正常ではあば不完全なスキャナの動作の結果として生じることもある。
【０００３】
スキャナは、入力される文書上にあるテキストおよび／または画像パターンを光電式に電気信号に変換する。適切なソフトウエアが、これらの電気信号を画素すなわち“ピクセル”の“ラスタ”に処理し、多数の行と列を有する格子に構成された記憶アレイに格納する。ラスタでのピクセルパターンは元のスキャンされた文書の外観に対応する。例えば、現在のファクシミリ機は、たいてい、２００ドット／インチでスキャンするので、１ポイント（１／７２インチ）の太さのラインは２個又は３個のピクセルで表現されることになる。
【０００４】
ラスタ形式の最も単純な形態では、各ピクセルは、そのディジタル表現での有色または無色の点に対応する単一の二レベルビットである。プリンタなどのバイナリ出力装置へ転送されると、各ピクセルは出力媒体における一意の幾何学位置を指定し、そのピクセルが無色（値＝１）または有色（値＝０）であるかに応じて、プリンタは、その位置に有色の小点を付けるか、または、空白のまま残すかのいずれかを行う。さらに複雑なシステムでは、各ピクセルは、原画像からの色調値を数値化している複数のビットによって表現される。
【０００５】
スキャナがソース文書に対し正しく位置合せされなかった場合、本来はまっすぐなラインがピクセルの行および／または列に明らかに一致しなくなる。しかし、たとえ文書が正しく位置合せされた場合でも、文書の折り目、ごみ、しみ、汚れなどがラインのスキャニングを妨げ、不完全なビットマップを生じる原因となることがある。さらに、ほとんどすべてのスキャナは、何らかの不安定な挙動を示しがちであり、スキャン中に無作為の隙間やラインの太さの変動を生じることがある。スキャナにおいてもっと深刻な光学的不完全は、偽の変形をもたらす可能性がある。
【０００６】
ディジタル化文書からこうした不要な変動を除去し、まっすぐなラインを元通りに再現するために、様々な技法が開発されている。そうした技法は、ラインをまっすぐに修正するだけでなく、スキャンされたページの諸要素を完全に類別し、ピクセルを、直線、曲線および図形を構成する有意なオブジェクトにまとめることも行うソフトウエアパッケージにおいて頻繁に利用されている。別の例では、ライン修正技法は、ラインを削除してテキスト情報の認識を容易にするために用いられている。
【０００７】
【発明が解決しようとする課題】
このように、現在の多くのラインの認識および修正技法は、大型システムの一部として存在する傾向にあるので、ラインだけに関してはいくぶん非効率的に動作するかもしれない。例えば、そのようなシステムは通常、ラインに加え、様々な基本要素についてディジタル化文書を反復的に解析するマルチプルパス法を採用している。さらに、そうした一般的なシステムは、それぞれのまさに一般性の結果、ラインに固有のある種の指示を無視することがある。例えば、ディジタル化画像をテキストに変換する光学式文字認識システムは、傾いたラインを正しい曲線と誤って類別したり、または、特定の異形文字や通常のスキャナによる文書のディジタル化に付随する偽の副産的ノイズを認識するようにプログラムされないことがある。
【０００８】
従って、本発明の目的は、ディジタル化文書の縦又は横のラインをまっすぐに修正できるようにすることにある。
【０００９】
【課題を解決するための手段】
本発明は、縦および横のラインを検知し、それらの長さ方向の範囲を判定し、それらをまっすぐに修正するために、ディジタル化文書を効率的にスキャンするように設計されている。本発明はディジタル化文書の処理をわずか２度で済ませることができる。１度は横のラインに対応するピクセルの集合を検知し消去するためであり、いま１度は縦のラインに対応するピクセルの集合を検知し消去するためである。ラインが検知されると、本発明は、ラインに関するデータ（例えば平均太さおよび端点）を蓄積し、それらのデータを利用して、文書に入るそのラインのまっすぐに修正されたものを再構成する。それによって、検知されたラインは一様に横向きまたは縦向きに修正される。
【００１０】
そのオペレーションにおいて、本発明はまず、少なくとも３つの判定基準に従って横または縦のラインセグメント（すなわち、長いラインの一部分を表現している要素）を識別する。第１の基準はセグメントらしき対象が一定の最小数の有色ピクセルの連続を含むか否か、第２の基準はそのラインが所定の太さの範囲内に納まっているか、第３の基準はそのセグメントらしき対象が太さに関してわずかな程度の変動しか示していないかどうか、である。第２および第３の判定基準は、文書が取得される方法に応じて変更することができる。例えば、過剰な太さのごく小さな連続であっても、一部の形式のスキャナでは問題ないであろう。ラインの詳細な仕様を生成する前にラインの部分をなすラインセグメントを識別するという本発明の方法を用いれば、ラインを含む可能性の高い画像領域だけに限定して精巧な計算集約的ライン修正ルーチンを使用できるようになるので、明らかに効率上の利益が得られる。
【００１１】
本発明によれば、従来のラインスキャニング技法（すなわち、所定のスレッショルド長さを超える連続した有色ピクセルの並びについて、ラスタの行または列の個々のピクセルを調べるという方法）に代えて、ラインセグメントを含む可能性の高い領域だけについてピクセルごとのスキャニングを行う、というより効率的な方法を採用できる。詳細には、最小のラインセグメントを規定するピクセルのスレッショルド数が与えられると、本発明は、初期ピクセルから始めて、そのピクセルのライン上でスレッショルドに等しい距離だけ離れたピクセルを検査する。その離れたピクセルが無色であれば、初期ピクセルと離れたピクセルとの間には、連続したスレッショルド長さの有色ピクセルの連続は存在し得ない。従って、それらのピクセルの全部が評価されたものとみなされ、その離れたピクセルが新しい初期ピクセルになる。初期ピクセルおよび離れたピクセルの両者が実際に有色であれば、本発明は、初期ピクセルに漸次近づく一連のピクセルを検査する。それらのピクセルのいずれかが無色であるとわかれば、それが新しい初期ピクセルとして規定され、再度、中間にあるピクセルをスキップする。この方法は、縦のラインの検知に特に有効である。
【００１２】
ライン修正ルーチンは、ラインに属する全部のピクセルの位置を見つけ、それらを消去し、検知されたラインの寸法を引続く再描画のために報告する。検知された横のラインセグメントは、好ましくは、高速のキャッシュメモリまたはレジスタバンクで処理される。ラインセグメントの一部を含むソース文書の個々の部分は、バイト長単位でキャッシュにロードされ処理され、処理された後、そのラインセグメントの後続部分を表した新しいデータがキャッシュに入ると同時に、同様にしてメインメモリに戻される。このようにして、キャッシュはメインメモリの特定の部分の“窓”として動作し、それにより、中央処理装置がライン修正ルーチンをそれらの部分に対してのみ実行できるようにし、相対的に低速なメインメモリでのピクセル単位のオペレーションを回避する。
【００１３】
【発明の実施の形態】
まず、本発明に適する代表的なハードウエア環境を例示した図１について説明する。示されたコンピュータシステムは、各種オペレーションを実行し、かつ、システムメモリ１１７およびキャッシュメモリ１１９を含むコンピュータメモリにアクセスする中央処理装置（ＣＰＵ）１１５を有する。システムメモリ１１７は通常、コンピュータの基本オペレーティングシステム１２１の部分を含め、情報の一時記憶用の揮発性またはランダムアクセスメモリ（ＲＡＭ）を有する。システムはまた、コンピュータの機器構成および基本オペレーティングシステム１２１の補助部分の永久記憶用のリードオンリメモリ（ＲＯＭ）および、特に処理される画像を記憶するためのハードディスクおよび／またはＣＤ−ＲＯＭドライブといった１個以上の大容量記憶装置１２３も含む。
【００１４】
このシステムは、ユーザとの間で情報を受け取り、また、提示するための複数の周辺装置も含む。これらには、入力文書上にあるテキストおよび／または画像パターンを光電式に電気信号に変換するスキャナ１２５、ビデオディスプレイ１２７、およびプリンタ１２９がある。これらの構成要素のオペレーションは、システムメモリ１１７に含まれる一連のアプリケーションプログラム１３５によって制御される。例えば、スキャナ１２５によって生成された電気信号は光学文字認識パッケージまたは画像処理プログラムによって処理され、プリンタ１２９はメモリ１１７に記憶されたドライバプログラムによって動作されるであろう。ここで使用される用語“アプリケーションプログラム”は、ユーザにとって関心のある情報を処理するためのいずれかの機能体を広範に指し、ピクセルオペレーションをも含むものである。キャッシュメモリ１１９以外のシステムのすべての構成要素は、双方向システムバス１３７によって通信する。キャッシュメモリ１１９は、ローカルバス１４０によってＣＰＵ１１５と直接通信する。別の設計では、キャッシュメモリ１１９の機能は、ＣＰＵ１１５にアクセス可能な十分に大きな一群のローカルレジスタによって実行される。
【００１５】
本発明に関して最も重要なのは、（例えばスキャナ１２５から取得した）テキスト、グラフィックスまたは画像をコンピュータメモリに記憶するためにディジタルフォーマットに変える画像処理プログラムである。単純にするために、以下の説明では、画像は、空白または単色の点のいずれか一方を指定する二値ピクセルとして存在するものと仮定する。実際、このオペレーションモードは本発明の最適な具体化であり、最も有意義な性能の改善を付与する。例示したシステムにおいて、アプリケーションプログラム１３５によって定義された“ビットマップ”ラスタは、文書バッファ１３７に格納される。文書バッファ１３７は通常、ラスタを収容するために“ビット形の”格子に編成されたシステムメモリの１パーティションである。
【００１６】
代表的なオペレーションモードでは、ソース文書がスキャナ１２５によってスキャンされ、アプリケーションプログラム１３５によってラスタに処理され、文書バッファ１３７に格納される。スキャナもしくはアプリケーションプログラムまたは両者の不正確さゆえに、ソース文書で直線に見えるはずのものが、文書バッファ１３７では不完全に表現されることがある。この作用を図２に例示する。図では、ソース文書の一部２１２に存在する直線２１０がスキャニングの後、ゆがんでしまった。詳細には、文書バッファ１３７に格納された対応するラスタ化されたライン２１４は、平均して４ピクセル分の太さで表現されているが、この太さが不規則に変化し、ラインはバッファのフィールドごとに上方にずれている。特異的な太さの変動は不安定なスキャナの性能に起因する可能性があるが、ラインのずれは、スキャナに対する文書のわずかな位置不整合の結果として生じ得る。他にも、連続したラインとなるはずのものを妨げる偽の隙間、無作為の太さの変動といったノイズも存在する。
【００１７】
本発明は、例示したコンピュータシステムにおいて実施した場合、解析エンジン１３９において、図３に概説した３段階プロセスでラインを修正する。各プロセスステップに責務を負う解析エンジン１３９の各構成要素を図４に示す。両図に関して、第１のステップ３１０では、文書バッファ１３７に存在する画像がプレスキャニングモジュール３５０によってスキャンされ、所定の判定基準に従って横のラインに一致する連続した有色ピクセルの各群が提示される。次のステップ３１２では、アイソレーションモジュール３５２が、上記基準を満足するピクセルの格子位置をテーブル化し、それらのピクセルを“消去”する（すなわち、それらをゼロ値にリセットすることによりピクセルを無色にする）。このテーブル化はそのラインの両端および平均太さのテーブル化も含み、それらはメモリパーティションつまりバッファ３５４に蓄積され格納される。縦のラインと交わる可能性のあるすべての横のラインが消去されたことが認識されると、このスキャニングルーチンのピクセル間隔に関する許容量が増加され、同様の一連の手続きが、ステップ３１４および３１６において縦のラインについて繰り返される。最終ステップ３１８では、ライン描画モジュール３５６が、適切な行のピクセルを値＝１に設定することによって、テーブル化された平均スキャンライン太さに一致する太さで、バッファ３５４に格納されたテーブル化された両端の間に完全にまっすぐな（すなわち、余白調整された）ラインを描く。
【００１８】
ステップ３１０は、それほど厳密に実行する必要はない。所定値よりも太くなく（すなわち、縦の行の所定数以下にしか広がってなく）且つ太さが所定数以下で変化している、横方向に連続した有色ピクセルの並びを検知するための、いずれかの標準のライン追跡アルゴリズムで十分である。最大太さは通常、スキャニング周波数によって決まり、それにより、その最大値が任意のピクセル数ではなく本物のソース文書の線の太さに一致する。最大値を超えて連続する（すなわち、数ピクセルの並びを上回る）太さを有する領域は、たぶん、ラインに相当するのではなく、例えば英数字または画像成分を表現する。同様に、ラインの太さの著しい変動は、恐らく、そのレンジが予測可能な許容限界値に納まるようになっているスキャナのノイズによって生じるのではなく、そのような変動はたぶん、画像の色調領域の変動によるものである。
【００１９】
横のラインを位置決めし識別するための適切な手順を図５に示す。最初のステップ４１０で、プレスキャニングモジュール３５０が、（ＣＰＵ１１５のオペレーションによって）、スレッショルド数ｔを超える連続した有色ピクセルの並びを見つけるために、バッファ１３９のピクセルの行を順次スキャンする。スキャニングステップによりそのような並びが見つかると（ステップ４１２）、それは予備的にラインの一部とみなされ、そのビットマップロケーションが解析エンジン１３９によりシステムメモリ１１７のテーブル化パーティションに記録される（ステップ４１４）。そしてバッファ１３７の全部のピクセルが調べられる（ステップ４１６）まで、スキャニングが続行される（ステップ４１４）。この手順は一般に、実行速度を最大にするためにアセンブリ言語で符号化される。さらに、ラスタは二レベルのビットマップであるとみなされるので、そのスキャニング手順は、各命令サイクルで複数ビットバイトのデータを調べることができる。例えばシステムが８ビットバイトを用いていれば、ピクセル単位で調査する方式に比べて８の因数分だけ処理速度が加速される。
【００２０】
解析エンジン１３９はその後、位置決めされ記録された各ラインセグメントを所定の太さの判定基準に照らして、その絶対太さおよび太さの変動を確認する。ステップ４２０で、アイソレーションモジュール３５２は、各ラインセグメントの長さに沿った幾つかのまたは全部の点で各ラインセグメントの太さ（すなわち、連続した有色ピクセルの縦の広がり）を調べて、それが許容可能な境界内に入っているかどうかを判定する。許容可能な太さおよび変動を指定する判定基準は、ある程度複雑になることがある。例えば、（過剰な太さの極めて短い並びが正当であることも、偽であることもあり得るから）最大太さを超える連続ピクセル数に関してこの基準は変化し得、また過剰な太さ変動の長さ方向の範囲に関しても変化し得る。しかしながら、そのような判定基準は、当業者にとっては公知であり、容易に実施できるであろう。
【００２１】
ラインセグメントが判定基準を満たすことができない場合（ステップ４２２）、そのラインセグメントはテーブル化パーティションから削除され、次のラインセグメントが評価される（ステップ４２４）。他方、ラインセグメントが判定基準を満たした場合、その両端が位置決めされ、後述する左方向（ステップ４２６）および右方向（ステップ４２８）で横のラインの修正手順を実行することにより、ラインはまっすぐに修正される。新たに確定されたラインの両端および統一された太さが、以後の描画のためにテーブル化パーティションに記録され（ステップ４３０）、次のラインが評価される。格納されたラインのリスト全体が調査された後、この手順は終了する（ステップ４３２）。
【００２２】
本実施形態のライン修正手順は、図１のハードウエア機器構成、および、著しく短いアクセス時間をもつキャッシュメモリ１１９（またはローカルレジスタ）に対するシステムメモリ１１７のアクセス時間の相違を考慮したものである。従って、本実施形態は、アクセスが低速であるバッファ１３７に存在するピクセルを反復的に処理することを避け、代わって、各々バッファ１３７の内容の一部を有したキャッシュメモリ１１９内の１個又はそれ以上の“ローリング”バッファ上で動作する。これは図２に示されている。図２では、表現上、ピクセルは、バッファ１３７における有色または無色の領域として、かつ、キャッシュメモリにおける数値として示されている。バッファ１３７の図示部分は１０個の２４ビット行（すなわち、各々が２４列のビットを有する１０個の行）より成る。この情報量を収容するために利用されるローリングバッファの数は１バイトの大きさによって異なる。ローリングバッファは、１バイトのビット数に等しい列数を有することが好ましく、それにより、単一のメモリ転送命令によって全部のビット列がロードできる。バッファの行数は、ラインのビット単位での最大許容太さに依存するが、バッファの“高さ”（すなわち、列の大きさ）はこの最大太さに等しくするべきである。８ビットバイトおよび５ビットの最大平均ライン太さを限定すれば、ローリングバッファＲ1，Ｒ2およびＲ3は、それぞれ８ビット（１バイト）の行を１０行を有する８０ビットメモリとして定義される。数個のバッファを同時に処理することは（例えば複数のグラフィックスプロセッサを用いて）可能であるが、以下の説明は、単純にするために、Ｒ1，Ｒ2およびＲ3がそのバッファの逐次的状態を表現している、単一のバッファを用いることを前提する。
【００２３】
本実施形態の横のラインの修正オペレーションは、図６、図７および図８によって理解されるであろう。図７および図８はキャッシュメモリ１１９の状態Ｒ1を示している。表現の都合上、図７および図８には有色のピクセルだけが示されている。基本的に、１０個の１バイト画像データの集合は、バッファ１３７からローリングバッファＲ1に複写される。このデータは、処理されてから、その複写元のバッファ１３７の部分に複写し戻され、未処理のソースデータに取って代わる。従って、本質的に低速アクセスのバッファ１３７に対する８０回の個別のリード／ライトが、２０回のオペレーション（バッファＲ1への充填に１０回、そのフラッシュに１０回）で済む。さらに、そのピクセル処理オペレーションは、バッファ１３７にあるものよりも、キャッシュメモリ１１９にあるピクセルに対するほうがはるかに高速に実行される。こうした特長は、標準システムに対して約５倍の全処理の改善を付与することにつながる。
【００２４】
図６に示した処理シーケンスに関して、アイソレーションモジュール３５２は、処理の方向を指定する内容を有するシングルビットの方向レジスタＤＸ、ローカルマスクとして機能するバイト長レジスタＬＸ、および、現在のローリングバッファ列のトップピクセルおよびボトムピクセルをそれぞれ指示する１組のポインタＬＴＯＰおよびＬＢＯＴを利用する。これらのレジスタは、キャッシュメモリ１１９のロケーション、または、ＣＰＵ１１５の内部にある。
【００２５】
ライン修正オペレーションはステップ５１０から始まり、プレループ設定ルーチンが、文書バッファ１３７からローリングバッファＲ1へロードし、ローリングバッファの処理すべき最初の列を選択するようにＬＸを設定し、その最初の列にＬＴＯＰおよびＬＢＯＴの値を置き、その他の必要な初期値を設定する。例えば、修正すべきラインが、バッファＲ1の第３列に対応するメモリロケーションから始まっていると仮定しよう。この場合、図７に示すように、ＬＴＯＰはバッファＲ1の第４行を、ＬＢＯＴバッファはＲ1の第７行を指示する。ローカルマスクＬＫでは、第３列に対応する第３ビットが設定され、残りのビットは未設定のまま残される。
【００２６】
ステップ５１２において、そのラインの最初の列の太さは消去される。これは、ＬＴＯＰからＬＢＯＴまでに存在する全部のビットについて、ＬＸとバッファＲ1とを連続的にＮＡＮＤ論理演算することによって遂行される。（この場合４ビットである）消去される列の太さ（すなわち高さ）はメモリに記録され、ステップ５１４において、ＬＸの設定されたビットはＤＸで指定された方向に従ってシフトされる。この消去オペレーションがバッファＲ1の最終列まで行われると、そのバッファの内容は、その初期内容が取得された出所のメモリロケーションに書き戻され、そして、そのバッファには、文書バッファ１３７から新しいメモリ内容セットが再ロードされる。
【００２７】
ステップ５１６では、ＬＴＯＰおよびＬＢＯＴが次のピクセル列（そのロケーションはＤＸによって指定される）の内容に従って調整される。しかし、消去されるラインは、縦の各方向で太さが１ピクセルだけしか大きくならないように制約される。この抑制機能により、偽のスキャニングノイズに対する即時的な応答が予防される。つまり、ラインが最大許容ライン太さを超える地点まで増大し続けた場合、アイソレーションモジュール３５２は、後述の通り、端点を宣言する。従って、次の列のＬＴＯＰおよびＬＢＯＴの値をサーチする際に、アイソレーションモジュール３５２は、たとえ有色ピクセルがＬＴＯＰ又はＬＢＯＴの縦方向位置を越えたところにあったとしても、ＬＴＯＰは上に、ＬＢＯＴは下に、１ピクセル以上動かすことはしない。しかし、モジュール３５２は、逆方向ではそのように制約されない。つまり、有色ピクセルを見つけるために必要な数だけ縦方向位置を、ＬＴＯＰを下に、ＬＢＯＴを上に、自由に動かすことができる。有色ピクセルをサーチする際に、ステップ５１８に示したように、ＬＴＯＰおよびＬＢＯＴが相互に交差した場合、空白の縦列が指示され、処理はその後、後述の通り継続する。
【００２８】
他方、有色ピクセルがこの状態を引き起こさずに見つかった場合、ラインは図８に示したように連続するものとみなされる。この時、ＬＸは第４列を指示し、ＬＴＯＰおよびＬＢＯＴの両者は１ピクセル上にシフトされる。バッファＲ1は本質的に文書バッファ１３７に対して横方向に並進するローカルウィンドウであるから、太さが変動するまたは縦方向にずれる正当なラインでも事実上そのウィンドウ外に出ることがある。モジュール１３９は、ＬＴＯＰが第０行に達した時（ステップ５２０）またはＬＢＯＴがバッファＲ1の最後の行まで沈んだ時（ステップ５２２）にこの状態を検出する。このいずれかの状態が生じると、ＬＴＯＰが第０行に達し且つＬＢＯＴが第９行に達した場合（ステップ５２４）以外は、バッファは“ロール”される。この場合、バッファＲ1の行数がラインの最大許容太さを超えるとすぐに、モジュール１３９は、太すぎるラインであると認識し、この状態が後述のように続いた場合、端点を宣言する。バッファのローリングでは、後続するラインがバッファの横方向または縦方向のレンジをそれ以上超えないように、その内容が再構成される。これを図９および図１０に示す。図９では、バッファＲ1の内容が、図７および図８におけるような中央部分でなく、Ｒ’1として例示したようなバッファの上部に存在している。第３列の消去が完了し、第４列に移ると、アイソレーションモジュール３５２は、第４列のトップピクセルが第０行を占有しているどうかを判定する。従って、ボトムピクセルが第９行にないので、ステップ５２６で下方ロールが開始される。このロールでは第４列のボトムピクセルを第９行まで下方へシフトすると次に上方ロールの必要が生じる可能性があるので、第４列のボトムピクセルがバッファＲ’1の下から２番目の行（すなわち第８行）まで下方シフトされるように（文書バッファ１３７に書き戻すことによって）バッファＲ’1から十分な数の行がフラッシュされる。内容の下方シフトによって新しく空いた上部の行には、文書バッファ１３７の対応する部分が充填される。言い換えれば、ローリングバッファが表すローカルウィンドウの位置は文書バッファ１３７に対し上方へ動かされ、その結果、その以前の内容は下方へシフトされる。
【００２９】
このように、図１０に示す通り、第５行〜第９行はメモリに書き戻され、Ｒ’1の内容は下方へシフトされ、メモリから新しいデータが第０行〜第４行にロードされる。尚、その新しいデータがたまたま空白であったり、また、いずれの有色ピクセルも実際はＲ’1からメモリに書き戻されないこともある。
【００３０】
バッファＲ’1の最初の３列のうちのいずれかのボトムピクセル（図７）が第９行の位置にあったとすれば、そのバッファは、下方ではなく、上方へロールされる（ステップ５２８）。上方ロールの場合、上述の動作が逆になる。つまり、バッファは、アクティブ列（そのボトムピクセルが第９行を占めていた）の最上位のピクセルが第１行まで上方にシフトされるように再構成される。いずれか一方の縦方向のロールの後、ステップ５１２の列の消去に始まる先の処理ステップが繰り返される。
【００３１】
ステップ５１８は、好ましくは、前述の通り、ＬＴＯＰおよびＬＢＯＴの交差に注目することによって、端点の可能性のある点を検出する。あるいはまた、スキャニング装置の分解能が十分に高ければ、（正当なラインに相当するには小さすぎる太さに一致する）最小距離未満にあたるＬＴＯＰとＬＢＯＴ間の距離を検出することが可能である。端点と想定される点が検出されると、それが本当に端点であって、スキャナのエラーの結果ではないことを確認するための手順が実行される。この手順は、ステップ５１４〜５２８の若干変更されたものである。最初のステップ５３２において、ＤＸによって指定された方向の次の列が識別され、その列がバッファレンジを超えている場合にはローリングバッファが再ロードされる。ステップ５３４で、最初に検出された空白ピクセルから縦方向へ延びている狭い帯のピクセル位置において、有色ピクセルの存在が調べられる。その帯の幅（列数）は、最大許容間隙、つまり、スキャナの動作に帰着し得る最大距離に一致し、一般にその距離は２又は３ピクセルである。スキャニングは、その最大間隙幅（またはその中の有色ピクセル）に達するまで、横方向の隣接ピクセルを反復的に調査することによって遂行される（ステップ５３８）。
【００３２】
有色ピクセルがこの間隙内にあると（ステップ５３６）、検出されたピクセルの上下のピクセルがステップ５４０で調査される。この点における有色ピクセルの太さ（列高さ）が検出された間隙に先行するラインの太さと矛盾しなければ、主処理ループはステップ５２０に再入する。そうでなければ、たとえラインの終わりの近くであっても、新しいピクセルはたぶんそのラインの連続を表現することなく、代わって、その間隙は単に文字または図形からラインの終わりを分離するにすぎない。この場合、モジュール１３９は、有色ピクセルの最後の列（すなわち、空白列または不満足なライン太さが検出されたその前の列）を端点として記録する。
【００３３】
同様に、有色ピクセルがいっさいその間隙内になければ（ステップ５３８）、端点の可能性のある点が本当に端点であることが確認される。ステップ５４４において、図５に示した横方向スキャニング手順に制御が移り、その点におけるラインの太さとともに文書バッファ１３７にその端点の位置が記録される。また、平均ライン太さ（すなわち、消去されたピクセルの高さ）も記録される。ステップ４２８で、ＤＸは反対方向に設定され、図６に例示されたプロセスが元のラインセグメントにおける第１列に始まり逆方向に繰り返され、それによって、そのラインセグメントを一部とするラインの処理を完了し、その両端点を識別する。
【００３４】
全部のラインセグメントが処理された後、その画像は、横のラインに対応する全部のピクセルが消去された状態で残される。図３に示したように、本発明は、ステップ３１４で縦のラインをスキャンすることにより継続する。
【００３５】
縦のラインは、図１１に示す縦方向のスキャニング手順によって検知される。しかし、このルーチンは縦のラインの場合に特に効率上の利益を提供するが、横のラインの検知にも同等に適用可能であることに留意すべきである。この手順は、上述の横のラインの修正手順のような１度にバイト処理できる効率をもたらすことはできないが、従来技術の逐次的なビットごとの調査特性は十分に改善する。このラインスキャニング手順はスレッショルド技法を採用し、この技法によれば、所定の最小値（一般に１／２０インチ。これは３００ドット／インチのスキャンで１５ピクセルに相当する）未満にあたる縦方向のピクセルの並びが縦のラインの一部を構成するには不十分であるとみなされる。本実施例は、第１のピクセルが無色であり、その第１のピクセルから少なくとも所定の最小値に等しい距離だけ縦方向に離れている第２のピクセルも無色であれば、その最小値を超えて縦方向に連続した有色ピクセルの並びは第１のピクセルと第２のピクセルの間に存在できないと認識する。従って、その手順は、下方スキャニングの場合、縦方向位置ｙにおけるピクセルが無色であるとき、ｙの下の、スレッショルド長ｔの有色ピクセルの並びはｙの上の縦方向のピクセルの並びにまったく含まれないという、基本不変式を採用する（横のラインの場合、この不変式は、横方向位置ｘにおけるピクセルが無色のとき、スキャニング方向でより先方のスレッショルド長ｔの有色ピクセルの並びはスキャニング方向でｘ以前のピクセルの並びにまったく含まれないというものになる）。
【００３６】
最初のステップ８１０において、縦方向の初期開始位置ｙが識別され、この位置に対応するピクセルに関係する値が−１に設定される。これは、解析のために、そのピクセルは存在しないということを意味し、これが上記基本不変式の初期条件の満足を保証する。ステップ８１２で、ｙから距離ｔだけ縦方向に離れたピクセルについて、まずそれがそのページの下端より下にあたるかどうかを判定するために調べられる。そうであれば、現在の列について全部の可能性のあるラインセグメントが識別され、そして、処理手順は、それが開始された場所の反対側の横方向のページ端に到達しない限り（ステップ８１６）、次の列に移動する（ステップ８１４）。到達した場合、その文書は縦のラインについて完全にスキャンされたことになり、手順は終了する。
【００３７】
一方、位置ｙ＋ｔが画像枠内にあれば、その位置のピクセルが有色か無色かを判定するために調べられる（ステップ８２０）。有色でなければ、縦の長さｔの有色セグメントはｙとｙ＋ｔの間には存在しないことになり、ｙはｙ＋ｔへ移動し（ステップ８２２）、ステップ８１２からの処理が再び開始される。他方、位置ｙ＋ｔのピクセルが有色であれば、必要な最小長さの有色ピクセルの縦方向の並びがセグメントｙ＋ｔに含まれるという可能性が存在する。プレスキャニングモジュール３５０は、ループの反復をやめた方が効率の観点から最適となるまで逐次的なピクセル調査を延期するように前述の論理を拡張した反復ループを用いて、その可能性を検査する。ステップ８２４で、位置ｙ＋ｔ／２のピクセルが調査される。それが無色であれば、ｙはｙ＋ｔ／２に移され、ステップ８１２からの処理が再び開始される。この反復プロセスは、各位置ｙ＋ｔ／２n が連続して調査されるように、ｎ回繰り返され、無色のピクセルが識別された時に値ｔ／２n がｙに加算される。好ましい実施例では、例えば１５ピクセルのスレッショルドが与えられた場合、ｎ＝２の値が望ましい。従って、ｙ＋ｔ，ｙ＋ｔ／２およびｙ＋ｔ／４のピクセルがすべて調べられ（ステップ８２０、８２４および８２８）、有色であると判明した場合、逐次的なピクセルの反復検査はｙ＋１から開始される。ステップ８３２で最初に１に設定されるローカル変数ｉは、この反復検査の進行を指示する。ｙ＋ｉに相当する位置のピクセルが無色であれば（ステップ８３４）、ｙはｙ＋ｉに移され（ステップ８３６）、処理はステップ８１２から継続される。ｙ＋ｉのピクセルが有色であれば、ｉがｔを上回る（ステップ８４０）まで、ｉは１ずつ増分される（ステップ８３８）。しかし、ｙ＋１に始まる単一方向でピクセルを反復的に評価することが必要なければ、代わりに、例えば、その位置を超えた地点から（例えばｙ＋ｔ／４から）ｙ＋１へ逆方向にスキャンしてから、ｙ＋ｔへ順方向のスキャンを再開することも可能である。
【００３８】
ｙからｔまでの全部のピクセルが有色であると判明した場合、そうして識別された連続した有色ピクセルの縦方向の並びは、可能性のある縦のラインセグメントとして適する。ステップ８４４において、そのラインセグメントの太さ（すなわち、連続した有色ピクセルの横方向の範囲）が数個の点で検査され、さらに、最大精度が望まれる場合は全部の点で検査される。ラインセグメントが十分な数の点で太さの判定基準を満たさなければ（例えば、平均値からの二乗平均の差が１／４０”、つまり２００ドット／インチで５，６ピクセルを超えた場合）、それは図形または文字の一部であるとみなされ、処理はステップ８１２へ戻る。基準を満たしていれば、そのラインを上方（ステップ８４８）および下方（ステップ８５０）へたどるライン修正手順に制御が移り、さらに、両端点や平均太さといったライン情報を記録する（ステップ８５２）。その後、縦方向スキャニングは、新しいラインセグメントが識別されるか、または、画像が完全にスキャンされるまで継続する。
【００３９】
アイソレーションモジュール３５２によって実施される適切な縦のラインの修正手順は、図１２に示されている。各々の識別された縦のラインセグメントについて、アイソレーションモジュール３５２はまず、ステップ９１０において、縦方向で連続する各ピクセルでラインの左右の境界を識別する。これらの境界によって規定されたそのラインの横方向の太さが所定の最小値を超えており、また、その超過がそのラインセグメントの所定の範囲にわたって（すなわち、数個の縦方向の連続したピクセルの並びについて）続いている場合（ステップ９１２）、その領域はたぶん縦のラインに相当せず、制御は縦方向スキャニングルーチン（これは、ライン修正を逆方向に進めさせるか、または、その方向がすでに修正されていれば、ライン情報を記録する）に移る。しかし、検知された太さが許容限界値の範囲内にあれば、境界によって規定された縦のラインセグメントは消去され（ステップ９１４）、現在の方向で次のピクセルが識別される（ステップ９１６）。このピクセルがそのページの下端に一致しない限り（その場合、制御はステップ９１８で縦方向スキャニング手順に戻る）、それは有色か無色であるかを判定するために調べられる（ステップ９２２）。そのピクセルが有色であれば、そのラインの可能性のある成分として扱われ、ステップ９１０以下に従って処理される。ピクセルが無色であれば、アイソレーションモジュール３５２は、その間隙が偽ものでないことを確かめるために後続のピクセルを評価する。特に、全部の横のラインはすでに消去されているので、偽の間隙の可能性は増大する。さらに、偽の間隙は、消去された横のラインとの交差だけでなく、スキャナのエラーによっても生じ得るので、許容すべき間隙の大きさは通常、横のラインの最大許容太さまで大きくされる。従って、ステップ９２４で、アイソレーションモジュール３５２は、そのラインセグメントの連続を表現するかもしれない有色ピクセルを現在の方向で縦にサーチする。そのようなピクセルが見つかり（ステップ９２６）、その太さが間隙前のセグメントの太さに似ている場合、解析エンジン１３９はそれがラインの連続であると仮定する。その間隙は無視され、処理はステップ９１０に始まる識別されたピクセルに進む。そうでない場合は、制御は縦方向スキャニング手順に戻る。
【００４０】
図３に戻って、全部の縦横のラインのスキャニング、消去およびテーブル化の後、テーブル化された情報はラインを再描画するために使用される。一般に、各ラインについて、記録された平均太さが、２つの端点の間にその太さのライン（すなわち有色ピクセルの連続する帯）を描くために使用される。ライン修正プロセスは、両端点を、そのラインの各終端の境界間の途中のピクセルとして識別する。このようにして、横方向の修正手順において、両端点は、ラインの終端列のＬＴＯＰとＬＢＯＴ間の途中にある。
【００４１】
それらの点が相互に整列されていなければ、それらをつなぐラインは余白調整されない。従って、適正に整列された点、すなわち縦のラインに対して同じ横の位置にあり、かつ、横のラインに対して同じ縦の位置にある点が、整列されていない点の位置の間の途中に規定される。あるいはまた、ラインセグメントの端点のではなく、ライン全体に関して両端点の位置を規定し、各ラインセグメントの中間点を求め、ライン上の中間点の平均位置を求めることによって、不整列の可能性を除去することができる。
【００４２】
以上、上述の説明はディジタル画像におけるラインを位置決めしまっすぐに修正するための高度に効率的で有利な方法を提示していることがわかるはずである。ここで用いた用語および表現は、説明に関して用いたものであり、何ら制約的なものではなく、そうした用語および表現の使用において、図示および説明した特徴のいずれの等価物またはその一部を排除する意図はなく、本発明の請求の範囲内で各種の修正が可能であることが認められる。例えば、本発明の各種モジュールは、適切なソフトウエア命令を用いる汎用コンピュータにおいても、または、ハードウエア回路においても実施できる。
【図面の簡単な説明】
【図１】本発明の一実施形態のための代表的なハードウエア環境を示す略図。
【図２】横方向の直線がラスタバッファで誤って表現されている様子、および、そのようなバッファを本実施形態が処理する方法を示す略図。
【図３】本実施形態の基本動作を示す流れ図。
【図４】図３に示されている、本実施形態の解析部分の構成要素の詳細図。
【図５】ディジタル化文書中の横のラインを検知するために本実施形態によって利用される手続きを例示する流れ図。
【図６】横のラインの配向を確定し、検知された線を再描画に備えて消去するために本実施形態によって利用される手続きを例示する流れ図。
【図７】ローリングバッファに含まれたラインの処理を示す略図。
【図８】ローリングバッファに含まれたラインの処理を示す略図。
【図９】バッファのレンジを超えたラインを収容するためにローリングバッファのシフトを示す略図。
【図１０】バッファのレンジを超えたラインを収容するためにローリングバッファのシフトを示す略図。
【図１１】ディジタル化文書中の縦のラインを検知するために本実施形態によって利用される手続きを例示する流れ図。
【図１２】縦のラインの配向を確定し、検知された線を再描画に備えて消去するために本実施形態によって利用される手続きを例示する流れ図。
【符号の説明】
１１５  ＣＰＵ
１１７  システムメモリ
１１９  キャッシュメモリ
１２１  オペレーティングシステム
１２３  画像記憶装置
１２５  スキャナ
１２７  ディスプレイ
１２９  プリンタ
１３５  アプリケーション
１３７  ソース文書バッファ
１３９  解析エンジン
【図１】
0003887843.tif 000002
【図２】
0003887843.tif 000003
【図３】
0003887843.tif 000004
【図４】
0003887843.tif 000005
【図５】
0003887843.tif 000006
【図６】
0003887843.tif 000007
【図７】
0003887843.tif 000008
【図８】
0003887843.tif 000009
【図９】
0003887843.tif 000010
【図１０】
0003887843.tif 000011
【図１１】
0003887843.tif 000012
【図１２】
0003887843.tif 000013