(57)【要約】 【課題】  オブジェクト間の包含関係を、適切に判定する。【解決手段】  画像処理装置は、対象画像データによって表される対象画像内の第１のオブジェクトと第２のオブジェクトとを特定する特定部と、第１のオブジェクト内の１個以上の画素を基点とするＭ個の線（Ｍは、２以上の整数）のそれぞれと、第２のオブジェクトと、の交点の個数が偶数であるか奇数であるかを、線ごとに判断する第１の判断部と、Ｍ個の線のうち、交点の個数が奇数である線がＮ個以上（Ｎは、Ｎ＜Ｍの整数）であることを含む判定条件が満たされた場合に、第１のオブジェクトが第２のオブジェクトに内包されていると判断する第２の判断部と、を備える。【選択図】  図１２
2014182623.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
対象画像データによって表される対象画像内の第１のオブジェクトと第２のオブジェクトとを特定する特定部と、
前記第１のオブジェクト内の１個以上の画素を基点とするＭ個の線（Ｍは、２以上の整数）のそれぞれと、前記第２のオブジェクトと、の交点の個数が偶数であるか奇数であるかを、線ごとに判断する第１の判断部と、
前記Ｍ個の線のうち、前記交点の個数が奇数である線がＮ個以上（Ｎは、Ｎ＜Ｍの整数）であることを含む判定条件が満たされた場合に、第１のオブジェクトが前記第２のオブジェクトに内包されていると判断する第２の判断部と、
を備える、画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記第１の判断部は、前記Ｍ個の線と前記第２のオブジェクトとの接点を検出する検出部を備え、
前記第１の判断部は、前記Ｍ個の線と前記第２のオブジェクトとの交点の個数を判断する場合に、前記Ｍ個の線と前記第２のオブジェクトとの接点を、偶数個の交点として処理する、画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置であって、さらに、
前記Ｍ個の線の前記１個以上の基点は、前記第１のオブジェクトの中央部に位置する、画像処理装置。
【請求項４】
請求項１または請求項２に記載の画像処理装置であって、
前記第１の判断部は、前記Ｍ個の線を１組として、複数組のそれぞれの前記Ｍ個の線について、前記第２のオブジェクトとの交点の個数が偶数であるか奇数であるかを判断し、
前記第２の判断部は、複数組の前記Ｍ個の線のうち少なくとも１組が、前記判定条件を満たす場合に、第１のオブジェクトが前記第２のオブジェクトに内包されていると判断する、画像処理装置。
【請求項５】
請求項４に記載の画像処理装置であって、
前記第１の判断部は、前記第１のオブジェクトの中央部として算出した位置に、前記第１のオブジェクトを構成するオブジェクト画素が存在しない場合に、複数組の前記１個以上の基点に対応する複数組の前記Ｍ個の線について、前記第２のオブジェクトとの交点の個数が偶数であるか奇数であるかを判断し、
複数組の前記１個以上の基点は、前記オブジェクト画素が存在する位置に設定される、画像処理装置。
【請求項６】
請求項４に記載の画像処理装置であって、
前記第１の判断部は、第１組のＭ個の線について、前記第２のオブジェクトとの交点の個数が偶数であるか奇数であるかを判断し、
前記第２の判断部は、前記第１組のＭ個の線が前記判定条件を満たすか否かを判断し、
前記第１の判断部は、前記第１組のＭ個の線が前記判定条件を満たさない場合のうちの少なくとも一部の場合に、第２組のＭ個の線について、前記第２のオブジェクトとの交点の個数が偶数であるか奇数であるかを判断し、
前記第２の判断部は、前記第２組のＭ個の線が前記判定条件を満たす場合に、第１のオブジェクトが前記第２のオブジェクトに内包されていると判断する、画像処理装置。
【請求項７】
請求項６に記載の画像処理装置であって、
前記第１組のＭ個の線が前記判定条件を満たさない場合のうちの少なくとも一部の場合は、前記第１組のＭ個の線のうち、前記交点の個数が奇数である線の個数と、前記交点の個数が偶数である線の個数と、が等しい場合である、画像処理装置。
【請求項８】
請求項６または請求項７のいずれかに記載の画像処理装置であって、
前記第１の判断部は、
第１のオブジェクトの中央部に位置する点を前記基点とする前記第１組のＭ個の線について、前記第２のオブジェクトとの交点の個数が偶数であるか奇数であるかを判断し、
前記第１のオブジェクトの中央部とは異なる位置の点を前記基点とする前記第２組のＭ個の線について、前記第２のオブジェクトとの交点の個数が偶数であるか奇数であるかを判断する、画像処理装置。
【請求項９】
請求項１ないし請求項８のいずれかに記載の画像処理装置であって、
前記Ｍ個の線は、第１の線と第２の線とを含み、
前記第１の線が延びる方向と前記第２の線が延びる方向とが為す２個の角度のうちの小さい角度は、略９０度以上である、画像処理装置。
【請求項１０】
請求項３、５、８のいずれかに記載の画像処理装置であって、
前記第１のオブジェクトの中央部の位置は、前記第１のオブジェクトの重心である、画像処理装置。
【請求項１１】
画像処理を実行するためのコンピュータプログラムであって、
対象画像データによって表される対象画像内の第１のオブジェクトと第２のオブジェクトとを特定する特定機能と、
前記第１のオブジェクト内の１個以上の画素を基点とするＭ個の線（Ｍは、２以上の整数）のそれぞれと、前記第２のオブジェクトと、の交点の個数が偶数であるか奇数であるかを、線ごとに判断する第１の判断機能と、
前記Ｍ個の線のうち、前記交点の個数が奇数である線がＮ個以上（Ｎは、Ｎ＜Ｍの整数）であることを含む判定条件が満たされた場合に、第１のオブジェクトが前記第２のオブジェクトに内包されていると判断する第２の判断機能と、
をコンピュータに実現させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理技術に関し、特に、処理対象の画像内のオブジェクトに関する判断を実行する画像処理技術に関する。
【背景技術】
【０００２】
画像データに対する画像処理によって、画像データによって表される画像内の第１のオブジェクトと、第２のオブジェクトと、の包含関係を判定する技術が知られている。例えば、特許文献１には、画像内の閉図形と、画像内の特定点との包含関係を判定する技術が開示されている。具体的には、画像処理装置は、特定点を始点とする半直線と、閉図形と、の交点を特定し、交点ごとに判定値を決定する。特定点から数えて奇数回目の交点の判定値と、偶数回目の交点の判定値は、互いに絶対値が同じで、正負が逆の値である。画像処理装置は、判定値の合計値が正の値であるか負の値であるかに基づいて、特定点が閉図形に内包されているか否かを判断する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−２８２４４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このように、画像データによって表される画像内の第１のオブジェクトと第２のオブジェクトとの包含関係を、適切に判定する技術が求められている。
【０００５】
本発明の目的は、画像処理によって、画像内の第１のオブジェクトと第２のオブジェクトとの包含関係を、適切に判定することができる新たな技術を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
【０００７】
［適用例１］画像処理装置であって、対象画像データによって表される対象画像内の第１のオブジェクトと第２のオブジェクトとを特定する特定部と、前記第１のオブジェクト内の１個以上の画素を基点とするＭ個の線（Ｍは、２以上の整数）のそれぞれと、前記第２のオブジェクトと、の交点の個数が偶数であるか奇数であるかを、線ごとに判断する第１の判断部と、前記Ｍ個の線のうち、前記交点の個数が奇数である線がＮ個以上（Ｎは、Ｎ＜Ｍの整数）であることを含む判定条件が満たされた場合に、第１のオブジェクトが前記第２のオブジェクトに内包されていると判断する第２の判断部と、を備える、画像処理装置。
【０００８】
上記構成によれば、Ｍ個の線のうち、第２のオブジェクトとの交点が奇数である線が、Ｎ個以上あるか否かに基づいて、第１のオブジェクトが第２のオブジェクトに内包されているか否かを適切に判断することができる。
【０００９】
［適用例２］適用例１に記載の画像処理装置であって、前記第１の判断部は、前記Ｍ個の線と前記第２のオブジェクトとの接点を検出する検出部を備え、前記第１の判断部は、前記Ｍ個の線と前記第２のオブジェクトとの交点の個数を判断する場合に、前記Ｍ個の線と前記第２のオブジェクトとの接点を、偶数個の交点として処理する、画像処理装置。
【００１０】
この構成によれば、Ｍ個の線と前記第２のオブジェクトとの接点を、偶数個の交点として処理するので、第１のオブジェクトが第２のオブジェクトに内包されているか否かをさらに適切に判断することができる。
【００１１】
［適用例３］適用例１または適用例２に記載の画像処理装置であって、さらに、前記Ｍ個の線の前記１個以上の基点は、前記第１のオブジェクトの中央部に位置する、画像処理装置。
【００１２】
この構成によれば、第１のオブジェクトの中央部を基点とする線を用いるので、第１のオブジェクトが第２のオブジェクトに内包されているか否かをより適切に判断することができる。
【００１３】
［適用例４］適用例１または適用例２に記載の画像処理装置であって、前記第１の判断部は、前記Ｍ個の線を１組として、複数組のそれぞれの前記Ｍ個の線について、前記第２のオブジェクトとの交点の個数が偶数であるか奇数であるかを判断し、前記第２の判断部は、複数組の前記Ｍ個の線のうち少なくとも１組が、前記判定条件を満たす場合に、第１のオブジェクトが前記第２のオブジェクトに内包されていると判断する、画像処理装置。
【００１４】
この構成によれば、複数組のＭ個の線を用いて判断するので、第１のオブジェクトが第２のオブジェクトに内包されているか否かをさらに適切に判断することができる。
【００１５】
［適用例５］適用例４に記載の画像処理装置であって、前記第１の判断部は、前記第１のオブジェクトの中央部として算出した位置に、前記第１のオブジェクトを構成するオブジェクト画素が存在しない場合に、複数組の前記１個以上の基点に対応する複数組の前記Ｍ個の線について、前記第２のオブジェクトとの交点の個数が偶数であるか奇数であるかを判断し、複数組の前記１個以上の基点は、前記オブジェクト画素が存在する位置に設定される、画像処理装置。
【００１６】
この構成によれば、第１のオブジェクトの中央部として算出した位置に、前記第１のオブジェクトを構成するオブジェクト画素が存在しない場合であっても、第１のオブジェクトが第２のオブジェクトに内包されているか否かを適切に判断することができる。
【００１７】
［適用例６］適用例４に記載の画像処理装置であって、前記第１の判断部は、第１組のＭ個の線について、前記第２のオブジェクトとの交点の個数が偶数であるか奇数であるかを判断し、前記第２の判断部は、前記第１組のＭ個の線が前記判定条件を満たすか否かを判断し、前記第１の判断部は、前記第１組のＭ個の線が前記判定条件を満たさない場合のうちの少なくとも一部の場合に、第２組のＭ個の線について、前記第２のオブジェクトとの交点の個数が偶数であるか奇数であるかを判断し、前記第２の判断部は、前記第２組のＭ個の線が前記判定条件を満たす場合に、第１のオブジェクトが前記第２のオブジェクトに内包されていると判断する、画像処理装置。
【００１８】
この構成によれば、第１組のＭ個の線が判定条件を満たさない場合のうちの少なくとも一部の場合に、第２の判断部は、第２組のＭ個の線が判定条件を満たすか否かを判断する。この結果、第１のオブジェクトが第２のオブジェクトに内包されているか否かの判定精度を向上することができる。
【００１９】
［適用例７］適用例６に記載の画像処理装置であって、前記第１組のＭ個の線が前記判定条件を満たさない場合のうちの少なくとも一部の場合は、前記第１組のＭ個の線のうち、前記交点の個数が奇数である線の個数と、前記交点の個数が偶数である線の個数と、が等しい場合である、画像処理装置。
【００２０】
この構成によれば、第１組のＭ個の線のうち、交点の個数が奇数である線の個数と、交点の個数が偶数である線の個数と、が等しい場合には、第２組のＭ個の線を用いて第１のオブジェクトが第２のオブジェクトに内包されているか否かが判断される。この結果、第１組のＭ個の線を用いて適切な判断を行うことが困難な場合に、第２組のＭ個の線を用いて、適切な判断を行うことができる。
【００２１】
［適用例８］適用例６または適用例７のいずれかに記載の画像処理装置であって、前記第１の判断部は、第１のオブジェクトの中央部に位置する点を前記基点とする前記第１組のＭ個の線について、前記第２のオブジェクトとの交点の個数が偶数であるか奇数であるかを判断し、前記第１のオブジェクトの中央部とは異なる位置の点を前記基点とする前記第２組のＭ個の線について、前記第２のオブジェクトとの交点の個数が偶数であるか奇数であるかを判断する、画像処理装置。
【００２２】
この構成によれば、第１のオブジェクトの中央部に位置する点を基点とするＭ個の線を用いる判断を優先的に行うので、第１のオブジェクトが第２のオブジェクトに内包されているか否かをより適切に判断することができる。
【００２３】
［適用例９］適用例１ないし適用例８のいずれかに記載の画像処理装置であって、前記Ｍ個の線は、第１の線と第２の線とを含み、前記第１の線が延びる方向と前記第２の線が延びる方向とが為す２個の角度のうちの小さい角度は、略９０度以上である、画像処理装置。
【００２４】
この構成によれば、第１の線と第２のオブジェクトとの交点の位置と、第２の線と第２のオブジェクトとの交点の位置が、過度に近くなることを抑制できる。この結果、第１のオブジェクトが第２のオブジェクトに内包されているか否かをより適切に判断することができる。
【００２５】
［適用例１０］適用例３、５、８のいずれかに記載の画像処理装置であって、前記第１のオブジェクトの中央部の位置は、前記第１のオブジェクトの重心である、画像処理装置。
【００２６】
この構成によれば、第１のオブジェクトが第２のオブジェクトに内包されているか否かをより適切に判断することができる。
【００２７】
なお、本発明は、種々の形態で実現することが可能であり、例えば、画像処理方法、これらの装置の機能または方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【００２８】
【図１】第１実施例における画像処理システムの構成を示すブロック図である。
【図２】画像処理システム１０００の動作を示すフローチャートである。
【図３】原稿および画像の一例を示す図である。
【図４】収縮処理と膨張処理を説明する図である。
【図５】オブジェクト判定処理のフローチャートである。
【図６】線判定処理の説明図である。
【図７】形状判定処理のフローチャートである。
【図８】形状判定処理の第１の説明図である。
【図９】形状判定処理の第２の説明図である。
【図１０】特定領域ＥＳを用いる判定について説明する図である。
【図１１】部分画像の一例と部分二値画像の一例を示す図である。
【図１２】第１実施例の内包関係判定処理のフローチャートである。
【図１３】交点数特定処理のフローチャートである。
【図１４】交点数特定処理の説明図である。
【図１５】第１実施例のサンプル画像としての二値画像ＢＩ２を示す図である。
【図１６】第２実施例の内包関係特定処理のフローチャートである。
【図１７】第２実施例のサンプル画像としての二値画像ＢＩ３を示す図である。
【発明を実施するための形態】
【００２９】
Ａ．第１実施例：
Ａ−１：画像処理システム１０００の構成
図１は、第１実施例における画像処理システムの構成を示すブロック図である。画像処理システム１０００は、画像処理装置としてのサーバ４００と、複合機２００と、を備えている。サーバ４００は、インターネット７０に接続されており、複合機２００は、ＬＡＮ（Local Area Network）５０を介して、インターネット７０に接続されている。この結果、サーバ４００と複合機２００は、ＬＡＮ５０とインターネット７０とを介して、通信可能である。また、ＬＡＮ５０には、複合機２００の利用者のパーソナルコンピュータ５００が接続されていても良い。
【００３０】
サーバ４００は、ＣＰＵ４１０と、ＤＲＡＭなどの揮発性記憶装置４２０と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置４３０と、インターネット７０などのネットワークに接続するためのインタフェースを含む通信部４８０と、を備えている。揮発性記憶装置４２０には、ＣＰＵ４１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域４２１が設けられている。不揮発性記憶装置４３０には、後述する画像処理をＣＰＵ４１０に実現させるコンピュータプログラム４３１が格納されている。コンピュータプログラム４３１は、ＤＶＤ−ＲＯＭなどに記録された形態で提供され得る。
【００３１】
ＣＰＵ４１０は、コンピュータプログラム４３１を実行することにより、画像処理部３００として機能する。画像処理部３００は、処理対象の画像データ（対象画像データとも呼ぶ）を取得する画像データ取得部３１０と、対象画像データによって表される対象画像内の赤色のオブジェクトを特定する第１のオブジェクト特定部３２０と、オブジェクトが所定の判定条件を満たす場合に、オブジェクトは囲み線であると判定するオブジェクト判定部３３０と、特定のオブジェクトが囲み線に内包されているか（囲まれているか）否かを判定する内包関係判定部３５０と、囲み線に内包された特定のオブジェクトを除去する処理を実行する除去処理部３６０と、を備えている。ここで、囲み線は、後述するように、対象画像内の一部の領域、例えば、他のオブジェクトを示す領域や、オブジェクトが含まれない背景領域を囲む線である。例えば、囲み線は、赤色のペンなどにより原稿上に形成され、この原稿を読み取ることによって得られる画像データ（スキャンデータ）によって表される画像上に現れる。
【００３２】
内包関係判定部３５０は、内包関係を判定するための機能部として、第２のオブジェクト特定部３５１と、交点数判断部３５２と、条件判断部３５４と、を備えている。第２のオブジェクト特定部３５１は、囲み線であると判定されたオブジェクトと、囲み線との内包関係を判定すべきオブジェクトと、を特定する。交点数判断部３５２は、特定のオブジェクト内の画素を基点とする複数の判定線のそれぞれと、囲み線と、の交点の個数が偶数であるか奇数であるかを、判定線ごとに判断する。交点数判断部３５２は、判定線と囲み線との共有点（交点または接点）を検出する検出部３５３を備えている。ここで、共有点は、２本の線が共有する点を意味する。交点は、２本の線が交差している点を意味し、接点は、２本の線が接している（交差はしていない）点を意味する。共有点は、交点と接点とを含む上位概念である。条件判断部３５４は、囲み線との交点の個数が奇数である判定線の個数に基づいて、特定のオブジェクトが囲み線に内包されているか否かを判断する。これらの各機能部が行う具体的な画像処理については、後述する。
【００３３】
複合機２００は、ＣＰＵ２１０と、ＤＲＡＭなどの揮発性記憶装置２２０と、フラッシュメモリやハードディスクドライブなどの不揮発性記憶装置２３０と、プリンタ部２４０と、スキャナ部２５０と、タッチパネルやボタンなどの操作部２６０と、液晶ディスプレイなどの表示部２７０と、ＬＡＮ５０などのネットワークに接続するためのインタフェースを含む通信部２８０と、を備えている。
【００３４】
揮発性記憶装置２２０には、ＣＰＵ２１０が処理を行う際に生成される種々のデータを一時的に格納するバッファ領域２２１が設けられている。不揮発性記憶装置２３０には、制御プログラム２３１が格納されている。
【００３５】
プリンタ部２４０は、インクジェット方式やレーザー方式などの印刷方式を用いて印刷を実行する。スキャナ部２５０は、光電変換素子（例えば、ＣＣＤ、ＣＭＯＳ）を用いて原稿を読み取ることによってスキャンデータを生成する取得する。スキャンデータは、ＲＧＢ画素データによって構成されたビットマップデータ（ＲＧＢ画像データ）である。ＲＧＢ画素データは、レッド（Ｒ）、グリーン（Ｇ）、ブルー（Ｂ）の３つの色成分の色成分値（本実施例の各色成分値は、２５６階調の階調値）を含む画素データである。以下では、色成分のうち、レッド成分をＲ成分とも呼び、グリーン成分をＧ成分とも呼び、ブルー成分をＢ成分とも呼ぶ。
【００３６】
ＣＰＵ２１０は、制御プログラム２３１を実行することにより、通信制御部１１０と、装置制御部１２０と、として機能する。装置制御部１２０は、例えば、プリンタ部２４０やスキャナ部２５０を制御して、コピー処理、印刷処理、スキャン処理などを実行する。通信制御部１１０は、外部機器との通信を制御する機能部であり、具体的には、後述する画像処理において、サーバ４００との間で、画像データの送受信を行う画像データ送受信部１１５を備えている。
【００３７】
Ａ−１：画像処理システム１０００の動作
サーバ４００の画像処理部３００は、処理対象の画像データ（対象画像データとも呼ぶ）に対して画像処理を実行して、処理済みの画像データを生成する。この画像処理を含む画像処理システム１０００の動作について説明する。
【００３８】
図２は、画像処理システム１０００の動作を示すフローチャートである。このフローチャートの処理は、複合機２００が、特定の動作モードの指定と、原稿ＳＣの読取指示を、利用者から受け付けた場合に実行される。この特定の動作モードは、原稿ＳＣから、囲み線に囲まれた特定のオブジェクトを除いた画像を表す画像データを生成するモードであり、特定オブジェクト除去モードとも呼ぶ。
【００３９】
処理が開始されると、ステップＳ１０５では、複合機２００の装置制御部１２０（図１）は、スキャナ部２５０を用いて原稿ＳＣを読み取ることによって、スキャンデータを生成する。
【００４０】
図３は、原稿および画像の一例を示す図である。図３（Ａ）には、スキャンデータによって表されるスキャン画像６０の一例が示されている。スキャン画像６０は、原稿ＳＣを表す画像であるから、図３（Ａ）は、原稿ＳＣの一例を示す図と言うこともできる。
【００４１】
スキャン画像６０（原稿ＳＣ）は、オブジェクトとして、４個の文字６１〜６４と、２個の描画６５、６７と、１個の写真６８と、囲み線６６と、を含んでいる。描画は、例えば、イラスト、表、グラフ、線図、ベクトルグラフィックス、模様などを表すオブジェクトである。囲み線６６は、オブジェクト除去モードで使用すべき囲み線の色として予め指定された色（本実施例では、赤）のペンを用いて、利用者によって原稿ＳＣに手書きされたオブジェクトである。利用者は、除去対象のオブジェクトを囲む囲み線を原稿ＳＣに手書きする。図３（Ａ）の例では、囲み線６６は、描画６５を囲んでいる。なお、３個の文字６１〜６３は、赤色の文字であり、１個の文字６４は、赤色ではない文字である。描画６５は、赤色の部分を含んでおらず、描画６７と写真６８は、赤色の部分を含んでいる。
【００４２】
続いて、ステップＳ１１０では、サーバ４００の画像データ送受信部１１５は、スキャンデータを、サーバ４００に対して送信する。例えば、スキャンデータは、ＪＰＥＧ圧縮されて、サーバ４００に送信される。この結果、サーバ４００の画像処理部３００の画像データ取得部３１０は、対象画像データとして、複合機２００からスキャンデータを取得する。
【００４３】
スキャンデータが取得されると、画像処理部３００は、スキャン画像６０内の囲み線を特定するための一連の処理を実行する（ステップＳ１２０〜Ｓ１４５）。
【００４４】
先ず、ステップＳ１２０では、第１のオブジェクト特定部３２０は、囲み線の候補となるオブジェクトを特定するために、スキャンデータに対して二値化処理を実行して、二値画像データを生成する。具体的には、スキャンデータは、スキャン囲み線の色である赤色を表す色値を有する画素（赤色オブジェクト画素）と、赤色以外の色を表す色値を有する画素（非赤色画素）と、に二値化される。例えば、Ｒ成分値が基準値Ｒｔｈ以上、かつ、Ｇ成分値が基準値Ｇｔｈ以下、かつ、Ｂ成分値が基準値Ｂｔｈ以下である画素は、赤色オブジェクト画素に分類される。そして、Ｒ成分値が基準値Ｒｔｈより大きい、または、Ｇ成分値が基準値Ｇｔｈ未満、または、Ｂ成分値が基準値Ｂｔｈ未満である画素は、非赤色画素に分類される。なお、本実施例では、囲み線の色として赤色が想定されているので、本ステップにおいて、赤色オブジェクトが特定されているが、他の色が想定されている場合には、本ステップにおいて、当該他の色を含む範囲の色を有するオブジェクトが特定される。
【００４５】
図３（Ｂ）は、二値画像データによって表される二値画像６０Ａの一例を示す図である。二値画像６０Ａには、赤色オブジェクト画素によって構成される赤色オブジェクトとして、３個の文字６１Ａ〜６３Ａと、囲み線６６Ａと、描画６７および写真６８（図３（Ａ））の一部分である部分オブジェクト６７Ａ、６８Ａと、が含まれている。なお、文字６４および描画６５（図３（Ａ））は、赤色ではないので、二値画像６０Ａにおいて、赤色オブジェクトとして現れていない。
【００４６】
ステップＳ１２５では、第１のオブジェクト特定部３２０は、赤色オブジェクトを収縮させる収縮処理と、赤色オブジェクトを膨張させる膨張処理とを、二値画像データに対してそれぞれ実行する。本実施例では、収縮処理が先に実行され、収縮処理済みの二値画像データ（収縮二値画像データ）に対して膨張処理が実行される。
【００４７】
図４は、収縮処理と膨張処理を説明する図である。図４（Ａ）には、二値画像６０Ａ（図３（Ｂ））の部分画像ＰＩ１が示されている。部分画像ＰＩ１は、収縮処理前の赤色オブジェクトの例としての囲み線６６Ａの一部と、ノイズ画素ＤＴを含んでいる。ノイズ画素ＤＴは、孤立した画素である。この孤立したノイズ画素ＤＴは、スキャン画像６０内のノイズによって二値画像６０Ａに現れた赤色オブジェクト画素であり、特定すべき赤色オブジェクトを構成していない。また、囲み線６６Ａは、断線した部分（断線部）ＮＴを含む場合がある。例えば、スキャン画像６０内の囲み線６６に、比較的色が薄い部分がある場合や、比較的線の幅が狭い部分がある場合などに、二値画像６０Ａ内の囲み線６６Ａに、断線部ＮＴが表れる場合がある。
【００４８】
収縮処理は、例えば、所定サイズのフィルタ、図４（Ａ）の例では、縦３画素×横３画素のサイズのフィルタＦＩ１を用いて実行される。具体的には、第１のオブジェクト特定部３２０は、フィルタＦＩ１を、二値画像６０Ａを表す二値画像データに対して適用して、収縮二値画像データを生成する。すなわち、第１のオブジェクト特定部３２０は、注目画素に、フィルタＦＩ１の中心位置ＣＣ１（図４（Ａ）参照）が重なるように、フィルタＦＩ１を二値画像６０Ａ上に配置する。第１のオブジェクト特定部３２０は、フィルタＦＩ１の範囲内に、非赤色画素が１個でも存在する場合には、注目画素に対応する収縮二値画像内の画素を非赤色画素に設定する。そして、第１のオブジェクト特定部３２０は、フィルタＦＩ１の範囲内に、非赤色画素がない場合、すなわち、フィルタＦＩ１の範囲内の９個の画素が、全て赤色オブジェクト画素であるには、注目画素に対応する収縮二値画内の画素を赤色オブジェクト画素に設定する。第１のオブジェクト特定部３２０は、二値画像６０Ａの全ての画素を注目画素として、収縮二値画像内の対応する画素を、非赤色画素および赤色オブジェクト画素のいずれかに設定することによって、収縮二値画像を表す収縮二値画像データを生成する。この説明から解るように、赤色オブジェクトを収縮させる収縮処理は、非赤色オブジェクトによって構成される領域（主として背景領域）を膨張させる処理と言うこともできる。
【００４９】
図４（Ｂ）には、収縮二値画像のうちの、図４（Ａ）の部分画像ＰＩ１に対応する収縮部分画像ＰＩ２が示されている。収縮部分画像ＰＩ２には、ノイズ画素ＤＴが現れていないことから解るように、収縮処理によって、ノイズ画素ＤＴのような孤立した赤色オブジェクト画素を消去することができる。また、収縮部分画像ＰＩ２では、赤色オブジェクト、例えば、囲み線６６Ａが、部分画像ＰＩ１の囲み線６６Ａと比較して、細くなっている（収縮している）。また、収縮部分画像ＰＩ２では、囲み線６６Ａの断線部ＮＴが、部分画像ＰＩ１の囲み線６６Ａの断線部ＮＴと比較して、大きくなっている。
【００５０】
続く膨張処理は、例えば、所定サイズのフィルタ、図４（Ｂ）の例では、縦５画素×横５画素のサイズのフィルタＦＩ２を用いて実行される。具体的には、第１のオブジェクト特定部３２０は、フィルタＦＩ２を、収縮二値画像を表す収縮二値画像データに対して適用して、膨張二値画像データを生成する。すなわち、第１のオブジェクト特定部３２０は、注目画素に、フィルタＦＩ２の中心位置ＣＣ２（図４（Ｂ）参照）が重なるように、フィルタＦＩ２を収縮二値画像上に配置する。第１のオブジェクト特定部３２０は、フィルタＦＩ２の範囲内に、赤色オブジェクト画素が１個でも存在する場合には、注目画素に対応する膨張二値画像内の画素を赤色オブジェクト画素に設定する。そして、第１のオブジェクト特定部３２０は、フィルタＦＩ２の範囲内に、赤色オブジェクト画素がない場合、すなわち、フィルタＦＩ２の範囲内の２５個の画素が、全て非赤色画素であるには、注目画素に対応する膨張二値画内の画素を非赤色画素に設定する。第１のオブジェクト特定部３２０は、収縮二値画像の全ての画素を注目画素として、膨張二値画像内の対応する画素を、非赤色画素および赤色オブジェクト画素のいずれかに設定することによって、膨張二値画像を表す膨張二値画像データを生成する。
【００５１】
図４（Ｃ）には、膨張二値画像のうちの、図４（Ａ）、（Ｂ）の部分画像ＰＩ１、ＰＩ２に対応する膨張部分画像ＰＩ３が示されている。膨張部分画像ＰＩ３の囲み線６６Ａには、断線部ＮＴが現れていないことから解るように、膨張処理によって、囲み線６６Ａに現れ得る断線部ＮＴを接続することができる。膨張部分画像ＰＩ３では、赤色オブジェクト、例えば、囲み線６６Ａが、部分画像ＰＩ１の囲み線６６Ａと比較して、太くなっている（膨張している）。
【００５２】
なお、上述したフィルタＦＩ１、ＦＩ２のサイズ、すなわち、収縮処理による収縮の程度、および、膨張処理による膨張の程度は、一例である。ただし、収縮処理を先に実行し、膨張処理を後に実行する場合には、膨張処理による膨張の程度（フィルタＦＩ２のサイズに対応する）は、収縮処理による収縮の程度（フィルタＦＩ１のサイズに対応する）より大きいことが好ましい。こうすれば、断線部ＮＴの接続を適切に実現することができる。仮に、収縮処理を先に実行し、膨張処理を後に実行する場合に、膨張処理による膨張の程度が、収縮処理による収縮の程度以下であると、収縮処理によって拡大した断線部ＮＴが膨張処理によって接続されない可能性がある。
【００５３】
また、上記実施例とは逆に、膨張処理を先に実行し、収縮処理を後に実行する場合には、膨張処理による膨張の程度は、収縮処理による収縮の程度より小さいことが好ましい。こうすれば、ノイズ画素ＤＴを適切に除去することができる。仮に、膨張処理を先に実行し、収縮処理を後に実行する場合に、膨張処理による膨張の程度が、収縮処理による収縮の程度以上であると、膨張処理によって拡大したノイズ画素ＤＴが収縮処理によって消去されない可能性がある。
【００５４】
以上説明した収縮・膨張処理（図２のステップＳ１２５）によって、ノイズ画素ＤＴの消去や、断線部ＮＴの接続を実現できるので、後に実行するオブジェクト判定処理において、囲み線の判定の精度を向上できる。また、無駄な処理（例えば、ノイズ画素ＤＴを判定対象のオブジェクトとする処理）を低減することにより、処理負荷を低減することができる。
【００５５】
続くステップＳ１３０（図２）では、第１のオブジェクト特定部３２０は、収縮・膨張処理後の二値画像データを利用して、赤色オブジェクトを特定して、特定された赤色オブジェクトに識別子を付すラベリングを実行する。ラベリングの結果、例えば、赤色オブジェクトと、識別子とを、対応付けたラベルデータが生成される。
【００５６】
具体的には、第１のオブジェクト特定部３２０は、連続する（互いに隣接する）１個以上の赤色オブジェクト画素で構成される１個の領域を、１個の赤色オブジェクトとして特定する。図３（Ｂ）の例では、３個の文字６１Ａ〜６３Ａと、囲み線６６Ａと、描画６７および写真６８（図３（Ａ））の一部分である部分オブジェクト６７Ａ、６８Ａと、が特定され、これらの赤色オブジェクトのそれぞれに、互いに異なる識別子が付される。
【００５７】
赤色オブジェクトが特定されると、ステップＳ１４５では、画像処理部３００は、オブジェクト判定処理を実行する。オブジェクト判定処理は、特定された複数個の赤色オブジェクト６１Ａ〜６３Ａ、６６Ａ〜６８Ａのそれぞれが、囲み線であるか否かを、赤色オブジェクトごとに判定する処理である。
【００５８】
図５は、オブジェクト判定処理のフローチャートである。ステップＳ２０５では、画像処理部３００は、処理対象の赤色オブジェクトを選択する。図３（Ｂ）の例では、３個の文字６１Ａ〜６３Ａと、囲み線６６Ａと、描画６７および写真６８の一部分である部分オブジェクト６７Ａ、６８Ａの中から、１個の赤色オブジェクトが処理対象として選択される。
【００５９】
ステップＳ２１０では、オブジェクト判定部３３０は、処理対象の赤色オブジェクトが単色であるか否かを判定する単色判定処理を実行する。具体的には、オブジェクト判定部３３０は、赤色オブジェクトの平均成分値（Ｒave1、Ｇave1、Ｂave1）を算出する。平均成分値（Ｒave1、Ｇave1、Ｂave1）は、処理対象の赤色オブジェクトを構成する全ての赤色オブジェクト画素の値の平均値を、色成分ごとに算出することによって得られる。次に、オブジェクト判定部３３０は、平均成分値に近い成分値を有する赤色オブジェクト画素の割合（ＲＴ_R、ＲＴ_G、ＲＴ_B）を、以下の式（１）〜（３）を用いて、色成分ごとに算出する。
【００６０】
ＲＴ_R＝（ＰＮ_Rave1／ＰＮtotal）    ...（１）
ＲＴ_G＝（ＰＮ_Gave1／ＰＮtotal）    ...（２）
ＲＴ_B＝（ＰＮ_Bave1／ＰＮtotal）    ...（３）
【００６１】
ここで、ＰＮtotalは、処理対象の赤色オブジェクトを構成する赤色オブジェクト画素の全体の個数である。ＰＮ_Rave1、ＰＮ_Gave1、ＰＮ_Bave1は、平均成分値（Ｒave1、Ｇave1、Ｂave1）に近い成分値を有する赤色オブジェクト画素の個数であり、色成分ごとに算出される。なお、本実施例では、Ｒ成分値が、（Ｒave1−ΔＶ１）≦Ｒ≦（Ｒave1＋ΔＶ１）の範囲内である場合に、当該画素は、平均成分値に近いＲ成分値を有する画素であると判断される。同様に、Ｇ成分値が、（Ｇave1−ΔＶ１）≦Ｇ≦（Ｇave1＋ΔＶ１）の範囲内である場合に、当該画素は、平均成分値に近いＧ成分値を有する画素であると判断される。Ｂ成分値が、（Ｂave1−ΔＶ１）≦Ｂ≦（Ｂave1＋ΔＶ１）の範囲内である場合に、当該画素は、平均成分値に近いＧ成分値を有する画素であると判断される。なお、例えば、ΔＶ１は、２５６階調の成分値に対して、例えば、７０に設定される。
【００６２】
そして、オブジェクト判定部３３０は、成分ごとに算出された割合（ＲＴ_R、ＲＴ_G、ＲＴ_B）がそれぞれ基準値ＴＨ１以上である場合、すなわち、ＲＴ_R≧ＴＨ１、かつ、ＲＴ_G≧ＴＨ１、かつ、ＲＴ_B≧ＴＨ１である場合に、処理対象の赤色オブジェクトは単色であると判断する。また、オブジェクト判定部３３０は、割合（ＲＴ_R、ＲＴ_G、ＲＴ_B）の少なくとも１つが基準値ＴＨ１未満である場合、すなわち、ＲＴ_R＜ＴＨ１、または、ＲＴ_G＜ＴＨ１、または、ＲＴ_B＜ＴＨ１である場合に、処理対象の赤色オブジェクトは単色でないと判断する。基準値ＴＨ１は、実験的に設定される設計値であり、例えば、０．６に設定される。囲み線は、薄い赤色のペンで記入される場合もあれば、濃い赤色のペンで記入される場合もあるので、ステップＳ１２０（図２）では、薄い赤、濃い赤などを含む比較的広い範囲内の色を有する画素を赤色オブジェクト画素として抽出している。このために、本ステップでは、赤色オブジェクトが単色であるか否かを比較的厳密に判定している。
【００６３】
単色判定処理によって、処理対象の赤色オブジェクトが単色でないと判定された場合には（ステップＳ２１５：ＮＯ）、画像処理部３００は、処理対象の赤色オブジェクトは囲み線ではないと判断する（ステップＳ２４５）。１個の囲み線は、記入の途中でペンを代えることなく、一筆書きで記入されるのが一般的であるので、囲み線は単色であると考えられる。例えば、濃い赤色のペンを用いて、記入された囲み線は、濃い赤色の単色であり、薄い赤色のペンを用いて、記入された囲み線は、薄い赤色の単色であると考えられる。このために、本実施例では、単色であることを、赤色オブジェクトが囲み線であると判定するための必要条件として採用している。この結果、赤色オブジェクトが囲み線であるか否かを適切に判定することができる。例えば、図３（Ｂ）の囲み線６６Ａは、単色であると判定される。また、例えば、図３（Ｂ）の部分オブジェクト６７Ａが、薄い赤色や濃い赤色などを含む多数の色を含んでいる場合には、部分オブジェクト６７Ａは、単色ではないと判定される。
【００６４】
処理対象の赤色オブジェクトが単色であると判定された場合には（ステップＳ２１５：ＹＥＳ）、オブジェクト判定部３３０は、処理対象の赤色オブジェクトが線であるか否かを判定する線判定処理を実行する（ステップＳ２２０）。線判定処理は、赤色オブジェクトを含む処理領域内の所定の方向に延びる複数の直線上において、赤色オブジェクト画素の分布を解析する処理を用いて実行される。
【００６５】
図６は、線判定処理の説明図である。図６（Ａ）に示すように、二値画像６０Ａ内の囲み線６６Ａ（図３（Ｂ））が処理対象の赤色オブジェクトである場合を例に説明する。オブジェクト判定部３３０は、囲み線６６Ａに外接する矩形領域ＳＩ１を処理領域として特定する。オブジェクト判定部３３０は、矩形領域ＳＩ１内のＹ方向（図６の縦方向）に沿った線Ｌ１（ｐ）に沿って、連続する赤色オブジェクト画素の個数（連続画素数）を算出する。ｐは、Ｘ方向の線の位置を示す値であり、例えば、１≦ｐ≦Ｗの範囲内の値である（Ｗは、矩形領域ＳＩ１のＸ方向の長さ（画素数））。図６（Ａ）の例では、２つの連続画素数Ｌｈ１、Ｌｈ２が算出される。この場合には、線Ｌ１（ｐ）に対応する連続画素数ＬＮ１（ｐ）として、２つの連続画素数Ｌｈ１、Ｌｈ２の平均値（（Ｌｈ１＋Ｌｈ２）／２）を算出する。第１のオブジェクト特定部３２０は、１≦ｐ≦Ｗの範囲内のＷ本の線Ｌ１（ｐ）の全てについて、それぞれ連続画素数ＬＮ１（ｐ）を算出する。
【００６６】
さらに、オブジェクト判定部３３０は、矩形領域ＳＩ１内のＸ方向（図６の横方向）に沿った線Ｌ２（ｑ）に沿って、同様に、赤色オブジェクト画素の連続画素数を算出する。ｑは、線のＹ方向の線の位置（Ｙ座標）を示す値であり、例えば、１≦ｑ≦Ｈの範囲内の値である（Ｈは、矩形領域ＳＩ１のＹ方向の長さ（画素数））。図６（Ａ）の例では、２つの連続画素数Ｌｗ１、Ｌｗ２が算出される。この場合には、線Ｌ２（ｑ）に対応する連続画素数ＬＮ２（ｑ）として、２つの連続画素数ＬＷ１、ＬＷ２の平均値を算出する。第１のオブジェクト特定部３２０は、１≦ｑ≦Ｈの範囲内のＨ本の線Ｌ２（ｑ）の全てについて、それぞれ連続画素数ＬＮ２（ｑ）を算出する。
【００６７】
このように、Ｘ方向とＹ方向に延びる複数の直線上において、赤色オブジェクト画素が連続する個数を算出することによって、オブジェクトの幅（線幅ＬＷ）を特定するので、オブジェクトの幅を適切に特定することができる。
【００６８】
オブジェクト判定部３３０は、Ｗ本の線Ｌ１（ｐ）について算出されたＷ個の連続画素数ＬＮ１（ｐ）と、Ｈ本の線Ｌ２（ｑ）について算出されたＨ個の連続画素数ＬＮ２（ｑ）と、の全ての平均値を、赤色オブジェクトの平均連続画素数ＬＮaveとして算出する。平均連続画素数ＬＮaveは、赤色オブジェクトが線である場合の線の幅を示している。オブジェクト判定部３３０は、平均連続画素数ＬＮaveが基準値ＴＨ２以下である場合に、赤色オブジェクトは、線であると判定し、平均連続画素数ＬＮaveが基準値ＴＨ２未満である場合に、赤色オブジェクトは、線でないと判定する。基準値ＴＨ２は、例えば、想定されるペンの太さの最大値よりわずかに大きな値に設定され、具体的には、６００ｄｐｉのスキャンデータを対象画像データにする場合に、１２０程度に設定される。この結果、例えば、図３（Ｂ）の囲み線６６Ａは、線であると判定される。
【００６９】
図６（Ｂ）には、二値画像６０Ａ内の部分オブジェクト６８Ａ（図３（Ｂ））が処理対象の赤色オブジェクトである場合を例に説明する。このような赤色オブジェクトが線でない場合には、図６（Ｂ）に示すように、Ｙ方向の線Ｌ１（ｐ）についての連続画素数Ｌｈ３や、Ｘ方向の線Ｌ２（ｑ）についての連続画素数Ｌｗ３は、比較的大きくなる。この結果、部分オブジェクト６８Ａは、線判定処理において、線ではないと判定される。
【００７０】
線判定処理によって、処理対象の赤色オブジェクトが線でないと判定された場合には（ステップＳ２２５：ＮＯ）、画像処理部３００は、処理対象の赤色オブジェクトは囲み線ではないと判定する（ステップＳ２４５）。１個の囲み線は、赤色のペンで一筆書きされた一本の線であることが想定されるので、線であることを、赤色オブジェクトが囲み線であると判定するための必要条件として採用している。この結果、赤色オブジェクトが囲み線であるか否かを適切に判定することができる。
【００７１】
処理対象の赤色オブジェクトが線であると判定された場合には（ステップＳ２２５：ＹＥＳ）、オブジェクト判定部３３０は、処理対象の赤色オブジェクトが、スキャン画像６０内の一部の領域を囲む囲み形状を有しているか否かを判定する形状判定処理を実行する。
【００７２】
図７は、形状判定処理のフローチャートである。図８は、形状判定処理の第１の説明図である。図９は、形状判定処理の第２の説明図である。ステップＳ３０５では、オブジェクト判定部３３０は、赤色オブジェクトを構成する１個の赤色オブジェクト画素を注目画素として選択する。具体的には、オブジェクト判定部３３０は、矩形領域ＳＩ１（図８（Ａ））内を、Ｘ方向の複数本の線Ｌｘを、Ｙ方向の負方向側から（図８の上方から）順次に走査して、検出される順番に１個ずつ赤色オブジェクト画素を選択する。
【００７３】
ステップＳ３１０では、オブジェクト判定部３３０は、選択された注目画素に対応する枠領域ＦＬを設定する。図８（Ｂ）には、注目画素ＮＰに対して設定される枠領域ＦＬの一例が示されている。図８（Ｂ）に示すように、枠領域ＦＬは、正方形の枠状の領域であり、枠の太さは、１画素分である。枠領域ＦＬのＸ方向およびＹ方向の幅（画素数）ＦＷは、図８（Ｃ）に示す式で表される。この式から解るように、枠領域ＦＬの幅ＦＷは、スキャン画像６０の読み取り解像度ＲＳ（単位はｄｐｉ(dot per inch)）と、赤色オブジェクトの線幅ＬＷ（単位は、画素）と、赤色オブジェクトのサイズＯＢＳ（単位は、画素）と、に応じて決定される。線幅ＬＷには、例えば、線判定処理（図５のステップＳ２２０）にて算出された平均連続画素数ＬＮaveが用いられる。オブジェクトサイズＯＢＳには、例えば、矩形領域ＳＩ１の横幅Ｗと縦幅Ｈの平均値（（Ｈ＋Ｗ）／２）が用いられる。枠領域ＦＬは、本実施例では、注目画素ＮＰが中心に位置するように、設定される。
【００７４】
続くステップＳ３１５では、オブジェクト判定部３３０は、枠領域内のオブジェクト部分領域の個数Ｍｖを算出する。オブジェクト部分領域は、枠領域ＦＬ内に、赤色オブジェクト画素が連続して並ぶ領域である。図８（Ｂ）の例では、２個のオブジェクト部分領域ＯＡ１、ＯＡ２が存在するので、個数Ｍｖの値は「２」である。ここで、個数Ｍｖを算出するのは、赤色オブジェクトと、枠領域ＦＬとが、交差する数を認識するためである。図８（Ｂ）に示すように、個数Ｍｖは、処理対象の赤色オブジェクトが枠領域ＦＬと交差する数を示していることが解る。このために個数Ｍｖを交差数Ｍｖとも呼ぶ。交差数Ｍｖが２である場合には、赤色オブジェクトは、枠領域ＦＬが配置された矩形（枠配置矩形）内において、注目画素ＮＰの位置（本実施例では、枠配置矩形の中心）を通り、枠配置矩形を横断する一本の線を成していると推定することができる。なお、枠領域ＦＬ内に位置すると言う場合には、１画素の太さの枠の内部に位置することを意味する。すなわち、枠領域ＦＬ内に位置する画素は、枠領域ＦＬを構成する画素と言い換えることができる。例えば、図８（Ｂ）において、オブジェクト部分領域ＯＡ１、ＯＢ２は、枠領域ＦＬ内に位置しているが、注目画素ＮＰや、オブジェクト部分領域ＯＡ１とオブジェクト部分領域ＯＢ２との間の複数個の赤色オブジェクト画素は、枠領域ＦＬ内には位置していない。また、枠配置矩形内に位置すると言う場合には、枠領域ＦＬ内または枠領域ＦＬの内側の領域に位置していることを意味する。例えば、図８（Ｂ）において、オブジェクト部分領域ＯＡ１、ＯＢ２、注目画素ＮＰ、オブジェクト部分領域ＯＡ１とオブジェクト部分領域ＯＢ２との間の複数個の赤色オブジェクト画素は、全て枠配置矩形内に位置している。
【００７５】
例えば、図８（Ａ）に示す枠領域ＦＬ２は、交差数Ｍｖが２である例を示しているが、赤色オブジェクトは、枠配置矩形内において、枠配置矩形の中心を通り、枠配置矩形を横断する一本の線を成していることが解る。一方、図８（Ａ）に示す枠領域ＦＬ１は、交差数Ｍｖが１である例を示しているが、赤色オブジェクトは、枠配置矩形内で終端を形成しているので、中心を通る一本の線ではあるが、枠配置矩形を横断してはいない。
【００７６】
図７のステップＳ３２０では、オブジェクト判定部３３０は、全ての赤色オブジェクト画素が注目画素として選択されたか否かを判断する。未選択の赤色オブジェクト画素がある場合には（ステップＳ３２０：ＮＯ）、オブジェクト判定部３３０は、ステップＳ３０５に戻って、未選択の赤色オブジェクト画素を選択して、上述したステップＳ３０５〜Ｓ３２０までの処理を繰り返す。全ての赤色オブジェクト画素が選択された場合には（ステップＳ３２０：ＹＥＳ）、オブジェクト判定部３３０は、ステップＳ３２５に処理を進める。ステップＳ３２５に移行して時点で、処理対象の赤色オブジェクトを構成する全ての赤色オブジェクト画素に対応する枠領域ＦＬについて、交差数Ｍｖが算出されている。以下では、交差数Ｍｖが「Ａ（Ａは、０以上の整数）」である枠領域ＦＬに対応する赤色オブジェクト画素を、単に、交差数Ｍｖが「Ａ」の赤色オブジェクト画素と言う。また、赤色オブジェクト画素に対応する枠領域ＦＬと赤色オブジェクトとの交差数Ｍｖが「Ａ」であることを、単に、赤色オブジェクト画素の交差数Ｍｖが「Ａ」である、と言う。
【００７７】
ステップＳ３２５では、全ての赤色オブジェクト画素に対する、交差数Ｍｖが２である赤色オブジェクト画素の割合ＲＴ２を算出する。交差数Ｍｖが２である赤色オブジェクト画素を、第１の特定画素とも呼ぶ。ステップＳ３３０では、オブジェクト判定部３３０は、割合ＲＴ２が、基準値ＴＨａ以上であるか否かを判断する。オブジェクト判定部３３０は、割合ＲＴ２が、基準値ＴＨａ以上である場合には（ステップＳ３３０：ＹＥＳ）、赤色オブジェクトは、囲み形状であると判定する（ステップＳ３７０）。赤色オブジェクトが囲み形状である場合は、図８（Ａ）に示す枠領域ＦＬ２のように、大部分の赤色オブジェクト画素（注目画素）の交差数Ｍｖが２になると考えられる。例外的に、図８（Ａ）に示す枠領域ＦＬ１のように、一筆書きされた囲み線の端部近傍の赤色オブジェクト画素の交差数Ｍｖは、２にならない場合がある。また、ノイズなどによって、一部の赤色オブジェクト画素の交差数Ｍｖが２にならない可能性がある。このような事情を考慮して、基準値ＴＨａを適切に規定することによって、赤色オブジェクトが囲み形状であるか否かを適切に判定することができる。本実施例では、基準値ＴＨａは、０．８５に設定されている。
【００７８】
図９を参照してさらに説明する。図９（Ａ）には、赤色オブジェクトが、文字６３Ａ（図３（Ｂ））である例を示している。図９（Ａ）に示す枠領域ＦＬ４は、交差数Ｍｖが３である例を示しているが、赤色オブジェクトは、枠配置矩形内において、３つに分岐した形状を有していることが解る。また、図９（Ａ）に示す枠領域ＦＬ５のように、文字の端部近傍の赤色オブジェクト画素は、交差数Ｍｖが１になる可能性が高い。このように、赤色オブジェクトが文字である場合には、３つ以上に分岐した部分や、３個以上の端部を有する場合が多いので、交差数Ｍｖが２ではない赤色オブジェクト画素の割合が、赤色オブジェクトが囲み形状である場合と比較して高くなる。赤色の文字は、単色判定処理（図５：ステップＳ２１０）において、単色であると判定され、線判定処理（図５：ステップＳ２２０）において、線であると判定される可能性が比較的高い。しかしながら、形状判定処理では、赤色の文字は、囲み形状ではないと判断される。したがって、形状判定処理では、割合ＲＴ２を用いて判断することによって、囲み線ではない赤色オブジェクト（例えば、文字）は囲み形状ではないと判断し、囲み線である赤色オブジェクトは囲み形状であると、適切に判断することができる。
【００７９】
ここで、図８（Ｃ）の式に示すように、枠領域ＦＬの幅ＦＷは、解像度ＲＳが大きいほど大きく、赤色オブジェクトの線幅ＬＷが大きいほど大きく、オブジェクトサイズＯＢＳが大きいほど大きく、設定されている。この理由を説明する。枠領域ＦＬの幅ＦＷが、線幅ＬＷに対して過度に小さい場合には、例えば、極端な例では、枠領域ＦＬの枠配置矩形内の全体が、赤色オブジェクト画素で埋まり、分岐の数を示す交差数Ｍｖを適切に算出できない可能性がある。また、枠領域ＦＬの幅ＦＷが、オブジェクトサイズＯＢＳや線幅ＬＷに対して過度に大きい場合には、枠領域ＦＬの枠配置矩形内に、１個の赤色オブジェクトの互いに離れた複数の部分が配置される可能性が比較的高くなる。例えば、枠領域ＦＬの枠配置矩形内に、複数の線が配置される可能性が比較的高くなる。この結果、注目画素ＮＰを通る１個の部分の分岐の数を示す交差数Ｍｖを適切に算出できない可能性がある。なお、解像度ＲＳが高いほど、１画素に対応する原稿上の寸法（例えば、３００ｄｐｉである場合には、（１／３００）インチ）が小さくなるので、画素数で示される枠領域ＦＬの幅ＦＷの値は、解像度ＲＳが高いほど大きくされる。この結果、原稿上において想定される囲み線のサイズに応じた適切な枠領域ＦＬの幅ＦＷ（画素数）を決定することができる。
【００８０】
オブジェクト判定部３３０は、交差数Ｍｖが２である赤色オブジェクト画素の割合ＲＴ２が、基準値ＴＨａ未満である場合には（ステップＳ３３０：ＮＯ）、ステップＳ３４０に処理を進める。ここで、交差数Ｍｖが２である赤色オブジェクト画素の割合ＲＴ２が、基準値ＴＨａ未満である場合に、直ちに、赤色オブジェクトは、囲み形状でないと判定しない。これは、交差数Ｍｖが２である赤色オブジェクト画素の割合ＲＴ２が、比較的少ない場合であっても、所定の条件を満たす場合には、赤色オブジェクトが囲み線である可能性があるからである。
【００８１】
例えば、図８（Ａ）に示す囲み線６６Ａでは、上述したように、交差数Ｍｖが１である赤色オブジェクト画素が、一筆書きの囲み線６６Ａの開始端と、終了端の近傍に存在している。具体的には、一筆書きの囲み線の両端（開始端と終了端）が、完全に一致していない場合、例えば、両端が離れている場合（図８（Ａ））、両端の一方の端部が、囲み線の他方の端部とは異なる位置に接している場合（図９（Ｂ））、両端の近傍で、囲み線が交差している場合（図９（Ｃ））には、交差数Ｍｖが１である赤色オブジェクト画素が存在し得る。
【００８２】
また、図９（Ｂ）に示すように、両端の一方の端部が、囲み線の他方の端部とは異なる位置に接している囲み線６６Ｂでは、交差数Ｍｖが３である赤色オブジェクト画素（図９（Ｂ）の枠領域ＦＬ７参照）が存在し得る。さらに、図９（Ｃ）に示すように、両端の近傍で交差している囲み線６６Ｃでは、交差数Ｍｖが４である赤色オブジェクト画素（図９（Ｂ）の枠領域ＦＬ９参照）が存在し得る。さらに、ノイズの影響がある場合を除いて、赤色オブジェクトが、一筆書きの囲み線である場合には、交差数Ｍｖが５以上である赤色オブジェクト画素は、存在しない。ここで、交差数Ｍｖが、「１、３、４」のうちのいずれかである赤色オブジェクト画素を、第２の特定画素とも呼ぶ。また、交差数Ｍｖが、「５」以上である赤色オブジェクト画素を、第３の特定画素とも呼ぶ。以上の説明から解るように、第１の特定画素の割合ＲＴ２が基準値ＴＨａ未満であっても、第２の特定画素や第３の特定画素の分布状況が、上記の囲み線の特徴を備えていれば、赤色オブジェクトが囲み線である可能性は比較的高いと言うことができる。このことを考慮して、ステップＳ３４０以降の処理が実行される。
【００８３】
ステップＳ３４０では、オブジェクト判定部３３０は、全ての赤色オブジェクト画素に対する、交差数Ｍｖが５以上である赤色オブジェクト画素（第３の特定画素）の割合ＲＴ５を算出する。ステップＳ３５０では、オブジェクト判定部３３０は、第３の特定画素の割合ＲＴ５が、基準値ＴＨｂ以下であるか否かを判断する。オブジェクト判定部３３０は、第３の特定画素の割合ＲＴ５が、基準値ＴＨｂより大きい場合には（ステップＳ３５０：ＮＯ）、赤色オブジェクトは、囲み形状でないと判定する（ステップＳ３７５）。上述したように、赤色オブジェクトが、一筆書きの囲み線である場合には、第３の特定画素は、ノイズなどの例外的な要因で第３の特定画素であると判断される場合を除いて、基本的に存在しないからである。基準値ＴＨｂは、例えば、赤色オブジェクトが囲み線である場合に、ノイズによって発生し得る第３の特定画素の個数の上限値より僅かに大きな値に設定される。具体的には、本実施例では、基準値ＴＨｂは、０．１に設定されている。形状判定処理では、割合ＲＴ５を用いて判断することによって、囲み線でない赤色オブジェクトを、判定対象から適切に除外することができる。
【００８４】
第３の特定画素の割合ＲＴ５が、基準値ＴＨｂ以下である場合には（ステップＳ３５０：ＹＥＳ）、オブジェクト判定部３３０は、後述する判定に用いる特定領域ＥＳを設定する（ステップＳ３５５）。図１０は、特定領域ＥＳを用いる判定について説明する図である。オブジェクト判定部３３０は、交差数Ｍｖが、「１、３、４」のうちのいずれかである複数個の赤色オブジェクト画素（第２の特定画素）の位置（座標）に基づいて、複数個の第２の特定画素の重心ＧＣを算出する。上述したように、赤色オブジェクトが囲み線である場合には、第２の特定画素は、一筆書きの囲み線の両端の近傍に集中して存在する（図８（Ａ）、図９（Ｂ）（Ｃ））。したがって、図１０（Ａ）に示すように、赤色オブジェクトが囲み線である場合には、重心ＧＣは、一筆書きの囲み線の両端の近傍に位置する。
【００８５】
オブジェクト判定部３３０は、重心ＧＣを中心として、正方形の特定領域ＥＳを設定する。特定領域ＥＳのＸ方向およびＹ方向の幅（画素数）ＥＷは、図１０（Ｂ）に示す式で表される。この式から解るように、特定領域ＥＳの幅ＥＷは、枠領域ＦＬの幅ＦＷ（図８（Ｃ））と同様に、スキャン画像６０の読み取り解像度ＲＳと、赤色オブジェクトの線幅ＬＷと、画素）と、赤色オブジェクトのサイズＯＢＳと、に応じて決定される。
【００８６】
続くステップＳ３６０では、オブジェクト判定部３３０は、全ての第２の特定画素に対する、特定領域ＥＳ内に位置する第２の特定画素の割合ＲＴＣを算出する。ステップＳ３６５では、オブジェクト判定部３３０は、第２の特定画素の割合ＲＴＣが、基準値ＴＨｃ以上であるか否かを判断する。オブジェクト判定部３３０は、第２の特定画素の割合ＲＴＣが、基準値ＴＨｃより小さい場合には（ステップＳ３６５：ＮＯ）、赤色オブジェクトは、囲み形状でないと判定する（ステップＳ３７５）。上述したように、赤色オブジェクトが、一筆書きの囲み線である場合には、第２の特定画素は、赤色オブジェクトの一部分に集中する、すなわち、一筆書きの囲み線の両端近傍（すなわち、特定領域ＥＳ内）に集中する。一方、文字を構成する線の端部は、文字内の複数の箇所に分散して存在する。例えば、文字「Ｙ」（図９（Ａ）参照）の端部は、文字「Ｙ」の下側の中央部分に１箇所、文字の右上部分と左上部分にそれぞれ１箇所ずつ存在する。また、文字を構成する線は、文字内で様々な数に分岐し得る。例えば、文字「Ｙ」（図９（Ａ）参照）は、中央部分で３つに分岐している。したがって、赤色オブジェクトが文字である場合には、第２の特定画素は、赤色オブジェクトの一部分に集中することなく、分散する可能性が高い。形状判定処理では、割合ＲＴＣを用いて判断することによって、囲み線でない赤色オブジェクト（例えば、文字）は囲み形状ではないと判断し、囲み線を示す赤色オブジェクトは囲み形状であると、適切に判断することができる。基準値ＴＨｃは、例えば、実験的に設定される設計値であり、本実施例では、０.５に設定されている。
【００８７】
第２の特定画素の割合ＲＴｃが、基準値ＴＨｃ以上である場合には（ステップＳ３６５：ＹＥＳ）、オブジェクト判定部３３０は、赤色オブジェクトは、囲み形状であると判定する（ステップＳ３７０）。
【００８８】
ここで、図１０（Ｂ）の式に示すように、特定領域ＥＳの幅ＥＷは、枠領域ＦＬの幅ＦＷ（図８（Ｃ））と同様に、解像度ＲＳが大きいほど大きく、赤色オブジェクトの線幅ＬＷが大きいほど大きく、オブジェクトサイズＯＢＳが大きいほど大きく、設定されている。特定領域ＥＳの幅ＥＷが、オブジェクトサイズＯＢＳに対して過度に大きい場合には、第２の特定画素が比較的広い範囲に広がって分布している場合であっても、割合ＲＴＣが基準値ＴＨｃ以上になる可能性がある。また、特定領域ＥＳの幅ＥＷが、オブジェクトサイズＯＢＳに対して過度に小さい場合には、第２の特定画素が比較的狭い範囲に集中している場合であっても、割合ＲＴＣが基準値ＴＨｃ未満になる可能性がある。このため、特定領域ＥＳは、オブジェクトサイズＯＢＳに対して適切なサイズに設定されることが好ましい。赤色オブジェクトの線幅ＬＷは、オブジェクトのサイズと相関があり、赤色オブジェクトが囲み線である場合に、オブジェクトのサイズが大きいほど、線幅ＬＷが太くなる可能性が高いと考えられる。また、解像度ＲＳが高いほど、１画素に対応する原稿上の寸法（例えば、３００ｄｐｉである場合には、（１／３００）インチ）が小さくなるので、画素数で示される特定領域ＥＳの幅ＥＷの値は、解像度ＲＳが高いほど大きくされる。この結果、原稿上において想定される囲み線のサイズに応じた適切な特定領域ＥＳの幅ＦＷ（画素数）を決定することができる。
【００８９】
ステップＳ３７０またはステップＳ３７５において、処理対象の赤色オブジェクトが囲み形状であるか否かが判定されると、形状判定処理は終了される。以上説明した形状判定処理において、処理対象の赤色オブジェクトが囲み形状であると判定するための条件は、以下の３つである。
（１）第１の特定画素の割合ＲＴ２が基準値ＴＨａ以上であること（ステップＳ３３０）
（２）第３の特定画素の割合ＲＴ５が基準値ＴＨｂ未満であること（ステップＳ３５０）
（３）第２の特定画素の割合ＲＴＣが基準値ＴＨｃ以上であること（ステップＳ３６５）
【００９０】
上記実施例では、条件（１）が満たされる場合には、他の条件とは無関係に、赤色オブジェクトは囲み形状である、と判定される。また、条件（２）と条件（３）は、両方が満たされる場合に限り、条件（１）が満たされない場合であっても、赤色オブジェクトは囲み形状であると、判定される。このような条件（１）〜（３）の使い方は一例であり、これに限られない。例えば、基準値ＴＨａ、ＴＨｂ、ＴＨｃを大きめに設定するか小さめに設定するかなどに応じて、これらの条件（１）〜（３）の使い方は、変化し得る。例えば、条件（１）と条件（２）が満たされる場合と、条件（２）と条件（３）が満たされる場合と、の２つの場合には、赤色オブジェクトは囲み形状である、と判定され、それ以外の場合には、赤色オブジェクトは囲み形状でない、と判定されても良い。また、条件（１）〜（３）の全部が満たされる場合のみに、赤色オブジェクトは囲み形状である、と判定されても良い。また、条件（２）および（３）の一方または両方は、判定されなくても良く、条件（１）が満たされた場合に、赤色オブジェクトは囲み形状であると判定され、条件（１）が満たされない場合に、赤色オブジェクトは囲み形状でないと判定されても良い。
【００９１】
図５に戻って説明を続ける。形状判定処理によって、処理対象の赤色オブジェクトが囲み形状でないと判定された場合には（ステップＳ２３５：ＮＯ）、画像処理部３００は、処理対象の赤色オブジェクトは囲み線ではないと判断する（ステップＳ２４５）。一方、形状判定処理によって、処理対象の赤色オブジェクトが囲み形状であると判定された場合には（ステップＳ２３５：ＹＥＳ）、画像処理部３００は、処理対象の赤色オブジェクトは囲み線であると判断する（ステップＳ２４０）。すなわち、赤色オブジェクトが、単色であり（ステップＳ２１５：ＹＥＳ）、かつ、線であり（ステップＳ２２５：ＹＥＳ）、かつ、囲み形状である（ステップＳ２３５：ＹＥＳ）場合に、当該赤色オブジェクトは、囲み線であると判定される。そして、赤色オブジェクトが、単色でない（ステップＳ２１５：ＮＯ）、または、線でない（ステップＳ２２５：ＮＯ）、または、囲み形状でない（ステップＳ２３５：ＮＯ）場合に、当該赤色オブジェクトは、囲み線でないと判定される。図３（Ｂ）の例では、囲み線６６Ａのみが囲み線であると判定され、文字６１Ａ〜６３Ａ、部分オブジェクト６７Ａ、６８Ａは囲み線でないと判定される。
【００９２】
ステップＳ２５０では、画像処理部３００は、全ての赤色オブジェクトが選択済みであるか否かを判断する。未選択の赤色オブジェクトがある場合には（ステップＳ２５０：ＮＯ）、画像処理部３００は、ステップＳ２０５に戻って、未選択の赤色オブジェクトを選択して、上述したステップＳ２０５〜Ｓ２５０までの処理を繰り返す。全ての赤色オブジェクトが選択された場合には（ステップＳ２５０：ＹＥＳ）、画像処理部３００は、オブジェクト判定処理を終了する。
【００９３】
オブジェクト判定処理が終了すると、続くステップＳ１５０（図２）では、特定された囲み線（囲み線であると判定された赤色オブジェクト）の中から、１個の囲み線を処理対象として選択する。図３の例では、１個の囲み線６６Ａ（図３（Ｂ））のみが特定されているので、当該囲み線６６Ａが選択される。
【００９４】
ステップＳ１５５では、内包関係判定部３５０の第２のオブジェクト特定部３５１は、除去対象のオブジェクトを含む部分画像データを生成する。具体的には、第２のオブジェクト特定部３５１は、二値画像６０Ａにおいて、処理対象の囲み線６６に外接する外接矩形ＯＳ１（図３（Ｂ））を特定する。第２のオブジェクト特定部３５１は、当該外接矩形ＯＳ１に対応する部分画像ＰＳＩ（図３（Ａ））を、スキャン画像６０から切り出すことによって、部分画像ＰＳＩを表す部分画像データを生成する。
【００９５】
図１１は、部分画像ＰＳＩの一例（図１１（Ａ））と、部分二値画像の一例（図１１（Ｂ）（Ｃ））を示す図である。図１１に示すように、部分画像ＰＳＩは、囲み線６６と、描画６５を、オブジェクトとして含んでいる。
【００９６】
ステップＳ１６０では、第２のオブジェクト特定部３５１は、部分画像ＰＳＩ内のオブジェクトを特定するために、部分画像データに対して二値化処理を実行して、部分二値画像データを生成する。具体的には、部分画像データは、背景を構成する背景画素と、オブジェクトを構成するオブジェクト画素と、に二値化される。例えば、第２のオブジェクト特定部３５１は、例えば、囲み線６６の近傍に位置する複数個の画素、例えば、囲み線６６の外側に位置する複数個の画素であって、囲み線６６に沿って配置された複数個の画素の値の平均値（Ｒave2、Ｇave2、Ｂave2）を、二値化のための基準の色として算出する。あるいは、第２のオブジェクト特定部３５１は、スキャン画像６０において、部分画像ＰＳＩの外側に位置する複数個の画素であって、部分画像ＰＳＩの外縁に沿って配置された複数個の画素の値の平均値（Ｒave2、Ｇave2、Ｂave2）を二値化のための基準の色として算出する。そして、第２のオブジェクト特定部３５１は、（Ｒave2−ΔＶ２）≦Ｒ≦（Ｒave2＋ΔＶ２）、かつ、（Ｇave2−ΔＶ２）≦Ｇ≦（Ｇave2＋ΔＶ２）、かつ、（Ｂave2−ΔＶ２）≦Ｂ≦（Ｂave2＋ΔＶ２）を満たす画素値（ＲＧＢ値）を有する画素を背景画素に分類し、背景画素と決定すべき画素以外の画素をオブジェクト画素に分類する。第２のオブジェクト特定部３５１は、部分画像ＰＳＩに含まれる全ての画素を、背景画素とオブジェクト画素とのいずれかに分類することによって、部分二値画像データを生成する。
【００９７】
ステップＳ１６５では、第２のオブジェクト特定部３５１は、生成された部分二値画像データを用いて、オブジェクトを特定して、特定されたオブジェクトに識別子を付すラベリングを実行する。ラベリングの結果、例えば、オブジェクトと、識別子とを、対応付けたラベルデータが生成される。
【００９８】
具体的には、第２のオブジェクト特定部３５１は、連続する（互いに隣接する）１個以上のオブジェクト画素で構成される１個の領域を、１個のオブジェクトとして特定する。図１１（Ｂ）の例では、部分二値画像ＰＢＩ１において、オブジェクト画素によって構成されるオブジェクトとして、囲み線６６Ｄと、描画６５Ｄとが、が特定され、これらのオブジェクトのそれぞれに、互いに異なる識別子が付される。なお、部分二値画像ＰＢＩ内に特定されるオブジェクトには、ステップＳ１５０で選択された処理対象の囲み線が含まれる。囲み線を表すオブジェクトには、例えば、囲み線であることが認識できるように、他のオブジェクトとは異なる特別な識別子が付される。
【００９９】
オブジェクトが特定されると、続くステップＳ１７０では、内包関係判定部３５０は、部分二値画像ＰＢＩに含まれる囲み線以外のオブジェクトが、囲み線に内包されているか否かを判定する内包関係判定処理を実行する。
【０１００】
図１２は、内包関係判定処理のフローチャートである。ステップＳ４０５では、内包関係判定部３５０は、部分二値画像ＰＢＩ１内に特定されたオブジェクトの中から囲み線以外のオブジェクトを処理対象として選択する。図１１（Ｂ）の例では、描画６５Ｄが、処理対象のオブジェクト（対象オブジェクト）として選択される。ここで、内包関係判定処理を説明するために、図３（Ａ）に示すスキャン画像６０とは、無関係の別の部分二値画像ＰＢＩ２（図１１（Ｃ））を、部分二値画像ＰＢＩ１（図１１（Ｂ））とともに、説明のための例として参照する。以下、図１１（Ｂ）の部分二値画像ＰＢＩ１を第１の二値画像ＰＢＩ１とも呼び、図１１（Ｃ）の部分二値画像ＰＢＩを第２の二値画像ＰＢＩ２とも呼ぶ。第２の二値画像ＰＢＩ２は、波状に曲がった比較的太い線状の形状を有する描画ＯＢと、オブジェクトＯＢに沿って、オブジェクトＯＢを囲む囲み線ＳＬ１とが、オブジェクトとして含んでいる。第２の二値画像ＰＢＩ２の例では、描画ＯＢが対象オブジェクトとして選択される。
【０１０１】
ステップＳ４１０では、内包関係判定部３５０の交点数判断部３５２は、処理対象のオブジェクトの重心ＣＣを算出する。重心ＣＣのＸ座標は、対象オブジェクトを構成する全てのオブジェクト画素のＸ座標の平均値であり、重心ＣＣのＹ座標は、対象オブジェクトを構成する全てのオブジェクト画素のＹ座標の平均値である。図１１（Ｂ）、図１１（Ｃ）には、それぞれ、第１の二値画像ＰＢＩ１の対象オブジェクト（描画６５Ｄ）の重心ＣＣ１と、第２の二値画像ＰＢＩ２の対象オブジェクト（描画ＯＢ）の重心ＣＣ２とが図示されている。
【０１０２】
ステップＳ４１５では、交点数判断部３５２は、算出された重心ＣＣの位置に対象オブジェクトを構成するオブジェクト画素が存在するか否かを判断する。対象オブジェクトの形状によって、重心ＣＣにオブジェクト画素が存在する場合と存在しない場合がある。図１１（Ｂ）の例では、第１の二値画像ＰＢＩ１の対象オブジェクトの重心ＣＣ１は、対象オブジェクトである描画６５Ｄ内に位置しており、当該重心ＣＣ１には、オブジェクト画素が存在していることが解る。一方、図１１（Ｃ）の例では、第２の二値画像ＰＢＩ２のの対象オブジェクトの重心ＣＣ２は、対象オブジェクトである描画ＯＢ内に位置しておらず、当該重心ＣＣ２には、オブジェクト画素が存在しないことが解る。
【０１０３】
対象オブジェクトの重心ＣＣにオブジェクト画素が存在する場合には（ステップＳ４１５：ＹＥＳ）、交点数判断部３５２は、対象オブジェクトの重心ＣＣに位置するオブジェクト画素（重心画素とも呼ぶ）を、後述する判定線を設定するための基点に設定する（ステップＳ４２５）。この場合には、設定される基点の個数は、１個である。図１１（Ｂ）の例では、第１の二値画像ＰＢＩ１の対象オブジェクトの重心ＣＣ１に位置する重心画素が基点に設定される。
【０１０４】
対象オブジェクトの重心ＣＣにオブジェクト画素が存在しない場合には（ステップＳ４１５：ＮＯ）、交点数判断部３５２は、対象オブジェクトの上端に位置するオブジェクト画素（上端画素とも呼ぶ）と、下端に位置するオブジェクト画素（下端画素とも呼ぶ）と、を基点に設定する（ステップＳ４２０）。この場合には、設定される基点の個数は、２個である。例えば、図１１（Ｃ）に示すように、処理対象の部分二値画像の上端から下端に向かう方向を＋Ｙ方向とする座標系が採用されている場合には、上端画素は、対象オブジェクトを構成する全ての画素のうち、Ｙ座標が最小の画素であり、下端画素は、Ｙ座標が最大の画素である。図１１（Ｃ）の例では、第２の二値画像ＰＢＩ２において、基点に設定される上端画素の位置ＵＰと、下端画素の位置ＢＰと、が図示されている。なお、上端画素と下端画素に代えて、右端画素と左端画素とが採用されても良い。例えば、右端画素は、Ｘ座標が最大の画素であり、左端画素は、Ｘ座標が最小の画素である。
【０１０５】
基点が設定されると、ステップＳ４３０では、交点数判断部３５２は、処理対象の基点を選択する。図１１（Ｂ）の例では、重心画素が、処理対象の基点として選択され、図１１（Ｃ）の例では、上端画素と下端画素のうちの１つの画素が、処理対象の基点として選択される。
【０１０６】
ステップＳ４４０では、交点数判断部３５２は、交点数特定処理を実行する。交点数特定処理は、処理対象の基点を用いて、選択された画素を基点とする４本の判定線のそれぞれと、囲み線と、の交点の個数（交点数Ｍｘと呼ぶ）を、判定線ごとに特定（算出）する処理である。
【０１０７】
図１３は、交点数特定処理のフローチャートである。図１４は、交点数特定処理の説明図である。図１３のステップＳ５０５では、交点数判断部３５２は、４個の検出方向の中から１個の検出方向を選択する。４個の検出方向は、上方向（−Ｙ方向）、下方向（＋Ｙ方向）、左方向（−Ｘ方向）、右方向（＋Ｘ方向）である。これらの４個の検出方向から１個の検出方向が、本ステップにて１個ずつ選択される。
【０１０８】
ステップＳ５１０では、交点数判断部３５２は、カウント値Ｃｖを初期化する（ゼロにする）。ステップＳ５１５では、交点数判断部３５２の検出部３５３は、選択された検出方向の判定線と、囲み線との共有点を検出する。具体的に説明すると、図１２のステップＳ４３０にて選択される処理対象の１個の基点と、ステップＳ５０５で選択される１個の検出方向とによって、１本の判定線が定義できる。したがって、図１１（Ｂ）の例では、第１の二値画像ＰＢＩ１の対象オブジェクトの重心画素（重心ＣＣ１）と、４個の検出方向と、によって、重心ＣＣ１から４個の検出方向にそれぞれ延びる４本の半直線Ａ１〜Ａ４が、判定線として定義できる。また、図１１（Ｃ）の例では、上端画素（位置ＵＰの画素）から４個の検出方向にそれぞれ延びる４本の半直線Ａ１１〜Ａ１４と、下端画素（位置ＢＰの画素）から４個の検出方向にそれぞれ延びる４本の半直線Ａ２１〜Ａ２４と、が判定線として定義できる。換言すれば、４本の判定線を１組とすると、１個の基点毎に１組の判定線が定義できる。
【０１０９】
ここで、ステップＳ５１５の処理について、図１１（Ｂ）において、重心ＣＣ１から右方向に伸びる判定線Ａ４と、囲み線６６Ｄと、の共有点を検出する場合を例に、説明する。図１４（Ａ）には、判定線Ａ４と、囲み線６６Ｄと、の交点ＣＰ４の近傍の拡大図が示されている。検出部３５３は、重心ＣＣ１の画素から右方向に向かって第１の二値画像ＰＢＩ１の外縁の画素に至るまで、判定線Ａ４上の複数個の画素を１個ずつ走査していく。検出部３５３は、走査の途中に、判定線Ａ４上にオブジェクト画素を検出すると、検出されたオブジェクト画素を含み、判定線Ａ４上に連続する１個以上のオブジェクト画素を、１個の共有点として検出する。例えば、図１４（Ａ）の例では、判定線Ａ４と、囲み線６６Ｄと、の交点ＣＰ４が、共有点として検出される。なお、判定線とオブジェクトとは、共有点において交差する場合（すなわち、交点を有する場合）と、共有点において接する場合（すなわち、接点を有する場合）と、を含む。この時点では、検出された共有点が、交点であるか接点であるかは検出されていない。検出部３５３は、判定線Ａ４の例では、１個の共有点のみを検出するが、判定線上に複数個の共有点を検出する場合もあれば、１個の共有点も検出しない場合もある。
【０１１０】
続くステップＳ５２０では、交点数判断部３５２は、直前のステップＳ５１５にて１個以上の共有点が検出されたか否かを判断する。１個の共有点も検出されていない場合には（ステップＳ５２０：ＮＯ）、交点数判断部３５２は、ステップＳ５６０に処理を移行する。１個以上の共有点が検出された場合には（ステップＳ５２０：ＹＥＳ）、交点数判断部３５２は、検出された１個以上の共有点の中から、処理対象の１個の共有点を選択する（ステップＳ５２５）。
【０１１１】
ステップＳ５３０では、検出部３５３は、処理対象の共有点を中心とする判定領域ＪＡを設定する（図１４（Ａ））。具体的には、検出部３５３は、判定領域ＪＡの幅ＪＷ（単位は、画素）を、処理対象の共有点を含む囲み線の線幅ＬＷに基づいて決定する。具体的には、判定領域ＪＡの幅ＪＷは、下記の式（４）を用いて決定される。
ＪＷ＝（ＬＷ×５）＋１    ...（４）
【０１１２】
囲み線の線幅ＬＷには、共有点を含む囲み線について実行された線判定処理（図５のステップＳ２２０、図６）において算出された値が用いられる。ここで、囲み線の線幅ＬＷとして、処理対象の共有点を構成するオブジェクト画素が判定線上に連続する画素数、例えば、図１４（Ａ）の例では、判定線Ａ４と囲み線６６Ｄとの共有点（交点）ＣＰ４の画素数が用いられても良い。
【０１１３】
ステップＳ５３５では、検出部３５３は、判定領域ＪＡの外縁と、共有点を含む囲み線と、の交点を検出する。ここで、判定領域ＪＡの外縁は、判定線によって分断された２個の外縁部に区分することができる。例えば、図１４（Ａ）に示す判定線Ａ４のように、横方向（Ｘ方向）と平行な判定線の場合には、判定領域ＪＡの外縁は、上側外縁部ＵＡと、下側外縁部ＢＡと、に区分できる。検出部３５３は、判定領域ＪＡの外縁と、共有点を含む囲み線と、の交点が、上側外縁部ＵＡと下側外縁部ＢＡとのうちのどちらの外縁部との交点であるかを、併せて検出する。囲み線は、一筆書きされた１本の線であるので、判定領域ＪＡの外縁と、共有点を含む囲み線と、の間には、２個の交点が検出される。本ステップで検出される２個の交点を、第１交点ＸＰ１と第２交点ＸＰ２とする（図１４（Ａ））。
【０１１４】
ここで、上記式（４）に示すように、判定領域ＪＡの幅ＪＷが、囲み線の線幅ＬＷに応じて決定されている、具体的には、線幅ＬＷが大きいほど、大きな値に設定される。この理由を説明する。判定領域ＪＡの幅ＪＷが、線幅ＬＷに対して過度に小さい場合には、例えば、極端な例では、判定領域ＪＡ内の全体が、囲み線を構成するオブジェクト画素で埋まる場合がある。この場合には、第１交点ＸＰ１や第２交点ＸＰ２を分離して検出できな可能性や、第１交点ＸＰ１や第２交点ＸＰ２が、上側外縁部ＵＡと下側外縁部ＢＡとのうちのどちらの外縁部と交差する点であるかを特定できない可能性がある。また、判定領域ＪＡの幅ＪＷが、線幅ＬＷに対して過度に大きい場合には、判定領域ＪＡ内を囲み線が複数回に亘って横切る可能性や、囲み線が、判定領域ＪＡ内において判定線を複数回に亘って横切る可能性がある。いずれの場合も特定の共有点が交点であるか接点であるかを適切に判定できない可能性が高くなる。本実施例例では、上記式（４）に示すように、判定領域ＪＡの幅ＪＷを、囲み線の線幅ＬＷに応じた適切な値に決定することにより、共有点が交点であるか接点であるかを適切に判定することができる。
【０１１５】
ステップＳ５４５では、検出部３５３は、交差条件が満たされるか否かを判断する。交差条件は、図１４（Ａ）に示すように、第１交点ＸＰ１と第２交点ＸＰ２とのうちの一方の交点が、上側外縁部ＵＡとの交点であり、かつ、第１交点ＸＰ１と第２交点ＸＰ２とのうちの他方の交点が、下側外縁部ＢＡとの交点であることである。図１４（Ａ）に示す例では、囲み線６６Ｄと判定線Ａ４とは、共有点ＣＰ４において交差しているので、共有点ＣＰ４は、交点である。図１４（Ａ）の例では、第１交点ＸＰ１が上側外縁部ＵＡとの交点であり、第２交点ＸＰ２が下側外縁部ＢＡとの交点であるので、上述した交差条件が満たされていることが解る。
【０１１６】
一方、第１交点ＸＰ１と第２交点ＸＰ２との両方が、下側外縁部ＢＡとの交点である場合、または、第１交点ＸＰ１と第２交点ＸＰ２との両方が、上側外縁部ＵＡとの交点である場合には、交差条件は満たされない。図１４（Ｂ）を参照して、交差条件が満たされない場合について説明する。図１４（Ｂ）に示すように、仮に、判定線Ａ４が、図１４（Ｂ）に示す囲み線ＯＢａとの間に、共有点ＣＰａを有しているとする。図１４（Ｂ）に示す例では、囲み線ＯＢａと判定線Ａ４とは、共有点ＣＰａにおいて接しているので、共有点ＣＰ４は、接点である。図１４（Ｂ）の例では、第１交点ＸＰ１と第２交点ＸＰ２との両方が、下側外縁部ＢＡとの交点であるので、上述した交差条件が満たされていないことが解る。
【０１１７】
ここで、判定線が、縦方向（Ｙ方向）と平行である場合について、簡単に説明する。図１４（Ｃ）には、縦方向と平行である判定線Ａ１（図１１（Ｂ））と、囲み線６６Ｄと、の交点ＣＰ１の近傍の拡大図が示されている。この場合は、判定領域ＪＡの外縁は、判定線Ａ１によって分断された左側外縁部ＬＡと、右側外縁部ＲＡと、に区分できる。そして、交差条件は、図１４（Ｃ）に示すように、第１交点ＸＰ１と第２交点ＸＰ２とのうちの一方の交点が、左側外縁部ＬＡとの交点であり、かつ、第１交点ＸＰ１と第２交点ＸＰ２とのうちの他方の交点が、右側外縁部ＲＡとの交点であることである。
【０１１８】
以上説明した交差条件を用いて、処理対象の共有点が交点であるか接点であるかを適切に判断することができる。
【０１１９】
交差条件が満たされる場合には（ステップＳ５４０：ＹＥＳ）、すなわち、処理対象の共有点が交点であると判断される場合には、交点数判断部３５２は、カウント値Ｃｖに１を加算する（ステップＳ５４５）。一方、交差条件が満たされない場合には（ステップＳ５４０：ＮＯ）、すなわち、処理対象の共有点が接点であると判断される場合には、交点数判断部３５２は、カウント値Ｃｖに２を加算する（ステップＳ５５０）。ここで、共有点が接点であると判断される場合には、カウント値Ｃｖに２を加算する理由については、具体例を示しながら後述する。
【０１２０】
カウント値Ｃｖが加算されると、ステップＳ５５５では、交点数判断部３５２は、検出された全ての共有点が処理対象として選択済みであるか否かを判断する。未選択の共有点がある場合には（ステップＳ５５５：ＮＯ）、交点数判断部３５２は、ステップＳ５２５に戻って、未選択の共有点を選択して、上述したステップＳ５２５〜Ｓ５５５までの処理を繰り返す。全ての共有点が選択された場合には（ステップＳ５５５：ＹＥＳ）、交点数判断部３５２は、カウント値Ｃｖを、処理対象の判定線の交点数Ｍｘとして記憶する（ステップＳ５６０）。
【０１２１】
ステップＳ５６５では、交点数判断部３５２は、ステップＳ５０５にて４個の検出方向の全てが選択済みであるか否かを判断する。未選択の検出方向がある場合には（ステップＳ５６５：ＮＯ）、交点数判断部３５２は、ステップＳ５０５に戻って、未選択の検出方向を選択して、上述したステップＳ５０５〜Ｓ５６５までの処理を繰り返す。全ての検出方向が選択された場合には（ステップＳ５６５：ＹＥＳ）、交点数判断部３５２は、交点数特定処理を終了する。１回の交点数特定処理によって、１個の基点に基づく１組の判定線（４本の判定線）について、それぞれ、交点数が特定される。
【０１２２】
図１１（Ｂ）の例では、重心ＣＣ１に位置する重心画素を基点とする４本の判定線Ａ１〜Ａ４のそれぞれと、囲み線６６Ｄとは、１個ずつの交点ＣＰ１〜ＣＰ４を有するので、４本の判定線Ａ１〜Ａ４の交点数Ｍｘは、それぞれ、「１」に特定される。また、図１１（Ｃ）の例であって、処理対象の基点として、図１２のステップＳ４３０で、位置ＵＰの上端画素が選択された場合には、上端画素を基点とする４本の判定線Ａ１１〜Ａ１４のそれぞれと、囲み線ＳＬ１とは、１個ずつの交点ＣＰ１１〜ＣＰ１４を有するので、４本の判定線Ａ１１〜Ａ１４の交点数Ｍｘは、それぞれ、「１」に特定される。また、図１１（Ｃ）の例では、位置ＢＰの下端画素を基点とする４本の判定線Ａ２１〜Ａ２４のうち、３本の判定線Ａ２１、Ａ２２、Ａ２４のそれぞれと、囲み線ＳＬ１とは、１個ずつの交点ＣＰ２１、ＣＰ２２、ＣＰ２５を有し、１本の判定線Ａ２３と、囲み線ＳＬ１とは、２個の交点ＣＰ２３、ＣＰ２４を有する。したがって、図１２のステップＳ４３０で、下端画素が選択された場合には、３本の判定線Ａ２１、Ａ２２、Ａ２４のそれぞれの交点数Ｍｘは、それぞれ、「１」に特定され、判定線Ａ２３の交点数Ｍｘは、「２」に特定される。
【０１２３】
交点数特定処理が終了すると、図１２のステップＳ４４５では、交点数判断部３５２は、交点数Ｍｘが奇数であるか否かを判定線ごとに判断し、１組の判定線（４本の判定線）のうち、交点数Ｍｘが奇数である判定線（以下、奇数判定線と呼ぶ）の数ＬＩｎを特定する。図１１（Ｂ）の例では、４本の判定線Ａ１〜Ａ４の交点数Ｍｘは、全て「１」であるので、奇数判定線の数ＬＩｎは「４」である。同様に、図１１（Ｃ）の例であって、処理対象の基点として、図１２のステップＳ４３０で、位置ＵＰの上端画素が選択された場合には、奇数判定線の数ＬＩｎは「４」である。そして、処理対象の基点として、図１２のステップＳ４３０で、位置ＢＰの下端画素が選択された場合には、奇数判定線の数ＬＩｎは「３」である。なお、４本の判定線の交点数ＭｘをそれぞれＭｘ(1)〜Ｍｘ(2)とすると、ＬＩｎは、以下の式を用いて算出することができる。
ＬＩｎ＝｛Ｍｘ(1)％２｝＋｛Ｍｘ(2)％２｝＋｛Ｍｘ(3)％２｝＋｛Ｍｘ(4)％２｝
ここで、｛Ｍｘ(n)％２｝(nは１以上４以下の整数)は、Ｍｘ(n)を２で除した場合の余りを示している。
【０１２４】
ステップＳ４５０では、内包関係判定部３５０の条件判断部３５４は、奇数判定線の数ＬＩｎが３以上であるか否かを判断する。奇数判定線の数ＬＩｎが３以上である場合には（ステップＳ４５０：ＹＥＳ）、条件判断部３５４は、対象オブジェクトは、囲み線に内包されていると判定する（ステップＳ４６０）。上述した図１１（Ｂ）、（Ｃ）の例では、いずれも奇数判定線の数ＬＩｎは３以上であるので、対象オブジェクトは、囲み線に内包されていると判定される。
【０１２５】
奇数判定線の数ＬＩｎが３未満である場合には（ステップＳ４５０：ＮＯ）、内包関係判定部３５０は、全ての基点をステップＳ４３０で選択済みであるか否かを判断する（ステップＳ４５５）。未選択の基点がある場合には（ステップＳ４５５：ＮＯ）、内包関係判定部３５０は、ステップＳ４３０に戻って、未選択の基点を選択して、上述した処理を繰り返す。全ての基点が選択済みである場合（ステップＳ４５５：ＹＥＳ）、条件判断部３５４は、対象オブジェクトは、囲み線に内包されていないと判定する（ステップＳ４６５）。
【０１２６】
対象オブジェクトの重心ＣＣにオブジェクト画素が存在する場合には、設定される基点は１個である（ステップＳ４１５）ので、奇数判定線の数ＬＩｎが３未満である場合には（ステップＳ４５０：ＮＯ）、必ずステップＳ４６５に処理が移行される。また、対象オブジェクトの重心ＣＣにオブジェクト画素が存在する場合には、設定される基点は２個である。したがって、最初に選択された基点に基づく処理において、奇数判定線の数ＬＩｎが３未満である場合には（ステップＳ４５０：ＮＯ）、ステップＳ４３０に戻って、もう１個の基点に基づく処理が実行される。そして、２個目の基点に基づく処理において、再び奇数判定線の数ＬＩｎが３未満である場合には（ステップＳ４５０：ＮＯ）、ステップＳ４６５に処理が移行される。
【０１２７】
対象オブジェクトが囲み線に内包されているか否かが判定されると、続くステップＳ４７０では、内包関係判定部３５０は、囲み線以外の全てのオブジェクトが対象オブジェクトとして選択済みであるか否かを判断する。未選択の対象オブジェクトがある場合には（ステップＳ４７０：ＮＯ）、内包関係判定部３５０は、ステップＳ４０５に戻って、未選択のオブジェクトを選択して、上述した処理を繰り返す。全てのオブジェクトが選択済みである場合（ステップＳ４７０：ＹＥＳ）、内包関係判定部３５０は、内包関係判定処理を終了する。図１１（Ｂ）（Ｃ）の例では、囲み線以外のオブジェクトは１個であるが、後述する具体例のように、囲み線以外のオブジェクトが複数個存在する場合には、それぞれのオブジェクトと囲み線との内包関係が判定される。
【０１２８】
内包関係判定処理が終了すると、続くステップＳ１７５（図２）では、除去処理部３６０は、囲み線６６と、囲み線６６に内包されていると判定されたオブジェクトとを、スキャン画像６０（図３（Ａ））から除去するオブジェクト除去処理を実行する。除去処理部３６０は、部分二値画像ＰＢＩ（図１１（Ｂ））に基づいて、スキャン画像６０上において、囲み線６６と、囲み線６６に内包されているオブジェクト（描画６５）と、を構成する複数個の画素を特定する。除去処理部３６０は、特定された複数個の画素の画素値を、スキャン画像６０の背景の色を表す画素値に変更する。背景の色を表す画素値は、例えば、原稿の用紙の色（例えば、白）を表す画素値であり、ステップＳ１６０（図２）にて算出された二値化のための基準の色を表す画素値（Ｒave2、Ｇave2、Ｂave2）が用いられる。これによって、スキャン画像６０から、囲み線６６と描画６５とが除去された処理済み画像６０Ｃ（図３（Ｃ））を表す処理済みの画像データが生成される。
【０１２９】
ステップＳ１８０では、画像処理部３００は、全ての囲み線が選択済みであるか否かを判断する。未選択の囲み線がある場合には（ステップＳ１８０：ＮＯ）、画像処理部３００は、ステップＳ１５０に戻って、未選択の囲み線を選択して、上述したステップＳ１５０〜Ｓ１８０までの処理を繰り返す。全ての囲み線が選択された場合には（ステップＳ１８０：ＹＥＳ）、画像処理部３００は、処理済みの画像データを、スキャンデータ（対象画像データ）の送信元である複合機２００に対して送信して（ステップＳ１８５）、処理を終了する。
【０１３０】
複合機２００の画像データ送受信部１１５は、サーバ４００から処理済みの画像データを受信すると、例えば、当該画像データを、不揮発性記憶装置２３０に格納して処理を終了する。この処理済みの画像データは、例えば、プリンタ部２４０を用いて、処理済みの画像データによって表される画像を用紙に印刷するために用いられる。
【０１３１】
以上説明した本実施例の画像処理によれば、利用者は、所望のオブジェクトを赤色のペンで記入した囲み線で囲んだ原稿を、複合機２００のスキャナ部２５０に読み取らせることによって、原稿から所望のオブジェクトが除去された画像を表す画像データを取得することができる。なお、囲み線は、除去すべきオブジェクトの指定以外にも用いられ得る。例えば、画像処理部３００は、オブジェクト除去処理（ステップＳ１７５）に代えて、囲み線で囲まれたオブジェクトを表す画像だけ含み、囲み線で囲まれていないオブジェクトを除去した画像を表す画像データを生成する処理を実行しても良い。一般的に言えば、囲み線によって囲まれたオブジェクトを特定し、特定されたオブジェクトを含む部分画像を表す部分画像データを用いて、所定の画像処理を実行するために、囲み線は用いられ得る。
【０１３２】
以上説明した本実施例の内包関係判定処理によれば、１組の判定線、すなわち、４本の判定線のうち、囲み線との交点が奇数である線の数（奇数判定線の数ＬＩｎ）が、３以上あるか否かに基づいて、対象オブジェクトが囲み線に内包されているか否かを適切に判断することができる。
【０１３３】
図１１（Ｂ）の第１の二値画像ＰＢＩ１を例に、先ず、判定線と囲み線との交点が偶数か奇数かに基づいて、対象オブジェクトと囲み線との内包関係が判定できる理由を説明する。囲み線６６Ｄが閉曲線であり、判定線の終点（例えば、部分二値画像ＰＢＩの画像の端）は、閉曲線の外側にあると仮定する。判定線の基点から終点に向かって走査する場合に、囲み線６６Ｄとの交点を通過する度に、判定線上の注目画素（走査位置）の内外関係が変化する。内外関係が変化するとは、注目画素の位置が、囲み線６６Ｄの内側から外側に変化する、あるいは、囲み線６６Ｄの外側から内側に変化することを意味する。したがって、判定線の基点が囲み線６６Ｄの内側に位置する場合には、判定線の基点から終点までの間の交点数Ｍｘは、終点が必ず囲み線６６Ｄの外側に位置することを考慮すると、奇数になることが解る。
【０１３４】
逆に、判定線の基点が囲み線６６Ｄの外側に位置する場合には、判定線の基点から終点までの間の交点数Ｍｘは、偶数になることが解る。例えば、仮に、囲み線６６Ｄの外側に位置するサンプル点ＳＰ１（図１１（Ｂ））から上下左右方向にそれぞれ延びる４本の判定線Ａ５〜Ａ８を考える。２本の判定線Ａ５、Ａ７は、それぞれ囲み線６６Ｄとの間に、２個の交点を有する（図１１（Ｂ）のＣＰ５〜ＣＰ８）。一方、他の２本の判定線Ａ６、Ａ８は、いずれも囲み線６６Ｄとの間に交点を有さない（０個の交点を有する）。このように、囲み線６６Ｄの外側に位置するサンプル点ＳＰ１を基点とする判定線の基点から終点までの間の交点数Ｍｘは、偶数（この例では、０または２）である。
【０１３５】
このように、処理オブジェクト上を基点とする判定線を設定すれば、判定線と囲み線との交点数Ｍｘに基づいて、処理対象のオブジェクトが、囲み線に内包されている（囲み線の内側にある）か否かを、判定することができる。ここで、４本の判定線Ａ１〜Ａ４を設定し、交点数Ｍｘが奇数である判定線が３以上である場合に、処理対象のオブジェクトが囲み線に内包されていると判断している理由を説明する。これは、例外的に、処理対象のオブジェクトが囲み線に内包されている場合でも、交点数Ｍｘが偶数になる場合があり得るからである。例えば、囲み線６６Ｄは、手書きで記入されることを想定しているので、図１１（Ｂ）に示すように、一筆書きの両端部の近傍に隙間ＢＴが生じる場合がある。仮に、図１１（Ｂ）の下方向の判定線Ａ２が、隙間ＢＴを通ると、判定線Ａ２の交点数Ｍｘは、０（偶数）になってしまうことが解る。このような場合に、例えば、１本の判定線に基づいて判定を行うとすれば、誤った判定結果となり得ることは明らかである。本実施例では、４本の判定線のうちの奇数判定線の数ＬＩｎが、３以上であるか否かに基づいているので、例外的に、１本の判定線の交点数Ｍｘが偶数になった場合であっても適切に内包関係を判定することができる。
【０１３６】
ここで、本実施例の内包関係処理の処理対象となる二値画像は、上述した第１の二値画像ＰＢＩ１（図１１（Ｂ））や第２の二値画像ＰＢＩ２（図１１（Ｃ））のような比較的シンプルな画像に限られない。例えば、対象オブジェクトの個数は、複数個である場合があり、その形状や配置が複雑である場合がある。また、複数個の対象オブジェクトの一部の２個以上のオブジェクトが囲み線に内包され、残りの２個以上のオブジェクトが囲み線に内包されないように、囲み線が記入されている場合などには、囲み線の形状が複雑になる場合もある。
【０１３７】
図１５は、本実施例の効果を説明するためのサンプル画像としての二値画像ＢＩ２を示す図である。この二値画像ＢＩ２内には、７個のオブジェクトＯＢ３〜ＯＢ９が、分散して配置されている。そして、囲み線ＳＬ２は、５個のオブジェクトＯＢ４、ＯＢ６〜ＯＢ９を内包し、２個のオブジェクトＯＢ３、ＯＢ５を内包しないように、記入された線を表している。このために、囲み線ＳＬ２は、比較的、複雑な形状を有している。この例で、オブジェクトＯＢ３を対象オブジェクトとして、内包関係判定処理が実行される場合を考える。オブジェクトＯＢ３の重心ＣＣ３を基点とする４本の判定線Ａ３１〜Ａ３４のうちの１本の判定線Ａ３４と、囲み線ＳＬ２と、の間には、３個の共有点ＣＰ３１〜ＣＰ３３が存在する。ここで、共有点ＣＰ３１〜ＣＰ３３が、接点であるか交点であるかを検出することなく、交点数Ｍｘを特定すると、オブジェクトＯＢ３は、囲み線ＳＬに内包されていないにも拘わらずに、判定線Ａ３４の交点数Ｍｘは、奇数（３個）となってしまう。
【０１３８】
同様に、オブジェクトＯＢ４の重心ＣＣ４を基点とする４本の判定線Ａ４１〜Ａ４４のうちの１本の判定線Ａ４３と、囲み線ＳＬ２と、の間には、４個の共有点ＣＰ４１〜ＣＰ４４が存在する。共有点ＣＰ４１〜ＣＰ４４が、接点であるか交点であるかを検出することなく、交点数Ｍｘを特定すると、オブジェクトＯＢ４は、囲み線ＳＬに内包されているにも拘わらずに、判定線Ａ４３の交点数Ｍｘは、偶数（４個）となってしまう。もし、このように、接点を有する判定線が、１組の判定線の中に２本以上ある場合には、内包関係が誤って判定されることになる。
【０１３９】
本実施例の内包関係特定処理によれば、検出部３５３は、判定線と囲み線との接点を検出し、交点数判断部３５２は、交点数Ｍｘを判断する場合に、検出された接点を、２個の交点としてカウントする（図１３：ステップＳ５４０〜Ｓ５５０）。例えば、上述した囲み線ＳＬに内包されていないオブジェクトＯＢ３の判定線Ａ３４の交点数Ｍｘは、共有点ＣＰ３１が２個の交点としてカウントされるので、偶数（４個）であると特定される。また、上述した囲み線ＳＬに内包されているオブジェクトＯＢ４の判定線Ａ４３の交点数Ｍｘは、共有点ＣＰ４１が２個の交点としてカウントされるので、奇数（５個）であると特定される。したがって、対象オブジェクトが囲み線に内包されているか否かをさらに適切に判断することができる。なお、検出された接点は、２個の交点に限らず、任意の偶数の交点としてカウントされて良い。こうすれば、本実施例と同様に、対象オブジェクトが囲み線に内包されているか否かをさらに適切に判断することができる。任意の偶数は、「０」を含み、検出された接点が０個の交点としてカウントされるとは、接点が検出された場合には、カウント値Ｃｖがカウントアップされないことを意味する。
【０１４０】
さらに、本実施例の内包関係特定処理では、重心ＣＣにオブジェクト画素が存在することを条件に、基点を重心画素に設定する。したがって、対象オブジェクトが囲み線に内包されているか否かをさらに適切に判断することができる。すなわち、基点が対象オブジェクト内の偏った位置に設定された結果、判定線が偏った位置に配置される場合と比較して、正しい内包関係を判定できる可能性が高い。
【０１４１】
さらに、本実施例の内包関係特定処理では、複数組のそれぞれの４本の判定線について、対象オブジェクトと囲み線との交点の個数が偶数であるか奇数であるかを判断する場合がある。そして、複数組の４本の判定線のうち少なくとも１組が、判定条件を満たす場合に、対象オブジェクトが囲み線に内包されていると判断している。具体的には、対象オブジェクトの重心ＣＣに、オブジェクト画素が存在しない場合に、上端画素を基点とする第１組の４本の判定線と、第２組の４本の判定線と、を用いて、内包関係を判定している（図１２：ステップＳ４１５〜Ｓ４２０など）。すなわち、図１１（Ｃ）に示すように、重心にオブジェクト画素が存在しない場合には、対象オブジェクトが囲み線に内包されているにも拘わらずに、重心の位置は、囲み線の外側に位置する可能性がある。逆に、対象オブジェクトが囲み線に内包されていないにも拘わらずに、重心の位置は、囲み線の内側に位置する可能性がある。このために、この場合には、重心の位置とは異なる位置であって、オブジェクト画素が存在する位置に基点を設定している。さらに、基点の位置が対象オブジェクト内の偏った位置に設定され得ることで、内包関係の判定精度が低下する可能性を低減するために、複数組の４本の判定線を用いて内包関係を判定している。この結果、対象オブジェクトが囲み線に内包されているか否かをさらに適切に判断することができる。
【０１４２】
さらに、本実施例では、４本の判定線は、９０度ずつの角度を成すように設定されている。すなわち、例えば、図１１（Ｂ）の判定線Ａ１の方向を０度の方向とし、右回りを正方向とすると、判定線Ａ４は、９０度の方向に設定され、判定線Ａ２は、１８０度の方向に設定され、判定線Ａ３は、２７０度の方向に設定されている。この結果、複数本の判定線の交点の位置が、互いに過度に近くなることを抑制できる。この結果、内包関係をより適切に判断することができる。
【０１４３】
Ｂ．第２実施例：
図１６は、第２実施例の内包関係特定処理のフローチャートである。図１６のフローチャートにおいて、第１実施例の内包関係特定処理（図１２）と異なるステップについては、符号の末尾に「Ａ」を付し、同一のステップについては、図１２のフローチャートと同じ符号を付した。
【０１４４】
本実施例の内包関係特定処理によれば、検出部３５３は、判定線と囲み線との接点を検出し、交点数判断部３５２は、交点数Ｍｘを判断する場合に、検出された接点を、２個の交点としてカウントする（図１３：ステップＳ５４０〜Ｓ５５０）。例えば、上述した囲み線ＳＬに内包されていないオブジェクトＯＢ３の判定線Ａ３４の交点数Ｍｘは、偶数（４個）であると特定する。また、上述した囲み線ＳＬに内包されているオブジェクトＯＢ４の判定線Ａ４３の交点数Ｍｘは、奇数（５個）であると特定する。したがって、対象オブジェクトが囲み線に内包されているか否かをさらに適切に判断することができる。
【０１４５】
第２実施例の内包関係特定処理では、ステップＳ４１５にて、対象オブジェクトの重心ＣＣにオブジェクト画素が存在すると判断された場合には（ステップＳ４１５：ＹＥＳ）、第１実施例と同様に、重心画素を、判定線を設定するための基点に設定する（ステップＳ４２５）。一方、対象オブジェクトの重心ＣＣにオブジェクト画素が存在しないと判断された場合には（ステップＳ４１５：ＮＯ）、第１実施例と異なり、交点数判断部３５２は、対象オブジェクトを構成する複数個のオブジェクト画素の中から、ランダムに選択された１個のオブジェクト画素を、判定線を設定するための基点に設定する（ステップＳ４２０Ａ）。例えば、交点数判断部３５２は、乱数値を取得し、当該乱数値に基づいて１個のオブジェクト画素を選択する。
【０１４６】
基点の設定に続いて、第１実施例と同様に、交点数特定処理（ステップＳ４４０）と、奇数判定線の数ＬＩｎの特定（ステップＳ４４５）が実行される。そして、奇数判定線の数ＬＩｎが３以上である場合には（ステップＳ４５０：ＹＥＳ）、第１実施例と同様に、対象オブジェクトは、囲み線に内包されていると判定される（ステップＳ４６０）。
【０１４７】
一方、奇数判定線の数ＬＩｎが３未満である場合には（ステップＳ４５０：ＮＯ）、第１実施例とは異なり、交点数判断部３５２の条件判断部３５４は、奇数判定線の数ＬＩｎが２であるか否かを判断する（ステップＳ４５５Ａ）。奇数判定線の数ＬＩｎが２未満である場合には（ステップＳ４５５Ａ：ＮＯ）、交点数判断部３５２は、対象オブジェクトは、囲み線に内包されていないと判定する（ステップＳ４６５）。
【０１４８】
一方、奇数判定線の数ＬＩｎが２である場合には（ステップＳ４５５Ａ：ＹＥＳ）、交点数判断部３５２は、規定回数の判定が実行されたか否かを判断する（ステップＳ４５７Ａ）。すなわち、交点数判断部３５２は、ステップＳ４４０〜Ｓ４５５Ａの処理が実行された回数が規定回数に達したか否かを判断する（ステップＳ４５７Ａ）。規定回数は、例えば、２〜３程度に設定される。
【０１４９】
規定回数の判定が実行されていない場合には（ステップＳ４５７Ａ：ＮＯ）、交点数判断部３５２は、上述したステップＳ４２０に移行して、ランダムでオブジェクト画素を選択して、ステップＳ４４０以降の処理を繰り返す。規定回数の判定が実行された場合には（ステップＳ４５７Ａ：ＹＥＳ）、交点数判断部３５２は、交点数判断部３５２は、対象オブジェクトは、囲み線に内包されていないと判定する（ステップＳ４６５）。
【０１５０】
図１７は、第２実施例を説明するためのサンプル画像としての二値画像ＢＩ３を示す図である。図１７の二値画像ＢＩ３を例に、第２実施例の効果について説明する。図１７の二値画像ＢＩ３は、３個のオブジェクトＯＢ１０〜ＯＢ１２が分散して配置されている。そして、囲み線ＳＬ３は、２個のオブジェクトＯＢ１１、ＯＢ１２を内包し、１個のオブジェクトＯＢ１０を内包しないように、記入された線を表している。囲み線ＳＬ３は、二値画像ＢＩ２の右端付近において、囲み線ＳＬ３の一部と、囲み線ＳＬ３の他の一部と、が接触してくびれた形状を有している。
【０１５１】
この例で、オブジェクトＯＢ１２を対象オブジェクトとして、第２実施例の内包関係判定処理が実行される場合を考える。オブジェクトＯＢ１２の重心ＣＣ１２を基点とする４本の判定線Ａ５１〜Ａ５４のうちの１本の判定線Ａ５３と、囲み線ＳＬ２と、の間には、２個の交点ＣＰ５３、ＣＰ５４が存在する。ここで、交点ＣＰ５４は、囲み線ＳＬ３の一部と、囲み線ＳＬ３の他の一部と、が接触している部分に位置している。この結果、本来は、異なる交点として特定される２個の交点が１個の交点として特定されている。このために、オブジェクトＯＢ１２は、囲み線ＳＬ３に内包されているにも拘わらずに、判定線Ａ５４の交点数Ｍｘは、偶数（２個）となってしまう。さらに、判定線Ａ５１は、囲み線ＳＬの隙間ＢＴを通っているために、オブジェクトＯＢ１２は、囲み線ＳＬ３に内包されているにも拘わらずに、判定線Ａ５１の交点数Ｍｘは、偶数（０個）となってしまう。そして、他の２本の判定線Ａ５２、５３はの交点数Ｍｘは、奇数（１個）となる。この結果、重心ＣＣ１２の画素を基点とする第１組の４本の判定線を用いた場合には、奇数判定線の数ＬＩｎは、「２」になる。すなわち、交点数Ｍｘが奇数である判定線の数と、交点数Ｍｘが偶数である判定線の数が等しくなり、内包関係を正しく判定することが困難になる。
【０１５２】
このようなケースが生じる可能性は、偶然が重なった場合であり、比較的低いと考えられるので、基点の位置をずらして、再び判定を実行すれば、正しい内包関係を判定できると考えられる。そこで、第２実施例では、奇数判定線の数ＬＩｎは、「２」である場合には（ステップＳ４５５Ａ：ＹＥＳ）、規定回数を超えないことを条件に、例えば、乱数値を取得することによってランダムに選択されたオブジェクト画素を新たな基点として選択して、内包関係の判定を再び実行している。この結果、第１のオブジェクトが第２のオブジェクトに内包されているか否かの判定精度を向上することができる。図１７の例では、重心ＣＣ１２とは異なる位置ＲＰのオブジェクト画素を基点とする第２組の４本の判定線Ａ６１〜Ａ６５を用いた場合には、奇数判定線の数ＬＩｎは「４」となる。すなわち、ランダムに選択されたオブジェクト画素が、例えば、位置ＲＰのオブジェクト画素のように、重心ＣＣ１２からずれた位置に設定された場合には、内包関係を正しく判定できることが解る。すなわち、第２実施例によれば、第１組の４本の判定線を用いて適切な判断を行うことが困難な場合に、第２組の４本の判定線を用いて、適切な判断を行うことができる
【０１５３】
また、第２実施例では、第１実施例と同様に、重心ＣＣにオブジェクト画素が存在することを条件に、最初の基点を重心画素に設定する。この結果、重心画素を基点とする４本の判定線を用いる判定を優先的に行うので、内包関係をより適切に判断することができる。
【０１５４】
Ｂ．変形例
（１）上記各実施例の内包関係特定処理では、対象オブジェクトが囲み線に内包されているか否かを判定しているが、対象オブジェクトが、線とは言えない程度の太さや形状を有するオブジェクトに、内包されているか否かが判定しても良い。また、１組あたりの判定線の数は、４本に限らず、２本、３本、５本などの任意の数に設定され得る。また、対象オブジェクトが囲み線に内包されているかを判断するためのしきい値となる本数は、３本に限らず、１組あたりの判定線の数などに応じて適宜に設定され得る。また、１組の判定線の基点の数は、１個に限らず、例えば、２個の基点から２本ずつの判定線を規定することにより、合計４本の判定線を、１組の判定線として規定しても良い。また、４個の基点から１本ずつの判定線を規定しても良い。一般的に言えば、交点数判断部３５２は、第１のオブジェクト内の１個以上の画素を基点とするＭ本の判定線（Ｍは、２以上の整数）のそれぞれと、第２のオブジェクトと、の交点の個数が偶数であるか奇数であるかを、判定線ごとに判断することが好ましい。そして、条件判断部３５４は、Ｍ本の判定線のうち、交点の個数が奇数である線がＮ以上（Ｎは、Ｎ＜Ｍの整数）であることを含む判定条件が満たされた場合に、第１のオブジェクトが第２のオブジェクトに内包されていると判断することが好ましい。
【０１５５】
（２）また、上記各実施例では、１組の判定線に含まれる４本の判定線は、９０度ずつの角度を成すように設定されているが、これに限られず、任意の角度を成すように設定されて良い。しかしながら、複数本の判定線の交点の位置が、互いに過度に近くなることを抑制する観点から、１組の判定線に含まれるＭ本の判定線のうちの第１の線が延びる方向と、第２の線が延びる方向と、が為す２個の角度のうちの小さい角度は、略９０度以上であることが好ましい。この結果、内包関係をより適切に判断することができる。
【０１５６】
（３）上記第２実施例では、第１組の４本の判定線が判定条件（ＬＩｎ≧３）を満たさない場合であって、ＬＩｎ＝２である場合に、第２組の４本の判定線に基づく判定が実行されている。第２組の４本の判定線に基づく判定が実行される条件は、ＬＩｎ＝２であることに限られない。例えば、一組あたりの判定線の本数が、６本である場合には、例えば、判定条件をＬＩｎ≧５とし、第２組の４本の判定線に基づく判定が実行される条件は、Ｌ２≦ＬＩｎ≦４であることとしても良い。
【０１５７】
（４）上記各実施例において、判定線の基点として用いられている対象オブジェクトの重心ＣＣに代えて、対象オブジェクトの中央部の位置である他の位置が用いられても良い。例えば、対象オブジェクトの外接矩形の重心を用いられてもよい。また、対象オブジェクトを構成する全てのオブジェクト画素のＸ座標の分布と、Ｙ座標の分布を取った場合における、Ｘ座標の中央値（メジアン）や最頻値と、Ｘ座標の中央値（メジアン）や最頻値と、によって規定される位置が用いられても良い。あるいは、これらの中央部の位置の候補のうち、オブジェクト画素が存在する位置を用いても良い。
【０１５８】
（５）上記各実施例では、互いに異なる基点を用いることによって、第１組の判定線と、第２の判定線と、を規定している。これに代えて、互いに異なる検出方向を用いることによって、第１組の判定線と、第２の判定線と、を規定しても良い。例えば、第１組の判定線と、第２の判定線とは、同一の基点を有し、かつ、検出方向が４５度ずつずれていても良い。
【０１５９】
（６）上記各実施例では、基点から二値画像の外側に向かって、判定線上を走査することによって、交点数Ｍｘを特定しているが、これに代えて、二値画像の端部の画素から基点となるオブジェクト画素に向かって、判定線上を走査することによって、交点数Ｍｘを特定してもよい。あるいは、基点を通り、二値画像の一端から他端に至る直線を設定して、当該直線の一端から他端までを走査し、基点に到達した時点で、交点数Ｍｘを初期化することで、一本の直線上の走査で、２本の判定線の交点数Ｍｘを特定しても良い。すなわち、判定線を含む直線は、特定の画素を基点とする半直線に限られず、基点となるべき画素を含む直線であってもよい。
【０１６０】
（７）複数組の判定線を用いる判定の方法は、上記実施例に限られない。例えば、内包関係判定部３５０は、Ｎ組（Ｎは、奇数であることが好ましい）の判定線に基づく、Ｎ回の判定を実行して、対象オブジェクトが囲み線に内包されているかについて、Ｎ個の判定結果を取得しても良い。そして、内包関係判定部３５０は、Ｎ個の判定結果に基づく、多数決によって、最終的な判定結果を決定しても良い。
【０１６１】
（８）なお、本実施例の対象画像データは、スキャナによって読み取られたスキャンデータが採用されているが、例えば、デジタルカメラなどで撮影された撮影画像データであっても良いし、文書や描画などを作成するためのアプリケーションプログラムを用いて生成された画像データであっても良い。また、囲み線は、例えば、ペンを用いて記入された囲み線に限られず、上記アプリケーションプログラムを用いて、画像内に描画された囲み線であっても良い。
【０１６２】
（９）上記実施例においてサーバ４００の画像処理部３００によって実行される画像処理は、サーバ４００とは異なる装置、例えば、複合機２００と接続されたパーソナルコンピュータ５００（図１）によって実行されても良い。この場合には、この画像処理は、例えば、複合機２００のスキャナ部２５０や、単体のスキャナ（図示せず）を、制御するためにパーソナルコンピュータ５００にインストールされたスキャナドライバキャナによって実行されても良い。また、この画像処理は、複合機２００のＣＰＵ２１０や、単体のスキャナのＣＰＵによって実行されても良い。また、サーバ４００は、１つの筐体の装置に限らず、複数の計算機を含む計算システム（例えば、いわゆるクラウドコンピューティングを実現する分散型の計算システム）によって構成されていても良い。
【０１６３】
（１０）上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【符号の説明】
【０１６４】
１１０...通信制御部、１１５...画像データ送受信部、１２０...装置制御部、２００...複合機、２１０...ＣＰＵ、２２０...揮発性記憶装置、２２１...バッファ領域、２３０...不揮発性記憶装置、２３１...制御プログラム、２４０...プリンタ部、２５０...スキャナ部、２６０...操作部、２７０...表示部、２８０...通信部、３００...画像処理部、３１０...画像データ取得部、３２０...第１のオブジェクト特定部、３３０...オブジェクト判定部、３５０...内包関係判定部、３５１...第２のオブジェクト特定部、３５２...交点数判断部、３５３...検出部、３５４...条件判断部、３６０...除去処理部、４００...サーバ、４１０...ＣＰＵ、４２０...揮発性記憶装置、４２１...バッファ領域、４３０...不揮発性記憶装置、４３１...コンピュータプログラム、４８０...通信部、５００...パーソナルコンピュータ、７０...インターネット、１０００...画像処理システム
【図１】
2014182623.tif 000003
【図２】
2014182623.tif 000004
【図３】
2014182623.tif 000005
【図４】
2014182623.tif 000006
【図５】
2014182623.tif 000007
【図６】
2014182623.tif 000008
【図７】
2014182623.tif 000009
【図８】
2014182623.tif 000010
【図９】
2014182623.tif 000011
【図１０】
2014182623.tif 000012
【図１１】
2014182623.tif 000013
【図１２】
2014182623.tif 000014
【図１３】
2014182623.tif 000015
【図１４】
2014182623.tif 000016
【図１５】
2014182623.tif 000017
【図１６】
2014182623.tif 000018
【図１７】
2014182623.tif 000019