以下に、本発明の一実施形態による画像処理装置について、コピー機能など複数種の機能が搭載された複合機(画像形成装置)を例にとって説明する。
<複合機の全体構成>
図1に示すように、本実施形態の複合機100は、画像読取部1および印刷部2を備える。画像読取部1は、原稿を読み取り、その原稿の画像データを生成する。印刷部2は、用紙搬送路20に沿って用紙を搬送しつつ、画像データに基づきトナー像を形成する。そして、印刷部2は、搬送中の用紙にトナー像を転写(印刷)する。
印刷部2は、給紙部3、用紙搬送部4、画像形成部5および定着部6によって構成される。給紙部3は、ピックアップローラー31および給紙ローラー対32を含み、用紙カセット33に収容された用紙を用紙搬送路20に供給する。用紙搬送部4は、複数の搬送ローラー対41を含み、用紙搬送路20に沿って用紙を搬送する。
画像形成部5は、感光体ドラム51、帯電装置52、露光装置53、現像装置54、転写ローラー55およびクリーニング装置56を含む。そして、画像形成部5は、画像データに基づきトナー像を形成し、そのトナー像を用紙に転写する。定着部6は、加熱ローラー61および加圧ローラー62を含み、用紙に転写されたトナー像を加熱および加圧して定着させる。
また、複合機100は、操作パネル7を備える。操作パネル7には、タッチパネルディスプレイ71が設けられる。たとえば、タッチパネルディスプレイ71は、各種設定を受け付けるためのソフトウェアキーを表示し、各種設定をユーザーから受け付ける(ソフトウェアキーに対するタッチ操作を受け付ける)。さらに、操作パネル7には、スタートキーやテンキーなどのハードウェアキー72も設けられる。
<複合機のハードウェア構成>
図2に示すように、複合機100は、制御部110を備える。制御部110は、CPU111、メモリー112および画像処理部113を含む。CPU111は、制御用のプログラムやデータに基づき動作する。メモリー112は、ROMやRAMを含む。CPU111を動作させるための制御用のプログラムやデータは、ROMに記憶され、RAMに展開される。そして、制御部110(CPU111)は、制御用のプログラムやデータに基づき、画像読取部1および印刷部2(給紙部3、用紙搬送部4、画像形成部5および定着部6)の動作を制御する。また、制御部110は、操作パネル7の動作を制御する。
画像処理部113は、画像処理回路114や画像処理メモリー115を含む。そして、画像処理部113は、画像データに対して、拡大/縮小、濃度変換およびデータ形式変換など種々の画像処理を施す。
ここで、画像処理部113は、複合機100に入力された画像データに含まれる文字や文字列を認識する処理である文字認識処理を行う。なお、画像処理部113による文字認識処理では、たとえば、OCR(Optical Character Reader)技術が用いられる。
画像処理部113に文字認識処理を行わせるため、たとえば、パターンマッチング用の文字パターン(標準パターン)を格納する文字データベースが画像処理メモリー115に予め記憶される。そして、画像処理部113は、文字認識処理を行うとき、処理対象となる画像データから文字画像を抽出する。このとき、画像処理部113は、処理対象の画像データに対してレイアウト解析などを行って文字領域を特定し、当該文字領域から1文字ずつ文字画像を切り出す(抽出する)。その後、画像処理部113は、文字データベースに格納された文字パターンと抽出文字画像とを比較する処理(マッチング処理)を行い、その比較結果に基づき文字を認識する。なお、文字データベースには、漢字、ひらがな、カタカナおよびアルファベットなど文字の種類ごとに、パターンマッチング用の文字パターンが格納される。
また、制御部110は、通信部120と接続される。通信部120は、外部機器200と通信可能に接続される。たとえば、通信部120には、ユーザーにより使用されるパーソナルコンピューター(PC)がLANを介して接続される。これにより、複合機100にて生成された画像データを外部機器200に送信することができる。あるいは、外部機器200から複合機100へのデータ送信も可能となる。
<虫食い問題の作成>
本実施形態の複合機100は、文書の一部が空白の解答欄とされた虫食い問題を作成するための虫食い問題作成モードを搭載する。なお、虫食い問題作成モードを利用した虫食い問題の作成では、ユーザーによって、虫食い問題の基となる原稿が準備され、当該原稿の文書のうち空白の解答欄とする部分に蛍光ペンなどでマーキングが施される。そして、複合機100に対して、虫食い問題作成モードに関する各種設定が行われる。
たとえば、制御部110は、虫食い問題作成モードに移行するための予め定められた操作が操作パネル7に対して行われると、虫食い問題作成モードに移行する。そして、このとき、制御部110は、虫食い問題作成モードに関する各種設定を受け付けるための設定画面700(図3参照)を操作パネル7に表示させる。この設定画面700では、たとえば、虫食い問題の解答欄のサイズに関する設定(マージン数の設定、文字サイズの設定および重み係数の設定など)を行える。
設定画面700には、図3に示すように、入力欄701、702および703が配される。入力欄701は、ユーザーによって設定されたマージン数が表記される欄である。入力欄702は、ユーザーによって設定された文字サイズが表記される欄である。入力欄703は、ユーザーによって設定された重み係数が表記される欄である。
たとえば、入力欄701をタッチすると設定対象がマージン数となり、その状態で、操作パネル7のテンキーを用いて数値を入力することにより、入力数値がマージン数として設定される(入力欄701に入力数値が表記される)。また、入力欄702をタッチすると設定対象が文字サイズとなり、その状態で、操作パネル7のテンキーを用いて数値を入力することにより、入力数値が文字サイズとして設定される(入力欄702に入力数値が表記される)。さらに、入力欄703をタッチすると設定対象が重み係数となり、その状態で、操作パネル7のテンキーを用いて数値を入力することにより、入力数値が重み係数として設定される(入力欄703に入力数値が表記される)。この構成では、操作パネル7が「受付部」に相当する。
なお、後で詳細に説明するが、マージン数の設定値を大きくするほど、解答欄の書字方向(文字を書き進める方向)のサイズを大きくすることができる。また、文字サイズの設定値を大きくするほど、解答欄の書字方向のサイズを大きくすることができ、かつ、解答欄の書字方向と直交する方向のサイズを大きくすることができる。さらに、重み係数の設定値を大きくするほど、解答欄の書字方向のサイズを大きくすることができる。
また、設定画面700には、決定キー704が配される。制御部110は、決定キー704に対するタッチ操作を検知すると、入力欄701に入力されている数値をマージン数として確定し、入力欄702に入力されている数値を文字サイズとして確定し、入力欄703に入力されている数値を重み係数として確定する。そして、制御部110は、虫食い問題の基となる原稿(文書の一部にマーキングが施された原稿)の画像データを複合機100に入力するよう促す旨の報知を操作パネル7に行わせる。以下の説明では、虫食い問題の基となる原稿の画像データを対象画像データと称する場合がある。
対象画像データの複合機100への入力は、虫食い問題の基となる原稿を画像読取部1により読み取ることによって行える。この構成では、画像読取部1が「入力部」に相当する。あるいは、通信部120を介して、対象画像データを複合機100に入力することもできる。この構成では、通信部120が「入力部」に相当する。
制御部110は、対象画像データが複合機100に入力されると、対象画像データを画像処理部113の画像処理メモリー115に転送する。また、制御部110は、虫食い問題の画像データの作成命令を画像処理部113に与える。この命令を受けた画像処理部113は、画像処理メモリー115に記憶された対象画像データを用いて、虫食い問題の画像データを生成する。
以下、画像処理部113によって行われる虫食い問題の画像データの生成について、図4に示すような対象画像データD1が複合機100に入力された場合を例にとって説明する。なお、図4では、ユーザーによりマーキングされた領域に符号8を付す。そして、以下の説明では、マーキングされた領域をマーキング領域8と称する。また、文書の書字方向(行方向)を第1方向と称し、第1方向と直交する方向を第2方向と称する。ここで、文書が横書きの場合(図4参照)には、書字方向が左右方向となる。一方で、文書が縦書きの場合(図示せず)には、書字方向が上下方向となる。
画像処理部113は、虫食い問題の画像データを生成するとき、対象画像データD1に存在するマーキング領域8を判別する。なお、マーキング領域8の判別は、対象画像データD1の各画素の画素値(濃度値)に基づき行われる。特に限定されないが、背景画像の画素よりも濃度が濃い画素からなる画素列を検索し、当該画素列が列方向と直交する方向に連続して並ぶ領域をマーキング領域8として判別してもよい。
マーキング領域8を判別すると、画像処理部113は、マーキング領域8に対して文字認識処理を行う。これにより、画像処理部113は、マーキング領域8に存在する文字の文字数を認識する。さらに、画像処理部113は、マーキング領域8に存在する文字の種類(漢字、ひらがな、カタカナおよびアルファベットなど)を認識し、マーキング領域8の文字を漢字と非漢字とに分類する。なお、非漢字というのは漢字以外の文字であり、ひらがな、カタカナおよびアルファベットなどが非漢字に相当する。
たとえば、図4に示す例において、「終わり」という文字列を含むマーキング領域8(以下、マーキング領域8aと称する)に対する文字認識処理が画像処理部113により行われた場合には、図5に示すように、実線の丸枠で囲まれた複数の領域内に存在する各文字画像が文字として認識される。また、画像処理部113は、マーキング領域8aの文字のうち、「終」という文字を漢字と認識し、「わ」および「り」という各文字をひらがなと認識する。すなわち、マーキング領域8aの文字は、漢字である「終」と、非漢字である「わ」および「り」とに分類される。このため、画像処理部113は、マーキング領域8aの文字数が「3」であると認識し、そのうち、漢字の文字数が「1」であり、非漢字の文字数が「2」であると認識する。
また、図4に示す例において、「上昇した」という文字列を含むマーキング領域8(以下、マーキング領域8bと称する)に対する文字認識処理が画像処理部113によって行われた場合には、図6に示すように、実線の丸枠で囲まれた複数の領域内に存在する各文字画像が文字として認識される。また、画像処理部113は、マーキング領域8bの文字のうち、「上」および「昇」という各文字を漢字と認識し、「し」および「た」という各文字をひらがなと認識する。すなわち、マーキング領域8bの文字は、漢字である「上」および「昇」と、非漢字である「し」および「た」とに分類される。このため、画像処理部113は、マーキング領域8bの文字数が「4」であると認識し、そのうち、漢字の文字数が「2」であり、非漢字の文字数が「2」であると認識する。
さらに、画像処理部113は、マーキング領域8の漢字をルビ付き漢字(ルビが振られた漢字)とルビ無し漢字(ルビが振られていない漢字)とにさらに分類する。ここで、横書きの場合、一般的に、漢字に振られるルビは当該漢字の上側に配される。なお、縦書きの場合には、漢字に付されるルビは当該漢字の右側に配される。
そこで、画像処理部113は、マーキング領域8の第2方向の両側の領域のうち一方側(上側)の領域であってマーキング領域8の近傍の領域であるマーキング近傍領域9に対して、マーキング領域8に対して行った文字認識処理と同様の文字認識処理を行う(マーキング近傍領域9に存在する文字の文字数および文字の種類を認識する)。これにより、画像処理部113は、マーキング領域8の漢字に振られたルビを認識する。
具体的には、画像処理部113は、マーキング領域8の第2方向の端部位置から第2方向(上方向)に向かって予め定められた画素数分離れた位置までの範囲をマーキング近傍領域9として設定する。そして、画像処理部113は、マーキング近傍領域9に対して文字認識処理を行った結果、マーキング近傍領域9に文字が存在すれば、その文字をルビと認識する。
マーキング近傍領域9にルビが存在する場合、画像処理部113は、マーキング領域8の漢字のうちルビ付き漢字を特定する。たとえば、画像処理部113は、マーキング領域8の漢字のうち、マーキング近傍領域9のルビの下側に存在する漢字をルビ付き漢字として判別する。一方で、画像処理部113は、マーキング領域8の漢字のうち、その上側にルビが存在しない漢字をルビ無し漢字として判別する。さらに、画像処理部113は、マーキング領域8に存在するルビ付き漢字およびルビ無し漢字の各文字数を判別するとともに、マーキング近傍領域9に存在するルビの文字数(ルビ数)を判別する。
たとえば、図5および図6に示す例では、文書が横書きであるので、マーキング領域8の上側領域がマーキング近傍領域9に設定される。以下の説明では、マーキング領域8aに対応するマーキング近傍領域9に符号9aを付し、マーキング領域8bに対応するマーキング近傍領域9に符号9bを付す。
図5に示す例では、マーキング近傍領域9aに文字が存在しない。したがって、画像処理部113は、マーキング近傍領域9aに対して文字認識処理を行うと、マーキング近傍領域9aにルビが存在しないと判断する(マーキング近傍領域9aのルビ数を「0」と認識する)。この場合、画像処理部113は、マーキング領域8aに存在する漢字である「終」をルビ無し漢字に分類する。
図6に示す例では、マーキング領域9bに文字が存在する。したがって、画像処理部113は、マーキング領域9bに対して文字認識処理を行うと、マーキング近傍領域9bにルビが存在すると判断する(マーキング近傍領域9bのルビ数を「6」と認識する)。図6では、マーキング近傍領域9bにおいて画像処理部113によって認識されるルビを破線の丸枠で囲む。
また、マーキング近傍領域9bのルビの下側には、「上」および「昇」という各漢字が存在する。このため、画像処理部113は、「上」および「昇」という各漢字をルビ付き漢字に分類する。なお、マーキング領域8bには、ルビ無し漢字は存在しない。
マーキング領域8およびマーキング近傍領域9に対して文字認識処理を行った後(各領域の文字数を認識した後)、画像処理部113は、図7に示すような虫食い問題の画像データD2を生成する。この虫食い問題の画像データD2は、図4に示した対象画像データD1のマーキング領域8を空白の解答欄10に変換した画像データである。具体的には、マーキング領域8の画像が消され、その代わりに、内側が空白とされた枠画像が挿入される。なお、このとき、マーキング近傍領域9の画像も消される。以下の説明では、マーキング領域8aに対応する解答欄10に符号10aを付し、マーキング領域8bに対応する解答欄10に符号10bを付す。
虫食い問題の画像データD2の生成に際し、画像処理部113は、解答欄10に記入され得る予測文字数にマージンを加えた解答欄文字数を求める。この解答欄文字数は、解答欄10のサイズを決定するときに基準となるものであり、マーキング領域8の文字の文字数や文字の種類、マーキング近傍領域9の文字の文字数(ルビ数)、設定画面700(図3参照)にてユーザーにより設定された各設定値(マージン数、文字サイズおよび重み係数)に基づき求められる。
具体的には、画像処理部113は、マーキング領域8のルビ付き漢字のルビ数(マーキング近傍領域9の文字の文字数)と、マーキング領域8のルビ無し漢字の文字数に重み係数を乗じた文字数と、マーキング領域8の非漢字の文字数とを合計し、その合計値にマージン数を加えた文字数を解答欄文字数として求める。なお、当該解答欄文字数にはマーキング領域8のルビ付き漢字の文字数(ルビが振られた漢字の数)は含まれない。
たとえば、設定画面700(図3参照)において、マージン数が「2」に設定され、重み係数が「3」に設定されたとする。
この場合、図5に示した例では、ルビ付き漢字が存在せず、「終」というルビ無し漢字および「わり」という非漢字が存在する。すなわち、ルビ付き漢字のルビ数が「0」である。また、ルビ無し漢字の文字数が「1」であり、そのルビ無し漢字の文字数に重み係数を乗じた文字数が「3(=1×3)」である。さらに、非漢字の文字数が「2」である。このため、マーキング領域8aに対応する解答欄10aの解答欄文字数は、「7(=0+3+2+2)」となる。
図6に示す例では、「上昇」というルビ付き漢字が存在する一方で、ルビ無し漢字は存在せず、また、「した」という非漢字が存在する。また、ルビ付き漢字は「じょうしょう」というルビを有する。すなわち、ルビ付き漢字のルビ数が「6」である。また、ルビ無し漢字の文字数が「0」である。さらに、非漢字の文字数が「2」である。このため、マーキング領域8bに対応する解答欄10bの解答欄文字数は、「10(=6+0+2+2)」となる。
そして、図8に示すように、マーキング領域8を解答欄10に変換するとき、画像処理部113は、解答欄10の第1方向のサイズをマーキング領域8の第1方向のサイズよりも大きくする。さらに、画像処理部113は、解答欄10の第2方向のサイズをマーキング領域8の第2方向のサイズよりも大きくする。
まず、解答欄10の第1方向のサイズは、解答欄文字数に応じたサイズに変更される。たとえば、画像処理部113は、マーキング領域8の第1方向のサイズをマーキング領域8の文字数で除した第1の値(1文字あたりの第1方向のサイズ)を求め、第1の値に解答欄文字数を乗じた第2の値を解答欄10の第1方向のサイズとする。これにより、解答欄10の第1方向のサイズはマーキング領域8の第1方向のサイズよりも大きくなる。
あるいは、画像処理部113は、設定画面700(図3参照)にて設定された1文字あたりの幅方向のサイズが第1の値よりも大きい場合、設定画面700にて設定された1文字あたりの幅方向のサイズに解答欄文字数を乗じた値を解答欄10の第1方向のサイズとする。この場合には、設定画面700にて設定された1文字あたりの幅方向のサイズが大きいほど、解答欄10の第1方向のサイズが大きくなる。
なお、虫食い問題用紙に記入される文字の種類は様々であり、ひらがな(カタカナ)だけで解答を記入する解答者もいれば、ひらがなと漢字とを併用して解答を記入する解答者もいる。たとえば、ひらがなだけで解答を記入する場合には、ひらがなと漢字とを併用して解答を記入する場合に比べて文字数が多くなる。したがって、解答欄10の第1方向のサイズは、対応するマーキング領域8の第1方向のサイズよりも大きいサイズに変更しておくことが好ましい。
ここで、仮に、ルビ無し漢字の文字数に重み係数を乗じなくても、解答欄文字数はマーキング領域8の文字数よりも多くなる。たとえば、図5に示した例において、ルビ無し漢字に重み係数を乗じる処理を行わなかった場合、解答欄文字数は「5(=0+1+2+2)」となるので、マーキング領域8aの文字数(当該文字数は「3」である)よりも多くなる。
さらに、マーキング領域8の文字数にマージン数を加えるだけでも(ルビ数を考慮しなくても)、解答欄文字数はマーキング領域8の文字数よりも多くなる。たとえば、図5に示した例において、マーキング領域8aの文字数にマージン数を加えるだけの処理を行った場合には、マーキング領域8aの文字数は「3」であるので、解答欄文字数は「5(=3+2)」となり、マーキング領域8aの文字数よりも多くなる。また、図6に示した例において、マーキング領域8bの文字数にマージン数を加えるだけの処理を行った場合には、マーキング領域8bの文字数は「4」であるので、解答欄文字数は「6(=4+2)」となり、マーキング領域8bの文字数よりも多くなる。
したがって、マーキング領域8のルビ付き漢字のルビ数(マーキング近傍領域9の文字の文字数)と、マーキング領域8のルビ無し漢字の文字数(重み付けはしない)と、マーキング領域8の非漢字の文字数とを合計し、その合計値にマージン数を加えた文字数を解答欄文字数として求めてもよい。あるいは、マーキング領域8の文字数にマージン数を加えた文字数を解答欄文字数として求めてもよい。当該解答欄文字数は、言い換えると、マーキング領域8のルビ付き漢字の文字数(ルビ数ではない)と、マーキング領域8のルビ無し漢字の文字数(重み付けはしない)と、マーキング領域8の非漢字の文字数とを合計し、その合計値にマージン数を加えた文字数である。
次に、解答欄10の第2方向のサイズは、設定画面700(図3参照)にて設定された1文字あたりの高さ方向のサイズに応じたサイズに変更される。たとえば、画像処理部113は、設定画面700にて設定された1文字あたりの高さ方向のサイズを解答欄10の第2方向のサイズとする。これにより、設定画面700にて設定された1文字あたりの高さ方向のサイズが大きいほど、解答欄10の第2方向のサイズが大きくなる。なお、設定画面700にて設定された1文字あたりの高さ方向のサイズが小さ過ぎると、解答欄10の第2方向のサイズがマーキング領域8の第2方向のサイズよりも小さくなってしまう場合がある。この場合、設定画面700での設定を無効とし、解答欄10の第2方向のサイズをマーキング領域8の第2方向のサイズよりも大きくしてもよい。
また、図9に示すように、マーキング領域8を解答欄10に変換するとき、画像処理部113は、マーキング領域8の第1方向の前後に存在する第1画像80Aおよび第2画像80Bが解答欄10と重ならないように、第1画像80Aと第2画像80Bとの間の距離L1をより大きくする。たとえば、画像処理部113は、第2画像80Bをマーキング領域8から離れる方向D11に移動させる。
さらに、図10に示すように、画像処理部113は、マーキング領域8の第2方向の前後に存在する第3画像80Cおよび第4画像80Dが解答欄10と重ならないように、第3画像80Cと第4画像80Dとの間の距離L2をより大きくする。たとえば、画像処理部113は、第4画像80Dを含む行全体をマーキング領域8から離れる方向D12に移動させる。そして、画像処理部113は、第3画像80Cを含む行と第4画像80Dを含む行との間における第2方向の中間位置にマーキング領域8を含む行を配置する(マーキング領域8を含む行全体を第3画像80Cから離れる方向D12に移動させる)。
これにより、図7に示すような虫食い問題の画像データD2が生成される。また、虫食い問題の画像データD2は印刷部2に出力される。なお、印刷部2に出力される虫食い問題の画像データD2は、露光装置53を制御するための露光制御用データに変換される。そして、印刷部2は、虫食い問題の画像データD2(露光制御用データ)に基づき、虫食い問題を用紙に印刷する。
なお、図9および図10に示したように、マーキング領域8の第1方向の後側に存在する画像80Bは方向D11にずらされ、マーキング領域8を含む行および当該行の第2方向の後側に存在する行は方向D12にずらされる。このため、虫食い問題が印刷される用紙の用紙サイズは、虫食い問題の基となる原稿の原稿サイズよりも大きくなる。
ここで、虫食い問題の画像データD2を予め定められたドキュメントフォーマットに変換してもよい。そして、図11に示すように、虫食い問題を含む文書の各改行位置を合わせてもよい。
以下、図12に示すフローチャートを参照し、虫食い問題の画像データD2を生成するときの処理の流れについて説明する。図12に示すフローチャートは、対象画像データD1(虫食い問題の基となる原稿の画像データ)が画像処理部113に転送され、制御部110が画像処理部113に対して虫食い問題の画像データD2の作成命令を与えたときにスタートする。
ステップS1において、画像処理部113は、対象画像データD1のうちからマーキング領域8を判別する。続いて、ステップS2において、画像処理部113は、マーキング領域8およびマーキング近傍領域9に対して文字認識処理を行う。そして、ステップS3において、画像処理部113は、マーキング領域8の文字数(ルビ付き漢字、ルビ無し漢字および非漢字の各文字数)を認識するとともに、マーキング近傍領域9の文字数(ルビ数)を認識する。
ステップS4において、画像処理部113は、マーキング領域8のルビ付き漢字のルビ数(マーキング近傍領域9の文字の文字数)と、マーキング領域8のルビ無し漢字の文字数に重み係数を乗じた文字数と、マーキング領域8の非漢字の文字数とを合計し、その合計値にマージン数を加えた文字数を解答欄文字数として求める。その後、ステップS5において、画像処理部113は、解答欄文字数および設定画面700(図3参照)にて設定された文字サイズに基づき、解答欄10のサイズを決定する。
ステップS6において、画像処理部113は、対象画像データD1のマーキング領域8を解答欄10に変換する。これにより、虫食い問題の画像データD2が生成される。そして、ステップS7において、画像処理部113は、虫食い問題の画像データD2(露光制御用データ)を印刷部2に出力する。画像データD2を受けた印刷部2は、虫食い問題を用紙に印刷し、その用紙を出力する。
本実施形態の複合機100(画像処理装置)は、上記のように、対象画像データD1(文書を含む原稿の画像データ)を複合機100に入力するための画像読取部1(入力部)および通信部120(入力部)と、対象画像データD1のうちユーザーによってマーキングされたマーキング領域8を判別し、マーキング領域8を空白の解答欄10に変換した虫食い問題の画像データD2を生成する画像処理部113と、を備える。そして、画像処理部113は、虫食い問題の画像データD2を生成するとき、マーキング領域8に対して文字を認識する文字認識処理を行うことにより、マーキング領域8に存在する文字の文字数を認識し、マーキング領域8の文字数にマージン数を加えた文字数を解答欄文字数として求め、文書を書き進める方向である第1方向における解答欄10のサイズを解答欄文字数に応じたサイズに変更する。
本実施形態の構成では、解答欄10の第1方向のサイズが解答欄文字数に応じたサイズに変更される。ここで、解答欄文字数はマーキング領域8の文字数にマージン数を加えた文字数であるので、解答欄文字数はマーキング領域8の文字数よりも多くなる。したがって、解答欄10の第1方向のサイズを解答欄文字数に応じたサイズに変更すると、解答欄10の第1方向のサイズはマーキング領域8の第1方向のサイズよりも大きくなる。言い換えると、解答欄10の第1方向のサイズはマーキング領域8の第1方向のサイズ以下になることはない。これにより、虫食い問題の画像データD2に基づき印刷された虫食い問題用紙の解答欄10のサイズが小さ過ぎることに起因して解答欄10への文字の記入が行い難くなる、という不都合が生じるのを抑制することができる。
また、本実施形態では、上記のように、画像処理部113は、マーキング領域8の文字を漢字と非漢字とに分類するとともに、マーキング領域8の第1方向と直交する第2方向の両側の領域のうち一方側の領域であってマーキング領域8の近傍の領域であるマーキング近傍領域9に対して文字認識処理を行うことにより、マーキング領域8の漢字に振られたルビを認識することによって、マーキング領域8の漢字をルビ付き漢字とルビ無し漢字とにさらに分類し、ルビ付き漢字のルビ数とルビ無し漢字の文字数と非漢字の文字数との合計にマージン数を加えた文字数を解答欄文字数として求める。この構成によると、ルビ付き漢字がマーキングされていれば、ルビ付き漢字の文字数が当該漢字に振られたルビの文字数とされる。たとえば、「上」という漢字に「じょう」というルビが振られているとすると、漢字としての文字数は「1」であるが、ルビ数が「3」であるので、「上」という漢字の文字数は「3」となる。これにより、解答欄10の第1方向のサイズがより大きくなる。したがって、ルビ付き漢字に対応する文字をひらがなで記入する場合に、解答欄10の記入スペースが足りなくなるという不都合が生じるのを抑制することができる。
また、本実施形態では、上記のように、画像処理部113は、解答欄文字数を求めるとき、ルビ無し漢字の文字数に予め定められた重み係数を乗じる。この構成によると、ルビ無し漢字がマーキングされていれば、ルビ無し漢字の文字数は重み係数を乗じた文字数とされる。たとえば、「終」という漢字を例にとると、漢字としての文字数は「1」であるが、その文字数に重み係数(「3」とする)が乗じられるので、「終」という漢字の文字数は「3」となる。これにより、解答欄10の第1方向のサイズがより大きくなる。したがって、ルビ無し漢字に対応する文字をひらがなで記入する場合に、解答欄10の記入スペースが足りなくなるという不都合が生じるのを抑制することができる。
また、本実施形態では、上記のように、操作パネル7(受付部)は、重み係数の設定をユーザーから受け付ける。そして、画像処理部113は、解答欄文字数を求めるとき、操作パネル7が受け付けた重み係数をルビ無し漢字の文字数に乗じる。この構成によると、解答欄10の第1方向のサイズ調整(重み係数の変更)を簡単に行うことができるので、問題作成者の利便性が向上する。たとえば、解答欄10の第1方向のサイズをより大きくしたい場合には、設定画面700の入力欄703に入力する値を大きくするだけでよい。
また、本実施形態では、上記のように、操作パネル7(受付部)は、マージン数の設定をユーザーから受け付ける。そして、画像処理部113は、解答欄文字数を求めるとき、操作パネル7が受け付けたマージン数を用いる。この構成によると、解答欄10の第1方向のサイズ調整(マージン数の変更)を簡単に行うことができるので、問題作成者の利便性が向上する。たとえば、解答欄10の第1方向のサイズをより大きくしたい場合には、設定画面700の入力欄701に入力する値を大きくするだけでよい。
また、本実施形態では、上記のように、操作パネル7は、文字サイズの設定をユーザーから受け付ける。そして、画像処理部113は、操作パネル7が受け付けた文字サイズが大きいほど、解答欄10の第2方向のサイズを大きくする。この構成によると、解答欄10の第2方向のサイズ調整(文字サイズの変更)を簡単に行うことができるので、問題作成者の利便性が向上する。たとえば、解答欄10の第2方向のサイズをより大きくしたい場合には、設定画面700の入力欄702に入力する値を大きくするだけでよい。
また、本実施形態では、上記のように、画像処理部113は、マーキング領域8を解答欄10に変換するとき、マーキング領域8の第1方向の前後に存在する画像間の距離を現在の距離よりも大きくするとともに、マーキング領域8の第2方向に存在する画像間の距離を現在の距離よりも大きくする。これにより、解答欄10のサイズがマーキング領域8のサイズに対して拡大されても、解答欄10が他の画像に重なることはない。
今回開示された実施形態は、すべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記実施形態の説明ではなく特許請求の範囲によって示され、さらに、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれる。