(57)【特許請求の範囲】
【請求項１】
表示された文書画像の文字に沿って手書き入力された線を修正して表示する文書画像処理装置であって、
前記手書き入力された線の位置情報より、前記手書き入力された線の方向が、異なる２方向のいづれの方向であるかを判別する方向判別手段と、
前記手書き入力された線の前記位置情報に基づいて、前記文書画像の処理対象領域を指定する処理領域指定手段と、
前記方向判別手段で判別された方向に基づき、前記処理領域指定手段で指定された前記処理対象領域に含まれる前記文書画像の文字から行領域を抽出する行領域抽出手段と、
該行領域判別手段で抽出された前記行領域から一定の間隔となるように、前記手書き入力された線を新たな線に修正する修正手段と、を有することを特徴とする文書画像処理装置。
【請求項２】
前記行領域抽出手段が抽出した前記行領域が複数の場合、前記手書き入力された線が、抽出されたいづれの前記行領域に属するか判別を行う行判別手段を備え、
前記修正手段は、前記行判別手段で判別された前記行領域から一定の間隔となるように、前記手書き入力された線を前記新たな線に修正することを特徴とする請求項１記載の文書画像処理装置。
【請求項３】
前記新たな線は直線であることを特徴とする請求項１記載の文書画像処理装置。
【請求項４】
前記手書き入力された線が波線であることを所定の手順に従って認識する波線認識手段を備え、
前記新たな線は波線であることを特徴とする請求項１記載の文書画像処理装置。
【請求項５】
前記手書き入力された線が破線であることを所定の手順に従って認識する破線認識手段を備え、
前記新たな線は破線であることを特徴とする請求項１記載の文書画像処理装置。
【請求項６】
前記行領域抽出手段により抽出された前記行領域の文字領域に基づいて前記修正手段により修正された前記新たな線を修正、または一部削除を行う手段を有することを特徴とする請求項１記載の文書画像処理装置。
【請求項７】
前記行領域抽出手段により抽出された前記行領域と同一行に、前記修正手段によって前記新たな線以前に修正された修正済み線がある場合に、前記新たな線および前記修正済み線のうち、前記行から近い方の線を、遠い方の線と連続性を持つように位置修正する手段と、を有することを特徴とする請求項１に記載の文書画像処理装置。
【請求項８】
表示された文書画像の文字に沿って手書き入力された線が、互いに不連続な二つの線を含む場合に、前記二つの線を修正して表示する文書画像処理装置であって、
前記二つの線の位置情報より、異なる２方向のいづれの方向であるかを前記二つの線ごとに判別する方向判別手段と、
前記二つの線の前記位置情報に基づいて、前記二つの線ごとに、前記文書画像の処理対象領域を指定する処理領域指定手段と、
前記処理領域指定手段で指定された前記処理対象領域ごとに、前記方向判別手段で判別された方向に基づき、前記文書画像の文字から行領域を抽出する行領域抽出手段と、
該行領域抽出手段で抽出されたそれぞれの前記行領域から一定の間隔となるように、前記二つの線を二つの新たな線に修正し、前記二つの線が同一行に属する場合に、前記二つの新たな線のうち、前記行から近い方の線を、遠い方の線と連続性を持つように位置修正する修正手段と、を有することを特徴とする文書画像処理装置。
【請求項９】
表示された文書画像の文字に沿って手書き入力された線を修正して表示する文書画像処理方法であって、
前記手書き入力された線の位置情報より、前記手書き入力された線の方向が、異なる２方向のいづれの方向であるかを判別するステップと、
前記手書き入力された線の前記位置情報に基づいて、前記文書画像の処理対象領域を指定するステップと、
前記判別された方向に基づき、前記指定された処理対象領域に含まれる前記文書画像の文字から行領域を抽出するステップと、
前記抽出された行領域から一定の間隔となるように、前記手書き入力された線を新たな線に修正するステップと、を備えることを特徴とする文書画像処理方法。
【請求項１０】
表示された文書画像の文字に沿って入力された自由曲線を修正して表示する文書画像処理装置であって、
前記入力された自由曲線の位置情報より、前記入力された自由曲線の方向が、異なる２方向のいづれの方向であるかを判別する方向判別手段と、
前記入力された自由曲線の前記位置情報に基づいて、前記文書画像の処理対象領域を指定する処理領域指定手段と、
前記方向判別手段で判別された方向に基づき、前記処理領域指定手段で指定された前記処理対象領域に含まれる前記文書画像の文字から行領域を抽出する行領域抽出手段と、
該行領域判別手段で抽出された前記行領域から一定の間隔となるように、前記入力された自由曲線を新たな線に修正する修正手段と、を有することを特徴とする文書画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文字を含む画像に対して手書きで自由に入力された線を修正して表示する文書画像処理装置及び文書画像表示方法に関するものである。
【０００２】
【従来の技術】
取り込んだ文書原稿にアンダーラインを付加する編集機能を有する装置として特開昭６１−２７３０７０号公報記載の画像処理装置がある。この画像処理装置は、文字列に沿ってアンダーラインを引く時に、アンダーラインを引きたい文字をマウスなどで領域指定し、次に「アンダーラインを引く」というあらかじめ用意されている編集コマンドを入力して、指定した領域の文字に対してアンダーラインを引くようにしたものである。
【０００３】
また、ドットイメージの文字画像にアンダーラインを付加する装置として特開平８−３０２５０号公報記載の文書処理装置がある。この文書処理装置は、文字の大きさや種類がバラバラの文字列に沿ってアンダーラインを引く時に、各文字の矩形とアンダーラインを引くべき文字列全体を覆う矩形とを用いて、この文字列全体を覆う矩形から所望の位置にアンダーラインを引くものである。
【０００４】
【発明が解決しようとする課題】
しかし、特開昭６１−２７３０７０号公報記載の技術では、アンダーラインを引きたい文字領域を逐一指定し、編集コマンドを入力しなければならないため、操作性が悪いという問題がある。
【０００５】
また、特開平８−３０２５０号公報記載の技術では、特定の文字にアンダーラインを引いたり、複数行の文字列を含む画像に対して特定行の文字列にアンダーラインを引くという処理ができないという問題がある。
【０００６】
一方、文書画像の文字に沿って線を引く場合、実際に手書き入力により線を引くのは、紙に印刷された文字に線を引くのと同様な操作であり、マンマシンインターフェースに優れている。
【０００７】
ところが、この手書き入力では、手書き結果がそのまま表示されてしまうため、誤って文字上に線を引いてしまった場合には、文字と入力された線とが重なって表示され、文字が読みにくくなるといった問題がある。
【０００８】
また、手書き入力では、手書き入力結果がそのまま表示されてしまうため、直線を引いたつもりでも、真っすぐな線で表示されず、見栄えの悪い結果で表示されてしまうという問題がある。さらに、手書き入力で各線種を入力する場合に、自動的に各線種を認識することができないという問題もある。このような問題を解決するためには、ものさしなどの補助道具が必要になり、結果的に操作性が悪くなるという問題がある。
【０００９】
本発明の目的は、上記問題点に鑑み、文字を含む文書画像に対して、線を引きたい文字に直接手書きで線を入力し、この入力された線を修正して表示する文書画像処理装置及び文書画像処理方法を提供することにある。
【００１０】
【課題を解決するための手段】
請求項１記載の文書画像処理装置は、表示された文書画像の文字に沿って手書き入力された線を修正して表示する文書画像処理装置であって、前記手書き入力された線の位置情報より、前記手書き入力された線の方向が、異なる２方向のいづれの方向であるかを判別する方向判別手段と、前記手書き入力された線の前記位置情報に基づいて、前記文書画像の処理対象領域を指定する処理領域指定手段と、前記方向判別手段で判別された方向に基づき、前記処理領域指定手段で指定された前記処理対象領域に含まれる前記文書画像の文字から行領域を抽出する行領域抽出手段と、該行領域判別手段で抽出された前記行領域から一定の間隔となるように、前記手書き入力された線を新たな線に修正する修正手段と、を有することを特徴とする。
【００１２】
請求項２記載の文書画像処理装置は、請求項１記載の文書画像処理装置において、前記行領域抽出手段が抽出した前記行領域が複数の場合、前記手書き入力された線が、抽出されたいづれの前記行領域に属するか判別を行う行判別手段を備え、前記修正手段は、前記行判別手段で判別された前記行領域から一定の間隔となるように、前記手書き入力された線を前記新たな線に修正することを特徴とする。
【００１３】
請求項３記載の文書画像処理装置は、請求項１記載の文書画像処理装置において、前記新たな線は直線であることを特徴とする。
【００１４】
請求項４記載の文書画像処理装置は、請求項１記載の文書画像処理装置において、前記手書き入力された線が波線であることを所定の手順に従って認識する波線認識手段を備え、前記新たな線は波線であることを特徴とする。
【００１５】
請求項５記載の文書画像処理装置は、請求項１記載の文書画像処理装置において、前記手書き入力された線が破線であることを所定の手順に従って認識する破線認識手段を備え、前記新たな線は破線であることを特徴とする。
【００１６】
請求項６記載の文書画像処理装置は、請求項１記載の文書画像処理装置において、前記行領域抽出手段により抽出された前記行領域の文字領域に基づいて前記修正手段により修正された新たな線を修正、または一部削除を行う手段を有することを特徴とする。
【００１７】
請求項７記載の文書画像処理装置は、請求項１記載の文書画像処理装置において、前記行領域抽出手段により抽出された前記行領域と同一行に、前記修正手段によって前記新たな線以前に修正された修正済み線がある場合に、前記新たな線および前記修正済み線のうち、前記行から近い方の線を、遠い方の線と連続性を持つように位置修正する手段と、を有することを特徴とする。
【００１８】
請求項８記載の文書画像処理装置は、表示された文書画像の文字に沿って手書き入力された線が、互いに不連続な二つの線を含む場合に、前記二つの線を修正して表示する文書画像処理装置であって、前記二つの線の位置情報より、異なる２方向のいづれの方向であるかを前記二つの線ごとに判別する方向判別手段と、前記二つの線の前記位置情報に基づいて、前記二つの線ごとに、前記文書画像の処理対象領域を指定する処理領域指定手段と、前記処理領域指定手段で指定された前記処理対象領域ごとに、前記方向判別手段で判別された方向に基づき、前記文書画像の文字から行領域を抽出する行領域抽出手段と、該行領域抽出手段で抽出されたそれぞれの前記行領域から一定の間隔となるように、前記二つの線を二つの新たな線に修正し、前記二つの線が同一行に属する場合に、前記二つの新たな線のうち、前記行から近い方の線を、遠い方の線と連続性を持つように位置修正する修正手段と、を有することを特徴とする。
【００１９】
請求項９記載の文書画像処理方法は、前記手書き入力された線の位置情報より、前記手書き入力された線の方向が、異なる２方向のいづれの方向であるかを判別するステップと、前記手書き入力された線の前記位置情報に基づいて、前記文書画像の処理対象領域を指定するステップと、前記判別された方向に基づき、前記指定された処理対象領域に含まれる前記文書画像の文字から行領域を抽出するステップと、前記抽出された行領域から一定の間隔となるように、前記手書き入力された線を新たな線に修正するステップと、を備えることを特徴とする。
請求項１０記載の文書画像処理方法は、表示された文書画像の文字に沿って入力された自由曲線を修正して表示する文書画像処理装置であって、前記入力された自由曲線の位置情報より、前記入力された自由曲線の方向が、異なる２方向のいづれの方向であるかを判別する方向判別手段と、前記入力された自由曲線の前記位置情報に基づいて、前記文書画像の処理対象領域を指定する処理領域指定手段と、前記方向判別手段で判別された方向に基づき、前記処理領域指定手段で指定された前記処理対象領域に含まれる前記文書画像の文字から行領域を抽出する行領域抽出手段と、該行領域判別手段で抽出された前記行領域から一定の間隔となるように、前記入力された自由曲線を新たな線に修正する修正手段と、を有することを特徴とする。
【００２０】
【発明の実施の形態】
〔実施の形態１〕
図１は本発明の文書画像処理装置の実施の形態１の構成を示すブロック図である。スキャナ１によって文字を含む文書画像としての画像データを取得し、表示手段２で画像データをビットマップに展開して表示する。表示された画像を見ながら、入力手段としてのタブレット３で手書き入力の線（以下、自由曲線という）を所望の位置の文字に沿って入力する。自由曲線には、直線や傾いた直線、折れ線をも含む。行抽出手段４は、送られて来た画像データと自由曲線データを利用して行領域情報を抽出する。曲線修正手段５は、行領域情報と自由曲線データを利用して自由曲線データを修正する。曲線修正処理の後、表示手段２に修正データを画像データに重ねて表示する。
【００２１】
スキャナ１は、ＯＣＲ、複写機、電子カメラなどの画像読み取り装置であるが、あらかじめ原稿を読みとった画像が格納されたＣＤ−ＲＯＭ、ハードディスク、フロッピーディスク、光磁気ディスクなどの記録媒体読み取り装置や半導体メモリであっても良い。また、スキャナ１のかわりに、通信回線により受信した画像であってもよい。
【００２２】
表示手段２は、表示制御部と出力部の両方を備えている。出力部は例えばＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）やＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などの画像表示装置でよい。表示手段２は、まずスキャナ１から送られてきた画像データを表示する。次にタブレット３から送られてきた自由曲線データを画像データに重ねて表示する。曲線修正処理の後、自由曲線データの表示を消して、曲線修正手段５から送られてきた修正データを画像データに重ねて表示する。
【００２３】
タブレット３は、例えばマウスやカーソル、ジョイスティックなどのポインティングデバイス装置であっても良い。タブレット３により入力した自由曲線データは、表示手段２と行抽出手段４と曲線修正手段５へ送られる。
【００２４】
行抽出手段４と曲率修正手段５は、本装置全体を制御すると共に本発明の各処理を実行するＣＰＵ等の処理装置と必要なレジスタやメモリ等の記憶手段からなる。
【００２５】
次に、図２を用いて、本発明の文書画像処理装置の全体の流れを説明する。ステップＳ１では、スキャナ１から画像データを取得する。以下の説明では、画像データの水平方向をｘ方向、垂直方向をｙ方向、左上を原点とする。ステップＳ２では、表示手段２により表示された画像データを見ながら、タブレット３から自由曲線データを入力する。入力された自由曲線データは、（ｘ［ｉ］，ｙ［ｉ］）（ｉ＝１〜ｎ）のようにｎ個の座標の集合で表され、自由曲線の入力成分が小さい順に格納されるとする。ステップＳ３では、画像データに対して本発明の処理を実行する処理領域を指定し、以後の処理はこの処理領域内で行うことにする。このように部分的に処理領域を指定する方が、全画像領域に対して処理するよりも処理速度が向上するので望ましい。
【００２６】
ステップＳ４では、以後の処理を行（ｘ方向）か列（ｙ方向）のどちらに対して行うかを決めるために、自由曲線データが水平方向（ｘ方向）に対して入力されたかを判別する。ステップＳ５では、入力された自由曲線データが水平方向であると判断されると、ステップＳ６以降の処理となり、水平方向でないと判断されるとステップＳ５となり、ステップＳ６以降の処理で行と列を入れ替える。
【００２７】
ステップＳ６では、処理領域において、文字の領域情報を検出する。ステップＳ７では、文字領域情報と入力データの方向とにより、行の領域情報を抽出する。ステップＳ８では、行の領域情報より、入力データがどの行に対して引かれたかを判別する。ステップＳ９では、判別された行に沿って線が引かれるように、入力データを修正する。ステップＳ１０では、修正されたデータを画像データに重ねて表示手段２に表示する。以上の流れでは、図１のスキャナ１がステップＳ１、表示手段２がステップＳ１０、タブレット３がステップＳ２、行抽出手段４がステップＳ３〜ステップＳ８、曲線修正手段５がステップＳ９の処理をそれぞれ行う。
【００２８】
次に、図１の行抽出手段４について詳しく説明する。図３は行抽出手段４を構成する詳細ブロック図である。
処理領域指定手段６は、取得した画像データに対して、自由曲線から離れた領域が文字領域検出や行抽出に影響されないように、文字領域検出や行領域抽出を行う処理領域を自由曲線データの位置から一定範囲に指定する。
【００２９】
図４（ａ）は、スキャナ１から取得した画像データが表示されている様子を示す。ただしｗｉｄｔｈ，ｈｅｉｇｈｔはそれぞれ画像の幅と高さである。図４（ｂ）は、表示された画像に対して自由曲線データが入力され、処理領域（図の点線で囲まれた部分）が指定されている様子の一例である。入力された自由曲線データ（ｘ［ｉ］，ｙ［ｉ］）（ｉ＝１〜ｎ）の始点（ｘ［１］，ｙ［１］）と終点（ｘ［ｎ］，ｙ［ｎ］）より、処理領域を矩形（（ｘ［１］−ｗ，ｙ［１］−ｈ），（ｘ［ｎ］＋ｗ’，ｙ［ｎ］＋ｈ’））で指定する。ただし（ｘ［１］−ｗ，ｙ［１］−ｈ）は矩形の左上の座標、（ｘ［ｎ］＋ｗ’，ｙ［ｎ］＋ｈ’）は矩形の右下の座標を意味する。また、ｗ、ｈ、ｗ’、ｈ’は任意の定数であり、行間隔や文字間隔の定数倍の値を持つようにすると、取得した画像データに応じた処理領域を指定することもできる。なお、本実施の形態では、処理領域を自由曲線データの位置情報に基づいて自動設定にしたが、必要に応じてタブレット３等で指定できるようにしてもよいが、その場合、操作性が犠牲になる。
【００３０】
方向判別手段７は、自由曲線データの入力方向がｘ方向かｙ方向のどちらに入力されたかを判別する。この方向判別処理について図５のフローチャートを用いて説明する。
【００３１】
ステップＳ２１で、入力された自由曲線データ（ｘ［ｉ］，ｙ［ｉ］）（ｉ＝１〜ｎ）の始点（ｘ［１］，ｙ［１］）と終点（ｘ［ｎ］，ｙ［ｎ］）のｘ方向の差の絶対値｜ｘ［１］−ｘ［ｎ］｜とｙ方向の差の絶対値｜ｙ［１］−ｙ［ｎ］｜を比較し、前者が大きい場合にはステップＳ２２に進み、ｘ方向に自由曲線が引かれたと判別する。後者が大きい場合にはステップＳ２３に進み、ｙ方向に自由曲線が引かれたと判別する。
【００３２】
図６に、上記処理の様子を示す。自由曲線の端点（２３，３４）と（３１，３５）のｘ方向の差の絶対値は８（＝｜２３−３１｜）、ｙ方向の差の絶対値は１（＝｜３４−３５｜）であり、前者の方が大きい。よって、文書画像に対して入力された自由曲線はｘ方向に引かれたと判別される。
【００３３】
文字領域検出手段８は、処理領域内の画像データに対して、自由曲線データの方向に基づき文字領域の検出を行う。文字領域検出の一例として、ｘ，ｙ方向への投影法を用いる。これは、まず画像のｙ方向（あるいはｘ方向）への投影図をとり、処理領域を行候補領域（あるいは列候補領域）とそうでない部分とに分け、次にそれぞれの行候補領域（あるいは列候補領域）をｘ方向（ｙ方向）への投影図をとることにより、文字候補領域とそうでない部分とに分ける、さらに、それぞれの文字候補領域をｙ方向（ｘ方向）への投影図を取ると、文字領域が検出される。
【００３４】
例えば、図７（ａ）のように自由曲線がｘ方向に入力された場合に、入力される前の画像データをまず処理領域のｙ方向への投影図をとり（図７（ｂ））、処理領域を行候補領域とそうでない部分とに分けることができる（図７（ｃ））。次に、それぞれの行候補領域に対してｘ方向の投影図をとれば（図７（ｄ））、文字候補領域とそうでない部分とに分けることができる。図７（ｄ）中の「川」や「い」では、１つの文字が複数の文字候補領域に分けられているが、それぞれの文字候補領域のｘ方向の距離がある閾値Ｖ以下であれば１つの文字候補領域に統合するという方法を用いて、このような文字に対しても正しく文字候補領域の検出ができる（図７（ｅ））。ただし、Ｖは任意の定数であり、文字間隔の定数倍の値を持つようにすると、取得した画像データに応じた処理を行うこともできる。さらに、それぞれの文字候補領域に対してｙ方向への投影図を取ると、文字領域が検出される（図７（ｆ））。
【００３５】
行領域抽出手段９は、処理領域内の画像データに対して、自由曲線データの方向に基づき行領域の抽出を行う。行領域抽出の一例として、文字領域情報のｘ，ｙ方向への投影図を用いる方法がある。これは、文字領域情報を入力データの方向と直行する方向に投影をとることにより、行領域（あるいは列領域）を抽出するものである。
【００３６】
例えば、図８（ａ）のように文字領域情報が検出されているとする。自由曲線データはｘ方向に引かれていることが判別されているため、ｙ方向への投影図をとると（図８（ｂ））、行領域を抽出することができる（図８（ｃ））。また、文字領域情報を使わずに行領域を抽出する方法として、例えば図７（ｄ）で、ｘ方向への投影図から、その両端部分を切り取れば、行領域が抽出できる。
【００３７】
抽出された行領域は、矩形（（ｓ［ｊ］，ｔ［ｊ］），（ｕ［ｊ］，ｖ［ｊ］））（ｊ＝１〜ｍ）で表されるとする。ただしｍは抽出された行領域の個数、（ｓ［ｊ］，ｔ［ｊ］）は矩形の左上の座標、（ｕ［ｊ］，ｖ［ｊ］）は矩形の右下の座標を意味する。
【００３８】
行判別手段１０は、自由曲線データがどの行に対して引かれたかを判別する。行判別には、行領域（（ｓ［ｊ］，ｔ［ｊ］），（ｕ［ｊ］，ｖ［ｊ］））（ｊ＝１〜ｍ）と自由曲線データ（ｘ［ｉ］，ｙ［ｉ］）（ｉ＝１〜ｎ）の位置情報を用いる。これは、自由曲線データがｘ方向に入力された場合には、自由曲線データのｙ座標の平均値ｙ（＝（ｙ［１］＋ｙ［２］＋．．．＋ｙ［ｎ］）／ｎ）と行領域のｙ方向の平均値Ｙ［ｊ］（＝（ｔ［ｊ］＋ｖ［ｊ］）／２）（ｊ＝１〜ｍ）を比較し、判別行を決定するのである。
【００３９】
図９のフローチャートを用いて、自由曲線データがｘ方向に入力された場合の行判別処理について説明する。ステップＳ３１で、行領域（（ｓ［ｊ］，ｔ［ｊ］），（ｕ［ｊ］，ｖ［ｊ］））（ｊ＝１〜ｍ）と自由曲線データ（ｘ［ｉ］，ｙ［ｉ］）（ｉ＝１〜ｎ）の情報を呼び出す。ステップＳ３２で、行領域が抽出されているかどうかを調べる。行領域が抽出されていない場合には、自由曲線の付近に文字が存在しないということが考えられるため、すべての処理を終了し、入力データに対して曲線の修正は行われない。
【００４０】
行領域が抽出されていれば、ステップＳ３３で、自由曲線データのｙ座標の平均値ｙを求め、行領域のｙ方向の平均値Ｙ［ｊ］の最大値を格納しておく変数ｍａｘを０としておく。ステップＳ３４で、まず１つ目の行領域（ｊ＝１）を指定する。ステップＳ３５で、Ｙ［ｊ］を求める。ステップＳ３６で、対象の行領域が入力された自由曲線よりｙ軸負方向にあるかを調べるために、ｙ＞Ｙ［ｊ］か調べ、ＹｅｓならステップＳ３７に進み、ＮｏであればステップＳ３９で次の行領域を指定する。
【００４１】
ステップＳ３７で、ステップＳ３６を満たす行領域のうちｙ軸正方向にある方がより自由曲線に近いと考えられるため、Ｙ［ｊ］＞ｍａｘか調べ、ＹｅｓならステップＳ３８に進み、ＮｏであればステップＳ３９で次の行領域を指定する。ステップＳ３８で、ｍａｘにＹ［ｊ］を格納し、判別行ｌｉｎｅ＝ｊとしておき、ステップＳ３９で、次の行領域を指定する。
【００４２】
ステップＳ４０で、すべての行領域に対して処理がなされたか調べる。なされていなければ、ステップＳ３５に戻る。すべての行領域に対して処理がなされると行判別処理は終了し、判別行ｌｉｎｅが自由曲線が引かれた行として得られる。
【００４３】
判別行は、矩形（（ｓ，ｔ），（ｕ，ｖ））で表されるとする。ただし（ｓ，ｔ）は矩形の左上の座標、（ｕ，ｖ）は矩形の右下の座標を意味する。自由曲線データがｙ方向に入力された場合には、図９のフローチャートでｙをｘ、ＹをＸと置き換えればよい。
【００４４】
上記の自由曲線データがｘ方向に入力された場合の具体的な処理の様子を図１０を用いて説明する。図１０（ａ）は、表示された画像データに対して自由曲線データが入力された様子を示す。図１０（ｂ）は、処理領域指定手段６による処理領域内で、文字領域検出手段８により文字領域検出を行った結果を示す。図１０（ｃ）は、文字領域情報と方向判別手段７による自由曲線データの方向から、行領域抽出手段９により行領域の抽出を行った結果を示す。図１０（ｄ）は、行判別手段１０により、入力データがどの行に対して引かれたものか判別した結果を示す。これらの結果は、それぞれ画面上に表示されなくてもよいが、処理が適切であることが分かるのが好ましいので、表示される方がよい。
【００４５】
次に、図１の曲線修正手段５について詳しく説明する。曲線修正手段５は、行抽出手段４で得られた判別行に対して自由曲線データをどのように修正してどの位置に引くかを決定する。この曲線修正処理には、判別行領域（（ｓ，ｔ），（ｕ，ｖ））と自由曲線データ（ｘ［ｉ］，ｙ［ｉ］）（ｉ＝１〜ｎ）の位置情報を用いる。通常は自由曲線を直線に修正するものとする。ここでは、自由曲線データがｘ方向に入力された場合、判別行領域からｙ方向にａだけ離れた位置に直線が引かれるよう自由曲線データを修正する場合について説明する。ただし、ａは任意の定数であり、行間隔や文字間隔の定数倍の値を持つようにすると、取得した画像データに応じた直線の位置を指定することもできる。
【００４６】
図１１のフローチャートを用いて、自由曲線データがｘ方向に入力された場合の曲線修正処理について説明する。
【００４７】
ステップＳ４１で、判別行領域（（ｓ，ｔ），（ｕ，ｖ））と自由曲線データ（ｘ［ｉ］，ｙ［ｉ］）（ｉ＝１〜ｎ）の情報を呼び出す。ステップＳ４２で、自由曲線データの１つ目の点（ｉ＝１）を指定する。ステップＳ４３で、自由曲線データを、ｘ座標はそのままに、ｙ座標は判別行領域の右下のｙ座標ｖにａを足して、修正データ（ｘ’［ｉ］，ｙ’［ｉ］）とする。ステップＳ４４で、自由曲線データの次の点を指定する。ステップＳ４５で、自由曲線データのすべての点に対して処理がなされたか調べる。なされていなければ、ステップＳ４３に戻る。すべての点に対して処理がなされると曲線修正処理は終了し、修正データ（ｘ’［ｉ］，ｙ’［ｉ］）（ｉ＝１〜ｎ）が得られる。なお、修正データは、２点（ｘ’［１］，ｙ’［１］），（ｘ’［ｎ］，ｙ’［ｎ］）を結ぶ直線としてもよい。上記の自由曲線データがｘ方向に入力された場合の具体的な曲線修正処理の様子は、図１２に示される。
【００４８】
なお、自由曲線データがｙ方向に入力された場合には、図１１のフローチャートでステップＳ４３の修正式を、ｘ’［ｉ］＝ｘ［ｉ］＋ａ，ｙ’［ｉ］＝ｙ［ｉ］と書き換えると、判別行領域からｘ方向にａだけ離れた位置に直線が引かれるよう、自由曲線データが修正されることになる。
【００４９】
また、得られた修正データの端点の値については、文字領域情報を利用して見やすくするため修正してもよい。例えば図１３に示すように、「木」と「川」は文字の途中から線が引かれている。このような場合には、自由曲線データが判別行の文字領域の判別方向にある閾値Ｔ以上引かれているかどうかを判断して修正する。ただし、Ｔは任意の定数であり、文字間隔の定数倍の値を持つようにすると、取得した画像データに応じた処理を行うこともできる。ここで閾値Ｔ以上引かれている場合には、その文字に対して線が引かれたと判断して、その文字領域の端から直線を引いたり（図１３（ａ））、その文字領域と隣の文字領域との間から直線を引く（図１３（ｂ））など、文字領域の情報を利用して自由曲線データを修正することもできる。
【００５０】
曲線修正手段５は、行判別手段により判別された行領域（あるいは列領域）のｙ方向（あるいはｘ方向）の幅が他の行領域（あるいは列領域）と比べてある閾値Ｕ以下である場合、ルビ行であると認識する手段を有する。ただしＵは任意の定数であり、文字間隔や行間隔の定数倍の値を持つようにすると、取得した画像データに応じた処理を行うこともできる。
【００５１】
図１４は、ルビ付き文字を含んだ文字列に対してルビ行に線がひかれた場合の曲線修正処理の様子を示す。次の１〜３に示すような処理を選択して自由曲線を修正できる。
１．ルビ行に沿って線を引く。
２．ルビ行を無視してもう一度行判別処理を行い、判別行を決定する。この判別行はルビがふられている本文の行となる。そして新たな判別行に沿って線を引く。
３．２と同様にもう一度行判別処理を行い、判別行を決定する。そしてルビのある文字に対してはルビ行に沿って、ルビのない文字に対しては新たな判別行に沿って線を引く。
【００５２】
上記説明では、手書きの線を判別行に沿った直線に修正する場合について説明してきたが、他の線種を入力して判別行に沿って修正する場合について以下に説明する。
【００５３】
まず、曲線修正手段５が、ｘ方向に入力された自由曲線データが波線かどうかを自動的に認識する波線認識手段を有し、その場合の処理について、図１５のフローチャートを用いて説明する。ステップＳ５１で、自由曲線データ（ｘ［ｉ］，ｙ［ｉ］）（ｉ＝１〜ｎ）の情報を呼び出す。ステップＳ５２で、最小二乗法などを用いて自由曲線に近似する直線を求め、これをｆ（ｘ）とする。ステップＳ５３で、自由曲線と近似直線が交わる回数を格納しておく変数ｃｏｕｎｔを０としておく。自由曲線データの２つ目の点（ｉ＝２）を指定する。ステップＳ５４で、自由曲線データのｉ番目の点とｉ−１番目の点を結ぶ直線が近似曲線と交差するかどうか調べ、Ｙｅｓなら次の処理ステップＳ５５に進み、ＮｏであればステップＳ５６で次の自由曲線データの点を指定する。
【００５４】
ステップＳ５５で、自由曲線と近似直線が交わる回数ｃｏｕｎｔを数え、ステップＳ５６で、次の自由曲線データの点を指定する。ステップＳ５７で、自由曲線データのすべての点に対して処理がなされたか調べる。なされていなければ、ステップＳ５４に戻る。
【００５５】
ステップＳ５８で、自由曲線と近似直線が交わる回数ｃｏｕｎｔがある閾値Ｎより大きいかどうか調べ、Ｙｅｓなら次の処理ステップＳ６０で波線であると判断され、ＮｏであればステップＳ５９で波線でないと判断され、波線認識を終了する。ただし、Ｎは任意の定数であり、Ｎが大き過ぎると波線と認識しにくく、小さ過ぎると波線と認識しやすくなる。なお、自由曲線データがｙ方向に入力された場合には、図１５のフローチャートでステップＳ５２の近似直線をｆ（ｙ）＝ａｙ＋ｂ、ステップＳ５４の判別式を（ｘ［ｉ］−ｆ（ｙ［ｉ］））×（ｘ［ｉ−１］−ｆ（ｙ［ｉ−１］））＜０と置き換えて同様の処理をする。
【００５６】
波線認識により、入力された自由曲線データが波線であると認識された場合には、例えば次の１〜３に示すような処理を選択して自由曲線を修正できる。
１．規則的な波線に修正する。規則的な波線とは、例えばｓｉｎ曲線で波長や振幅が一定であるような波線のことをいう。
２．波線の揺れを一定範囲で不規則に揺れている波線に修正する。修正方法の一例として、自由曲線データがｘ方向に入力された時、自由曲線を次式
ｘ’［ｉ］＝ｘ［ｉ］
ｙ’［ｉ］＝ｙ［ｉ］＋Ｔ［ｉ］×Ｒ
ただし、Ｔ［ｉ］はｙ［ｉ］の定数倍、Ｒはランダム関数
のように修正する。
【００５７】
３．自由曲線の揺れを使って、波線の揺れを一定範囲で不規則に揺れている波線に修正する。修正方法の一例として、自由曲線データがｘ方向に入力された時、自由曲線のｙ方向の最大値、最小値をそれぞれｍａｘ、ｍｉｎとして、次式
ｘ’［ｉ］＝ｘ［ｉ］
ｙ’［ｉ］＝ｙ［ｉ］＋Ｔ［ｉ］×Ｒ（ｉ）
ただし、Ｔ［ｉ］はｙ［ｉ］の定数倍、Ｒ（ｉ）は自由曲線の揺れから成るランダム関数
Ｒ（ｉ）＝（ｆ（ｘ［ｉ］）−ｍｅａｎ）／（ｍａｘ−ｍｉｎ），
ｍｅａｎ＝（ｍａｘ−ｍｉｎ）／２）
のように修正する。
【００５８】
次に、他の線種として破線により入力する場合について以下に説明する。曲線修正手段５が、ｘ方向に入力された自由曲線データが破線かどうかを自動的に認識する破線認識手段を有し、その場合の処理を図１６のフローチャートを用いて説明する。
【００５９】
ステップＳ６１で、自由曲線データ（ｘ［ｉ］，ｙ［ｉ］）（ｉ＝１〜ｎ）の情報を呼び出す。ステップＳ６２で、自由曲線の入力方向の長さ（ｘ［ｎ］−ｘ［１］）がある閾値Ｑより小さいかどうか判断し、Ｙｅｓなら次の処理ステップＳ６３に進む。ＮｏであればステップＳ６４で破線でないと判断され破線認識を終了する。ただし、Ｑは任意の定数であり、文字間隔の定数倍の値を持つようにすると、取得した画像データに応じた破線認識を行うこともできる。
【００６０】
ステップＳ６３で、一定時間以内に次の自由曲線が入力されているか判断し、ＹｅｓならステップＳ６５で破線であると判断され、ＮｏであればステップＳ５４で破線でないと判断され、破線認識を終了する。なお、本処理の場合は自由曲線データそれぞれに入力時間が対応されて記憶されている。なお、自由曲線データがｙ方向に入力された場合には、図１６のフローチャートでステップＳ６２の式を（ｙ［ｎ］−ｙ［１］）＜Ｑと置き換えて同様の処理をする。
【００６１】
破線認識により、入力された自由曲線データが破線であると認識された場合には、破線がｐ本の線分で構成されるとすると、それらは（ｘ［ｋ］［ｉ］，ｙ［ｋ］［ｉ］）（ｋ＝１〜ｐ）（ｉ＝１〜ｎ［ｐ］）（ただしｎ［ｋ］は破線の各線分ｋを構成する座標の個数）のように表され、例えば次の１〜３に示すような処理を選択して自由曲線を修正できる。
１．規則的な破線に修正する。規則的な破線とは、例えば各線分の長さや、各線分の間隔が一定であり、各線分が一直線状に並ぶような破線のことをいう。
２．破線の各線分の長さや各線分の間隔を一定範囲で不規則なものとする破線に修正する。修正方法の一例として、自由曲線データがｘ方向に入力された時、自由曲線を次式
ｘ’［ｋ］［ｉ］＝ｘ［ｋ］［ｉ］
（ただし、ｘ［ｋ］［ｉ］−ｘ［ｋ］［１］≦Ｐのとき）
ｘ’［ｋ］［ｉ］＝ｘ［ｋ］［１］＋Ｐ
（ただし、ｘ［ｋ］［ｉ］−ｘ［ｋ］［１］＞Ｐのとき）
ｙ’［ｋ］［ｉ］＝ｖ［ｋ］＋ａ
（ただし、ｖ［ｋ］は線分ｋの判別行のｙ方向の最大値）
のように修正する。
ただしＰは任意の定数であり、文字間隔の定数倍の値を持つようにすると、取得した画像データに応じた破線認識を行うこともできる。
各線分の間隔が大き過ぎる場合には、修正データの配列を増やして、新たに線分を付け加えることもできる。
【００６２】
３．入力破線の各線分の長さや各線分の間隔を用いて、破線の不規則性を生成する。これは破線の各線分に対して行抽出手段４と曲線修正手段５を行うことでなされる。つまり各線分について、修正データの端点の入力方向の値は、入力データの端点の入力方向の値と同じとなり、入力データを用いた不規則な破線が生成される。例えば、自由曲線データがｘ方向に入力された時、自由曲線を次式
ｘ’［ｋ］［ｉ］＝ｘ［ｋ］［ｉ］
ｙ’［ｋ］［ｉ］＝ｖ［ｋ］＋ａ
のように修正する。
【００６３】
次に、修正データの周辺に文字領域が存在しない場合、その部分の修正データを削除する削除手段を曲線修正手段５が有する場合について説明する。図１７は、自由曲線データの周辺に文字領域が存在しない部分にはみ出した場合の処理の様子を示す。文字領域が存在しない部分にはみ出した修正データは、判別行の一番端の文字領域の位置に合わせて判別方向の不要な修正データが削除される。
【００６４】
〔実施の形態２〕
実施の形態１では、自由曲線が１つ入力完了すると、入力完了後、直ちに図２のステップＳ３以降の処理を行う逐次処理の場合について説明した。なお、入力完了の検知は、タイマーで計時して所定時間が経過しても自由曲線のデータが得られなくなった場合に入力完了を検出する周知の技術を用いればよい。
【００６５】
実施の形態２では、実施の形態１と同様の逐次処理であるが、すでに実施の形態１により修正データと画像データとの双方を図示しない記憶手段に既に格納して表示している状態に、さらに自由曲線を入力した場合の処理である。
【００６６】
装置構成は、実施の形態１と同様であるが、以下の機能がある。曲線修正手段５は、判別行（（ｓ，ｔ），（ｕ，ｖ））と同一行に過去に修正された自由曲線データがあるかどうかを判断する手段を有する。同一行に過去に修正された自由曲線データがあると判断された場合には、同一行に属する過去の修正データと連続性を持つよう位置修正を行う手段を有する。
【００６７】
判別行と同一行に過去の修正データがあるかどうかを判断する手段の一例を、自由曲線データがｘ方向に入力された場合について、図１８のフローチャートを用いて説明する。
【００６８】
ステップＳ７１で、自由曲線データ（ｘ［ｉ］，ｙ［ｉ］）（ｉ＝１〜ｎ）と過去の修正データ（ｘ［ｋ］［ｊ］，ｙ［ｋ］［ｊ］）（ｋ＝１〜ｒ）（ｊ＝１〜ｎ［ｋ］）（ただしｎ［ｋ］は修正データｋを構成する座標の個数）の情報を呼び出す。ステップＳ７２で、１つ目の過去の修正データ（ｋ＝１）を指定する。ステップＳ７３で、自由曲線データのｙ座標の平均値ｙ（＝（ｙ［１］＋ｙ［２］＋．．．＋ｙ［ｎ］）／ｎ）と過去の修正データｋのｙ座標の平均値Ｙ［ｋ］（＝（ｙ［ｋ］［１］＋ｙ［ｋ］［２］＋．．．＋ｙ［ｋ］［ｎ［ｋ］］）／ｎ［ｋ］）を求める。ここで、平均値を求めるのは、過去の修正データが波線や破線の場合があるからである。
【００６９】
ステップＳ７４で、｜ｙ−Ｙ［ｋ］｜がある閾値Ｒより小さければ、ステップＳ７７で自由曲線データは過去の修正データｋと同一行に引かれていると判断して処理を終了する。そうでなければ、ステップＳ７５に進み、次の修正データを指定する。ただし、Ｒは任意の定数であり、文字間隔や行間隔の定数倍の値を持つようにすると、取得した画像データに応じた処理を行うこともできる。
【００７０】
ステップＳ７６で、ステップＳ７４を満たすｋが見つかるまですべての修正データについて調べる。ステップＳ７４を満たすｋが見つからない時には、ステップＳ７８に進み、同一行に属する過去の修正データは存在しないと判断して処理を終了する。なお、自由曲線データがｙ方向に入力された場合には、図１８のフローチャートでステップＳ７３、Ｓ７４においてｙをｘ、ＹをＸと置き換えて同様の処理をする。
【００７１】
次に、過去の修正データと同一行に自由曲線データが入力された場合の表示処理の具体的様子を図１９を用いて説明する。
【００７２】
タブレット３から自由曲線が入力されると（図１９（ａ））、処理領域を指定して文字領域の検出を行い（図１９（ｂ））、行領域を抽出する（図１９（ｃ））。判別行からａだけはなれた位置に直線を引くように曲線修正処理を行う（図１９（ｄ））。ここで同一行に過去の修正データがあると判断されるため、これらが連続性を持つように修正される。文字と修正データが交わることのないように、判別行から近い方の修正データ（図１９では「専用」の文字に引かれた修正データ）が判別行から遠い方の修正データに連続するように修正される（図１９（ｅ））。
【００７３】
また、過去の修正データと入力された自由曲線データとが波線の場合で、過去の修正データと同一行に入力された場合、修正データの位置を指定する以外に、例えば端点において連続かつ微分値を等しくするように位相をずらしたり、修正データの配列を増減して新たに線分を付加・削除して、過去の修正データと連続性を持たせるようにすればよい。
【００７４】
〔実施の形態３〕
実施の形態１と実施の形態２では、入力モードで逐次処理の場合について説明したが、実施の形態３では、複数の自由曲線が入力され、これらを一括して処理する場合について説明する。これは入力モードで一括処理を選択して、自由に複数の自由曲線を入力して、図示しない一括処理ボタン等の指示により以下の処理が行われるものである。
【００７５】
装置構成は、実施の形態１と同様であるが、以下の機能がある。タブレット３からｑ本の自由曲線が入力されるとすると、それらは（ｘ［ｋ］［ｉ］，ｙ［ｋ］［ｉ］）（ｋ＝１〜ｑ）（ｉ＝１〜ｎ［ｋ］）（ただしｎ［ｋ］は自由曲線ｋを構成する座標の個数）のように表される。自由曲線の入力された方向の成分が小さい順に格納されるとする。
【００７６】
行抽出手段４は、それぞれの自由曲線（ｋ＝１〜ｑ）について処理を行い、それぞれの自由曲線について判別行が矩形（（ｓ［ｋ］，ｔ［ｋ］），（ｕ［ｋ］，ｖ［ｋ］））（ｋ＝１〜ｑ）として得られる。ただし（ｓ［ｋ］，ｔ［ｋ］）は矩形の左上の座標、（ｕ［ｋ］，ｖ［ｋ］）は矩形の右下の座標を意味する。行判別手段１０において得られた判別行は、固有のラベル値Ｌ［ｋ］＝ｋ（ｋ＝１〜ｑ）をもつ。
【００７７】
曲線修正手段５は、判別行（（ｓ［ｋ］，ｔ［ｋ］），（ｕ［ｋ］，ｖ［ｋ］））（ｋ＝１〜ｑ）と同一行に複数の自由曲線が引かれているかどうかを判断する手段を有する。同一行に複数の自由曲線が引かれていると判断された場合には、同一行に属する他の修正データと連続性を持つよう位置修正を行う手段を有する。
【００７８】
判別行と同一行に複数の自由曲線データがあるかどうかを判断する手段の一例として、自由曲線データがｘ方向に入力された場合について、図２０のフローチャートを用いて説明する。
【００７９】
ステップＳ８１で、自由曲線データ（ｘ［ｋ］［ｉ］，ｙ［ｋ］［ｉ］）とラベル値Ｌ［ｋ］（ｋ＝１〜ｑ）（ｉ＝１〜ｎ［ｋ］）の情報を呼び出す。ステップＳ８２で、１つ目の自由曲線データ（ｋ＝１）を指定する。ステップＳ８３で、次の自由曲線データ（ｊ＝ｋ＋１）を指定する。ステップＳ８４で、自由曲線データｋのｙ座標の平均値Ｙ［ｋ］（＝（ｙ［ｋ］［１］＋ｙ［ｋ］［２］＋．．．＋ｙ［ｋ］［ｎ［ｋ］］）／ｎ［ｋ］）と、自由曲線データｊのｙ座標の平均値Ｙ［ｊ］（＝（ｙ［ｊ］［１］＋ｙ［ｊ］［２］＋．．．＋ｙ［ｊ］［ｎ［ｊ］］）／ｎ［ｊ］）を求める。
【００８０】
ステップＳ８５で、｜Ｙ［ｋ］−Ｙ［ｊ］｜がある閾値Ｒより小さければ、ステップＳ８６でラベル値Ｌ［ｋ］とラベル値Ｌ［ｊ］を比較し、ステップＳ８７、Ｓ８８で大きい方の値を小さい方の値に変更する。ただし、Ｒは任意の定数であり、文字間隔や行間隔の定数倍の値を持つようにすると、取得した画像データに応じた処理を行うこともできる。
【００８１】
ステップＳ８９で、さらに次の自由曲線（ｊ＝ｊ＋１）を指定し、ステップＳ９０で、ｊ＞ｑになるまでステップ８４に戻る。ステップＳ９１で、次の自由曲線を指定し（ｋ＝ｋ＋１）、ステップＳ９２で、ｋ＞ｑになるまでステップＳ８３に戻る。すべての自由曲線の組合せに対して処理がなされると終了し、同一行に属する自由曲線の判別行は同じ値のラベル値を持つことになる。なお、自由曲線データがｙ方向に入力された場合には、図２０のフローチャートでステップＳ８４、Ｓ８５においてｙをｘ、ＹをＸと置き換えて同様の処理をする。
【００８２】
以上の処理で、各自由曲線に対応の判別行が同じラベル値である場合、つまり同一行に複数の自由曲線データがあると判断された場合の表示処理の具体的様子を図２１を用いて説明する。
【００８３】
タブレット３から２本の自由曲線が入力された後（図２１（ａ））、処理領域を指定して文字領域の検出を行い（図２１（ｂ））、行領域を抽出する（図２１（ｃ））。判別行からａだけはなれた位置に直線を引くように曲線修正処理を行う（図２１（ｄ））。ここで、同一行に自由曲線が引かれていると判断されるため、これらが連続性を持つように修正される。文字と修正データが交わることのないように、判別行から近い方の修正データ（図２１では「専用」の文字に引かれた修正データ）が判別行から遠い方の修正データに連続するように修正される（図２１（ｅ））。
【００８４】
また、同一行に入力された複数の自由曲線データが波線の場合、修正データの位置を指定する以外に、例えば端点において連続かつ微分値を等しくするように位相をずらしたり、修正データの配列を増減して新たに線分を付加・削除して、過去の修正データと連続性を持たせえるようにすればよい。
【００８５】
以上説明した各実施の形態での処理は、プログラムにより実行されるが、このプログラムの全部または一部を、直接あるいは通信回線を介してフロッピーディスクやハードディスク等のコンピュータ読み取り可能な記録媒体に予め格納しておき、必要に応じてインストールして用いてもよい。
【００８６】
【発明の効果】
請求項１または請求項９記載の発明によれば、文書画像に対して線を引きたい文字に手書きで線を引くだけで、文字に沿った線を体裁よく自動的に引くことができ、見栄えのよい文書画像が得られる。
【００８７】
また、文書画像に対してあらかじめ領域を指定等の前処理が不要となり、操作性がさらに向上すると共に、処理が正確で早くなる。
【００８８】
請求項２記載の発明によれば、行領域が複数あっても、手書き入力された線がどの行に引かれたかを自動的に判別できるようになり、別途手書き入力された線の行指定を改めて行う必要がないため、さらに操作性が向上する。
【００８９】
請求項３記載の発明によれば、手書き入力された線を直線に修正するため、ものさしを使って線を引いたかのように体裁よく修正表示できる。
【００９０】
請求項４記載の発明によれば、手書き入力された線が波線であるかどうかを認識し、波線と認識した場合には、文字に沿った波線に体裁よく修正表示できる。
【００９１】
請求項５記載の発明によれば、手書き入力された線が破線であるかどうかを認識し、破線と認識した場合には、文字に沿った破線に体裁よく修正表示できる。
【００９２】
請求項６記載の発明によれば、文字領域を利用して、修正された線をさらに、修正、または一部削除するため、より見栄えのよい文書画像が得られる。
【００９３】
請求項７記載の発明によれば、同一行に過去に修正された新たな線が引かれている場合に、その行から不規則に離れた位置で新たに手書き入力された線が修正表示されることがなくなり、より見栄えのよい文書画像が得られる。
【００９４】
請求項８記載の発明によれば、同一行に複数の手書き入力された線が複数ある場合に、その行から不規則に離れた位置にこれらの手書き入力された線が修正表示されることがなくなり、より見栄えのよい文書画像が得られる。
【図面の簡単な説明】
【図１】本実施の形態に係る文書画像処理装置の全体構成を示すブロック図である。
【図２】本実施の形態に係る文書画像処理装置のおおまかな処理の流れを示すフローチャートである。
【図３】図１の行抽出手段４の構成を示すブロック図である。
【図４】図３の処理領域指定手段６について説明するための図である。
【図５】自由曲線データの方向判別処理の流れを示すフローチャートである。
【図６】図３の方向判別手段７について説明するための図である。
【図７】図３の文字領域検出手段８について説明するための図である。
【図８】図３の行領域抽出手段９について説明するための図である。
【図９】行判別処理の流れを示すフローチャートである。
【図１０】本実施の形態に係る具体的な処理を説明するための図である。
【図１１】直線に修正する流れを示すフローチャートである。
【図１２】図１の曲線修正手段５について説明するための図である。
【図１３】文字領域を利用して修正データを修正する処理の様子を説明するための図である。
【図１４】ルビ付き文字を含んだ文書画像に自由曲線データを入力し曲線修正処理を行う様子を説明するための図である。
【図１５】波線認識の流れを示すフローチャートである。
【図１６】破線認識の流れを示すフローチャートである。
【図１７】文字領域のない部分に修正データがはみ出した時の修正データの一部を削除する処理の様子を説明するための図である。
【図１８】自由曲線データが属する行と同一行に過去の修正データがあるかどうかを判断する処理の流れを示すフローチャートである。
【図１９】過去の修正データと同一行に自由曲線データが入力された場合の処理の具体的様子を示す図である。
【図２０】同一行に複数の自由曲線データがあるかどうかを判断する処理の流れを示すフローチャートである。
【図２１】２本の自由曲線データが入力された場合の処理の具体的様子を示す図である。
【符号の説明】
１  スキャナ
２  表示手段
３  タブレット
４  行抽出手段
５  曲線修正手段
６  処理領域指定手段
７  方向判別手段
８  文字領域検出手段
９  行領域抽出手段
１０  行判別手段
【図１】
0003795238.tif 000002
【図２】
0003795238.tif 000003
【図３】
0003795238.tif 000004
【図４】
0003795238.tif 000005
【図５】
0003795238.tif 000006
【図６】
0003795238.tif 000007
【図７】
0003795238.tif 000008
【図８】
0003795238.tif 000009
【図９】
0003795238.tif 000010
【図１０】
0003795238.tif 000011
【図１１】
0003795238.tif 000012
【図１２】
0003795238.tif 000013
【図１３】
0003795238.tif 000014
【図１４】
0003795238.tif 000015
【図１５】
0003795238.tif 000016
【図１６】
0003795238.tif 000017
【図１７】
0003795238.tif 000018
【図１８】
0003795238.tif 000019
【図１９】
0003795238.tif 000020
【図２０】
0003795238.tif 000021
【図２１】
0003795238.tif 000022