(57)【要約】【課題】文字認識結果の文字画像を描画する場合にあって、文字画像同士が重なり合うことを抑制するようにした画像処理装置を提供する。【解決手段】画像処理装置の受付手段は、文字認識結果を受け付け、決定手段は、前記文字認識結果の文字画像同士が重なり合う場合は、その文字画像が重ならないように、描画する文字画像の大きさを決定し、描画手段は、前記決定手段によって決定された大きさに応じて、前記文字認識結果を描画する。【選択図】図１
2015153352.tif 000002
【特許請求の範囲】
【請求項１】
文字認識結果を受け付ける受付手段と、
前記文字認識結果の文字画像同士が重なり合う場合は、その文字画像が重ならないように、描画する文字画像の大きさを決定する決定手段と、
前記決定手段によって決定された大きさに応じて、前記文字認識結果を描画する描画手段
を具備することを特徴とする画像処理装置。
【請求項２】
前記決定手段は、文字サイズを小さくすること、及び文字幅を小さくすることによって、前記文字画像の大きさを小さくする
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記受付手段は、複数列における前記文字認識結果を受け取り、
前記決定手段は、対象とする列の文字認識結果の文字画像と隣り合う列の文字認識結果の文字画像との間で重なり合う場合は、該対象とする列の文字画像と重ならないように該隣り合う行の位置を変更する
ことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
コンピュータを、
文字認識結果を受け付ける受付手段と、
前記文字認識結果の文字画像同士が重なり合う場合は、その文字画像が重ならないように、描画する文字画像の大きさを決定する決定手段と、
前記決定手段によって決定された大きさに応じて、前記文字認識結果を描画する描画手段
として機能させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、水平走査画素数と水平黒画素幅を計数し、また黒白画素境界を検出する計数／境界検出回路と、計数された該黒画素幅が所定の数値を満足し且つ黒白画素境界検出信号が与えられたとき格納命令を発生する制御部と、該格納命令によって計数／境界検出回路から与えられる水平走査画素数をパターン相対位置として格納するパターン相対位置レジスタとを備えてなることを特徴とする水平パターン検出措置について開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６２−２７１０８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、文字認識結果の文字画像を描画する場合にあって、文字画像同士が重なり合うことを抑制するようにした画像処理装置及び画像処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００５】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、文字認識結果を受け付ける受付手段と、前記文字認識結果の文字画像同士が重なり合う場合は、その文字画像が重ならないように、描画する文字画像の大きさを決定する決定手段と、前記決定手段によって決定された大きさに応じて、前記文字認識結果を描画する描画手段を具備することを特徴とする画像処理装置である。
【０００６】
請求項２の発明は、前記決定手段は、文字サイズを小さくすること、及び文字幅を小さくすることによって、前記文字画像の大きさを小さくすることを特徴とする請求項１に記載の画像処理装置である。
【０００７】
請求項３の発明は、前記受付手段は、複数列における前記文字認識結果を受け取り、前記決定手段は、対象とする列の文字認識結果の文字画像と隣り合う列の文字認識結果の文字画像との間で重なり合う場合は、該対象とする列の文字画像と重ならないように該隣り合う行の位置を変更することを特徴とする請求項１又は２に記載の画像処理装置である。
【０００８】
請求項４の発明は、コンピュータを、文字認識結果を受け付ける受付手段と、前記文字認識結果の文字画像同士が重なり合う場合は、その文字画像が重ならないように、描画する文字画像の大きさを決定する決定手段と、前記決定手段によって決定された大きさに応じて、前記文字認識結果を描画する描画手段として機能させるための画像処理プログラムである。
【発明の効果】
【０００９】
請求項１の画像処理装置によれば、文字認識結果の文字画像を描画する場合にあって、文字画像同士が重なり合うことを抑制することができる。
【００１０】
請求項２の画像処理装置によれば、文字サイズを小さくすること、及び文字幅を小さくすることによって、文字画像の大きさを小さくすることができる。
【００１１】
請求項３の画像処理装置によれば、文字列間で文字画像同士が重なり合うことを抑制することができる。
【００１２】
請求項４の画像処理プログラムによれば、文字認識結果の文字画像を描画する場合にあって、文字画像同士が重なり合うことを抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態の構成例についての概念的なモジュール構成図である。
【図２】文字情報テーブルのデータ構造例を示す説明図である。
【図３】文字フォント情報テーブルのデータ構造例を示す説明図である。
【図４】第１の実施の形態による処理例を示すフローチャートである。
【図５】第１の実施の形態による処理例を示すフローチャートである。
【図６】第２の実施の形態の構成例についての概念的なモジュール構成図である。
【図７】第２の実施の形態による処理例を示すフローチャートである。
【図８】第２の実施の形態による処理例を示すフローチャートである。
【図９】第２の実施の形態による処理例を示す説明図である。
【図１０】清書処理の例を示す説明図である。
【図１１】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００１４】
まず、本実施の形態を説明する前に、その前提又は本実施の形態を利用する画像処理装置について説明する。なお、この説明は、本実施の形態の理解を容易にすることを目的とするものである。
手書き文字又は活字文字、例えば、ホワイトボードや、ノート、印字した紙等を撮影した画像を文字認識し、認識した文字をＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）、ワープロ文書等において活字に置き換える清書機能がある。
この清書機能によってユーザーの視認性や文字検索性、また再利用性が高まるが、自由に記載された文字列を認識して、活字（文字認識結果の文字を描画した文字画像）で置き換える場合、文字列の始点から活字を描画すると位置が合わない文字が出てくる。例えば、図１０（ａ）に示すように手書き文字の原画像１０１０を清書化して、原画像１０１０の文字列の始点（「Ａ」の最左端）から文字認識結果を描画した場合、図１０（ｂ）に示すような清書処理結果画像１０２０になり、文字列の最後の文字「Ｃ」が原画像１０１０の位置とずれてしまう。
また、原画像の文字（文字認識対象の文字）の位置にそのまま活字を当てはめると、文字同士が重なり合ってしまう場合がある。例えば、図１０（ａ）に示すように原画像１０１０を清書化して、原画像１０１０の文字列内の各文字の位置に、文字認識した活字を埋め込む清書化を行うと、図１０（ｃ）に示すように、文字「Ｃ」の位置へ文字「Ｂ」が入り込み、２文字が重なってしまう。
また、原画像の各文字矩形の大きさを用いて、活字の文字サイズを決定すると、図１０（ａ）の例に示す手書きの「Ａ」と「Ｂ」のような場合、１つの文字列内の文字であるにもかかわらず、置き換えた活字の文字サイズが異なることになる。
【００１５】
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（もちろんのことながら、全ての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という意味を有する記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）内のレジスタ等を含んでいてもよい。
【００１６】
第１の実施の形態である画像処理装置１００は、文字認識結果の文字画像を描画する清書処理を行うものであって、図１の例に示すように、フォント情報決定モジュール１１０、フォント描画モジュール１２０、フォント重なり検出モジュール１３０、フォント描画モジュール１４０を有している。
なお、清書後の文字列内の文字の大きさ（以下、フォントサイズともいう）は、１つの文字列内の文字についてフォントサイズは同じとする。
【００１７】
フォント情報決定モジュール１１０は、フォント描画モジュール１２０、フォント重なり検出モジュール１３０、フォント描画モジュール１４０と接続されている。フォント情報決定モジュール１１０は、文字列情報１０６、文字コード・文字矩形座標１０８を受け付け、フォント描画モジュール１２０にフォントサイズ・フォントタイプ・文字位置１１２を渡し、フォント重なり検出モジュール１３０より重なり情報１３２を受け取り、フォント描画モジュール１４０に清書フォントサイズ・フォントタイプ・文字位置１３８を渡す。
文字列情報１０６は、文字認識装置の出力情報であり、内容は手書き文字画像又は活字文字画像に対する文字認識結果であり、文字コード・文字矩形座標１０８を含む。つまり、文字列毎に、各文字画像（１文字分の文字画像）の文字コード、各文字画像（認識対象の文字画像）を囲む外接矩形の位置が含まれている。また、これら以外の情報（例えば、各文字の色を示す情報、認識した文字画像そのもの等）を含んでいてもよい。なお、文字列とは、横書きの場合は１行を指し、縦書きの場合は１列を指す。また、文字コード・文字矩形座標１０８は文字列情報１０６と同じデータであってもよい。例えば、文字列情報１０６は文字情報テーブル２００のようなデータ構造であってもよい。図２は、文字情報テーブル２００のデータ構造例を示す説明図である。文字情報テーブル２００は、文字列毎に文字コード欄２１０、文字矩形座標欄２２０の組を文字数分だけ有している。文字コード欄２１０は、文字認識結果である文字コードを記憶している。文字矩形座標欄２２０は、その文字コードに対応する文字画像（認識対象の文字画像）の外接矩形の位置を記憶している。なお、文字認識装置は、文字画像の認識のほかに、オンライン文字認識を行うものであってもよい。
【００１８】
フォント情報決定モジュール１１０は、文字認識結果である文字コード・文字矩形座標１０８を受け付ける。そして、文字認識結果の文字画像同士が重なり合う場合は、その文字画像が重ならないように、描画する文字画像の大きさを決定する。そのために、「文字認識結果の文字画像同士が重なるか否か」の判断を行う。その判断は、文字認識結果の文字コードに対応する文字画像を、原文字画像の位置に描画して、その文字画像同士が重なり合うか否かによって判断する。なお、「文字コードに対応する文字画像」とは、原文字画像の位置に文字コードの文字画像を描画することである。ただし、この描画は、実際に描画してもよいし、実際には描画せずに、その描画を行ったとした場合の文字画像の外接矩形を生成して、重なりを判断するようにしてもよい。この判断のために、フォント情報決定モジュール１１０は、フォント描画モジュール１２０、フォント重なり検出モジュール１３０を用いる。フォント描画モジュール１２０に渡すフォントサイズ・フォントタイプ・文字位置１１２は、例えば、文字フォント情報テーブル３００のようなデータ構造であってもよい。図３は、文字フォント情報テーブル３００のデータ構造例を示す説明図である。文字フォント情報テーブル３００は、文字列毎に文字コード欄３１０、位置座標欄３２０、フォントサイズ欄３３０、フォントタイプ欄３４０の組を文字数分だけを有している。文字コード欄３１０は、文字認識結果である文字コードを記憶している。位置座標欄３２０は、その文字コードを描画する位置を記憶している。フォントサイズ欄３３０は、その文字コードの描画の際のフォントサイズを記憶している。フォントタイプ欄３４０は、その文字コードの描画の際のフォントタイプを記憶している。フォント情報決定モジュール１１０が、最初にフォントサイズ・フォントタイプ・文字位置１１２に渡す場合は、文字コード・文字矩形座標１０８のデータをそのままフォントサイズ・フォントタイプ・文字位置１１２に入れて渡せばよい。２回目以降のフォントサイズ・フォントタイプ・文字位置１１２は、図５の例を用いて後述するように、文字サイズを小さくしたものにする。なお、フォントタイプは、予め定められたフォントタイプであってもよいし、文字列情報１０６内に含まれているフォントタイプを用いるようにしてもよい。また、文字サイズと同様に、１つの文字列内のフォントタイプは同じとしてもよい。
また、フォント情報決定モジュール１１０は、文字サイズを小さくすること、及び文字幅を小さくすることによって、フォント描画モジュール１４０が描画する文字画像の大きさを小さくするようにしてもよい。
【００１９】
フォント描画モジュール１２０は、フォント情報決定モジュール１１０、フォント重なり検出モジュール１３０と接続されている。フォント描画モジュール１２０は、フォント情報決定モジュール１１０よりフォントサイズ・フォントタイプ・文字位置１１２を受け取り、フォント重なり検出モジュール１３０に文字画像情報１２２を渡す。フォント描画モジュール１２０は、フォントサイズ・フォントタイプ・文字位置１１２にしたがって文字画像を描画し、文字画像情報１２２を生成して、フォント重なり検出モジュール１３０に渡す。なお、フォント重なり検出モジュール１３０に渡す文字画像情報１２２には、フォントサイズ・フォントタイプ・文字位置１１２を含めてもよい。なお、フォント描画モジュール１２０は、処理量を減らすため、重なりの検出を可能にする描画座標情報（文字画像が描かれる座標群）のみを算出し、実際の描画処理は行わなくてもよい。
フォント重なり検出モジュール１３０は、フォント情報決定モジュール１１０、フォント描画モジュール１２０と接続されている。フォント重なり検出モジュール１３０は、フォント描画モジュール１２０より文字画像情報１２２を受け取り、フォント情報決定モジュール１１０に重なり情報１３２を渡す。フォント重なり検出モジュール１３０は、文字画像情報１２２を検証することによって、その文字列内で文字画像同士が重なり合っているか否かを判断する。その判断結果としての重なり情報１３２をフォント情報決定モジュール１１０に渡す。重なり合っているか否かの判断は、対象としている文字画像とその隣にある文字画像との外接矩形が、重なり合っているか否かを判断する。例えば、横書きの場合は、対象としている文字画像の外接矩形の右端の座標が、右隣の文字画像の外接矩形の左端の座標よりも右側にある場合は重なり合っていると判断する。同様に、縦書きの場合は、対象としている文字画像の外接矩形の下端の座標が、下にある文字画像の外接矩形の上端の座標よりも下側にある場合は重なり合っていると判断する。
【００２０】
フォント描画モジュール１４０は、フォント情報決定モジュール１１０と接続されている。フォント描画モジュール１４０は、文字列情報１０６を受け付け、フォント情報決定モジュール１１０より清書フォントサイズ・フォントタイプ・文字位置１３８を受け取り、清書文字列１４２を出力する。フォント描画モジュール１４０は、フォント情報決定モジュール１１０によって決定された大きさに応じて、文字認識結果を描画する。具体的には、清書フォントサイズ・フォントタイプ・文字位置１３８のフォントサイズの各文字を、清書フォントサイズ・フォントタイプ・文字位置１３８内の文字位置に描画して清書文字列１４２を生成して出力する。清書文字列１４２を出力するとは、例えば、プリンタ等の印刷装置で印刷すること、ディスプレイ等の表示装置に表示すること、ＰＤＦやワープロ文書等に埋め込むこと、その文書を文書記憶装置へ書き込むこと、メモリーカード等の記憶媒体に記憶すること、他の情報処理装置へ渡すこと等が含まれる。
【００２１】
図４は、第１の実施の形態による処理例を示すフローチャートである。
ステップＳ４０２では、フォント情報決定モジュール１１０が、文字コード・文字矩形座標１０８を受け付ける。
ステップＳ４０４では、フォント情報決定モジュール１１０が、文字コード・文字矩形座標１０８からフォントサイズ・フォントタイプ・文字位置１１２を決定する。例えば、文字コード・文字矩形座標１０８をそのままフォントサイズ・フォントタイプ・文字位置１１２としてもよい。
ステップＳ４０６では、フォント情報決定モジュール１１０が、フォントサイズ・フォントタイプ・文字位置１１２をフォント描画モジュール１２０に渡す。
ステップＳ４０８では、フォント描画モジュール１２０が、フォントサイズ・フォントタイプ・文字位置１１２にしたがってフォントを描画する。なお、ここでの描画は、実際に文字画像を描画してもよいし、描画する座標だけを算出するだけで、実際には文字画像を描画しなくてもよい。
ステップＳ４１０では、フォント描画モジュール１２０が、描画した文字画像情報１２２をフォント重なり検出モジュール１３０に渡す。
ステップＳ４１２では、フォント重なり検出モジュール１３０が、文字画像情報１２２を解析して、文字の重なりを判定する。前述したように、文字画像の外接矩形を利用すればよい。
【００２２】
ステップＳ４１４では、フォント重なり検出モジュール１３０が、判定結果である重なり情報１３２をフォント情報決定モジュール１１０に渡す。
ステップＳ４１６では、フォント情報決定モジュール１１０が、フォントが重なるか否かを判断し、重なる場合はステップＳ４１８へ進み、それ以外の場合はステップＳ４２０へ進む。
ステップＳ４１８では、フォント情報決定モジュール１１０が、以前のフォントサイズ・フォントタイプ・文字位置１１２からフォントサイズ・フォントタイプ・文字位置１１２を決定し、ステップＳ４０６からの処理を行う。ステップＳ４１８等の処理の詳細については、図５の例に示すフローチャートを用いて後述する。
ステップＳ４２０では、フォント情報決定モジュール１１０が、清書フォントサイズ・フォントタイプ・文字位置１３８をフォント描画モジュール１４０に渡す。
ステップＳ４２２では、フォント描画モジュール１４０が、清書フォントサイズ・フォントタイプ・文字位置１３８にしたがって清書文字列１４２を生成する。
ステップＳ４２４では、フォント描画モジュール１４０が、清書文字列１４２を出力する。
【００２３】
図５は、第１の実施の形態（フォント情報決定モジュール１１０）による処理例を示すフローチャートである。
ステップＳ５０２では、文字列内で最も縦長が高い文字にフォントサイズを合わせる。この処理は、ステップＳ４１８で行ってもよいし、ステップＳ４０４で行ってもよい。
ステップＳ５０４では、フォント重なり検出モジュール１３０からの重なり情報１３２によって文字画像が重なるか否かを判断し、重なる場合はステップＳ５０６へ進み、それ以外の場合は処理を終了する（ステップＳ５９９）。この処理は、ステップＳ４１６と同等のものである。
ステップＳ５０６では、フォントサイズを予め定められた値だけ下げる。
ステップＳ５０８では、フォントサイズが閾値以下であるか否かを判断し、閾値以下である場合はステップＳ５１０へ進み、それ以外の場合はステップＳ５０４へ戻る。
【００２４】
ステップＳ５１０では、フォントタイプを幅が狭いものとする。
ステップＳ５１２では、幅の狭いフォントタイプがないか否かを判断し、ない場合はステップＳ５１４へ進み、それ以外の場合はステップＳ５０２へ戻る。
ステップＳ５１４では、文字列情報から同じフォントで文字列矩形内に入るように、アフィン変換で幅を狭くしたフォントを生成する。
なお、ステップＳ５０６、Ｓ５０８の処理とステップＳ５１０、Ｓ５１２の処理を入れ替えてもよい。
【００２５】
＜第２の実施の形態＞
図６は、第２の実施の形態の構成例についての概念的なモジュール構成図である。
第２の実施の形態である画像処理装置６００は、文字認識結果の文字画像を描画する清書処理を行うものであって、図６の例に示すように、フォント情報決定モジュール６１０、フォント描画モジュール６２０、フォント重なり検出モジュール６３０、文字列周辺探索モジュール６４０、フォント描画モジュール６５０を有している。
例えば、図９（ａ）に示す原画像９１０のように、異なる文字列（２つの文字列）同士が近接している場合は、清書化された場合に文字が重なる可能性がある。図９（ａ）の例の場合、「Ｃ」と「私」の文字画像が重なってしまう。これは、１つの文字列内の重なりだけでは判断できない。
【００２６】
フォント情報決定モジュール６１０は第１の実施の形態のフォント情報決定モジュール１１０と対応し、この他にフォント描画モジュール６２０はフォント描画モジュール１２０と対応し、フォント重なり検出モジュール６３０はフォント重なり検出モジュール１３０と対応し、フォント描画モジュール６５０はフォント描画モジュール１４０と対応している。第１の実施の形態とは異なる。
フォント情報決定モジュール６１０は、フォント描画モジュール６２０、フォント重なり検出モジュール６３０、文字列周辺探索モジュール６４０、フォント描画モジュール６５０と接続されている。フォント情報決定モジュール６１０は、文字列情報６０６、文字コード・文字矩形座標６０８を受け付け、フォント描画モジュール６２０にフォントサイズ・フォントタイプ・文字位置６１２、文字列周辺探索モジュール６４０に文字コード・文字矩形座標６０８を渡し、フォント重なり検出モジュール６３０より重なり情報６３２を受け取り、フォント描画モジュール６５０に清書フォントサイズ・フォントタイプ・文字位置６３８を渡す。ここで、フォント情報決定モジュール６１０は、複数列における文字認識結果である文字コード・文字矩形座標６０８を受け取る。そして、フォント描画モジュール６２０に渡すフォントサイズ・フォントタイプ・文字位置６１２は、対象とする１つの文字列内の文字認識結果を含むものである。複数の文字列における文字認識結果は、文字コード・文字矩形座標６０８として文字列周辺探索モジュール６４０に渡す。そして、フォント情報決定モジュール６１０は、対象とする列の文字認識結果の文字画像と隣り合う列の文字認識結果の文字画像との間で重なり合う場合は、その対象とする列の文字画像と重ならないように隣り合う行の位置を変更する。詳細は、図８の例に示すフローチャートを用いて後述する。
【００２７】
フォント描画モジュール６２０は、フォント情報決定モジュール６１０、フォント重なり検出モジュール６３０と接続されている。フォント描画モジュール６２０は、フォント情報決定モジュール６１０よりフォントサイズ・フォントタイプ・文字位置６１２を受け取り、フォント重なり検出モジュール６３０に文字画像情報６２２を渡す。
フォント重なり検出モジュール６３０は、フォント情報決定モジュール６１０、フォント描画モジュール６２０、文字列周辺探索モジュール６４０と接続されている。フォント重なり検出モジュール６３０は、フォント描画モジュール６２０より文字画像情報６２２を受け取り、フォント情報決定モジュール６１０に重なり情報６３２を渡す。
文字列周辺探索モジュール６４０は、フォント情報決定モジュール６１０、フォント重なり検出モジュール６３０と接続されている。文字列周辺探索モジュール６４０は、フォント情報決定モジュール６１０より文字コード・文字矩形座標６０８を受け取り、フォント重なり検出モジュール６３０に周辺文字情報６４２を渡す。
文字列周辺探索モジュール６４０は、フォント情報決定モジュール６１０から文字コード・文字矩形座標６０８を受け取って、対象としている文字列と隣り合っている文字列を抽出する。そして、対象としている文字列内の文字と予め定められた距離内に存在する文字が、隣り合っている文字列内に存在しているか否かを判断する。存在している場合は、隣り合っている文字列内の文字情報（フォントサイズ・フォントタイプ・文字位置６１２と同等の情報）を周辺文字情報６４２としてフォント重なり検出モジュール６３０に渡す。フォント重なり検出モジュール６３０は、周辺文字情報６４２を受け取った場合は、再度、フォント描画モジュール６２０に対象としている文字列と隣り合っている文字列内の文字画像を描画させる。フォント描画モジュール６２０は、対象としている文字列と隣り合っている文字列内の文字画像を描画して、フォント重なり検出モジュール６３０に渡す。フォント重なり検出モジュール６３０は、文字列内の文字画像の重なり合いと、対象としている文字列と隣り合っている文字列内の文字画像の重なり合いを検出する。
【００２８】
フォント描画モジュール６５０は、フォント情報決定モジュール６１０と接続されている。フォント描画モジュール６５０は、文字列情報６０６を受け付け、フォント情報決定モジュール６１０より清書フォントサイズ・フォントタイプ・文字位置６３８を受け取り、清書文字列６５２を出力する。例えば、図９（ａ）に示した原画像９１０の文字列情報６０６を受け付けた場合は、清書文字列６５２として図９（ｂ）に示した清書処理結果画像９２０を出力する。清書処理結果画像９２０では、２列目の文字列である「私の」は、原画像９１０と比較するとその位置が下になり、１列目の文字列「ＡＢＣ」との重なりがない。
【００２９】
図７は、第２の実施の形態による処理例を示すフローチャートである。図４の例に示したフローチャート内の処理と同等のものは、その旨を記す。
ステップＳ７０２では、フォント情報決定モジュール６１０が、文字コード・文字矩形座標６０８を受け付ける。ステップＳ４０２と同等の処理である。
ステップＳ７０４では、フォント情報決定モジュール６１０が、文字コード・文字矩形座標６０８からフォントサイズ・フォントタイプ・文字位置６１２を決定する。ステップＳ４０４と同等の処理である。
ステップＳ７０６では、フォント情報決定モジュール６１０が、文字コード・文字矩形座標６０８を文字列周辺探索モジュール６４０に渡す。つまり、対象としている文字列以外の文字列内の文字情報を渡す。
ステップＳ７０８では、フォント情報決定モジュール６１０が、フォントサイズ・フォントタイプ・文字位置６１２をフォント描画モジュール６２０に渡す。ステップＳ４０６と同等の処理である。
ステップＳ７１０では、フォント描画モジュール６２０が、フォントサイズ・フォントタイプ・文字位置６１２にしたがってフォントを描画する。ステップＳ４０８と同等の処理である。
ステップＳ７１２では、フォント描画モジュール６２０が、描画した文字画像情報６２２をフォント重なり検出モジュール６３０に渡す。ステップＳ４１０と同等の処理である。
【００３０】
ステップＳ７１４では、文字列周辺探索モジュール６４０が、対象としている文字列の周辺にある文字を探索する。前述したように、隣り合う文字列内の文字との距離を利用する。
ステップＳ７１６では、フォント重なり検出モジュール６３０が、文字画像情報６２２、周辺文字情報６４２を解析して、文字の重なりを判定する。フォント重なり検出モジュール６３０は必要であれば（周辺文字があれば）フォント描画モジュール６２０に周辺にある文字を描画させて、その描画結果の文字画像情報６２２を用いる。
ステップＳ７１８では、フォント重なり検出モジュール６３０が、判定結果である重なり情報６３２をフォント情報決定モジュール６１０に渡す。ステップＳ４１４と同等の処理である。
ステップＳ７２０では、フォント情報決定モジュール６１０が、フォントが重なるか否かを判断し、重なる場合はステップＳ７２２へ進み、それ以外の場合はステップＳ７２４へ進む。ステップＳ４１６と同等の処理である。ステップＳ７２２等の処理の詳細については、図８の例に示すフローチャートを用いて後述する。
ステップＳ７２２では、フォント情報決定モジュール６１０が、以前のフォントサイズ・フォントタイプ・文字位置６１２からフォントサイズ・フォントタイプ・文字位置６１２を決定し、ステップＳ７０８からの処理を行う。
ステップＳ７２４では、フォント情報決定モジュール６１０が、清書フォントサイズ・フォントタイプ・文字位置６３８をフォント描画モジュール６５０に渡す。ステップＳ４２０と同等の処理である。
ステップＳ７２６では、フォント描画モジュール６５０が、清書フォントサイズ・フォントタイプ・文字位置６３８にしたがって清書文字列６５２を生成する。ステップＳ４２２と同等の処理である。
ステップＳ７２８では、フォント描画モジュール６５０が、清書文字列６５２を出力する。ステップＳ４２４と同等の処理である。
【００３１】
図８は、第２の実施の形態による処理例を示すフローチャートである。図５の例に示したフローチャート内の処理と同等のものは、その旨を記す。
ステップＳ８０２では、文字列内で最も縦長が高い文字にフォントサイズを合わせる。ステップＳ５０２と同等の処理である。
ステップＳ８０４では、重なりは周辺文字との重なりがあるか否かを判断し、ある場合はステップＳ８１８へ進み、それ以外の場合はステップＳ８０６へ進む。重なりの態様としては、（１）１つの文字列内の文字画像同士の重なり合いと、（２）対象としている文字列内の文字画像と隣り合う文字列内の文字画像との重なり、の２つがある。ここでは態様（２）の場合を判断対象としている。
ステップＳ８１８では、周辺文字の文字列を対象文字列と重ならないように下げる。具体的には、文字列全体の位置を下に移動するものである。その移動距離は、対象としている文字列内の文字画像と重ならない程度の距離であり、さらに、文字列間の間隔を予め定められた距離とするようにしてもよい。
【００３２】
ステップＳ８０６では、対象文字列内の文字画像が重なるか否かを判断し、重なる場合はステップＳ８０８へ進み、それ以外の場合は処理を終了する（ステップＳ８９９）。ここでは重なりの態様（１）の場合を判断対象としている。
ステップＳ８０８では、フォントサイズを予め定められた値だけ下げる。ステップＳ５０６と同等の処理である。
ステップＳ８１０では、フォントサイズが閾値以下であるか否かを判断し、閾値以下である場合はステップＳ８１２へ進み、それ以外の場合はステップＳ８０６へ戻る。ステップＳ５０８と同等の処理である。
ステップＳ８１２では、フォントタイプを幅が狭いものとする。ステップＳ５１０と同等の処理である。
ステップＳ８１４では、幅の狭いフォントタイプがないか否かを判断し、ない場合はステップＳ８１６へ進み、それ以外の場合はステップＳ８０２へ戻る。ステップＳ５１２と同等の処理である。
ステップＳ８１６では、文字列情報から同じフォントで文字列矩形内に入るように、アフィン変換で幅を狭くしたフォントを生成する。ステップＳ５１４と同等の処理である。
【００３３】
図１１を参照して、本実施の形態の画像処理装置のハードウェア構成例について説明する。図１１に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部１１１７と、プリンタなどのデータ出力部１１１８を備えたハードウェア構成例を示している。
【００３４】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１０１は、前述の実施の形態において説明した各種のモジュール、すなわち、フォント情報決定モジュール１１０、フォント描画モジュール１２０、フォント重なり検出モジュール１３０、フォント描画モジュール１４０、フォント情報決定モジュール６１０、フォント描画モジュール６２０、フォント重なり検出モジュール６３０、文字列周辺探索モジュール６４０、フォント描画モジュール６５０等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００３５】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１０２は、ＣＰＵ１１０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１０３は、ＣＰＵ１１０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス１１０４により相互に接続されている。
【００３６】
ホストバス１１０４は、ブリッジ１１０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス１１０６に接続されている。
【００３７】
キーボード１１０８、マウス等のポインティングデバイス１１０９は、操作者により操作される入力デバイスである。ディスプレイ１１１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などがあり、各種情報をテキストやイメージ情報として表示する。
【００３８】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１１１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ１１０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、文字列情報１０６、文字コード・文字矩形座標１０８、フォントサイズ・フォントタイプ・文字位置１１２、文字画像情報１２２、重なり情報１３２、清書フォントサイズ・フォントタイプ・文字位置１３８、清書文字列１４２等が格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【００３９】
ドライブ１１１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体１１１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース１１０７、外部バス１１０６、ブリッジ１１０５、及びホストバス１１０４を介して接続されているＲＡＭ１１０３に供給する。リムーバブル記録媒体１１１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【００４０】
接続ポート１１１４は、外部接続機器１１１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１１１４は、インタフェース１１０７、及び外部バス１１０６、ブリッジ１１０５、ホストバス１１０４等を介してＣＰＵ１１０１等に接続されている。通信部１１１６は、通信回線に接続され、外部とのデータ通信処理を実行する。データ読み取り部１１１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部１１１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００４１】
なお、図１１に示す画像処理装置のハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図１１に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図１１に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００４２】
また、前述の実施の形態の説明において、予め定められた値との比較において、「以上」、「以下」、「より大きい」、「より小さい（未満）」としたものは、その組み合わせに矛盾が生じない限り、それぞれ「より大きい」、「より小さい（未満）」、「以上」、「以下」としてもよい。
【００４３】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリーカード等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【００４４】
１００…画像処理装置
１０６…文字列情報
１０８…文字コード・文字矩形座標
１１０…フォント情報決定モジュール
１１２…フォントサイズ・フォントタイプ・文字位置
１２０…フォント描画モジュール
１２２…文字画像情報
１３０…フォント重なり検出モジュール
１３２…重なり情報
１３８…清書フォントサイズ・フォントタイプ・文字位置
１４０…フォント描画モジュール
１４２…清書文字列
６００…画像処理装置
６０６…文字列情報
６０８…文字コード・文字矩形座標
６１０…フォント情報決定モジュール
６１２…フォントサイズ・フォントタイプ・文字位置
６２０…フォント描画モジュール
６２２…文字画像情報
６３０…フォント重なり検出モジュール
６３２…重なり情報
６３８…清書フォントサイズ・フォントタイプ・文字位置
６４０…文字列周辺探索モジュール
６４２…周辺文字情報
６５０…フォント描画モジュール
６５２…清書文字列
【図１】
2015153352.tif 000003
【図２】
2015153352.tif 000004
【図３】
2015153352.tif 000005
【図４】
2015153352.tif 000006
【図５】
2015153352.tif 000007
【図６】
2015153352.tif 000008
【図７】
2015153352.tif 000009
【図８】
2015153352.tif 000010
【図９】
2015153352.tif 000011
【図１０】
2015153352.tif 000012
【図１１】
2015153352.tif 000013