(57)【要約】【課題】  対象グループの周辺の所定領域内に対象グループに隣接しない第１種の画素が存在するのか否かを、少ないメモリ使用量で判断し得る技術を提供すること。【解決手段】  スキャナは、（ｙ＝２）に対応する２番目の二値ラインを処理する際に、１番目の二値ラインのｘ方向情報と、１番目の二値ラインのｙ方向情報と、を利用して、２番目の二値ラインのｙ方向情報を生成する。ｙ方向情報は、二値ラインを構成する複数個の画素のそれぞれについて、当該画素と、当該画素のｙ方向の上側に存在する最も近いＯＮ画素と、の間の距離を示す情報である。スキャナは、２番目の二値ラインがＯＮ画素グループ２１６ａを含む場合に、２番目の二値ラインの上側の各二値ラインを利用せずに、２番目の二値ラインのｙ方向情報を利用して、ＯＮ画素グループ２１６ａの周辺の所定領域内に他のＯＮ画素が存在するのか否かを判断する。【選択図】図６
2018041304.tif 000002
【特許請求の範囲】
【請求項１】
画像解析装置であって、
原稿の読取りによって生成される読取画像データを取得する取得部と、
前記読取画像データを利用して、第１の解析処理を実行する第１の解析部であって、前記第１の解析処理は、
第１方向の第１側から第２側に向かって、前記読取画像データを用いて得られるＭ本（前記Ｍは２以上の整数）のライン画素グループのそれぞれを順次特定する第１のライン特定処理であって、前記Ｍ本のライン画素グループのそれぞれは、前記第１方向に直交する第２方向に沿って並ぶ複数個の画素によって構成され、前記複数個の画素のそれぞれは、第１種の画素と第２種の画素とのどちらかである、前記第１のライン特定処理と、
前記Ｍ本のライン画素グループのうちのｍ１番目（前記ｍ１は２以上Ｍ以下の各整数）のライン画素グループが特定される場合に、前記Ｍ本のライン画素グループのうちの（ｍ１−１）番目のライン画素グループに対応する（ｍ１−１）番目の画素情報と、前記（ｍ１−１）番目のライン画素グループに対応する（ｍ１−１）番目の第１の距離情報と、を利用して、前記ｍ１番目のライン画素グループに対応するｍ１番目の第１の距離情報を生成する第１の距離情報生成処理であって、前記画素情報は、対応するライン画素グループを構成する複数個の画素のそれぞれが、前記第１種の画素と前記第２種の画素とのどちらであるのかを示す情報であり、前記第１の距離情報は、対応するライン画素グループを構成する複数個の画素のそれぞれについて、当該画素と、当該画素の前記第１側に存在する最も近い前記第１種の画素と、の間の距離を示す情報である、前記第１の距離情報生成処理と、
前記ｍ１番目のライン画素グループが、前記第２方向に沿って連続する１個以上の前記第１種の画素である第１の対象グループを含む場合に、前記ｍ１番目のライン画素グループの前記第１側の各ライン画素グループを利用せずに、前記ｍ１番目の第１の距離情報を利用して、前記第１の対象グループの周辺の第１の所定領域内に、前記第１の対象グループに隣接しない前記第１種の画素が存在するのか否かを判断する第１の判断処理と、を含む、前記第１の解析部と、
前記第１の解析処理の結果に応じて、前記第１の対象グループを含むオブジェクトであって、互いに隣接する１個以上の前記第１種の画素によって構成される前記オブジェクトに対応する所定処理を実行する所定処理実行部と、
を備える画像解析装置。
【請求項２】
前記第１のライン特定処理では、
前記（ｍ１−１）番目のライン画素グループが前記画像解析装置のメモリ内の第１の特定領域に書き込まれることによって、前記（ｍ１−１）番目のライン画素グループが特定され、
前記ｍ１番目のライン画素グループが前記第１の特定領域に書き込まれる前に、前記特定領域から前記（ｍ１−１）番目のライン画素グループが消去され、
前記第１の距離情報生成処理では、
前記ｍ１番目の第１の距離情報が前記第１の特定領域に書き込まれることによって、前記ｍ１番目の第１の距離情報が生成され、
前記ｍ１番目の第１の距離情報が前記第１の特定領域に書き込まれる際に、前記第１の特定領域から前記（ｍ１−１）番目の第１の距離情報が消去される、請求項１に記載の画像解析装置。
【請求項３】
前記第１の解析処理は、さらに、
前記第１の対象グループを利用して、前記オブジェクトのサイズを特定するサイズ特定処理を含み、
前記所定処理実行部は、前記第１の解析処理の結果と、前記オブジェクトの前記サイズと、に応じて、前記オブジェクトに対応する前記所定処理を実行する、請求項１又は２に記載の画像解析装置。
【請求項４】
前記所定処理実行部は、前記第１の対象グループに対する前記第１の判断処理において、前記第１の所定領域内に前記第１種の画素が存在しないと判断され、かつ、前記オブジェクトの前記サイズが第１の閾値未満である場合に、前記読取画像データのうち、前記オブジェクトに対応する各画素を、前記原稿の背景色を表わす画素に補正する前記所定処理を実行する、請求項１から３のいずれか一項に記載の画像解析装置。
【請求項５】
前記所定処理実行部は、前記第１の対象グループに対する前記第１の判断処理において、前記第１の所定領域内に前記第１種の画素が存在すると判断され、かつ、前記オブジェクトの前記サイズが第２の閾値未満である場合に、前記オブジェクトが文字であると判断して、前記文字に関係する前記所定処理を実行する、請求項１から３のいずれか一項に記載の画像解析装置。
【請求項６】
前記第１の所定領域は、前記第１の対象グループに含まれる対象画素から第１の所定距離以内の領域を含まず、前記対象画素から前記第１の所定距離以上であって第２の所定距離以内の領域を含む、請求項１から５のいずれか一項に記載の画像解析装置。
【請求項７】
前記第１の解析処理は、さらに、
前記ｍ１番目のライン画素グループが特定される場合に、前記Ｍ本のライン画素グループのうちの（ｋ−１）番目のライン画素グループに対応する（ｋ−１）番目の前記画素情報と、前記（ｋ−１）番目のライン画素グループに対応する（ｋ−１）番目の前記第１の距離情報と、を利用して、前記Ｍ本のライン画素グループのうちのｋ番目のライン画素グループに対応するｋ番目の前記第１の距離情報である補助情報を生成する補助情報生成処理であって、前記ｋは、前記ｍ１から前記第１の所定距離に相当する値が減算された値である、前記補助情報生成処理を含み、
前記第１の判断処理では、前記ｍ１番目の第１の距離情報と前記ｋ番目の第１の距離情報とを利用して、前記判断が実行される、請求項６に記載の画像解析装置。
【請求項８】
前記第１の所定領域は、前記第１の対象グループの前記第２側の領域を含まない、請求項１から７のいずれか一項に記載の画像解析装置。
【請求項９】
前記画像解析装置は、さらに、
前記読取画像データを利用して、第２の解析処理を実行する第２の解析部を備え、
前記第２の解析処理は、
前記第１方向の前記第２側から前記第１側に向かって、前記Ｍ本のライン画素グループのそれぞれを順次特定する第２のライン特定処理と、
前記Ｍ本のライン画素グループのうちのｍ２番目（前記ｍ２は２以上Ｍ以下の各整数）のライン画素グループが特定される場合に、前記Ｍ本のライン画素グループのうちの（ｍ２−１）番目のライン画素グループに対応する（ｍ２−１）番目の前記画素情報と、前記（ｍ２−１）番目のライン画素グループに対応する（ｍ２−１）番目の第２の距離情報と、を利用して、前記ｍ２番目のライン画素グループに対応するｍ２番目の第２の距離情報を生成する第２の距離情報生成処理であって、前記第２の距離情報は、対応するライン画素グループに含まれる複数個の画素のそれぞれについて、当該画素と、当該画素の前記第２側に存在する最も近い前記第１種の画素と、の間の距離を示す情報である、前記第２の距離情報生成処理と、
前記ｍ２番目のライン画素グループが前記第１の対象グループを含む場合に、前記ｍ２番目のライン画素グループの前記第２側の各ライン画素グループを利用せずに、前記ｍ２番目の第２の距離情報を利用して、前記第１の対象グループの周辺の第２の所定領域内に、前記第１の対象グループに隣接しない前記第１種の画素が存在するのか否かを判断する第２の判断処理と、を含み、
前記所定処理実行部は、前記第１の解析処理の結果と前記第２の解析処理の結果とに応じて、前記オブジェクトに対応する前記所定処理を実行する、請求項１から８のいずれか一項に記載の画像解析装置。
【請求項１０】
前記第１の解析処理は、さらに、
前記ｍ１番目のライン画素グループが特定される場合に、前記オブジェクトの位置及びサイズを特定するための特定情報と、前記第１の対象グループに対する前記第１の判断処理の結果を示す結果情報と、を対応付けて、前記画像解析装置のメモリに記憶させる記憶制御処理と、
前記Ｍ本のライン画素グループのうちの（ｍ１＋１）番目のライン画素グループが特定され、かつ、前記（ｍ１＋１）番目のライン画素グループが、前記第１方向に沿って連続する１個以上の前記第１種の画素である第２の対象グループであって、前記第１の対象グループに隣接する前記第２の対象グループを含む場合に、前記特定情報を更新する第１の更新処理と、
前記第１の対象グループに対する前記第１の判断処理において、前記第１の所定領域内に前記第１種の画素が存在しないと判断され、かつ、前記第２の対象グループに対する前記第１の判断処理において、前記第１の所定領域内に前記第１種の画素が存在すると判断される場合に、前記特定情報に対応付けられている前記結果情報を更新する第２の更新処理と、
を含む、請求項１から９のいずれか一項に記載の画像解析装置。
【請求項１１】
前記第１のライン特定処理では、
前記（ｍ１−１）番目のライン画素グループが前記画像解析装置のメモリ内の第１の特定領域に書き込まれることによって、前記（ｍ１−１）番目のライン画素グループが特定され、
前記ｍ１番目のライン画素グループが前記第１の特定領域に書き込まれる前に、前記特定領域から前記（ｍ１−１）番目のライン画素グループが消去され、
前記第１の距離情報生成処理では、
前記ｍ１番目の第１の距離情報が前記第１の特定領域に書き込まれることによって、前記ｍ１番目の第１の距離情報が生成され、
前記ｍ１番目の第１の距離情報が前記第１の特定領域に書き込まれる際に、前記第１の特定領域から前記（ｍ１−１）番目の第１の距離情報が消去され、
前記第１の解析処理は、さらに、
前記ｍ１番目のライン画素グループが特定される場合に、前記オブジェクトの位置及びサイズを特定するための特定情報と、前記第１の対象グループに対する前記第１の判断処理の結果を示す結果情報と、を対応付けて、前記画像解析装置のメモリ内の第２の特定領域に記憶させる記憶制御処理を含み、
前記第２の特定領域内の前記特定情報及び前記結果情報は、前記第１の解析処理が終了した後に消去される、請求項１から１０のいずれか一項に記載の画像解析装置。
【請求項１２】
画像解析装置のためのコンピュータプログラムであって、
前記画像解析装置に搭載されるコンピュータを、
原稿の読取りによって生成される読取画像データを取得する取得部と、
前記読取画像データを利用して、第１の解析処理を実行する第１の解析部であって、前記第１の解析処理は、
第１方向の第１側から第２側に向かって、前記読取画像データを用いて得られるＭ本（前記Ｍは２以上の整数）のライン画素グループのそれぞれを順次特定する第１のライン特定処理であって、前記Ｍ本のライン画素グループのそれぞれは、前記第１方向に直交する第２方向に沿って並ぶ複数個の画素によって構成され、前記複数個の画素のそれぞれは、第１種の画素と第２種の画素とのどちらかである、前記第１のライン特定処理と、
前記Ｍ本のライン画素グループのうちのｍ１番目（前記ｍ１は２以上Ｍ以下の各整数）のライン画素グループが特定される場合に、前記Ｍ本のライン画素グループのうちの（ｍ１−１）番目のライン画素グループに対応する（ｍ１−１）番目の画素情報と、前記（ｍ１−１）番目のライン画素グループに対応する（ｍ１−１）番目の第１の距離情報と、を利用して、前記ｍ１番目のライン画素グループに対応するｍ１番目の第１の距離情報を生成する第１の距離情報生成処理であって、前記画素情報は、対応するライン画素グループを構成する複数個の画素のそれぞれが、前記第１種の画素と前記第２種の画素とのどちらであるのかを示す情報であり、前記第１の距離情報は、対応するライン画素グループを構成する複数個の画素のそれぞれについて、当該画素と、当該画素の前記第１側に存在する最も近い前記第１種の画素と、の間の距離を示す情報である、前記第１の距離情報生成処理と、
前記ｍ１番目のライン画素グループが、前記第２方向に沿って連続する１個以上の前記第１種の画素である第１の対象グループを含む場合に、前記ｍ１番目のライン画素グループの前記第１側の各ライン画素グループを利用せずに、前記ｍ１番目の第１の距離情報を利用して、前記第１の対象グループの周辺の第１の所定領域内に、前記第１の対象グループに隣接しない前記第１種の画素が存在するのか否かを判断する第１の判断処理と、を含む、前記第１の解析部と、
前記第１の解析処理の結果に応じて、前記第１の対象グループを含むオブジェクトであって、互いに隣接する１個以上の前記第１種の画素によって構成される前記オブジェクトに対応する所定処理を実行する所定処理実行部と、
して機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、原稿の読取りによって生成される読取画像データを利用して、解析処理を実行する画像解析装置を開示する。
【背景技術】
【０００２】
下記の特許文献１には、画像データから微小な黒点であるノイズを除去するノイズ除去装置が開示されている。ノイズ除去装置は、画像データ内の１個の黒画素を着目点として特定し、着目点から例えば３画素以内の近傍領域に所定数以上の黒画素が存在すれば、着目点がノイズでないと判断し、近傍領域に所定数以上の黒画素が存在しなければ、着目点がノイズであると判断する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１９６２８２号公報
【特許文献２】特開２００６−７２８３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、画像データは、通常、第１方向（例えば上下方向）に沿って並ぶ複数本のライン画素グループを含み、複数本のライン画素グループのそれぞれは、第１方向に直交する第２方向（例えば左右方向）に沿って並ぶ複数個の画素によって構成される。そして、通常、第１方向の第１側から第２側に向かって、複数本のライン画素グループのそれぞれが順次特定され、ライン画素グループ毎に処理が実行される。上記の特許文献１の技術では、１本のライン画素グループに含まれる着目点がノイズであるのか否かを判断するために、当該１本のライン画素グループのみならず、当該１本のライン画素グループの上側に存在する３本分のライン画素グループと、当該１本のライン画素グループの下側に存在する３本分のライン画素グループと、をチェックしなければならない。従って、７本のライン画素グループをメモリ内のワーク領域に記憶させた状態で、着目点がノイズであるのか否かが判断される。
【０００５】
本明細書では、対象グループの周辺の所定領域内に対象グループに隣接しない第１種の画素が存在するのか否かを、少ないメモリ使用量で判断し得る技術を提供する。
【課題を解決するための手段】
【０００６】
本明細書によって開示される画像解析装置は、原稿の読取りによって生成される読取画像データを取得する取得部と、前記読取画像データを利用して、第１の解析処理を実行する第１の解析部であって、前記第１の解析処理は、第１方向の第１側から第２側に向かって、前記読取画像データを用いて得られるＭ本（前記Ｍは２以上の整数）のライン画素グループのそれぞれを順次特定する第１のライン特定処理であって、前記Ｍ本のライン画素グループのそれぞれは、前記第１方向に直交する第２方向に沿って並ぶ複数個の画素によって構成され、前記複数個の画素のそれぞれは、第１種の画素と第２種の画素とのどちらかである、前記第１のライン特定処理と、前記Ｍ本のライン画素グループのうちのｍ１番目（前記ｍ１は２以上Ｍ以下の各整数）のライン画素グループが特定される場合に、前記Ｍ本のライン画素グループのうちの（ｍ１−１）番目のライン画素グループに対応する（ｍ１−１）番目の画素情報と、前記（ｍ１−１）番目のライン画素グループに対応する（ｍ１−１）番目の第１の距離情報と、を利用して、前記ｍ１番目のライン画素グループに対応するｍ１番目の第１の距離情報を生成する第１の距離情報生成処理であって、前記画素情報は、対応するライン画素グループを構成する複数個の画素のそれぞれが、前記第１種の画素と前記第２種の画素とのどちらであるのかを示す情報であり、前記第１の距離情報は、対応するライン画素グループを構成する複数個の画素のそれぞれについて、当該画素と、当該画素の前記第１側に存在する最も近い前記第１種の画素と、の間の距離を示す情報である、前記第１の距離情報生成処理と、前記ｍ１番目のライン画素グループが、前記第２方向に沿って連続する１個以上の前記第１種の画素である第１の対象グループを含む場合に、前記ｍ１番目のライン画素グループの前記第１側の各ライン画素グループを利用せずに、前記ｍ１番目の第１の距離情報を利用して、前記第１の対象グループの周辺の第１の所定領域内に、前記第１の対象グループに隣接しない前記第１種の画素が存在するのか否かを判断する第１の判断処理と、を含む、前記第１の解析部と、前記第１の解析処理の結果に応じて、前記第１の対象グループを含むオブジェクトであって、互いに隣接する１個以上の前記第１種の画素によって構成される前記オブジェクトに対応する所定処理を実行する所定処理実行部と、を備える。
【０００７】
上記の構成によると、画像解析装置は、ｍ１番目の第１の距離情報を生成するので、それを利用して、第１の対象グループの周辺の第１の所定領域内に第１種の画素が存在するのか否かを判断することができる。従って、画像解析装置は、ｍ１番目のライン画素グループの第１側の各ライン画素グループを利用しなくても、上記の判断を実行することができ、この結果、少ないメモリ使用量で上記の判断を実行し得る。
【０００８】
上記の画像解析装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記録媒体も新規で有用である。
【図面の簡単な説明】
【０００９】
【図１】実施例のハードウェア構成を模式的に示す。
【図２】スキャナによって実行される処理のフローチャートを示す。
【図３】解析処理のフローチャートを示す。
【図４】オブジェクトデータを生成する処理のフローチャートを示す。
【図５】オブジェクトデータを更新する処理のフローチャートを示す。
【図６】ｘ方向情報、ｙ方向情報、及び、オブジェクトデータを説明するための説明図を示す。
【図７】第１及び第２の解析処理を説明するための説明図を示す。
【図８】第１及び第２の解析処理の結果を示す。
【図９】比較例及び第２実施例を説明するための説明図を示す。
【図１０】第３実施例を説明するための説明図を示す。
【発明を実施するための形態】
【００１０】
（第１実施例）
（スキャナ１０の構成；図１）
スキャナ１０は、ＬＡＮ（Local Area Networkの略）を介して、ＰＣ（Personal Computerの略）５０と通信可能に接続されている。スキャナ１０は、操作部１２と、表示部１４と、ネットワークインターフェース１６と、スキャンエンジン１８と、制御部３０と、を備える。操作部１２は、複数個のキーによって構成される。ユーザは、操作部１２を操作することによって、様々な指示をスキャナ１０に入力することができる。表示部１４は、様々な情報を表示するためのディスプレイである。表示部１４は、いわゆるタッチパネルとして機能する。即ち、表示部１４は、操作部としても機能する。ネットワークインターフェース１６は、ＬＡＮに接続されている。スキャンエンジン１８は、ＣＣＤ、ＣＩＤ等のスキャン機構を備える。
【００１１】
制御部３０は、ＣＰＵ３２とメモリ３４とを備える。メモリ３４は、ＲＯＭ（Read Only Memoryの略）、ＲＡＭ（Random Access Memoryの略）等によって構成される。ＣＰＵ３２は、メモリ３４に格納されているプログラム３６に従って、様々な処理（例えば後述の図２の処理）を実行するプロセッサである。メモリ３４は、処理の過程で一時的に情報を記憶するためのＲＡＭ内のワーク領域３８を備える。
【００１２】
ＣＰＵ３２は、ネットワークインターフェース１６を介して、ＰＣ５０からスキャン指示１００を取得する。スキャン指示１００は、読取解像度、原稿のサイズ等の読取設定を含む。これにより、ＣＰＵ３２は、読取設定に従った原稿の読取りをスキャンエンジン１８に実行させて、スキャンエンジン１８からスキャンデータを取得する。スキャンデータによって表わされるスキャン画像１１０は、写真を示すオブジェクト１１２、文字を示すオブジェクト１１６，１１８等を含み得る。
【００１３】
例えば、原稿にゴミが付着している場合、原稿が載置されるスキャナ１０の透明板（図示省略）にゴミが付着している場合等には、スキャン画像１１０は、当該ゴミを表わすオブジェクト１１４（以下では「孤立点」と呼ぶ）を含み得る。本実施例では、ＣＰＵ３２は、孤立点１１４を除去するための補正処理を実行して、補正済み画像１２０を表わす補正済み画像データ１３０を生成する。そして、ＣＰＵ３２は、ネットワークインターフェース１６を介して、補正済み画像データ１３０をＰＣ５０に供給する。これにより、高画質の画像１２０を表わす画像データ１３０をＰＣ５０に供給することができる。
【００１４】
（スキャナ処理；図２）
続いて、図２を参照して、ＣＰＵ３２が、上記のスキャン指示１００を取得する場合に、プログラム３６に従って実行する処理の内容を説明する。
【００１５】
Ｓ１０では、ＣＰＵ３２は、原稿の読取りをスキャンエンジン１８に指示して、スキャンエンジン１８からスキャンデータを取得する。スキャンデータは、ｘ方向（例えば図１のスキャン画像１１０内の左右方向）に沿って並ぶ複数個の画素と、ｙ方向（例えばスキャン画像１１０内の上下方向）に沿って並ぶ複数個の画素と、によって構成される。換言すると、スキャンデータは、ｙ方向に沿って並ぶ複数本の読取ラインによって構成される。１本の読取ラインは、ｘ方向に沿って並ぶ複数個の画素によって構成される。各画素は、２５６階調（即ち「０〜２５５」）の画素値（具体的には、Ｒ値、Ｇ値、及び、Ｂ値）を示す。なお、本実施例では、１００ｄｐｉの読取解像度で原稿が読取られることを想定している。
【００１６】
より具体的には、Ｓ１０では、ＣＰＵ３２は、スキャンエンジン１８から複数本の読取ラインのそれぞれを順次取得する。ＣＰＵ３２は、１本の読取ラインを取得する毎に、当該読取ラインを圧縮して圧縮済みラインを生成し、圧縮済みラインをメモリ３４内のワーク領域３８に格納する。これにより、複数本の圧縮済みラインによって構成される圧縮済みスキャンデータがワーク領域３８に格納される。スキャンデータが圧縮された状態でワーク領域３８に格納されるので、ワーク領域３８の使用量を抑えることができる。
【００１７】
Ｓ２０では、ＣＰＵ３２は、圧縮済みスキャンデータを利用して、第１の解析処理を実行する。第１の解析処理では、スキャンデータを構成する複数本の読取ラインのそれぞれがｙ方向の上側から下側に向かって順次解析される。
【００１８】
Ｓ３０では、ＣＰＵ３２は、圧縮済みスキャンデータを利用して、第２の解析処理を実行する。第２の解析処理では、スキャンデータを構成する複数本の読取ラインのそれぞれがｙ方向の下側から上側に向かって順次解析される。
【００１９】
Ｓ４０では、ＣＰＵ３２は、Ｓ２０の第１の解析処理の結果とＳ３０の第２の解析処理の結果とを利用して、孤立点を特定する特定処理を実行する。
【００２０】
Ｓ５０では、ＣＰＵ３２は、圧縮済みスキャンデータのうち、Ｓ４０で特定された孤立点を表わす各画素を、スキャン画像１１０の背景色（本実施例では白色）を表わす画素に補正する。これにより、ＣＰＵ３２は、補正済み画像１２０を表わす補正済み画像データ１３０を生成することができる。そして、図示省略しているが、ＣＰＵ３２は、補正済み画像データ１３０をＰＣ５０に供給する。Ｓ５０が終了すると、図２の処理が終了する。
【００２１】
（第１の解析処理；図３）
続いて、図３を参照して、図２のＳ２０で実行される第１の解析処理の内容を説明する。Ｓ１００では、ＣＰＵ３２は、処理対象の読取ラインを示すポインタｍを「０」に設定することによって、ｍ番目（即ち０番目）の読取ラインを特定する。上述したように、第１の解析処理では、スキャンデータを構成する複数本の読取ラインのそれぞれがｙ方向の上側から下側に向かって順次解析される。従って、０番目の読取ラインは、複数本の読取ラインのうちの最も上側に存在する読取ラインである。より具体的には、Ｓ１００では、ＣＰＵ３２は、圧縮済みスキャンデータを構成する複数本の圧縮済みラインのうちの最も上側に存在する圧縮済みラインを解凍して、０番目の読取ライン（即ちｘ方向に沿って並ぶ複数個の画素）をワーク領域３８に書き込む。特に、ＣＰＵ３２は、Ｓ１００を開始する際に、ワーク領域３８内に第１のワーク領域と第２のワーク領域とを確保する。そして、ＣＰＵ３２は、０番目の読取ラインを第１のワーク領域に書き込む。第１のワーク領域内の情報は、ライン毎に処理が実行される過程で順次消去される。第２のワーク領域内の情報は、ライン毎に処理が実行される過程で消去されず、後述のＳ５０の処理が終了した後に消去される。
【００２２】
Ｓ１０２では、ｍ番目の読取ラインに対する輝度値変換処理を実行する。具体的には、ＣＰＵ３２は、ｍ番目の読取ラインを構成する複数個の画素のそれぞれについて、当該画素が示す画素値（即ちＲ値とＧ値とＢ値）をＳ１０２内の数式に従って輝度値（即ちＹ値）に変換して、２５６階調の輝度値（即ち「０〜２５５」）を示す新たな画素を生成する。そして、ＣＰＵ３２は、輝度値を示す複数個の画素によって構成されるライン（以下では「輝度ライン」と呼ぶ）をワーク領域３８内の第１のワーク領域に書き込む。本実施例では、読取対象の原稿は、白色（即ちＲ＝Ｇ＝Ｂ＝２５５）の背景を有する。従って、原稿の背景を示す輝度値（即ちＹ値）は、通常、２５５になり、原稿の背景以外を示す輝度値は、通常、２５５未満の値になる。ＣＰＵ３２は、Ｓ１０２でｍ番目の輝度ラインを第１のワーク領域に書き込む際に、ｍ番目の読取ラインを第１のワーク領域から消去する。
【００２３】
Ｓ１０４では、ＣＰＵ３２は、Ｓ１０２で生成された輝度ラインに対する二値化処理を実行する。具体的には、ＣＰＵ３２は、輝度ラインを構成する複数個の画素のそれぞれについて、当該画素が示す輝度値を「１」又は「０」に変換して、「１」又は「０」を示す新たな画素を生成する。より具体的には、ＣＰＵ３２は、輝度値が予め決められている閾値（例えば２００）以下である場合には、「１」を示す画素を生成し、輝度値が閾値以下である場合には、「０」を示す画素を生成する。即ち、原稿の背景を表わす画素が「０」で表現され、原稿の背景以外を表わす画素が「１」で表現される。そして、ＣＰＵ３２は、「０」又は「１」を示す複数個の画素によって構成されるライン（以下では「二値ライン」と呼ぶ）を第１のワーク領域に書き込む。以下では、「１」を示す画素、「０」を示す画素を、それぞれ、「ＯＮ画素」、「ＯＦＦ画素」と呼ぶ。ＣＰＵ３２は、Ｓ１０４でｍ番目の二値ラインを第１のワーク領域に書き込む際に、ｍ番目の輝度ラインを第１のワーク領域から消去する。
【００２４】
Ｓ１１０では、ＣＰＵ３２は、Ｓ１０４で生成されたｍ番目の二値ラインを利用して、ｍ番目のｘ方向情報を第１のワーク領域に書き込む。ｘ方向情報は、ｍ番目の二値ラインに含まれるＯＮ画素及びＯＦＦ画素の配列を示す情報であり、１本の二値ラインの画素数に等しい個数の数字（即ち数字列）によって表現される。例えば、ｍ番目の二値ラインが連続する１個以上のＯＮ画素を含む場合には、ＣＰＵ３２は、当該１個以上のＯＮ画素のうちの右端のＯＮ画素から左側に向かうにつれて、各ＯＮ画素に対応する各数字として、「１」、「２」、「３」・・・を割り当てる。また、例えば、ｍ番目の二値ラインが連続する１個以上のＯＦＦ画素を含む場合には、当該１個以上のＯＦＦ画素のうちの右端のＯＦＦ画素から左側に向かうにつれて、各ＯＦＦ画素に対応する各数字として、「−１」、「−２」、「−３」・・・を割り当てる。
【００２５】
図６は、ｙ方向に沿って並ぶ複数本（即ち１１本）の二値ラインの一例を示す。なお、実際には、複数本の二値ラインが第１のワーク領域に同時的に格納されている状態はあり得ず、１本の二値ラインのみが第１のワーク領域に格納される。この図では、１本の二値ラインはｘ方向に沿って並ぶ２６個の画素によって構成され、矩形がＯＮ画素を示し、矩形以外の領域がＯＦＦ画素を示す。なお、矩形内の値は、後で説明するラベル値を示す。例えば、「ｙ＝０」に対応する０番目の二値ラインは、２６個のＯＦＦ画素のみによって構成される。この場合、ＣＰＵ３２は、ｘ方向情報として、右側から左側へ向かう順で数字列「−１、−２・・・−２６」を生成する。また、例えば、「ｙ＝１」に対応する１番目の二値ラインは、右側から左側に向かって、３個のＯＦＦ画素２００、３個のＯＮ画素２０２、９個のＯＦＦ画素２０４、６個のＯＮ画素２０６、及び、５個のＯＦＦ画素２０８によって構成される。この場合、ＣＰＵ３２は、ｘ方向情報として、右側から左側へ向かう順で数字列「−１、−２、−３、１、２、３、−１、−２・・・−９、１、２・・・６、−１、−２・・・−５」を生成する。
【００２６】
ＣＰＵ３２は、図３のＳ１１０でｍ番目のｘ方向情報を第１のワーク領域に書き込む際に、ｍ番目の二値ラインを第１のワーク領域から消去する。即ち、第１のワーク領域内の二値ラインは、次の二値ラインが第１のワーク領域に書き込まれる前に、第１のワーク領域から消去される。この結果、２本の二値ラインが第１のワーク領域内に同時的に存在することがないので、少ないメモリ使用量で処理を実行することができる。なお、変形例では、（ｍ−１）番目の二値ラインが第１のワーク領域に書き込まれている状態で、ｍ番目の二値ラインが第１のワーク領域にさらに書き込まれてもよい。そして、Ｓ１１０において、ｍ番目のｘ方向情報が第１のワーク領域に書き込まれる際に、（ｍ−１）番目の二値ラインが第１のワーク領域から消去されてもよい。即ち、第１のワーク領域内の二値ラインは、次の二値ラインが第１のワーク領域に書き込まれた後に、第１のワーク領域から消去されてもよい。
【００２７】
Ｓ１１２では、ＣＰＵ３２は、（ｍ−１）番目のｘ方向情報と（ｍ−１）番目のｙ方向情報とを利用して、ｍ番目のｙ方向情報を第１のワーク領域に書き込む。ｙ方向情報は、ｍ番目の二値ラインを構成する複数個の画素のそれぞれについて、当該画素と、当該画素のｙ方向の上側に存在する最も近いＯＮ画素と、の間の距離（即ち画素数）を示す情報であり、１本の二値ラインの画素数に等しい個数の数字（即ち数字列）によって表現される。以下では、ｍ番目の二値ラインに含まれる１個の画素のことを「注目画素」と呼び、（ｍ−１番目）の二値ラインのうち、注目画素に隣接する画素（即ち注目画素の直上の画素）のことを「参照画素」と呼ぶ。ＣＰＵ３２は、まず、（ｍ−１）番目のｘ方向情報から、参照画素に対応する数字（以下では「第１の数字」と呼ぶ）を読み込む。第１の数字がプラスの値であるということは、注目画素にＯＮ画素である参照画素が隣接していることを意味し、注目画素と、注目画素の上側に存在する最も近いＯＮ画素と、の間の距離がゼロであることを意味する。従って、ＣＰＵ３２は、ｍ番目のｙ方向情報における注目画素に対応する数字として「０」を割り当てる。また、第１の数字がマイナスの値である場合には、注目画素にＯＦＦ画素である参照画素が隣接していることを意味する。この場合、ＣＰＵ３２は、（ｍ−１）番目のｙ方向情報から、参照画素に対応する数字（以下では「第２の数字」と呼ぶ）を読み込む。第２の数字が「−１」である場合には、注目画素の上側にＯＮ画素が全く存在しないことを意味する。従って、ＣＰＵ３２は、ｍ番目のｙ方向情報における注目画素に対応する数字として「−１」を割り当てる。また、第２の数字がゼロ以上である場合には、注目画素の上側に距離を隔ててＯＮ画素が存在することを意味する。従って、ＣＰＵ３２は、ｍ番目のｙ方向情報における注目画素に対応する数字として、第２の数字に「１」が加算された値を割り当てる。
【００２８】
例えば、図６において、（ｙ＝０）に示される０番目（即ちｍ＝０）のｙ方向情報が生成される際には、（ｍ−１）番目のｘ方向情報と（ｍ−１）番目のｙ方向情報とがまだ存在しない。この場合、ＣＰＵ３２は、０番目のｙ方向情報として、予め決められている数字列「−１、−１・・・−１」を生成する。（ｙ＝１）に示される１番目のｙ方向情報が生成される際には、０番目のｘ方向情報において、全ての参照画素に対応する数字がマイナスの値であり、０番目のｙ方向情報において、全ての参照画素に対応する数字が「−１」である。従って、ＣＰＵ３２は、１番目のｙ方向情報として、数字列「−１、−１・・・−１」を生成する。（ｙ＝２）に示される２番目のｙ方向情報が生成される際には、１番目のｘ方向情報において、各参照画素２００，２０４，２０８に対応する数字がマイナスの値であり、１番目のｙ方向情報において、各参照画素２００，２０４，２０８に対応する数字が「−１」である。従って、ＣＰＵ３２は、２番目のｙ方向情報において、各注目画素２１０，２１４，２１８に対応する数字として「−１」を割り当てる。また、１番目のｘ方向情報において、各参照画素２０２，２０６に対応する数字２０２ｘ，２０６ｘがプラスの値である。従って、ＣＰＵ３２は、２番目のｙ方向情報において、各注目画素２１２，２１６に対応する数字２１２ｙ，２１６ｙとして「０」を割り当てる。
【００２９】
上記と同様に、３番目のｙ方向情報が生成される。この際には、２番目のｘ方向情報において、各参照画素２１６ａに対応する数字２１６ｘａがプラスの値である。従って、ＣＰＵ３２は、３番目のｙ方向情報において、各参照画素２１６ａに隣接する各注目画素（符号省略）に対応する数字２２０として「０」を割り当てる。また、２番目のｘ方向情報において、各参照画素２１２，２１６ｂに対応する数字２１２ｘ，２１６ｘｂがマイナスの値であり、かつ、２番目のｙ方向情報において、各参照画素２１２，２１６ｂに対応する数字２１２ｙ，２１６ｙが「０」である。従って、ＣＰＵ３２は、３番目のｙ方向情報において、各参照画素２１２，２１６ｂに隣接する各注目画素（符号省略）に対応する数字２２２，２２４として、「０」に「１」が加算された値「１」を割り当てる。上記と同様に、４番目以降の各ｙ方向情報が生成される。
【００３０】
図３のＳ１１６では、ＣＰＵ３２は、（ｍ−１）番目のｘ方向情報と（ｍ−１）番目のｙ方向情報とを第１のワーク領域から消去する。これにより、少ないメモリ使用量でＳ１２０以降の各処理を実行することができる。なお、変形例では、（ｍ−１）番目のｙ方向情報にｍ番目のｙ方向情報が上書きされるように、Ｓ１１２が実行されてもよい。この場合、ｍ番目のｙ方向情報の書き込みと、（ｍ−１）番目のｙ方向情報の消去と、が同時的に実行される。また、別の変形例では、Ｓ１１２の直後にＳ１１６が実行されなくてもよく、例えば、第１のワーク領域内の空き容量が閾値未満になった際に、不要な情報が第１のワーク領域から消去されてもよい。即ち、ｍ番目の情報（即ちｘ方向情報及びｙ方向情報）が第１のワーク領域に書き込まれる際に、（ｍ−１）番目の情報が第１のワーク領域から消去されなくてもよい。
【００３１】
Ｓ１２０では、ＣＰＵ３２は、ｍ番目のｘ方向情報を利用して、Ｓ１３０〜Ｓ１３４の処理が未だに実行されていないＯＮ画素グループがｍ番目の二値ライン内に存在するのか否かを判断する。ここで、ＯＮ画素グループは、連続する１個以上のＯＮ画素を意味する。図６の例では、０番目の二値ラインはＯＦＦ画素のみによって構成される。従って、ＣＰＵ３２は、０番目のｘ方向情報を利用して、ＯＮ画素グループが０番目の二値ライン内に存在しないと判断し（Ｓ１２０でＮＯ）、Ｓ１４０に進む。また、１番目の二値ラインは、２個のＯＮ画素グループ２０２，２０６を含む。従って、ＣＰＵ３２は、１番目のｘ方向情報を利用して、未処理のＯＮ画素グループ２０６が１番目の二値ライン内に存在すると判断し（Ｓ１２０でＹＥＳ）、ＯＮ画素グループ２０６を処理対象として特定して、Ｓ１３０に進む。なお、ここでは、ｍ番目の二値ライン内の左側から右側に向かって、未処理の各ＯＮ画素グループが順に特定される。
【００３２】
Ｓ１３０では、ＣＰＵ３２は、ｍ番目のｙ方向情報を利用して、処理対象のＯＮ画素グループが解析済みのオブジェクトに隣接するのか否かを判断する。解析済みのオブジェクトは、０番目から（ｍ−１）番目までの各二値ライン内のＯＮ画素グループであって、後述のＳ１３２又はＳ１３４においてオブジェクトとして解析されたＯＮ画素グループである。具体的には、ＣＰＵ３２は、ｍ番目のｙ方向情報から処理対象のＯＮ画素グループに対応する各数字を特定し、特定済みの各数字の中に「０」が存在しない場合には、解析済みのオブジェクトに隣接しないと判断して（Ｓ１３０でＮＯ）、Ｓ１３２に進む。また、ＣＰＵ３２は、上記の特定済みの各数字の中に「０」が存在する場合には、解析済みのオブジェクトに隣接すると判断して（Ｓ１３０でＹＥＳ）、Ｓ１３４に進む。
【００３３】
例えば、図６の１番目の二値ライン内のＯＮ画素グループ２０６が処理対象である場合には、１番目のｙ方向情報において、ＯＮ画素グループ２０６に対応する各数字が「−１」である。この場合、ＣＰＵ３２は、Ｓ１３０でＮＯと判断して、Ｓ１３２に進む。また、２番目の二値ライン内のＯＮ画素グループ２１６ａが処理対象である場合には、２番目のｙ方向情報において、ＯＮ画素グループ２１６ａに対応する各数字２１６ｙが「０」である。この場合、ＣＰＵ３２は、Ｓ１３０でＹＥＳと判断して、Ｓ１３４に進む。
【００３４】
Ｓ１３２では、ＣＰＵ３２は、新たなオブジェクトデータを第２のワーク領域内に生成する（後述の図４参照）。一方、Ｓ１３４では、ＣＰＵ３２は、第２のワーク領域に存在するオブジェクトデータを更新する（後述の図５参照）。Ｓ１３２又はＳ１３４が終了すると、Ｓ１２０に戻る。これにより、例えば、図６の１番目の二値ライン内のＯＮ画素グループ２０６が処理対象として特定された結果としてＳ１３２が終了した後に、Ｓ１２０において、ＯＮ画素グループ２０２が処理対象として特定される。そして、ＯＮ画素グループ２０２についてＳ１３２が終了すると、Ｓ１２０でＮＯと判断され、Ｓ１４０に進む。
【００３５】
Ｓ１４０では、ＣＰＵ３２は、現在のｍが最大値であるのか否かを判断する。最大値は、スキャンデータのｙ方向の画素数である。ＣＰＵ３２は、現在のｍが最大値でないと判断する場合（Ｓ１４０でＮＯ）には、Ｓ１４２において、現在のｍに「１」を加算して新たなｍを算出し、新たな読取ラインを第１のワーク領域に書き込んで、Ｓ１０２に戻る。ＣＰＵ３２は、現在のｍが最大値であると判断する場合（Ｓ１４０でＹＥＳ）には、Ｓ１５０に進む。
【００３６】
Ｓ１５０では、ＣＰＵ３２は、Ｓ１３２及びＳ１３４で生成された１個以上のオブジェクトデータの中に、Ｓ１５２の処理が未だに実行されていないオブジェクトデータが存在するのか否かを判断する。ＣＰＵ３２は、未処理のオブジェクトデータが存在すると判断する場合（Ｓ１５０でＹＥＳ）には、Ｓ１５２において、当該オブジェクトデータに対して大サイズフラグを追加して、Ｓ１５０に戻る。一方、ＣＰＵ３２は、未処理のオブジェクトデータが存在しないと判断する場合（Ｓ１５０でＮＯ）には、第１の解析処理（図２のＳ２０の処理）を終了する。
【００３７】
（オブジェクトデータの生成処理；図４）
続いて、図４を参照して、図３のＳ１３２において、新たなオブジェクトデータを生成する処理の内容を説明する。オブジェクトデータは、互いに隣接する１個以上のＯＮ画素によって構成されるオブジェクトを表わすデータである。図６に示されるように、オブジェクトデータは、ラベル値と座標と幅と高さと周辺フラグとが対応付けられているデータである。ラベル値は、オブジェクトをラべリング（即ち識別）するための値である。座標は、オブジェクトに外接する外接矩形の左上の隅の座標を示す。幅、高さは、それぞれ、上記の外接矩形のｘ方向の画素数、ｙ方向の画素数を示す。周辺フラグは、オブジェクトの周囲の所定領域内に他のオブジェクトが存在することを示す「ＯＮ」と、当該所定領域内に他のオブジェクトが存在しないことを示す「ＯＦＦ」と、のどちらかの値である。
【００３８】
図４のＳ２００では、ＣＰＵ３２は、まず、第１の解析処理で既に書き込まれている最大のラベル値に「１」を加算することによって新たなラベル値を算出し、当該新たなラベル値を第２のワーク領域に書き込む。例えば、図６のＯＮ画素グループ２０６が処理対象である場合には、ラベル値「１」が書き込まれる。
【００３９】
Ｓ２１０では、ＣＰＵ３２は、Ｓ２００で書き込まれたラベル値に対応付けて、処理対象のＯＮ画素グループのうちの左端のＯＮ画素である左端画素の座標を第２のワーク領域に書き込む。例えば、図６のＯＮ画素グループ２０６が処理対象である場合には、左端画素の座標（５，１）が書き込まれる。
【００４０】
Ｓ２１２では、ＣＰＵ３２は、Ｓ２００で書き込まれたラベル値に対応付けて、処理対象のＯＮ画素グループの幅及び高さを第２のワーク領域に書き込む。ここで、高さは、「１」である。また、幅は、処理対象のＯＮ画素グループの画素数であり、ｍ番目のｘ方向情報から得られる。例えば、図６のＯＮ画素グループ２０６が処理対象である場合には、１番目のｘ方向情報のうち、ＯＮ画素グループ２０６に対応する数字２０６ｘから、ＯＮ画素グループ２０６の幅「６」が得られる。
【００４１】
Ｓ２２０では、ＣＰＵ３２は、上記の左端画素の周囲の所定領域内に他のオブジェクト（即ち処理対象のＯＮ画素グループに隣接しないＯＮ画素）が存在するのか否かを判断する。所定領域は、ｘ方向において、左端画素の右側の２０画素分かつ左端画素の左側の２０画素分の領域である。また、所定領域は、ｙ方向において、左端画素の上側の２０画素分の領域であり、左端画素の下側の領域を含まない。例えば、図７の画素４００が左端画素である場合には、ハッチングで示された領域が所定領域である。なお、変形例では、上記の「２０画素」とは異なる値が利用されてもよい。例えば、３００ｄｐｉの読取解像度で原稿が読取られる場合には、６０画素が利用されてもよい。
【００４２】
具体的には、Ｓ２２０では、ＣＰＵ３２は、まず、ｍ番目のｘ方向情報を利用して、左端画素の右側の２０画素分かつ左端画素の左側の２０画素分の領域内に他のオブジェクトが存在するのか否かを判断する。例えば、図６のＯＮ画素グループ２０６が処理対象である場合には、ＣＰＵ３２は、１番目のｘ方向情報を利用して、左端画素（即ち数字「６」に対応する画素）の右側の２０画素分の領域内に３個のＯＮ画素２０２（即ち数字２０２ｘに対応する各画素）が存在すると判断する（Ｓ２２０でＹＥＳ）。また、ＣＰＵ３２は、ｍ番目のｙ方向情報を利用して、左端画素の上側の２０画素分の領域内に他のオブジェクトが存在するのか否かを判断する。例えば、図６のＯＮ画素グループ２３０が処理対象である場合には、ＣＰＵ３２は、９番目のｙ方向情報を利用して、左端画素（即ち数字「１０」に対応する画素）の上側の２０画素分の領域内に複数個のＯＮ画素２１６ａ等（即ち数字「６」及び「７」に対応する各画素）が存在すると判断する（Ｓ２２０でＹＥＳ）。なお、変形例では、Ｓ２２０で所定領域の基準となる画素は、左端画素でなくてもよく、例えば、処理対象のＯＮ画素グループの中央の画素、右端の画素等であってもよい。
【００４３】
ＣＰＵ３２は、所定領域内に他のオブジェクトが存在すると判断する場合（Ｓ２２０でＹＥＳ）には、Ｓ２２２において、Ｓ２００で書き込まれたラベル値に対応付けて、周辺フラグ「ＯＮ」を書き込む。一方、ＣＰＵ３２は、所定領域内に他のオブジェクトが存在しないと判断する場合（Ｓ２２０でＮＯ）には、Ｓ２２４において、Ｓ２００で書き込まれたラベル値に対応付けて、周辺フラグ「ＯＦＦ」を書き込む。Ｓ２２２又はＳ２２４が終了すると、新たなオブジェクトデータが完成し、図４の処理が終了する。例えば、図６のＯＮ画素グループ２０６が処理対象である場合には、新たなオブジェクトデータ３００が完成し、ＯＮ画素グループ２０２が処理対象である場合には、新たなオブジェクトデータ３１０が完成する。
【００４４】
（オブジェクトデータの更新処理；図５）
続いて、図５を参照して、図３のＳ１３４において、オブジェクトデータを更新する処理の内容を説明する。
【００４５】
Ｓ２４０では、ＣＰＵ３２は、更新対象のオブジェクトデータを特定する。上述したように、例えば、図６のＯＮ画素グループ２１６ａが処理対象である場合には、ＯＮ画素グループ２１６ａが解析済みのオブジェクトに隣接すると判断される（図３のＳ１３０でＹＥＳ）。この場合、ＣＰＵ３２は、ＯＮ画素グループ２１６ａの上側に隣接する少なくとも１個の画素の座標（例えば（７，１））を特定する。また、ＣＰＵ３２は、第２のワーク領域内のオブジェクトデータ３００に含まれる座標（５，１）、幅「６」、及び、高さ「１」を利用して、オブジェクトデータ３００によって表わされるオブジェクト（即ちＯＮ画素グループ２０６）に外接する外接矩形内を特定する。そして、ＣＰＵ３２は、特定済みの座標（７，１）が特定済みの外接矩形内に含まれるので、オブジェクトデータ３００を更新対象として特定する。なお、複数個のオブジェクトデータが第２のワーク領域内に存在する場合には、ＣＰＵ３２は、複数個のオブジェクトデータのそれぞれについて外接矩形を特定し、特定済みの座標がどの外接矩形内に存在するのかを確認することによって、更新対象のオブジェクトデータを特定する。
【００４６】
Ｓ２５０では、ＣＰＵ３２は、更新対象のオブジェクトデータから特定される外接矩形と、処理対象のＯＮ画素グループと、を利用して、新たな外接矩形を特定する。例えば、図６のＯＮ画素グループ２１６ａが処理対象である場合には、新たな外接矩形２５０が特定される。そして、ＣＰＵ３２は、更新対象のオブジェクトデータに含まれる座標が新たな外接矩形の左上の隅の座標が一致しない場合には、前者の座標を後者の座標に更新する。例えば、図６のＯＮ画素グループ２１６ａが処理対象である場合には、新たな外接矩形２５０の左上の隅の座標は、更新対象のオブジェクトデータ３１０に含まれる座標（５，１）に一致する。この場合、座標の更新が実行されない。
【００４７】
Ｓ２５２では、ＣＰＵ３２は、更新対象のオブジェクトデータに含まれる幅がＳ２５０で特定された新たな外接矩形の幅に一致しない場合には、前者の幅を後者の幅に更新する。さらに、ＣＰＵ３２は、更新対象のオブジェクトデータに含まれる高さを、当該高さに「１」を加算して得られる新たな高さに更新する。例えば、オブジェクトデータ３００が更新対象である場合には、高さ「１」が高さ「２」に更新される。
【００４８】
Ｓ２６０では、ＣＰＵ３２は、更新対象のオブジェクトデータに含まれる周辺フラグが「ＯＦＦ」であるのか否かを判断する。ＣＰＵ３２は、周辺フラグが「ＯＦＦ」であると判断する場合（Ｓ２６０でＹＥＳ）には、Ｓ２７０に進む。一方、ＣＰＵ３２は、周辺フラグが「ＯＮ」であると判断する場合（Ｓ２６０でＮＯ）には、Ｓ２７０，Ｓ２７２をスキップして、図５の処理を終了する。オブジェクトの周辺の所定領域内に他のオブジェクトが存在することが既に判明しているので、Ｓ２７０，Ｓ２７２の処理を実行する必要がないからである。
【００４９】
Ｓ２７０は、Ｓ２２０と同様である。ＣＰＵ３２は、所定領域内に他のオブジェクトが存在すると判断する場合（Ｓ２７０でＹＥＳ）には、Ｓ２７２に進み、更新対象のオブジェクトデータに含まれる周辺フラグを「ＯＦＦ」から「ＯＮ」に更新する。Ｓ２７２が終了すると、図５の処理が終了する。一方、ＣＰＵ３２は、所定領域内に他のオブジェクトが存在しないと判断する場合（Ｓ２７０でＮＯ）には、Ｓ２７２をスキップして、図５の処理を終了する。
【００５０】
上記の図４及び図５の処理が実行されることにより、図６の例では、ＯＮ画素グループ２０６，２１６ａによって構成されるオブジェクトを表わすオブジェクトデータ３０２が生成される。また、ＯＮ画素グループ２０２によって構成されるオブジェクトを表わすオブジェクトデータ３１０と、ＯＮ画素グループ２３０によって構成されるオブジェクトを表わすオブジェクトデータ３２０と、が生成される。
【００５１】
（図３のＳ１５２の処理の詳細）
Ｓ１５２では、ＣＰＵ３２は、オブジェクトデータに対して大サイズフラグを追加する。具体的には、ＣＰＵ３２は、オブジェクトデータに含まれる幅及び高さの少なくとも一方が４画素以上である場合には、当該オブジェクトデータに対して大サイズフラグ「ＯＮ」を追加する。一方、ＣＰＵ３２は、オブジェクトデータに含まれる幅及び高さのどちらも４画素未満である場合には、当該オブジェクトデータに対して大サイズフラグ「ＯＦＦ」を追加する。図６の例では、ＣＰＵ３２は、各オブジェクトデータ３０２，３２０に対して大サイズフラグ「ＯＮ」を追加し、オブジェクトデータ３１０に対して大サイズフラグ「ＯＦＦ」を追加する。なお、変形例では、上記の「４画素」とは異なる閾値が利用されてもよい。例えば、３００ｄｐｉの読取解像度で原稿が読取られる場合には、「１２画素」が閾値として利用されてもよい。
【００５２】
（第２の解析処理；図３）
続いて、図３を参照して、図２のＳ３０で実行される第２の解析処理の内容を説明する。第２の解析処理では、スキャンデータを構成する複数本の読取ラインのそれぞれがｙ方向の下側から上側に向かって順次解析される点を除くと、第１の解析処理とほぼ同様である。第１の解析処理と異なる点を説明しておく。
【００５３】
Ｓ１００では、０番目の読取ラインとして、ｙ方向の最も下側に存在する読取ラインが特定される。Ｓ１４２では、新たな読取ラインとして、ｙ方向の下側から上側に向かって読取ラインが順次特定される。Ｓ１１２で生成されるｍ番目のｙ方向情報は、ｍ番目の二値ラインに含まれる複数個の画素のそれぞれについて、当該画素と、当該画素のｙ方向の下側に存在する最も近いＯＮ画素と、の間の距離（即ち画素数）を示す情報である。図４のＳ２２０及び図５のＳ２７０では、所定領域は、ｙ方向において、左端画素の下側の２０画素分の領域であり、左端画素の上側の領域を含まない。
【００５４】
図７は、第１の解析処理の結果及び第２の解析処理の結果の一例を示す。この例では、アルファベット「ｉ」が、１個のＯＮ画素４００と、互いに隣接する５個のＯＮ画素４０２と、によって表現されている。第１の解析処理では、ｙ方向の上側から下側に向かって解析が実行され、ＯＮ画素４００に対応するオブジェクトデータ４１０と、５個のＯＮ画素４０２に対応するオブジェクトデータ４２０と、が生成される。オブジェクトデータ４１０が生成される際には、ＯＮ画素４００の上側の所定領域（即ちハッチングの領域）内に他のオブジェクト（即ちＯＮ画素）が存在するのか否かが判断される（図４のＳ２２０）。この例では、他のオブジェクトが存在しないと判断されるので（Ｓ２２０でＮＯ）、周辺フラグとして「ＯＦＦ」が書き込まれる（Ｓ２２４）。また、大サイズフラグとして「ＯＦＦ」が書き込まれる（図３のＳ１５２）。仮に、第１の解析処理が実行されるが第２の解析処理が実行されない構成を採用すると、オブジェクトデータ４１０によると、ＯＮ画素４００によって構成される対象オブジェクトの周囲に他のオブジェクトが存在せず、かつ、対象オブジェクトが小さいサイズを有することしかわからない。従って、対象オブジェクトが孤立点として特定され得るので、スキャンデータからアルファベット「ｉ」の一部が削除され得る。即ち、実際には削除されるべきでないオブジェクトが削除され得る。
【００５５】
これに対し、本実施例では、第２の解析処理において、さらに、ｙ方向の下側から上側に向かって解析が実行され、５個のＯＮ画素４０２に対応するオブジェクトデータ４３０と、ＯＮ画素４００に対応するオブジェクトデータ４４０と、が生成される。オブジェクトデータ４４０が生成される際には、ＯＮ画素４００の下側の所定領域（即ちハッチングの領域）内に他のオブジェクトが存在するのか否かが判断される（図４のＳ２２０）。この例では、他のオブジェクト（即ちＯＮ画素４０２）が存在すると判断されるので（Ｓ２２０でＹＥＳ）、周辺フラグとして「ＯＮ」が書き込まれる（Ｓ２２２）。オブジェクトデータ４３０によると、ＯＮ画素４００によって構成される対象オブジェクトの周囲に他のオブジェクトが存在することがわかるので、対象オブジェクトが孤立点として特定されることを抑制することができる。即ち、除去されるべきでないオブジェクトが除去されるのを抑制することができる。
【００５６】
（図２のＳ４０の特定処理の詳細）
ＣＰＵ３２は、Ｓ４０の特定処理において、Ｓ２０の第１の解析処理の結果とＳ３０の第２の解析処理の結果とを利用して、孤立点を特定する。具体的には、ＣＰＵ３２は、まず、第１の解析処理で得られる１個以上のオブジェクトデータの中から、周辺フラグ「ＯＦＦ」及び大サイズフラグ「ＯＦＦ」を含むオブジェクトデータ（以下では「第１注目データ」と呼ぶ）を特定する。次いで、ＣＰＵ３２は、第２の解析処理で得られる１個以上のオブジェクトデータの中から、第１注目データに含まれる座標、幅、及び、高さに一致する情報を含むオブジェクトデータ（以下では「第２注目データ」と呼ぶ）を特定する。そして、ＣＰＵ３２は、第２注目データに含まれる周辺フラグが「ＯＦＦ」である場合に、第１注目データによって表わされるオブジェクト（即ち第２注目データによって表わされるオブジェクト）を孤立点として特定する。
【００５７】
図８は、第１の解析処理の結果と第２の解析処理の結果の一例を示す。オブジェクト４５０は孤立点であり、オブジェクト４６０，４７０はアルファベット「ｉ」であり、オブジェクト４８０はアルファベット「Ａ」である。この例では、ＣＰＵ３２は、まず、第１の解析処理の結果から、２個のオブジェクト４５０，４６０に対応する２個の第１注目データ４５０ａ，４６０ａを特定する。次いで、ＣＰＵ３２は、第２の解析処理の結果から、オブジェクト４５０に対応する第１注目データ４５０ａに含まれる座標、幅、及び、高さに一致する情報を含む第２注目データ４５０ｂを特定する。そして、ＣＰＵ３２は、オブジェクト４５０に対応する第２注目データ４５０ｂに含まれる周辺フラグが「ＯＦＦ」であるので、オブジェクト４５０を孤立点として特定する。また、ＣＰＵ３２は、第２の解析処理の結果から、オブジェクト４６０に対応する第１注目データ４６０ａに含まれる座標、幅、及び、高さに一致する情報を含む第２注目データ４６０ｂを特定する。そして、ＣＰＵ３２は、オブジェクト４６０に対応する第２注目データ４６０ｂに含まれる周辺フラグが「ＯＮ」であるので、オブジェクト４６０を、孤立点として特定せずに、文字、図表、写真等の一部を構成するオブジェクトであると特定する。この結果、アルファベット「ｉ」の一部を構成するオブジェクト４６０が除去されるのを抑制することができる。また、第１の解析処理の結果では、２個のオブジェクト４７０，４８０に対応する２個のオブジェクトデータ４７０ａ，４８０ｂのそれぞれは、大サイズフラグ「ＯＮ」を含む。従って、ＣＰＵ３２は、各オブジェクト４７０，４８０を、孤立点として特定せずに、文字、図表、写真等のオブジェクトであると特定する。この結果、除去されるべきでないオブジェクト４７０，４８０が除去されるのを抑制することができる。本実施例によると、オブジェクトの特性（即ち、孤立点、文字等の一部を構成するオブジェクト、文字等のオブジェクト）を適切に特定することができ、除去されるべきオブジェクトを適切に除去することができる。
【００５８】
（図２のＳ５０の補正処理の詳細）
Ｓ５０では、ＣＰＵ３２は、Ｓ４０で孤立点として特定されたオブジェクトに対応するオブジェクトデータに含まれる座標、幅、及び、高さを利用して、当該オブジェクトに外接する外接矩形を特定する。次いで、ＣＰＵ３２は、圧縮済みスキャンデータのうち、特定済みの外接矩形内の領域を含む１本以上の圧縮済みラインを解凍して、１本以上の読取ラインを生成する。そして、ＣＰＵ３２は、当該１本以上の読取ラインを構成する複数個の画素のうち、特定済みの領域に対応する１個以上の画素を、白色の画素値（即ちＲ＝Ｇ＝Ｂ＝２５５）を示す画素に補正する。これにより、孤立点を除去することができる。なお、変形例では、ＣＰＵ３２は、公知の手法を利用して、スキャン画像の背景色を表わす画素値を算出し、当該画素値に補正してもよい。
【００５９】
（第１実施例の効果）
本実施例によると、スキャナ１０は、ｍ番目のｙ方向情報を生成するので（図３のＳ１１２）、それを利用して、処理対象のＯＮ画素グループの周辺の所定領域内に、当該ＯＮ画素グループに隣接しない他のＯＮ画素が存在するのか否かを判断することができる（図４のＳ２２０、図５のＳ２７０）。従って、スキャナ１０は、ｍ番目の二値ラインの上側の各二値ラインを利用しなくても（即ち当該各二値ラインがワーク領域３８に書き込まれている状態でなくても）、上記の判断を実行せずに済み、この結果、少ないメモリ使用量で上記の判断を実行することができる。
【００６０】
また、スキャナ１０は、第１の解析処理（図２のＳ２０）における図４のＳ２２０又は図５のＳ２７０において、ｍ番目の二値ラインの下側に存在する各二値ラインを利用せずに（即ち当該各二値ラインがワーク領域３８に書き込まれていない状態で）、処理対象のＯＮ画素グループの周辺の所定領域内に、当該ＯＮ画素グループに隣接しない他のＯＮ画素が存在するのか否かを判断する。また、スキャナ１０は、第２の解析処理（図２のＳ３０）における図４のＳ２２０又は図５のＳ２７０において、ｍ番目の二値ラインの上側に存在する各二値ラインを利用しなくても（即ち当該各二値ラインがワーク領域３８に書き込まれていない状態で）、上記の判断を実行する。従って、スキャナ１０は、少ないメモリ使用量で上記の判断を実行することができる。
【００６１】
（対応関係）
スキャナ１０が、「画像解析装置」の一例である。ワーク領域３８内の第１のワーク領域、第２のワーク領域が、それぞれ、「第１の特定領域」、「第２の特定領域」の一例である。ｙ方向、ｘ方向が、それぞれ、「第１方向」、「第２方向」の一例である。上側、下側が、それぞれ、「第１側」、「第２側」の一例である。圧縮済みスキャンデータ、複数本の二値ラインが、それぞれ、「読取画像データ」、「Ｍ本のライン画素グループ」の一例である。ＯＮ画素、ＯＦＦ画素が、それぞれ、「第１種の画素」、「第２種の画素」の一例である。ｘ方向情報、第１の解析処理で生成されるｙ方向情報、第２の解析処理で生成されるｙ方向情報が、それぞれ、「画素情報」、「第１の距離情報」、「第２の距離情報」の一例である。図６のＯＮ画素グループ２０６、ＯＮ画素グループ２１６ａが、それぞれ、「第１の対象グループ」、「第２の対象グループ」の一例である。図７の第１の解析処理で利用される所定領域（即ちハッチングの領域）、第２の解析処理で利用される所定領域（即ちハッチングの領域）が、それぞれ、「第１の所定領域」、「第２の所定領域」の一例である。図２のＳ５０の補正処理が、「所定処理」の一例である。オブジェクトデータに含まれる座標、幅、及び、高さが、「特定情報」の一例である。オブジェクトデータに含まれる周辺フラグが、「結果情報」の一例である。
【００６２】
（第２実施例；図９）
第２実施例を説明する前に、比較例の処理を説明しておく。図９は、文字「Ｘ」を表わすオブジェクトを示す。１番目の二値ラインについて図３のＳ１１０〜Ｓ１３４の処理が実行される際に、Ｓ１２０において、ＯＮ画素グループ５００が処理対象として特定されると、図４のＳ２２０において、ＯＮ画素グループ５００の周辺の所定領域内にＯＮ画素グループ５０２が存在すると判断される（Ｓ２２０でＹＥＳ）。従って、周辺フラグ「ＯＮ」を含むオブジェクトデータ５１０が生成される（Ｓ２２２）。次いで、図３のＳ１２０において、ＯＮ画素グループ５０２が処理対象として特定されると、図４のＳ２２０において、ＯＮ画素グループ５０２の周辺の所定領域内にＯＮ画素グループ５００が存在すると判断される（Ｓ２２０でＹＥＳ）。従って、周辺フラグ「ＯＮ」を含むオブジェクトデータ５１２が生成される（Ｓ２２２）。
【００６３】
その後、２番目の二値ラインについて図３のＳ１１０〜Ｓ１３４の処理が実行される際に、Ｓ１２０において、ＯＮ画素グループ５０４が処理対象として特定されると、Ｓ１３０において、ＯＮ画素グループ５０４が２個のＯＮ画素グループ５００，５０２の双方に隣接すると判断される。即ち、各ＯＮ画素グループ５００〜５０４が同じオブジェクト（即ち文字「Ｘ」）を構成することが判明する。この際に、２個のオブジェクトデータ５１０，５１２を１個のオブジェクトに対応する１個のオブジェクトデータ５１４に統合する構成を想定する。この場合、２個のオブジェクトデータ５１０，５１２では、周辺フラグとして「ＯＮ」が書き込まれているので、オブジェクトデータ５１４でも、周辺フラグとして「ＯＮ」が書き込まれ得る。即ち、実際には、オブジェクトの周辺に他のオブジェクトが存在しないにも関わらず、周辺フラグとして「ＯＮ」が書き込まれ得る。この場合、オブジェクトの特性（即ち、孤立点、文字等の一部を構成するオブジェクト、文字等のオブジェクト）を適切に特定することができない。
【００６４】
第２実施例では、オブジェクトの特性を適切に特定するために、図４のＳ２２０及び図５のＳ２７０で利用される所定領域が、第１実施例とは異なる。即ち、図９に示されるように、第１の解析処理で利用される所定領域（即ちハッチングの領域）は、左端画素の左側、右側、及び、上側の４画素分の領域を含まない。また、図示省略しているが、第２の解析処理で利用される所定領域は、左端画素の左側、右側、及び、下側の４画素分の領域を含まない。即ち、所定領域は、左端画素から４画素分以内の領域を含まず、左端画素から４画素分以上であって２０画素分以内の領域を含む。なお、変形例では、上記の「４画素」とは異なる閾値が利用されてもよい。例えば、３００ｄｐｉの読取解像度で原稿が読取られる場合には、「１２画素」が閾値として利用されてもよい。
【００６５】
本実施例によると、ＯＮ画素グループ５００の右側の４画素が所定領域から除外されているので、ＯＮ画素グループ５００の周辺の所定領域内にＯＮ画素グループが存在しないと判断され（図４のＳ２２０でＮＯ）、周辺フラグ「ＯＦＦ」を含むオブジェクトデータ５２０が生成される（Ｓ２２２）。また、ＯＮ画素グループ５０２の左側の４画素が所定領域から除外されているので、ＯＮ画素グループ５０２の周辺の所定領域内にＯＮ画素グループが存在しないと判断されるので（Ｓ２２０でＮＯ）、周辺フラグ「ＯＦＦ」を含むオブジェクトデータ５２２が生成される（Ｓ２２２）。即ち、同じオブジェクトを構成する２個のＯＮ画素グループ５００，５０２のうちの一方のＯＮ画素グループについて、他方のＯＮ画素グループが周辺に存在すると判断されるのを抑制することができる。その後、ＣＰＵ３２は、図３のＳ１３０において、ＯＮ画素グループ５０４が２個のＯＮ画素グループ５００，５０２の双方に隣接すると判断し、図５のＳ２４０〜Ｓ２５２において、２個のオブジェクトデータ５２０，５２２を１個のオブジェクトデータ５２４に統合する。２個のオブジェクトデータ５２０，５２２では周辺フラグとして「ＯＦＦ」が書き込まれているので、ＣＰＵ３２は、オブジェクトデータ５２４においても、周辺フラグとして「ＯＦＦ」を適切に書き込むことができる。
【００６６】
本実施例によると、周辺フラグが適切に書き込まれるので、オブジェクトの特性（即ち、孤立点、文字等の一部を構成するオブジェクト、文字等のオブジェクト）を適切に特定することができる。本実施例では、処理対象のＯＮ画素グループのうちの左端画素が、「対象画素」の一例である。また、４画素、２０画素が、それぞれ、「第１の所定距離」、「第２の所定距離」の一例である。
【００６７】
（第３実施例；図１０）
第２実施例と同様に、本実施例では、図１０に示されるように、図４のＳ２２０及び図５のＳ２７０で利用される所定領域（即ちハッチングの領域）は、左端画素から４画素分以内の領域を含まず、左端画素から４画素分以上であって２０画素分以内の領域を含む。図１０の例では、左端画素の上側にＯＮ画素６００，６０２が存在する。この場合、２２番目のｙ方向情報は、左端画素に対応する数字として、左端画素とＯＮ画素６００との間の距離である「２」を含む。即ち、２２番目のｙ方向情報は、ＯＮ画素６０２に関する情報を含まない。この結果、ＣＰＵ３２は、仮に、２２番目のｙ方向情報のみを利用して、Ｓ２２０及びＳ２７０の判断を実行すると、ＯＮ画素６００が所定領域に含まれておらず、かつ、ＯＮ画素６０２の存在が不明であるので、所定領域内にＯＮ画素が存在しないと判断する。即ち、実際には、所定領域内にＯＮ画素６０２が存在するにも関わらず、誤った判断を実行してしまう。
【００６８】
本実施例では、上記の誤った判断を避けるために、図３のＳ１１４において、ＣＰＵ３２は、補助情報を生成する。ここで、補助情報は、（ｍ−４）番目のｙ方向情報である。上記の「４」は、所定領域から除外される左端画素の周囲の画素数である。具体的には、Ｓ１１４では、ＣＰＵ３２は、Ｓ１０２〜Ｓ１１２と同様に、（ｍ−４）番目の二値ラインを利用して、（ｍ−４）番目のｘ方向情報と、（ｍ−４）番目のｙ方向情報である補助情報と、を生成する。特に、ＣＰＵ３２は、（ｍ−５）番目のｘ方向情報と（ｍ−５）番目のｙ方向情報とを利用して、（ｍ−４）番目のｙ方向情報である補助情報を生成する。
【００６９】
図４のＳ２２０及び図５のＳ２７０では、ＣＰＵ３２は、さらに、（ｍ−４）番目のｙ方向情報である補助情報を利用して、左端画素の上側の所定領域内にＯＮ画素が存在するのか否かを判断する。図１０の例では、１８番目のｙ方向情報である補助情報は、ｘ方向において左端画素と同じ位置に存在するＯＦＦ画素６０４に対応する数字として、ＯＦＦ画素６０４とＯＮ画素６０２との間の距離である「４」を含む。従って、ＣＰＵ３２は、補助情報を利用すれば、左端画素の上側の所定領域内にＯＮ画素６０２が存在することを適切に判断することができる。本実施例では、（ｍ−５）番目のｘ方向情報、（ｍ−５）番目のｙ方向情報が、それぞれ、「（ｋ−１）番目の画素情報」、「（ｋ−１）番目の第１の距離情報」である。
【００７０】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【００７１】
（変形例１）上記の各実施例では、図２のＳ４０において、ＣＰＵ３２は、孤立点であるオブジェクトを特定するが、それに代えて、文字であるオブジェクトを特定してもよい。この場合、図３のＳ１５２において、大サイズフラグ「ＯＮ」及び「ＯＦＦ」を区別するための閾値は、２ｃｍに対応する画素数であってもよい。当該画素数は、読取解像度に依存する。そして、図２のＳ４０では、ＣＰＵ３２は、大サイズフラグ「ＯＦＦ」を含むオブジェクトデータであって、第１の解析処理及び第２の解析処理のうちの少なくとも一方の結果として周辺フラグ「ＯＮ」を含むオブジェクトデータを特定する。文字は、通常、２ｃｍ以下の幅及び高さを有し、さらに、文字の周辺には、通常、他の文字が存在する。従って、大サイズフラグ「ＯＦＦ」及び周辺フラグ「ＯＮ」を含むオブジェクトデータは、通常、文字であるオブジェクトを表わすデータである。図２のＳ５０では、ＣＰＵ３２は、文字として特定された各オブジェクトに対してＯＣＲ（Optical Character Recognitionの略）を実行する。即ち、ＣＰＵ３２は、文字として特定されていない各オブジェクトに対してＯＣＲを実行せずに済むので（即ちスキャン画像の全体に対してＯＣＲを実行せずに済むので）、ＯＣＲを迅速に実行することができる。本実施例では、２ｃｍに対応する画素数、ＯＣＲが、それぞれ、「第２の閾値」、「所定処理」の一例である。
【００７２】
（変形例２）図３のＳ１１０において、ｘ方向情報が生成されなくてもよい。この場合、Ｓ１１２では、ＣＰＵ３２は、（ｍ−１）番目のｘ方向情報に代えて、（ｍ−１）番目の二値ラインを利用して、ｍ番目のｙ方向情報を生成してもよい。本変形例では、二値ラインそのものが、「画素情報」の一例である。
【００７３】
（変形例３）図２のＳ３０の第２の解析処理が実行されなくてもよい。この場合、Ｓ４０では、ＣＰＵ３２は、第１の解析処理の結果のみを利用して、孤立点であるオブジェクトを特定してもよい。
【００７４】
（変形例４）例えば、黒色のベタ画像内に白色の文字が配置されている原稿の読取りが実行される場合には、黒色のベタ画像内に白色の文字とは異なる白色の孤立点が形成され得る。このような孤立点を除去するために、ＣＰＵ３２は、図３のＳ１２０において、処理対象のＯＦＦ画素グループを特定し、図４のＳ２２０及び図５のＳ２７０において、処理対象のＯＦＦ画素グループのうちの左端画素の周辺の所定領域内に他のＯＦＦ画素が存在するのか否かを判断してもよい。そして、図２のＳ５０において、ＣＰＵ３２は、孤立点であるオブジェクトに対応する各画素を、黒色を表わす画素に補正してもよい。本変形例では、ＯＦＦ画素、ＯＮ画素が、それぞれ、「第１種の画素」、「第２種の画素」の一例である。
【００７５】
（変形例５）例えば、文字列のみを含む原稿の読取りが実行される状況を想定する。文字の周囲には、通常、他の文字が存在するので、大サイズフラグがなくても、周辺フラグ「ＯＮ」に対応するオブジェクトを文字として特定可能である。即ち、大サイズフラグがなくても、周辺フラグ「ＯＦＦ」に対応するオブジェクトを孤立点として特定可能である。従って、上記の各実施例において、オブジェクトのサイズが考慮されなくてもよい。
【００７６】
（変形例６）例えば、図２のＳ１０では、原稿に対していわゆる二値スキャンが実行されることによって、ＯＮ画素及びＯＦＦ画素によって構成される二値画像を表わす圧縮済みスキャンデータが生成されてもよい。本変形例では、図３のＳ１０２及びＳ１０４を省略可能である。
【００７７】
（変形例７）図２の各処理は、ＰＣ１０にインストールされるスキャナドライバによって実行されてもよい。即ち、「画像解析装置」は、スキャナに限られず、画像の解析を実行可能なあらゆる装置（例えば、ＰＣ、サーバ、多機能機、スマートフォン等）を含む。
【００７８】
（変形例８）上記の実施例では、スキャナ１０のＣＰＵ３２がプログラム３６（即ちソフトウェア）を実行することによって、図２〜図１０の各処理が実現される。これに代えて、図２〜図１０の各処理のうちの少なくとも１つの処理は、論理回路等のハードウェアによって実現されてもよい。
【００７９】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００８０】
１０：スキャナ、１２：操作部、１４：表示部、１６：ネットワークインターフェース、１８：スキャンエンジン、３０：制御部、３２：ＣＰＵ、３４：メモリ、３６：プログラム、５０：ＰＣ、１００：スキャン指示、１１０：スキャン画像、１２０：補正済み画像、１３０：補正済み画像データ、２０２，２０６，２１６ａ，２３０：ＯＮ画素グループ、４００，４０２：ＯＮ画素
【図１】
2018041304.tif 000003
【図２】
2018041304.tif 000004
【図３】
2018041304.tif 000005
【図４】
2018041304.tif 000006
【図５】
2018041304.tif 000007
【図６】
2018041304.tif 000008
【図７】
2018041304.tif 000009
【図８】
2018041304.tif 000010
【図９】
2018041304.tif 000011
【図１０】
2018041304.tif 000012