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