(57)【特許請求の範囲】
【請求項１】
文書画像データの書字方向及び天地方向を判定する文書認識装置であって、
前記文書画像データの領域に対して、矩形の走査範囲を決定する走査範囲決定手段と、
前記走査範囲の横方向の所定間隔ごとに位置付けられる縦走査線上を走査し、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域の数を数えて、前記縦走査線ごとの縦空白領域数として算出する縦空白領域数算出手段と、
前記走査範囲の縦方向の所定間隔ごとに位置付けられる横走査線上を走査し、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域の数を数えて、前記横走査線ごとの横空白領域数として算出する横空白領域数算出手段と、
前記縦空白領域数及び前記横空白領域数に基づいて、前記文書画像データの行頭位置を判定する行頭位置判定手段と、
前記行頭位置が左又は右の場合には、横方向に沿って文字色の画素のヒストグラムを算出し、前記行頭位置が上又は下の場合には、縦方向に沿って文字色の画素のヒストグラムを算出するヒストグラム算出手段と、
前記行頭位置及び前記ヒストグラムのピークの位置に基づいて、前記書字方向及び前記天地方向を判定する書字方向及び天地方向判定手段と、
を具備する文書認識装置。
【請求項２】
前記行頭位置判定手段は、
前記縦空白領域数が前記横空白領域数よりも多いとき、例外線を除く全ての前記縦走査線に係る前記縦空白領域数が、１つ左の前記縦走査線に係る前記縦空白領域数と同一又はそれ以上となる第１パターンであれば、前記行頭位置を左と決定し、
前記縦空白領域数が前記横空白領域数よりも多いとき、例外線を除く全ての前記縦走査線に係る前記縦空白領域数が、１つ右の前記縦走査線に係る前記縦空白領域数と同一又はそれ以上となる第２パターンであれば、前記行頭位置を右と決定し、
前記縦空白領域数が前記横空白領域数よりも少ないとき、例外線を除く全ての前記横走査線に係る前記横空白領域数が、１つ上の前記横走査線に係る前記横空白領域数と同一又はそれ以上となる第３パターンであれば、前記行頭位置を上と決定し、
前記縦空白領域数が前記横空白領域数よりも少ないとき、例外線を除く全ての前記横走査線に係る前記横空白領域数が、１つ下の前記縦走査線に係る前記横空白領域数と同一又はそれ以上となる第４パターンであれば、前記行頭位置を下と決定する
請求項１に記載の文書認識装置。
【請求項３】
前記行頭位置判定手段は、
前記縦空白領域数が前記横空白領域数よりも多いとき、前記第１パターン及び前記第２パターンのいずれでもなければ、前記横走査線上を走査し、前記走査範囲の左端部から文字色の画素までの長さである左余白長と、前記走査範囲の右端部から文字色の画素までの長さである右余白長とに基づいて、前記行頭位置を決定し、
前記縦空白領域数が前記横空白領域数よりも少ないとき、前記第３パターン及び前記第４パターンのいずれでもなければ、前記縦走査線上を走査し、前記走査範囲の上端部から文字色の画素までの長さである上余白長と、前記走査範囲の下端部から文字色の画素までの長さである下余白長とに基づいて、前記行頭位置を決定する
請求項２に記載の文書認識装置。
【請求項４】
前記走査範囲の走査単位として走査領域サイズを決定する走査領域サイズ決定手段、
を更に備え、
前記縦空白領域数算出手段は、前記縦走査線上を前記走査領域サイズごとに走査し、
前記横空白領域数算出手段は、前記横走査線上を前記走査領域サイズごとに走査する
請求項１乃至請求項３のいずれかに記載の文書認識装置。
【請求項５】
文書画像データの書字方向及び天地方向を判定する文書認識方法であって、
コンピュータが、
前記文書画像データの領域に対して、矩形の走査範囲を決定する走査範囲決定ステップと、
前記走査範囲の横方向の所定間隔ごとに位置付けられる縦走査線上を走査し、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域の数を数えて、前記縦走査線ごとの縦空白領域数として算出する縦空白領域数算出ステップと、
前記走査範囲の縦方向の所定間隔ごとに位置付けられる横走査線上を走査し、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域の数を数えて、前記横走査線ごとの横空白領域数として算出する横空白領域数算出ステップと、
前記縦空白領域数及び前記横空白領域数に基づいて、前記文書画像データの行頭位置を判定する行頭位置判定ステップと、
前記行頭位置が左又は右の場合には、横方向に沿って文字色の画素のヒストグラムを算出し、前記行頭位置が上又は下の場合には、縦方向に沿って文字色の画素のヒストグラムを算出するヒストグラム算出ステップと、
前記行頭位置及び前記ヒストグラムのピークの位置に基づいて、前記書字方向及び前記天地方向を判定する書字方向及び天地方向判定ステップと、
を実行する文書認識方法。
【請求項６】
コンピュータを、文書画像データの書字方向及び天地方向を判定する文書認識装置として機能させるためのプログラムであって、
前記コンピュータを、
前記文書画像データの領域に対して、矩形の走査範囲を決定する走査範囲決定手段と、
前記走査範囲の横方向の所定間隔ごとに位置付けられる縦走査線上を走査し、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域の数を数えて、前記縦走査線ごとの縦空白領域数として算出する縦空白領域数算出手段と、
前記走査範囲の縦方向の所定間隔ごとに位置付けられる横走査線上を走査し、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域の数を数えて、前記横走査線ごとの横空白領域数として算出する横空白領域数算出手段と、
前記縦空白領域数及び前記横空白領域数に基づいて、前記文書画像データの行頭位置を判定する行頭位置判定手段と、
前記行頭位置が左又は右の場合には、横方向に沿って文字色の画素のヒストグラムを算出し、前記行頭位置が上又は下の場合には、縦方向に沿って文字色の画素のヒストグラムを算出するヒストグラム算出手段と、
前記行頭位置及び前記ヒストグラムのピークの位置に基づいて、前記書字方向及び前記天地方向を判定する書字方向及び天地方向判定手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書画像データの書字方向及び天地方向を判定する文書認識装置等に関するものである。
【背景技術】
【０００２】
近年、紙書籍から電子書籍を製作するための技術開発が盛んになっている。一般に、紙書籍から電子書籍を製作する作業は、（１）スキャナ等が、紙書籍に印字されている文字などを光学的に読み取り、コンピュータに文書画像データとして入力する、（２）コンピュータが、文書画像データから１文字分の領域を文字領域として切り出す、（３）コンピュータが、文字領域内の文字を構成する色（例えば「黒」）の画素のパターンと、各文字コードに対応付けられて予め記憶されている文字パターンとの照合によって、１文字ずつ文字コードを特定する、（４）（２）及び（３）の処理を繰り返し、テキストデータを生成する、という工程を経る。
【０００３】
ところで、コンピュータが、１文字分の領域を切り出す際、上下左右を正確に判定することができなければ、文字コードを特定する処理が正常に機能しない。従って、コンピュータは、入力される画像データに対して、書字方向及び天地方向を判定する必要がある。書字方向とは、文字を書き進める方向のことであり、日本語やモンゴル語などであれば、「縦書き」と「横書き」の２パターンが存在する。天地方向は、全ての言語において、「正しい向き」、「右に９０度回転された向き」、「逆向き」、「左に９０度回転された向き」の４パターンがある。つまり、少なくとも日本語やモンゴル語などであれば、書字方向と天地方向の組は、２パターン×４パターンの８パターンが存在する。
【０００４】
特許文献１には、文字部を検出し、それぞれ、０度、９０度、１８０度、２７０度に回転させて、文字認識辞書を用いて文字認識して、認識精度の高い方向を正しい書字方向及び天地方向と判定する技術が開示されている。
【０００５】
特許文献２には、端部空白領域の検出、レイアウト判断、文字方向の判断、文字認識、パンチ穴の検出、ステープル穴の検出の少なくとも1つの結果に基づいて、書字方向及び天地方向を判定する技術が開示されている。
【０００６】
特許文献３には、名刺の文字部を検出し、本質的には、文字領域の縦横比に基づいて、書字方向を判定する技術が開示されている。
【０００７】
特許文献４には、文字領域を検出し、本質的には、文字領域の縦の長さと横の長さに基づいて、書字方向と判定する技術が開示されている。
【０００８】
特許文献５には、本質的には、文字を構成する色（例えば「黒」）の画素のヒストグラムのみに基づいて、書字方向及び天地方向を判定する技術が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第３７８７３７７号公報
【特許文献２】特許第３３４３３６７号公報
【特許文献３】特許第２９８７４６２号公報
【特許文献４】特許第４１７０４４１号公報
【特許文献５】特許第３５３４１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１は、書字方向及び天地方向の４パターン全てに対して文字認識処理を行っているため、処理に時間がかかる。同様に、特許文献２も、様々な判定処理を行うので、処理に時間がかかる。
【００１１】
また、特許文献３〜５については、いずれも、天地方向の判定処理に誤りが生じる恐れがある。
【００１２】
本発明は、前述した問題点に鑑みてなされたものであり、その目的とすることは、書字方向及び天地方向の判定処理を、短時間に精度良く実行することが可能な文書認識装置等を提供することである。
【課題を解決するための手段】
【００１３】
前述した目的を達成するための第１の発明は、文書画像データの書字方向及び天地方向を判定する文書認識装置であって、前記文書画像データの領域に対して、矩形の走査範囲を決定する走査範囲決定手段と、前記走査範囲の横方向の所定間隔ごとに位置付けられる縦走査線上を走査し、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域の数を数えて、前記縦走査線ごとの縦空白領域数として算出する縦空白領域数算出手段と、前記走査範囲の縦方向の所定間隔ごとに位置付けられる横走査線上を走査し、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域の数を数えて、前記横走査線ごとの横空白領域数として算出する横空白領域数算出手段と、前記縦空白領域数及び前記横空白領域数に基づいて、前記文書画像データの行頭位置を判定する行頭位置判定手段と、前記行頭位置が左又は右の場合には、横方向に沿って文字色の画素のヒストグラムを算出し、前記行頭位置が上又は下の場合には、縦方向に沿って文字色の画素のヒストグラムを算出するヒストグラム算出手段と、前記行頭位置及び前記ヒストグラムのピークの位置に基づいて、前記書字方向及び前記天地方向を判定する書字方向及び天地方向判定手段と、を具備する文書認識装置である。第１の発明の文書認識装置によれば、書字方向及び天地方向の判定処理を、短時間に精度良く実行することができる。
【００１４】
第１の発明における前記行頭位置判定手段は、前記縦空白領域数が前記横空白領域数よりも多いとき、例外線を除く全ての前記縦走査線に係る前記縦空白領域数が、１つ左の前記縦走査線に係る前記縦空白領域数と同一又はそれ以上となる第１パターンであれば、前記行頭位置を左と決定し、前記縦空白領域数が前記横空白領域数よりも多いとき、例外線を除く全ての前記縦走査線に係る前記縦空白領域数が、１つ右の前記縦走査線に係る前記縦空白領域数と同一又はそれ以上となる第２パターンであれば、前記行頭位置を右と決定し、前記縦空白領域数が前記横空白領域数よりも少ないとき、例外線を除く全ての前記横走査線に係る前記横空白領域数が、１つ上の前記横走査線に係る前記横空白領域数と同一又はそれ以上となる第３パターンであれば、前記行頭位置を上と決定し、前記縦空白領域数が前記横空白領域数よりも少ないとき、例外線を除く全ての前記横走査線に係る前記横空白領域数が、１つ下の前記縦走査線に係る前記横空白領域数と同一又はそれ以上となる第４パターンであれば、前記行頭位置を下と決定することが望ましい。これによって、行頭位置を正確に判定することができる。
【００１５】
第１の発明における前記行頭位置判定手段は、前記縦空白領域数が前記横空白領域数よりも多いとき、前記第１パターン及び前記第２パターンのいずれでもなければ、前記横走査線上を走査し、前記走査範囲の左端部から文字色の画素までの長さである左余白長と、前記走査範囲の右端部から文字色の画素までの長さである右余白長とに基づいて、前記行頭位置を決定し、前記縦空白領域数が前記横空白領域数よりも少ないとき、前記第３パターン及び前記第４パターンのいずれでもなければ、前記縦走査線上を走査し、前記走査範囲の上端部から文字色の画素までの長さである上余白長と、前記走査範囲の下端部から文字色の画素までの長さである下余白長とに基づいて、前記行頭位置を決定することが望ましい。これによって、文書のタイトルなどの一部分が中央寄せになっていても、行頭位置を正確に判定することができる。
【００１６】
第１の発明における前記走査範囲の走査単位として走査領域サイズを決定する走査領域サイズ決定手段、を更に備え、前記縦空白領域数算出手段は、前記縦走査線上を前記走査領域サイズごとに走査し、前記横空白領域数算出手段は、前記横走査線上を前記走査領域サイズごとに走査することが望ましい。例えば、走査領域サイズが１文字分の領域であれば、書字方向及び天地方向の判定処理を、より短時間に精度良く実行することができる。
【００１７】
第２の発明は、文書画像データの書字方向及び天地方向を判定する文書認識方法であって、コンピュータが、前記文書画像データの領域に対して、矩形の走査範囲を決定する走査範囲決定ステップと、前記走査範囲の横方向の所定間隔ごとに位置付けられる縦走査線上を走査し、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域の数を数えて、前記縦走査線ごとの縦空白領域数として算出する縦空白領域数算出ステップと、前記走査範囲の縦方向の所定間隔ごとに位置付けられる横走査線上を走査し、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域の数を数えて、前記横走査線ごとの横空白領域数として算出する横空白領域数算出ステップと、前記縦空白領域数及び前記横空白領域数に基づいて、前記文書画像データの行頭位置を判定する行頭位置判定ステップと、前記行頭位置が左又は右の場合には、横方向に沿って文字色の画素のヒストグラムを算出し、前記行頭位置が上又は下の場合には、縦方向に沿って文字色の画素のヒストグラムを算出するヒストグラム算出ステップと、前記行頭位置及び前記ヒストグラムのピークの位置に基づいて、前記書字方向及び前記天地方向を判定する書字方向及び天地方向判定ステップと、を実行する文書認識方法である。第２の発明の文書認識方法によれば、書字方向及び天地方向の判定処理を、短時間に精度良く実行することができる。
【００１８】
第３の発明は、コンピュータを、文書画像データの書字方向及び天地方向を判定する文書認識装置として機能させるためのプログラムであって、前記コンピュータを、前記文書画像データの領域に対して、矩形の走査範囲を決定する走査範囲決定手段と、前記走査範囲の横方向の所定間隔ごとに位置付けられる縦走査線上を走査し、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域の数を数えて、前記縦走査線ごとの縦空白領域数として算出する縦空白領域数算出手段と、前記走査範囲の縦方向の所定間隔ごとに位置付けられる横走査線上を走査し、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域の数を数えて、前記横走査線ごとの横空白領域数として算出する横空白領域数算出手段と、前記縦空白領域数及び前記横空白領域数に基づいて、前記文書画像データの行頭位置を判定する行頭位置判定手段と、前記行頭位置が左又は右の場合には、横方向に沿って文字色の画素のヒストグラムを算出し、前記行頭位置が上又は下の場合には、縦方向に沿って文字色の画素のヒストグラムを算出するヒストグラム算出手段と、前記行頭位置及び前記ヒストグラムのピークの位置に基づいて、前記書字方向及び前記天地方向を判定する書字方向及び天地方向判定手段として機能させるためのプログラムである。第３の発明のプログラムを汎用のコンピュータにインストールすることによって、第１の発明の文書認識装置を得ることができる。
【発明の効果】
【００１９】
本発明により、書字方向及び天地方向の判定処理を、短時間に精度良く実行することが可能な文書認識装置等を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】文書認識装置１のハードウエア構成図
【図２】文書認識装置１の処理を示すフローチャート（１）
【図３】文書認識装置１の処理を示すフローチャート（２）
【図４】文書認識装置１の処理を示すフローチャート（３）
【図５】文書認識装置１の処理を示すフローチャート（４）
【図６】文書認識装置１の処理を示すフローチャート（５）
【図７】文書画像データ２０ａにおける走査範囲２１、走査領域サイズ２２を説明する図
【図８】文書画像データ２０ａにおける縦走査線２３、横走査線２４を説明する図
【図９】文書画像データ２０ａにおける縦例外線２５、縦空白領域２７を説明する図
【図１０】文書画像データ２０ａにおける横例外線２６を説明する図
【図１１】文書画像データ２０ａにおける横ヒストグラム２９を説明する図
【図１２】横ヒストグラム２９ａの拡大図
【図１３】文書画像データ２０ｂにおける横空白領域２８、縦ヒストグラム３０を説明する図
【図１４】文書画像データ２０ｃを示す図
【図１５】横ヒストグラム２９ｉの拡大図
【図１６】文書画像データ２０ｄを示す図
【図１７】文書画像データ２０ｅにおける左余白長５１、右余白長５２を説明する図
【図１８】文書画像データ２０ｆにおける上余白長５３、下余白長５４を説明する図
【図１９】書字方向と天地方向の組の８パターンとフローチャートの対応図
【発明を実施するための形態】
【００２１】
以下図面に基づいて、本発明の実施形態を詳細に説明する。図１は、文書認識装置１のハードウエア構成図である。尚、図１のハードウエア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
【００２２】
文書認識装置１は、制御部１１、記憶部１２、メディア入出力部１３、通信制御部１４、入力部１５、表示部１６、周辺機器Ｉ／Ｆ部１７等が、バス１８を介して接続される。
【００２３】
制御部１１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等で構成される。ＣＰＵは、記憶部１２、ＲＯＭ、記録媒体等に格納されるプログラムをＲＡＭ上のワークメモリ領域に呼び出して実行し、バス１８を介して接続された各装置を駆動制御し、文書認識装置１が行う後述する処理を実現する。ＲＯＭは、不揮発性メモリであり、文書認識装置１のブートプログラムやＢＩＯＳ等のプログラム、データ等を恒久的に保持している。ＲＡＭは、揮発性メモリであり、記憶部１２、ＲＯＭ、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部１１が各種処理を行う為に使用するワークエリアを備える。
【００２４】
記憶部１２は、ＨＤＤ（Hard Disk Drive）等であり、制御部１１が実行するプログラム、プログラム実行に必要なデータ、ＯＳ（Operating System）等が格納される。プログラムに関しては、ＯＳ（Operating
System）に相当する制御プログラムや、後述する処理を文書認識装置１に実行させるためのアプリケーションプログラムが格納されている。これらの各プログラムコードは、制御部１１により必要に応じて読み出されてＲＡＭに移され、ＣＰＵに読み出されて各種の手段として実行される。
【００２５】
メディア入出力部１３（ドライブ装置）は、データの入出力を行い、例えば、ＣＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）、ＤＶＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）等のメディア入出力装置を有する。通信制御部１４は、通信制御装置、通信ポート等を有し、文書認識装置１とネットワーク間の通信を媒介する通信インタフェースであり、ネットワークを介して、他の装置間との通信制御を行う。ネットワークは、有線、無線を問わない。
【００２６】
入力部１５は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。入力部１５を介して、文書認識装置１に対して、操作指示、動作指示、データ入力等を行うことができる。表示部１６は、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携して文書認識装置１のビデオ機能を実現するための論理回路等（ビデオアダプタ等）を有する。尚、入力部１５及び表示部１６は、タッチパネルディスプレイのように、一体であっても良い。
【００２７】
周辺機器Ｉ／Ｆ（インタフェース）部１７は、文書認識装置１に周辺機器（例えば、スキャナなど）を接続させるためのポートであり、周辺機器Ｉ／Ｆ部１７を介して文書認識装置１は周辺機器とのデータの送受信を行う。周辺機器Ｉ／Ｆ部１７は、ＵＳＢやＩＥＥＥ１３９４やＲＳ−２３５Ｃ等で構成されており、通常複数の周辺機器Ｉ／Ｆを有する。周辺機器との接続形態は有線、無線を問わない。バス１８は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【００２８】
図２〜図６は、文書認識装置１の処理を示すフローチャートである。以下では、フローチャートに沿って文書認識装置１の処理を説明し、適宜具体例も参照することにする。
【００２９】
具体例は、文書画像データ２０ａ〜２０ｆである。図７〜図１２は、文書画像データ２０ａに関する図である。図１３は、文書画像データ２０ｂに関する図である。図１４、図１５は、文書画像データ２０ｃに関する図である。図１６は、文書画像データ２０ｄに関する図である。図１７は、文書画像データ２０ｅに関する図である。図１８は、文書画像データ２０ｆに関する図である。図１９には、書字方向と天地方向の組の８パターンとフローチャートの対応関係を示している。
【００３０】
以下では、具体例を区別する場合、符号の末尾にアルファベットを付す。一方、具体例を区別せず、総称する場合、符号の末尾にアルファベットを付さない。例えば、文書画像データ２０ａ〜２０ｆを総称する場合、「文書画像データ２０」と表記する。
【００３１】
図２に示す処理について説明する。文書認識装置１の制御部１１は、文書画像データ２０に対する矩形の走査範囲２１を決定する（Ｓ１）。走査範囲２１とは、後述する処理の対象となる画素の集合である。制御部１１は、例えば、ヘッダ領域やフッタ領域に含まれるページ番号などを除き、ほとんど全ての文字を含むように、矩形の走査範囲２１を決定する。走査範囲２１の決定処理は、公知の技術を用いれば良い。図７には、文書画像データ２０ａに対する走査範囲２１が示されている。
【００３２】
制御部１１は、走査領域サイズ２２を決定する（Ｓ２）。走査領域サイズ２２とは、後述するＳ３及びＳ４における走査処理の走査単位である。尚、Ｓ３及びＳ４における走査処理は、スキャナ等による紙面上の読み取り処理ではなく、文書認識装置１による画像上の情報を得る処理を意味する。
【００３３】
制御部１１は、例えば、入力部１５等を介してユーザから走査領域サイズ２２の入力を受け付けても良いし、自動的に走査領域サイズ２２を算出しても良い。自動的に走査領域サイズ２２を算出する処理は、公知の技術を用いれば良い。例えば、制御部１１は、文書画像データ２０から、公知の技術によって、本文における１文字分の領域を切り出し、１文字分の領域に基づいて走査領域サイズ２２を算出する。例えば、制御部１１は、図７に示すように、１文字分の領域を走査領域サイズ２２とする。走査領域サイズ２２が１文字分の領域であれば、制御部１１は、より短時間に精度良く、後述する処理を実行することができる。
【００３４】
尚、Ｓ２における走査領域サイズ２２の決定処理は、必須ではない。制御部１１は、予め記憶部１２に記憶されている走査領域サイズ２２を用いても良い。また、走査領域サイズ２２は、１文字分の領域に限らず、１以上の画素を含む領域であれば良い。
【００３５】
制御部１１は、縦走査線２３ごとの縦空白領域２７の数を算出する（Ｓ３）。縦走査線２３とは、走査範囲２１の横方向の所定間隔ごとに位置付けられる直線である。制御部１１は、例えば、予め記憶部１２に記憶されている縦走査線２３の所定間隔に基づいて縦走査線２３の位置を決定しても良い。また、制御部１１は、例えば、Ｓ２において、走査領域サイズ２２とともに、縦走査線２３の所定間隔を決定しても良い。制御部１１は、望ましくは、図８に示すように、本文の１文字ごとに１本の縦走査線２３が文字の中心を通るように、縦走査線２３の所定間隔を決定する。
【００３６】
縦空白領域２７とは、縦走査線２３上において、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域を意味する。文字色の画素を含む領域とは、例えば、制御部１１が、縦走査線２３上を走査領域サイズ２２ごとに走査したとき、１以上の文字色の画素が含まれている、走査領域サイズ２２の所定倍数以上の大きさを有する領域である。図面に示されている文字色は「黒」である。また、文字色の画素を含まない領域とは、例えば、制御部１１が、縦走査線２３上を走査領域サイズ２２ごとに走査したとき、文字色の画素が１つも含まれていない、走査領域サイズ２２の所定倍数以上の大きさを有する領域である。所定倍数は、例えば「１」である。
【００３７】
図９に示す例では、縦走査線２３ａ、２３ｂ上に、それぞれ１個の縦空白領域２７ａ、２７ｂが含まれている。一方、縦走査線２３ｃ、２３ｄ上には、縦空白領域２７が１個も含まれていない。
【００３８】
尚、図９に示すように、左端及び右端の縦走査線２３は、後述する処理において、例外線（図９では縦例外線２５ａ及び２５ｂ）として扱う。これは、字下げなどの影響を排除するためである。
【００３９】
制御部１１は、横走査線２４ごとの横空白領域２８の数を算出する（Ｓ４）。横走査線２４とは、走査範囲２１の縦方向の所定間隔ごとに位置付けられる直線である。制御部１１は、例えば、予め記憶部１２に記憶されている横走査線２４の所定間隔に基づいて横走査線２４の位置を決定しても良い。また、制御部１１は、例えば、Ｓ２において、走査領域サイズ２２とともに、横走査線２４の所定間隔を決定しても良い。制御部１１は、望ましくは、図８に示すように、本文の１文字ごとに１本の横走査線２４が文字の中心を通るように、横走査線２４の所定間隔を決定する。
【００４０】
横空白領域２８とは、横走査線２４上において、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域を意味する。文字色の画素を含む領域とは、例えば、制御部１１が、横走査線２４上を走査領域サイズ２２ごとに走査したとき、１以上の文字色の画素が含まれている、走査領域サイズ２２の所定倍数以上の大きさを有する領域である。また、文字色の画素を含まない領域とは、例えば、制御部１１が、横走査線２４上を走査領域サイズ２２ごとに走査したとき、文字色の画素が１つも含まれていない、走査領域サイズ２２の所定倍数以上の大きさを有する領域である。所定倍数は、例えば「１」である。
【００４１】
図１０に示す例では、横走査線２４ａ、２４ｂ、２４ｃ、２４ｄのいずれにも、横空白領域２８が１個も含まれていない。
【００４２】
尚、図１０に示すように、上端及び下端の横走査線２４は、後述する処理において、例外線（図１０では横例外線２６ａ及び２６ｂ）として扱う。これは、字下げなどの影響を排除するためである。
【００４３】
制御部１１は、縦空白領域２７の数と横空白領域２８の数のいずれが多いかを判定する（Ｓ５）。縦空白領域２７の数が横空白領域２８の数よりも多い場合、制御部１１は、「Ａ」に進む。横空白領域２８の数が縦空白領域２７の数よりも多い場合、制御部１１は、「Ｂ」に進む。
【００４４】
Ｓ５における判定処理は、縦空白領域２７及び横空白領域２８の総数を比較しても良いし、平均値を比較しても良いし、１又は複数の代表値を比較しても良い。
【００４５】
文書画像データ２０ａの例に対するＳ５の判定処理について説明する。図９に示すように、縦空白領域２７の数は、左から（０、０、・・・、０、１、１、・・・、１）（但し、縦例外線２５は除く。）となる。また、図１０に示すように、横空白領域２８の数は、上から（０、０、・・・、０）となる。従って、制御部１１は、縦空白領域２７の数が、横空白領域２８の数よりも多いと判定し、「Ａ」に進む。
【００４６】
文書画像データ２０ｂの例に対するＳ５の判定処理について説明する。図１３に示すように、縦空白領域２７の数は、左から（０、０、・・・、０）となる。また、図１３に示すように、横空白領域２８の数は、上から（０、０、・・・、０、１、１、・・・、１）（但し、横例外線２６は除く。）となる。従って、制御部１１は、横空白領域２８の数が、縦空白領域２７の数よりも多いと判定し、「Ｂ」に進む。
【００４７】
文書画像データ２０ｃの例に対するＳ５の判定処理について説明する。図１４に示すように、縦空白領域２７の数は、左から（０、０、・・・、０、１、１、・・・、１）となる。また、図１４に示すように、横空白領域２８の数は、上から（０、０、・・・、０）となる。従って、制御部１１は、縦空白領域２７の数が、横空白領域２８の数よりも多いと判定し、「Ａ」に進む。
【００４８】
文書画像データ２０ｄの例に対するＳ５の判定処理について説明する。図１６に示すように、縦空白領域２７の数は、左から（０、０、・・・、０）となる。また、図１６に示すように、横空白領域２８の数は、上から（１、１、・・・、１、０、０、・・・、０）となる。従って、制御部１１は、横空白領域２８の数が、縦空白領域２７の数よりも多いと判定し、「Ｂ」に進む。
【００４９】
文書画像データ２０ｅの例に対するＳ５の判定処理について説明する。図１７に示すように、縦空白領域２７の数は、左から（０、０、・・・、０、１、・・・、１、２、２、・・・、２、１、２、２、・・・、２、１、１、・・・、１）（但し、縦例外線２５は除く。）となる。また、図１７に示すように、横空白領域２８の数は、上から（１、０、０、・・・、０）（但し、横例外線２６は除く。）となる。従って、制御部１１は、縦空白領域２７の数が、横空白領域２８の数よりも多いと判定し、「Ａ」に進む。
【００５０】
文書画像データ２０ｆの例に対するＳ５の判定処理について説明する。図１８に示すように、縦空白領域２７の数は、左から（０、０、・・・、０、１）（但し、縦例外線２５は除く。）となる。また、図１８に示すように、横空白領域２８の数は、上から（０、０、・・・、０、１、１、・・・、１、２、２、・・・、２、１、２、２、・・・、２、１、・・・、１、）（但し、横例外線２６は除く。）となる。従って、制御部１１は、横空白領域２８の数が、縦空白領域２７の数よりも多いと判定し、「Ｂ」に進む。
【００５１】
図３に示す処理について説明する。制御部１１は、「Ａ」に進むと、縦例外線２５を除く全ての縦走査線２３に係る縦空白領域２７の数が、１つ左の縦走査線２３に係る縦空白領域２７の数と同一又はそれ以上かを判定する（Ｓ１１）。Ｙｅｓの場合、制御部１１は、行頭位置を「左」と決定し（Ｓ１２）、「Ｃ」に進む。Ｎｏの場合、制御部１１は、Ｓ１３に進む。
【００５２】
制御部１１は、Ｓ１３に進むと、横例外線２６を除く全ての横走査線２４に係る横空白領域２８の数が、１つ右の横走査線２４に係る横空白領域２８の数と同一又はそれ以上かを判定する。Ｙｅｓの場合、制御部１１は、行頭位置を「右」と決定し（Ｓ１４）、「Ｃ」に進む。Ｎｏの場合、制御部１１は、Ｓ１５に進む。
【００５３】
文書画像データ２０ａの例に対するＳ１１〜Ｓ１４の処理について説明する。図９に示すように、縦空白領域２７の数は、左から（０、０、・・・、０、１、１、・・・、１）（但し、縦例外線２５は除く。）となる。従って、制御部１１は、Ｓ１１において、Ｙｅｓと判定し、行頭位置を「左」と決定し（Ｓ１２）、「Ｃ」に進む。
【００５４】
文書画像データ２０ｃの例に対するＳ１１〜Ｓ１４の処理について説明する。図１４に示すように、縦空白領域２７の数は、左から（０、０、・・・、０、１、１、・・・、１）となる。従って、制御部１１は、Ｓ１１において、Ｙｅｓと判定し、行頭位置を「左」と決定し（Ｓ１２）、「Ｃ」に進む。
【００５５】
文書画像データ２０ｅの例に対するＳ１１〜Ｓ１４の処理について説明する。図１７に示すように、縦空白領域２７の数は、左から（０、０、・・・、０、１、・・・、１、２、２、・・・、２、１、２、２、・・・、２、１、１、・・・、１）（但し、縦例外線２５は除く。）となる。従って、制御部１１は、Ｓ１１及びＳ１３のいずれもＮｏと判定し、Ｓ１５に進む。
【００５６】
図３の説明に戻る。制御部１１は、Ｓ１５に進むと、左余白長５１、右余白長５２を算出し、左余白長５１と右余白長５２のいずれが短いかを判定する（Ｓ１６）。左余白長５１が右余白長５２よりも短い場合、制御部１１は、行頭位置を「左」と決定し（Ｓ１７）、「Ｃ」に進む。右余白長５２が左余白長５１よりも短い場合、制御部１１は、行頭位置を「右」と決定し（Ｓ１８）、「Ｃ」に進む。
【００５７】
左余白長５１とは、横走査線２４上における走査範囲２１の左端部から文字色の画素までの長さである。右余白長５２とは、横走査線２４上における走査範囲２１の右端部から文字色の画素までの長さである。
【００５８】
Ｓ１６における判定処理は、左余白長５１及び右余白長５２の総計を比較しても良いし、平均値を比較しても良いし、複数の代表値を比較しても良い。
【００５９】
文書画像データ２０ｅの例に対するＳ１５〜Ｓ１８の処理について説明する。以下では、Ｓ１６における判定処理において、左余白長５１及び右余白長５２の総計を比較するものとする。図１７に示すように、左余白長５１ｑ、５１ｒ、５１ｓ、５１ｕの総計は、右余白長５２ｑ、５２ｒ、５２ｔの総計よりも短い。従って、制御部１１は、行頭位置を「左」と決定し（Ｓ１７）、「Ｃ」に進む。
【００６０】
図４に示す処理について説明する。制御部１１は、「Ｂ」に進むと、横例外線２６を除く全ての横走査線２４に係る横空白領域２８の数が、１つ上の横走査線２４に係る横空白領域２８の数と同一又はそれ以上かを判定する（Ｓ２１）。Ｙｅｓの場合、制御部１１は、行頭位置を「上」と決定し（Ｓ２２）、「Ｄ」に進む。Ｎｏの場合、制御部１１は、Ｓ２３に進む。
【００６１】
制御部１１は、Ｓ２３に進むと、縦例外線２５を除く全ての縦走査線２３に係る縦空白領域２７の数が、１つ上の縦走査線２３に係る縦空白領域２７の数と同一又はそれ以上かを判定する。Ｙｅｓの場合、制御部１１は、行頭位置を「下」と決定し（Ｓ２４）、「Ｄ」に進む。Ｎｏの場合、制御部１１は、Ｓ２５に進む。
【００６２】
文書画像データ２０ｂの例に対するＳ２１〜Ｓ２４の処理について説明する。図１３に示すように、横空白領域２８の数は、上から（０、０、・・・、０、１、１、・・・、１）（但し、横例外線２６は除く。）となる。従って、制御部１１は、Ｓ２１において、Ｙｅｓと判定し、行頭位置を「上」と決定し（Ｓ２２）、「Ｄ」に進む。
【００６３】
文書画像データ２０ｄの例に対するＳ２１〜Ｓ２４の処理について説明する。図１６に示すように、横空白領域２８の数は、上から（１、１、・・・、１、０、０、・・・、０）となる。従って、制御部１１は、Ｓ２３において、Ｙｅｓと判定し、行頭位置を「下」と決定し（Ｓ２４）、「Ｄ」に進む。
【００６４】
文書画像データ２０ｆの例に対するＳ２１〜Ｓ２４の処理について説明する。図１８に示すように、横空白領域２８の数は、上から（０、０、・・・、０、１、１、・・・、１、２、２、・・・、２、１、２、２、・・・、２、１、・・・、１、）（但し、横例外線２６は除く。）となる。従って、制御部１１は、Ｓ２１及びＳ２３のいずれもＮｏと判定し、Ｓ２５に進む。
【００６５】
図４の説明に戻る。制御部１１は、Ｓ２５に進むと、上余白長５３、下余白長５４を算出し、上余白長５３と下余白長５４のいずれが短いかを判定する（Ｓ２６）。上余白長５３が下余白長５４よりも短い場合、制御部１１は、行頭位置を「上」と決定し（Ｓ２７）、「Ｄ」に進む。下余白長５４が上余白長５３よりも短い場合、制御部１１は、行頭位置を「下」と決定し（Ｓ２８）、「Ｄ」に進む。
【００６６】
上余白長５３とは、縦走査線２３上における走査範囲２１の上端部から文字色の画素までの長さである。下余白長５４とは、縦走査線２３上における走査範囲２１の下端部から文字色の画素までの長さである。
【００６７】
Ｓ２６における判定処理は、上余白長５３及び下余白長５４の総計を比較しても良いし、平均値を比較しても良いし、複数の代表値を比較しても良い。
【００６８】
文書画像データ２０ｆの例に対するＳ２５〜Ｓ２８の処理について説明する。以下では、Ｓ２６における判定処理において、上余白長５３及び下余白長５４の総計を比較するものとする。図１８に示すように、上余白長５３ｗ、５３ｘ、５３ｙ、５３ａａの総計は、下余白長５４ｗ、５４ｘ、５４ｚの総計よりも短い。従って、制御部１１は、行頭位置を「上」と決定し（Ｓ２７）、「Ｄ」に進む。
【００６９】
図５に示す処理について説明する。制御部１１は、「Ｃ」に進むと、横方向に沿って文字色の画素のヒストグラムを算出し（Ｓ３１）、ヒストグラムのピークが中央か否かを判定する（Ｓ３２）。Ｙｅｓの場合、制御部１１は、Ｓ３３に進む。Ｎｏの場合、制御部１１は、Ｓ３８に進む。
【００７０】
Ｓ３２における判定処理では、例えば、制御部１１は、図１２や図１５に示すように、ヒストグラムを、第１端部４１、中央部４２、第２端部４３の３つに等分割し、中央部４２にピーク（最大値）が含まれるか否かを判定する。Ｓ３２における判定処理は、ヒストグラムの総計を比較しても良いし、平均値を比較しても良いし、１又は複数の代表値を比較しても良い。
【００７１】
Ｓ３２における判定処理の意義について説明する。一般に、「縦書き」の場合、文字を中央に揃えるように組版を行う為、ヒストグラムのピークが中央となる。一方、「横書き」の場合、文字を下端に揃えるように組版を行う為、ヒストグラムのピークは中央にならない。このような知見に基づき、Ｓ３２において、制御部１１は、ヒストグラムのピークが中央か否かを判定し、書字方向を判定する。
【００７２】
制御部１１は、Ｓ３３に進むと、行頭位置が「左」か否かを判定する。Ｙｅｓの場合、制御部１１は、Ｓ３４に進む。Ｎｏの場合、制御部１１は、Ｓ３６に進む。
【００７３】
制御部１１は、Ｓ３８に進むと、行頭位置が「左」か否かを判定する。Ｙｅｓの場合、制御部１１は、Ｓ３９に進む。Ｎｏの場合、制御部１１は、Ｓ４１に進む。
【００７４】
文書画像データ２０ａの例に対するＳ３１〜Ｓ３３、Ｓ３８の処理について説明する。図１１及び図１２に示すように、横ヒストグラム２９ａ、２９ｂは、中央部４２に最大値が含まれていない。従って、制御部１１は、Ｓ３２において、Ｎｏと判定し、Ｓ３８に進む。また、制御部１１は、Ｓ３８において、Ｙｅｓと判定し、Ｓ３９に進む。
【００７５】
文書画像データ２０ｃの例に対するＳ３１〜Ｓ３３、Ｓ３８の処理について説明する。図１４、図１５に示すように、横ヒストグラム２９ｉ、２９ｊは、中央部４２に最大値が含まれている。従って、制御部１１は、Ｓ３２において、Ｙｅｓと判定し、Ｓ３３に進む。また、制御部１１は、Ｓ３３において、Ｙｅｓと判定し、Ｓ３４に進む。
【００７６】
文書画像データ２０ｅの例に対するＳ３１〜Ｓ３３、Ｓ３８の処理については説明を省略する。
【００７７】
図５の説明に戻る。制御部１１は、Ｓ３４に進むと、書字方向が「縦書き」、天地方向が「左に９０度回転された向き」と決定し、文書画像データ２０を右に９０度回転し、文字認識処理を実行する（Ｓ３５）。Ｓ３４に進むケースは、図１９（１）に示すように、書字方向が「縦書き」、天地方向が「左に９０度回転された向き」の場合である。そこで、制御部１１は、文書画像データ２０を右に９０度回転してから、文字認識処理を実行する。
【００７８】
制御部１１は、Ｓ３６に進むと、書字方向が「縦書き」、天地方向が「右に９０度回転された向き」と決定し、文書画像データ２０を左に９０度回転し、文字認識処理を実行する（Ｓ３７）。Ｓ３６に進むケースは、図１９（２）に示すように、書字方向が「縦書き」、天地方向が「右に９０度回転された向き」の場合である。そこで、制御部１１は、文書画像データ２０を左に９０度回転してから、文字認識処理を実行する。
【００７９】
制御部１１は、Ｓ３９に進むと、書字方向が「横書き」、天地方向が「正しい向き」と決定し、文書画像データ２０を回転せずに、文字認識処理を実行する（Ｓ４０）。Ｓ３９に進むケースは、図１９（３）に示すように、書字方向が「横書き」、天地方向が「正しい向き」の場合である。そこで、制御部１１は、文書画像データ２０を回転せずに、文字認識処理を実行する。
【００８０】
制御部１１は、Ｓ４１に進むと、書字方向が「横書き」、天地方向が「逆向き」と決定し、文書画像データ２０を１８０度回転し、文字認識処理を実行する（Ｓ４２）。Ｓ４１に進むケースは、図１９（４）に示すように、書字方向が「横書き」、天地方向が「逆向き」の場合である。そこで、制御部１１は、文書画像データ２０を１８０度回転してから、文字認識処理を実行する。
【００８１】
図６に示す処理について説明する。制御部１１は、「Ｄ」に進むと、縦方向に沿って文字色の画素のヒストグラムを算出し（Ｓ５１）、ヒストグラムのピークが中央か否かを判定する（Ｓ５２）。Ｙｅｓの場合、制御部１１は、Ｓ５３に進む。Ｎｏの場合、制御部１１は、Ｓ５８に進む。
【００８２】
Ｓ５２における判定処理では、例えば、制御部１１は、図１２や図１５に示すように、ヒストグラムを、第１端部４１、中央部４２、第２端部４３の３つに等分割し、中央部４２にピーク（最大値）が含まれるか否かを判定する。Ｓ５２における判定処理は、ヒストグラムの総計を比較しても良いし、平均値を比較しても良いし、１又は複数の代表値を比較しても良い。
【００８３】
制御部１１は、Ｓ５３に進むと、行頭位置が「上」か否かを判定する。Ｙｅｓの場合、制御部１１は、Ｓ５４に進む。Ｎｏの場合、制御部１１は、Ｓ５６に進む。
【００８４】
制御部１１は、Ｓ５８に進むと、行頭位置が「上」か否かを判定する。Ｙｅｓの場合、制御部１１は、Ｓ５９に進む。Ｎｏの場合、制御部１１は、Ｓ６１に進む。
【００８５】
文書画像データ２０ｂの例に対するＳ５１〜Ｓ５３、Ｓ５８の処理について説明する。図１３に示すように、縦ヒストグラム３０ｅ、３０ｆは、中央部４２に最大値が含まれていない。従って、制御部１１は、Ｓ５２において、Ｎｏと判定し、Ｓ５８に進む。また、制御部１１は、Ｓ５８において、Ｙｅｓと判定し、Ｓ５９に進む。
【００８６】
文書画像データ２０ｄの例に対するＳ５１〜Ｓ５３、Ｓ５８の処理について説明する。図１６に示すように、縦ヒストグラム３０ｏ、３０ｐは、中央部４２に最大値が含まれている。従って、制御部１１は、Ｓ５２において、Ｙｅｓと判定し、Ｓ５３に進む。また、制御部１１は、Ｓ５３において、Ｎｏと判定し、Ｓ５６に進む。
【００８７】
文書画像データ２０ｆの例に対するＳ５１〜Ｓ５３、Ｓ５８の処理については説明を省略する。
【００８８】
図６の説明に戻る。制御部１１は、Ｓ５４に進むと、書字方向が「縦書き」、天地方向が「正しい向き」と決定し、文書画像データ２０を回転せずに、文字認識処理を実行する（Ｓ５５）。Ｓ５４に進むケースは、図１９（５）に示すように、書字方向が「縦書き」、天地方向が「正しい向き」の場合である。そこで、制御部１１は、文書画像データ２０を回転せずに、文字認識処理を実行する。
【００８９】
制御部１１は、Ｓ５６に進むと、書字方向が「縦書き」、天地方向が「逆向き」と決定し、文書画像データ２０を１８０度回転し、文字認識処理を実行する（Ｓ５７）。Ｓ５６に進むケースは、図１９（６）に示すように、書字方向が「縦書き」、天地方向が「逆向き」の場合である。そこで、制御部１１は、文書画像データ２０を１８０度回転し、文字認識処理を実行する。
【００９０】
制御部１１は、Ｓ５９に進むと、書字方向が「横書き」、天地方向が「右に９０度回転された向き」と決定し、文書画像データ２０を左に９０度回転し、文字認識処理を実行する（Ｓ６０）。Ｓ５９に進むケースは、図１９（７）に示すように、書字方向が「縦書き」、天地方向が「右に９０度回転された向き」の場合である。そこで、制御部１１は、文書画像データ２０を左に９０度回転し、文字認識処理を実行する。
【００９１】
制御部１１は、Ｓ６１に進むと、書字方向が「横書き」、天地方向が「左に９０度回転された向き」と決定し、文書画像データ２０を右に９０度回転し、文字認識処理を実行する（Ｓ６２）。Ｓ６１に進むケースは、図１９（８）に示すように、書字方向が「横書き」、天地方向が「左に９０度回転された向き」の場合である。そこで、制御部１１は、文書画像データ２０を右に９０度回転し、文字認識処理を実行する。
【００９２】
以上、本発明の実施形態における文書認識装置１は、（１）文書画像データ２０の領域に対して、矩形の走査範囲２１を決定する走査範囲決定処理、（２）走査範囲２１の横方向の所定間隔ごとに位置付けられる縦走査線２３上を走査し、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域の数を数えて、縦走査線２３ごとの縦空白領域２７の数として算出する縦空白領域数算出処理、（３）走査範囲２１の縦方向の所定間隔ごとに位置付けられる横走査線２４上を走査し、文字色の画素を含む領域同士に挟まれる、文字色の画素を含まない領域の数を数えて、横走査線２４ごとの横空白領域２８の数として算出する横空白領域数算出処理、（４）縦空白領域２７の数及び横空白領域２８の数に基づいて、文書画像データ２０の行頭位置を判定する行頭位置判定処理、（５）行頭位置が左又は右の場合には、横方向に沿って文字色の画素の横ヒストグラム２９を算出し、行頭位置が上又は下の場合には、縦方向に沿って文字色の画素の縦ヒストグラム３０を算出するヒストグラム算出処理、（６）行頭位置及び横ヒストグラム２９又は縦ヒストグラム３０のピークの位置に基づいて、書字方向及び天地方向を判定する書字方向及び天地方向判定処理、という一連の処理を実行する。これによって、書字方向及び天地方向の判定処理を、短時間に精度良く実行することができる。
【００９３】
また、文書認識装置１は、行頭位置判定処理において、（４−１）縦空白領域２７の数が横空白領域２８の数よりも多いとき、縦例外線２５を除く全ての縦走査線２３に係る縦空白領域２７の数が、１つ左の縦走査線２３に係る縦空白領域２７の数と同一又はそれ以上となる第１パターンであれば、行頭位置を左と決定する、（４−２）縦空白領域２７の数が横空白領域２８の数よりも多いとき、縦例外線２５を除く全ての縦走査線２３に係る縦空白領域２７の数が、１つ右の縦走査線２３に係る縦空白領域２７の数と同一又はそれ以上となる第２パターンであれば、行頭位置を右と決定する、（４−３）縦空白領域２７の数が横空白領域２８の数よりも少ないとき、横例外線２６を除く全ての横走査線２４に係る横空白領域２８の数が、１つ上の横走査線２４に係る横空白領域２８の数と同一又はそれ以上となる第３パターンであれば、行頭位置を上と決定する、（４−４）縦空白領域２７の数が横空白領域２８の数よりも少ないとき、横例外線２６を除く全ての横走査線２４に係る横空白領域２８の数が、１つ下の縦走査線２３に係る横空白領域２８の数と同一又はそれ以上となる第４パターンであれば、行頭位置を下と決定する、ことが望ましい。これによって、行頭位置を正確に判定することができる。
【００９４】
また、文書認識装置１は、行頭位置判定処理において、（４−５）縦空白領域２７の数が横空白領域２８の数よりも多いとき、第１パターン及び第２パターンのいずれでもなければ、横走査線２４上を走査し、走査範囲２１の左端部から文字色の画素までの長さである左余白長５１と、走査範囲２１の右端部から文字色の画素までの長さである右余白長５２とに基づいて、行頭位置を決定する、（４−６）縦空白領域２７の数が横空白領域２８の数よりも少ないとき、第３パターン及び第４パターンのいずれでもなければ、縦走査線２３上を走査し、走査範囲２１の上端部から文字色の画素までの長さである上余白長５３と、走査範囲２２１の下端部から文字色の画素までの長さである下余白長５４とに基づいて、行頭位置を決定する、ことが望ましい。これによって、文書のタイトルなどの一部分が中央寄せになっていても、行頭位置を正確に判定することができる。
【００９５】
また、文書認識装置１は、（７）走査範囲２１の走査単位として走査領域サイズ２２を決定する走査領域サイズ決定処理、を実行し、（２−１）縦空白領域数算出処理において、縦走査線２３上を走査領域サイズ２２ごとに走査する、（３−１）横空白領域数算出処理において、横走査線２４上を走査領域サイズ２２ごとに走査する、ことが望ましい。例えば、走査領域サイズ２２が１文字分の領域であれば、書字方向及び天地方向の判定処理を、より短時間に精度良く実行することができる。
【００９６】
以上、添付図面を参照しながら、本発明に係る文書認識装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００９７】
１………文書認識装置
２０………文書画像データ
２１………走査範囲
２２………走査領域サイズ
２３………縦走査線
２４………横走査線
２５………縦例外線
２６………横例外線
２７………縦空白領域
２８………横空白領域
２９………横ヒストグラム
３０………縦ヒストグラム
５１………左余白長
５２………右余白長
５３………上余白長
５４………下余白長
【図１】
0005838887.tif 000002
【図２】
0005838887.tif 000003
【図３】
0005838887.tif 000004
【図４】
0005838887.tif 000005
【図５】
0005838887.tif 000006
【図６】
0005838887.tif 000007
【図７】
0005838887.tif 000008
【図８】
0005838887.tif 000009
【図９】
0005838887.tif 000010
【図１０】
0005838887.tif 000011
【図１１】
0005838887.tif 000012
【図１２】
0005838887.tif 000013
【図１３】
0005838887.tif 000014
【図１４】
0005838887.tif 000015
【図１５】
0005838887.tif 000016
【図１６】
0005838887.tif 000017
【図１７】
0005838887.tif 000018
【図１８】
0005838887.tif 000019
【図１９】
0005838887.tif 000020