(57)【要約】【課題】  画像データに含まれる複数個の文字を適切に拡大する技術を提供すること。【解決手段】  画像処理サーバは、複数個の文字を含むスキャン画像データから、複数個の文字が拡大されて表現されている処理済み画像データを生成する。画像処理サーバは、第１種の拡大処理を実行すべきと判断される場合、第１種の拡大処理を実行して、第１種の処理済み画像データを生成する。第１種の処理済み画像データに含まれる複数個の文字のレイアウトは、原画像内の複数個の文字のレイアウトと同じである。画像処理サーバは、第２種の拡大処理を実行すべきと判断される場合、第２種の拡大処理を実行して、第２種の処理済み画像データを生成する。第２種の処理済み画像データに含まれる複数個の文字のレイアウトは、原画像内の複数個の文字のレイアウトと異なる。【選択図】図２
2015170982.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
原画像を表わす原画像データを取得する取得部であって、前記原画像は、複数個の文字によって構成されるＭ行（前記Ｍは１以上の整数）の文字列を含む、前記取得部と、
前記原画像データに対して画像処理を実行して、処理済み画像を表わす処理済み画像データを生成する画像処理実行部であって、前記処理済み画像では、前記原画像と比べて、前記複数個の文字が拡大されて表現されている、前記画像処理実行部と、を備え、
前記画像処理実行部は、
前記原画像内の前記Ｍ行の文字列に基づいて、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、を判断する判断部と、
前記第１種の拡大処理を実行すべきと判断される場合に、前記第１種の拡大処理を実行して、第１種の前記処理済み画像を表わす第１種の前記処理済み画像データを生成する第１の生成部であって、前記第１種の処理済み画像内の前記複数個の文字のレイアウトは、前記原画像内の前記複数個の文字のレイアウトと同じであり、前記第１種の処理済み画像は、前記複数個の文字が拡大されて表現されているＭ行の拡大文字列を含んでいる、前記第１の生成部と、
前記第２種の拡大処理を実行すべきと判断される場合に、前記第２種の拡大処理を実行して、第２種の前記処理済み画像を表わす第２種の前記処理済み画像データを生成する第２の生成部であって、前記第２種の処理済み画像内の前記複数個の文字のレイアウトは、前記原画像内の前記複数個の文字のレイアウトと異なり、前記第２種の処理済み画像は、前記複数個の文字が拡大されて表現されているＮ行（前記Ｎは１以上の整数）の拡大文字列を含んでいる前記第２の生成部と、を備える、画像処理装置。
【請求項２】
前記第１種の処理済み画像内の前記Ｍ行の拡大文字列のそれぞれの行の文字数は、前記原画像内の前記Ｍ行の文字列の対応する行の文字数と等しく、
前記第２種の処理済み画像内の前記Ｎ行の拡大文字列のうちの先頭行の文字数は、前記原画像内の前記Ｍ行の文字列のうちの先頭行の文字数と異なる、請求項１に記載の画像処理装置。
【請求項３】
前記判断部は、
前記Ｍが１であるのか、前記Ｍが２以上であるのか、を判断し、
前記Ｍが１であると判断される場合に、前記第１種の拡大処理を実行すべきと判断し、
前記Ｍが２以上であると判断される場合に、前記第２種の拡大処理を実行すべきと判断する、請求項１又は２に記載の画像処理装置。
【請求項４】
前記画像処理実行部は、さらに、
前記Ｍ行の文字列を含むテキスト領域を包含するスペース領域を決定するスペース領域決定部を備え、
前記Ｍ行の文字列のそれぞれでは、２個以上の文字が第１方向に沿って並び、
前記判断部は、
前記テキスト領域の前記第１方向に沿った長さに１より大きな目標値を乗算することによって得られる第１の長さが、前記スペース領域の前記第１方向に沿った長さ以下であり、かつ、前記テキスト領域の前記第１方向に直交する第２方向に沿った長さに前記目標値を乗算することによって得られる第２の長さが、前記スペース領域の前記第２方向に沿った長さ以下であるという特定の条件が満たされるのか否かを判断し、
前記特定の条件が満たされる場合に、前記第１種の拡大処理を実行すべきと判断し、
前記特定の条件が満たされない場合に、前記第２種の拡大処理を実行すべきと判断する、請求項１又は２に記載の画像処理装置。
【請求項５】
前記Ｍは、２以上の整数であり、
前記判断部は、
前記Ｍ行の文字列が箇条書きによって表現されているのか否かを判断し、
前記Ｍ行の文字列が前記箇条書きによって表現されていると判断される場合に、前記第１種の拡大処理を実行すべきと判断し、
前記Ｍ行の文字列が前記箇条書きによって表現されていないと判断される場合に、前記第２種の拡大処理を実行すべきと判断する、請求項１又は２に記載の画像処理装置。
【請求項６】
前記Ｍ行の文字列のそれぞれでは、２個以上の文字が第１方向に沿って並び、
前記原画像データを構成する複数個の原画素は、前記Ｍ行の文字列を表わす複数個の文字列画素と、前記Ｍ行の文字列の背景を表わす複数個の背景画素と、を含み、
前記判断部は、
前記原画像データを利用して、前記Ｍ行の文字列を含むＭ個の文字列領域に対応するＭ個の射影ヒストグラムを生成し、前記Ｍ個の射影ヒストグラムを用いて、前記Ｍ行の文字列が箇条書きによって表現されているのか否かを判断し、
前記Ｍ個の射影ヒストグラムのそれぞれは、対応する文字列領域を構成する各原画素を前記第１方向に直交する第２の方向に沿って射影する場合における前記文字列画素の頻度の分布に相当するヒストグラムである、請求項５に記載の画像処理装置。
【請求項７】
前記判断部は、
前記Ｍ行の文字列に特定文字が含まれるのか否かを判断し、
前記Ｍ行の文字列に特定文字が含まれると判断される場合に、前記第１種の拡大処理を実行すべきと判断し、
前記Ｍ行の文字列に前記特定文字が含まれないと判断される場合に、前記第２種の拡大処理を実行すべきと判断し、
前記特定文字は、前記複数個の文字の文字サイズに応じて設定された閾値よりも大きいサイズを有する文字である、請求項１又は２に記載の画像処理装置。
【請求項８】
前記Ｍは、２以上の整数であり、
前記Ｍ行の文字列のそれぞれでは、２個以上の文字が第１方向に沿って並び、
前記判断部は、
前記Ｍ行の文字列のそれぞれについて、当該１行の文字列の一端と前記Ｍ行の文字列を含むテキスト領域の境界との間の前記第１方向に沿った余白の長さを算出し、
前記Ｍ行の文字列について算出されるＭ個の余白の長さのばらつきが、所定のばらつきよりも大きいのか否かを判断し、
前記Ｍ個の余白の長さのばらつきが、前記所定のばらつきよりも大きいと判断される場合に、前記第１種の拡大処理を実行すべきと判断し、
前記Ｍ個の余白の長さのばらつきが、前記所定のばらつき以下であると判断される場合に、前記第２種の拡大処理を実行すべきと判断する、請求項１又は２に記載の画像処理装置。
【請求項９】
前記Ｍ行の文字列を含むテキスト領域は、背景色を有し、
前記判断部は、
前記テキスト領域の前記背景色が、前記原画像内の背景色と異なるのか否かを判断し、
前記テキスト領域の前記背景色が、前記原画像内の前記背景色と異なると判断される場合に、前記第１種の拡大処理を実行すべきと判断し、
前記テキスト領域の前記背景色が、前記原画像内の前記背景色と同じであると判断される場合に、前記第２種の拡大処理を実行すべきと判断する、請求項１又は２に記載の画像処理装置。
【請求項１０】
前記画像処理実行部は、さらに、
前記原画像に含まれる複数個のオブジェクトを含む複数のオブジェクト領域を決定するオブジェクト領域決定部であって、前記複数のオブジェクト領域は、前記Ｍ行の文字列を含むテキスト領域を含む、前記オブジェクト領域決定部と、
前記テキスト領域を包含し、かつ、前記複数個のオブジェクト領域のうちの他のオブジェクト領域に重複しないスペース領域を決定するスペース領域決定部と、を備え、
前記第２の生成部は、前記スペース領域に基づいて、前記テキスト領域のアスペクト比とは異なるアスペクト比を有する目標領域を決定し、
前記Ｎ行の拡大文字列が前記目標領域内に配置されている前記第２種の処理済み画像を表わす前記第２種の処理済み画像データを生成する、請求項１から９のいずれか一項に記載の画像処理装置。
【請求項１１】
前記Ｍ行の文字列のそれぞれでは、２個以上の文字が第１方向に沿って並び、
前記画像処理実行部は、さらに、
前記Ｍ行の文字列を含むテキスト領域を包含するスペース領域を決定するスペース領域決定部を備え、
前記第２の生成部は、前記テキスト領域と前記スペース領域との間の前記第１方向に沿った２個の余白の長さと、前記第１方向に直交する第２方向に沿った２個の余白の長さと、に基づいて、前記テキスト領域のアスペクト比とは異なるアスペクト比を有する目標領域を決定し、
前記Ｎ行の文字列が前記目標領域内に配置されている前記第２種の処理済み画像を表わす前記第２種の処理済み画像データを生成する、請求項１から９のいずれか一項に記載の画像処理装置。
【請求項１２】
前記第２の生成部は、前記Ｍ行よりも少ない前記Ｎ行の拡大文字列を構成する前記複数個の文字を含む前記第２種の処理済み画像を表す前記第２の処理済み画像データを生成し、前記Ｎ行の拡大文字列のうちの先頭行の文字数が、前記原画像内の前記Ｍ行の文字列のうちの先頭行の文字数よりも多い、請求項１から１１のいずれか一項に記載の画像処理装置。
【請求項１３】
前記第２の生成部は、前記Ｍ行よりも多い前記Ｎ行の拡大文字列を構成する前記複数個の文字を含む前記第２種の処理済み画像を表す前記第２の処理済み画像データを生成し、前記Ｎ行の拡大文字列のうちの先頭行の文字数が、前記原画像内の前記Ｍ行の文字列のうちの先頭行の文字数よりも少ない、請求項１から１１のいずれか一項に記載の画像処理装置。
【請求項１４】
前記第１種の処理済み画像内の前記Ｍ行の拡大文字列を含む領域のアスペクト比は、前記原画像内の前記M行の文字列を含む領域のアスペクト比と等しく、
前記第２種の処理済み画像内の前記Ｎ行の拡大文字列を含む領域のアスペクト比は、前記原画像内の前記Ｍ行の文字列を含む領域のアスペクト比と異なる、請求項１から１３のいずれか一項に記載の画像処理装置。
【請求項１５】
前記第１の生成部は、前記第１種の拡大処理を実行して、前記原画像内の前記複数個の文字が拡大され、かつ、前記原画像に含まれる前記複数個の文字以外のオブジェクトが拡大されていない前記第１種の処理済み画像を表す前記第１種の処理済み画像データを生成する、請求項１から１４のいずれか一項に記載の画像処理装置。
【請求項１６】
前記第２の生成部は、前記第２種の拡大処理を実行して、前記原画像内の前記複数個の文字が拡大され、かつ、前記原画像に含まれる前記複数個の文字以外のオブジェクトが拡大されていない前記第２種の処理済み画像を表す前記第２種の処理済み画像データを生成する、請求項１から１５のいずれか一項に記載の画像処理装置。
【請求項１７】
画像処理装置のためのコンピュータプログラムであって、
前記画像処理装置に搭載されるコンピュータに、以下の各ステップ、即ち、
原画像を表わす原画像データを取得する取得ステップであって、前記原画像は、複数個の文字によって構成されるＭ行（前記Ｍは１以上の整数）の文字列を含む、前記取得ステップと、
前記原画像データに対して画像処理を実行して、処理済み画像を表わす処理済み画像データを生成する画像処理実行ステップであって、前記処理済み画像では、前記原画像と比べて、前記複数個の文字が拡大されて表現されている、前記画像処理実行ステップと、を備え、
前記画像処理実行ステップは、
前記原画像内の前記Ｍ行の文字列に基づいて、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、を判断する判断ステップと、
前記第１種の拡大処理を実行すべきと判断される場合に、前記第１種の拡大処理を実行して、第１種の前記処理済み画像を表わす第１種の前記処理済み画像データを生成する第１の生成ステップであって、前記第１種の処理済み画像内の前記複数個の文字のレイアウトは、前記原画像内の前記複数個の文字のレイアウトと同じであり、前記第１種の処理済み画像は、前記複数個の文字が拡大されて表現されているＭ行の拡大文字列を含んでいる、前記第１の生成ステップと、
前記第２種の拡大処理を実行すべきと判断される場合に、前記第２種の拡大処理を実行して、第２種の前記処理済み画像を表わす第２種の前記処理済み画像データを生成する第２の生成ステップであって、前記第２種の処理済み画像内の前記複数個の文字のレイアウトは、前記原画像内の前記複数個の文字のレイアウトと異なり、前記第２種の処理済み画像は、前記複数個の文字が拡大されて表現されているＮ行（前記Ｎは１以上の整数）の拡大文字列を含んでいる、前記第２の生成ステップと、を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、複数個の文字を含む原画像を表わす原画像データに対して画像処理を実行して、当該複数個の文字を含む処理済み画像を表わす処理済み画像データを生成する画像処理装置を開示する。
【背景技術】
【０００２】
特許文献１には、ＤＦＥ（Digital Front End Processorの略）装置と、ＢＥＰ（Back End Processorの略）装置と、画像形成装置と、を備える画像形成システムが開示されている。ＢＥＰ装置は、ＤＦＥ装置からイメージデータが入力されると、イメージデータに含まれる文字領域内の文字を拡大し、当該拡大した文字を含む文字領域のイメージデータを生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２２３８２４号公報
【特許文献２】特開２０１２−１０８７５０号公報
【特許文献３】特開２０１１−２４２９８７号公報
【特許文献４】特開２０１２−２３０６２３号公報
【特許文献５】特開２０１０−１８３４８４号公報
【特許文献６】特開平５−９４５１１号公報
【特許文献７】特開２０００−１３７８０１号公報
【特許文献８】特開平１１−２５２８３号公報
【特許文献９】特開２０１２−２１６０３８号公報
【非特許文献】
【０００４】
【非特許文献１】“画面サイズに合わせ自動的に改行！文書ファイルをスマートフォン上で読みやすく表示  レイアウト再構築技術「GT-Layout」  オンラインストレージ「Dropbox」向けのサービスをスタート  新開発”、[online]、２０１２年５月３０日、富士フィルム株式会社、[２０１４年１月２４日検索]、インターネット＜http://www.fujifilm.co.jp/corporate/news/articleffnr_0647.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、従来では、文字領域内の文字は、常に、１つの手法によって拡大されており、他の手法によって拡大することについて、何ら考慮されていなかった。
【０００６】
本明細書では、画像データに含まれる複数個の文字を適切に拡大する技術を提供する。
【課題を解決するための手段】
【０００７】
本明細書によって開示される画像処理装置は、取得部と、画像処理実行部と、を備える。取得部は、原画像を表わす原画像データを取得する原画像は、複数個の文字によって構成されるＭ行（Ｍは１以上の整数）の文字列を含む。画像処理実行部は、原画像データに対して画像処理を実行して、処理済み画像を表わす処理済み画像データを生成する。処理済み画像では、原画像と比べて、複数個の文字が拡大されて表現されている。画像処理実行部は、判断部と、第１の生成部と、第２の生成部と、を含む。判断部は、原画像内のＭ行の文字列に基づいて、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、を判断する。第１の生成部は、第１種の拡大処理を実行すべきと判断される場合に、第１種の拡大処理を実行して、第１種の処理済み画像を表わす第１種の前記処理済み画像データを生成する。第１種の処理済み画像内の複数個の文字のレイアウトは、原画像内の複数個の文字のレイアウトと同じである。第１種の処理済み画像は、複数個の文字が拡大されて表現されているＭ行の拡大文字列を含んでいる。第２の生成部は、第２種の拡大処理を実行すべきと判断される場合に、第２種の拡大処理を実行して、第２種の処理済み画像を表わす第２種の前記処理済み画像データを生成する。第２種の処理済み画像内の複数個の文字のレイアウトは、原画像内の複数個の文字のレイアウトと異なる。第２種の処理済み画像は、複数個の文字が拡大されて表現されているＮ行（Ｎは１以上の整数）の拡大文字列を含んでいる。
【０００８】
この構成によると、画像処理装置は、Ｍ行の文字列に基づく、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、の判断結果に応じて、原画像に含まれる複数個の文字のレイアウトを変更しない第１種の拡大処理と、レイアウトを変更する第２種の拡大処理と、を実行することができる。このため、原画像データに含まれる複数個の文字に基づいて、複数個の文字を適切に拡大することができる。
【０００９】
判断部は、Ｍが１であるのか、Ｍが２以上であるのか、を判断してもよい。判断部は、Ｍが１であると判断される場合に、第１種の拡大処理を実行すべきと判断してもよい。判断部は、Ｍが２以上であると判断される場合に、第２種の拡大処理を実行すべきと判断してもよい。文字列が１行で構成されている場合、文書の作成者が意図的に１行で記述している場合が多い。この場合、第２種の拡大処理が実行されて、１行で記述されている文字列のレイアウトが変更されると、文書の作成者の意図に反した変更となり得る。上記の構成によると、文字列が１行で構成されている場合、複数個の文字のレイアウトを変更しない第１種の拡大処理が実行される。この結果、文書の作成者の意図に反して、文字列のレイアウトが変更される事態を回避することができる。
【００１０】
画像処理実行部は、さらに、Ｍ行の文字列を含むテキスト領域を包含するスペース領域を決定するスペース領域決定部を備えていてもよい。Ｍ行の文字列のそれぞれでは、２個以上の文字が第１方向に沿って並んでいてもよい。判断部は、記テキスト領域の第１方向に沿った長さに１より大きな目標値を乗算することによって得られる第１の長さが、スペース領域の第１方向に沿った長さ以下であり、かつ、テキスト領域の第１方向に直交する第２方向に沿った長さに目標値を乗算することによって得られる第２の長さが、スペース領域の第２方向に沿った長さ以下であるという特定の条件が満たされるのか否かを判断してもよい。判断部は、特定の条件が満たされる場合に、第１種の拡大処理を実行すべきと判断し、特定の条件が満たされない場合に、第２種の拡大処理を実行すべきと判断してもよい。この構成によると、特定の条件が満たされる場合に、複数個の文字のレイアウトを変更しない第１種の拡大処理が実行される。この結果、文書の作成者の意図に反して、文字列のレイアウトが変更される事態を回避することができる。
【００１１】
Ｍは、２以上の整数であってもよい。判断部は、Ｍ行の文字列が箇条書きによって表現されているのか否かを判断してもよい。判断部は、Ｍ行の文字列が箇条書きによって表現されていると判断される場合に、第１種の拡大処理を実行すべきと判断し、Ｍ行の文字列が箇条書きによって表現されていないと判断される場合に、第２種の拡大処理を実行すべきと判断してもよい。複数個の文字が、箇条書きで表現されている場合、複数個の文字のレイアウトを変更すると、箇条書きが不明確になり得る。この構成によると、Ｍ行の文字列が箇条書きによって表現されていると判断される場合に、複数個の文字のレイアウトを変更しない第１種の拡大処理が実行される。この結果、文書の作成者の意図に反して、文字列のレイアウトが変更される事態を回避することができる。
【００１２】
判断部は、Ｍ行の文字列に特定文字が含まれるのか否かを判断してもよい。判断部は、Ｍ行の文字列に特定文字が含まれると判断される場合に、第１種の拡大処理を実行すべきと判断し、Ｍ行の文字列に前記特定文字が含まれないと判断される場合に、第２種の拡大処理を実行すべきと判断してもよい。特定文字は、複数個の文字の文字サイズに応じて設定された閾値よりも大きいサイズを有する文字であってもよい。この構成によると、Ｍ行の文字列に特定文字が含まれると判断される場合に、複数個の文字のレイアウトを変更しない第１種の拡大処理が実行される。この結果、文書の作成者の意図に反して、文字列のレイアウトが変更される事態を回避することができる。
【００１３】
Ｍは、２以上の整数であってもよい。Ｍ行の文字列のそれぞれでは、２個以上の文字が第１方向に沿って並んでいてもよい。判断部は、Ｍ行の文字列のそれぞれについて、当該１行の文字列の一端とＭ行の文字列を含むテキスト領域の境界との間の第１方向に沿った余白の長さを算出してもよい。判断部は、Ｍ行の文字列について算出されるＭ個の余白の長さのばらつきが、所定のばらつきよりも大きいのか否かを判断してもよい。判断部は、Ｍ個の余白の長さのばらつきが、所定のばらつきよりも大きいと判断される場合に、第１種の拡大処理を実行すべきと判断し、Ｍ個の余白の長さのばらつきが、所定のばらつき以下であると判断される場合に、第２種の拡大処理を実行すべきと判断してもよい。各行の余白の長さにばらつきが大きい場合、文書の作成者が意図的に余白を設けている場合が多い。この場合、第２種の拡大処理が実行されて、文字列のレイアウトが変更されると、文書の作成者の意図に反した変更となり得る。上記の構成によると、余白の長さにばらつきが大きい場合、複数個の文字のレイアウトを変更しない第１種の拡大処理が実行される。この結果、文書の作成者の意図に反して、文字列のレイアウトが変更される事態を回避することができる。
【００１４】
Ｍ行の文字列を含むテキスト領域は、背景色を有していてもよい。判断部は、テキスト領域の背景色が、原画像内の背景色と異なるのか否かを判断してもよい。判断部は、テキスト領域の背景色が、原画像内の背景色と異なると判断される場合に、第１種の拡大処理を実行すべきと判断し、テキスト領域の背景色が、原画像内の前記背景色と同じであると判断される場合に、第２種の拡大処理を実行すべきと判断してもよい。例えば、プレゼンテーション資料の見出しを目立たせるために、テキスト領域の背景色を、原画像内の背景色から変更する場合がある。この場合、Ｍ行の文字列のレイアウトを変更すると、文書の作成者の意図に反してレイアウトを変更することになり得る。上記の構成によると、テキスト領域の背景色が、原画像の背景色と異なる場合、複数個の文字のレイアウトを変更しない第１種の拡大処理が実行される。この結果、文書の作成者の意図に反して、文字列のレイアウトが変更される事態を回避することができる。
【００１５】
上記の画像処理装置のためのコンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も新規で有用である。
【００１６】
さらに、上記の画像処理装置が実行する画像処理方法も新規で有用である。画像処理方法、以下の通りである。
画像処理方法であって、
原画像を表わす原画像データを取得する取得工程であって、前記原画像は、複数個の文字によって構成されるＭ行（前記Ｍは１以上の整数）の文字列を含む、前記取得工程と、
前記原画像データに対して画像処理を実行して、処理済み画像を表わす処理済み画像データを生成する画像処理実行工程であって、前記処理済み画像では、前記原画像と比べて、前記複数個の文字が拡大されて表現されている、前記画像処理実行工程と、を備え、
前記画像処理実行工程は、
前記原画像内の前記Ｍ行の文字列に基づいて、第１種の拡大処理と第２種の拡大処理とを含む複数種類の拡大処理の中から１種類の拡大処理を選択する処理選択工程と、
前記選択された１種類の拡大処理を実行する拡大処理実行工程と、を備え、
前記第１種の拡大処理が選択される場合には、前記複数個の文字を含む第１種の前記処理済み画像を表わす第１種の前記処理済み画像データが生成され、前記第１種の処理済み画像は、前記複数個の文字が拡大されて表現されているＭ行の拡大文字列を含み、前記第１種の処理済み画像内の前記複数個の文字のレイアウトは、前記原画像内の前記複数個の文字のレイアウトと同じであり、
前記第２種の拡大処理が選択される場合には、前記複数個の文字を含む第２種の前記処理済み画像を表わす第２種の前記処理済み画像データが生成され、前記第２種の処理済み画像は、前記複数個の文字が拡大されて表現されているＮ行（前記Ｎは１以上の整数）の拡大文字列を含み、前記第２種の処理済み画像内の前記複数個の文字のレイアウトは、前記原画像内の前記複数個の文字のレイアウトと異なる、画像処理方法。
【図面の簡単な説明】
【００１７】
【図１】通信システムの構成を示す。
【図２】画像処理サーバの処理のフローチャートを示す。
【図３】図２に続く画像処理サーバの処理のフローチャートを示す。
【図４】文字列解析処理のフローチャートを示す。
【図５】第１実施例の単純拡大条件を満たすケースを説明するための説明図を示す。
【図６】結合処理のフローチャートを示す。
【図７】目標領域決定処理のフローチャートを示す。
【図８】領域拡大処理を説明するための説明図を示す。
【図９】再配置処理のフローチャートを示す。
【図１０】行数決定処理のフローチャートを示す。
【図１１】各文字が再配置されて拡大されるケースＡを説明するための説明図を示す。
【図１２】各文字が再配置されて拡大されるケースＢを説明するための説明図を示す。
【図１３】第２実施例の単純拡大条件を満たすケースを説明するための説明図を示す。
【図１４】第３実施例の単純拡大条件を満たすケースを説明するための説明図を示す。
【図１５】第４実施例の単純拡大条件を満たすケースを説明するための説明図を示す。
【図１６】第５実施例の単純拡大条件を満たすケースを説明するための説明図を示す。
【図１７】第６実施例の単純拡大条件を満たすケースを説明するための説明図を示す。
【図１８】変形例１の単純拡大条件を満たすケースを説明するための説明図を示す。
【図１９】第４実施例の単純拡大条件を満たすケースを説明するための説明図を示す。
【発明を実施するための形態】
【００１８】
（第１実施例）
（通信システム２の構成）
図１に示されるように、通信システム２は、多機能機１０と画像処理サーバ５０とを備える。多機能機１０と画像処理サーバ５０とは、インターネット４を介して、相互に通信可能である。多機能機１０は、印刷機能、スキャン機能、コピー機能、ＦＡＸ機能等を含む多機能を実行可能な周辺機器（即ち図示省略のＰＣ（Personal Computerの略）等の周辺機器）である。画像処理サーバ５０は、多機能機１０のベンダによってインターネット４上に設けられるサーバである。
【００１９】
（多機能機１０によって実行される各処理の概要）
多機能機１０が実行可能なコピー機能は、モノクロコピー機能とカラーコピー機能とに分類されるが、本実施例では、カラーコピー機能に着目して説明する。カラーコピー機能は、通常カラーコピー機能と文字拡大カラーコピー機能とに分類される。多機能機１０は、どちらのカラーコピー機能の実行指示がユーザから与えられる場合でも、まず、スキャン対象の画像を表わすシート（以下では「スキャン対象シート」と呼ぶ）をカラースキャンして、スキャン画像データＳＩＤを生成する。スキャン画像データＳＩＤは、多階調（例えば２５６階調）のＲＧＢビットマップデータである。
【００２０】
スキャン画像データＳＩＤによって表わされるスキャン画像ＳＩ（即ちスキャン対象シートに表現されている画像）は、白色の背景を有すると共に、１個のテキストオブジェクトＴＯＢと２個の写真オブジェクトＯＢ１，ＯＢ２とを含む。テキストオブジェクトＴＯＢは、黒色の複数個の文字「Ａ〜Ｍ」によって構成される３行の文字列を含む。なお、文字の色は、黒色とは異なる色（例えば赤色）でもよい。写真オブジェクトＯＢ１，ＯＢ２は、文字を含まず、複数色によって構成される写真を含む。
【００２１】
なお、以下では、テキストオブジェクトＴＯＢに含まれる文字列が異なるスキャン画像ＳＩ１〜６（図５，図１３〜１７参照）が登場する。スキャン画像ＳＩ１〜６は、スキャン画像ＳＩと同様に、多階調（例えば２５６階調）のＲＧＢビットマップデータであるスキャン画像データによって表される。
【００２２】
また、本実施例の各図では、便宜上、各テキストオブジェクトＴＯＢを構成する各文字列が、規則的な順序で並ぶアルファベット「Ａ〜Ｍ」によって表現されているが、実際には、各文字列は、センテンスを構成している。各文字列（即ち１行の文字列）では、スキャン画像ＳＩ内の横方向の左側から右側に向かってセンテンスが進む。また、３行の文字列「Ａ〜Ｍ」では、スキャン画像ＳＩ内の縦方向の上側から下側に向かってセンテンスが進む。なお、以下のいずれの画像（例えば処理済み画像ＰＩ）においても、１行の文字列を構成する複数個の文字が並ぶ方向、当該方向に直交する方向を、それぞれ、「横方向」、「縦方向」と呼ぶ。また、左側から右側に向かってセンテンスが進むことから、横方向の左端、横方向の右端のことを、それぞれ、「先端」、「後端」と呼ぶ。
【００２３】
多機能機１０は、ユーザから通常カラーコピー機能の実行指示が与えられる場合には、スキャン画像データＳＩＤを利用して、ユーザによって設定されるコピー倍率に応じて、画像をシート（以下では「印刷対象シート」と呼ぶ）に印刷する。例えば、コピー倍率が等倍である場合には、多機能機１０は、スキャン対象シートに表現されている画像と同じサイズを有する画像を印刷対象シートに印刷する。また、例えば、コピー倍率が画像の拡大を示す倍率である場合には、多機能機１０は、スキャン対象シートに表現されている画像よりも大きいサイズを有する画像を印刷対象シートに印刷する。この場合、例えば、Ａ４サイズのスキャン対象シートに表現されている画像が拡大されて、Ａ３サイズの印刷対象シートに印刷される。この結果、３個のオブジェクトＴＯＢ，ＯＢ１，ＯＢ２の全てが拡大されて表現されている画像が印刷対象シートに印刷される。
【００２４】
一方、多機能機１０は、ユーザから文字拡大カラーコピー機能の実行指示が与えられる場合には、インターネット４を介して、スキャン画像データＳＩＤを画像処理サーバ５０に送信する。これにより、多機能機１０は、インターネット４を介して、画像処理サーバ５０から処理済み画像データＰＩＤを受信し、処理済み画像データＰＩＤによって表わされる処理済み画像ＰＩを印刷対象シートに印刷する。特に、多機能機１０は、スキャン対象シートと同じサイズ（例えばＡ４サイズ）を有する印刷対象シートに処理済み画像ＰＩを印刷する。
【００２５】
図１のように、処理済み画像ＰＩでは、スキャン画像ＳＩと比べて、写真オブジェクトＯＢ１、ＯＢ２が拡大されずに、テキストオブジェクトＴＯＢが拡大されて表現されている。従って、スキャン画像ＳＩ内の各文字のサイズが小さい場合でも、処理済み画像ＰＩでは、各文字のサイズが大きくなるので、ユーザは、処理済み画像ＰＩ内の各文字を容易に認識することができる。即ち、文字拡大カラーコピー機能において、通常カラーコピー機能のようにスキャン画像と異なるサイズの画像に対応する処理済み画像データを生成するのではなく、同じサイズの画像を得ることを前提として、文字のみ拡大する。
【００２６】
（画像処理サーバ５０の構成）
画像処理サーバ５０は、多機能機１０から受信されるスキャン画像データＳＩＤに対して画像処理を実行して、処理済み画像データＰＩＤを生成し、当該処理済み画像データＰＩＤを多機能機１０に送信する。画像処理サーバ５０は、ネットワークインターフェース５２と、制御部６０と、を備える。ネットワークインターフェース５２は、インターネット４に接続される。制御部６０は、ＣＰＵ６２とメモリ６４とを備える。ＣＰＵ６２は、メモリ６４に格納されているプログラム６６に従って、様々な処理（即ち図２等の処理）を実行するプロセッサである。
【００２７】
（画像処理サーバ５０によって実行される各処理；図２）
続いて、図２を参照して、画像処理サーバ５０のＣＰＵ６２によって実行される各処理の内容を説明する。ＣＰＵ６２は、インターネット４を介して、多機能機１０からスキャン画像データＳＩＤを受信する場合に、図２の処理を開始する。
【００２８】
Ｓ１００では、ＣＰＵ６２は、文字列解析処理（後述の図４参照）を実行して、スキャン画像ＳＩ内の３行の文字列「Ａ〜Ｍ」を含むテキストオブジェクト領域（以下では単に「テキスト領域」と呼ぶ）ＴＯＡを決定する。そして、ＣＰＵ６２は、テキスト領域ＴＯＡ内の３行の文字列を含む３個の帯状領域ＬＡ１〜ＬＡ３を決定する。
【００２９】
Ｓ２００では、ＣＰＵ６２は、余白領域決定処理を実行して、スキャン画像ＳＩの中から余白領域ＢＡを決定する。余白領域ＢＡは、テキスト領域ＴＯＡを包含し、テキスト領域ＴＯＡのサイズ（即ち面積）よりも大きいサイズを有する。ＣＰＵ６２は、テキスト領域ＴＯＡの周囲の余白の大きさに応じて、他のオブジェクト（例えば写真オブジェクトＯＡ１、ＯＡ２）に重複しない余白領域ＢＡを決定する。例えば、スキャン画像ＳＩでは、テキスト領域ＴＯＡの右側及び下側に大きな余白が存在するので、テキスト領域ＴＯＡから、下方及び右方に伸びた矩形形状を有する余白領域ＢＡが決定される。余白領域ＢＡのアスペクト比は、通常、テキスト領域ＴＯＡのアスペクト比とは異なる。なお、スキャン画像ＳＩ内の余白領域ＢＡは、処理済み画像ＰＩ内の目標領域ＴＡ（Ｓ８００の処理済み画像ＰＩ参照）を含む。Ｓ２００の処理は、処理済み画像ＰＩにおいて、テキスト領域ＴＯＡの拡大を許容する最大の範囲を決定する処理に等しい。なお、後述の処理済み画像ＰＩ内の目標領域ＴＡは、拡大されて表現される文字列「Ａ〜Ｍ」が配置されるべき領域である。
【００３０】
Ｓ３００では、ＣＰＵ６２は、スキャン画像ＳＩに含まれるテキストオブジェクトＴＯＢが単純拡大条件を満たすのか否かを判断する。具体的には、ＣＰＵ６２は、テキストオブジェクトＴＯＢが１行の文字列のみを含むと判断する場合に、単純拡大条件を満たすと判断し、テキストオブジェクトＴＯＢが２行以上の文字列を含むと判断する場合に、単純拡大条件を満たさないと判断する。なお、図２には、第１実施例に用いられる単純拡大条件（即ち「文字列＝１行？」）の他に、第２〜第６実施例で用いられる単純拡大条件の内容も記載されている。
【００３１】
Ｓ３００において、単純拡大条件を満たすと判断される場合（Ｓ３００でＹＥＳ）、ＣＰＵ６２は、Ｓ４００において、単純拡大処理（後述の図５参照）を実行して、処理済み画像データＰＩＤを生成する。一方、単純拡大条件を満たさないと判断される場合（Ｓ３００でＮＯ）、ＣＰＵ６２は、図３のＳ５００に進む。
【００３２】
Ｓ５００では、ＣＰＵ６２は、結合処理（後述の図６参照）を実行して、１個の結合画像ＣＩを表わす結合画像データを生成する。結合画像ＣＩは、３個の帯状領域ＬＡ１〜ＬＡ３に含まれる３行の文字列が横方向に沿って直線状に結合（即ち連結）された１行の結合文字列「Ａ〜Ｍ」を含む。
【００３３】
Ｓ６００では、ＣＰＵ６２は、目標領域決定処理（後述の図７参照）を実行して、スキャン画像ＳＩ内において目標領域ＴＡ（Ｓ７００の再配置画像ＲＩ参照）を決定する。スキャン画像ＳＩ内の目標領域ＴＡは、処理済み画像ＰＩ内の目標領域ＴＡ（Ｓ８００の処理済み画像ＰＩ参照）に一致する。従って、Ｓ６００の処理は、処理済み画像ＰＩ内の目標領域ＴＡを決定する処理に等しい。
【００３４】
Ｓ７００では、ＣＰＵ６２は、再配置処理（後述の図９参照）を実行する。ＣＰＵ６２は、再配置領域ＲＡを決定し、結合画像ＣＩを表わす結合画像データを利用して、複数個の文字「Ａ〜Ｍ」を再配置領域ＲＡ内に再配置することによって、再配置画像ＲＩを表わす再配置画像データを生成する。
【００３５】
Ｓ８００では、ＣＰＵ６２は、拡大処理（後述の図１１、図１２参照）を実行する。再配置画像ＲＩを表わす再配置画像データを目標領域ＴＡまで拡大して、拡大画像データを生成する。そして、ＣＰＵ６２は、拡大画像データを利用して、処理済み画像ＰＩを表わす処理済み画像データＰＩＤを生成する。処理済み画像ＰＩでは各文字が拡大されて表現されるが、処理済み画像データＰＩＤは、スキャン画像データＳＩＤと同じ画素数を有する。
【００３６】
Ｓ９００では、ＣＰＵ６２は、インターネット４を介して、処理済み画像データＰＩＤを多機能機１０に送信する。これにより、処理済み画像データＰＩＤによって表わされる処理済み画像ＰＩが対象印刷シートに印刷される。
【００３７】
（文字列解析処理；図４）
続いて、図４を参照して、図２のＳ１００で実行される文字列解析処理の内容を説明する。Ｓ１１０では、ＣＰＵ６２は、スキャン画像データＳＩＤに対して二値化処理を実行して、スキャン画像データＳＩＤと同じ画素数を有する二値データＢＤ（図４では一部のみが示されている）を生成する。具体的に、ＣＰＵ６２は、まず、スキャン画像データＳＩＤを利用して、スキャン画像ＳＩの背景色（本実施例では白色）を決定する。具体的には、ＣＰＵ６２は、スキャン画像データＳＩＤ内の複数個の画素の画素値の頻度の分布を示すヒストグラムを生成する。そして、ＣＰＵ６２は、当該ヒストグラムを利用して、最高の頻度を有する画素値（以下では「最高頻度画素値」と呼ぶ）を特定することによって、背景色を決定する。次いで、ＣＰＵ６２は、スキャン画像データＳＩＤ内の複数個の画素のそれぞれについて、当該画素の画素値が最高頻度画素値に一致する場合には、当該画素に対応する位置に存在するスキャン画像データＳＩＤ内の画素の画素値として「０」を割り当て、当該画素の画素値が最高頻度画素値に一致しない場合には、当該画素に対応する位置に存在するスキャン画像データＳＩＤ内の画素の画素値として「１」を割り当てる。この結果、スキャン画像データＳＩＤに対応する「０」と「１」の画素値を有する画素によって構成される二値データＢＤが生成される。二値データＢＤでは、テキストオブジェクトＴＯＢに含まれる各文字（例えば「Ａ」，「Ｂ」）を表わす各画素が画素値「１」を示し、各写真オブジェクトＯＢ１，ＯＢ２を表わす各画素が画素値「１」を示し、それ以外の各画素（即ち背景を表わす画素）が画素値「０」を示す。なお、以下では、二値データＢＤ内の画素値「１」を示す画素、画素値「０」を示す画素のことを、それぞれ、「ＯＮ画素」、「ＯＦＦ画素」と呼ぶ。
【００３８】
Ｓ１２０では、ＣＰＵ６２は、Ｓ１１０で生成された二値データＢＤに対してラべリング処理を実行して、二値データＢＤと同じ画素数を有するラベルデータＬＤ（図４では一部のみが示されている）を生成する。具体的には、ＣＰＵ６２は、二値データＢＤ内の複数個のＯＮ画素を１個以上のＯＮ画素群に分けて、当該１個以上のＯＮ画素群のそれぞれに異なる画素値（例えば「１」、「２」等）を割り当てる。１個のＯＮ画素群は、互いに隣接する１個以上のＯＮ画素によって構成される。即ち、ＣＰＵ６２は、ラべリング処理の対象の１個のＯＮ画素に隣接する８個の隣接画素の中に１個以上のＯＮ画素が含まれる場合には、当該対象の１個のＯＮ画素と、８個の隣接画素のうちの１個以上のＯＮ画素と、を同じＯＮ画素群として区分する（即ちグループ化する）。ＣＰＵ６２は、ラべリング処理の対象のＯＮ画素を変えながら各ＯＮ画素のグループ化を順次実行することによって、１個以上のＯＮ画素群を決定する。例えば、図４のラベルデータＬＤでは、文字「Ａ」を表わす各ＯＮ画素（即ち１個のＯＮ画素群）に画素値「１」が割り当てられており、文字「Ｂ」を表わす各ＯＮ画素（即ち他の１個のＯＮ画素群）に画素値「２」が割り当てられている。
【００３９】
Ｓ１３０では、ＣＰＵ６２は、Ｓ１２０で生成されたラベルデータＬＤを利用して、上記の各ＯＮ画素群に対応する各単位領域を決定する。各単位領域は、対応する１個のＯＮ画素群に外接する矩形の領域である。ＣＰＵ６２は、例えば、図４のラベルデータＬＤを利用する場合には、画素値「１」が割り当てられているＯＮ画素群に外接する単位領域ＲＥ１（即ち文字「Ａ」に対応する単位領域）と、画素値「２」が割り当てられているＯＮ画素群に外接する単位領域ＲＥ２（即ち文字「Ｂ」に対応する単位領域）と、を決定する。より具体的には、ＣＰＵ６２は、スキャン画像ＳＩの中から、１３個の文字「Ａ」〜「Ｍ」に対応する１３個の単位領域と、２個の写真オブジェクトＯＢ１，ＯＢ２に対応する２個の単位領域と、の１５個の単位領域を決定する。上記の単位領域の決定は、当該単位領域の各頂点を構成する各画素の位置をメモリ６４に記憶することによって実行される。ただし、以下では、「領域（又は位置）の決定」に関する説明において、画素の位置をメモリ６４に記憶することに関する説明を省略する。
【００４０】
Ｓ１４０では、ＣＰＵ６２は、Ｓ１３０で決定された１５個の単位領域を利用して、スキャン画像ＳＩ内の複数個のオブジェクト領域を決定する。具体的には、ＣＰＵ６２は、１５個の単位領域を複数個の単位領域群に区分し、各単位領域群に対応する各オブジェクト領域を決定する。１個の単位領域群は、近傍に存在する１個以上の単位領域によって構成される。ＣＰＵ６２は、２個の単位領域の間の距離（即ち画素数）が所定の距離未満である場合に、当該２個の単位領域を同じ単位領域群に区分する。上記の所定の距離は、スキャン画像データＳＩＤの解像度に応じて予め決められている。例えば、本実施例では、スキャン画像データＳＩＤが３００ｄｐｉの解像度を有しており、３００ｄｐｉの解像度に対応する上記の所定の距離は、１０画素である。そして、図４のラベルデータＬＤでは、文字「Ａ」に対応する単位領域ＲＥ１と、文字「Ｂ」に対応する単位領域ＲＥ２と、の間の距離は、３画素である。従って、ＣＰＵ６２は、単位領域ＲＥ１と単位領域ＲＥ２とを同じ単位領域群に区分する。これにより、ＣＰＵ６２は、近傍に存在する各文字、即ち、同じセンテンスを構成している各文字をグループ化することができる。より具体的には、ＣＰＵ６２は、スキャン画像ＳＩについて、テキストオブジェクトＴＯＢ内の１３個の文字「Ａ」〜「Ｍ」に対応する１３個の単位領域を含む単位領域群と、写真オブジェクトＯＢ１に対応する単位領域を含む単位領域群と、写真オブジェクトＯＢ２に対応する単位領域を含む単位領域群と、の３個の単位領域群を決定する。そして、ＣＰＵ６２は、３個の単位領域群のそれぞれについて、当該単位領域群に外接する矩形の領域をオブジェクト領域として決定する。即ち、ＣＰＵ６２は、スキャン画像データＳＩＤの中から、ラベルデータＬＤを用いて決定された各オブジェクト領域に含まれる画像と同じ位置に配置されている画素を含む領域を、それぞれ、テキストオブジェクトＴＯＢ内の１３個の文字「Ａ」〜「Ｍ」を含むオブジェクト領域ＴＯＡと、写真オブジェクトＯＢ１を含むオブジェクト領域ＯＡ１と、写真オブジェクトＯＢ２を含むオブジェクト領域ＯＡ２と、の３つのオブジェクト領域として決定する。
【００４１】
Ｓ１５０では、ＣＰＵ６２は、Ｓ１４０で決定された３個のオブジェクト領域ＴＯＡ，ＯＡ１，ＯＡ２のそれぞれについて、当該オブジェクト領域の種類を決定する。具体的には、ＣＰＵ６２は、各オブジェクト領域ＴＯＡ，ＯＡ１，ＯＡ２が、文字を含むテキスト領域であるのか否かを判断する。ＣＰＵ６２は、まず、スキャン画像データＳＩＤのうち、オブジェクト領域ＴＯＡを表わす部分画像データを構成する複数個の画素の画素値の頻度の分布を示すヒストグラムを生成する。そして、ＣＰＵ６２は、当該ヒストグラムを利用して、頻度がゼロより大きい画素値の数（即ち、オブジェクト領域ＴＯＡで利用されている色の数）を算出する。ＣＰＵ６２は、算出済みの数が所定数（例えば「１０」）未満である場合には、オブジェクト領域ＯＡ１がテキスト領域であると判断し、算出済みの数が上記の所定数以上である場合には、オブジェクト領域ＴＯＡがテキスト領域でないと判断する。本実施例のオブジェクト領域ＴＯＡは、黒色の文字「Ａ」〜「Ｍ」と、白色の背景と、を含む。従って、オブジェクト領域ＴＯＡに対応するヒストグラムでは、通常、黒色を示す画素値と白色を示す画素値とを含む２個の画素値のみの頻度がゼロより大きい。従って、ＣＰＵ６２は、オブジェクト領域ＴＯＡがテキスト領域であると判断する。一方、例えば、写真オブジェクトＯＢ１では、通常、１０色以上の色が利用されている。従って、オブジェクト領域ＯＡ１に対応するヒストグラムでは、通常、頻度がゼロより大きい画素値の数が上記の所定数以上になる。従って、ＣＰＵ６２は、オブジェクト領域ＯＡ２がテキスト領域でなく、写真オブジェクト領域であると判断する。同様に、ＣＰＵ６２は、オブジェクト領域ＯＡ２に対応するヒストグラムを利用して、オブジェクト領域ＯＡ２が写真オブジェクト領域であると判断する。
【００４２】
Ｓ１６０では、ＣＰＵ６２は、Ｓ１５０で決定された１個のテキスト領域ＴＯＡに対して帯状領域決定処理を実行する。ただし、ＣＰＵ６２は、写真オブジェクト領域ＯＡ１，ＯＡ２に対して帯状領域決定処理を実行しない。具体的には、ＣＰＵ６２は、まず、テキスト領域ＴＯＡに対応する射影ヒストグラムを生成する。当該射影ヒストグラムは、二値データＢＤ（Ｓ１１０参照）を構成する複数個の画素のうち、テキスト領域ＴＯＡを表わす各画素を横方向に射影する場合におけるＯＮ画素（即ち「１」を示す画素）の頻度の分布を示す。換言すると、当該射影ヒストグラムは、スキャン画像データＳＩＤのテキスト領域ＴＯＡを表わす各画素を横方向に射影する場合における文字の画素の頻度の分布を示す。射影ヒストグラムでは、１行の文字列が、頻度がゼロより大きい範囲（以下では「高頻度範囲」と呼ぶ）で表わされ、２行の文字列の間の行間が、頻度がゼロである範囲で表わされる。そして、ＣＰＵ６２は、射影ヒストグラムを利用して、１個以上の高頻度範囲に対応する１個以上の帯状領域を決定する。１個の帯状領域の縦方向の長さ（即ち縦方向の画素数）は、当該帯状領域に対応する高頻度範囲の縦方向の長さに等しい。また、１個の帯状領域の横方向の長さ（即ち横方向の画素数）は、オブジェクト領域ＯＡ１の横方向の長さに等しい。これにより、テキスト領域ＴＯＡの中から、文字列「Ａ〜Ｅ」を含む帯状領域ＬＡ１と、文字列「Ｆ〜Ｊ」を含む帯状領域ＬＡ２と、文字列「Ｋ〜Ｍ」を含む帯状領域ＬＡ３と、の３個の帯状領域が決定される。Ｓ１６０が終了すると、図４の処理が終了する。
【００４３】
（単純拡大処理；図５）
続いて、図５を参照して、図２のＳ３００で実行される単純拡大条件を満たすスキャン画像ＳＩ１の一例と、図２のＳ４００で実行される単純拡大処理の内容を説明する。上述の文字列解析処理（図４参照）のＳ１６０では、帯状領域が決定される。図２に示すスキャン画像ＳＩでは、１個のテキスト領域ＴＯＡの中から、３個の帯状領域ＬＡ１〜ＬＡ３が決定される。ＣＰＵ６２は、１個のテキスト領域の中から２個以上の帯状領域が決定される場合、テキスト領域に含まれる文字列が２行以上であると判断して（図２のＳ３００でＮＯ）、Ｓ５００に進む。
【００４４】
一方、ＣＰＵ６２は、図５に示すように、１個のテキスト領域ＴＯＡの中から１個の帯状領域のみ（即ち帯状領域ＬＡ１のみ）が決定される場合、テキスト領域ＴＯＡに含まれる文字列が１行であると判断して（図２のＳ３００でＮＯ）、Ｓ４００に進む。
【００４５】
Ｓ４００の単純拡大処理では、ＣＰＵ６２は、テキスト領域ＴＯＡの面積を、予め画像処理サーバ５０に設定されている目標倍率（例えば「１．４」）に拡大可能であるか否かを判断する。実験よって、元の文字が小さいサイズであっても、当該文字のサイズが１．４倍になれば、ヒトは、通常、拡大後の文字を認識し易いことが明らかとなった。このように、ヒトが認識し易い拡大率が上記の目標倍率として設定される。
【００４６】
ＣＰＵ６２は、スキャン画像ＳＩ内のテキスト領域ＴＯＡのアスペクト比を変更せずに、テキスト領域ＴＯＡの面積を、目標倍率で拡大された領域（以下では「単純拡大領域」と呼ぶ）が、余白領域ＢＡに収まるのか否かを判断する。具体的には、ＣＰＵ６２は、テキスト領域ＴＯＡの縦方向の長さと横方向の長さとのそれぞれに、目標倍率の平方根（例えば√１．４）を乗算して、単純拡大領域の縦方向の長さと横方向の長さとして決定する。ＣＰＵ６２は、単純拡大領域の縦方向の長さが、余白領域ＢＡの縦方向の長さよりも小さく、かつ、単純拡大領域の横方向の長さが、余白領域ＢＡの横方向の長さよりも小さい場合に、単純拡大領域が、余白領域ＢＡに収まると判断する。一方、ＣＰＵ６２は、単純拡大領域の縦方向の長さが、余白領域ＢＡの縦方向の長さよりも大きい、または、単純拡大領域の横方向の長さが、余白領域ＢＡの横方向の長さよりも大きい場合に、単純拡大領域が、余白領域ＢＡに収まらないと判断する。
【００４７】
ＣＰＵ６２は、単純拡大領域が、余白領域ＢＡに収まると判断される場合、目標倍率に拡大可能であると判断し、該単純拡大領域をテキスト領域ＴＯＡの目標領域ＴＡとする。
【００４８】
一方、ＣＰＵ６２は、単純拡大領域が、余白領域ＢＡに収まらないと判断される場合、目標倍率（例えば「１．４」）に拡大不可能であると判断する。この場合、ＣＰＵ６２は、テキスト領域ＴＯＡ内のアスペクト比を変更せずに、余白領域ＢＡに収まる最大になるような単純拡大領域をテキスト領域ＴＯＡの目標領域ＴＡとして決定する。具体的には、ＣＰＵ６２は、テキスト領域ＴＯＡを、テキスト領域ＴＯＡの対角線に沿って右下方向に向かって徐々に拡大する。ＣＰＵ６２は、単純拡大領域の右辺又は下辺のどちらかが余白領域ＢＡの右辺又は下辺と重なる位置まで、テキスト領域ＴＯＡを拡大することによって生成された単純拡大領域を、目標領域ＴＡとして決定する。
【００４９】
次いで、ＣＰＵ６２は、決定された目標領域ＴＡを用いてテキストオブジェクトＴＯＢを表すテキストオブジェクトデータを拡大して、拡大画像を表わす拡大画像データを生成する。具体的には、テキストオブジェクトＴＯＢを表すテキストオブジェクトデータに画素が補充されて、テキスト領域ＴＯAの対角線が伸びる方向に決定された目標領域ＴＡの右辺と下辺とそれぞれに重なるようにテキストオブジェクトＴＯＢが拡大され、その結果、拡大画像を表わす拡大画像データが生成される。続いて、ＣＰＵ６２は、拡大画像データを、スキャン画像データＳＩＤの余白領域ＢＡ内に上書きする。具体的には、ＣＰＵ６２は、目標領域ＴＡの左辺と上辺とのそれぞれが、余白領域ＢＡの左辺と上辺とのそれぞれに重なるように、拡大画像データを上書きする。この結果、処理済み画像ＰＩを表わす処理済み画像データＰＩＤが完成する。
【００５０】
以上の単純拡大処理によって、テキスト領域ＴＯＡのアスペクト比を維持しながら目標領域ＴＡまで拡大できる。また、テキスト領域ＴＯＡに含まれる複数個の文字「Ａ〜Ｅ」のレイアウトは、目標領域ＴＡに含まれる拡大後の複数個の文字「Ａ〜Ｅ」のレイアウトと等しい。「レイアウトが同じ」とは、テキスト領域ＴＯＡに含まれるＭ行（Ｍは１以上の整数）の文字列を構成する複数個の文字と、目標領域ＴＡに含まれる拡大後のＭ行の文字列を構成する複数個の文字とを比較すると、文字数が等しく、かつ、各文字の倍率、文字間の隙間の倍率、行間の隙間の倍率が等しい。さらに言うと、「レイアウトが同じ」とは、スキャン画像ＳＩ１内のテキストオブジェクトＴＯＢの外接矩形（即ちテキスト領域ＴＯＡ）内の部分画像を拡大すると、処理済み画像データ内の拡大画像内のテキストオブジェクトを含む目標領域ＴＡ内の部分画像と一致するということもできる。
【００５１】
（結合処理；図６）
続いて、図６を参照して、図３のＳ５００で実行される結合処理の内容を説明する。Ｓ５１０では、ＣＰＵ６２は、スキャン画像ＳＩ内の１個以上のテキスト領域のうちの１個のテキスト領域（以下では「対象テキスト領域」と呼ぶ）を処理対象として決定する。以下では、テキスト領域ＴＯＡが対象テキスト領域として決定される場合を例として説明する。
【００５２】
Ｓ５２０では、ＣＰＵ６２は、テキスト領域ＴＯＡに含まれる３行の文字列「Ａ〜Ｍ」が結合されている結合画像ＣＩを表わす結合画像データを生成する。具体的には、ＣＰＵ６２は、スキャン画像データＳＩＤの中から、テキスト領域ＴＯＡについて決定された３個の帯状領域ＬＡ１〜ＬＡ３（図４のＳ１６０参照）を表わす３個の部分画像データを取得する。そして、ＣＰＵ６２は、３個の帯状領域ＬＡ１〜ＬＡ３内の３行の文字列「Ａ〜Ｍ」が横方向に沿って直線状に結合されるように、取得済みの３個の部分画像データを結合して、結合画像ＣＩを表わす結合画像データを生成する。この際に、ＣＰＵ６２は、結合される２行の文字列の間に横方向の所定の長さの余白（即ち、「Ｅ」と「Ｆ」の間の余白、及び、「Ｊ」と「Ｋ」の間の余白）が形成されるように、当該余白を表わす画素、即ち、スキャン画像ＳＩの背景色を有する画素を補充して、結合画像データを生成する。即ち、ＣＰＵ６２は、補充される画素を介して、３個の部分画像データを結合して、結合画像ＣＩを表わす結合画像データを生成する。なお、ＣＰＵ６２は、帯状領域ＬＡ３内の後端側の余白（即ち文字列「Ｋ〜Ｍ」よりも右側に存在する余白）が削除されるように、帯状領域ＬＡ３を表わす部分画像データのうちの当該余白を表わすデータを削除する。これにより、文字列「Ａ〜Ｍ」よりも後端側に余白が存在しない結合画像ＣＩを表わす結合画像データが生成される。
【００５３】
Ｓ５３０では、ＣＰＵ６２は、Ｓ５２０で生成された結合画像データに対して二値化処理を実行する。当該二値化処理の内容は、図４のＳ１１０と同様である。
【００５４】
Ｓ５４０では、ＣＰＵ６２は、Ｓ５３０で生成された二値データを利用して、Ｓ５２０で生成された結合画像データ内の複数個の分断候補位置を決定する。分断候補位置は、再配置処理（図３のＳ７００、後述の図９参照）において、結合画像データを分断するための分断位置の候補である。ＣＰＵ６２は、まず、二値データを利用して、射影ヒストグラムを生成する。当該射影ヒストグラムは、二値データを構成する各画素を縦方向に射影する場合におけるＯＮ画素（即ち文字構成画素）の頻度の分布を示す。当該射影ヒストグラムでは、１個の文字（例えば「Ａ」）が、頻度がゼロより大きい範囲で表わされ、２個の文字の間の余白部分（例えば「Ａ」と「Ｂ」の間の余白部分）が、頻度がゼロである範囲（以下では「ゼロ頻度範囲」と呼ぶ）で表わされる。そして、ＣＰＵ６２は、射影ヒストグラムを利用して、各ゼロ頻度範囲の右端を分断候補位置として決定する。このように、２個の文字の間の余白部分が分断候補位置として決定されるので、１個の文字（例えば「Ａ」）の中間で分断されてしまうことを抑制することができる。なお、変形例では、ＣＰＵ６２は、各ゼロ頻度範囲の左端を分断候補位置として決定してもよいし、各ゼロ頻度範囲の中間位置を分断候補位置として決定してもよい。
【００５５】
Ｓ５５０では、ＣＰＵ６２は、全てのテキスト領域について、Ｓ５１０〜Ｓ５４０の処理が終了したのか否かを判断する。ＣＰＵ６２は、処理が終了していないと判断する場合（Ｓ５５０でＮＯ）には、Ｓ５１０において、未処理のテキスト領域を処理対象として決定する。ＣＰＵ６２は、処理が終了したと判断する場合（Ｓ５５０でＹＥＳ）には、図６の処理を終了する。
【００５６】
（目標領域決定処理；図７）
続いて、図７を参照して、図３のＳ６００で実行される目標領域決定処理の内容を説明する。Ｓ６３０では、ＣＰＵ６２は、拡大率ＥＲとして初期値「１．０」を設定すると共に、回数ポインタＴＰとして初期値「１」を設定する。拡大率ＥＲは、後述のＳ６５０の領域拡大処理でテキスト領域を拡大するための面積拡大率である。回数ポインタＴＰは、後述のＳ６５０の領域拡大処理が実行された回数を示すポインタである。従って、以下では、「ＴＰ回目の領域拡大処理」又は「（ＴＰ−１）回目の領域拡大処理」という用語を使用することがある。
【００５７】
Ｓ６４０では、ＣＰＵ６２は、拡大率ＥＲの現在値（例えば「１．０」）に予め決められている固定値α（例えば「０．０５」）を加えて、拡大率ＥＲの新たな値（例えば「１．０５」）を算出する。
【００５８】
Ｓ６５０では、ＣＰＵ６２は、領域拡大処理（後述の図８参照）を実行する。即ち、ＣＰＵ６２は、Ｓ６４０で算出された拡大率ＥＲの現在値（例えば「１．０５」）に従って、テキスト領域ＴＯＡを拡大して、各拡大領域を決定する。
【００５９】
Ｓ６７０では、ＣＰＵ６２は、Ｓ６５０で決定された拡大領域（例えば図８の拡大領域ＥＡ）が所定の条件を満たすのか否かを判断する。本実施例では、上記の所定の条件は、以下のとおりである。例えば、余白領域のサイズが比較的に小さい場合には、拡大率ＥＲに従ってテキスト領域を拡大すると、拡大領域が余白領域ＢＡに収まらない可能性がある。この場合、ＣＰＵ６２は、後述の図８の数式に従って、拡大領域を適切に決定することができないので、拡大領域が所定の条件を満たさないと判断する（Ｓ６７０でＮＯ）。また、例えば、Ｓ６５０で複数個の拡大領域が決定される場合には、当該複数個の拡大領域のうちの２個の拡大領域が互いに重複する可能性がある。この場合、ＣＰＵ６２は、拡大領域が所定の条件を満たさないと判断する（Ｓ６７０でＮＯ）。一方、ＣＰＵ６２は、拡大領域が余白領域ＢＡに収まり、かつ、２個の拡大領域が互いに重複しない場合には、拡大領域が所定の条件を満たすと判断する（Ｓ６７０でＹＥＳ）。
【００６０】
ＣＰＵ６２は、拡大領域が所定の条件を満たさないと判断する場合（Ｓ６７０でＮＯ）には、Ｓ６７２において、（ＴＰ−１）回目の領域拡大処理で決定された拡大領域を目標領域ＴＡ（図３のＳ６００参照）として決定する。なお、回数ポインタＴＰの現在値が「１」である場合には、Ｓ６７２では、ＣＰＵ６２は、テキスト領域ＴＯＡをそのまま目標領域ＴＡとして決定する。Ｓ６７２が終了すると、図７の処理が終了する。
【００６１】
一方、ＣＰＵ６２は、拡大領域が所定の条件を満たすと判断する場合（Ｓ６７０でＹＥＳ）には、Ｓ６８０において、拡大率ＥＲの現在値が所定値（例えば「１．４」）に一致するのか否かを判断する。上記の所定値は、目標領域ＴＡを決定するための最大の拡大率を意味し、換言すると、スキャン画像ＳＩ内の各文字のサイズを拡大するための目標の拡大率を意味する。
【００６２】
ＣＰＵ６２は、拡大率ＥＲの現在値が上記の所定値に一致すると判断する場合（Ｓ６８０でＹＥＳ）には、Ｓ６８２において、ＴＰ回目の領域拡大処理で決定された拡大領域を目標領域ＴＡ（例えば図３のＳ６００の目標領域ＴＡ参照）として決定する。Ｓ６８２が終了すると、図５の処理が終了する。
【００６３】
一方、ＣＰＵ６２は、拡大率ＥＲの現在値が上記の所定値に一致しないと判断する場合（Ｓ６８０でＮＯ）には、Ｓ６９０において、回数ポインタＴＰの現在値に「１」を加算して、回数ポインタＴＰの新たな値を算出する。そして、ＣＰＵ６２は、Ｓ６４０以降の各処理を再び実行する。
【００６４】
（領域拡大処理；図８）
続いて、図８を参照して、図７のＳ６５０で実行される領域拡大処理の内容を説明する。領域拡大処理では、ＣＰＵ６２は、拡大率ＥＲに従ってテキスト領域ＴＯＡを拡大して、拡大領域を決定する。
【００６５】
図８内の各矩形は、テキスト領域ＴＯＡと余白領域ＢＡと拡大領域ＥＡとを示す。テキスト領域ＴＯＡの横方向の長さ（即ち横方向の画素数）、縦方向の長さ（即ち縦方向の画素数）は、それぞれ、ＯＰｘ、ＯＰｙである。余白領域ＢＡの横方向の長さ（即ち横方向の画素数）、縦方向の長さ（即ち縦方向の画素数）は、それぞれ、ＢＰｘ、ＢＰｙである。また、テキスト領域ＯＡと余白領域ＢＡとの間には、横方向の２個の余白（長さＰｘ１，Ｐｘ２）が存在すると共に、縦方向の２個の余白（長さＰｙ１，Ｐｙ２）が存在する。
【００６６】
ＣＰＵ６２は、図７内の数式（１）〜（８）を利用して、４個の対象長さｄｘ１，ｄｘ２，ｄｙ１，ｄｙ２を算出することによって、拡大領域ＥＡの位置、アスペクト比、及び、サイズを決定する。数式（１）は、テキスト領域ＴＯＡの面積ＳＯと拡大率ＥＲの現在値とを乗算することによって得られる値が、拡大領域ＥＡの面積ＳＣに一致することを示す。数式（２）は、テキスト領域ＴＯＡの面積ＳＯが、テキスト領域ＴＯＡの横方向の長さＯＰｘと縦方向の長さＯＰｙとを乗算することによって得られることを示す。数式（３）は、拡大領域ＥＡの面積ＳＣが、テキスト領域ＴＯＡの横方向の長さＯＰｘと２個の対象長さｄｘ１，ｄｘ２との和と、テキスト領域ＴＯＡの縦方向の長さＯＰｙと２個の対象長さｄｙ１，ｄｙ２との和と、を乗算することによって得られることを示す。数式（４）は、数式（２）の面積ＳＯと数式（３）の面積ＳＣとを数式（１）に代入することによって得られる数式を示す。数式（５）は、４個の対象長さｄｘ１，ｄｘ２，ｄｙ１，ｄｙ２のそれぞれが、４個の余白の長さＰｘ１，Ｐｘ２，Ｐｙ１，Ｐｙ２のそれぞれと係数Ｋとを乗算することによって得られることを示す。数式（６）は、数式（５）の各対象長さｄｘ１，ｄｘ２，ｄｙ１，ｄｙ２を数式（４）に代入することによって得られる数式を示す。数式（７）は、数式（６）を展開することによって得られる数式を示す。数式（８）は、数式（７）の係数ａ，ｂ，ｃを利用して、係数Ｋを算出するための数式を示す。係数Ｋを数式（５）に代入すれば、４個の対象長さｄｘ１，ｄｘ２，ｄｙ１，ｄｙ２を算出することができる。
【００６７】
図８内の数式（１）〜（８）によると、以下の拡大領域ＥＡが得られる。数式（５）によると、「ｄｘ１＋ｄｘ２＝Ｋ×（Ｐｘ１＋Ｐｘ２）」という関係と、「ｄｙ１＋ｄｙ２＝Ｋ×（Ｐｙ１＋Ｐｙ２）」という関係と、が得られる。従って、横方向の２個の余白の長さの和（即ちＰｘ１＋Ｐｘ２）が、縦方向の２個の余白の長さの和（即ちＰｙ１＋Ｐｙ２）よりも大きい場合に、横方向の差分長さ（即ちｄｘ１＋ｄｘ２）が縦方向の差分長さ（即ちｄｙ１＋ｄｙ２）よりも大きくなり、横方向の２個の余白の長さの和（即ちＰｘ１＋Ｐｘ２）が、縦方向の２個の余白の長さの和（即ちＰｙ１＋Ｐｙ２）よりも小さい場合に、横方向の差分長さ（即ちｄｘ１＋ｄｘ２）が縦方向の差分長さ（即ちｄｙ１＋ｄｙ２）よりも小さくなる。このように、横方向の２個の余白の長さＰｘ１，Ｐｘ２と、縦方向の２個の余白の長さＰｙ１，Ｐｙ２と、に基づいて、テキスト領域ＴＯＡのアスペクト比とは異なる拡大領域ＥＡのアスペクト比と、拡大領域ＥＡのサイズと、拡大領域ＥＡの位置と、が決定される。そして、拡大領域ＥＡが目標領域ＴＡとして決定され得る（図７のＳ６７２，Ｓ６８２参照）。
【００６８】
（再配置処理；図９）
続いて、図９を参照して、図３のＳ７００で実行される再配置処理の内容を説明する。Ｓ７１０では、ＣＰＵ６２は、スキャン画像ＳＩに含まれる１個以上のテキスト領域のうちの１個のテキスト領域ＴＯＡを処理対象として決定する。以下では、Ｓ７１０で処理対象として決定されるテキスト領域のことを「対象テキスト領域」と呼ぶ。また、対象テキスト領域について決定された目標領域のことを「対象目標領域」と呼び、対象テキスト領域に含まれる各文字列が結合された結合画像（例えば図２のＣＩ）を表わす結合画像データのことを「対象結合画像データ」と呼ぶ。
【００６９】
Ｓ７２０では、ＣＰＵ６２は、決定されるべき再配置領域（図３のＲＡ参照）の候補である候補再配置領域の横方向の長さＷ（即ち横方向の画素数Ｗ）として、初期値ＯＰｘ（即ち対象テキスト領域の横方向の長さ）を設定すると共に、候補再配置領域の縦方向の長さＨ（即ち縦方向の画素数Ｈ）として、初期値ＯＰｙ（即ち対象テキスト領域の縦方向の長さ）を設定する。
【００７０】
Ｓ７３０では、ＣＰＵ６２は、候補再配置領域の縦方向の長さＨに対する横方向の長さＷの比Ｗ／Ｈが、対象目標領域の縦方向の長さＴＨに対する横方向の長さＴＷの比ＴＷ／ＴＨ未満であるのか否かを判断する。
【００７１】
ＣＰＵ６２は、比Ｗ／Ｈが比ＴＷ／ＴＨ未満であると判断する場合（Ｓ７３０でＹＥＳ）には、Ｓ７３２において、候補再配置領域の横方向の現在の長さＷに予め決められている固定値β（例えば１画素）を加算して、候補再配置領域の横方向の新たな長さＷを決定する。Ｓ７３２が終了すると、Ｓ７４０に進む。
【００７２】
一方、ＣＰＵ６２は、比Ｗ／Ｈが比ＴＷ／ＴＨ以上であると判断する場合（Ｓ７３０でＮＯ）には、Ｓ７３４において、候補再配置領域の横方向の現在の長さＷから予め決められている固定値β（例えば１画素）を減算して、候補再配置領域の横方向の新たな長さＷを決定する。Ｓ７３４が終了すると、Ｓ７４０に進む。なお、本実施例では、Ｓ７３２及びＳ７３４において、同じ固定値βが利用されるが、変形例では、Ｓ７３２の固定値とＳ７３４の固定値とは異なる値であってもよい。
【００７３】
Ｓ７４０では、ＣＰＵ６２は、スキャン画像データＳＩＤの解像度に応じて、縦方向に沿った行間の長さｍ（即ち行間の画素数ｍ）を決定する。例えば、ＣＰＵ６２は、スキャン画像データＳＩＤの解像度が３００ｄｐｉである場合には、行間の長さｍとして１画素を決定し、スキャン画像データＳＩＤの解像度が６００ｄｐｉである場合には、行間の長さｍとして２画素を決定する。即ち、ＣＰＵ６２は、スキャン画像データＳＩＤの解像度が高くなる程、大きい行間の長さｍを決定する。この構成によると、ＣＰＵ６２は、スキャン画像データＳＩＤの解像度に応じた適切な大きさを有する行間の長さｍを決定することができる。なお、変形例では、スキャン画像データＳＩＤの解像度に関わらず、行間の長さｍとして同じ値が採用されてもよい。
【００７４】
Ｓ７５０では、ＣＰＵ６２は、対象結合画像データと、Ｓ７３２又はＳ７３４で決定された候補再配置領域の横方向の新たな長さＷと、に基づいて、行数決定処理を実行する（後述の図１０参照）。行数決定処理では、ＣＰＵ６２は、対象結合画像（例えば図２のＣＩ１）に含まれる複数個の文字（例えば「Ａ〜Ｍ」）を候補再配置領域の中に再配置する場合における行数を決定する。
【００７５】
（行数決定処理；図１０）
図１０に示されるように、Ｓ７５１では、ＣＰＵ６２は、対象結合画像（例えば図１１内のＣＩ）の横方向の長さＩＷが、候補再配置領域の横方向の長さＷ以下であるのか否かを判断する。ＣＰＵ６２は、長さＩＷが長さＷ以下であると判断する場合（Ｓ７５１でＹＥＳ）には、Ｓ７５２において、「１」を行数として決定する。対象結合画像ＣＩに含まれる全ての文字「Ａ〜Ｍ」が横方向に沿って直線状に並んだ状態で、全ての文字「Ａ〜Ｍ」が候補再配置領域内に収まるからである。Ｓ７５２が終了すると、図１０の処理が終了する。
【００７６】
一方、ＣＰＵ６２は、長さＩＷが長さＷより大きいと判断する場合（Ｓ７５１でＮＯ）には、対象結合画像ＣＩに含まれる複数個の文字「Ａ〜Ｍ」を複数行に分断して配置する必要がある。このために、ＣＰＵ６２は、Ｓ７５３及び７５４を実行して、図６のＳ５４０で決定された複数個の分断候補位置（例えば図１０内の対象結合画像ＣＩに付された複数個の矢印参照）の中から、１個以上の分断候補位置を選択する。
【００７７】
Ｓ７５３では、ＣＰＵ６２は、選択長さＳＷが候補再配置領域の横方向の長さＷ以下の最大の長さになるように、複数個の分断候補位置の中から１個の分断候補位置を選択する。１個の分断候補位置も未だに選択されていない状態では、選択長さＳＷは、対象結合画像ＣＩ１の先端と、選択されるべき分断候補位置と、の間の横方向の長さである。また、１個以上の分断候補位置が既に選択されている状態では、選択長さＳＷは、直近に選択された分断候補位置と、当該分断候補位置よりも後端に存在する新たに選択されるべき分断候補位置と、の間の横方向の長さである。図１０の例では、文字「Ｆ」と文字「Ｇ」との間の分断候補位置が選択される。
【００７８】
Ｓ７５４では、ＣＰＵ６２は、残存長さＲＷが候補再配置領域の横方向の長さＷ以下であるのか否かを判断する。残存長さＲＷは、直近に選択された分断候補位置と、対象結合画像の後端と、の間の横方向の長さである。ＣＰＵ６２は、残存長さＲＷが長さＷよりも大きいと判断する場合（Ｓ７５４でＮＯ）には、Ｓ７５３に戻り、複数個の分断候補位置の中から。直近に選択された分断候補位置よりも後端側に存在する分断候補位置を新たに決定する。
【００７９】
一方、ＣＰＵ６２は、残存長さＲＷが長さＷ以下であると判断する場合（Ｓ７５４でＹＥＳ）には、Ｓ４５５において、選択済みの分断候補位置の数に「１」を加算することによって得られる数を行数として決定する。Ｓ７５５が終了すると、図１０の処理が終了する。
【００８０】
（再配置処理の続き；図９）
図９のＳ７６０では、ＣＰＵ６２は、Ｓ７６０内の数式に従って、候補再配置領域の縦方向の新たな長さＨを決定する。Ｓ７６０内の数式において、「ｍ」はＳ７４０で決定された行間の長さであり、「ｎ」はＳ７５０で決定された行数であり、「ｈ」は対象結合画像データの縦方向の長さである（図１０内の結合画像ＣＩのｈ参照）。
【００８１】
Ｓ７７０では、ＣＰＵ６２は、候補再配置領域のアスペクト比Ｗ／Ｈが対象目標領域のアスペクト比ＴＷ／ＴＨに近似するのか否かを判断する。具体的には、ＣＰＵ６２は、候補再配置領域のアスペクト比Ｗ／Ｈが、対象目標領域のアスペクト比ＴＷ／ＴＨに基づいて設定される所定範囲内に含まれるのか否かを判断する。上記の所定範囲は、対象目標領域のアスペクト比ＴＷ／ＴＨから値γを減算することによって得られる値と、対象目標領域のアスペクト比ＴＷ／ＴＨに値γを加算することによって得られる値と、の間の範囲である。なお、値γは、予め決められている固定値であってもよいし、ＴＷ／ＴＨに所定の係数（例えば０．０５）を乗算することによって得られる値であってもよい。
【００８２】
ＣＰＵ６２は、候補再配置領域のアスペクト比Ｗ／Ｈが対象目標領域のアスペクト比ＴＷ／ＴＨに近似しないと判断する場合（Ｓ７７０でＮＯ）には、Ｓ７３０〜Ｓ７６０の各処理を再び実行する。これにより、ＣＰＵ６２は、候補再配置領域の横方向の新たな長さＷと縦方向の新たな長さＨとを決定して、Ｓ７７０の判断を再び実行する。
【００８３】
一方、ＣＰＵ６２は、候補再配置領域のアスペクト比Ｗ／Ｈが対象目標領域のアスペクト比ＴＷ／ＴＨに近似すると判断する場合（Ｓ７７０でＹＥＳ）には、Ｓ７８０において、まず、横方向の長さＷと縦方向の長さＨとを有する候補再配置領域を再配置領域（例えば図３のＲＡ）として決定する。そして、ＣＰＵ６２は、図１０のＳ７５３で１個以上の分断候補位置を選択済みである場合には、当該１個以上の分断候補位置で対象結合画像データを分断して、２個以上の分断画像を表わす２個以上の分断画像データを生成する。次いで、ＣＰＵ６２は、２個以上の分断画像が縦方向に沿って並ぶように、２個以上の分断画像データを再配置領域内に配置する。この際に、ＣＰＵ６２は、縦方向に沿って隣接する２個の分断画像の間にＳ７４０で決定された行間が形成されるように、２個の分断画像データを配置する。この結果、例えば、図３のＳ７００に示されるように、複数個の文字「Ａ」〜「Ｍ」が再配置領域ＲＡ内に再配置されている再配置画像ＲＩを表わす再配置画像データが生成される。再配置画像ＲＩ１内の複数個の文字「Ａ」〜「Ｍ」のサイズは、スキャン画像ＳＩ内の複数個の文字「Ａ」〜「Ｍ」のサイズに等しい。
【００８４】
Ｓ７９０では、ＣＰＵ６２は、スキャン画像ＳＩに含まれる全てのテキスト領域について、Ｓ７１０〜Ｓ７８０の処理が終了したのか否かを判断する。ＣＰＵ６２は、処理が終了していないと判断する場合（Ｓ７９０でＮＯ）には、Ｓ７１０において、未処理のテキスト領域を処理対象として決定して、Ｓ７１２以降の各処理を再び実行する。そして、ＣＰＵ６２は、処理が終了したと判断する場合（Ｓ７９０でＹＥＳ）には、図９の処理を終了する。
【００８５】
（ケースＡ；図１１）
続いて、図１１を参照して、図３のＳ７００の再配置処理（図９参照）とＳ８００の拡大処理について、具体的なケースＡを説明する。（Ａ１）に示されるように、候補再配置領域の横方向の長さＷの初期値、縦方向の長さＨの初期値として、それぞれ、対象テキスト領域ＴＯＡの横方向の長さＯＰｘ、縦方向の長さＯＰｙが設定される（図９のＳ７２０）。本ケースでは、Ｗ／ＨがＴＷ／ＴＨ未満である。即ち、対象目標領域ＴＡは、対象テキスト領域ＴＯＡと比べると、横長の形状を有する。この場合、候補再配置領域を横長の形状にしていけば、候補再配置領域のアスペクト比が対象目標領域ＴＡのアスペクト比に近づくことになる。従って、（Ａ２）に示されるように、候補再配置領域の横方向の現在の長さＷに固定値βが加算されて、候補再配置領域の横方向の新たな長さＷが決定される（Ｓ７３２）。この場合、行数として、文字列「Ａ〜Ｅ」と文字列「Ｆ〜Ｊ」と文字列「Ｋ〜Ｍ」とを含む３行が決定される（Ｓ７５０）。そして、候補再配置領域の縦方向の新たな長さＨが決定される（Ｓ７６０）。
【００８６】
（Ａ２）の状態では、候補再配置領域のアスペクト比Ｗ／Ｈが対象目標領域ＴＡのアスペクト比ＴＷ／ＴＨに近似しないので（Ｓ７７０でＮＯ）、候補再配置領域の横方向の現在の長さＷに固定値βが再び加算されて、候補再配置領域の横方向の新たな長さＷが再び決定される（Ｓ７３２）。この場合、行数として、文字列「Ａ〜Ｆ」と文字列「Ｇ〜Ｌ」と文字列「Ｍ」とを含む３行が決定される（Ｓ７５０）。即ち、候補再配置領域の横方向の長さＷが大きくなったことに起因して、候補再配置領域内の１行の文字列を構成することが可能な最大の文字数が増える。そして、候補再配置領域の縦方向の新たな長さＨが決定される（Ｓ７６０）。以降、候補再配置領域のアスペクト比Ｗ／Ｈが対象目標領域ＴＡのアスペクト比ＴＷ／ＴＨに近似する（Ｓ７７０でＹＥＳ）と判断されるまで、Ｓ７３０〜Ｓ７７０の処理を繰り返し実行する。
【００８７】
（Ａ３）に示されるように、候補再配置領域のアスペクト比Ｗ／Ｈが対象目標領域ＴＡのアスペクト比ＴＷ／ＴＨに近似する（Ｓ７７０でＹＥＳ）。なお、この場合、行数として、文字列「Ａ〜Ｇ」と文字列「Ｈ〜Ｍ」とを含む２行が決定される（Ｓ７５０）。従って、（Ａ４）に示されるように、（Ａ３）の候補再配置領域が再配置領域ＲＡとして決定される（Ｓ７８０）。この場合、再配置領域ＲＡのアスペクト比Ｗ／Ｈは、通常、対象テキスト領域ＴＯＡのアスペクト比よりも対象目標領域ＴＡのアスペクト比ＴＷ／ＴＨに近い。次いで、対象結合画像ＣＩを表わす対象結合画像データが分断されて、２個の分断画像ＤＩ１、ＤＩ２を表わす２個の分断画像データが生成される（Ｓ７８０）。そして、２個の分断画像ＤＩ１、ＤＩ２が縦方向に沿って並び、かつ、隣接する２個の分断画像の間に長さｍを有する行間が形成されるように、２個の分断画像データが再配置領域ＲＩ内に配置される。この結果、再配置画像ＲＩを表わす再配置画像データが生成される（Ｓ７８０）。
【００８８】
次いで、再配置画像データが拡大されて、拡大画像を表わす拡大画像データが生成される（図３のＳ８００）。具体的には、再配置画像ＲＩの対角線が伸びる方向に再配置画像ＲＩが拡大され、その結果、拡大画像を表わす拡大画像データが生成される。例えば、再配置領域ＲＡのアスペクト比Ｗ／Ｈが対象目標領域ＴＡのアスペクト比ＴＷ／ＴＨに等しい場合には、拡大画像の４個の辺の全てが、対象目標領域ＴＡの４個の辺に一致する。即ち、この場合、拡大画像のサイズが目標領域ＴＡのサイズに一致する。ただし、例えば、再配置領域ＲＡのアスペクト比Ｗ／Ｈが対象目標領域ＴＡのアスペクト比ＴＷ／ＴＨに等しくない場合には、再配置画像ＲＩを徐々に拡大していく過程において、拡大画像のいずれかの辺が対象目標領域ＴＡのいずれかの辺に一致した段階で、再配置画像ＲＩの拡大が終了する。即ち、この場合、拡大画像のサイズが目標領域ＴＡのサイズよりも小さくなる。
【００８９】
続いて、（Ａ５）に示されるように、再配置画像ＲＩを表わす再配置画像データが拡大された拡大画像データが、スキャン画像データＳＩＤの目標領域ＴＡ内に上書きされる（図３のＳ８００）。この結果、処理済み画像ＰＩを表わす処理済み画像データＰＩＤが完成する。処理済み画像ＰＩでは、テキスト領域ＴＯＡに含まれる複数個の文字「Ａ〜Ｍ」のレイアウトは、目標領域ＴＡに含まれる拡大後の複数個の文字「Ａ〜Ｍ」のレイアウトと異なる。なお、「レイアウトが異なる」とは、テキスト領域ＴＯＡに含まれるＭ行の文字列を構成する複数個の文字と、目標領域ＴＡに含まれる拡大後のＭ行の文字列を構成する複数個の文字とを比較すると、文字数が異なっていることと、各文字の倍率、文字間の隙間の倍率、行間の隙間の倍率のうちの少なくともいずれかの倍率が異なっていることと、の少なくとも１個を満たす。さらに言うと、「レイアウトが異なる」とは、スキャン画像ＳＩ１内のテキストオブジェクトＴＯＢの外接矩形（即ちテキスト領域ＴＯＡ）内の部分画像を拡大すると、処理済み画像データ内の拡大画像内のテキストオブジェクトを含む目標領域ＴＡ内の部分画像と一致しないということもできる。
【００９０】
上述したように、本実施例では、図９のＳ７４０において、比較的に小さい行間の長さｍ（例えば１画素、２画素等）が決定され、当該行間の長さｍが再配置画像ＲＩで採用される。従って、再配置画像ＲＩ内の行間の長さｍは、通常、スキャン画像ＳＩ内の行間の長さよりも小さい。この結果、再配置画像ＲＩ１が拡大されて得られる処理済み画像ＰＩ内の複数個の文字の縦方向の長さ（例えば文字「Ａ」の縦方向の長さ）に対する行間の長さの比は、スキャン画像ＳＩ内の複数個の文字の縦方向の長さに対する行間の長さの比よりも小さくなる。このように、本実施例では、処理済み画像ＰＩ内の行間の長さを相対的に小さくすることができ、その分、処理済み画像ＰＩ内において、各文字を適切に拡大することができる。
【００９１】
（ケースＢ；図１２）
続いて、図１２を参照して、ケースＢを説明する。（Ｂ１）に示されるように、本ケースでは、比Ｗ／Ｈが比ＴＷ／ＴＨよりも大きい。即ち、対象目標領域ＴＡは、対象テキスト領域ＴＯＡと比べると、縦長の形状を有する。この場合、候補再配置領域を縦長の形状にしていけば、候補再配置領域のアスペクト比が対象目標領域ＴＡのアスペクト比に近づくことになる。従って、（Ｂ２）に示されるように、候補再配置領域の横方向の現在の長さＷから固定値βが減算されて、候補再配置領域の横方向の新たな長さＷが決定される（Ｓ７３４）。この場合、行数として、文字列「Ａ〜Ｄ」と文字列「Ｅ〜Ｈ」と文字列「Ｉ〜Ｌ」と文字列「Ｍ」とを含む４行と決定される（Ｓ７５０）。即ち、この場合、候補再配置領域の横方向の長さＷが小さくなったことに起因して、候補再配置領域内の１行の文字列を構成することが可能な最大の文字数が減る。そして、候補再配置領域の縦方向の新たな長さＨが決定される（Ｓ７６０）。
【００９２】
（Ｂ２）の状態では、候補再配置領域のアスペクト比Ｗ／Ｈが対象目標領域ＴＡのアスペクト比ＴＷ／ＴＨに近似する（Ｓ７７０でＹＥＳ）。従って、（Ｂ３）に示されるように、（Ｂ２）の候補再配置領域が再配置領域ＲＡとして決定される（Ｓ７８０）。次いで、対象結合画像ＣＩを表わす対象結合画像データが分断されて、４個の分断画像ＤＩ４〜ＤＩ７を表わす４個の分断画像データが生成される（Ｓ７８０）。そして、図１１のケースＡと同様に、再配置画像ＲＩを表わす再配置画像データが生成され（Ｓ７８０）、（Ｂ４）に示されるように、再配置画像データが拡大された拡大画像データが生成され、当該拡大画像データがスキャン画像データＳＩＤの目標領域ＴＡ内に上書きされる（図３のＳ８００）。この結果、処理済み画像ＰＩを表わす処理済み画像データＰＩＤが完成する。処理済み画像ＰＩでは、テキスト領域ＴＯＡに含まれる複数個の文字「Ａ〜Ｍ」のレイアウトは、目標領域ＴＡに含まれる拡大後の複数個の文字「Ａ〜Ｍ」のレイアウトと異なる。
【００９３】
（第１実施例の効果）
本実施例によると、画像処理サーバ５０は、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、の判断結果に応じて、テキストオブジェクトに含まれる複数個の文字のレイアウトを変更しない単純拡大処理（図２のＳ４００）と、レイアウトが変更され得る拡大処理（図３のＳ５００〜Ｓ８００）と、のいずれかの拡大処理を実行することができる。このため、単純拡大処理を実行すべきと判断される場合に、処理済み画像データを生成する際に、テキストオブジェクトＴＯＢに含まれる複数個の文字のレイアウトを替えずに済む。
【００９４】
また、本実施例によれば、図３に示すＳ５００〜Ｓ８００の処理を実行する前に、単純拡大条件を満たすのか否かを判断する。この結果、単純拡大条件を満たす場合に、画像処理サーバ５０は、図３に示すＳ５００〜Ｓ８００の処理を実行せずに、拡大画像データを生成することができる。画像処理サーバ５０の処理負荷を低減することができる。
【００９５】
また、テキストオブジェクトＴＯＢに含まれる文字列が、１行のみで構成されている場合、文書の作成者が意図的に１行で記述している場合が多い。例えば、スキャン画像ＳＩが、プレゼンテーションのスライドを表す画像である場合、スライドの表題が１行で記述されている場合がある。この場合、１行で記述されている文字列のレイアウトを、複数行の文字列に変更すると、文書の作成者の意図に反した変更となり得る。本実施例では、テキストオブジェクトＴＯＢに含まれる文字列が、１行のみで構成されている場合テキストオブジェクトＴＯＢに含まれる文字列のレイアウトを変更せずに、単純拡大処理が実行される。この結果、作成者の意図に反してレイアウトが変更されることを回避することができる。
【００９６】
（対応関係）
画像処理サーバ５０が、「画像処理装置」の一例である。スキャン画像ＳＩ，ＳＩ１が、それぞれ、「原画像」の一例である。余白領域ＢＡが、「スペース領域」の一例である。横方向、縦方向が、それぞれ、「第１方向」、「第２方向」の一例である。横方向の２個の余白の長さＰｘ１，Ｐｘ２、縦方向の２個の余白の長さＰｙ１，Ｐｙ２が、それぞれ、「第１方向に沿った２個の余白の長さ」、「第２方向に沿った２個の余白の長さ」の一例である。
【００９７】
図２のＳ４００の単純拡大処理が「第１種の拡大処理」の一例であり、図３のＳ５００〜Ｓ８００までの処理が「第２種の拡大処理」の一例である。
【００９８】
図２のＳ３００におけるテキスト領域ＴＯＡに含まれる文字列が１行であるのか否かを判断する構成が、「Ｍ行の文字列に基づいて、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、を判断する」構成の一例であり、「Ｍが１であるのか、Ｍが２以上であるのかを判断」する構成の一例である。また、図２のＳ３００におけるテキスト領域ＴＯＡに含まれる文字列が１行であるのか否かを判断する構成は、「Ｍ行の文字列の特徴（あるいは、テキストオブジェクトの特徴）（本実施例ではテキストオブジェクトＴＯＢの文字列の行数）に基づいて、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、を判断する」ということができる。
【００９９】
以下では、第２〜第６実施例について、第１実施例と異なる点を説明する。第２〜第６実施例では、図２のＳ３００の処理の内容が第１実施例とは異なる。
【０１００】
（第２実施例；図１３）
図１３に示すように、画像処理サーバ５０のＣＰＵ６２は、Ｓ３００において、スキャン画像データＳＩ２のテキスト領域ＴＯＡを目標倍率（例えば１．４）に拡大した単純拡大領域が、図２のＳ２００で決定された余白領域ＢＡに収まるのか否かを判断する。具体的には、ＣＰＵ６２は、テキスト領域ＴＯＡの縦方向の長さと横方向の長さとのそれぞれに、目標倍率の平方根（例えば√１．４）を乗算し、単純拡大領域の縦方向の長さと横方向の長さとして決定する。ＣＰＵ６２は、単純拡大領域の縦方向の長さが、余白領域ＢＡの縦方向の長さ以下であり、かつ、単純拡大領域の横方向の長さが、余白領域ＢＡの横方向の長さ以下である場合に、単純拡大領域が余白領域ＢＡに収まると判断する。一方、ＣＰＵ６２は、単純拡大領域の縦方向の長さが、余白領域ＢＡの縦方向の長さよりも大きい場合、及び、単純拡大領域の横方向の長さが、余白領域ＢＡの横方向の長さよりも大きい場合、の少なくとも一方の場合に、単純拡大領域が、余白領域ＢＡに収まらないと判断する。
【０１０１】
ＣＰＵ６２は、単純拡大領域が余白領域ＢＡに収まると判断すると判断される場合（Ｓ３００でＹＥＳ）、該単純拡大領域を目標領域ＴＡとして決定し、Ｓ４００に進み、単純拡大領域が余白領域ＢＡに収まらないと判断すると判断される場合（Ｓ３００でＮＯ）、図３のＳ５００に進む。
【０１０２】
Ｓ４００では、ＣＰＵ６２は、第１実施例のＳ４００と同様に、単純拡大処理を実行する。なお、本実施例では、Ｓ３００において、テキスト領域ＴＯＡのアスペクト比を変更せずに、テキスト領域ＴＯＡの面積を、目標倍率に拡大することが可能であると判断されている。このため、ＣＰＵ６２は、Ｓ４００において、テキスト領域ＴＯＡを、決定された目標領域ＴＡまで目標倍率に拡大して、拡大画像を表わす拡大画像データを生成する。
【０１０３】
本実施例によれば、図３に示すＳ５００〜Ｓ８００の処理を実行する前に、テキスト領域ＴＯＡを目標倍率に拡大可能であるのか否かを判断する。この結果、拡大可能である場合に、画像処理サーバ５０は、図３に示すＳ５００〜Ｓ８００の処理を実行せずに、拡大画像データを生成することができる。画像処理サーバ５０の処理負荷を低減することができる。
【０１０４】
また、本実施例によれば、テキスト領域ＴＯＡに含まれる文字列のレイアウトを変更せずに、単純拡大処理が実行される。この結果、作成者の意図に反してレイアウトが変更されることを回避することができる。
【０１０５】
（対応関係）
目標倍率の平方根が「目標値」の一例であり、目標領域ＴＡの横方向の長さ、縦方向の長さが、それぞれ、「第１の長さ」、「第２の長さ」の一例である。余白領域ＢＡの横方向の長さ、縦方向の長さが、それぞれ、「スペース領域の第１方向に沿った長さ」、「スペース領域の前記第２方向に沿った長さ」の一例である。目標領域ＴＡの縦方向の長さが、余白領域ＢＡの縦方向の長さよりも小さく、かつ、目標領域ＴＡの横方向の長さが、余白領域ＢＡの横方向の長さよりも小さいことが、「特定の条件」の一例である。
【０１０６】
（第３実施例；図１４）
図１４に示すように、画像処理サーバ５０のＣＰＵ６２は、Ｓ３００において、テキスト領域ＴＯＡに含まれるテキストオブジェクトＴＯＢが、箇条書きで表現されているのか否かを判断する。
【０１０７】
具体的には、ＣＰＵ６２は、まず、スキャン画像ＳＩ３に含まれるテキスト領域ＴＯＡに対応する射影ヒストグラムを生成する。なお当該射影ヒストグラムは、スキャン画像ＳＩ３から生成された二値データＢＤ（Ｓ１１０参照）を構成する複数個の画素のうち、テキスト領域ＴＯＡに含まれる複数個の帯状領域ＬＡ１〜ＬＡ４（Ｓ１６０参照）のそれぞれについて、当該帯状領域ＬＡ１〜ＬＡ４を表わす各画素を縦方向に射影する場合におけるＯＮ画素の頻度の分布を示す。換言すると、当該射影ヒストグラムは、テキスト領域ＴＯＡを表わす各画素を縦方向に射影する場合における文字の画素の頻度の分布を示す。射影ヒストグラムでは、各行の文字列に含まれる１個以上の文字のそれぞれが、高頻度範囲で表わされ、２個の文字の間が、頻度がゼロである範囲で表わされる。また、各行の文字列の最終文字の後端から、当該行の帯状領域の後端までは、頻度がゼロである範囲で表わされる。
【０１０８】
本実施例の射影ヒストグラムは、詳細には、帯状領域ＬＡ１〜ＬＡ４において、横方向に並ぶ各画素について、縦方向に射影する場合におけるＯＮ画素の頻度が示される（図１４の（１）、（２）参照）。ＣＰＵ６２は、帯状領域ＬＡ１〜ＬＡ４のそれぞれについて生成されたヒストグラムから、先端に位置する高頻度範囲である先端高頻度範囲ＦＨ１〜ＦＨ４を抽出する。次いで、図１４の（１）、（２）に示すように、ＣＰＵ６２は、先端高頻度範囲ＦＨ１内の各位置のＯＮ画素の頻度と先端高頻度範囲ＦＨ４の同じ位置のＯＮ画素の頻度とのそれぞれについて、各位置のＯＮ画素の頻度の差を算出し、それらの差の総和Ｄを決定する。
【０１０９】
ＣＰＵ６２は、先端高頻度範囲ＦＨ１と先端高頻度範囲ＦＨ２、先端高頻度範囲ＦＨ１と先端高頻度範囲ＦＨ３のそれぞれについても、同様に総和Ｄを決定する。次いで、決定された３個の総和の全てが予め決められた閾値（例えば「５」）以下である場合に、テキストオブジェクトＴＯＢが、箇条書きで表現されていると判断して（Ｓ３００でＹＥＳ）、ＣＰＵ６２は、単純拡大処理を実行する。一方、決定された３個の総和の全てが予め決められた閾値より大きい場合に、テキストオブジェクトＴＯＢが、箇条書きで表現されていないと判断して（Ｓ３００でＮＯ）、ＣＰＵ６２は、Ｓ５００以降の処理を実行する。単純拡大処理では、ＣＰＵ６２は、第１実施例と同様の処理を実行することによって、拡大画像データを生成する。
【０１１０】
本実施例によれば、図３に示すＳ５００〜Ｓ８００の処理を実行する前に、テキストオブジェクトＴＯＢが箇条書きで表現されているのか否かを判断する。この結果、拡大可能である場合に、画像処理サーバ５０は、図３に示すＳ５００〜Ｓ８００の処理を実行せずに、拡大画像データを生成することができる。画像処理サーバ５０の処理負荷を低減することができる。
【０１１１】
テキストオブジェクトＴＯＢが箇条書きで表現されている場合、テキストオブジェクトＴＯＢに含まれる複数個の文字のレイアウトを変更すると、箇条書きが不明確になり得る。本実施例では、テキストオブジェクトＴＯＢが箇条書きで表現されていると判断される場合、テキストオブジェクトＴＯＢに含まれる複数個の文字のレイアウトを変更せずに、単純拡大処理が実行される。この結果、箇条書きで表現されている複数個の文字のレイアウトが変更されることを回避することができる。
【０１１２】
本実施例では、先端高頻度範囲ＦＨ１〜ＦＨ４に基づいて、単純拡大処理を実行すべきか、Ｓ５００以降の処理を実行すべきか、を判断する構成が、「Ｍ行の文字列に基づいて、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、を判断する」の一例である。また、この構成は、「Ｍ行の文字列の特徴（あるいは、テキストオブジェクトの特徴）（即ちテキストオブジェクトの射影ヒストグラム）に基づいて、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、を判断する」ということができる。
【０１１３】
（第４実施例；図１５）
図１５に示すように、画像処理サーバ５０のＣＰＵ６２は、Ｓ３００において、テキスト領域ＴＯＡに含まれる各行の文字列の後端の余白のばらつきが大きいのか否かを判断する。
【０１１４】
具体的には、ＣＰＵ６２は、第３実施例と同様に、まず、帯状領域ＬＡ１〜ＬＡ４のそれぞれについて、射影ヒストグラムを生成する。次いで、ＣＰＵ６２は、帯状領域ＬＡ１の射影ヒストグラムのうち、最も後ろ側に位置する高頻度範囲の後端から、帯状領域ＬＡ１の右端までの距離ＢＬ１を特定する。これにより、１行目の文字列の余白の長さを特定する。なお、距離ＢＬ１は、画素数で特定される。
【０１１５】
次いで、ＣＰＵ６２は、他の帯状領域ＬＡ２〜ＬＡ４のそれぞれについて、同様に、距離ＢＬ２〜ＢＬ４を特定する。次いで、ＣＰＵ６２は、距離ＢＬ１〜ＢＬ４の平均値と距離ＢＬ１〜ＢＬ４のそれぞれの差の絶対値の合計が、閾値（例えば１００）以上である場合、テキスト領域ＴＯＡに含まれる各行の文字列の後端の余白のばらつきが大きいと判断して（Ｓ３００でＹＥＳ）、単純拡大処理を実行する。一方、ＣＰＵ６２は、距離ＢＬ１〜ＢＬ４の平均値と距離ＢＬ１〜ＢＬ４のそれぞれの差の絶対値の合計が、閾値未満である場合、テキスト領域ＴＯＡに含まれる各行の文字列の後端の余白のばらつきが小さいと判断して（Ｓ３００でＮＯ）、ＣＰＵ６２は、Ｓ５００以降の処理を実行する。単純拡大処理では、ＣＰＵ６２は、第１実施例と同様に処理を実行することによって、拡大画像データを生成する。
【０１１６】
各行の後端に位置する余白のばらつきが大きい場合、文書の作成者が意図的に改行されている場合が多い。例えば、図１５に示すように、箇条書きの場合には、各行に記述される項目の長さに応じて、各行の余白の長さはばらつく。また、例えば、図１９に示すように、テキスト領域ＴＯＡ内には、レターの宛て先が記述されている。このような場合、テキストオブジェクトＴＯＢに含まれる複数個の文字のレイアウトを変更すると、文書の作成者の意図に反してレイアウトを変更することになり得る。本実施例では、各行の後端に位置する余白のばらつきが大きい場合、テキストオブジェクトＴＯＢに含まれる文字列のレイアウトを変更せずに、単純拡大処理が実行される。この結果、作成者の意図に反してレイアウトが変更されることを回避することができる。
【０１１７】
（対応関係）
各帯状領域ＬＡ１〜ＬＡ４の射影ヒストグラムのうち、最も後ろ側に位置する高頻度範囲の後端が「１行の文字列の一端」の一例であり、各帯状領域ＬＡ１〜ＬＡ４の右端が「テキスト領域の境界」の一例である。距離ＢＬ１〜ＢＬ４が「余白の長さ」の一例である。距離ＢＬ１〜ＢＬ４の平均値と距離ＢＬ１〜ＢＬ４のそれぞれの差の絶対値の合計が、Ｍ行の文字列について算出されるＭ個の余白の長さのばらつきの一例であり、閾値が「所定のばらつき」の一例である。
【０１１８】
本実施例では、距離ＢＬ１〜ＢＬ４に基づいて、単純拡大処理を実行すべきか、Ｓ５００以降の処理を実行すべきか、を判断する構成が、「Ｍ行の文字列に基づいて、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、を判断する」の一例である。また、この構成は、「Ｍ行の文字列の特徴（あるいは、テキストオブジェクトの特徴）（即ち余白の長さ）に基づいて、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、を判断する」ということができる。
【０１１９】
本実施例のテキスト領域ＴＯＡに含まれる各行の文字列の後端の余白の長さのばらつきを用いることに代えて、各行の文字列の先端の余白の長さのばらつきを用いて、単純拡大処理を実行すべきか、Ｓ５００以降の処理を実行すべきか、を判断してもよい。この場合、ＣＰＵ６２は、帯状領域ＬＡ１〜ＬＡ４のそれぞれについて、当該帯状領域の射影ヒストグラムのうち、最も前側に位置する高頻度範囲の先端から、当該帯状領域の左端までの距離（即ち余白の長さ）を特定してもよい。この構成によると、例えば、各行の文字列が、中央揃えに配置されている場合（例えばレストランのコースメニュー）に、作成者の意図に反してレイアウトが変更されることを回避することができる。テキストオブジェクトＴＯＢに含まれる複数個の文字のレイアウトの先端の余白の長さが、「１行の文字列の一端とテキスト領域の境界との間の第１方向に沿った余白の長さ」の一例である。
【０１２０】
（第５実施例；図１６）
図１６に示すように、画像処理サーバ５０のＣＰＵ６２は、Ｓ３００において、テキスト領域ＴＯＡに含まれる文字列の行の中に、行の幅（即ち縦方向の長さ）が、他の行の幅と比較して、極端に大きい行が存在するのか否かを判断する。
【０１２１】
具体的には、ＣＰＵ６２は、まず、テキスト領域ＴＯＡに含まれる複数個の帯状領域ＬＡ１〜ＬＡ４（Ｓ１６０参照）のそれぞれについて、当該帯状領域ＬＡ１〜ＬＡ４の幅ＬＨ１〜ＬＨ４を特定する。なお、幅ＬＨ１〜ＬＨ４は、画素数で表される。図１６に示すように、先頭の「Ａ」の文字が、他の文字で構成される２行、即ち「Ｂ〜Ｅ」の行と、「Ｆ〜Ｉ」の行と、に亘って記述されている。この場合、Ｓ１６０では、文字「Ａ」と、「Ｂ〜Ｅ」の行と、「Ｆ〜Ｉ」の行と、を含む１個の帯状領域ＬＡ１が決定される。
【０１２２】
次いで、ＣＰＵ６２は、幅ＬＨ１〜ＬＨ４のうち、幅ＬＨ１〜ＬＨ４の平均のＫ倍（例えばＫ＝１．５）以上のものが含まれている場合、行の幅が極端に大きい行が存在すると判断して（Ｓ３００でＹＥＳ）、単純拡大処理を実行する。一方、ＣＰＵ６２は、幅ＬＨ１〜ＬＨ４のうち、幅ＬＨ１〜ＬＨ４の平均のＫ倍以上のものが含まれていない場合、行の幅が極端に大きい行が存在しないと判断して（Ｓ３００でＮＯ）、Ｓ５００以降の処理を実行する。単純拡大処理では、ＣＰＵ６２は、第１実施例と同様に処理を実行することによって、拡大画像データを生成する。
【０１２３】
この構成によると、テキスト領域ＴＯＡに含まれる複数個の文字に、他の文字と比較して極端に大きい特定文字（例えば「Ａ」）が含まれているのか否かを判断することができる。例えば、新聞や雑誌の記事では、センテンスの先頭の文字のみを、他の文字より大きく表記する場合がある。この場合、例えば、Ｓ５００以降の処理が実行されて拡大処理が実行されると、帯状領域ＬＡ１と帯状領域ＬＡ２とが結合されるケースがある。このケースでは、２行で表記されている文字列が、文字「Ｊ」以降、突然に１行で表記され、読みづらい。本実施例では、上記の状況を回避することができる。また、本実施例によれば、テキスト領域ＴＯＡに含まれる文字列のレイアウトを変更せずに、単純拡大処理が実行される。この結果、作成者の意図に反してレイアウトが変更されることを回避することができる。
【０１２４】
本実施例では、他の行の幅と比較して極端に大きい幅の行が含まれているのか否かに基づいて、単純拡大処理を実行すべきか、Ｓ５００以降の処理を実行すべきか、を判断する構成が、「Ｍ行の文字列に基づいて、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、を判断する」の一例である。また、この構成は、「Ｍ行の文字列の特徴（あるいは、テキストオブジェクトの特徴）（即ちテキストオブジェクトＴＯＢに含まれる文字列の行の幅）に基づいて、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、を判断する」ということができる。
【０１２５】
（第６実施例；図１７）
図１７に示すように、画像処理サーバ５０のＣＰＵ６２は、Ｓ３００において、テキスト領域ＴＯＡの背景色が、スキャン画像ＳＩ６の背景色と異なるのか否かを判断する。
【０１２６】
本実施例の文字列解析処理では、ＣＰＵ６２は、第１実施例の文字列解析処理と同様に、Ｓ１１０〜Ｓ１５０の処理を実行する。Ｓ１１０の二値化処理では、背景色として、白色を示す最高頻度画素値が決定されている。この結果、二値データＢＤでは、テキスト領域ＴＯＡ内の各画素は、各写真オブジェクトＯＢ１，ＯＢ２の各画素と同様に、画素値「１」を示す。このため、Ｓ１２０のラベリング処理及びＳ１３０の矩形領域決定処理では、テキストオブジェクトＴＯＢに対応する１個の単位領域が決定される。
【０１２７】
次いで、Ｓ１５０の種類決定処理において、スキャン画像ＳＩ６のオブジェクト領域ＴＯＡに対応するヒストグラムでは、通常、黒色を示す画素値と黄色を示す画素値とを含む２個の画素値（例えば輝度値）のみの頻度がゼロより大きい。従って、ＣＰＵ６２は、オブジェクト領域ＴＯＡがテキスト領域であると判断する。しかし、テキスト領域ＴＯＡの各画素が画素値「１」であるため、Ｓ１６０によって、帯状領域は決定されない。
【０１２８】
Ｓ２００において、ＣＰＵ６２は、Ｓ１１０で生成された二値データＢＤのうち、Ｓ１５０において、テキスト領域ＴＯＡの全ての画素が画素値「１」である場合、テキスト領域ＴＯＡの背景色が、スキャン画像ＳＩの背景色と異なると判断して（Ｓ３００でＹＥＳ）、単純拡大処理を実行する。一方、ＣＰＵ６２は、Ｓ１１０で生成された二値データＢＤのうち、テキスト領域ＴＯＡ内に、画素値「０」の画素を含む場合、テキスト領域ＴＯＡの背景色が、スキャン画像ＳＩの背景色と同じであると判断して（Ｓ３００でＮＯ）、Ｓ５００以降の処理を実行する。単純拡大処理では、ＣＰＵ６２は、第１実施例と同様に処理を実行することによって、拡大画像データを生成する。
【０１２９】
例えば、プレゼンテーション資料の見出しを目立たせるために、テキスト領域ＴＯＡの背景色を変更する場合がある。この場合、テキストオブジェクトＴＯＢに含まれる複数個の文字のレイアウトを変更すると、文書の作成者の意図に反してレイアウトを変更することになり得る。本実施例では、テキスト領域ＴＯＡの背景色が、スキャン画像ＳＩの背景色と異なる場合に、テキストオブジェクトＴＯＢに含まれる文字列のレイアウトを変更せずに、単純拡大処理が実行される。この結果、作成者の意図に反してレイアウトが変更されることを回避することができる。
【０１３０】
本実施例では、テキスト領域ＴＯＡの背景色が、スキャン画像ＳＩの背景色と異なるのか否かに基づいて、単純拡大処理を実行すべきか、Ｓ５００以降の処理を実行すべきか、を判断する構成が、「Ｍ行の文字列に基づいて、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、を判断する」の一例である。また、この構成は、「Ｍ行の文字列の特徴（テキストオブジェクトの特徴）（本実施例では、テキスト領域ＴＯＡの背景色）に基づいて、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、を判断する」ということができる。
【０１３１】
本実施例では、背景色を判断する画素値として、輝度値が例示されている。しかしながら、背景色を判断する画素値は、輝度値でなくてもよい。例えば、背景色を判断する画素値は、ＲＧＢのうちの少なくとも１色の値であってもよい。例えば、Ｓ２００において、ＣＰＵ６２は、スキャン画像データＳＩＤ内の複数個の画素のＲ値の頻度の分布を示すヒストグラムを生成し、最高の頻度を有するＲ値を特定してもよい。また、ＣＰＵ６２は、テキスト領域ＴＯＡに含まれる複数個の画素のＲ値の頻度の分布を示すヒストグラムを生成し、最高の頻度を有するＲ値を特定してもよい。そして、特定された２個のＲ値が閾値（例えば１００）以上である場合、テキスト領域ＴＯＡの背景色が、スキャン画像ＳＩの背景色と異なると判断し（Ｓ３００でＹＥＳ）、特定された２個のＲ値が閾値未満である場合、テキスト領域ＴＯＡの背景色が、スキャン画像ＳＩの背景色と等しいと判断してもよい（Ｓ３００でＮＯ）。
【０１３２】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【０１３３】
（変形例１）上記の第３実施例では、画像処理サーバ５０は、センテンスの進行方向の先端に位置する先端高頻度範囲ＦＨ１〜ＦＨ４を用いて、箇条書きで表現されているのか否かを判断する。しかしながら、例えば、図１８に示すように、テキストオブジェクトＴＯＢが、各行の１文字目が数字であり、２文字目が「．」を用いた箇条書きで表現されている場合に、画像処理サーバ５０は、帯状領域ＬＡ１〜ＬＡ４のそれぞれについて生成されたヒストグラムから、センテンスの進行方向（即ち左から右）の先端から２つめの高頻度範囲を用いて、第３実施例と同様にして、箇条書きであるのか否かを判断してもよい。本変形例の構成は、「Ｍ個の射影ヒストグラムを用いて、Ｍ行の文字列が箇条書きによって表現されているのか否か」の一例である。
【０１３４】
（変形例２）上記の各実施例では、多機能機１０は、カラーコピー機能の実行指示がユーザから与えられる場合に、スキャン対象の画像を表わすシート（以下では「スキャン対象シート」と呼ぶ）をカラースキャンして、スキャン画像データＳＩＤを生成するとともに、ＯＣＲ（Optical Character Recognitionの略）を実行することによって、テキストオブジェクトＴＯＢに含まれる文字を表す文字データを生成してもよい。多機能機１０は、生成済みのスキャン画像データＳＩＤと、文字データと、を画像処理サーバ５０に送信してもよい。この場合、例えば、第３実施例において、画像処理サーバ５０は、文字データを用いて、各行の先頭に「・」が配置されている場合に、テキストオブジェクトＴＯＢが、箇条書きで表現されていると判断してもよい。本変形例の構成は、「Ｍ行の文字列に基づいて、第１種の拡大処理を実行すべきか、第２種の拡大処理を実行すべきか、を判断する」構成の一例である。
【０１３５】
（変形例３）上記の第２実施例では、画像処理サーバ５０が、スキャン画像データＳＩＤに対して画像処理（即ち図２，３のＳ１００〜Ｓ８００の各処理）を実行して処理済み画像データＰＩＤを生成し、当該処理済み画像データＰＩＤを多機能機１０に送信する（Ｓ９００）。これに代えて、多機能機１０が、スキャン画像データＳＩＤに対して画像処理を実行して処理済み画像データＰＩＤを生成してもよい（即ち画像処理サーバ５０が存在しなくてもよい）。本変形例では、多機能機１０が、「画像処理装置」の一例である。
【０１３６】
（変形例４）画像処理サーバ５０によって実行される画像処理の対象は、スキャン画像データＳＩＤでなくてもよく、文書作成ソフト、表編集ソフト、描画作成ソフト等によって生成されるデータであってもよい。即ち、「原画像データ」は、スキャン対象シートのスキャンによって得られるデータに限られず、他の種類のデータであってもよい。
【０１３７】
（変形例５）処理済み画像データＰＩＤは、多機能機１０での印刷に利用されるデータでなくてもよく、例えば、ディスプレイでの表示に利用されるデータであってもよい。一般的に言うと、処理済み画像データＰＩＤによって表わされる処理済み画像ＰＩは、出力（印刷、表示等）のための画像であればよい。
【０１３８】
（変形例６）上記の実施例では、スキャン画像ＳＩは、横方向の左側から右側に向かってセンテンスが進むと共に、縦方向の上側から下側に向かってセンテンスが進む文字列（即ち横書きの文字列）を含む。これに代えて、スキャン画像ＳＩは、縦方向の上側から下側に向かってセンテンスが進むと共に、横方向の右側から左側に向かってセンテンスが進む文字列（即ち縦書きの文字列）を含んでいてもよい。この場合、画像処理サーバ５０は、図４のＳ１６０において、横方向の射影ヒストグラムに基づいて、通常、帯状領域を決定することができない。このために、画像処理サーバ５０は、さらに、縦方向の射影ヒストグラムを生成して、帯状領域を決定する。その後、画像処理サーバ５０は、横方向の代わりに縦方向を利用し、縦方向の代わりに横方向を利用して、上記の実施例と同様の処理を実行すればよい。本変形例では、縦方向、横方向が、それぞれ、「第１方向」、「第２方向」の一例である。
【０１３９】
（変形例７）上記の実施例では、画像処理サーバ５０のＣＰＵ６２がプログラム６６（即ちソフトウェア）を実行することによって、図２〜図１７の各処理が実現される。これに代えて、図２〜図１７の各処理のうちの少なくとも１つの処理は、論理回路等のハードウェアによって実現されてもよい。
【０１４０】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【０１４１】
２：通信システム、４：インターネット、１０：多機能機、５０：画像処理サーバ、５２：ネットワークインターフェース、６０：制御部、６２：ＣＰＵ、６４：メモリ、６６：プログラム、ＳＩ：スキャン画像、ＰＩ：処理済み画像、ＴＯＢ：テキストオブジェクト、ＯＢ１，ＯＢ２：写真オブジェクト、ＴＯＡ：テキストオブジェクト領域（テキスト領域）、ＯＡ１，ＯＡ２：写真オブジェクト領域、ＬＡ１〜ＬＡ１４：帯状領域、ＢＡ：余白領域、ＥＡ：拡大領域、ＴＡ：目標領域、ＲＡ：再配置領域、ＳＩＤ：スキャン画像データ、ＣＩ：結合画像、ＰＩＤ：処理済み画像データ
【図１】
2015170982.tif 000003
【図２】
2015170982.tif 000004
【図３】
2015170982.tif 000005
【図４】
2015170982.tif 000006
【図５】
2015170982.tif 000007
【図６】
2015170982.tif 000008
【図７】
2015170982.tif 000009
【図８】
2015170982.tif 000010
【図９】
2015170982.tif 000011
【図１０】
2015170982.tif 000012
【図１１】
2015170982.tif 000013
【図１２】
2015170982.tif 000014
【図１３】
2015170982.tif 000015
【図１４】
2015170982.tif 000016
【図１５】
2015170982.tif 000017
【図１６】
2015170982.tif 000018
【図１７】
2015170982.tif 000019
【図１８】
2015170982.tif 000020
【図１９】
2015170982.tif 000021