(57)【特許請求の範囲】
【請求項１】
電子文書内の画素塊の矩形に関する情報を用いて、該電子文書内の行又は列であるラインを抽出するライン抽出手段と、
前記ライン抽出手段によって抽出されたラインである行の高さ又は該ラインである列の幅に基づいて第１の代表値を算出する第１代表値算出手段と、
前記ライン抽出手段によって抽出されたライン内の画素塊間の間隔に基づいて第２の代表値を算出する第２代表値算出手段と、
前記第１代表値及び前記第２代表値に基づいて、文字列が選択された場合に、その文字列を囲む反転矩形形状が長方形となるように、文字同士の矩形高さ又は矩形幅が揃い、矩形同士の隙間が空かないように、前記電子文書内の画素塊を囲む矩形の位置及び大きさを算出する矩形算出手段
を具備することを特徴とする情報処理装置。
【請求項２】
前記電子文書内の画素塊の矩形に関する情報として、該画素塊の矩形の高さ又は幅方向の位置を含み、
前記ライン抽出手段は、該画素塊の矩形の高さ又は幅方向の位置を用いて、該画素塊を含むラインである各行の高さ又は各列の幅を抽出する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１代表値算出手段は、前記ラインである行の高さ又は列の幅の値における頻度数に基づいて第１の代表値を算出する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第２代表値算出手段は、前記ライン内の画素塊間の間隔における頻度数に基づいて第２の代表値を算出する
ことを特徴とする請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記矩形算出手段は、前記電子文書内に同等の形状の画素塊がある場合には、該画素塊を囲む矩形の位置及び大きさを同等の値とする
ことを特徴とする請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記矩形算出手段は、前記電子文書内の文字の言語に基づいて、前記画素塊を囲む矩形の大きさを算出する
ことを特徴とする請求項１から５のいずれか一項に記載の情報処理装置。
【請求項７】
コンピュータを、
電子文書内の画素塊の矩形に関する情報を用いて、該電子文書内の行又は列であるラインを抽出するライン抽出手段と、
前記ライン抽出手段によって抽出されたラインである行の高さ又は該ラインである列の幅に基づいて第１の代表値を算出する第１代表値算出手段と、
前記ライン抽出手段によって抽出されたライン内の画素塊間の間隔に基づいて第２の代表値を算出する第２代表値算出手段と、
前記第１代表値及び前記第２代表値に基づいて、文字列が選択された場合に、その文字列を囲む反転矩形形状が長方形となるように、文字同士の矩形高さ又は矩形幅が揃い、矩形同士の隙間が空かないように、前記電子文書内の画素塊を囲む矩形の位置及び大きさを算出する矩形算出手段
として機能させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理プログラムに関する。
【背景技術】
【０００２】
電子ドキュメントを記述できる電子ドキュメントフォーマットが存在する。例えば、ＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）（登録商標）といわれるものがある。
このような電子ドキュメントでは、ＰＣ上で、その電子ドキュメントを表示することが行われる。
そして、その電子ドキュメントに記述されているテキスト情報を、操作者の操作に応じてＰＣ上で選択し、コピー＆ペースト等の処理が行われる。テキスト情報をＰＣ上で選択する（例えば、電子ドキュメントを表示しているディスプレイ上に表示されているテキスト位置でマウスを左クリックしながらテキスト位置を右に移動させる等の動作でテキスト情報を選択することができる）場合、選択したテキスト位置が反転して、どのテキストを選択しているかを示すようなビューワが存在している。
一方、画像を文字認識して、電子ドキュメントを生成することも行われている。
【０００３】
これに関連する技術として、例えば、特許文献１には、入力画像より文字もしくは文字の要素に外接する矩形を抽出する矩形抽出手段、該矩形抽出手段により抽出された矩形内の画像に対し、指定可能な複数のモード中より指定されたモードにしたがった変倍処理を施す変倍処理手段、前記矩形抽出手段により抽出された矩形の座標を、指定可能な複数のモード中より指定されたモードにしたがって変換する座標変換手段、及び、前記変倍後の矩形内画像を前記座標変換手段により変換後の座標にしたがって印字位置を制御し印刷する出力手段を具備する文字列整形装置が開示されている。
【０００４】
また、例えば、特許文献２には、認識された文字を、記載されているテキストと文字の大きさや位置等を等しく、アウトフォントで描くことができることを実現することを目的とし、テキストコード情報と文字のレイアウト情報を有する認識文字に関する情報を得る認識手段と、文字のアウトフォントデータを保持するアウトフォントテーブルと、これを参照して、得られた認識文字に外接する矩形を、アウトラインフォントの文字ボックスと描かれる文字部領域との比で拡大し、拡大された外接矩形を文字ボックスデータとして用いて情報を修正する文字ボックス拡大手段と、認識された文字列中の区切りを判定する手段と、当該区切りの間の文字数で文字ボックスの幅を均等に割り付けて得られた幅で拡大された外接矩形からなる文字ボックスデータを修正する手段と、を有し、情報に基づいてアウトフォントにより文字を描いたときに小さくなることを回避し、また、区切られた文字列をまとめて取り扱うことを可能としていることが開示されている。
【特許文献１】特開平０４−１６７１８８号公報
【特許文献２】特許平０６−１７６１８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、電子文書から画素塊である例えば文字を選択するような場合に、従来技術を用いると、その文字を選択して表示する反転形状が文字毎に個別になり、ラインとして不揃いの反転形状になってしまう。
本発明は、電子文書内の画素塊を囲む矩形の位置及び大きさを揃えて、ラインの形状を整えるようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、電子文書内の画素塊の矩形に関する情報を用いて、該電子文書内の行又は列であるラインを抽出するライン抽出手段と、前記ライン抽出手段によって抽出されたラインである行の高さ又は該ラインである列の幅に基づいて第１の代表値を算出する第１代表値算出手段と、前記ライン抽出手段によって抽出されたライン内の画素塊間の間隔に基づいて第２の代表値を算出する第２代表値算出手段と、前記第１代表値及び前記第２代表値に基づいて、文字列が選択された場合に、その文字列を囲む反転矩形形状が長方形となるように、文字同士の矩形高さ又は矩形幅が揃い、矩形同士の隙間が空かないように、前記電子文書内の画素塊を囲む矩形の位置及び大きさを算出する矩形算出手段を具備することを特徴とする情報処理装置である。
【０００７】
請求項２の発明は、前記電子文書内の画素塊の矩形に関する情報として、該画素塊の矩形の高さ又は幅方向の位置を含み、前記ライン抽出手段は、該画素塊の矩形の高さ又は幅方向の位置を用いて、該画素塊を含むラインである各行の高さ又は各列の幅を抽出することを特徴とする請求項１に記載の情報処理装置である。
【０００８】
請求項３の発明は、前記第１代表値算出手段は、前記ラインである行の高さ又は列の幅の値における頻度数に基づいて第１の代表値を算出することを特徴とする請求項１又は２に記載の情報処理装置である。
【０００９】
請求項４の発明は、前記第２代表値算出手段は、前記ライン内の画素塊間の間隔における頻度数に基づいて第２の代表値を算出することを特徴とする請求項１から３のいずれか一項に記載の情報処理装置である。
【００１０】
請求項５の発明は、前記矩形算出手段は、前記電子文書内に同等の形状の画素塊がある場合には、該画素塊を囲む矩形の位置及び大きさを同等の値とすることを特徴とする請求項１から４のいずれか一項に記載の情報処理装置である。
【００１１】
請求項６の発明は、前記矩形算出手段は、前記電子文書内の文字の言語に基づいて、前記画素塊を囲む矩形の大きさを算出することを特徴とする請求項１から５のいずれか一項に記載の情報処理装置である。
【００１２】
請求項７の発明は、コンピュータを、電子文書内の画素塊の矩形に関する情報を用いて、該電子文書内の行又は列であるラインを抽出するライン抽出手段と、前記ライン抽出手段によって抽出されたラインである行の高さ又は該ラインである列の幅に基づいて第１の代表値を算出する第１代表値算出手段と、前記ライン抽出手段によって抽出されたライン内の画素塊間の間隔に基づいて第２の代表値を算出する第２代表値算出手段と、前記第１代表値及び前記第２代表値に基づいて、文字列が選択された場合に、その文字列を囲む反転矩形形状が長方形となるように、文字同士の矩形高さ又は矩形幅が揃い、矩形同士の隙間が空かないように、前記電子文書内の画素塊を囲む矩形の位置及び大きさを算出する矩形算出手段として機能させることを特徴とする情報処理プログラムである。
【発明の効果】
【００１３】
請求項１の情報処理装置によれば、電子文書内の画素塊を囲む矩形の位置及び大きさを揃えて、ラインの形状を整えることができる。
【００１４】
請求項２の情報処理装置によれば、予め定めた値ではなく、その電子文書内のラインに合わせて各行の高さ又は各列の幅を抽出することができる。
【００１５】
請求項３の情報処理装置によれば、予め定めた値ではなく、その電子文書内のラインに合わせて第１の代表値を算出することができる。
【００１６】
請求項４の情報処理装置によれば、予め定めた値ではなく、その電子文書内の画素塊間の間隔に合わせて第２の代表値を算出することができる。
【００１７】
請求項５の情報処理装置によれば、同等の形状の画素塊に対しては、同等の画素塊を囲む矩形とすることができる。
【００１８】
請求項６の情報処理装置によれば、その言語に用いられる文字の特徴に沿った画素塊を囲む矩形の大きさを算出することができる。
【００１９】
請求項７の情報処理プログラムによれば、電子文書内の画素塊を囲む矩形の位置及び大きさを揃えて、ラインの形状を整えることができる。
【発明を実施するための最良の形態】
【００２０】
まず、本実施の形態が対象とする電子ドキュメントについて説明する。
例えば、図９に示す例のように「美しい日本」という文字列が表示されている電子ドキュメント９００の「美しい日本」のテキストをＰＣ上で選択すると、図１０に示す例のように「美しい日本」の部分が反転して（図１０に示す選択テキスト１００１）、「美しい日本」が選択されたことをユーザに示すことができる。
あるいは、前述のようにテキストを選択した状態で、ＰＣ上でコピー＆ペーストを行うと、別のファイル上に「美しい日本」というテキスト情報をコピーすることが可能となる。図１１に示す例のように、ワードプロセッサ等のような別のアプリケーションファイル（図１１に示す電子ドキュメント１１００）上に、テキスト情報をペーストすることができる。
【００２１】
次に、このような電子ドキュメント内の文字形状を指定するため、ＰＤＦなどのように、フォント情報を電子ドキュメント内に包含させることができるものがある。電子ドキュメントを表示あるいはプリントする場合に、電子ドキュメントを作成するユーザの意図通りの文字形状を復元するため、電子ドキュメント内にフォント情報（文字形状情報）を埋め込んでしまう。このように電子ドキュメント内にフォント情報を埋め込んでしまうことによって、同じフォント情報を持っていない電子ドキュメントの受け手（プリンタやＰＣ）が、電子ドキュメントの作成者と全く同じ文字形状を復元することができるようになる。
【００２２】
前述したように、電子ドキュメント内の文字形状を指定するためにフォント情報（文字形状情報）を埋め込む際に、電子ドキュメントの受け手（プリンタやＰＣ）のデバイス情報に合せて文字部分の解像度を上げたり、編集や再利用が可能なようにアウトライン化するなどの処理が行われる。ここで文字のアウトライン化とは、文字の輪郭形状をベジエのような曲線で近似して表す方法である。
このように、文字形状を指定するためのフォント情報の文字部分に前述したような画像処理が施された場合に、文字部分の画像処理に応じた適切なフォント情報の更新が行われないと、電子ドキュメントをビューワで閲覧した場合のテキスト情報選択動作の挙動がオリジナルの電子ドキュメントと異なることがある。
例えば図１２に示す例のように、「美しい日本」のテキストを選択したことを示す反転矩形形状（図１２に示す選択テキスト１２０１〜１２０５）が、図１０で示した例のように整った長方形の反転矩形形状にはならず、各文字で矩形が独立し、さらにはその大きさも異なる矩形形状となり、反転矩形形状の品質が低下する。これは文字部分の画像処理によりオリジナルのフォント情報に存在した“文字列として選択された場合の形状も考慮した”矩形情報が失われているか、あるいは適切に情報の修正が行われていないことに起因する。
したがって、反転矩形形状を整ったものにするためには、電子ドキュメント内に埋め込む文字矩形情報を適切に修正する必要がある。
本実施の形態によって出力される電子ドキュメントは、フォント情報が埋め込まれており、その文字列を選択した場合における反転矩形形状の品質劣化が抑制されたものである。
【００２３】
次に、本実施の形態の概要について説明する。
本実施の形態では、電子ドキュメントに埋め込まれるフォント情報内の矩形情報の修正を、文字毎の情報にのみ基づくのではなく、その電子ドキュメント全体から矩形情報の修正に必要な情報を抽出又は算出して、それらに基づいて文字毎の矩形の修正を行うものである。
【００２４】
具体的には、横書きの電子ドキュメントの場合は以下のようにする。
（１）電子ドキュメント内の文字外接矩形情報（その電子ドキュメント内の絶対座標値及び矩形サイズ）から行を抽出する。
（２）行の高さとして、すべての文字外接矩形が収まるような最小値を求める。
（３）さらに電子ドキュメント内の文字外接矩形情報から外接矩形間隔を求める。
（４）各行の高さの集合から、矩形高さの代表値を決定する。
（５）各外接矩形間隔の集合から、電子ドキュメント中の文字外接矩形に隙間が生じないように外接矩形間隔の代表値を決定する。
（６）文字外接矩形情報、矩形高さの代表値及び外接矩形間隔の代表値に基づいて文字毎の矩形を修正する。
【００２５】
また、縦書きの電子ドキュメントの場合は以下のようにする。
（１）電子ドキュメント内の文字外接矩形情報（その電子ドキュメント内の絶対座標値及び矩形サイズ）から列を抽出する。
（２）列の幅として、すべての文字外接矩形が収まるような最小値を求める。
（３）さらに電子ドキュメント内の文字外接矩形情報から外接矩形間隔を求める。
（４）各列幅の集合から、矩形幅の代表値を決定する。
（５）各外接矩形間隔の集合から、電子ドキュメント中の文字外接矩形に隙間が生じないように外接矩形間隔の代表値を決定する。
（６）文字外接矩形情報、矩形幅の代表値及び外接矩形間隔の代表値に基づいて文字毎の矩形を修正する。
【００２６】
本実施の形態では、電子ドキュメント内の文字外接矩形情報から、行又は列を抽出し、その抽出した行又は列に基づいて、文字列を選択した場合にでも反転矩形形状が揃うように文字矩形情報の幅又は高さの修正を行い、文字列選択時の反転矩形形状の劣化を抑えるものである。
【００２７】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、コンピュータ・プログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能にほぼ一対一に対応しているが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。
【００２８】
以下、行又は列をラインと称する。また、横書きの電子ドキュメントを対象とした場合を主に説明する。したがって、横書きの場合の行の高さ又は縦書きの場合の列の幅として、行の高さを主に例示して説明する。
また、画素塊とは、４連結又は８連結で連続する画素領域を少なくとも含み、これらの画素領域の集合をも含む。これらの画素領域の集合とは、４連結等で連続した画素領域が複数あり、その複数の画素領域は近傍にあるものをいう。ここで、近傍にあるものとは、例えば、互いの画素領域が距離的に近いもの、文章としての１行から１文字ずつ切り出すように縦又は横方向に射影し、空白地点で切り出した画像領域、又は所定間隔で切り出した画像領域等がある。例えば、文字認識処理を行って、１文字として認識された画像を１つの画素塊としてもよい。
なお、１つの画素塊として、１文字の画像となる場合が多い。以下、画素塊のことを文字又は文字画像ともいう。
【００２９】
本実施の形態は、図１に示すように、ライン認識処理モジュール１１０、ライン特徴算出モジュール１２０、代表値算出処理モジュール１３０、文字情報補正処理モジュール１４０を有している。
【００３０】
ライン認識処理モジュール１１０は、ライン特徴算出モジュール１２０と接続されており、電子ドキュメント内の画素塊の矩形に関する情報を用いて、その電子ドキュメント内の行又は列であるラインを抽出し、その抽出したラインに関する情報をライン特徴算出モジュール１２０へ渡す。
【００３１】
ライン認識処理モジュール１１０について、より詳細に説明する。
ライン認識処理モジュール１１０は、文字情報データを受け付ける。ここでいう文字情報データとは、電子ドキュメント中における文字の絶対座標、文字の大きさを表す外接矩形サイズ（外接矩形幅、高さ）、縦書き文字なのか横書き文字なのかを表す情報などである。
【００３２】
次にライン認識処理モジュール１１０は、受け付けた文字情報データに基づいて、ラインを抽出する。例えば、外接矩形の高さ方向の位置（ｘ座標）を用いて、その外接矩形を含むラインである各行の高さを抽出する。より詳細な例について、図２に行抽出の手法を示す。
ライン認識処理モジュール１１０は、図２（ａ）の例に示すように、注目文字情報データの外接矩形（注目文字矩形２１２）の左上ｙ座標（ｕｐｐｅｒ＿ｙ）が、一つ前の文字情報データの外接矩形（注目文字矩形２１１）の左下ｙ座標（ｌｏｗｅｒ＿ｙ）より小さいときは（ｕｐｐｅｒ＿ｙ＜ｌｏｗｅｒ＿ｙ）、その注目文字情報データの外接矩形（注目文字矩形２１２）は、注目文字矩形２１１と同じ行であると認識する。なお、左上を原点（０，０）としている。
また、図２（ｂ）の例に示すように、注目文字情報データの外接矩形（注目文字矩形２２２）の左上ｙ座標（ｕｐｐｅｒ＿ｙ）が、一つ前の文字情報データの外接矩形（注目文字矩形２２１）の左下ｙ座標（ｌｏｗｅｒ＿ｙ）より大きいときは（ｌｏｗｅｒ＿ｙ＜ｕｐｐｅｒ＿ｙ）、異なる行であると認識する。
そして、同じライン内にあると認識された文字情報データの列をライン特徴算出モジュール１２０へ渡す。
なお、受け付けた文字情報データは、文字画像の外接矩形の出現順（例えば、横書きの場合は、左上から右へ走査し、次の行ではまた左から右へ走査した順番に並んでいる）となっているので、一つ前の文字情報データの外接矩形とは、出現順で一つ前である。また、外接矩形の左上の座標を用いてソートしてもよい。
【００３３】
ライン特徴算出モジュール１２０は、ライン認識処理モジュール１１０、代表値算出処理モジュール１３０と接続されており、行高列幅算出モジュール１２１、矩形間距離算出モジュール１２２を有している。ライン認識処理モジュール１１０により同じラインと認識された文字情報データを受け取り、そのラインに関する特徴を算出し、その算出したラインに関する情報を代表値算出処理モジュール１３０へ渡す。行高列幅算出モジュール１２１は行の高さを算出し、矩形間距離算出モジュール１２２は矩形間の距離を算出する。
つまり、ライン認識処理モジュール１１０によって同じ行と認識された文字情報データ列から行高さ及び外接矩形間距離などのラインに関する特徴を算出する。
【００３４】
図３の例に示すように、行高列幅算出モジュール１２１は、行高さｈを次のように算出する。同じラインに属する文字情報データ（文字矩形３０１〜３９９）の座標値からｍａｘ＿ｙ、ｍｉｎ＿ｙを求める。つまり、そのライン内で、左下座標のｙ座標内の最大値をｍａｘ＿ｙ（文字矩形３９９）とし、左上座標のｙ座標内の最小値をｍｉｎ＿ｙ（文字矩形３０３）とする。そして、行高さｈ  ＝  ｍａｘ＿ｙ  −  ｍｉｎ＿ｙ  として求める。なお、ｍａｘ＿ｙ、ｍｉｎ＿ｙのそれぞれの値も保持する。
【００３５】
また、矩形間距離算出モジュール１２２は、外接矩形間距離を同じ行に属する隣接する文字情報データの外接矩形間距離ｇ０（文字矩形３０１と文字矩形３０２間の距離、以下同様），ｇ１，・・・，ｇｎの平均値として求めてもよいし、またリストデータとしてｇ０，ｇ１，・・・，ｇｎすべてを保持してもよい。
【００３６】
代表値算出処理モジュール１３０は、ライン特徴算出モジュール１２０、文字情報補正処理モジュール１４０と接続されており、行高列幅代表値算出モジュール１３１、矩形間距離代表値算出モジュール１３２を有している。ライン特徴算出モジュール１２０からラインに関する情報を受け取り、２つの代表値（行の高さと外接矩形間の距離）を算出し、その算出した代表値を文字情報補正処理モジュール１４０へ渡す。行高列幅代表値算出モジュール１３１は行の高さの代表値を算出し、矩形間距離代表値算出モジュール１３２はライン内の矩形間の距離の代表値を算出する。
【００３７】
つまり、代表値算出処理モジュール１３０は、ライン特徴算出モジュール１２０で算出された文書中すべての行の特徴（行高さ、外接矩形間距離）から文字情報データの補正に用いる外接矩形の高さの代表値、及びライン内の外接矩形間距離の代表値を算出する。
図４に示す例は、横軸を行高さ、縦軸を同じ行高さを持つ行の本数（頻度数）とした場合のヒストグラムを示したものである。図４の例に示すように、行高列幅算出モジュール１２１で算出される行高さは、対象としている電子ドキュメント中で用いられる文字の大きさに基づいて分布するため、ヒストグラム中にはある行高さの値を中心とした山ができる。つまり、図４で示す例では３つの山（グループ４０１〜４０３）があるため、ドキュメント中に３種類の文字の大きさが使われていることになる。
【００３８】
行高列幅代表値算出モジュール１３１は、図４の例に示すようなヒストグラムを生成し、ヒストグラムの山（グループ４０１〜４０３）を検出して、行高さの代表値（図４の例の場合では、Ｈ１、Ｈ２、Ｈ３）を算出する。それぞれの代表値は、ヒストグラムの各山での最大値を超えるような値とする。また図５の例に示すように、同じ高さを持つ行の本数に対して閾値Ｔｈを設けて、その閾値以上で行高さとしてその山における最大の値とするようにしてもよい。つまり、図５に示す例では、行高さの代表値は、Ｈ１１、Ｈ２２、Ｈ３３となる。
【００３９】
また矩形間距離代表値算出モジュール１３２は、外接矩形間距離に関して前記の行高さの場合と同様に、ヒストグラムを生成し、ヒストグラムの山を検出して、複数の外接矩形間距離の代表値（Ｇ１、Ｇ２、…Ｇｎ）を算出する。
つまり、図６に示す例は、横軸を矩形間距離、縦軸を同じ矩形間距離を持つ矩形間の個数（頻度数）とした場合のヒストグラムを示したものである。図６の例に示すように、矩形間距離算出モジュール１２２で算出される矩形間距離は、対象としている電子ドキュメント中で用いられる文字間の距離に基づいて分布するため、ヒストグラム中にはある行における矩形間距離の値を中心とした山ができる。つまり、図６で示す例では３つの山（グループ６０１〜６０３）があるため、ドキュメント中に３種類の文字間の距離が使われていることになる。
【００４０】
矩形間距離代表値算出モジュール１３２は、図６の例に示すようなヒストグラムを生成し、ヒストグラムの山（グループ６０１〜６０３）を検出して、矩形間距離の代表値（図６の例の場合では、Ｇ１、Ｇ２、Ｇ３）を算出する。それぞれの代表値は、ヒストグラムの各山での最大値を超えるような値とする。また図７の例に示すように、同じ矩形間距離を持つ矩形間距離の個数に対して閾値Ｔｈを設けて、その閾値以上で矩形間距離としてその山における最大の値とするようにしてもよい。つまり、図７に示す例では、矩形間距離の代表値は、Ｇ１１、Ｇ２２、Ｇ３３となる。
【００４１】
文字情報補正処理モジュール１４０は、代表値算出処理モジュール１３０と接続されており、代表値算出処理モジュール１３０から２つの代表値を受け取り、文字情報データを補正し、その補正した文字情報データを出力する。
【００４２】
次に、文字情報補正処理モジュール１４０は、図８の例に示すように、ライン特徴算出モジュール１２０で算出されたｍｉｎ＿ｙ、ｍａｘ＿ｙ、代表値算出処理モジュール１３０で算出された代表値（Ｈ１、Ｈ２、・・・Ｈｎ）、（Ｇ１、Ｇ２、…Ｇｎ）で、各ライン毎に分類された文字情報データを補正する。各補正値は以下のように算出する。
【００４３】
補正矩形高さＨは、補正対象の文字情報データが属する行高さｈに最も近い行高さの代表値（Ｈ１、Ｈ２、・・・Ｈｎ）から選択する。
補正矩形幅Ｗは、補正対象の文字情報データが属する行の平均外接矩形間距離に最も近い外接矩形間距離の代表値（Ｇ１、Ｇ２、…Ｇｎ）を選択し、以下の式（１）を用いて算出する。
Ｗ  ＝  Ｇ  ＋  ｗ          ・・・・・      式（１）
ここでＧは選択された矩形間距離の代表値であり、ｗは補正前（ライン認識処理モジュール１１０が受け付けた元の文字情報データのもの）の外接矩形幅である。
【００４４】
補正矩形８２０の左上の座標値（ｎｅｗ＿ｘ，ｎｅｗ＿ｙ）は、以下の式（２）で算出する。
ｎｅｗ＿ｘ  ＝  ｘ  −  Ｇ／２
ｎｅｗ＿ｙ  ＝  ｍｉｎ＿ｙ  −  （Ｈ  −  ｈ）／２  ・・・・・      式（２）
ここでｘは補正前の外接矩形８１０の左上のｘ座標値、Ｇは選択された外接矩形間距離の代表値、ｍｉｎ＿ｙは補正対象の文字情報データが属する行のｙ座標の最小値、Ｈは補正矩形高さ、ｈは補正前の行高さである。
【００４５】
補正矩形８２０から外接矩形８１０への相対移動量ｓｈｉｆｔｘ、ｓｈｉｆｔｙは、以下の式（３）で算出する。
ｓｈｉｆｔｘ  ＝  Ｇ／２
ｓｈｉｆｔｙ  ＝  ｙ  −  ｎｅｗ＿ｙ              ・・・・・      式（３）
ここでｙは補正前の外接矩形８１０の左上ｙ座標値である。
【００４６】
前述したように文字情報補正処理モジュール１４０では、入力された文字情報データの外接矩形情報から補正文字矩形を生成し、文字同士の矩形高さが揃い、また矩形同士の隙間が空かないような補正を行う。
【００４７】
また文字情報補正処理モジュール１４０は、電子ドキュメント内に同等の形状の文字がある場合（文字画像として同等である場合又は外接矩形として同等である場合）には、補正文字矩形の位置及び大きさを同等の値とするようにしてもよい。そして、それら補正文字矩形のデータを補正文字情報データ内で共有することによって、電子ドキュメント全体のデータ量を削減するようにしてもよい。
【００４８】
また文字情報補正処理モジュール１４０は、前述した補正に加えて、電子ドキュメント内の文字の言語に基づいて、補正後の文字矩形の大きさを算出するようにしてもよい。例えば、対象とする電子ドキュメントが日本語の場合には、補正後の文字矩形が正方形となるように、補正矩形幅Ｗを補正矩形高さＨと等しくなるよう設定するようにしてもよい。なお、対象とする電子ドキュメント内の文字の言語の判断は、その電子ドキュメント内に含まれている言語に関するヘッダ、文字コード、画像である場合は文字認識処理の結果等を用いて行う。
【００４９】
図１３を参照して、本実施の形態のハードウェア構成例について説明する。図１３に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部１３１７と、プリンタなどのデータ出力部１３１８を備えたハードウェア構成例を示している。
【００５０】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１３０１は、前述の実施の形態において説明した各種のモジュール、すなわち、ライン認識処理モジュール１１０、ライン特徴算出モジュール１２０、代表値算出処理モジュール１３０、文字情報補正処理モジュール１４０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００５１】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１３０２は、ＣＰＵ１３０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３０３は、ＣＰＵ１３０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス１３０４により相互に接続されている。
【００５２】
ホストバス１３０４は、ブリッジ１３０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス１３０６に接続されている。
【００５３】
キーボード１３０８、マウス等のポインティングデバイス１３０９は、操作者により操作される入力デバイスである。ディスプレイ１３１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などからなり、各種情報をテキストやイメージ情報として表示する。
【００５４】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１３１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ１３０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、文字情報データや文字情報補正処理モジュール１４０の処理結果データなどが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【００５５】
ドライブ１３１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体１３１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース１３０７、外部バス１３０６、ブリッジ１３０５、及びホストバス１３０４を介して接続されているＲＡＭ１３０３に供給する。リムーバブル記録媒体１３１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【００５６】
接続ポート１３１４は、外部接続機器１３１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１３１４は、インタフェース１３０７、及び外部バス１３０６、ブリッジ１３０５、ホストバス１３０４等を介してＣＰＵ１３０１等に接続されている。通信部１３１６は、ネットワークに接続され、外部とのデータ通信処理を実行する。データ読み取り部１３１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部１３１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００５７】
なお、図１３に示すハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図１３に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図１３に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００５８】
前記実施の形態においては、主に横書き電子ドキュメントの場合の行の高さを用いることを示したが、縦書きの場合は列の幅を同様に用いる。
なお、数式を用いて説明したが、数式には、その数式と同等のものを含めてもよい。同等のものとは、その数式そのものの他に、最終的な結果に影響を及ぼさない程度の数式の変形、または数式をアルゴリズミックな解法で解くこと等が含まれる。
【００５９】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【図面の簡単な説明】
【００６０】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】ライン認識処理モジュールによるラインの抽出処理例を示す説明図である。
【図３】ライン特徴算出モジュールによるライン特徴の抽出処理例を示す説明図である。
【図４】行高さの代表値の算出処理例を示す説明図である。
【図５】行高さの代表値の算出処理例を示す説明図である。
【図６】矩形間距離の代表値の算出処理例を示す説明図である。
【図７】矩形間距離の代表値の算出処理例を示す説明図である。
【図８】文字矩形の補正の算出処理例を示す説明図である。
【図９】テキストが表示されている電子ドキュメントの表示例を示す説明図である。
【図１０】テキストを選択した状態の電子ドキュメントの表示例を示す説明図である。
【図１１】別のアプリケーションにテキストを複写した場合の別の電子ドキュメントの表示例を示す説明図である。
【図１２】画像処理後のフォントを埋め込んだ電子ドキュメントにおいて、テキストを選択した状態の表示例を示す説明図である。
【図１３】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【符号の説明】
【００６１】
１１０…ライン認識処理モジュール
１２０…ライン特徴算出モジュール
１２１…行高列幅算出モジュール
１２２…矩形間距離算出モジュール
１３０…代表値算出処理モジュール
１３１…行高列幅代表値算出モジュール
１３２…矩形間距離代表値算出モジュール
１４０…文字情報補正処理モジュール
【図１】
0004900271.tif 000002
【図２】
0004900271.tif 000003
【図３】
0004900271.tif 000004
【図４】
0004900271.tif 000005
【図５】
0004900271.tif 000006
【図６】
0004900271.tif 000007
【図７】
0004900271.tif 000008
【図８】
0004900271.tif 000009
【図９】
0004900271.tif 000010
【図１０】
0004900271.tif 000011
【図１１】
0004900271.tif 000012
【図１２】
0004900271.tif 000013
【図１３】
0004900271.tif 000014