(57)【特許請求の範囲】
【請求項１】
カラー画像である元画像を取得する取得ステップと、
前記取得ステップによって取得された前記元画像に基づいて、第１中間画像と、前記元画像から所定の色を除去した第２中間画像とを生成する第１生成ステップと、
前記第１生成ステップによって生成された前記第１中間画像及び前記第２中間画像のエッジを抽出するエッジ抽出ステップと、
前記エッジ抽出ステップによって前記エッジが抽出された前記第１中間画像及び前記第２中間画像を論理積することによって、結果画像を生成する第２生成ステップと
前記第２生成ステップによって生成された前記結果画像のうち、パンチ穴の輪郭に対応する色である第１色の画素の位置に基づいて、前記元画像のうち前記パンチ穴に対応する除去領域を決定する決定ステップと、
をコンピュータに実行させるための画像処理プログラム。
【請求項２】
前記第１生成ステップは、
前記元画像をグレースケール化することによって前記第１中間画像を生成することを特徴とする請求項１に記載の画像処理プログラム。
【請求項３】
前記第１生成ステップは、
前記元画像から所定の色を除去し、且つ、所定の色が除去された前記元画像をグレースケール化することによって、前記第２中間画像を生成することを特徴とする請求項１又は２に記載の画像処理プログラム。
【請求項４】
前記第２生成ステップは、
前記第１生成ステップによって生成された前記第１中間画像に対してクロージング処理を適用し、クロージング処理された前記第１中間画像と、前記第２中間画像とを論理積することによって、前記結果画像を生成することを特徴とする請求項１から３の何れかに記載の画像処理プログラム。
【請求項５】
前記第２生成ステップは、
前記第１生成ステップによって生成された前記第２中間画像に対して膨張処理を適用し、収縮処理を行わず、膨張処理された前記第２中間画像と、前記第１中間画像とを論理積することによって、前記結果画像を生成することを特徴とする請求項１から４の何れかに記載の画像処理プログラム。
【請求項６】
前記第１生成ステップは、
前記元画像から、所定の彩度以上の色を除去することによって、前記第２中間画像を生成することを特徴とする請求項１から５の何れかに記載の画像処理プログラム。
【請求項７】
前記第１生成ステップは、
前記元画像から、所定の輝度範囲外の色を除去することによって、前記第２中間画像を生成することを特徴とする請求項１から６の何れかに記載の画像処理プログラム。
【請求項８】
前記決定ステップによって決定された前記除去領域内の画素を変更する変更ステップを更に実行することを特徴とする請求項１から７の何れかに記載の画像処理プログラム。
【請求項９】
前記エッジ抽出ステップによって前記エッジが抽出された前記第１中間画像及び前記第２中間画像に対して、所定閾値を用いて２値化処理を行う２値化ステップを更に実行し、
前記第２生成ステップは、
前記２値化ステップによって２値化された前記第１中間画像及び前記第２中間画像を論理積することによって、前記結果画像を生成することを特徴とする請求項１から８の何れかに記載の画像処理プログラム。
【請求項１０】
カラー画像である元画像を取得する取得手段と、
前記取得手段によって取得された前記元画像に基づいて、第１中間画像と、前記元画像から所定の色を除去した第２中間画像とを生成する第１生成手段と、
前記第１生成手段によって生成された前記第１中間画像及び前記第２中間画像のエッジを抽出するエッジ抽出手段と、
前記エッジ抽出手段によって前記エッジが抽出された前記第１中間画像及び前記第２中間画像を論理積することによって、結果画像を生成する第２生成手段と
前記第２生成手段によって生成された前記結果画像のうち、パンチ穴の輪郭に対応する色である第１色の画素の位置に基づいて、前記元画像のうち前記パンチ穴に対応する除去領域を決定する決定手段と、
を備えたことを特徴とする画像処理装置。
【請求項１１】
カラー画像である元画像を取得する取得ステップと、
前記取得ステップによって取得された前記元画像に基づいて、第１中間画像と、前記元画像から所定の色を除去した第２中間画像とを生成する第１生成ステップと、
前記第１生成ステップによって生成された前記第１中間画像及び前記第２中間画像のエッジを抽出するエッジ抽出ステップと、
前記エッジ抽出ステップによって前記エッジが抽出された前記第１中間画像及び前記第２中間画像を論理積することによって、結果画像を生成する第２生成ステップと
前記第２生成ステップによって生成された前記結果画像のうち、パンチ穴の輪郭に対応する色である第１色の画素の位置に基づいて、前記元画像のうち前記パンチ穴に対応する除去領域を決定する決定ステップと、
を備えたことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿に形成されたパンチ穴に対応する画像を除去するための画像処理プログラム、画像処理装置、及び、画像処理方法に関する。
【背景技術】
【０００２】
画像読取装置によって読み取られた原稿の画像のうち、例えばパンチなどによって原稿に形成された穴等（以下、「パンチ穴」という。）に対応する部分を検出して除去するための技術が提案されている。
【０００３】
例えば特許文献１では、次の手順でバインダー穴を検出する技術が開示されている。初めに、原稿から読み取られた画像が２値画像に変換される。次に、２値画像の中から、一塊の連続した画像領域が抽出される。次に、抽出された画像領域について、円形度、面積、及び、周囲長の条件値を満たすかが判断される。条件値を満たすと判断された場合、画像領域はバインダー穴部分と判断される。なお、特定されたバインダー穴部分は、白色、又は、周囲の近似色で置き換えられることによって、削除される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２４４０８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
原稿に形成された穴に、地色の境界、又は、原稿に描かれた線分などのオブジェクトが繋がっている場合がある。この原稿から読み取られた画像に対して、上記の技術が適用された場合、オブジェクトと繋がった状態の穴を示す画像を含む領域が、一塊の連続した画像領域として抽出される。この場合、円形度、面積、及び、周囲長の条件値を満たさないと判断される可能性があるので、画像領域が穴として判断されない場合があるという問題点がある。
【０００６】
本発明の目的は、原稿に形成されたパンチ穴にオブジェクトが繋がっている場合でも、パンチ穴を示す画像を検出する可能性を高めることが可能な画像処理プログラム、画像処理装置、及び、画像処理方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明の第１態様に係る画像処理プログラムは、カラー画像である元画像を取得する取得ステップと、前記取得ステップによって取得された前記元画像に基づいて、第１中間画像と、前記元画像から所定の色を除去した第２中間画像とを生成する第１生成ステップと、前記第１生成ステップによって生成された前記第１中間画像及び前記第２中間画像のエッジを抽出するエッジ抽出ステップと、前記エッジ抽出ステップによって前記エッジが抽出された前記第１中間画像及び前記第２中間画像を論理積することによって、結果画像を生成する第２生成ステップと前記第２生成ステップによって生成された前記結果画像のうち、パンチ穴の輪郭に対応する色である第１色の画素の位置に基づいて、前記元画像のうち前記パンチ穴に対応する除去領域を決定する決定ステップと、をコンピュータに実行させる。
【０００８】
画像処理プログラムが実行された場合、コンピュータは、元画像に基づいて、第１中間画像及び第２中間画像を生成する。第２中間画像では、元画像から所定の色が除去される。コンピュータは、第１中間画像及び第２中間画像に対してエッジ抽出フィルタを適用することによって、エッジを抽出する。コンピュータは、エッジが抽出された第１中間画像及び第２中間画像を２値化する。ここで、第２中間画像では、元画像から所定の色が除去されているので、所定の色のオブジェクトのエッジは抽出されない。この場合、コンピュータは、２値化された第１中間画像及び第２中間画像を論理積することによって、結果画像から、所定の色のオブジェクトを排除できる。従って、例えば、パンチ穴画像に所定の色のオブジェクトが繋がっている場合でも、オブジェクトを排除し、パンチ穴画像を抽出できる。
【０００９】
第１態様において、前記第１生成ステップは、前記元画像をグレースケール化することによって前記第１中間画像を生成してもよい。この場合、コンピュータは、除去領域を決定する場合に要する処理の負荷を軽減できる。
【００１０】
第１態様において、前記第１生成ステップは、前記元画像から所定の色を除去し、且つ、所定の色が除去された前記元画像をグレースケール化することによって、前記第２中間画像を生成してもよい。この場合、コンピュータは、除去領域を決定する場合に要する処理の負荷を軽減できる。
【００１１】
第１態様において、前記第２生成ステップは、前記第１生成ステップによって生成された前記第１中間画像に対してクロージング処理を適用し、クロージング処理された前記第１中間画像と、前記第２中間画像とを論理積することによって、前記結果画像を生成してもよい。この場合、第１中間画像中の細かな穴を埋めたり、欠落部分を接続させたりできる。例えば、エッジ抽出によってパンチ穴の輪郭が断続的に存在する画像であっても、断続的なパンチ穴の輪郭を繋げられる場合がある。
【００１２】
第１態様において、前記第２生成ステップは、前記第１生成ステップによって生成された前記第２中間画像に対して膨張処理を適用し、収縮処理を行わず、膨張処理された前記第２中間画像と、前記第１中間画像とを論理積することによって、前記結果画像を生成してもよい。この場合、第２中間画像中の孤立した領域を接続させることができる。なお、収縮を行わないことによって、所定の色が除去されたときに、色ズレなどに起因して輪郭の外縁が小さくなる可能性のある画像が、さらに小さくなることを抑制できる。
【００１３】
第１態様において、前記第１生成ステップは、前記元画像から、所定の彩度以上の色を除去することによって、前記第２中間画像を生成してもよい。この場合、コンピュータは、所定の彩度以上の色のオブジェクトがパンチ穴に対応する画像として決定されることを抑制できる。
【００１４】
第１態様において、前記第１生成ステップは、前記元画像から、所定の輝度範囲外の色を除去することによって、前記第２中間画像を生成してもよい。この場合、コンピュータは、所定の輝度以上の色のオブジェクトがパンチ穴に対応する画像として決定されることを抑制できる。
【００１５】
第１態様において、前記決定ステップによって決定された前記除去領域内の画素を変更する変更ステップを更に実行してもよい。この場合、コンピュータは、決定した除去領域内の画素を変更することによって、パンチ穴の画像を目立たなくすることができる。
【００１６】
第１態様において、前記エッジ抽出ステップによって前記エッジが抽出された前記第１中間画像及び前記第２中間画像に対して、所定閾値を用いて２値化処理を行う２値化ステップを更に実行し、前記第２生成ステップは、前記２値化ステップによって２値化された前記第１中間画像及び前記第２中間画像を論理積することによって、前記結果画像を生成してもよい。この場合、コンピュータは、パンチ穴に対応する画像を精度よく検出できる。
【００１７】
本発明の第２態様に係る画像処理装置は、カラー画像である元画像を取得する取得手段と、前記取得手段によって取得された前記元画像に基づいて、第１中間画像と、前記元画像から所定の色を除去した第２中間画像とを生成する第１生成手段と、前記第１生成手段によって生成された前記第１中間画像及び前記第２中間画像のエッジを抽出するエッジ抽出手段と、前記エッジ抽出手段によって前記エッジが抽出された前記第１中間画像及び前記第２中間画像を論理積することによって、結果画像を生成する第２生成手段と前記第２生成手段によって生成された前記結果画像のうち、パンチ穴の輪郭に対応する色である第１色の画素の位置に基づいて、前記元画像のうち前記パンチ穴に対応する除去領域を決定する決定手段と、を備えている。第２態様によれば、第１態様と同様の効果を奏することができる。
【００１８】
本発明の第３態様に係る画像処理方法は、カラー画像である元画像を取得する取得ステップと、前記取得ステップによって取得された前記元画像に基づいて、第１中間画像と、前記元画像から所定の色を除去した第２中間画像とを生成する第１生成ステップと、前記第１生成ステップによって生成された前記第１中間画像及び前記第２中間画像のエッジを抽出するエッジ抽出ステップと、前記エッジ抽出ステップによって前記エッジが抽出された前記第１中間画像及び前記第２中間画像を論理積することによって、結果画像を生成する第２生成ステップと前記第２生成ステップによって生成された前記結果画像のうち、パンチ穴の輪郭に対応する色である第１色の画素の位置に基づいて、前記元画像のうち前記パンチ穴に対応する除去領域を決定する決定ステップと、を備えている。第３態様によれば、第１態様と同様の効果を奏することができる。
【図面の簡単な説明】
【００１９】
【図１】画像処理システム１０の概要、ＰＣ２の電気的構成、及び、元画像４を示す図である。
【図２】テーブル２４１を示す図である。
【図３】テーブル２４２を示す図である。
【図４】テーブル２４３を示す図である。
【図５】メイン処理のフローチャートである。
【図６】テーブル２４４を示す図である。
【図７】第１取得処理のフローチャートである。
【図８】左設定領域４１Ａ及び右設定領域４１Ｂが変更される様子を示す図である。
【図９】上設定領域４２Ａ及び下設定領域４２Ｂが変更される様子を示す図である。
【図１０】設定領域４３Ａ〜４３Ｄが拡張される様子を示す図である。
【図１１】第２取得処理のフローチャートである。
【図１２】拡張された処理領域に基づいてパンチ穴画像が判定されることを説明するための図である。
【図１３】分離処理のフローチャートである。
【図１４】分離処理のフローチャートであって、図１３の続きである。
【図１５】第１画像が生成される様子を示す図である。
【図１６】抽出処理を示す図である。
【図１７】抽出処理を示す図であって、図１６の続きである。
【図１８】穴方向、及び、形状（円形）の特定方法を説明するための図である。
【図１９】テーブル２４５を示す図である。
【図２０】穴方向、及び、形状（四角形）の特定方法を説明するための図である。
【図２１】テーブル２４６を示す図である。
【図２２】テーブル２４７を示す図である。
【図２３】候補領域の特定方法を説明するための図である。
【図２４】部分画像７４に含まれる輪郭線７５Ａ〜７５Ｅを示す図である。
【図２５】テーブル２４８を示す図である。
【図２６】第２中央領域７７Ｃ、７８Ｃを示す図である。
【図２７】部分画像７４に含まれる輪郭線７５Ａ〜７５Ｅ、及び、第２中央領域７７Ｃ、７８Ｃを示す図である。
【図２８】除外処理のフローチャートである。
【図２９】元画像４に含まれる輪郭線、及び、矩形領域８１Ａ〜８１Ｆを示す図である。
【図３０】元画像４に含まれる輪郭線、及び、矩形領域８１Ａ〜８１Ｆを示す図である。
【図３１】穴判定処理のフローチャートである。
【図３２】第１判定処理のフローチャートである。
【図３３】第２判定処理のフローチャートである。
【図３４】第３判定処理のフローチャートである。
【図３５】決定処理のフローチャートである。
【図３６】色判定処理のフローチャートである。
【図３７】色判定処理のフローチャートであって、図３６の続きである。
【図３８】外周領域８４〜８６４を示す図である。
【図３９】第１外周領域８４及び第２外周領域８５を示す図である。
【図４０】第１外周領域８４及び第２外周領域８５を示す図である。
【図４１】除去処理のフローチャートである。
【図４２】除去処理のフローチャートであって、図４１の続きである。
【発明を実施するための形態】
【００２０】
＜画像処理システム１０の概要＞
以下、本発明の一実施形態について、図面を参照して説明する。図１を参照し、画像処理システム１０について説明する。画像処理システム１０は、画像読取装置１、及びＰＣ２を備える。画像読取装置１及びＰＣ２は、通信ケーブル３を介して接続される。画像読取装置１は、内蔵されたイメージセンサによって、原稿１Ａから画像を読み取る。具体的に、イメージセンサは、原稿１Ａに光を射出し、原稿１Ａからの反射光を検出することで、原稿１Ａから画像を読み取る。画像読取装置１は、読み取った画像をデータ化し、画像データを生成する。以下、画像読取装置１によって読み取られた原稿１Ａの画像を、「元画像」といい、データ化された元画像を、「元画像データ」という。画像読取装置１は、通信ケーブル３を介して元画像データをＰＣ２に出力する。本実施形態において、画像読取装置１は周知のシートフィードスキャナである。本実施形態において、元画像データはＢＭＰ形式のデータである。ＰＣ２は、画像読取装置１から出力された元画像データを、通信ケーブル３を介して受信する。ＰＣ２は、パンチなどによって原稿１Ａに形成されたパンチ穴に対応する画像（以下、「パンチ穴画像」という。）４Ａを、受信した元画像データによって示される元画像４から検出する。
【００２１】
なお、原稿１Ａに形成されたパンチ穴が画像読取装置１によって読み取られる場合、イメージセンサは、パンチ穴を介して、イメージセンサと対向する位置に設けられた部材（以下、「背景部材」という。）を読み取る。原稿がイメージセンサによって読み取られる場合、原稿１Ａとイメージセンサとの間にギャップが形成されるため、イメージセンサから射出された光によって、パンチ穴の枠に沿って影が形成される。イメージセンサは、パンチ穴の周辺に形成される影も読み取る。このため、ＰＣ２は、パンチ穴の枠に沿った影に対応する輪郭線、及び、輪郭線で囲まれた背景部材を、パンチ穴画像４Ａとして検出することになる。このため、パンチ穴画像４Ａに対応する色は、輪郭線に対応する色と、背景部材に対応する色との両方を含む。なお、原稿１Ａの地色と、背景部材の色とが同一または類似の場合、読み取られた画像には、パンチ穴自体は明確に表れず、影に対応する輪郭線のみが表れる場合もある。
【００２２】
ＰＣ２は、検出したパンチ穴画像４Ａに対応する画素の色を変更し、目立たなくする。以下、パンチ穴画像を目立たなくすることを、「パンチ穴画像を除去する」ともいう。本実施形態において、パンチ穴の形状は円形又は四角形が例示される。
【００２３】
なお、画像読取装置１はシートフィードスキャナに限定されず、フラットベッドスキャナなど、他の周知のイメージスキャナでもよい。元画像データはＢＭＰ形式に限定されず、ＪＰＧ，ＧＩＦ，ＰＮＧなど、他の形式のデータでもよい。パンチ穴の数は特に限定されず、例えば、１、２、３、４、６、２２、２６、３０穴等が含まれる。パンチ穴の形状は、円形又は四角形に限定されず、他の形状であってもよい。パンチ穴は、ユーザによって原稿１Ａに形成された穴に限定されず、原稿１Ａに元々形成されていた穴であってもよい。例えば、パンチ穴は、原稿１Ａをファイルに綴じるために予め形成された穴（例えば、ルーズリーフの穴等）であってもよい。
【００２４】
＜電気的構成＞
ＰＣ２の電気的構成について説明する。ＰＣ２は、ＰＣ２の制御を司るＣＰＵ２１を備える。ＣＰＵ２１は、ＲＯＭ２２、ＲＡＭ２３、記憶部２４、ドライブ装置２５、第１通信インタフェース（Ｉ／Ｆ）２６、第２通信Ｉ／Ｆ２７、入力部２８、及び、表示部２９と電気的に接続する。ＲＯＭ２２には、ブートプログラム、Basic Input/Output System（ＢＩＯＳ）等が記憶される。ＲＡＭ２３には、一時的なデータが記憶される。記憶部２４は、コンピュータが読み取り可能な非一時的な記憶媒体、例えば、ハードディスク等で構成される。記憶部２４には、ＣＰＵ２１に処理を実行させるためのアプリケーションプログラム（以下、単に「プログラム」という。）、及びＯＳが記憶される。記憶部２４にはテーブル２４１〜２４８が記憶される。
【００２５】
ドライブ装置２５は、記憶媒体２５Ａに記憶された情報を読み出すことができる。ＣＰＵ２１は、光学メディアなどの記憶媒体２５Ａに記憶されたプログラムをドライブ装置２５によって読み出し、記憶部２４に記憶できる。第１通信Ｉ／Ｆ２６は、ＰＣ２が通信ケーブル３を介して画像読取装置１と接続するためのインタフェース素子である。第２通信Ｉ／Ｆ２７は、ＰＣ２が図示外のネットワークを介して他の機器と接続するためのインタフェース素子である。入力部２８は、例えば、ボタン、キーボード、マウス等を含む。表示部２９はLiquid Crystal Display（ＬＣＤ）である。
【００２６】
なお、記憶部２４は、例えば、ハードディスクドライブ（ＨＤＤ）、フラッシュメモリ及び／又はＲＯＭ等の、非一時的な記憶媒体で構成されてもよい。非一時的な記憶媒体は、情報を記憶する期間に関わらず、情報を留めておくことが可能な記憶媒体であればよい。非一時的な記憶媒体は、一時的な記憶媒体（例えば、伝送される信号）を含まなくてもよい。ＣＰＵ２１として、汎用的なプロセッサーが用いられてもよい。ＣＰＵ２１によって実行される処理の一部は、他の電子部品（例えば、ＡＳＩＣ）によって実行されてもよい。ＣＰＵ２１によって実行される処理は、複数の電子機器（つまり、複数のＣＰＵ）によって分散処理されてもよい。プログラムは、例えば、図示外のネットワークに接続されたサーバからダウンロードされて（即ち、伝送信号として送信され）、記憶部２４に記憶されてもよい。この場合、プログラムは、サーバに備えられたＨＤＤなどの非一時的な記憶媒体に保存されていることとなる。
【００２７】
＜属性情報、設定情報、処理範囲情報＞
図２〜図４を参照し、記憶部２４に記憶されたテーブル２４１、２４２、２４３について説明する。なお、テーブル２４４〜２４８については後述する。図２に示すように、テーブル２４１には、画像読取装置１から元画像データと同時に出力される属性情報が格納される。属性情報は、例えば、元画像データのヘッダ部分に含まれたり、元画像データと別のメタデータとして出力されたりしてよい。属性情報は、元画像高さ、元画像幅、解像度、色を含む。元画像高さ、及び、元画像幅は、それぞれ、図１に示すように、元画像４の上下方向の長さ（Ｉｍｇ（Ｈ））、及び、左右方向の長さ（Ｉｍｇ（Ｗ））を、ｐｉｘｅｌ単位で示す。解像度は、元画像４の解像度をｄｐｉ単位で示す。色は、元画像がグレースケール画像又はカラー画像の何れであるかを示す。
【００２８】
図３に示すように、テーブル２４２には、入力部２８を介して入力された設定情報が格納される。設定情報は、範囲、穴サイズ、背景、塗り潰しを含む。範囲は、左設定範囲、右設定範囲、上設定範囲、及び、下側設定範囲を含む。穴サイズは、穴サイズ上限、及び、穴サイズ下限を含む。背景は、背景色、背景輝度上限、及び、背景輝度下限を含む。塗り潰しは、塗り潰し形状、塗り潰し色を含む。
【００２９】
範囲は、図１に示すように、元画像４の４辺の内側に、それぞれの辺に沿って形成される領域を規定する。範囲は、パンチ穴画像４ＡをＰＣ２に検出させる領域として、ユーザによって設定される。左設定範囲（Ｓｔｒ（ｌｅｆｔ））、右設定範囲（Ｓｔｒ（ｒｉｇｈｔ））、上設定範囲（Ｓｔｒ（ｕｐｐｅｒ））、及び、下設定範囲（Ｓｔｒ（ｌｏｗｅｒ））は、それぞれ、元画像４の左端、右端、上端、及び、下端のそれぞれからの内側方向の長さを、ｍｍ単位で示す。左設定範囲は、元画像４の左辺に沿って延び、且つ、左右方向の長さがＳｔｒ（ｌｅｆｔ）である領域を規定する。右設定範囲は、元画像４の右辺に沿って延び、且つ、左右方向の長さがＳｔｒ（ｒｉｇｈｔ）である領域を規定する。上設定範囲は、元画像４の上辺に沿って延び、且つ、上下方向の長さがＳｔｒ（ｕｐｐｅｒ）である領域を規定する。下設定範囲は、元画像４の下辺に沿って延び、且つ、上下方向の長さがＳｔｒ（ｌｏｗｅｒ）である領域を規定する。
【００３０】
以下、左設定範囲、右設定範囲、上設定範囲、下設定範囲によって示される領域を、それぞれ、「左設定領域」「右設定領域」「上設定領域」「下設定領域」という。「左設定領域」「右設定領域」「上設定領域」「下設定領域」を総称して、「設定領域」という。なお、ＰＣ２は、設定領域内にパンチ穴画像４Ａが半分以上収まっている場合、このパンチ穴画像４Ａを除去の対象とする。一方、ＰＣ２は、設定範囲内に収まるパンチ穴画像４Ａが半分未満の場合、このパンチ穴画像４Ａを除去の対象としない。
【００３１】
図３に示すように、穴サイズは、パンチ穴のサイズの範囲を規定する。穴サイズ上限は、パンチ穴のサイズの上限値を、ｍｍ単位で示す。穴サイズ下限は、パンチ穴のサイズの下限値を、ｍｍ単位で示す。パンチ穴が円形の場合、穴サイズ上限及び穴サイズ下限は、それぞれ、直径の上限及び下限を示す。パンチ穴が四角形の場合、穴サイズ上限及び穴サイズ下限は、それぞれ、長辺及び短辺の長さの上限及び下限を示す。なお、パンチ穴が四角形の場合、長辺に対応する穴サイズ上限及び穴サイズ下限と、短辺に対応する穴サイズ上限及び穴サイズ下限が別々に設定されてもよい。
【００３２】
背景は、画像読取装置１において、原稿がない状態でイメージセンサによって読み取られる画像（以下、「背景画像」という。）を規定する。背景色は、背景画像の色がグレー色又は白色の何れであるかを示す。背景輝度上限は、背景画像の輝度の上限値を示す。背景輝度下限は、背景色の輝度の下限値を示す。なお、背景画像は、画像読取装置１のイメージセンサが背景部材を読み取ることによって得られる画像に対応する。このため、背景情報は、背景部材の色や材質等に応じて設定される。
【００３３】
なお、本実施形態では、背景画像の色としてグレー色又は白色が設定されることを想定しているが、背景画像の色として取り得る情報は、背景部材に応じて変更可能である。例えば、背景部材の色が黒色の場合、背景画像の色として黒色が設定されてもよい。
【００３４】
塗り潰しは、パンチ穴画像の画素の色の変更方法を規定する。塗り潰し形状は、パンチ穴画像の画素の色を変更するときの領域が、パンチ穴画像の形状（円形又は四角形）に応じて決定されるか、又は、パンチ穴画像の形状に関わらず矩形状として決定されるかの何れかを示す。塗り潰し色は、パンチ穴画像の画素を変更するときの色として、白色が設定されるか、又は、パンチ穴画像の周辺の色に応じて決定されるかの何れかを示す。
【００３５】
図４に示すように、テーブル２４３には、設定情報（図３参照）に基づいて決定される処理範囲情報が格納される。処理範囲情報は、パンチ穴画像を検出する処理がＣＰＵ２１によって実行される場合において処理対象となる領域を示す。処理範囲情報は、設定情報（図３参照）の範囲と同様、元画像の４辺の内側に沿って形成される領域を規定する。処理範囲情報は、左処理範囲、左拡張範囲、右処理範囲、右拡張範囲、上処理範囲、上拡張範囲、上幅範囲（左）、上幅範囲（右）、上幅拡張範囲（左）、上幅拡張範囲（右）、下処理範囲、下拡張範囲、下幅範囲（左）、下幅範囲（右）、下幅拡張範囲（左）、下幅拡張範囲（右）を含む。
【００３６】
以下、左処理範囲、右処理範囲、左拡張範囲、右拡張範囲によって示される領域を、それぞれ、「左処理領域」、「右処理領域」、「左拡張領域」、「右拡張領域」という。上処理範囲、上幅範囲（左）、上幅範囲（右）によって示される領域を、「上処理領域」という。下処理範囲、下幅範囲（左）、下幅範囲（右）によって示される領域を、「下処理領域」という。上拡張範囲、上幅拡張範囲（左）、上幅拡張範囲（右）によって示される領域を、「上拡張領域」という。下拡張範囲、下幅拡張範囲（左）、下幅拡張範囲（右）によって示される領域を、「下拡張領域」という。左処理領域、右処理領域、上処理領域、下処理領域を総称して、「処理領域」という。左拡張領域、右拡張領域、上拡張領域、下拡張領域を総称して、「拡張領域」という。
【００３７】
左処理範囲、右処理範囲、上処理範囲、下処理範囲、及び、左拡張範囲、右拡張範囲、上拡張範囲、下拡張範囲は、それぞれ、元画像の左端、右端、上端、及び、下端のそれぞれからの内側方向の長さを、ｍｍ単位で示す。左拡張範囲、右拡張範囲、上拡張範囲、下拡張範囲は、それぞれ、左処理範囲、右処理範囲、上処理範囲、下処理範囲によって示される領域が内側に所定距離だけ広げられた領域を規定する。このため、左拡張範囲、右拡張範囲、上拡張範囲、下拡張範囲は、それぞれ、左処理範囲、右処理範囲、上処理範囲、下処理範囲よりも長い。
【００３８】
上幅範囲（左）は、元画像の左端から上処理領域の左端までの長さを示す。上幅範囲（右）は、元画像の右端から上処理領域の右端までの長さを示す。下幅範囲（左）は、元画像の左端から下処理領域の左端までの長さを示す。下幅範囲（右）は、元画像の右端から下処理領域の右端までの長さを示す。上幅拡張範囲（左）は、元画像の左端から上拡張領域の左端までの長さを示す。上幅拡張範囲（右）は、元画像の右端から上拡張領域の右端までの長さを示す。下幅拡張範囲（左）は、元画像の左端から下拡張領域の左端までの長さを示す。下幅拡張範囲（右）は、元画像の右端から下拡張領域の右端までの長さを示す。
【００３９】
＜ＣＰＵ２１による処理の概要＞
ＰＣ２のＣＰＵ２１によって実行される、パンチ穴画像を除去するための処理（メイン処理）の概要について、図５を参照して説明する。工程Ｂ１（Ｓ１〜Ｓ７）では、元画像のうち、パンチ穴画像の検出処理の対象とする少なくとも１つの処理領域が特定される。元画像は、特定された少なくとも１つの処理領域のそれぞれに対応する拡張領域単位で区分され、少なくとも１つの部分画像が生成される。工程Ｂ２（Ｓ９〜Ｓ２３）では、生成された少なくとも１つの部分画像のそれぞれに基づいて、２つの画像（第１画像及び第２画像）が生成される。そして、２つの画像のそれぞれについて、パンチ穴画像の候補となる領域が抽出される。工程Ｂ３（Ｓ２５）では、Ｂ２によって２つの画像から抽出された、パンチ穴画像の候補となる領域に基づいて、パンチ穴画像が決定される。工程Ｂ４（Ｓ２７〜Ｓ３３）では、Ｂ３によって決定されたパンチ穴画像に対応する画素を変更するための塗り潰し色が決定される。そして、決定された塗り潰し色によって、パンチ穴画像に対応する画素の色が変更され、パンチ穴が除去される。
【００４０】
図６は、記憶部２４に記憶されたテーブル２４４を示す。工程Ｂ１が実行される過程で、元画像データ、部分画像データがテーブル２４４に格納される。工程Ｂ２が実行される過程で、第１中間データ、第２中間データ、第１画像データ、第２画像データ、矩形領域データ、穴方向、形状、候補領域データ、第２中央領域データがテーブル２４４に格納される。工程Ｂ４が実行される過程で、塗り潰し色、ばらつき量、塗り潰し領域が格納される。テーブル２４４に格納されるそれぞれのデータの詳細は後述する。
【００４１】
＜ＣＰＵ２１による処理の詳細＞
ＰＣ２のＣＰＵ２１によって実行されるメイン処理の詳細について説明する。なお、メイン処理が開始される前に、ＣＰＵ２１は、入力部２８を介して設定情報が入力されたことに応じて、入力された設定情報をテーブル２４２（図３参照）に格納しているものとする。ＣＰＵ２１は、画像読取装置１から出力された元画像データを、通信ケーブル３を介して受信した場合、記憶部２４に記憶されたプログラムを実行することによって、メイン処理を開始する。ＣＰＵ２１は、受信した元画像データを、テーブル２４４（図６参照）に格納する。ＣＰＵ２１は、元画像データと同時に受信した属性情報を、テーブル２４１（図２参照）に格納する。
【００４２】
＜工程Ｂ１：第１取得処理、第２取得処理＞
図５に示すように、ＣＰＵ２１は、テーブル２４４から元画像データを取得する（Ｓ１）。ＣＰＵ２１は、テーブル２４１から属性情報を取得する（Ｓ１）。ＣＰＵ２１は、テーブル２４２から設定情報を取得する（Ｓ１）。ＣＰＵ２１は、第１取得処理（図７参照）を実行する（Ｓ３）。なお、以下の説明において、属性情報、及び、設定情報とは、Ｓ１の処理によって取得された属性情報、及び、設定情報を示すものとする。
【００４３】
図７を参照し、第１取得処理について説明する。ＣＰＵ２１は、設定情報の左設定範囲及び右設定範囲を加算した値が、属性情報の元画像幅をｍｍ単位に換算した値よりも大きいか判定する（Ｓ４１）。ＣＰＵ２１は、左設定範囲及び右設定範囲を加算した値が、元画像幅をｍｍ単位に換算した値よりも大きいと判定した場合（Ｓ４１：ＹＥＳ）、テーブル２４３（図４参照）の左処理範囲として、元画像幅をｍｍ単位に換算した値を格納する（Ｓ４３）。ＣＰＵ２１は、テーブル２４３の右処理範囲、上処理範囲、及び、下処理範囲として、「０」を格納する（Ｓ４３）。ＣＰＵ２１は処理をＳ４９に進める。ＣＰＵ２１は、左設定範囲及び右設定範囲を加算した値が、元画像幅をｍｍ単位に換算した値以下と判定した場合（Ｓ４１：ＮＯ）、テーブル２４３の左処理範囲として、左設定範囲を格納する（Ｓ４４）。ＣＰＵ２１は、テーブル２４３の右処理範囲として、右設定範囲を格納する（Ｓ４４）。ＣＰＵ２１は処理をＳ４５に進める。
【００４４】
Ｓ４１〜Ｓ４４の処理について、具体例を挙げて説明する。図８（Ａ）において、左設定領域４１Ａは、元画像４のうち、左端から右側に左設定範囲（Ｓｔｒ（ｌｅｆｔ））離隔した位置を上下に延びる一点鎖線４１１に対して左側の領域として定義される。右設定領域４１Ｂは、元画像４のうち、右端から左側に左設定範囲（Ｓｔｒ（ｒｉｇｈｔ））離隔した位置を上下に延びる一点鎖線４１２に対して右側の領域として定義される。図８（Ａ）に示すように、左設定領域４１Ａの右側部分と、右設定領域４１Ｂの左側部分とが重複する場合、設定情報の左設定範囲（Ｓｔｒ（ｌｅｆｔ））と右設定範囲（Ｓｔｒ（ｒｉｇｈｔ））とを加算した値は、属性情報の元画像幅（Ｉｍｇ（Ｗ））をｍｍ単位に換算した値よりも大きくなる（Ｓ４１：ＹＥＳ）。この場合、それぞれの設定領域に基づいて元画像４から部分画像が生成された場合、それぞれの部分画像の重複部分に対する処理が重複する場合がある。このため、図８（Ｂ）に示すように、ＣＰＵ２１は、テーブル２４３の左処理範囲（Ｐｒｇ（ｌｅｆｔ））として、元画像幅（Ｉｍｇ（Ｗ））をｍｍ単位に換算した値を格納する（Ｓ４３）。又、ＣＰＵ２１は、テーブル２４３の右処理範囲（Ｐｒｇ（ｒｉｇｈｔ））、上処理範囲（Ｐｒｇ（ｕｐｐｅｒ））、下処理範囲（Ｐｒｇ（ｌｏｗｅｒ））として、「０」を格納する（Ｓ４３）。この場合、左処理領域４１Ｃのみが有効となり、右処理領域、上処理領域、及び、下処理領域は無効となる。このため、それぞれの設定領域に基づいて部分画像が生成された場合に、部分画像どうしは重複しない。
【００４５】
図７に示すように、ＣＰＵ２１は、設定情報の上設定範囲及び下設定範囲を加算した値が、属性情報の元画像高さをｍｍ単位に換算した値よりも大きいか判定する（Ｓ４５）。ＣＰＵ２１は、上設定範囲及び下設定範囲を加算した値が元画像高さをｍｍ単位に換算した値よりも大きいと判定した場合（Ｓ４５：ＹＥＳ）、テーブル２４３の上処理範囲として、元画像高さをｍｍ単位に換算した値を格納する（Ｓ４７）。ＣＰＵ２１は、テーブル２４３の左処理範囲、右処理範囲、及び、下処理範囲として、「０」を格納する（Ｓ４７）。ＣＰＵ２１は処理をＳ４９に進める。ＣＰＵ２１は、上設定範囲及び下設定範囲を加算した値が、元画像高さをｍｍ単位に換算した値以下と判定した場合（Ｓ４５：ＮＯ）、テーブル２４３の上処理範囲として、上設定範囲を格納する（Ｓ４８）。ＣＰＵ２１は、下処理範囲として、下設定範囲を格納する（Ｓ４８）。ＣＰＵ２１は処理をＳ４９に進める。
【００４６】
Ｓ４５〜Ｓ４８の処理について、具体例を挙げて説明する。図９（Ａ）において、上設定領域４２Ａは、元画像４のうち、上端から下側に上設定範囲（Ｓｔｒ（ｕｐｐｅｒ））離隔した位置を左右に延びる一点鎖線４１３に対して上側の領域として定義される。下設定領域４２Ｂは、元画像４のうち、下端から上側に下設定範囲（Ｓｔｒ（ｌｏｗｅｒ））離隔した位置を左右に延びる一点鎖線４１４に対して下側の領域として定義される。
【００４７】
図９（Ａ）に示すように、上設定領域４２Ａの下側の部分と、下設定領域４２Ｂの上側の部分とが重複する場合、設定情報の上設定範囲（Ｓｔｒ（ｕｐｐｅｒ））と下設定範囲（Ｓｔｒ（ｌｏｗｅｒ））とを加算した値は、属性情報の元画像高さ（Ｉｍｇ（Ｈ））をｍｍ単位に換算した値よりも大きくなる（Ｓ４５：ＹＥＳ）。この場合、それぞれの設定領域に基づいて元画像４から部分画像が生成された場合、それぞれの部分画像の重複部分に対する処理が重複する場合がある。このため、図９（Ｂ）に示すように、ＣＰＵ２１は、テーブル２４３の上処理範囲（Ｐｒｇ（ｕｐｐｅｒ））として、元画像幅（Ｉｍｇ（Ｈ））をｍｍ単位に換算した値を格納する（Ｓ４７）。又、ＣＰＵ２１は、テーブル２４３の左処理範囲（Ｐｒｇ（ｌｅｆｔ））、右処理範囲（Ｐｒｇ（ｒｉｇｈｔ））、下処理範囲（Ｐｒｇ（ｌｏｗｅｒ））として「０」を格納する（Ｓ４７）。この場合、上処理領域４２Ｃのみが有効となり、左処理領域、右処理領域、及び、下処理領域は無効となる。このため、それぞれの設定領域に基づいて部分画像が生成された場合に、部分画像どうしは重複しない。
【００４８】
図７に示すように、ＣＰＵ２１は、Ｓ４１〜Ｓ４８の処理によってテーブル２４３に格納された左処理領域、右処理領域、上処理領域、下処理領域について、重複する部分がなくなるように、テーブル２４３の上幅範囲（左）、上幅範囲（右）、下幅範囲（左）、下幅範囲（右）を調整する（Ｓ４９）。具体的には、ＣＰＵ２１は、テーブル２４３の左処理範囲を、テーブル２４３の上幅範囲（左）に格納し、右処理範囲を、テーブル２４３の上幅範囲（右）に格納する。
【００４９】
Ｓ４９の処理について、具体例を挙げて説明する。図１０（Ａ）において、左処理領域４３Ａは、元画像４のうち、左端から右側に左処理範囲（Ｐｒｇ（ｌｅｆｔ））離隔した位置を上下に延びる一点鎖線４１５に対して左側の領域として定義される。右処理領域４３Ｂは、元画像４のうち、右端から左側に左処理範囲（Ｐｒｇ（ｒｉｇｈｔ））離隔した位置を上下に延びる一点鎖線４１６に対して右側の領域として定義される。上処理領域４３Ｃは、元画像４のうち、上端から下側に上処理範囲（Ｐｒｇ（ｕｐｐｅｒ））離隔した位置を左右に延びる一点鎖線４１７に対して上側の領域として定義される。下処理領域４３Ｄは、元画像４のうち、下端から上側に下処理範囲（Ｐｒｇ（ｌｏｗｅｒ））離隔した位置を左右に延びる一点鎖線４１８に対して下側の領域として定義される。
【００５０】
図１０（Ａ）の場合、処理範囲情報の左処理範囲（Ｐｒｇ（ｌｅｆｔ））と右処理範囲（Ｐｒｇ（ｒｉｇｈｔ））とを加算した値は、元画像幅（Ｉｍｇ（Ｗ））をｍｍ単位に換算した値よりも小さく（Ｓ４１：ＮＯ）、且つ、処理範囲情報の上処理範囲（Ｐｒｇ（ｕｐｐｅｒ））と下処理範囲（Ｐｒｇ（ｌｏｗｅｒ））とを加算した値は、元画像高さ（Ｉｍｇ（Ｈ））をｍｍ単位に換算した値よりも小さい（Ｓ４５：ＮＯ）。この場合、左処理領域４３Ａの上側部分と上処理領域４３Ｃの左側部分、右処理領域４３Ｂの上側部分と、上処理領域４３Ｃの右側部分、左処理領域４３Ａの下側部分と、下処理領域４３Ｄの左側部分、右処理領域４３Ｂの下側部分と、下処理領域４３Ｄの右側部分は、それぞれ重複する。この場合、それぞれの設定領域に基づいて元画像４から部分画像が生成された場合、それぞれの部分画像の重複部分に対する処理が重複する場合がある。
【００５１】
このため、ＣＰＵ２１は、テーブル２４３の上幅範囲（左）として、設定情報の左処理範囲（Ｐｒｇ（ｌｅｆｔ））を格納する。ＣＰＵ２１は、テーブル２４３の上幅範囲（右）として、設定情報の右処理範囲（Ｐｒｇ（ｒｉｇｈｔ））を格納する。ＣＰＵ２１は、テーブル２４３の下幅範囲（左）として、設定情報の左処理範囲（Ｐｒｇ（ｌｅｆｔ））を格納する。ＣＰＵ２１は、テーブル２４３の下幅範囲（右）として、設定情報の右処理範囲（Ｐｒｇ（ｒｉｇｈｔ））を格納する（Ｓ４９）。これによって、図１０（Ｂ）に示すように、上処理領域４３Ｅ、及び、下処理領域４３Ｆは、何れも、左処理領域４３Ａ及び右処理領域４３Ｂの間に配置される。このため、それぞれの設定領域どうしは重複しない。
【００５２】
図７に示すように、Ｓ４９の処理の終了後、ＣＰＵ２１は、テーブル２４３の左処理範囲、右処理範囲、上処理範囲、及び、下処理範囲のそれぞれについて、設定情報の穴サイズ下限（図３参照）を２で除算した値（穴サイズ下限／２）よりも小さいか判定する（Ｓ５１）。理由は、処理領域が「穴サイズ下限／２」よりも小さい場合、パンチ穴画像の半分以上が処理領域に収まっているかを判定できないためである。ＣＰＵ２１は、テーブル２４３の４つの処理範囲のうち、「穴サイズ下限／２」よりも小さいと判定した処理範囲について（Ｓ５１：ＹＥＳ）、「０」を格納する（Ｓ５３）。ＣＰＵ２１は処理をＳ５５に進める。ＣＰＵ２１は、テーブル２４３の４つの処理範囲のうち、「穴サイズ下限／２」より小さくないと判定した処理範囲については（Ｓ５１：ＮＯ）、「０」を格納しない。ＣＰＵ２１は処理をＳ５５に進める。
【００５３】
ＣＰＵ２１は、テーブル２４３の上幅範囲（左）と上幅範囲（右）とを加算した値を、属性情報の元原稿幅（図２参照）をｍｍ単位に換算した値から減算した値、及び、テーブル２４３の下幅範囲（左）と下幅範囲（右）とを加算した値を、属性情報の元原稿（図２参照）をｍｍ単位に換算した値から減算した値が、「穴サイズ下限／２」よりも小さいか判定する（Ｓ５５）。ＣＰＵ２１は、「穴サイズ下限／２」よりも小さいと判定した場合（Ｓ５５：ＹＥＳ）、テーブル２４３のうち、「穴サイズ下限／２」よりも小さいと判定された上幅範囲（左）、上幅範囲（右）、下幅範囲（左）、下幅範囲（右）として、「０」を格納する。又、ＣＰＵ２１は、テーブル２４３の上処理範囲及び下処理範囲として、「０」を格納する（Ｓ５７）。理由は、上処理領域及び下処理領域の幅が、「穴サイズ下限／２」よりも小さい場合、パンチ穴画像の半分が処理領域に収まっているかを判定できないためである。ＣＰＵ２１は、第１取得処理を終了させ、処理をメイン処理（図５参照）に戻す。ＣＰＵ２１は、算出結果が「穴サイズ下限／２」より小さくないと判定した場合（Ｓ５５：ＮＯ）、第１取得処理を終了させ、処理をメイン処理（図５参照）に戻す。
【００５４】
以上の処理が実行された場合、４つの処理領域（左処理領域、右処理領域、上処理領域、及び、下処理領域）の上下方向及び左右方向の長さは、「穴サイズ下限／２」以上となる。これによって、ＣＰＵ２１は、処理領域に収まる部分の大きさが半分以上のパンチ穴画像を、除去の対象として特定できる。
【００５５】
図５に示すように、ＣＰＵ２１は、第１取得処理（Ｓ３）の終了後、第２取得処理（図１１参照）を実行する（Ｓ５）。図１１を参照し、第２取得処理について説明する。ＣＰＵ２１は、テーブル２４３の左処理範囲が有効であるかを、左処理範囲に「０」以外の値が格納されているかに応じて判定する（Ｓ６１）。ＣＰＵ２１は、左処理範囲に「０」以外の値が格納されている場合、左処理範囲が有効と判定する（Ｓ６１：ＹＥＳ）。ＣＰＵ２１は、左側処理範囲に、設定情報の穴サイズ上限を２で除算した値（穴サイズ上限／２）を加算し、左拡張範囲としてテーブル２４３に格納する（Ｓ６３）。これによって、左処理領域が右側に拡張された左拡張領域が、左拡張範囲によって特定される。ＣＰＵ２１は処理をＳ６５に進める。一方、ＣＰＵ２１は、左処理範囲に「０」が格納されている場合（Ｓ６１：ＮＯ）、処理をＳ６５に進める。
【００５６】
ＣＰＵ２１は、テーブル２４３の右処理範囲が有効であるかを、右処理範囲に「０」以外の値が格納されているかに応じて判定する（Ｓ６５）。ＣＰＵ２１は、右処理範囲に「０」以外の値が格納されている場合、右処理範囲が有効と判定する（Ｓ６５：ＹＥＳ）。ＣＰＵ２１は、右側処理範囲に、「穴サイズ上限／２」を加算し、右拡張範囲としてテーブル２４３に格納する（Ｓ６７）。これによって、右処理領域が左側に拡張された右拡張領域が、右拡張範囲によって特定される。ＣＰＵ２１は処理をＳ６９に進める。一方、ＣＰＵ２１は、右処理範囲に「０」が格納されている場合（Ｓ６５：ＮＯ）、処理をＳ６９に進める。
【００５７】
ＣＰＵ２１は、テーブル２４３の上処理範囲が有効であるかを、上処理範囲に「０」以外の値が格納されているかに応じて判定する（Ｓ６９）。ＣＰＵ２１は、上処理範囲に「０」以外の値が格納されている場合、上処理範囲は有効と判定する（Ｓ６９：ＹＥＳ）。ＣＰＵ２１は、上処理範囲に、「穴サイズ上限／２」を加算し、上拡張範囲としてテーブル２４３に格納する（Ｓ７１）。ＣＰＵ２１は、上幅範囲（左）から、「穴サイズ上限／２」を減算し、上幅拡張範囲（左）としてテーブル２４３に格納する（Ｓ７１）。ＣＰＵ２１は、上幅範囲（右）から、「穴サイズ上限／２」を減算し、上幅拡張範囲（右）としてテーブル２４３に格納する（Ｓ７１）。これによって、上処理領域が下側及び左右両側に拡張された上拡張領域が、上拡張範囲、上幅拡張範囲（左）、上幅拡張範囲（右）によって特定される。ＣＰＵ２１は処理をＳ７３に進める。ＣＰＵ２１は、上処理範囲に「０」が格納されている場合（Ｓ６９：ＮＯ）、処理をＳ７３に進める。
【００５８】
ＣＰＵ２１は、テーブル２４３の下処理範囲が有効であるかを、下処理範囲に「０」以外の値が格納されているかに応じて判定する（Ｓ７３）。ＣＰＵ２１は、下処理範囲に「０」以外の値が格納されている場合、下処理範囲は有効と判定する（Ｓ７３：ＹＥＳ）。ＣＰＵ２１は、下処理範囲に、「穴サイズ上限／２」を加算し、下拡張範囲としてテーブル２４３に格納する（Ｓ７５）。ＣＰＵ２１は、下幅範囲（左）から、「穴サイズ上限／２」を減算し、下幅拡張範囲（左）としてテーブル２４３に格納する（Ｓ７５）。ＣＰＵ２１は、下幅範囲（右）から、「穴サイズ上限／２」を減算し、下幅拡張範囲（右）としてテーブル２４３に格納する（Ｓ７５）。これによって、下処理領域が上側及び左右両側に拡張された下拡張領域が、下拡張範囲、下幅拡張範囲（左）、下幅拡張範囲（右）によって特定される。ＣＰＵ２１は第２取得処理を終了させ、処理をメイン処理（図５参照）に戻す。ＣＰＵ２１は、下処理範囲に「０」が格納されていると判断した場合（Ｓ７３：ＮＯ）、第２取得処理を終了させ、処理をメイン処理（図５参照）に戻す。
【００５９】
第２取得処理について、具体例を挙げて説明する。図１０（Ｂ）に示すように、左処理領域４３Ａ、右処理領域４３Ｂ、上処理領域４３Ｅ、及び、下処理領域４３Ｆが設定された場合において、「穴サイズ上限／２」が左処理範囲に加算された場合（Ｓ６３）、左処理領域４３Ａの右端の境界は、「穴サイズ上限／２」分右側の位置に変更される。これによって、図１０（Ｃ）に示すように、左処理領域４３Ａが右側に拡張された左拡張領域４３Ｇが設定される。又、「穴サイズ上限／２」が、右処理範囲に加算された場合（Ｓ６７）、右処理領域４３Ｂの左端の境界は、「穴サイズ上限／２」分左側の位置に変更される。これによって、右処理領域４３Ｂが左側に拡張された右拡張領域４３Ｈが設定される。つまり、左処理領域４３Ａ、及び、右処理領域４３Ｂのうち、元画像４の４辺に対応する端部よりも内側の境界が、それぞれ内側に変更され、左拡張領域４３Ｇ、及び、右拡張領域４３Ｈが設定される。
【００６０】
「穴サイズ上限／２」が、上処理範囲に加算され、且つ、「穴サイズ上限／２」が、上幅処理範囲（左）、及び、上幅処理範囲（右）から減算された場合（Ｓ７１）、上処理領域４３Ｅの下端の境界は、「穴サイズ上限／２」分下側に変更される。上処理領域４３Ｅの左端の境界は、「穴サイズ上限／２」分左側の位置に変更される。上処理領域４３Ｅの右端の境界は、「穴サイズ上限／２」分右側の位置に変更される。これによって、上処理領域４３Ｅが下側及び左右両側に拡張された上拡張領域４３Ｉが設定される。「穴サイズ上限／２」が、下処理範囲に加算され、且つ、「穴サイズ上限／２」が、下幅処理範囲（左）及び、下幅処理範囲（右）から減算されることによって（Ｓ７５）、下処理領域４３Ｆの上端の境界は、「穴サイズ上限／２」分上側の位置に変更される。下処理領域４３Ｆの左端の境界は、「穴サイズ上限／２」分左側の位置に変更される。下処理領域４３Ｆの右端の境界は、「穴サイズ上限／２」分右側の位置に変更される。これによって、下処理領域４３Ｆが上側及び左右両側に拡張された下拡張領域４３Ｊが設定される。つまり、上処理領域４３Ｅ、及び、下処理領域４３Ｆのうち、元画像４の４辺に対応する端部よりも内側の境界が、それぞれ内側に変更され、上拡張領域４３Ｉ、及び、下拡張領域４３Ｊが設定される。
【００６１】
図５に示すように、第２取得処理（Ｓ５）の終了後、ＣＰＵ２１は、処理範囲情報（図４参照）に基づき、元画像データによって示される元画像（図６参照）から、拡張領域毎に部分画像を切り出し、それぞれを示す部分画像データを抽出（即ち、生成）する（Ｓ７）。ＣＰＵ２１は、元画像から抽出した部分画像の部分画像データを、テーブル２４４（図６参照）に格納する。
【００６２】
具体例を挙げて説明する。図１０（Ｃ）に示すように、左拡張領域４３Ｇ、右拡張領域４３Ｈ、上拡張領域４３Ｉ、及び、下拡張領域４３Ｊが設定された場合を例に挙げる。図１０（Ｃ）において、左拡張領域４３Ｇは、元画像４のうち、左端から右側に左拡張範囲（Ｐｒｇ（ｅｘ−ｌｅｆｔ））離隔した位置を上下に延びる一点鎖線４２１に対して左側の領域として定義される。右拡張領域４３Ｈは、元画像４のうち、右端から左側に左拡張範囲（Ｐｒｇ（ｅｘ−ｒｉｇｈｔ））離隔した位置を上下に延びる一点鎖線４２２に対して右側の領域として定義される。上拡張領域４３Ｉは、元画像４のうち、上端から下側に上拡張範囲（Ｐｒｅ（ｅｘ−ｕｐｐｅｒ））離隔した位置を左右に延びる一点鎖線４２３に対して上側、左端から右側に上幅拡張範囲（左）（Ｐｒｇ（ｅｘ−ｗｕｐｐｅｒ）（ｌ））離隔した位置を上下に延びる一点鎖線４２４に対して右側、及び、右端から左側に上幅拡張範囲（右）（Ｐｒｇ（ｅｘ−ｗｕｐｐｅｒ）（ｒ））離隔した位置を上下に延びる一点鎖線４２５に対して左側の領域として定義される。下拡張領域４３Ｊは、元画像４のうち、下端から上側に下設定範囲（Ｐｒｇ（ｌｏｗｅｒ））離隔した位置を左右に延びる一点鎖線４２６に対して下側、左端から右側に下幅拡張範囲（左）（Ｐｒｇ（ｅｘ−ｗｌｏｗｅｒ）（ｌ））離隔した位置を上下に延びる一点鎖線４２７に対して右側、及び、右端から左側に下幅拡張範囲（右）（Ｐｒｇ（ｅｘ−ｗｌｏｗｅｒ）（ｒ））離隔した位置を上下に延びる一点鎖線４２８に対して左側の領域として定義される。
【００６３】
ＣＰＵ２１は、テーブル２４３の左拡張範囲に基づき、元画像のうち左拡張領域４３Ｇ内の画像のデータを、部分画像データとして抽出する。ＣＰＵ２１は、テーブル２４３の右拡張領域４３Ｈに基づき、元画像のうち右拡張領域内の画像のデータを、部分画像データとして抽出する。ＣＰＵ２１は、テーブル２４３の上拡張範囲、及び、上幅拡張範囲に基づき、元画像のうち上拡張領域４３Ｉ内の画像のデータを、部分画像データとして抽出する。ＣＰＵ２１は、テーブル２４３の下拡張範囲、及び、下幅拡張範囲に基づき、元画像のうち下拡張領域４３Ｊ内の画像のデータを、部分画像データとして抽出する。
【００６４】
第２取得手段（図１１参照）によって処理領域を拡張し、拡張領域を設定する理由について、図１２を参照して説明する。図１２（Ａ）に示すように、元画像４のうち、左処理領域４３Ａに対応する部分画像４３１Ａに基づいて、元画像４に描かれた横長の模様４４に対する処理が実行される場合を例に挙げる。この場合、模様４４のうち部分画像４３１Ａに含まれる部分（矢印４５の部分）の形状は、パンチ穴画像と類似するので、模様４４がパンチ穴画像として誤って判定される可能性がある。これに対し、図１２（Ｂ）に示すように、元画像４のうち、左拡張領域４３Ｇに対応する部分画像４３１Ｇに基づいて、元画像４に描かれた模様４４に対する処理が実行される場合、模様４４のうち部分画像４３１Ｇに含まれる部分（矢印４６の部分）の形状は、パンチ穴画像よりも幅方向に大きくなる。このため、ＣＰＵ２１は、模様４４がパンチ穴画像でないと適切に判定できる。
【００６５】
＜工程Ｂ２：分離処理＞
図５に示すように、Ｓ７の処理の終了後、ＣＰＵ２１は、テーブル２４４（図６参照）に格納された複数の部分画像データのうち１つを選択する（Ｓ９）。以下、選択された部分画像データを、「選択部分画像データ」といい、選択部分画像データによって示される部分画像を、「選択部分画像」という。ＣＰＵ２１は、選択部分画像データに基づいて分離処理（図１３、図１４参照）を実行する（Ｓ１１）。
【００６６】
図１３を参照し、分離処理について説明する。ＣＰＵ２１は、元画像の解像度が１００ｄｐｉよりも大きいかを、属性情報の解像度（図２参照）に基づいて判定する（Ｓ８１）。ＣＰＵ２１は、解像度が１００ｄｐｉよりも大きいと判定した場合（Ｓ８１：ＹＥＳ）、選択部分画像の解像度を１００ｄｐｉに変換する（Ｓ８３）。なお、選択部分画像の解像度を１００ｄｐｉに変換する理由は、以降の処理負荷を軽減させるためである。ＣＰＵ２１は処理をＳ８５に進める。ＣＰＵ２１は、選択部分画像の解像度が１００ｄｐｉ以下と判定した場合（Ｓ８１：ＮＯ）、処理をＳ８５に進める。
【００６７】
ＣＰＵ２１は、元画像がカラー画像であるかを、属性情報の色（図２参照）に基づいて判定する（Ｓ８５）。ＣＰＵ２１は、元画像がカラー画像であると判定した場合（Ｓ８５：ＹＥＳ）、選択部分画像をグレースケール画像に変換する（Ｓ８７）。具体的には、ＣＰＵ２１は、選択部分画像の１画素毎のＲ値、Ｇ値、Ｂ値について、以下の式（１）を適用することによって、Ｙ値（輝度）を算出する。なお、「＞＞１０」は、１０ビットの右シフトであり、２−１０（＝１／１０２４）を乗算することを示す。
Ｙ（輝度）＝（３０６×Ｒ＋６０１×Ｇ＋１１７×Ｂ）＞＞１０        （１）
【００６８】
ＣＰＵ２１は、Ｙ値を算出した画素の画素値として、Ｒ値、Ｇ値、Ｂ値のそれぞれの代わりに、算出したＹ値を設定（即ち、画素値の置換）する。これによって、ＣＰＵ２１は、選択部分画像をグレースケール画像に変換する。即ち、例えば、元画像の各画素が、Ｒ値、Ｇ値、Ｂ値それぞれ８ビットの計２４ビットのデータ量を有していた場合、グレースケール画像に変換された選択部分画像の各画素は、Ｙ値８ビットのデータ量に削減されている。以下、Ｓ８７の処理によって変更された選択部分画像データを、「第１中間画像データ」といい、第１中間画像データに対応する画像を、「第１中間画像」という。ＣＰＵ２１は、第１中間画像データを、選択部分画像データに関連付けて、テーブル２４４（図６参照）に格納する（Ｓ８７）。ＣＰＵ２１は処理をＳ９１に進める。
【００６９】
一方、ＣＰＵ２１は、元画像がグレースケール画像であると判定した場合（Ｓ８５：ＮＯ）、選択部分画像データを、第１中間画像データとして、選択部分画像データに関連付けてテーブル２４４に格納する（Ｓ８９）。この場合、第１中間画像データは、部分画像データの複製によって生成されることとなる。ＣＰＵ２１は処理をＳ９１に進める。
【００７０】
ＣＰＵ２１は、設定情報の背景色（図３参照）がグレー色であるか判定する（Ｓ９１）。ＣＰＵ２１は、背景色がグレー色であると判定した場合（Ｓ９１：ＹＥＳ）、選択部分画像の１画素毎のＲ値、Ｇ値、Ｂ値について、以下の式（２）（３）を適用することによって、Ｃｂ値、Ｃｒ値を算出する。
Ｃｂ＝（−１７４×Ｒ−３３８×Ｇ＋５１２×Ｂ）＞＞１０    （２）
Ｃｒ＝（５１２×Ｒ−４３０×Ｇ−８２×Ｂ）＞＞１０        （３）
次に、ＣＰＵ２１は、算出したＣｂ値、Ｃｒ値に基づき、以下の式（４）を適用することによって、彩度を算出する。
彩度＝√（Ｃｂ値２＋Ｃｒ値２）        （４）
【００７１】
ＣＰＵ２１は、選択部分画像の複数の画素のうち、算出した彩度が「１６」以上の画素を抽出する。ＣＰＵ２１は、抽出した画素のＲ値、Ｇ値、Ｂ値のそれぞれに「２５５」を設定する（Ｓ９３）。これによって、ＣＰＵ２１は、彩度が「１６」以上の画素を、パンチ穴画像の検出処理の対象から除外する。以下、画素のＲ値、Ｇ値、Ｂ値のそれぞれの「２５５」を設定することを、「画素を除去する」ともいう。なお、彩度が「１６」以上の画素を除去する理由は、選択部分画像のうちパンチ穴画像として検出される背景部材の色は、無彩色（グレー色）であるためである。このため、彩度が「１６」以上の画素は、背景部材の画像に該当しないので、パンチ穴画像の検出処理の対象から排除できる。
【００７２】
なお、上記では、ＹＣｂＣｒ系の色空間に基づく算出式の具体例として、式（１）〜（４）が挙げられている。これに対し、本発明は、別の色空間、例えば、ＲＧＢ系の色空間に基づいてパラメータが算出されてもよい。この場合、上記と異なる式が用いられることになる。彩度の閾値「１６」についても、適用される色空間によって別の値が用いられることは言うまでもない。
【００７３】
次にＣＰＵ２１は、Ｓ９３の処理が実行された選択部分画像を、グレースケール画像に変換する（Ｓ９４）。グレースケール画像への変換方法は、Ｓ８７の処理の場合と同一である。ＣＰＵ２１は、Ｓ９４の処理が実行された選択部分画像の複数の画素のうち、設定情報の背景輝度上限（図３参照）以上のＹ値（輝度）を有する画素を抽出する。ＣＰＵ２１は、抽出した画素のＹ値（輝度）として、「２５５」を設定し、この画素を除去する（Ｓ９５）。なお、輝度が背景輝度上限以上の画素を除去する理由は、選択部分画像のうちパンチ穴画像として検出される背景部材の輝度の範囲は、背景輝度上限よりも小さいためである。このため、輝度が背景輝度上限以上の画素は、背景部材の画像に該当しないので、パンチ穴画像の検出処理の対象から排除できる。
【００７４】
ＣＰＵ２１は、Ｓ９５の処理が実行された選択部分画像の複数の画素のうち、設定情報の背景輝度下限（図３参照）以下のＹ値（輝度）を有する画素を抽出する。ＣＰＵ２１は、抽出した画素のＹ値（輝度）として、「２５５」を設定し、この画素を除去する（Ｓ９７）。なお、輝度が背景輝度下限以下の画素を除去する理由は、選択部分画像のうちパンチ穴画像として検出される背景部材の輝度の範囲は、背景輝度下限よりも大きいためである。このため、輝度が背景輝度下限以下の画素は、背景部材の画像に該当しないので、パンチ穴画像の検出処理の対象から排除できる。
【００７５】
以下、Ｓ９３〜Ｓ９７の処理によって変更された部分画像を、「第２中間画像」という。第２中間画像のデータを、「第２中間画像データ」という。換言すれば、Ｓ９３〜Ｓ９７の処理によって、部分画像データから、第２中間画像データが生成される。ＣＰＵ２１は、第２中間画像データを、選択部分画像データに関連付けて、テーブル２４４（図６参照）に格納する（Ｓ９９）。ＣＰＵ２１は処理をＳ１０７に進める。
【００７６】
一方、ＣＰＵ２１は、背景色が白色であると判定した場合（Ｓ９１：ＮＯ）、選択部分画像の１画素毎のＲ値、Ｇ値、Ｂ値について、上記の式（２）（３）を適用することによって、Ｃｂ値、Ｃｒ値を算出する。次に、ＣＰＵ２１は、算出したＣｂ値、Ｃｒ値に基づき、上記の式（４）を適用することによって、彩度を算出する。ＣＰＵ２１は、選択部分画像の複数の画素のうち、算出した彩度が「１６」以上の画素を抽出する。ＣＰＵ２１は、抽出した画素のＲ値、Ｇ値、Ｂ値のそれぞれに「２５５」を設定し、この画素を除去する（Ｓ１０１）。なお、彩度が「１６」以上の画素を除去する理由は、背景色がグレー色の場合と同一である。
【００７７】
次にＣＰＵ２１は、Ｓ１０１の処理が実行された部分画像を、グレースケール画像に変更する（Ｓ１０２）。グレースケール画像への変換方法は、Ｓ８７の処理の場合と同一である。ＣＰＵ２１は、Ｓ１０２の処理が実行された選択部分画像の複数の画素のうち、設定情報の背景輝度上限（図３参照）以上のＹ値（輝度）を有する画素を抽出する。ＣＰＵ２１は、抽出した画素のＹ値（輝度）として、「２５５」を設定し、この画素を除去する（Ｓ１０３）。なお、輝度が背景輝度上限以上の画素を除去する理由は、背景色がグレー色の場合と同一である。以下、Ｓ１０１〜Ｓ１０３の処理が実行された選択部分画像を、第２中間画像といい、第２中間画像のデータを、第２中間画像データという。ＣＰＵ２１は、第２中間画像データを、選択部分画像データに関連付けて、テーブル２４４（図６参照）に格納する（Ｓ１０５）。ＣＰＵ２１は処理をＳ１０７に進める。
【００７８】
なお、背景色がグレー色の場合と異なり、輝度が背景輝度下限以下の画素を除去しない理由は、次の通りである。背景色が白色であり、且つ、元画像の地色も白色の場合、パンチ穴画像は、対応するパンチ穴の枠に沿った影を示す輪郭線によってのみ検出可能となるためである。このため、輪郭線を示す画素が除去されないように、輝度が背景輝度下限以下の画素を除去しないこととしている。一方、背景色がグレー色であり、且つ、元画像の地色が白色の場合、パンチ穴画像は、背景色のグレー色と、地色の白色との境界部分に基づいて検出できる。このため、輝度が背景輝度下限以下の画素を除去しても問題とならない。
【００７９】
ＣＰＵ２１は、選択部分画像データに関連付けてテーブル２４４に格納された第１中間画像データ及び第２中間画像データに基づき、第１中間画像及び第２中間画像に対して周知の中央値フィルタを用いてフィルタリング処理を実行する（Ｓ１０７）。なお、中央値フィルタにおいて、中央値を算出する画素の選択パターンは特に限定されず、注目画素を中心としたｎ×ｎ（ｎは任意の整数で、例えば「３」）の画素領域であればよい。中央値フィルタを用いたフィルタリングが実行されることによって、第１画像及び第２画像中のノイズが除去される。
【００８０】
ＣＰＵ２１は、Ｓ１０７の処理が実行された第１中間画像及び第２中間画像に対し、周知のＳｏｂｅｌフィルタを用いてフィルタリング処理を実行する（Ｓ１０９）。なお、Ｓｏｂｅｌフィルタの係数行列は特に限定されず、周知の様々な係数行列を用いることが可能である。本実施形態では、一例として、ｘ方向のエッジを検出可能なオペレータを含む３×３のＳｏｂｅｌフィルタと、ｙ方向のエッジを検出可能なオペレータを含む３×３のＳｏｂｅｌフィルタとが、それぞれ適用される。それぞれのＳｏｂｅｌフィルタによって算出されたエッジ強度の自乗和平方根を算出することで、Ｓ１０９のフィルタリング処理が行われる。
【００８１】
なお、Ｓｏｂｅｌフィルタを用いたフィルタリング処理は、画像のエッジを強調するエッジ強調処理の一例である。Ｓｏｂｅｌフィルタ以外の、エッジを抽出（又は強調）することが可能な他の周知なフィルタ（例えば、ラプラシアンフィルタ）が、Ｓ１０９の処理においてＳｏｂｅｌフィルタの代わりに用いられても良い。Ｓｏｂｅｌフィルタを用いたフィルタリングが実行されることによって、第１中間画像及び第２中間画像のエッジが強調される。
【００８２】
ＣＰＵ２１は、Ｓ１０９の処理が実行された第１中間画像及び第２中間画像のそれぞれを白黒反転させる（Ｓ１１０）。ＣＰＵ２１は処理をＳ１２１（図１４参照）に進める。
【００８３】
図１４に示すように、ＣＰＵ２１は、Ｓ１１０（図１３参照）の処理が実行された第１中間画像及び第２中間画像のそれぞれについて、輝度「１２８」を第１閾値として２値化処理を実行する（Ｓ１２１）。第１閾値である輝度「１２８」は、最小輝度「０」と最大輝度「２５５」との中央値を示す。なお、第１中間画像及び第２中間画像は、Ｓ１１０（図１３参照）の処理によって白黒反転されているので、２値化後の最小輝度「０」は、パンチ穴画像の輪郭線に対応する色（以下、「第１色」という。）の輝度を示す。２値化後の最大輝度「２５５」は、パンチ穴画像の輪郭線に対応しない色（以下、「第２色」という。）の輝度を示す。
【００８４】
なお、２値化時の輝度の範囲は、「０〜２５５」に限定されず、他の値であってもよい。このため、２値化後において、第１色に対応する最小輝度は「０」に限定されず、他の値であって良い。又、第２色に対応する最大輝度は「２５５」に限定されず、他の値であってもよい。又、輝度を「０」（第１色に対応）又は「１」（第２色に対応）の２値に対応させてもよい。
【００８５】
ＣＰＵ２１は、Ｓ１２１の処理によって２値化された第１中間画像及び第２中間画像に対し、周知の中央値フィルタを用いてフィルタリング処理を実行する（Ｓ１２３）。ＣＰＵ２１は、Ｓ１２３の処理によってフィルタリングされた第１中間画像に対し、周知の膨張処理を実行し、次いで、周知の収縮処理を実行する（Ｓ１２５）。即ち、第１中間画像に対して周知のクロージング処理が行われる。ＣＰＵ２１は、Ｓ１２３の処理によってフィルタリングされた第２中間画像に対し、周知の膨張処理を実行する（Ｓ１２７）。つまり、第２中間画像に対しては、第１中間画像に対する処理と異なり、収縮処理が実行されない。なお、Ｓ１２１〜Ｓ１２７の処理の結果は、一時的な画像データとして新たに生成されるため、第１中間画像データ及び第２中間画像データ自体には影響を及ぼさない。
【００８６】
ＣＰＵ１２１は、Ｓ１２５の処理が実行された第１中間画像、及び、Ｓ１２７の処理が実行された第２中間画像を論理積し、第１画像を生成する（Ｓ１２９）。具体的には、ＣＰＵ２１は、第１中間画像及び第２中間画像について、同一位置に配置された画素の輝度を比較する。ＣＰＵ２１は、双方の輝度が何れも「０」の場合、第１画像のうち、対応する位置の画素の輝度を「０」に設定する。ＣＰＵ２１は、何れかの輝度が「２５５」の場合、第１画像のうち、対応する位置の画素の輝度を「２５５」に設定する。ＣＰＵ２１は、生成した第１画像を示す第１画像データを、選択部分画像データに関連付けて、テーブル２４４（図６参照）に格納する。ＣＰＵ２１は、処理をＳ１３１に進める。
【００８７】
ＣＰＵ２１は、Ｓ１１０（図１３参照）の処理が実行された第１中間画像及び第２中間画像のそれぞれについて、輝度「２０８」を第２閾値として２値化処理を実行する（Ｓ１３１）。第２閾値である輝度「２０８」は、最小輝度「０」と最大輝度「２５５」との中央値「１２８」よりも、最小輝度「０」から遠い。なお、第１中間画像及び第２中間画像は、Ｓ１１０の処理によって白黒反転されているので、輝度「２０８」は、パンチ穴画像の輪郭線に対応する第１色（輝度「０」）に対応する輝度からより遠い値ということになる。
【００８８】
ＣＰＵ２１は、Ｓ１３１の処理によって２値化された第１中間画像及び第２中間画像に対し、周知の中央値フィルタを用いてフィルタリング処理を実行する（Ｓ１３３）。ＣＰＵ２１は、Ｓ１３３の処理によってフィルタリングされた第１中間画像に対し、周知の膨張処理を実行し、次いで、周知の収縮処理を実行する（Ｓ１３５）。ＣＰＵ２１は、Ｓ１３３の処理によってフィルタリングされた第２中間画像に対し、周知の膨張処理を実行する（Ｓ１３７）。つまり、第２中間画像に対しては、輝度１２８を閾値として用いることによって２値化が実行された場合と同様、収縮処理が実行されない。なお、Ｓ１３１〜Ｓ１３７の処理の結果も、一時的な画像データとして新たに生成されるため、第１中間画像データ及び第２中間画像データ自体には影響を及ぼさない。
【００８９】
ＣＰＵ１２１は、Ｓ１３５の処理が実行された第１中間画像、及び、Ｓ１３７の処理が実行された第２中間画像を論理積し、第２画像を生成する（Ｓ１３９）。ＣＰＵ２１は、生成した第２画像を示す第２画像データを、選択部分画像データに関連付けて、テーブル２４４（図６参照）に格納する。ＣＰＵ２１は、分離処理を終了し、処理をメイン処理（図５参照）に戻す。
【００９０】
なお、第２画像は、第１画像が生成されるときの２値化の閾値「１２８」に対し、パンチ穴画像の色である第１色に対応する輝度にから遠い閾値「２０８」で２値化され、生成される。このため、第２画像には、第１画像と比べて、元画像において明るい色（即ち、コントラストの弱い）のパンチ穴画像が表れやすくなる。又、第２画像には、パンチ穴画像以外の部分の画像（ノイズ）が現れやすくなる。
【００９１】
分離処理について、具体例を挙げて説明する。なお、以下では、第１画像が生成される工程（Ｓ１２１〜Ｓ１２９）について説明し、第２画像が生成される工程（Ｓ１３１〜Ｓ１３９）については省略する。又、理解を容易とする為、特段の限定がない限り、Ｓ１１０（図１３参照）の反転処理がされない場合を例に挙げて説明する。
【００９２】
図１５（Ａ）に示すように、地色が白色の部分画像５１において、パンチ穴画像５０に、
（ａ）彩度が「１６」よりも大きい
（ｂ）輝度が背景色輝度上限以上
（ｃ）輝度が背景色輝度下限以下
の何れかの条件を満たす色の直線状の模様５６が重なっている場合を例に挙げる。この場合、Ｓ８７又はＳ８９（図１３参照）の処理によって生成される第１中間画像には、グレースケール化された模様５６が含まれる。フィルタリング（Ｓ１０７、Ｓ１０９参照）、及び、２値化（Ｓ１２１）によって、第１中間画像５１Ａが生成される。Ｓｏｂｅｌフィルタを用いたフィルタリングによってエッジ部分が抽出されるので、第１中間画像５１Ａには、パンチ穴画像５０の輪郭線５０１Ａが含まれる。又、模様５６と白地との境界を示す２つの境界線５６Ａが含まれる場合がある。第１中間画像５１Ａに対して、フィルタリング（Ｓ１２３参照）及び膨張、収縮処理（Ｓ１２５参照）が実行され、第１中間画像５１Ｂが生成される。境界線５６Ａの間が１画素分離隔する場合、境界線５６Ａの間の白色の画素は、膨張、収縮処理によって黒色に変換される。このため、第１中間画像５１Ｂには、パンチ穴画像に対応する輪郭線５０１Ｂに、１本の横線５６Ｂが重なって示される。
【００９３】
一方、第２中間画像が生成される場合、Ｓ９３、Ｓ１０１（図１３参照）によって、彩度「１６」以上の画素は除去される。又、Ｓ９５、Ｓ１０３（図１３参照）の処理によって、背景色輝度上限以上の輝度の画素は除去される。又、Ｓ９７（図１３参照）の処理によって、背景色輝度下限以下の輝度の画素は除去される。このため、上記（ａ）〜（ｃ）の何れかの条件を満たす色の模様５６は、第２中間画像から除去される。フィルタリング（Ｓ１０７、Ｓ１０９参照）、及び、２値化（Ｓ１２１）によって生成される第２中間画像５１Ｃには、パンチ穴画像５０の輪郭線５０１Ｃのみが含まれ、模様５６に対応する画像は含まれない。
【００９４】
第２中間画像５１Ｃに対して、フィルタリング（Ｓ１２３参照）及び膨張処理（Ｓ１２７参照）が実行され、第２中間画像５１Ｄが生成される。なお、第１中間画像５１Ｂと異なり、収縮処理は実行されないので、第２中間画像５１Ｄにおける輪郭線５０１Ｄは、第１中間画像５１Ｂにおける輪郭線５０１Ｂよりも太さが所定サイズ（例えば１画素）太くなる。
【００９５】
次に、第１中間画像５１Ｂと第２中間画像５１Ｄとが論理積され、第１画像５１Ｅが生成される（Ｓ１２９）。これによって、第１中間画像５１Ｂにおける横線５６Ｂは、第１画像５１Ｅから除去される。第１画像５１Ｅにおける輪郭線５０１Ｅの幅は、第１中間画像５１Ｂにおける輪郭線５０１Ｂに揃えられる。以上のように、部分画像５１のパンチ穴画像５０に模様５６が重なっている場合でも、パンチ穴画像５０に対応する輪郭線５０１Ｅを含む第１画像５１Ｅが、分離処理によって生成される。
【００９６】
図１５（Ｂ）に示すように、上記（ａ）〜（ｃ）の何れかの条件を満たす地色５７を有する部分画像５２を例に挙げる。この場合、フィルタリング（Ｓ１０７、Ｓ１０９参照）、及び、２値化（Ｓ１２１）によって、第１中間画像５２Ａが生成される。Ｓｏｂｅｌフィルタを用いたフィルタリングによって抽出されるエッジは、パンチ穴画像５０の輪郭部分のみであるので、第１中間画像５２Ａには、パンチ穴画像５０の輪郭線５０２Ａのみが含まれる。又、第１中間画像５２Ａに対して、フィルタリング（Ｓ１２３参照）、及び、膨張、収縮処理（Ｓ１２５参照）が実行され、第１中間画像５２Ｂが生成される。第１中間画像５２Ｂには輪郭線５０２Ｂが含まれている。
【００９７】
一方、第２中間画像が生成される場合、Ｓ９３、Ｓ１０１（図１３参照）によって、彩度「１６」以上の画素は除去される。又、Ｓ９５、Ｓ１０３（図１３参照）の処理によって、背景色輝度上限以上の輝度の画素は除去される。又、Ｓ９７（図１３参照）の処理によって、背景色輝度下限以下の輝度の画素は除去される。このため、上記（ａ）〜（ｃ）の何れかの条件を満たす地色５７は除去される。又、Ｓ９３、Ｓ１０１（図１３参照）によって、彩度「１６」以上の画素が除去されるときに、パンチ穴画像の輪郭線が僅かに小さくなる場合がある。理由は、パンチ穴画像５０と地色５７との境界部分で、例えば色ずれが原因で、双方の色が僅かに混在するためである。このため、フィルタリング（Ｓ１０７、Ｓ１０９参照）、及び、２値化（Ｓ１２１）によって生成される第２中間画像５２Ｃには、第１中間画像５２Ａにおける輪郭線５０２Ａよりも幅の細い輪郭線５０２Ｃが含まれる場合がある。
【００９８】
第２中間画像５２Ｃに対して、フィルタリング（Ｓ１２３参照）、及び、膨張処理（Ｓ１２７参照）が実行され、第２中間画像５２Ｄが生成される。ここで、第１中間画像５２Ｂの場合と異なり、収縮処理は実行されないので、第２中間画像５２Ｄにおける輪郭線５０２Ｄは、第２中間画像５２Ｃにおける輪郭線５０２Ｃよりも太さが太くなる。結果、輪郭線５０２Ｄは、第１中間画像５２Ｂの輪郭線５０２Ｂと略同じ太さになる。
【００９９】
次に、第１中間画像５２Ｂと第２中間画像５２Ｄとが論理積され、第１画像５２Ｅが生成される（Ｓ１２９）。第１画像５２Ｅには、輪郭線５０２Ｂ、５０２Ｄと略同一形状の輪郭線５０２Ｅが含まれる。以上のように、部分画像５２が地色５７を有する場合でも、パンチ穴画像５０の輪郭線５０２Ｅを含む第１画像５２Ｅが、分離処理によって生成される。
【０１００】
図１５（Ｃ）に示すように、
（ｄ）彩度が「１６」に近い値を有する
（ｅ）輝度が、背景色輝度下限、又は、背景色輝度上限に近い値を有する
の何れかの条件を満たす地色５８を有する部分画像５３を例に挙げる。この場合、フィルタリング（Ｓ１０７、Ｓ１０９参照）、及び、２値化（Ｓ１２１）によって、第１中間画像５３Ａが生成される。Ｓｏｂｅｌフィルタを用いたフィルタリングによって抽出されるエッジは、パンチ穴画像５０の輪郭部分のみであるので、第１中間画像５３Ａには、パンチ穴画像５０の輪郭線５０３Ａのみが含まれる。又、第１中間画像５３Ａに対して、フィルタリング（Ｓ１２３参照）、及び、膨張、収縮処理（Ｓ１２５参照）が実行され、第１中間画像５３Ｂが生成される。第１中間画像５３Ｂには輪郭線５０３Ｂが含まれている。
【０１０１】
一方、第２中間画像が生成される場合、彩度が「１６」よりも小さい地色５８の画素については、Ｓ９３、Ｓ１０１（図１３参照）の処理が実行された場合でも除去されず、画素が断片的に除去されず残る場合がある。又、輝度が背景色輝度上限よりも小さい地色５８の画素は、Ｓ９５、Ｓ１０３（図１３参照）の処理が実行された場合でも除去されず、画素が断片的に除去されず残る場合がある。又、輝度が背景色輝度下限よりも大きい地色５８の画素は、Ｓ９７（図１３参照）の処理が実行された場合でも除去されず、画素が断片的に除去されず残る場合がある。このため、フィルタリング（Ｓ１０７、Ｓ１０９参照）、及び、２値化（Ｓ１２１）によって生成される第２中間画像５３Ｃには、輪郭線５０３Ｃと、地色５８に基づくノイズ５０３１とが含まれる場合がある。又、図１５（Ｂ）の場合と同様、輪郭線５０３Ｃの幅も細くなる場合がある。第２中間画像５３Ｃに対して、フィルタリング（Ｓ１２３参照）、及び、膨張処理（Ｓ１２７参照）が実行され、第２中間画像５３Ｄが生成される。第１中間画像５３Ｂの場合と異なり、収縮処理は実行されないので、第２中間画像５３Ｄにおける輪郭線５０３Ｄは、第１中間画像５３Ｂの輪郭線５０３Ｂと略同じ太さになる。又、第２中間画像５３Ｃのノイズ５０３１に対応するノイズ５０３２が、第２中間画像５３Ｄに含まれる。
【０１０２】
次に、第１中間画像５３Ｂと第２中間画像５３Ｄとが論理積され、第１画像５３Ｅが生成される（Ｓ１２９）。第２中間画像５３Ｄにおけるノイズ５０３２は、第１画像５３Ｅから除外される。第１画像５３Ｅには、輪郭線５０３Ｂ、５０３Ｄと略同一形状の輪郭線５０３Ｅが含まれる。以上のように、部分画像５３が地色５８を有している場合でも、パンチ穴画像５０の輪郭線５０３Ｅを含む第１画像５３Ｅが、分離処理によって生成される。
【０１０３】
図１５（Ｄ）に示すように、白色の地色５９Ａと、上記（ａ）〜（ｃ）の何れかの条件を満たす地色５９とを有し、且つ、地色５９Ａ、５９Ｂの境界部分がパンチ穴画像５０に重なる部分画像５４を例に挙げる。この場合、フィルタリング（Ｓ１０７、Ｓ１０９参照）、及び、２値化（Ｓ１２１）によって、第１中間画像５４Ａが生成される。Ｓｏｂｅｌフィルタを用いたフィルタリングによってエッジ部分が抽出されるので、第１中間画像５４Ａには、パンチ穴画像５０の輪郭線５０４Ａが含まれる。又、地色５９Ａ、５９Ｂの境界を示す横線５９Ｃが含まれる場合がある。第１中間画像５４Ａに対して、フィルタリング（Ｓ１２３参照）、及び、膨張、収縮処理（Ｓ１２５参照）が実行され、第１中間画像５４Ｂが生成される。第１中間画像５４Ｂには、輪郭線５０４Ｂに、一本の横線５９Ｄが含まれる。
【０１０４】
一方、第２中間画像が生成される場合、Ｓ９３、Ｓ９５、Ｓ９７、Ｓ１０１、Ｓ１０３（図１３参照）の処理によって、上記（ａ）〜（ｃ）の何れかの条件を満たす地色５９Ｂは除去される。このため、フィルタリング（Ｓ１０７、Ｓ１０９参照）、及び、２値化（Ｓ１２１）によって生成される第２中間画像５４Ｃには、図１５（Ｂ）（Ｃ）の場合と同様、幅の細い輪郭線５０４Ｃのみが含まれる。第２中間画像５４Ｃに対して、フィルタリング（Ｓ１２３参照）、及び、膨張処理（Ｓ１２７参照）が実行され、第２中間画像５４Ｄが生成される。なお、第１中間画像５４Ｂと異なり、収縮処理は実行されないので、第２中間画像５４Ｄにおける輪郭線５０４Ｄは、第１中間画像５４Ｂにおける輪郭線５０４Ｂよりも太さが所定サイズ（例えば１画素）太くなる。
【０１０５】
次に、第１中間画像５４Ｂと第２中間画像５４Ｄとが論理積され、第１画像５４Ｅが生成される（Ｓ１２９）。第１画像５４Ｅには、輪郭線５０４Ｂと略同一形状の輪郭線５０４Ｅが含まれる。以上のように、部分画像５４において、地色５９Ａ、５９Ｂの境界部分がパンチ穴画像５０に重なる場合でも、パンチ穴画像５０の輪郭線５０４Ｅを含む第１画像５４Ｅが、分離処理によって生成される。
【０１０６】
＜工程Ｂ２：抽出処理＞
図５に示すように、ＣＰＵ２１は、分離処理（Ｓ１１）の終了後、テーブル２４４（図６参照）のうち、Ｓ９の処理によって選択された選択部分画像データに関連付けられた第１画像データに対して、抽出処理（図１６参照）を実行する（Ｓ１３）。図１６を参照し、抽出処理について説明する。ＣＰＵ２１は、第１画像の画素に対して、例えばラベル伝播法や同等ラベル解析法など、周知のラベリング処理を実行する（Ｓ１７１）。ラベリング処理では、２値化処理（Ｓ１２１、図１４参照）によって２値化された画素のうち、パンチ穴画像の輪郭線に対応する第１色の画素が連続する集合体が抽出される。以下、抽出される集合体のそれぞれの領域を、「孤立領域」という。
【０１０７】
ＣＰＵ２１は、抽出された孤立領域について、外接する矩形状の枠を特定し、矩形状の枠の内部の領域を特定する（Ｓ１７３）。以下、選択された矩形状の領域を、「矩形領域」という。孤立領域が複数抽出された場合、複数の孤立領域のそれぞれについて矩形領域が特定されるので、複数の孤立領域が特定されることになる。ＣＰＵ２１は、特定した少なくとも１つの矩形領域のそれぞれを示す矩形領域データを、第１画像データに関連付けてテーブル２４４（図６参照）に格納する。ＣＰＵ２１は、特定した少なくとも１つの矩形領域のうち何れかを、テーブル２４４から選択する（Ｓ１７５）。以下、選択された矩形領域を、「選択矩形領域」といい、選択矩形領域を示すデータを、「選択矩形領域データ」という。
【０１０８】
ＣＰＵ２１は、選択矩形領域の高さ又は幅が、設定情報の穴サイズ下限（図３参照）を２で除算した値（穴サイズ下限／２）よりも小さいか判定する。ＣＰＵ２１は、選択矩形領域の高さ又は幅が、「穴サイズ下限／２」よりも小さいと判定した場合、選択矩形領域データを、テーブル２４４から削除する（Ｓ１７７）。理由は、「穴サイズ下限／２」よりも小さい矩形領域によって囲まれた画像は、パンチ穴画像である可能性が低いためである。なお、判断基準を「穴サイズ下限／２」とした理由は、パンチ穴画像に対応する全て部分のうち半分の領域が欠けている場合でも、パンチ穴画像に対応する画像として検出するためである。
【０１０９】
ＣＰＵ２１は、Ｓ１７７の処理によってテーブル２４４から選択矩形領域データが削除されていない場合、選択矩形領域の高さ又は幅が、設定情報の穴サイズ上限（図３参照）よりも大きいか判定する。ＣＰＵ２１は、選択矩形領域の高さ又は幅が、穴サイズ上限よりも大きいと判定した場合、選択矩形領域データを、テーブル２４４から削除する（Ｓ１７９）。理由は、穴サイズ上限よりも大きい矩形領域によって囲まれた画像は、パンチ穴画像である可能性が低いためである。
【０１１０】
ＣＰＵ２１は、Ｓ１７９までの処理によってテーブル２４４から選択矩形領域データが削除されていない場合、選択矩形領域の高さと幅との比「高さ／幅」「幅／高さ」の何れかが、「２．６７」よりも大きいか判定する。「２．６７」は、一般的に普及しているパンチ穴の高さと幅との比の最大値（高さ８ｍｍ、幅３ｍｍ）を示す。ＣＰＵ２１は、選択矩形領域の高さと幅との比「高さ／幅」「幅／高さ」の何れかが、２．６７よりも大きいと判定した場合、選択矩形領域データを、テーブル２４４から削除する（Ｓ１８１）。理由は、パンチ穴として一般的に普及している高さ及び幅の比「２．６７」の最大値よりも大きい画像は、パンチ穴画像である可能性が低いためである。
【０１１１】
ＣＰＵ２１は、Ｓ１８１までの処理によってテーブル２４４から選択矩形領域データが削除されていない場合、選択矩形領域を、高さ方向及び幅方向にそれぞれ３等分することによって、９つ（３×３）の領域に分割する（Ｓ１８３）。ＣＰＵ２１は、分割された９つの領域（以下、「格子領域」という。）のうち、第１色の画素が１つ以上含まれている格子領域を「第１格子領域」として特定し、第１色の画素が含まれていない格子領域を「第２格子領域」として特定する。ＣＰＵ２１は、第１格子領域と第２格子領域とから、パンチ穴の輪郭の向く方向を示す穴方向を特定する（Ｓ１８５）。ＣＰＵ２１は、特定した穴方向を、選択矩形領域データに関連付けてテーブル２４４（図６参照）に格納する。
【０１１２】
Ｓ１８３、Ｓ１８５の処理について、図１８を参照し、具体例を挙げて説明する。なお、図１８、図２０（後述）では、矩形領域６２Ａ〜６２Ｉ（図１８参照）、６７Ａ〜６７Ｉ（図２０参照）が全て正方形の場合について示されている。しかしながら、実際の矩形領域の形状は、輪郭線の形状に応じて長方形となる場合もある。
【０１１３】
図１８（Ａ）に示すように、円形のパンチ穴に対応する輪郭線６１Ａが、第１画像に含まれている場合を例に挙げる。この場合、ＣＰＵ２１は、Ｓ１７３の処理によって、輪郭線６１Ａに外接する正方形の矩形領域６２Ａを特定する。ＣＰＵ２１は、Ｓ１８３の処理によって、矩形領域６２Ａを９つの格子領域６３１〜６３９に分割する。ＣＰＵ２１は、格子領域６３１〜６３９のうち第１色の画素が含まれる第１格子領域として、格子領域６３１、６３２、６３３、６３４、６３６、６３７、６３８、６３９を特定する。ＣＰＵ２１は、第１色が含まれない第２格子領域として、格子領域６３５を特定する。
【０１１４】
ＣＰＵ２１は、テーブル２４５（図１９参照）を参照する。図１９に示すように、テーブル２４５では、第１格子領域（図１９において黒色で塗りつぶされた格子領域）、及び、第２格子領域（図１９において白色で塗りつぶされた格子領域）の配置パターンと、穴方向とが関連付けられている。図１８（Ａ）に示す第１格子領域及び第２格子領域の配置パターンが、輪郭線６１Ａに基づいて特定された場合、ＣＰＵ２１は、Ｓ１８５の処理によって、テーブル２４５のＮｏ．１の「中央」を、輪郭線６１Ａの向きを示す穴方向として特定する。
【０１１５】
円形のパンチ穴に対応する輪郭線として、図１８（Ｂ）〜（Ｉ）に示すように、円形の一部が欠けた輪郭線６１Ｂ〜６１Ｉが、第１画像に含まれる場合もある。画像読取装置１（図１参照）のイメージセンサは、パンチ穴の枠に沿って形成される影を読み取り、データ化して元画像データを生成するので、影の発生する状況に応じて、元画像に含まれる輪郭線の一部が欠ける場合は発生し得る。このような場合、ＣＰＵ２１は、Ｓ１７３の処理によって、輪郭線６１Ｂ〜６１Ｉに外接する正方形の矩形領域６２Ｂ〜６２Ｉを特定する。ＣＰＵ２１は、Ｓ１８３の処理によって、矩形領域６２Ｂ〜６２Ｉのそれぞれを、９つの格子領域に分割する。ＣＰＵ２１は、図１８（Ｂ）〜（Ｉ）に示すように、第１格子領域及び第２格子領域を特定する。ＣＰＵ２１は、Ｓ１８５の処理によって、テーブル２４５のＮｏ．２〜９の「右」「右上」「上」「左上」「左」「左下」「下」「右下」を、それぞれの輪郭線６１Ｂ〜６１Ｉの向きを示す穴方向として特定する。
【０１１６】
なお、上記のようにして特定される、円形の輪郭線の穴方向とは、例えば、輪郭線に沿って２つの端部から等距離にある点における輪郭線の法線の延びる方向のうち、矩形領域の外側に向けて延びる方向を、「右」「右上」「上」「左上」「左」「左下」「下」「右下」の何れかの方向に近似した方向であるともいえる。又、穴方向とは、例えば、輪郭線を２等分する点に向けて、格子領域の中心から延びる方向を、「右」「右上」「上」「左上」「左」「左下」「下」「右下」の何れかの方向に近似した方向であるともいえる。なお、輪郭線の端部が存在しない場合には、穴方向は「中央」ということになる。又、穴方向とは、例えば、輪郭線を２等分する点から、輪郭線の２つの端部の間の中点に向けて延びる方向（輪郭線が空いている方向）の逆方向であるともいえる。
【０１１７】
一方、図１８（Ｊ）に示すように、例えば、パンチ穴に対応しない線分６１Ｊが第１画像に含まれている場合を例に挙げる。この場合、ＣＰＵ２１は、Ｓ１７３の処理によって、線分６１Ｊに外接する正方形の矩形領域６２Ｊを特定する。ＣＰＵ２１は、Ｓ１８３の処理によって、矩形領域６２Ｊを９つの格子領域に分割する。ＣＰＵ２１は、図１８（Ｊ）に示すように第１格子領域及び第２格子領域を特定する。ＣＰＵ２１は、Ｓ１８５の処理によって、テーブル２４５のＮｏ．１０に対応する「その他」を、穴方向として特定する。なお、後述する図２０（Ｊ）の場合も同様である。
【０１１８】
図２０（Ａ）に示すように、四角形のパンチ穴に対応する輪郭線６６Ａが、第１画像に含まれている場合を例に挙げる。この場合の処理も、円形のパンチ穴に対応する輪郭線６１Ａが第１画像に含まれている図１８（Ａ）の場合と同様である。ＣＰＵ２１は、Ｓ１７３の処理によって、輪郭線６１Ａに外接する正方形の矩形領域６７Ａを特定する。ＣＰＵ２１は、Ｓ１８３の処理によって、矩形領域６７Ａを９つの格子領域６８１〜６８９に分割する。ＣＰＵ２１は、第１格子領域として、格子領域６８１、６８２、６８３、６８４、６８６、６８７、６８８、６８９を特定し、第２格子領域として、格子領域６８５を特定する。ＣＰＵ２１は、Ｓ１８５の処理によって、テーブル２４５（図１９参照）のＮｏ．１の「中央」を、輪郭線６６Ａの向きを示す穴方向として特定する。又、四角形のパンチ穴に対応する輪郭線として、図２０（Ｂ）〜（Ｉ）に示すように、四角形の一部が欠けた輪郭線６６Ｂ〜６６Ｉが、第１画像に含まれる場合もある。これらの場合の処理も、円形のパンチ穴に対応する輪郭線６１Ｂ〜６１Ｉが第１画像に含まれる図１８（Ｂ）〜（Ｉ）の場合と同様である。
【０１１９】
なお、上記のようにして特定される、四角形の輪郭線の穴方向とは、輪郭線に沿って２つの端部から等距離にある点に向けて、格子領域の中心から延びる方向を、「右」「右上」「上」「左上」「左」「左下」「下」「右下」の何れかの方向に近似した方向であるともいえる。なお、輪郭線の端部が存在しない場合には、穴方向は「中央」ということになる。
【０１２０】
図１６に示すように、Ｓ１８５の処理によって穴方向を特定した後、ＣＰＵ２１は、選択矩形領域のうち４隅の特定の領域（以下、それぞれを「隅領域」という。）、及び、選択矩形領域のうち中央の特定の領域（以下、「第１中央領域」という。）を特定する。４つの隅領域及び第１中央領域は、それぞれ矩形状を有する。４つの隅領域及び第１中央領域のそれぞれの幅は、選択矩形領域の幅の１／１０である。４つの隅領域及び第１中央領域のそれぞれの高さは、選択矩形領域の高さの１／１０である。ＣＰＵ２１は、４つの隅領域に含まれる画素を抽出する（Ｓ１８７）。ＣＰＵ２１は、第１中央領域に含まれる画素を抽出する（Ｓ１８９）。
【０１２１】
ＣＰＵ２１は選択矩形領域の４辺のうち、Ｓ１８５の処理によって特定された穴方向に対応する辺又は頂点を特定する。具体的には、穴方向が「左」「右」「上」「下」の何れかの場合、選択矩形領域の対応する辺として、「左辺」「右辺」「上辺」「下辺」が特定される。又、穴方向が「左上」「左下」「右上」「右下」の何れかの場合、選択矩形領域の対応する頂点として、「左上」「左下」「右上」「右下」が特定される。又、穴方向が「中央」の場合、選択矩形領域の対応する辺として、４辺の全てが特定される。
【０１２２】
ＣＰＵ２１は、特定した辺の両端、又は、頂点に位置する隅領域に、第１色の画素が含まれているか判定する。例えば、穴方向「左」「右」「上」「下」に対応する選択矩形領域の辺である、「左辺」「右辺」「上辺」「下辺」が特定された場合、それぞれの辺の両端に位置する２つの隅領域に、第１色の画素が含まれているかが判定される。又、例えば、穴方向「左上」に対応する頂点「左上」が特定された場合左上の隅領域に第１色の画素が含まれているかが判定される。穴方向が「左下」「右上」「右下」の場合、それぞれ、「左下」「右上」「右下」の頂点の隅領域に第１色の画素が含まれているかが判定される。又、例えば、穴方向「中央」に対応する選択矩形領域の４辺が全て特定された場合、４つの隅領域に第１色の画素が含まれているかが判定される。以下、判定対象となる隅領域を、「判定隅領域」という。
【０１２３】
ＣＰＵ２１は、判定隅領域に第１色の画素が含まれていない場合、選択矩形領域に含まれる輪郭線に対応するパンチ穴の形状を、円形として特定する（Ｓ１９１）。ＣＰＵ２１は、判定隅領域に第１色の画素が含まれている場合、選択矩形領域に含まれる輪郭線に対応するパンチ穴の形状を、四角形として特定する（Ｓ１９１）。ＣＰＵ２１は、特定した形状を、対応する選択矩形領域データに関連付けてテーブル２４４（図６参照）に格納する。このように判定する理由は、パンチ穴の形状が円形の場合、輪郭線は湾曲するので、判定隅領域に輪郭線が重畳しない可能性が高いためである。一方、パンチ穴の形状が四角形の場合、輪郭線は直角に曲折するので、判定隅領域に輪郭線が重畳する可能性が高いためである。
【０１２４】
Ｓ１８７〜Ｓ１９１の処理について、具体例を挙げて説明する。図１８（Ａ）に示すように、円形のパンチ穴に対応する輪郭線６１Ａに基づいて、穴方向「中央」が特定された（Ｓ１８５）とする。ＣＰＵ２１は、矩形領域６２Ａのうち隅領域６４１〜６４４、及び、第１中央領域６４５を特定する。隅領域６４１、６４２、６４３、６４４は、それぞれ、矩形領域６２Ａの左上隅、右上隅、左下隅、及び、右下隅のそれぞれの隅領域に対応する。ＣＰＵ２１は、隅領域６４１〜６４４に含まれる画素を抽出する（Ｓ１８７）。ＣＰＵ２１は、第１中央領域６４５に含まれる画素を抽出する（Ｓ１８９）。図１８（Ａ）で示されるように、円形のパンチ穴に対応する輪郭線６１Ａの場合、隅領域６４１〜６４４、及び、第１中央領域６４５の何れにも、第１色の画素は含まれない。ここで、矩形領域６２Ａの４辺のうち穴方向「中央」に対応する辺は、４つの辺の全てと定義される。この場合、隅領域６４１〜６４４に、第１色の画素が含まれているかに応じて、輪郭線６１Ａに対応するパンチ穴の形状が特定されることになる。
【０１２５】
ＣＰＵ２１は、テーブル２４６（図２１参照）を参照する。図２１に示すように、テーブル２４６には、穴方向、第１色の画素の有無、及び、形状が関連付けられている。ここで、ＣＰＵ２１は、Ｓ１８５の処理によって穴方向を「中央」と特定し、Ｓ１８７、Ｓ１８９の処理に基づいて、４つの隅領域６４１〜６４４、及び、第１中央領域６４５の何れにも第１色の画素が含まれていないと判定している。このため、テーブル２４６のＮｏ．１の穴方向、及び、第１色の画素の有無の条件に合致する。ＣＰＵ２１は、「円形」を、輪郭線６１Ａに対応するパンチ穴の形状として特定する（Ｓ１９１）。
【０１２６】
図１８（Ｂ）に示すように、一部が欠けた円形のパンチ穴に対応する輪郭線６１Ｂに基づいて、穴方向「右」が特定された（Ｓ１８５）とする。ＣＰＵ２１は、４つの隅領域、及び、第１中央領域に含まれる画素を抽出する（Ｓ１８７、Ｓ１８９）。図１８（Ｂ）で示されるように、穴方向が「右」の円形のパンチ穴に対応する輪郭線６１Ｂの場合、左上隅及び左下隅の隅領域に第１色の画素が含まれ、それ以外の領域に第１色の画素は含まれない。ＣＰＵ２１は、テーブル２４６（図２１参照）を参照し、Ｎｏ．２の穴方向、及び、第１色の画素の有無の条件に合致すると判定する。ＣＰＵ２１は、「円形」を、輪郭線６１Ｂに対応するパンチ穴の形状として特定する（Ｓ１９１）。
【０１２７】
図１８（Ｃ）に示すように、一部が欠けた円形のパンチ穴に対応する輪郭線６１Ｃに基づいて、穴方向「右上」が特定された（Ｓ１８５）とする。ＣＰＵ２１は、４つの隅領域、及び、第１中央領域に含まれる画素を抽出する（Ｓ１８７、Ｓ１８９）。図１８（Ｃ）で示されるように、穴方向が「右上」の円形のパンチ穴に対応する輪郭線６１Ｃの場合、４つの隅領域、及び、第１中央領域の何れにも、第１色の画素が含まれない。ＣＰＵ２１は、テーブル２４６（図２１参照）を参照し、Ｎｏ．６の穴方向、及び、第１色の画素の有無の条件に合致すると判定する。ＣＰＵ２１は、「円形」を、輪郭線６１Ｃに対応するパンチ穴の形状として特定する（Ｓ１９１）。
【０１２８】
図２０（Ａ）に示すように、四角形のパンチ穴に対応する輪郭線６６Ａに基づいて、穴方向「中央」が特定された（Ｓ１８５）とする。ＣＰＵ２１は、矩形領域６７Ａのうち隅領域６９１〜６９４、及び、第１中央領域６９５を特定する。隅領域６９１、６９２、６９３、６９４は、それぞれ、矩形領域６７Ａの左上隅、右上隅、左下隅、及び、右下隅のそれぞれの隅領域に対応する。ＣＰＵ２１は、隅領域６９１〜６９４に含まれる画素を抽出する（Ｓ１８７）。ＣＰＵ２１は、第１中央領域６９５に含まれる画素を抽出する（Ｓ１８９）。図２０（Ａ）で示されるように、四角形のパンチ穴に対応する輪郭線６６Ａの場合、隅領域６９１〜６９４に第１色の画素が含まれ、第１中央領域６４５に第１色の画素は含まれない。この場合、隅領域６９１〜６９４に、第１色の画素が含まれているかに応じて、輪郭線６６Ａに対応するパンチ穴の形状が特定されることになる。
【０１２９】
ＣＰＵ２１は、テーブル２４６（図２１参照）を参照する。ＣＰＵ２１は、Ｓ１８５の処理によって穴方向を「中央」と特定し、Ｓ１８７、Ｓ１８９の処理に基づいて、隅領域６９１〜６９４に第１色の画素が含まれ、第１中央領域６９５に第１色の画素が含まれていないと判定している。このため、テーブル２４６のＮｏ．１０の穴方向、及び、第１色の画素の有無の条件に合致する。ＣＰＵ２１は、「四角形」を、輪郭線６６Ａに対応するパンチ穴の形状として特定する（Ｓ１９１）。
【０１３０】
図２０（Ｂ）に示すように、一部が欠けた四角形のパンチ穴に対応する輪郭線６６Ｂに基づいて、穴方向「右」が特定された（Ｓ１８５）とする。ＣＰＵ２１は、４つの隅領域、及び、第１中央領域に含まれる画素を抽出する（Ｓ１８７、Ｓ１８９）。図２０（Ｂ）で示されるように、穴方向が「右」の四角形のパンチ穴に対応する輪郭線６６Ｂの場合、４つの隅領域の全てに、第１色の画素が含まれ、第１中央領域には、第１色の画素が含まれない。ＣＰＵ２１は、テーブル２４６（図２１参照）を参照し、Ｎｏ．１０の穴方向、及び、第１色の画素の有無の条件に合致すると判定する。ＣＰＵ２１は、「四角形」を、輪郭線６６Ａに対応するパンチ穴の形状として特定する（Ｓ１９１）。
【０１３１】
図２０（Ｃ）に示すように、一部が欠けた四角形のパンチ穴に対応する輪郭線６６Ｃに基づいて、穴方向「右上」が特定された（Ｓ１８５）とする。ＣＰＵ２１は、４つの隅領域、及び、第１中央領域に含まれる画素を抽出する（Ｓ１８７、Ｓ１８９）。図２０（Ｃ）で示されるように、穴方向が「右上」の四角形のパンチ穴に対応する輪郭線６６Ｃの場合、左上隅、右上隅、及び、右下隅の隅領域に、第１色の画素が含まれ、第１中央領域に第１色の画素が含まれない。ＣＰＵ２１は、テーブル２４６（図２１参照）を参照し、Ｎｏ．１０の穴方向、及び、第１色の画素の有無の条件に合致すると判定する。ＣＰＵ２１は、「四角形」を、輪郭線６６Ｃに対応するパンチ穴の形状として特定する（Ｓ１９１）。
【０１３２】
図１８（Ｊ）に示すように、パンチ穴に対応しない線分６１Ｊに基づいて、穴方向「その他」が特定された（Ｓ１８５）とする。ＣＰＵ２１は、４つの隅領域、及び、第１中央領域に含まれる画素を抽出する（Ｓ１８７、Ｓ１８９）。図１８（Ｊ）で示されるように、穴方向が「その他」の線分６１Ｊの場合、左上隅、及び、右下隅の隅領域、及び、第１中央領域に、第１色の画素が含まれ、右上隅、及び、右下隅の隅領域に第１色の画素が含まれない。ＣＰＵ２１は、テーブル２４６（図２１参照）を参照し、Ｎｏ．１０の穴方向、及び、第１色の画素の有無の条件に合致すると判定する。ＣＰＵ２１は、「四角形」を、輪郭線６６Ａに対応するパンチ穴の形状として特定する（Ｓ１９１）。
【０１３３】
図２０（Ｊ）に示すように、パンチ穴に対応しない線分６６Ｊに基づいて、穴方向「その他」が特定された（Ｓ１８５）とする。ＣＰＵ２１は、４つの隅領域、及び、第１中央領域に含まれる画素を抽出する（Ｓ１８７、Ｓ１８９）。図２０（Ｊ）で示されるように、穴方向が「その他」の線分６６Ｊの場合、左上隅、及び、右下隅の隅領域に、第１色の画素が含まれ、右上隅、及び、右下隅の隅領域、及び、第１中央領域に、第１色の画素が含まれない。ＣＰＵ２１は、テーブル２４６（図２１参照）を参照し、Ｎｏ．１０の穴方向、及び、第１色の画素の有無の条件に合致すると判定する。ＣＰＵ２１は、「四角形」を、線分６６Ｊに対応する形状として特定する（Ｓ１９１）。
【０１３４】
図１６に示すように、ＣＰＵ２１は、第１中央領域に第１色の画素が含まれているか判定する。ＣＰＵ２１は、第１中央領域に第１色の画素が含まれていると判定した場合、選択矩形領データを、テーブル２４４（図６参照）から削除する（Ｓ１９２）。理由は、第１中央領域に第１色の画素が含まれている場合、輪郭線の中央にノイズが含まれている可能性があるためである。ここで、輪郭線がパンチ穴に対応する場合、輪郭線の中央部分は背景画像に対応し、ノイズは含まれない。従って、第１中央領域に第１色の画素が含まれている場合、輪郭線に対応する画像はパンチ穴画像である可能性が低いため、テーブル２４４から削除される。これによって、パンチ穴画像に対応する輪郭線の形状と類似する、パンチ穴画像以外の画像に対応する選択矩形領域データを、テーブル２４４から削除できる。
【０１３５】
例えば、図１８（Ｊ）に示すように、第１中央領域に、第１色の画素が含まれると判定された場合、ＣＰＵ２１は、選択矩形領域データを、テーブル２４４から削除する。
【０１３６】
図１７に示すように、Ｓ１９２（図１６参照）の処理の終了後、ＣＰＵ２１は、Ｓ１９２までの処理によってテーブル２４４から選択矩形領域データが削除されていない場合、選択矩形領域を拡張した候補領域を特定する（Ｓ１９３）。候補領域は、選択矩形領域の辺に沿った方向であって、Ｓ１８５（図１６参照）の処理によって特定された穴方向と反対方向とのなす角度がもっとも小さい方向（以下、「伸長方向」という。）に、選択矩形領域を伸長することによって特定される。
【０１３７】
なお、選択矩形領域の伸長は、Ｓ９（図５参照）の処理によって選択された選択部分画像の領域内で実行され、選択部分画像の領域外まで拡張されない。従って、選択矩形領域が、後述するテーブル２４７に基づいて特定される長さ分伸長されたときに、選択部分画像の領域から外部にはみ出てしまう場合、選択矩形領域は、部分画像の端部に接するまで伸長され、それ以上は伸長されない。
【０１３８】
ＣＰＵ２１は、テーブル２４７（図２２参照）に基づいて、候補領域の特定方法を決定し、決定した特定方法に基づいて選択矩形領域を拡張することによって、候補領域を特定する。ＣＰＵは、特定した候補領域を示す候補領域データを、選択矩形領域データに関連付けてテーブル２４４（図６参照）に格納する。
【０１３９】
図２２を参照し、テーブル２４７について説明する。テーブル２４７では、輪郭線に対応するパンチ穴の形状、及び、穴方向に、候補領域の特定方法が関連付けられている。特定方法は、候補領域及び伸長方向を含む。なお、図２２において、候補領域として格納されている「（ＸＸ，ＹＹ）」は、候補領域の高さＰｈをＸＸとし、候補領域の幅方向の長さＰｗをＹＹとすることを示している。以下、選択矩形領域の高さ及び幅を、それぞれ、Ｃｈ、Ｃｗ（図１８、図２０参照）と表記する。
【０１４０】
テーブル２３７の特定方法（候補領域及び伸長方向）は、形状及び穴方向に応じて次のように規定されている。図２２、図２３を参照して説明する。形状が「円形」、且つ、穴方向が「中央」の場合、選択矩形領域は、そのまま候補領域として特定される。このため、図２２のＮｏ．１で示されるように、候補領域（Ｐｈ，Ｐｗ）として、（Ｃｈ，Ｃｗ）が設定されている。従って、図２３のＮｏ．１で示されるように、候補領域７３の高さＰｈは、輪郭線７１に外接する選択矩形領域７２の高さＣｈに設定され、候補領域７３の幅Ｐｗは、選択矩形領域７２の幅Ｃｗに設定される。
【０１４１】
形状が「円形」、且つ、穴方向が「右」の場合、選択矩形領域を、穴方向の反対側である左方向に伸長することによって、候補領域が特定される。候補領域の伸長方向の長さは、選択矩形領域の長辺である高さＣｈに揃えられる。このため、図２２のＮｏ．２で示されるように、候補領域（Ｐｈ，Ｐｗ）として、（Ｃｈ，Ｃｈ）が設定され、伸長方向として「左方向」が設定されている。従って、図２３のＮｏ．２で示されるように、候補領域７３の高さＰｈ及び幅Ｐｗは、何れも、選択矩形領域７２の高さＣｈに設定される。なお、図２２及び図２３のＮｏ．３については、伸長方向として「右方向」が設定されることを除き、Ｎｏ．２と同様である。
【０１４２】
Ｎｏ．２、３の場合において、選択矩形領域を幅方向に伸長する理由は、次の通りである。穴方向が左右何れかの方向を向いているので、円形の輪郭線のうち穴方向と反対側の部分が欠けている可能性がある。このため、穴方向と反対側、即ち、輪郭線のうち欠けている側に選択矩形領域を伸長することによって、元の円形の輪郭線に外接する矩形状の領域として候補領域が特定される。なお、パンチ穴の形状は真円である場合が多いので、元の円形の輪郭線に外接する候補領域の形状は正方形であることが好ましい。このため、候補領域の対向する２辺の長さを同一とするために、選択矩形領域の短辺の長さが長辺の長さに揃えられ、候補領域が特定される。
【０１４３】
形状が「円形」、且つ、穴方向が「上」の場合、選択矩形領域を、穴方向の反対側である下方向に伸長することによって、候補領域が特定される。候補領域の伸長方向の長さは、選択矩形領域の長辺である幅Ｃｗに揃えられる。このため、図２２のＮｏ．４で示されるように、候補領域（Ｐｈ，Ｐｗ）として、（Ｃｗ，Ｃｗ）が設定され、伸長方向として「下方向」が設定されている。従って、図２３のＮｏ．４で示されるように、候補領域７３の高さＰｈ及び幅Ｐｗは、何れも、選択矩形領域７２の幅Ｃｗに設定される。なお、図２２及び図２３のＮｏ．５については、伸長方向として「上方向」が設定されることを除き、Ｎｏ．４と同様である。又、選択矩形領域を上下方向に伸長する理由については、Ｎｏ．２、３の場合と同様である。
【０１４４】
形状が「円形」、且つ、穴方向が「右上」の場合、穴方向の反対方向は「左下」となる。ここで、選択矩形領域の辺に沿った方向である左右両方向及び上下両方向のうち、「左」及び「下」と、反対方向である「左下」とのなす角度は、同一となり、且つ、何れも、他の方向の場合と比べて角度が最も小さくなる。この場合、選択矩形領域を左方向及び下方向に伸長することによって、候補領域が特定される。候補領域の伸長方向の長さは、選択矩形領域の長辺である幅Ｃｗに「１．２」を乗算した値「Ｃｗ×１．２」に揃えられる。このため、図２２のＮｏ．６で示されるように、候補領域（Ｐｈ，Ｐｗ）として、（１．２Ｃｗ，１．２Ｃｗ）が設定され、伸長方向として「左」「下」が設定されている。従って、図２３のＮｏ．６で示されるように、候補領域７３の高さＰｈ及び幅Ｐｗは、何れも、「Ｃｗ×１．２」に設定される。なお、図２２及び図２３のＮｏ．７〜Ｎｏ．９については、伸長方向として「右下方向」「右上方向」「左上方向」が設定されることを除き、Ｎｏ．６と同様である。
【０１４５】
Ｎｏ．６〜９の場合において、選択矩形領域を２方向に伸長する理由は、次の通りである。穴方向が「右上」「右下」「右上」「左上」方向を向いているので、円形の輪郭線のうち穴方向と反対側の部分が欠けている可能性がある。このため、穴方向と反対側、即ち、輪郭線のうち欠けている側に選択矩形領域を伸長することによって、元の円形の輪郭線に外接する矩形状の領域として候補領域を特定する。なお、パンチ穴の形状は真円である場合が多いので、元の円形の輪郭線に外接する候補領域の形状は正方形であることが好ましい。そこで、輪郭線が円周の半分の円弧を有し、且つ、円弧の２つの端部間を結ぶ直線（直径）が、垂直方向及び水平方向に対して４５度の角度で傾いていることを想定し、候補領域のそれぞれの辺の長さは、選択矩形領域の長辺に１．２を乗算した長さに揃えられ、候補領域が特定される。
【０１４６】
形状が「四角形」、且つ、穴方向が「中央」の場合、選択矩形領域がそのまま候補領域として特定される。このため、図２２のＮｏ．１１で示されるように、候補領域（Ｐｈ，Ｐｗ）として、（Ｃｈ，Ｃｗ）が設定されている。従って、図２３、Ｎｏ．１１で示されるように、候補領域７３の高さＰｈは、選択矩形領域７２の高さＣｈとなり、候補領域７３の幅Ｐｗは、選択矩形領域７２の高さＣｗに設定される。
【０１４７】
形状が「四角形」、且つ、穴方向が「右」の場合、選択矩形領域を、穴方向の反対側である左方向に伸長することによって、候補領域が特定される。選択矩形領域の幅Ｃｗが、選択矩形領域の長辺に対応する高さＣｈ又は幅Ｃｗに揃えられる。このため、図２２のＮｏ．１２で示されるように、候補領域（Ｐｈ，Ｐｗ）として、（Ｃｈ，（Ｃｈ、Ｃｗのうち長い方））が設定され、伸長方向として「左方向」が設定されている。なお、選択矩形領域の幅Ｃｗが短辺の場合、選択矩形領域は伸長され、選択矩形領域の幅Ｃｗが長辺の場合、選択矩形領域は伸長されない。このため、図２３、Ｎｏ．１２で示されるように、候補領域７３の幅Ｐｗは、選択矩形領域７２の長辺（高さＣｈ又は幅Ｃｗ）に設定される。選択矩形領域７２の幅Ｃｗが長辺に対応する場合、選択矩形領域７２がそのまま候補領域７３として設定される。なお、図２２及び図２３のＮｏ．１３については、伸長方向として「右方向」が設定されることを除き、Ｎｏ．１２と同様である。
【０１４８】
Ｎｏ．１１、１２の場合において、選択矩形領域を幅方向に伸長する理由は、次の通りである。穴方向が左右何れかの方向を向いているので、選択矩形領域の幅方向の辺が短辺に対応する場合、四角形の輪郭線のうち穴方向と反対側の部分が欠けている可能性がある。このため、穴方向と反対側、即ち、輪郭線のうち欠けている側に選択矩形領域を伸長することによって、元の四角形の輪郭線に外接する矩形状の領域として候補領域が特定される。なお、パンチ穴の形状は正方形である場合が多いので、元の正方形の輪郭線に外接する候補領域の形状も正方形であることが好ましい。このため、候補領域の対向する２辺の長さを同一とするために、選択矩形領域の短辺の長さが長辺の長さに揃えられ、候補領域が特定される。一方、選択矩形領域の幅方向の辺が長辺に対応する場合、選択矩形領域を幅方向に伸長すると、長辺が更に伸長されることになる。この場合、伸長後の選択矩形領域の形状は、パンチ穴の規格上、適切でない可能性が高い。このため、四角形の輪郭線のうち穴方向と反対側の辺のみが消えているとして、選択矩形領域は伸長されない。
【０１４９】
形状が「四角形」、且つ、穴方向が「上」の場合、選択矩形領域を、穴方向の反対側である下方向に伸長することによって、候補領域が特定される。選択矩形領域の高さＣｈが、選択矩形領域の長辺に対応する高さＣｈ又は幅Ｃｗに揃えられる。このため、図２２のＮｏ．１４で示されるように、候補領域（Ｐｈ，Ｐｗ）として、（（Ｃｈ、Ｃｗのうち長い方），Ｃｗ）が設定され、伸長方向として「下方向」が設定されている。なお、選択矩形領域の高さＣｈが短辺の場合、選択矩形領域は伸長され、選択矩形領域の高さＣｈが長辺の場合、選択矩形領域は伸長されない。このため、図２３、Ｎｏ．１４で示されるように、候補領域７３の高さＰｈは、選択矩形領域７２の長辺（高さＣｈ又は幅Ｃｗ）となる。選択矩形領域７２の高さＣｈが長辺に対応する場合、選択矩形領域７２がそのまま候補領域７３として設定される。なお、図２２及び図２３のＮｏ．１５については、伸長方向として「下方向」が設定されることを除き、Ｎｏ．１４と同様である。又、選択矩形領域を上下方向に伸長する理由については、Ｎｏ．１２、１３の場合と同様である。
【０１５０】
形状が「四角形」、且つ、穴方向が「右上」の場合、穴方向の反対方向は「左下」となる。この場合、選択矩形領域を左方向及び下方向に伸長することによって、候補領域が特定される。選択矩形領域の高さＣｈが長辺の場合、選択矩形領域を左方向に伸長することによって、候補領域が特定される。候補領域の幅Ｐｗは、選択矩形領域の高さＣｈに揃えられる。一方、選択矩形領域の幅Ｃｗが長辺の場合、選択矩形領域を下方向に伸長することによって、候補領域が特定される。候補領域の高さＰｈは、選択矩形領域の幅Ｃｗに揃えられる。このため、図２２のＮｏ．１６で示されるように、候補領域（Ｐｈ，Ｐｗ）として、（（Ｃｈ、Ｃｗのうち長い方），（Ｃｈ、Ｃｗのうち長い方））が設定され、伸長方向として「左方向」が設定されている。従って、図２３、Ｎｏ．１６に示すように、候補領域７３の高さＰｈ及び幅Ｐｗは、何れも、選択矩形領域７２の長辺に対応する高さＣｈ又は幅Ｃｗに設定される。なお、図２２及び図２３のＮｏ．１７〜Ｎｏ．１９については、伸長方向として「右下方向」「右上方向」「左上方向」が設定されることを除き、Ｎｏ．１６と同様である。
【０１５１】
上記のように選択矩形領域を伸長する理由は、パンチ穴の形状は正方形である場合が多いので、元の正方形の輪郭線に外接する候補領域の形状も正方形であることが好ましいためである。このため、候補領域の対向する２辺の長さを同一とするために、選択矩形領域の短辺の長さが長辺の長さに揃えられ、候補領域が特定される。
【０１５２】
図１７に示すように、ＣＰＵ２１は、Ｓ１９３の処理の後、選択部分画像の４つの端部の何れかに候補領域が接するか判定する（Ｓ１９４）。具体的には、ＣＰＵ２１は、テーブル２４４に格納された選択部分画像データ及び候補領域データに基づき、それぞれの端部の位置が一致するかを判定することによって、選択部分画像の４つの端部の何れかに候補領域が接するかを判定する。
【０１５３】
具体例を挙げて説明する。図２４に示すように、部分画像７４に輪郭線７５Ａ〜７５Ｅが含まれており、それぞれについて候補領域７６Ａ〜７６Ｅが特定された場合を例に挙げる。ＣＰＵ２１は、Ｓ１９４の処理を実行することによって、候補領域７６Ａ、７６Ｂが、部分画像７４の左端に接していると判定する。ＣＰＵ２１は、候補領域７６Ｃが部分画像７４の上端に接していると判定する。ＣＰＵ２１は、候補領域７６Ｄが部分画像７４の右端に接していると判定する。ＣＰＵ２１は、候補領域７６Ｅが部分画像７４の４つの端部の何れにも接していないと判定する。
【０１５４】
図１７に示すように、ＣＰＵ２１は、Ｓ１９４の処理による判定結果に基づき、Ｓ１９３の処理によって特定された候補領域の大きさを判定するための最小判定サイズ、及び、最大判定サイズを、テーブル２４８（図２５参照）に基づいて特定する（Ｓ１９５）。図２５を参照し、テーブル２４８について説明する。テーブル２４８では、端部位置及び穴方向に、最小判定サイズ及び最大判定サイズが関連付けられている。端部位置は、選択部分画像の４つの端部のうち、候補領域が接する端部の位置を示す。穴方向は、Ｓ１８５（図１６参照）の処理によって特定された穴方向を示す。最小判定サイズは、候補領域の大きさの判定基準となる最小のサイズを示す。最大判定サイズは、候補領域の大きさの判定基準となる最大のサイズを示す。
【０１５５】
テーブル２４８では、選択部分画像の端部に接しない候補領域に対応する最小判定サイズ、及び、最大判定サイズとして、設定情報の穴サイズ下限（図３参照）、及び、穴サイズ上限（図３参照）がそのまま設定されている（Ｎｏ．１７）。一方、選択部分画像の端部に接する候補領域に対応する最小判定サイズ、及び、最大判定サイズは、設定情報の穴サイズ下限、及び、穴サイズ上限より小さくなるように設定されている（Ｎｏ．１〜１６）。又、候補領域に含まれる輪郭線の穴方向に応じて、穴サイズ下限に基づく最小判定サイズの特定方法、及び、穴サイズ上限に基づく最大判定サイズの特定方法は異なっている。
【０１５６】
具体例を挙げて説明する。例えば、図２４に示すように、ＣＰＵ２１は、Ｓ１９４の処理によって、候補領域７６Ｅが部分画像７４に接していないと判定する。又、ＣＰＵ２１は、Ｓ１８５によって、輪郭線７５Ｅの穴方向を「中央」と判定する。このため、ＣＰＵ２１は、図２５に示すテーブル２４８のうち「接しない」に対応する判定最小サイズ「穴サイズ下限」（Ｈｓｚ（ｍｉｎ））、及び、判定最大サイズ「穴サイズ上限」（Ｈｓｚ（ｍａｘ））を特定する（Ｎｏ．１７）。
【０１５７】
このように、候補領域７６Ｅが部分画像７４に接しない場合、最小判定サイズとして、設定情報の穴サイズ下限（図３参照）が特定され、最大判定サイズとして、設定情報の穴サイズ上限（図３参照）が特定される。この理由は、次の通りである。候補領域に含まれる輪郭線は全て選択部分の内側に収まっているので、輪郭線は部分的に欠けていない可能性が高い。このため、設定情報の穴サイズ上限及び穴サイズ下限（図３参照）が、そのまま、判定最小サイズ及び判定最大サイズとして用いられる。
【０１５８】
例えば、図２４に示すように、ＣＰＵ２１は、Ｓ１９４の処理によって、候補領域７６Ａが部分画像７４の左端に接していると判定する。又、ＣＰＵ２１は、Ｓ１８５によって、輪郭線７５Ａの穴方向を「右」と判定する。このため、ＣＰＵ２１は、図２５に示すテーブル２４８のうち「左端」「右」に対応する判定最小サイズ「穴サイズ下限／２」（Ｈｓｚ（ｍｉｎ）／２）、及び、判定最大サイズ「穴サイズ上限−１」（Ｈｓｚ（ｍａｘ）−１）を特定する（Ｎｏ．１）。
【０１５９】
このように、候補領域７６Ａに対応する穴方向「右」が、部分画像７４のうち候補領域７６Ａが接する左端側と反対側（右）を向いている場合、最小判定サイズとして、設定情報の穴サイズ下限（図３参照）を２で除算した「穴サイズ下限／２」が特定され、最大判定サイズとして、設定情報の穴サイズ上限（図３参照）から１減算した「穴サイズ上限−１（画素分の長さ）」が特定される。なお、テーブル２４８のうちＮｏ．２、３、５〜７、９〜１１、１３〜１５についても同様、最小判定サイズとして「穴サイズ下限／２」が特定され、最大判定サイズとして「穴サイズ上限−１（画素分の長さ）」が特定される。候補領域７６Ｄについても同様である。
【０１６０】
テーブル２４８において、上記の場合に対応する最小判定サイズとして「穴サイズ下限／２」が設定される理由は、次の通りである。例えば、候補領域７６Ａに含まれる輪郭線７５Ａは、パンチ穴に対応する輪郭線全体のうち、穴方向「右」の一部であり、穴方向と反対側である左側部分が、部分画像７４の端部で分断されている可能性がある。これに対し、穴サイズ下限の半分（Ｈｓｚ（ｍｉｎ）／２、図２４参照）が最小判定サイズに設定されることによって、候補領域７６Ａの半分以上が部分画像７４に含まれている場合に、この領域に含まれるパンチ穴画像を除去の対象とすることができる。
【０１６１】
テーブル２４８において、上記の場合に対応する最大判定サイズとして、「穴サイズ上限−１」が設定される理由は、次の通りである。Ｓ１０９（図１３参照）の処理によってＳｏｂｅｌフィルタを用いたフィルタリングが実行される場合、輪郭線が１画素分拡大する可能性がある。但し、輪郭線が部分画像の端部に接している場合、Ｓｏｂｅｌフィルタを用いたフィルタリングが実行された場合でも、輪郭線は、部分画像の外側に拡大しない。このように、輪郭線が部分画像の端部に接している場合と接していない場合とで、フィルタリング後の輪郭線の大きさが１画素分相違する可能性がある。このため、候補領域が部分画像の端部に接している場合の最大判定サイズは、穴サイズ上限から１画素分の長さを減算した「穴サイズ上限−１」され、候補領域が部分画像の端部に接しない場合の最大判定サイズである「穴サイズ上限」と区別される。
【０１６２】
又、例えば、図２４に示すように、ＣＰＵ２１は、Ｓ１９４の処理によって、候補領域７６Ｃが部分画像７４の上端に接していると判定する。又、ＣＰＵ２１は、Ｓ１８５によって、輪郭線７５Ｃの穴方向を「上」と判定する。このため、ＣＰＵ２１は、図２５に示すテーブル２４８のうち「上端」「その他」に対応する判定最小サイズ「穴サイズ下限−１」（Ｈｓｚ（ｍｉｎ）−１）、及び、判定最大サイズ「穴サイズ上限−１」（Ｈｓｚ（ｍａｘ）−１）を特定する（Ｎｏ．１２）。
【０１６３】
このように、候補領域７６Ｃに対応する穴方向「上」が、部分画像７４のうち候補領域７６Ｃが接する上端側と同一側（上）を向いている場合、最小判定サイズとして、設定情報の穴サイズ下限（図３参照）から１減算した「穴サイズ下限−１（画素分の長さ）」が設定され、最大判定サイズとして、設定情報の穴サイズ上限（図３参照）から１減算した「穴サイズ上限−１（画素分の長さ）」が設定される。なお、候補領域７６Ｃは、矩形領域が下側に拡張されて生成されている。このため、最小判定サイズとして、穴サイズ下限を２で除算する演算は不要となる。なお、テーブル２４８のうちＮｏ．４、８、１６についても同様、最小判定サイズとして「穴サイズ下限−１」が設定され、最大判定サイズとして「穴サイズ上限−１」が設定される。
【０１６４】
テーブル２４８において、上記の場合に対応する最小判定サイズとして、「穴サイズ下限−１」が設定される理由は、次の通りである。例えば、候補領域７６Ｃに含まれる輪郭線７５Ｃは、パンチ穴に対応する輪郭線全体のうち、穴方向「上」の一部である可能性がある。しかし、候補領域７６Ｃに対応する穴方向は、候補領域７６Ａの場合と異なり、部分画像７４のうち候補領域７６Ｃが接する上端と同じ「上」である。このため、輪郭線７５Ｃは、部分画像７４の端部で分断されていない可能性が高い。
【０１６５】
一方、Ｓ１０９（図１３参照）の処理によってＳｏｂｅｌフィルタを用いたフィルタリングが実行される場合、輪郭線が１画素分拡大する可能性がある。但し、輪郭線が部分画像の端部に接している場合、Ｓｏｂｅｌフィルタを用いたフィルタリングが実行された場合でも、輪郭線は、部分画像の外側に拡大しない。このように、輪郭線が部分画像の端部に接している場合といない場合とで、フィルタリング後の輪郭線の大きさが１画素分相違する可能性がある。このため、ＣＰＵ２１は、候補領域が部分画像の端部に接している場合の最小判定サイズは、穴サイズ下限から１画素分の長さを減算した「穴サイズ下限−１」とされ、候補領域が部分画像の端部に接しない場合の最小判定サイズである「穴サイズ下限」と区別される。なお、最大判定サイズとして「穴サイズ上限−１」が設定される理由についても同様である。
【０１６６】
又、例えば、図２４に示すように、ＣＰＵ２１は、Ｓ１９４の処理によって、候補領域７６Ｂが部分画像７４の左端に接していると判定する。又、ＣＰＵ２１は、Ｓ１８５によって、輪郭線７５Ｂの穴方向を「中央」と判定する。このため、ＣＰＵ２１は、図２５に示すテーブル２４８のうち「左端」「その他」に対応する判定最小サイズ「穴サイズ下限−１」、及び、判定最大サイズ「穴サイズ上限−１」を特定する（Ｎｏ．４）。このように、候補領域７６Ｃに対応する穴方向が「中央」の場合、最小判定サイズとして、穴サイズ下限から１減算した「穴サイズ下限−１（画素分の長さ）」が設定され、最大判定サイズとして「穴サイズ上限−１（画素分の長さ）」が設定される。なお、「穴サイズ下限−１」「穴サイズ上限−１」が設定される理由については、上記の候補領域７６Ｃの場合と同様である。
【０１６７】
図１７に示すように、ＣＰＵ２１は、Ｓ１９５の処理によって最小判定サイズ及び最大判定サイズを特定した後、Ｓ１９２までの処理によってテーブル２４４から選択矩形領域データが削除されていない場合、候補領域の高さ及び幅と、最小判定サイズとを比較する。ＣＰＵ２１は、候補領域の高さ及び幅の少なくとも一方が、最小判定サイズよりも小さい場合、候補領域データ、及び、選択矩形領域データを、テーブル２４４（図６参照）から削除する（Ｓ１９７）。ＣＰＵ２１は、候補領域の高さ及び幅と、最大判定サイズとを比較する。ＣＰＵ２１は、候補領域の高さ及び幅の少なくとも一方が、最大判定サイズよりも大きい場合、候補領域データ、及び、選択矩形領域データを、テーブル２４４から削除する（Ｓ１９９）。
【０１６８】
ＣＰＵ２１は、Ｓ１９９までの処理によってテーブル２４４から選択矩形領域データが削除されていない場合、中央の特定の領域（以下、「第２中央領域」という。）を特定する（Ｓ２００）。第２中央領域の形状は、候補領域に含まれる輪郭線に基づきＳ１９１（図１６参照）の処理によって特定された形状に応じて異なる。詳細は後述する。ＣＰＵ２１は、特定した第２中央領域を示す第２中央領域データを、対応する選択矩形領域データ、及び、候補領域データに関連付けて、テーブル２４４に格納する。
【０１６９】
図２６を参照し、第２中央領域の詳細について説明する。図２６（Ａ）に示すように、候補領域７７Ｂに含まれる輪郭線７７Ａの形状が円形と特定された場合を例に挙げる。この場合、ＣＰＵ２１は、候補領域７７Ｂの高さ方向及び幅方向のそれぞれを３等分し、９つの分割領域を特定する。ＣＰＵ２１は、９つの分割領域のうち、中心の分割領域７７１を抽出する。ＣＰＵ２１は、分割領域７７１の高さ方向及び幅方向のそれぞれを３等分し、９つの分割領域を特定する。ＣＰＵ２１は、９つの分割領域のうち、左上、右上、左下、及び、右下の分割領域を除く十字型の分割領域を、第２中央領域７７Ｃとして特定する。又、ＣＰＵ２１は、円形の一部が欠けている輪郭線の場合も、完全な円形の輪郭線７７Ａと同じ方法で、第２中央領域７７Ｃを特定する。なお、特定される第２中央領域７７Ｃは、第１中央領域６４５（図１８参照）よりも大きくなる。その理由は、第１中央領域は矩形領域に対して設定されるのに対し、第２中央領域は、矩形領域が伸長された候補領域に対して設定されるためである。
【０１７０】
図２６（Ｂ）に示すように、候補領域７８Ｂに含まれる輪郭線７８Ａの形状が四角形と特定された場合を例に挙げる。なお、輪郭線７８Ａに基づいて特定される候補領域には、正方形、幅方向に長い長方形、及び、高さ方向に長い長方形の３つの場合がある。これらの場合、ＣＰＵ２１は、候補領域７８Ｂの高さ方向及び幅方向のそれぞれを３等分し、９つの分割領域を特定する。ＣＰＵ２１は、９つの分割領域のうち中心の矩形状の分割領域を、第２中央領域７８Ｃとして特定する。なお、ＣＰＵ２１は、四角形の一部が欠けている輪郭線の場合も、完全な四角形の輪郭線７８Ａと同じ方法で、第２中央領域７８Ｃを特定する。又、特定される第２中央領域７８Ｃは、第１中央領域６９５（図２０参照）よりも大きくなる。なお、図２６（Ａ）の第２中央領域７８Ｃは、図２６（Ｂ）の第２中央領域７８Ｃの四隅を矩形状に切り取った形状を有している。
【０１７１】
例えば、図２７に示すように、図２４の場合と同じ輪郭線７５Ａ〜７５Ｅが部分画像７４に含まれ、それぞれについて候補領域７６Ａ〜７６Ｅが特定された場合を例に挙げる。この場合、それぞれの候補領域内に、第２中央領域７７１Ｃ、７７２Ｃ、７７３Ｃ、７７５Ｃ、７８４Ｃが特定される。
【０１７２】
なお、候補領域７６Ａについては、対応する輪郭線７５Ａは円形であるが、部分画像７４の端部に候補領域７６Ａが接しており、候補領域７６Ａは、正方形でなく長方形となっている。この場合、図２６（Ａ）に示す第２中央領域７７Ｃの幅方向の長さが縮小された第２中央領域７７１Ｃが特定される（Ｓ２００）。なお、候補領域７６Ａの幅に対する第２中央領域７７１Ｃの幅の比率は、候補領域が正方形における１／３と異なり、１／４となる。パンチ穴の影の影響によって、輪郭線は、影が無い場合と比較して、太くなっている場合がある。また、部分画像の端部に輪郭線が接することに応じて輪郭線の一部が欠けた場合、第２中央領域７７１Ｃのサイズは、欠けた輪郭線を含む長方形の候補領域７６Ａに基づいて決定される。このため、第２中央領域７７１Ｃと輪郭線との距離は、輪郭線が欠けていない場合と比較して近くなる可能性がある。ＣＰＵ２１は、影に対応する画像が第２中央領域に重複することを回避するため、第２中央領域を小さくしている。候補領域７６Ｄと第２中央領域７８４Ｃとの関係についても同一である。
【０１７３】
図１７に示すように、ＣＰＵ２１は、特定した第２中央領域に、第１色の画素が含まれているか判定する。ＣＰＵ２１は、第１色の画素が含まれていると判定した場合、候補領域データ、及び、選択矩形領域データを、テーブル２４４から削除する（Ｓ２０１）。理由は、第２中央領域に第１画素の画素が含まれている場合、輪郭線の形状が周回状でないか、又は、中央にノイズが含まれている可能性があるためである。この場合、輪郭線に対応する画像はパンチ穴画像である可能性が低いため、テーブル２４４から削除される。
【０１７４】
例えば、図２０（Ｊ）に示すように、第１中央領域に、第１色の画素が含まれず、Ｓ１９２の処理によって選択矩形領域データがテーブル２４４から削除されない場合がある。この場合でも、第２中央領域に第１色の画素が含まれると判断されることによって、Ｓ２０１の処理によって、候補領域データ及び選択矩形領域データがテーブル２４４から削除される。
【０１７５】
なお、Ｓ１９２（図１６参照）の処理によって、第１中央領域に第１色の画素が含まれている場合に選択矩形領域データを削除する処理が実行されている。これに対し、第２中央領域は第１領域と比べて面積が大きい。このため、パンチ穴画像に対応する輪郭線の形状と類似する、パンチ穴画像以外の画像に対応する選択矩形領域データを、テーブル２４４から高い精度で削除できる。
【０１７６】
ＣＰＵ２１は、Ｓ２０１までの処理によってテーブル２４４から選択矩形領域データが削除されていない場合、除外処理（図２８参照）を実行する（Ｓ２０３）。図２８を参照し、除外処理について説明する。ＣＰＵ２１は、ＣＰＵ２１は、候補領域のうち処理領域に含まれる部分（以下、「領域内部分」という。）を特定する。ＣＰＵ２１は、拡張領域に含まれ、且つ、処理領域に含まれない部分（以下、「領域外部分」という。）を特定する。ＣＰＵ２１は、候補領域のうち領域外部分の幅方向の長さを特定する（Ｓ４４１）。以下、候補領域のうち領域外部分の幅方向の長さを、「幅はみ出し量」という。
【０１７７】
ＣＰＵ２１は、候補領域全体の幅方向の長さに対する、幅はみ出し量の割合が、５０％以上か判定する（Ｓ４４３）。ＣＰＵ２１は、幅はみ出し量の割合が５０％以上と判定した場合（Ｓ４４３：ＹＥＳ）、候補領域データ、及び、選択矩形領域データを、テーブル２４４から削除する（Ｓ４５１）。ＣＰＵ２１は、除外処理を終了し、処理を抽出処理（図１７参照）に戻す。一方、ＣＰＵ２１は、幅はみ出し量の割合が５０％よりも小さいと判定した場合（Ｓ４４３：ＮＯ）、処理をＳ４４５に進める。
【０１７８】
具体例を挙げて説明する。図２９に示すように、第２取得処理（Ｓ６３、図１１参照）によって、左処理領域４３Ａが幅方向に拡張され、左拡張領域４３Ｇが設定された場合を例に挙げる。元画像４には、輪郭線に基づいて特定された候補領域８１Ａ〜８１Ｆが含まれている。これらのうち、左拡張領域４３Ｇに対応する部分画像には、候補領域８１Ａ〜８１Ｅが含まれている。
【０１７９】
候補領域８１Ａは、左処理領域４３Ａの外側に配置されている。この場合、全ての部分が領域外部分として特定されるので、幅はみ出し量の割合として１００％が算出される。候補領域８１Ｄは、左処理領域４３Ａの内側に配置されている。この場合、全ての領域が領域内部分として特定されるので、幅はみ出し量の割合として０％が算出される。候補領域８１Ｂ、８１Ｃ、８１Ｅは、左側の一部分が左処理領域４３Ａの内側に配置され、残りの部分が左処理領域４３Ａの外側に配置されている。この場合、候補領域全体の幅方向の長さに対する、左処理領域４３Ａよりも左側に配置された部分の幅方向の長さの割合が、幅はみ出し量の割合として算出される。ここで、候補領域８１Ｂの幅はみ出し量の割合は、５０％よりも大きく、候補領域８１Ｃ、８１Ｅの幅はみ出し量の割合は、５０％よりも小さいとする。
【０１８０】
以上の場合、ＣＰＵ２１は、Ｓ４４３の処理によって、候補領域８１Ａ、８１Ｂに対応する幅はみ出し量の割合が、５０％以上であると判定する（Ｓ４４３：ＹＥＳ）。ＣＰＵ２１は、候補領域８１Ａ、８１Ｂに対応する候補領域データ、及び、選択矩形領域データを、テーブル２４４から削除する（Ｓ４５１）。一方、ＣＰＵ２１は、候補領域８１Ｃ、８１Ｄ、８１Ｅに対応する幅はみ出し量の割合が、５０％よりも小さくなると判定する（Ｓ４４３：ＮＯ）。この場合、ＣＰＵ２１は、候補領域データ及び選択矩形領域データを、テーブル２４４から削除しない。
【０１８１】
又、図３０に示すように、第２取得処理（Ｓ６３、図１１参照）によって、上処理領域４３Ｅが幅方向及び高さ方向に拡張され、上拡張領域４３Ｉが設定された場合を例に挙げる。上拡張領域４３Ｉに対応する部分画像には、候補領域８１Ｅ、８１Ｆが含まれている。候補領域８１Ｅは、右上の一部分が上処理領域４３Ｅの内側に配置され、残りの部分が上処理領域４３Ｅの外側に配置されている。候補領域８１Ｆは、左上の一部分が上処理領域４３Ｅの内側に配置され、残りの部分が上処理領域４３Ｅの外側に配置されている。この場合、候補領域全体の幅方向の長さに対する、上処理領域４３Ｅよりも左側又は右側に配置された部分の幅方向の長さの割合が、幅はみ出し量の割合として算出される。なお、候補領域８１Ｅの幅方向のはみ出し量の割合は、５０％よりも大きく、候補領域８１Ｆの幅方向のはみ出し量の割合は、５０％よりも小さいとする。
【０１８２】
以上の場合、ＣＰＵ２１は、Ｓ４４３の処理によって、候補領域８１Ｅに対応する幅はみ出し量の割合が、５０％以上であると判定する（Ｓ４４３：ＹＥＳ）。ＣＰＵ２１は、候補領域８１Ｅに対応する候補領域データ、及び、選択矩形領域データを、テーブル２４４から削除する（Ｓ４５１）。一方、ＣＰＵ２１は、候補領域８１Ｆに対応する幅はみ出し量の割合が、５０％よりも小さくなると判定する。この場合、ＣＰＵ２１は、候補領域データ及び選択矩形領域データを、テーブル２４４から削除しない。
【０１８３】
図２８に示すように、ＣＰＵ２１は、次に、選択部分画像が、上拡張領域又は下拡張領域に対応する部分画像の場合（例えば、図３０参照）、Ｓ４４５、Ｓ４４７の処理を実行する。なお、選択部分画像が、左拡張領域又は右拡張領域に対応する部分画像の場合（例えば、図２９参照）、それぞれの上側又は下側に候補領域がはみ出ないため、除外処理を終了し、処理を抽出処理（図１７参照）に戻す。
【０１８４】
ＣＰＵ２１は、候補領域のうち領域外部分の高さ方向の長さを特定する（Ｓ４４５）。以下、候補領域のうち領域外部分の高さ方向の長さを、「高さはみ出し量」という。ＣＰＵ２１は、候補領域全体の高さ方向の長さに対する、高さはみ出し量の割合が、５０％以上か判定する（Ｓ４４７）。ＣＰＵ２１は、高さはみ出し量の割合が５０％以上と判定した場合（Ｓ４４７：ＹＥＳ）、候補領域データ、及び、選択矩形領域データを、テーブル２４４から削除する（Ｓ４５１）。ＣＰＵ２１は、除外処理を終了し、処理を抽出処理（図１７参照）に戻す。一方、ＣＰＵ２１は、高さはみ出し量の割合が５０％よりも小さいと判定した場合（Ｓ４４７：ＮＯ）、除外処理を終了し、処理を抽出処理（図１７参照）に戻す。
【０１８５】
具体例を挙げて説明する。図３０に示すように、第２取得処理（Ｓ６３、図１１参照）によって、上処理領域４３Ｅが幅方向及び高さ方向に拡張され、上拡張領域４３Ｉが設定された場合を例に挙げる。上拡張領域４３Ｉに対応する部分画像には、候補領域８１Ｅ、８１Ｆが含まれている。なお、Ｓ４４３（図２８参照）の処理によって幅はみ出し量の割合が５０％よりも小さくなると判定された候補領域８１Ｆについて、候補領域８１Ｆの高さ方向のはみ出し量の割合は、５０％以上であるとする。この場合、ＣＰＵ２１は、Ｓ４４７の処理によって、候補領域８１Ｆに対応する高さはみ出し量の割合が、５０％以上であると判定する（Ｓ４４７：ＹＥＳ）。ＣＰＵ２１は、候補領域８１Ｆに対応する候補領域データ、及び、選択矩形領域データを、テーブル２４４から削除する（Ｓ４５１）。
【０１８６】
つまり、左拡張領域４３Ｇに対応する部分画像に基づいて幅方向の判定（Ｓ４４３）が実行された場合、候補領域８１Ｃ、８１Ｄ、８１Ｅに対応する候補領域データ及び選択矩形領域データがテーブル２４４（図２９参照）に残る。なお、左拡張領域４３Ｇに対応する部分画像に基づいて高さ方向の判定（Ｓ４４７）は実行されない。一方、上拡張領域４３Ｉに対応する部分画像に基づいて幅方向の判定（Ｓ４４３）が実行された場合、候補領域８１Ｆに対応する候補領域データ及び選択矩形領域データがテーブル２４４に残るが、高さ方向の判定（Ｓ４４７）が実行された場合、テーブル２４４に候補領域８１Ｆは残らず、全て削除される。
【０１８７】
図１７に示すように、ＣＰＵ２１は、除外処理（Ｓ２０３）の終了後、Ｓ８３（図１３参照）の処理によって、選択部分画像の解像度が１００ｄｐｉに縮小されている場合、候補領域内の解像度が属性情報の解像度（図２参照）となるように、選択部分画像のうち候補領域内のデータを変換する（Ｓ２０５）。ＣＰＵ２１は、Ｓ１７５（図１６参照）の処理によって、テーブル２４４（図６参照）に格納された少なくとも１つの矩形領域データの全てを選択したか判定する（Ｓ２０７）。ＣＰＵ２１は、選択されていない矩形情報データがテーブル２４４に残っていると判定した場合（Ｓ２０７：ＮＯ）、処理をＳ１７５（図１６参照）に戻す。ＣＰＵ２１は、選択されていない矩形情報データのうち１つをテーブル２４４から選択し（Ｓ１７５）、これを選択矩形領域データとして、Ｓ１７７（図１６参照）〜Ｓ２０５の処理を繰り返す。ＣＰＵ２１は、テーブル２４４に格納された少なくとも１つの矩形領域データの全てを、Ｓ１７５の処理によって選択したと判定した場合（Ｓ２０７：ＹＥＳ）、抽出処理を終了し、処理をメイン処理（図５参照）に戻す。
【０１８８】
図５に示すように、ＣＰＵ２１は、テーブル２４４（図４参照）に格納された第１画像データに対して抽出処理（Ｓ１３）を実行した後、テーブル２４４（図６参照）に格納された第２画像データに対して抽出処理を実行する（Ｓ１５）。第２画像データに対して実行される抽出処理は、第１データに対して実行される抽出処理と同一であるので、説明を省略する。Ｓ１３、Ｓ１５の処理によって抽出処理が実行されることによって、第１画像に対応する矩形領域データ及び候補領域データと、第２画像に対応する矩形領域データ及び候補領域データが、テーブル２４４格納された状態になる。ＣＰＵ２１は、第１画像に対応する矩形領域データ及び候補領域データに基づいて、穴判定処理（図３１参照）を実行する（Ｓ１７）。
【０１８９】
＜工程Ｂ２：穴判定処理＞
図３１を参照し、穴判定処理について説明する。ＣＰＵ２１は、テーブル２４４（図６参照）に記憶された候補領域データのうち１つを選択する（Ｓ２１１）。以下、選択された候補領域データを、「選択候補領域データ」といい、選択候補領域データに対応する候補領域を、「選択候補領域」という。選択候補領域データに対応する矩形領域データを、「選択矩形領域データ」という。選択矩形領域データに対応する矩形領域を、「選択矩形領域」という。
【０１９０】
ＣＰＵ２１は、テーブル２４４のうち、選択候補領域データに関連付けられた第２中央領域データを抽出する。ＣＰＵ２１は、第２中央領域データによって示される第２中央領域を特定する（Ｓ２１３）。なお、テーブル２４４の第２中央領域データは、Ｓ２００（図１７参照）の処理によって、形状（円形又は四角形）に応じた領域（図２６参照）を示すデータとして格納されている。具体的には、図２６（Ａ）に示すように、形状が円形の場合の第２中央領域７７Ｃは、十字状の領域として特定されている。この十字状の領域は、中心の分割領域７７１を９つに分割した分割領域のうち、左上、右上、左下、及び、右下の分割領域を除く領域として定義される。中心の分割領域７７１は、候補領域７７Ｂの高さ方向及び幅方向のそれぞれが３等分された９つの分割領域のうち、中心に位置する分割領域である。一方、図２６（Ｂ）に示すように、形状が四角形の第２中央領域７８Ｃは、候補領域７８Ｂの高さ方向及び幅方向のそれぞれが３等分された９つの分割領域のうち中心の領域であって、矩形状の領域として特定されている。
【０１９１】
ＣＰＵ２１は、テーブル２４４に基づいて第２中央領域を特定した後、第１判定処理（図３２参照）を実行する（Ｓ２１９）。図３２を参照し、第１判定処理について説明する。ＣＰＵ２１は、選択部分画像のうち、Ｓ２１３の処理によって特定された第２中央領域内の複数の画素のそれぞれの輝度を、上記（１）式に基づいて算出する。ＣＰＵ２１は、算出した複数の輝度の中央値を特定する（Ｓ２４１）。ＣＰＵ２１は、算出した中央値から「３」減算した下限値と、算出した中央値に「３」加算した上限値とを算出する。ＣＰＵ２１は、第２中央領域内の複数の画素のうち、下限値と上限値との間の何れかの輝度を示す画素の数を計数する（Ｓ２４３）。ＣＰＵ２１は、第２中央領域内の複数の画素の数に対する、計数した画素の数の割合を算出する。ＣＰＵ２１は、算出した割合が９０％以上であるか判定する（Ｓ２４５）。
【０１９２】
ＣＰＵ２１は、算出した割合が９０％以上と判定した場合（Ｓ２４５：ＹＥＳ）、ＲＡＭ２３に記憶されたフラグに、ばらつきが小さいことを示す「１」を設定する（Ｓ２４７）。ＣＰＵ２１は第１判定処理を終了させ、処理を穴判定処理（図３１参照）に戻す。ＣＰＵ２１は、算出した割合が９０％よりも小さいと判定した場合（Ｓ２４５：ＮＯ）、ＲＡＭ２３に記憶されたフラグに、ばらつきが大きいことを示す「０」を設定する（Ｓ２４９）。ＣＰＵ２１は第１判定処理を終了させ、処理を穴判定処理（図３１参照）に戻す。
【０１９３】
図３１に示すように、ＣＰＵ２１は、第１判定処理（Ｓ２１９）の終了後、ＲＡＭ２３に記憶されたフラグに設定された値に基づいて、選択部分画像における第２中央領域内の画素の輝度のばらつきが小さいかを判定する（Ｓ２２１）。ＣＰＵ２１は、フラグに「１」が設定されている場合、輝度のばらつきが小さいと判定する（Ｓ２２１：ＹＥＳ）。この場合、ＣＰＵ２１は処理をＳ２２３に進める。一方、ＣＰＵ２１は、フラグに「０」が設定されている場合、輝度のばらつきが大きいと判定する（Ｓ２２１：ＮＯ）。この場合、ＣＰＵ２１は、選択候補領域データ及び選択矩形領域データを、テーブル２４４（図６参照）から削除する（Ｓ２３３）。ＣＰＵ２１は処理をＳ２３５に進める。
【０１９４】
上記において、輝度のばらつきが大きい場合に選択候補領域データ及び矩形領域データをテーブル２４４から削除する理由は、次の通りである。第２中央領域内の画像は、原稿に形成されたパンチ穴を介して、画像読取装置１のイメージスキャナが読み取った背景部材に対応する。ここで、背景部材の輝度は均一であり、ばらつきは小さい。このため、第２中央領域内の画素の輝度のばらつきが大きい場合、背景部材に対応せず、パンチ穴画像でない可能性が高い。この場合、候補領域は、パンチ穴画像と異なる別の画像に基づいて特定された領域である可能性が高いので、対応する選択候補領域データ及び選択矩形領域データが、テーブル２４４から削除される。
【０１９５】
ＣＰＵ２１は、第２判定処理（図３３参照）を実行する（Ｓ２２３）。図３３を参照し、第２判定処理について説明する。ＣＰＵ２１は、選択部分画像のうち第２中央領域内の複数の画素のそれぞれの彩度を、上記（４）式に基づいて算出する（Ｓ２６１）。ＣＰＵ２１は、算出した複数の彩度の最大値を特定する。ＣＰＵ２１は、特定した彩度の最大値が１６以上か判定する（Ｓ２６３）。ＣＰＵ２１は、彩度の最大値が「１６」よりも小さいと判定した場合、（Ｓ２６３：ＮＯ）、ＲＡＭ２３に記憶されたフラグに、無彩色に近い色であることを示す「１」を設定する（Ｓ２６５）。ＣＰＵ２１は第２判定処理を終了させ、処理を穴判定処理（図３１参照）に戻す。ＣＰＵ２１は、彩度の最大値が「１６」以上と判定した場合（Ｓ２６３：ＹＥＳ）、ＲＡＭ２３に記憶されたフラグに、有彩色に近い色であることを示す「０」を設定する（Ｓ２６７）。ＣＰＵ２１は第２判定処理を終了させ、処理を穴判定処理（図３１参照）に戻す。
【０１９６】
図３１に示すように、ＣＰＵ２１は、第２判定処理（Ｓ２２３）の終了後、ＲＡＭ２３に記憶されたフラグに設定された値に基づいて、選択部分画像における第２中央領域内の画素の色が、無彩色に近い色であるかを判定する（Ｓ２２５）。ＣＰＵ２１は、フラグに「１」が設定されている場合、無彩色に近い色であると判定する（Ｓ２２５：ＹＥＳ）。この場合、ＣＰＵ２１は処理をＳ２２７に進める。一方、ＣＰＵ２１は、フラグに「０」が設定されている場合、有彩色に近い色であると判定する（Ｓ２２５：ＮＯ）。この場合、ＣＰＵ２１は、選択候補領域データ及び選択矩形領域データを、テーブル２４４（図６参照）から削除する（Ｓ２３３）。ＣＰＵ２１は処理をＳ２３５に進める。
【０１９７】
上記において、有彩色に近い場合に選択候補領域データ及び矩形領域データをテーブル２４４から削除する理由は、次の通りである。背景部材の色は、グレー色又は白色であり、何れも無彩色である。このため、第２中央領域内の画素の色が有彩色に近い場合、背景部材に対応せず、パンチ穴画像でない可能性が高い。この場合、候補領域は、パンチ穴画像と異なる別の画像に基づいて特定された領域である可能性が高いので、対応する選択候補領域データ及び選択矩形領域データが、テーブル２４４から削除される。
【０１９８】
ＣＰＵ２１は、第３判定処理（図３４参照）を実行する（Ｓ２２７）。図３４を参照し、第３判定処理について説明する。ＣＰＵ２１は、Ｓ２４１（図３２参照）の処理によって、第２中央領域内の複数の画素のそれぞれについて算出された輝度の中央値を取得する（Ｓ２８１）。ＣＰＵ２１は、輝度の中央値が「１１２〜１４４」の範囲内であるか判定する（Ｓ２８３）。ＣＰＵ２１は、輝度の中央値が「１１２〜１４４」の範囲内であると判定した場合、（Ｓ２８３：ＹＥＳ）、ＲＡＭ２３に記憶されたフラグに、輝度の中央値が所定範囲内であることを示す「１」を設定する（Ｓ２８５）。ＣＰＵ２１は第３判定処理を終了させ、処理を穴判定処理（図３１参照）に戻す。ＣＰＵ２１は、輝度の中央値が１１２〜１４４の範囲外であると判定した場合（Ｓ２８３：ＮＯ）、ＲＡＭ２３に記憶されたフラグに、輝度の中央値が所定範囲外であることを示す「０」を設定する（Ｓ２８７）。ＣＰＵ２１は第３判定処理を終了させ、処理を穴判定処理（図３１参照）に戻す。
【０１９９】
図３１に示すように、ＣＰＵ２１は、第３判定処理（Ｓ２２３）の終了後、ＲＡＭ２３に記憶されたフラグに設定された値に基づいて、選択部分画像における第２中央領域内の画素の輝度の中央値が、所定範囲内かを判定する（Ｓ２２９）。ＣＰＵ２１は、フラグに「１」が設定されている場合、輝度の中央値が所定範囲内であると判定する（Ｓ２２９：ＹＥＳ）。この場合、ＣＰＵ２１は処理をＳ２３５に進める。一方、ＣＰＵ２１は、フラグに「０」が設定されている場合、輝度の中央値が所定範囲外であると判定する（Ｓ２２９：ＮＯ）。この場合、ＣＰＵ２１は、選択候補領域データ及び選択矩形領域データを、テーブル２４４（図６参照）から削除する（Ｓ２３３）。ＣＰＵ２１は処理をＳ２３５に進める。
【０２００】
上記において、輝度の中央値が「１１２〜１４４」の範囲外の場合に選択候補領域データ及び矩形領域データをテーブル２４４から削除する理由は、次の通りである。背景部材は、輝度が「１１２〜１４４」の間の値となるように色が調整されている。このため、第２中央領域内の複数の画素の輝度の中央値が「１１２〜１４４」の範囲外の場合、背景部材の色から離れていることになるので、背景部材に対応せず、パンチ穴画像でない可能性が高い。この場合、候補領域は、パンチ穴画像と異なる別の画像に基づいて特定された領域である可能性が高いので、対応する選択候補領域データ及び選択矩形領域データが、テーブル２４４から削除される。
【０２０１】
図３１に示すように、ＣＰＵ２１は、Ｓ２１１の処理によって、テーブル２４４に格納された候補領域データを全て選択したか判定する（Ｓ２３５）。ＣＰＵ２１は、Ｓ２１１の処理によって選択されていない候補領域データがテーブル２４４に残っていると判定した場合（Ｓ２３５：ＮＯ）、処理をＳ２１１に戻す。ＣＰＵ２１は、テーブル２４４に格納された候補領域データのうち、選択されていない候補領域データの１つを選択し（Ｓ２１１）、これを選択候補領域データとして、Ｓ２１３〜Ｓ２３３の処理を繰り返す。ＣＰＵ２１は、テーブル２４４に格納された候補領域データを全て選択したと判定した場合（Ｓ２３５：ＹＥＳ）、穴判定処理を終了させ、処をメイン処理（図５参照）に戻す。
【０２０２】
図５に示すように、ＣＰＵ２１は、Ｓ１７の処理によって、第１画像を対象とした穴判定処理を実行した後、第２画像を対象として穴判定処理を実行する（Ｓ２１）。第２画像を対象とした穴判定処理は、第１画像を対象とした穴判定処理と同一であるので、説明を省略する。ＣＰＵ２１は、Ｓ２１の処理によって、第２画像を対象とした穴判定処理を実行した後、Ｓ９の処理によって、テーブル２４４に格納された部分画像を全て選択したか判定する（Ｓ２３）。ＣＰＵ２１は、テーブル２４４に格納された部分画像のうち、選択されていない部分画像が残っていると判定した場合（Ｓ２３：ＮＯ）、処理をＳ９に戻す。ＣＰＵ２１は、選択されていない部分画像の１つを、テーブル２４４から選択し（Ｓ９）、これを選択部分画像データとして、Ｓ１１〜Ｓ２１の処理を繰り返す。ＣＰＵ２１は、テーブル２４４に格納された部分画像を、Ｓ９の処理によって全て選択したと判定した場合（Ｓ２３：ＹＥＳ）、処理をＳ２５に進める。ＣＰＵ２１は、決定処理（図３５参照）を実行する（Ｓ２５）。
【０２０３】
＜工程Ｂ３：決定処理＞
図３５を参照し、決定処理について説明する。ＣＰＵ２１は、テーブル２４４（図６参照）に格納された部分画像データのうち何れかを、選択部分画像データとして選択する（Ｓ３１０）。ＣＰＵ２１は、選択部分画像データに関連付けられている第１画像データ及び第２画像データを抽出し、抽出した第１画像データ及び第２画像データのそれぞれに関連付けられた矩形領域データを更に抽出する。ＣＰＵ２１は、抽出した矩形領域データに基づいて、矩形領域の位置を特定する。
【０２０４】
ＣＰＵ２１は、第１画像から特定された矩形領域（以下、「第１矩形領域」という。）と、第２画像から特定された矩形領域（以下、「第２矩形領域」という。）との互いの位置の相違量を算出する。具体的には、ＣＰＵ２１は、第１矩形領域及び第２矩形領域のそれぞれの左端の位置の相違量、右端の位置の相違量、上端の位置の相違量、及び、下端の位置の相違量の平均値を、位置の相違量として算出する。ＣＰＵ２１は、算出した位置の相違量が所定閾値よりも小さい場合、第１矩形領域及び第２矩形領域は近傍に配置されていると判定する。ＣＰＵ２１は、近傍に配置されている第１矩形領域及び第２矩形領域の組み合わせを抽出する（Ｓ３１１）。
【０２０５】
ＣＰＵ２１は、Ｓ３１１の処理によって、近傍に配置されると判定した第１矩形領域及び第２矩形領域の組み合わせを、１つ以上抽出したか判定する（Ｓ３１３）。ＣＰＵ２１は、近傍に配置されると判定した第１矩形領域及び第２矩形領域の組み合わせを抽出しない場合（Ｓ３１３：ＮＯ）、処理をＳ３２５に進める。
【０２０６】
ＣＰＵ２１は、近傍に配置されると判定した第１矩形領域及び第２矩形領域の組み合わせを１つ以上抽出した場合（Ｓ３１３：ＹＥＳ）、抽出した１以上の組み合わせのうち１つを選択する（Ｓ３１５）。ＣＰＵ２１は、選択した組合せに対応する第１矩形領域及び第２矩形領域のサイズの相違量を算出する（Ｓ３１７）。具体的には、ＣＰＵ２１は、第１矩形領域及び第２矩形領域のそれぞれの幅の相違量、及び、高さの相違量の平均値を、サイズの相違量として、組合せ毎に算出する。
【０２０７】
ＣＰＵ２１は、算出したサイズの相違量を所定閾値と比較する（Ｓ３１９）。ＣＰＵ２１は、算出したサイズの相違量が所定閾値よりも大きい場合（Ｓ３１９：ＮＯ）、処理をＳ３２３に進める。
【０２０８】
一方、ＣＰＵ２１は、算出したサイズの相違量が所定閾値以下と判定した場合（Ｓ３１９：ＹＥＳ）、第２矩形領域に対応する矩形領域データ及び候補領域データを削除する（Ｓ３２１）。第２矩形領域に対応する矩形領域データ及び候補領域データを削除する理由は、互いに近傍に配置され、且つ、サイズが相対的に小さい矩形領域に含まれる画像は、パンチ穴画像である可能性が高いためである。ここで、両方の矩形領域データに基づいてパンチ穴画像を除去する処理が実行された場合、類似する領域に対してパンチ穴を除去する処理が重複して実行されることになる。このため、第２矩形領域に対応する矩形領域データ及び候補領域データを削除し、処理が重複することを回避している。ＣＰＵ２１は処理をＳ３２３に進める。
【０２０９】
ＣＰＵ２１は、近傍に配置されると判定した第１矩形領域及び第２矩形領域の組み合わせの全てを、Ｓ３１５の処理によって選択したか判定する（Ｓ３２３）。ＣＰＵ２１は、選択していない組み合わせが残っていると判定した場合（Ｓ３２３：ＹＥＳ）、処理をＳ３１５に戻す。ＣＰＵ２１は、近傍に配置されると判定した組合せのうち選択されていない組み合わせの１つを選択し（Ｓ３１５）、Ｓ３１７〜Ｓ３２１の処理を繰り返す。ＣＰＵ２１は、近傍に配置されると判定した第１矩形領域及び第２矩形領域の組み合わせの全てを選択したと判定した場合（Ｓ３２３：ＮＯ）、処理をＳ３２５に進める。
【０２１０】
ＣＰＵ２１は、Ｓ３１０の処理によって、テーブル２４４に格納された部分画像データの全てを選択したか判定する（Ｓ３２５）。ＣＰＵ２１は、選択されていない部分画像データがテーブル２４４に残っていると判定した場合（Ｓ３２５：ＹＥＳ）、処理をＳ３１０に戻す。ＣＰＵ２１は、選択されていない部分画像データのうち１つを選択し（Ｓ３１０）、これを選択部分データとして、画像Ｓ３１１〜Ｓ３２３の処理を繰り返す。ＣＰＵ２１は、テーブル２４４に格納された部分画像データの全てを選択したと判定した場合（Ｓ３２５：ＮＯ）、決定処理を終了させ、処理をメイン処理（図５参照）に戻す。
【０２１１】
図５に示すように、ＣＰＵ２１は、決定処理（Ｓ２５）の終了後、テーブル２４４に格納された矩形領域データのうち１つを、選択矩形データとして選択する（Ｓ２７）。ＣＰＵ２１は、選択矩形領域データに基づいて色判定処理（図３６参照）を実行する（Ｓ２９）。
【０２１２】
＜工程Ｂ４：色判定処理＞
図３６を参照し、色判定処理について説明する。ＣＰＵ２１は、第１外周領域を特定する。第１外周領域は、選択矩形領域の外周を囲む領域である。第１外周領域の内周と、第１外周領域の外周との間の幅は、第１幅である。図３８（Ａ）に示すように、輪郭線８３に外接する矩形領域８３Ａが選択された場合を例に挙げる。この場合、図３８（Ｂ）に示すように、第１外周領域８４は、矩形領域８３Ａの外周を囲む領域であって、内周と外周との間の幅が第１幅Ｗ１の領域に対応する。第１幅Ｗ１の具体的な値は、例えば１ｍｍである。
【０２１３】
図３６に示すように、ＣＰＵ２１は、元画像のうち、特定した第１外周領域内の複数の画素のそれぞれのＲ値、Ｇ値、Ｂ値の３次元ヒストグラムを算出する（Ｓ３３１）。なお、３次元ヒストグラムを算出するときのＲ値、Ｇ値、Ｂ値のそれぞれのビンの数は、「２５６」（階調）よりも小さく設定される。例えば、Ｇ値、Ｂ値のそれぞれのビンの数は、「１６」に設定される。この理由は、ビンの数が多くなる程、３次元ヒストグラムを算出するまでに要する時間が長くなるためである。３次元ヒストグラムでは、Ｒ値、Ｇ値、Ｂ値の組み合わせ毎に度数が算出される。ＣＰＵ２１は、算出した３次元ヒストグラムに基づき、最も度数の大きいＲ値、Ｇ値、Ｂ値の組み合わせを特定する（Ｓ３３２）。ＣＰＵ２１は、特定したＲ値、Ｇ値、Ｂ値の組み合わせの頻度を、第１最頻値として取得する（Ｓ３３３）。ＣＰＵ２１は、取得した第１最頻値が所定の第１閾値以上か判定する（Ｓ３３５）。ＣＰＵ２１は、第１最頻値が第１閾値以上と判定した場合（Ｓ３３５：ＹＥＳ）、Ｓ３３３の処理によって特定した、最も度数の大きいＲ値、Ｇ値、Ｂ値の組み合わせによって特定される色を、２５６階調となるように平均化し、候補色として設定する（Ｓ３３７）。ＣＰＵ２１は処理をＳ３４５に進める。
【０２１４】
上記のように候補色を決定する理由は、次の通りである。パンチ穴画像に対応する矩形領域の外側の第１外周領域内の色のばらつきの程度が相対的に小さいとき、第１外周領域内の色は、原稿の地色と類似する場合がある。この場合、第１外周領域内の色は、パンチ穴画像を除去するときに画素を塗り潰す塗り潰し色として適切である可能性が高い。このため、ＣＰＵ２１は、第１最頻値が第１閾値以上の場合、第１外周領域内の画素に基づいて算出した色を、塗り潰し色の候補となる候補色として設定する。
【０２１５】
一方、ＣＰＵ２１は、取得した第１最頻値が第１閾値よりも小さいと判定した場合（Ｓ３３５：ＮＯ）、第２外周領域を特定する。第２外周領域は、選択矩形領域の外周を囲む領域である。第２外周領域の内周と、第２外周領域の外周との間の幅は、第１幅よりも大きい第２幅である。第２幅は、第２外周領域の面積が第１外周領域の面積の約２倍となるように設定される。図３８（Ｃ）に示すように、第２外周領域８５は、矩形領域８３Ａの外周を囲む領域であって、内周と外周との間の幅が第２幅Ｗ２の領域に対応する。第２幅Ｗ２は、第１外周領域８４の第１幅Ｗ１よりも大きい。第２幅Ｗ２の具体的な値は、例えば１．４ｍｍである。
【０２１６】
図３６に示すように、ＣＰＵ２１は、元画像のうち、特定した第２外周領域内の複数の画素のそれぞれのＲ値、Ｇ値、Ｂ値の３次元ヒストグラムを算出する（Ｓ３３９）。ＣＰＵ２１は、算出した３次元ヒストグラムに基づき、最も度数の大きいＲ値、Ｇ値、Ｂ値の組み合わせを特定する（Ｓ３４０）。ＣＰＵ２１は、特定したＲ値、Ｇ値、Ｂ値の頻度を、第２最頻値として取得する（Ｓ３４１）。ＣＰＵ２１は、特定したＲ値、Ｇ値、Ｂ値の組み合わせによって特定される色を、２５６階調となるように平均化し、候補色として設定する（Ｓ３４３）。ＣＰＵ２１は処理をＳ３４５に進める。
【０２１７】
上記のように候補色を決定する理由は、次の通りである。図３９に示すように、感圧紙にパンチ穴が形成された場合を例に挙げる。このような場合、パンチ穴の周辺に圧力が加わることに応じて、パンチ穴の周辺に色が付着する場合がある。このため、図３９（Ａ）に示すように、パンチ穴画像８８に対応する矩形領域８３Ａの外側の第１外周領域８４は、原稿の地色と相違する。この場合、第１外周領域内の色は塗り潰し色として適切でない可能性が高い。このため、ＣＰＵ２１は、第１最頻値が第１閾値よりも小さい場合、図３９（Ｂ）に示すように、第１外周領域８４よりも外側の領域を含む第２外周領域８５内の画素に基づいて算出した色を、塗り潰し色の候補となる候補色として設定する。
【０２１８】
図３６に示すように、ＣＰＵ２１は、第３外周領域を特定する。第３外周領域は、選択矩形領域の外周を囲む領域である。第３外周領域の内周と、第３外周領域の外周との間の幅は、１画素分の長さを有する（Ｓ３４５）。図３８（Ｄ）に示すように、第３外周領域８６１は、矩形領域８３Ａの外周を囲む領域であって、内周と外周との間の幅が第３幅Ｗ３の領域に対応する。第３幅Ｗ３は１画素分の長さを有する。具体的な値は、例えば約０．０８ｍｍである。
【０２１９】
図３６に示すように、ＣＰＵ２１は、元画像のうち、特定した第３外周領域内の複数の画素のＲ値、Ｇ値、Ｂ値のそれぞれの平均値（以下、「第１平均値」という。）を算出する（Ｓ３４６）。ＣＰＵ２１は、Ｓ３３７又はＳ３４３の処理によって算出した候補色と、第１平均値との相違量（以下、「第１相違量」という。）を、以下の式（５）によって算出する（Ｓ３４７）。候補色のＲ値、Ｇ値、Ｂ値を、それぞれＲ（０）、Ｇ（０）、Ｂ（０）と表記し、第ｎ平均値（ｎは、１以上の自然数）のＲ値、Ｇ値、Ｂ値を、それぞれＲ（ｎ）、Ｇ（ｎ）、Ｂ（ｎ）と表記する。
第ｎ相違量  ＝  
｜Ｒ（０）−Ｒ（ｎ）｜＋｜Ｇ（０）−Ｇ（ｎ）｜＋｜Ｂ（０）−Ｂ（ｎ）｜  （５）
【０２２０】
ＣＰＵ２１は、第４外周領域を特定する。第４外周領域は、第３外周領域の外周を囲む領域である。第４外周領域の内周と、第４外周領域の外周との間の幅は、１画素分の長さを有する（Ｓ３４９）。図３８（Ｅ）に示すように、第４外周領域８６２は、第３外周領域８６１の外周を囲む領域であって、内周と外周との間の幅が第３幅Ｗ３の領域に対応する。
【０２２１】
図３６に示すように、ＣＰＵ２１は、元画像のうち、特定した第４外周領域内の複数の画素のＲ値、Ｇ値、Ｂ値の平均値（以下、「第２平均値」という。）を算出する（Ｓ３５０）。ＣＰＵ２１は、Ｓ３３７又はＳ３４３の処理によって算出した候補色と、第２平均値との相違量（以下、「第２相違量」という。）を、上記の式（５）によって算出する（Ｓ３５１）。
【０２２２】
図３７に示すように、ＣＰＵ２１は、Ｓ３４７（図３６参照）の処理によって算出した第１相違量と、Ｓ３５１（図３６参照）の処理によって算出した第２相違量とを比較する（Ｓ３５３）。ＣＰＵ２１は、第１相違量が第２相違量以下と判定した場合（Ｓ３５３：ＮＯ）、Ｓ３３７又はＳ３４３の処理によって算出した候補色を示すＲ値、Ｇ値、Ｂ値を、塗り潰し色として、選択矩形領域データに関連付けてテーブル２４４（図６参照）に格納する（Ｓ３５５）。
【０２２３】
上記のように候補色を決定する理由は、次の通りである。図４０に示すように、感圧紙にパンチ穴が形成された場合を例に挙げる。このような場合、パンチ穴に近い程、地色と異なる色の付着の程度（例えば、単位面積あたりにおける、異なる色の割合）は強く、パンチ穴から遠ざかるに従って、地色と異なる色の付着の程度は弱くなる。このため、ＣＰＵ２１は、図４０（Ａ）（Ｂ）に示すように、パンチ穴画像８８に対応する矩形領域８３Ａの外側の第３外周領域８６１と、第３外周領域８６１の外側の第４外周領域８６２とのそれぞれで平均値を算出し、候補色との相違量を算出する。ここで図４０に示すように、パンチ穴に近い程、地色と異なる色の付着の程度が強い場合、内側の第３外周領域８６１に対応する第１相違量は、外側の第４外周領域８６２に対応する第２相違量よりも大きくなる。このような場合、ＣＰＵ２１は、後述する処理（Ｓ３６１〜Ｓ３８１）によって、Ｓ３３７、Ｓ３４３（図３６参照）の処理によって設定した候補色を変更し、塗り潰し色として設定する。一方、図４０の場合と異なり、パンチ穴の周辺の色が地色と類似する場合、第３外周領域８６１に対応する第１相違量は、上記のように、外側の第４外周領域８６２に対応する第２相違量以下になる（Ｓ３５３：ＮＯ）。この場合、ＣＰＵ２１は、Ｓ３３７、Ｓ３４３の処理によって特定した候補色を、塗り潰し色として設定する（Ｓ３５５）。
【０２２４】
図３７に示すように、ＣＰＵ２１は、Ｓ３５５の処理の後、塗り潰し色を算出したときの領域に含まれる画素の色を、２５６階調となるように平均化する。ＣＰＵ２１は、以下の式（６）〜（８）によって、Ｒ値、Ｇ値、Ｂ値のそれぞれに対応する平均Ｒｍ、Ｇｍ、Ｂｍを算出する。領域内に含まれる画素の数を、Ｔと表記する。ｉ（ｉ＝１〜Ｔ）番目の画素のＲ値、Ｇ値、Ｂ値を、それぞれ、Ｒｉ、Ｇｉ、Ｂｉと表記する。
【数１】
0006451461.tif 000002
ＣＰＵ２１は、算出した平均Ｒｍ、Ｇｍ、Ｂｍに基づき、以下の式（９）〜（１１）によって、Ｒ値、Ｇ値、Ｂ値のそれぞれに対応する分散σ（ｒ）２、σ（ｇ）２、σ（ｂ）２を算出する（Ｓ３５７）。
【数２】
0006451461.tif 000003
更に、ＣＰＵ２１は、算出した分散σ（ｒ）２、σ（ｇ）２、σ（ｂ）２のそれぞれの平方根を算出することによって、標準偏差σ（ｒ）、σ（ｇ）、σ（ｂ）を算出する。ＣＰＵ２１は、算出した標準偏差σ（ｒ）、σ（ｇ）、σ（ｂ）を、色のばらつきを示す値（以下、「ばらつき量」という。）として、塗り潰し色に関連付けてテーブル２４４（図６参照）に格納する（Ｓ３５９）。ＣＰＵ２１は、色判定処理を終了し、処理をメイン処理（図５参照）に戻す。
【０２２５】
一方、ＣＰＵ２１は、第１相違量が第２相違量よりも大きいと判定した場合（Ｓ３５３：ＹＥＳ）、変数Ｎ（Ｎは自然数）を５に設定し、第Ｎ外周領域を特定する（Ｓ３６１）。第Ｎ外周領域は、第（Ｎ−１）外周領域の外周を囲む領域である。第Ｎ外周領域の内周と、第Ｎ外周領域の外周との間の幅は、１画素分の長さを有する。例えば、図３８（Ｆ）に示すように、Ｎが５の場合の第Ｎ外周領域である第５外周領域８６３は、第（Ｎ−１）外周領域である第４外周領域８６４の外周を囲む領域であって、内周と外周との間の幅が第３幅Ｗ３の領域に対応する。
【０２２６】
図３６に示すように、ＣＰＵ２１は、元画像のうち、特定した第Ｎ外周領域内の複数の画素のＲ値、Ｇ値、Ｂ値の平均値を算出する（Ｓ３６２）。以下、変数Ｎの場合に算出される平均値を、「第Ｍ平均値」（Ｍは、「Ｍ＝Ｎ−２」の関係を満たす値）という。ＣＰＵ２１は、Ｓ３３７又はＳ３４３の処理によって算出した候補色と第Ｍ平均値との相違量（以下、「第Ｍ相違量」という。）を、上記の式（５）によって算出する（Ｓ３６３）。
【０２２７】
ＣＰＵ２１は、第（Ｍ−１）相違量と第Ｍ相違量とを比較する（Ｓ３６５）。ＣＰＵ２１は、第（Ｍ−１）相違量よりも第Ｍ相違量の方が小さいと判定した場合（Ｓ３６５：ＹＥＳ）、処理をＳ３６７に進める。第（Ｍ−１）相違量よりも第Ｍ相違量の方が小さくなる場合とは、具体的には、図４０に示すように、第Ｎ外周領域がパンチ穴画像８８から遠ざかる（（Ａ）→（Ｂ）→（Ｃ）→（Ｄ））ことによって、地色と異なる色の付着の程度が弱くなり、第Ｎ外周領域内に地色と異なる色が付着していない状態となったことを示している。
【０２２８】
ＣＰＵ２１は、第Ｍ相違量と所定の第２閾値とを比較する（Ｓ３６７）。ＣＰＵ２１は、第Ｍ相違量が第２閾値以上と判定した場合（Ｓ３６７：ＮＯ）、Ｎが所定値以上であるか判定する（Ｓ３６９）。ＣＰＵ２１は、Ｎが所定値よりも小さいと判定した場合（Ｓ３６９：ＮＯ）、Ｎに１を加算して更新する（Ｓ３７０）。ＣＰＵ２１は、処理をＳ３６１に戻す。ＣＰＵ２１は、更新したＮに基づき、第Ｎ外周領域を特定し（Ｓ３６１）、Ｓ３６１〜Ｓ３６７の処理を繰り返す。ＣＰＵ２１は、Ｓ３６７の処理によって第Ｍ相違量が第２閾値よりも小さいと判定した場合（Ｓ３６７：ＹＥＳ）、処理をＳ３７１に進める。この場合、第Ｎ外周領域内の複数の画素に基づいて塗り潰し色を設定することによって、地色に近い色を塗り潰し色に設定できる。又、ＣＰＵ２１は、Ｓ３６９の処理によってＮが所定値以上であると判定した場合も（Ｓ３６９：ＹＥＳ）、処理をＳ３７１に進める。
【０２２９】
ＣＰＵ２１は、元画像のうち、最後の（即ち、第Ｎ）外周領域内の複数の画素のそれぞれのＲ値、Ｇ値、Ｂ値の３次元ヒストグラムを算出する（Ｓ３７１）。ＣＰＵ２１は、算出した３次元ヒストグラムに基づき、最も度数の大きいＲ値、Ｇ値、Ｂ値の組み合わせを特定する（Ｓ３７３）。ＣＰＵ２１は、特定したＲ値、Ｇ値、Ｂ値の組み合わせによって特定される色を、２５６階調となるように平均化し、塗り潰し色として、テーブル２４４（図６参照）に格納する（Ｓ３７５）。ＣＰＵ２１は処理をＳ３５７に進める。ＣＰＵ２１は、第Ｎ外周領域に含まれる画素の色に基づいて、分散を算出する（Ｓ３５７）。ＣＰＵ２１は、第Ｎ外周領域に含まれる画素の色のばらつき量として、分散に基づいて標準偏差を算出する（Ｓ３５９）。ＣＰＵ２１は、算出したばらつき量を、Ｓ３７５の処理によって格納された塗り潰し色に関連付けて、テーブル２４４（図６参照）に格納する。ＣＰＵ２１は、色判定処理を終了し、処理をメイン処理（図５参照）に戻す。
【０２３０】
一方、ＣＰＵ２１は、第Ｍ相違量が第（Ｍ−１）相違量以上と判定した場合（Ｓ３６５：ＮＯ）、処理をＳ３７７に進める。ＣＰＵ２１は、元画像のうち、一つ前の（即ち、第（Ｎ−１））外周領域内の複数の画素のそれぞれのＲ値、Ｇ値、Ｂ値の３次元ヒストグラムを算出する（Ｓ３７７）。ＣＰＵ２１は、算出した３次元ヒストグラムに基づき、最も度数の大きいＲ値、Ｇ値、Ｂ値の組み合わせを特定する（Ｓ３７９）。ＣＰＵ２１は、特定したＲ値、Ｇ値、Ｂ値の組み合わせによって特定される色を、２５６階調となるように平均化し、塗り潰し色として、テーブル２４４（図６参照）に格納する（Ｓ３８１）。ＣＰＵ２１は処理をＳ３５７に進める。ＣＰＵ２１は、第（Ｎ−１）外周領域に含まれる画素の色に基づいて、分散を算出する（Ｓ３５７）。ＣＰＵ２１は、第（Ｎ−１）外周領域に含まれる画素の色のばらつき量として、分散に基づいて標準偏差を算出する（Ｓ３５９）。ＣＰＵ２１は、算出したばらつき量を、Ｓ３８１の処理によって格納された塗り潰し色に関連付けて、テーブル２４４（図６参照）に格納する。ＣＰＵ２１は、色判定処理を終了し、処理をメイン処理（図５参照）に戻す。
【０２３１】
図５に示すように、ＣＰＵ２１は、色判定処理（Ｓ２９）の終了後、色判定処理によってテーブル２４４（図６参照）に格納された塗り潰し色、及び、ばらつき量に基づいて、選択矩形領域データに対応するパンチ穴画像を除去するために、除去処理（図４１参照）を実行する（Ｓ３１）。
【０２３２】
＜工程Ｂ５：除去処理＞
図４１を参照し、除去処理について説明する。ＣＰＵ２１は、設定情報の塗り潰し色（図３参照）として、白色が設定されているか判定する（Ｓ３９１）。ＣＰＵ２１は、白色が設定されていると判定した場合（Ｓ３９１：ＹＥＳ）、テーブル２４４（図６参照）のうち、選択矩形領域データに関連付けられた塗り潰し色を、白色に設定する（Ｓ３９３）。ＣＰＵ２１は、テーブル２４４のうち、選択矩形領域データに関連付けられたばらつき量を「０」に設定する（Ｓ３９３）。ＣＰＵ２１は処理をＳ３９５に進める。ＣＰＵ２１は、設定情報の塗り潰し色として、白色が設定されていないと判定した場合（Ｓ３９１：ＮＯ）、テーブル２４４の塗り潰し色及びばらつき量を変更せず、処理をＳ３９５に進める。
【０２３３】
ＣＰＵ２１は、設定情報の塗り潰し形状（図３参照）が矩形状に決定されているか判定する（Ｓ３９５）。ＣＰＵ２１は、矩形状に決定されている場合、（Ｓ３９５：ＹＥＳ）、テーブル２４４（図６参照）の選択矩形領域データを、塗り潰し領域として格納する（Ｓ３９７）。ＣＰＵ２１は処理をＳ４１５に進める。ＣＰＵ２１は、設定情報の塗り潰し形状として、パンチ穴画像の形状に応じて決定される旨が示されている場合（Ｓ３９５：ＮＯ）、テーブル２４４のうち選択矩形領域データに関連付けられた形状を、塗り潰し領域として格納する（Ｓ３９９）。ＣＰＵ２１は処理をＳ４１５に進める。
【０２３４】
ＣＰＵ２１は、テーブル２４４の塗り潰し領域によって示される領域内の複数の画素のうち１つを選択する（Ｓ４１５）。ＣＰＵ２１は、周知のアルゴリズムに基づいて乱数を算出する。ＣＰＵ２１は、テーブル２４４に格納されたばらつき量に基づき、以下の式（１２）〜（１４）によって、Ｒ値、Ｇ値、Ｂ値毎にノイズ量を算出する（Ｓ４１７）。以下、Ｒ値、Ｇ値、Ｂ値に対応するノイズ量を、それぞれ、Ｐｒ、Ｐｇ、Ｐｂと表記する。算出した乱数をＳと表記する。算出される乱数のうち最大値を、Ｓｍａｘと表記する。
Ｐｒ  ＝  σ（ｒ）×（Ｓ−Ｓｍａｘ／２）／（Ｓｍａｘ／２）    （１２）
Ｐｇ  ＝  σ（ｇ）×（Ｓ−Ｓｍａｘ／２）／（Ｓｍａｘ／２）    （１３）
Ｐｂ  ＝  σ（ｂ）×（Ｓ−Ｓｍａｘ／２）／（Ｓｍａｘ／２）    （１４）
【０２３５】
ＣＰＵ２１は、テーブル２４４のうち、選択矩形領域データに関連付けられた塗り潰し色のＲ値に、Ｐｒを加算する。ＣＰＵ２１は、テーブル２４４のうち選択矩形領域データに関連付けられた塗り潰し色のＧ値に、Ｐｇを加算する。ＣＰＵ２１は、テーブル２４４のうち選択矩形領域データに関連付けられた塗り潰し色のＢ値に、Ｐｂを加算する（Ｓ４１９）。これによって、ノイズが加算された塗り潰し色が生成される。ＣＰＵ２１は、Ｓ４１５の処理によって選択された画素の色を、ノイズが加算された塗り潰し色に設定（即ち、画素値の置換）する（Ｓ４２１）。
【０２３６】
ＣＰＵ２１は、塗り潰し領域内の複数の画素の全てが、Ｓ４１５の処理によって選択されたか判定する（Ｓ４２３）。ＣＰＵ２１は、塗り潰し領域内の全ての画素が選択されていないと判定した場合（Ｓ４２３：ＮＯ）、処理をＳ４１５に戻す。ＣＰＵ２１は、塗り潰し領域内の画素のうち、選択されていない画素の１つを選択し（Ｓ４１５）、Ｓ４１７〜Ｓ４２１の処理を繰り返す。ＣＰＵ２１は、塗り潰し領域内の複数の画素の全てが、Ｓ４１５の処理によって選択されたと判定した場合（Ｓ４２３：ＹＥＳ）、処理をＳ４３１（図４２参照）に進める。
【０２３７】
図４２に示すように、ＣＰＵ２１は、追加領域を特定する。追加領域は、塗り潰し領域の外周を囲む領域である。追加領域の内周と、追加領域の外周との間の幅は、１画素分の長さを有する（Ｓ４３１）。ＣＰＵ２１は、元画像のうち、特定した追加領域に含まれる複数の画素のそれぞれのＲ値、Ｇ値、Ｂ値から、テーブル２４４に格納された塗り潰し色のＲ値、Ｇ値、Ｂ値を減算した値の絶対値を、複数の画素毎に算出する。ＣＰＵ２１は、算出したＲ値、Ｇ値、Ｂ値それぞれの差分の平均値を更に算出する（Ｓ４３３）。ＣＰＵ２１は、算出したＲ値、Ｇ値、Ｂ値それぞれの差分の平均値が、所定閾値よりも大きいか判定する（Ｓ４３５）。ＣＰＵ２１は、Ｒ値、Ｇ値、Ｂ値それぞれの差分の平均値の少なくとも何れかが、所定閾値よりも大きいと判定した場合（Ｓ４３５：ＹＥＳ）、追加領域に含まれる複数の画素の色を、塗り潰し色によって変更する（Ｓ４３７）。ＣＰＵ２１は処理をＳ４３９に進める。ＣＰＵ２１は、Ｒ値、Ｇ値、Ｂ値それぞれの差分の平均値の全てが所定閾値以下と判定した場合（Ｓ４３５：ＮＯ）、処理をＳ４３９に進める。
【０２３８】
Ｓ４３１〜Ｓ４３７の処理が実行されることによって、色判定処理（図３６、図３７参照）で判定に利用された第Ｎ（３以上）外周領域に対して、塗り潰し色への変更の要否が判断される。変更が必要と判定された場合、第Ｎ外周領域内の画素の色は、塗り潰し色に変更される。これによって、例えば図３９、図４０に示すように、パンチ穴画像の周辺に地色と異なる色が付着している場合に、ＣＰＵ２１は、パンチ穴画像の画素だけでなく、パンチ穴画像の周辺の画素も、塗り潰し色に変更される。
【０２３９】
ＣＰＵ２１は、Ｓ３５３（図３７参照）の処理によって、第１相違量が第２相違量以下と判定している場合（Ｓ３５３：ＮＯ）、追加領域の少なくとも一部が、第４外周領域の外部に配置されているか判定する（Ｓ４３９）。又、ＣＰＵ２１は、Ｓ３５３（図３７参照）の処理によって、第１相違量が第２相違量よりも大きいと判定している場合（Ｓ３５３：ＹＥＳ）、追加領域の少なくとも一部が、第Ｎ外周領域の外部に配置されているか判定する（Ｓ４３９）。ＣＰＵ２１は、第４外周領域又は第Ｎ外周領域の内側に、追加領域の全てが配置されていると判定した場合（Ｓ４３９：ＮＯ）、処理をＳ４３１に戻す。ＣＰＵ２１は、追加領域の外周を囲む領域であって、内周と外周との間の幅が第１画素の長さを有する領域を、新たに追加領域として特定する（Ｓ４３１）。ＣＰＵ２１は、Ｓ４３３〜Ｓ４３７の処理を繰り返す。ＣＰＵ２１は、第４外周領域又は第Ｎ外周領域の外側に、追加領域の少なくとも一部が配置されていると判定した場合（Ｓ４３９：ＹＥＳ）、除去処理を終了させ、処理をメイン処理（図５参照）に戻す。
【０２４０】
図５に示すように、ＣＰＵ２１は、除去処理（Ｓ３１）の処理の終了後、Ｓ２７の処理によって、テーブル２４４に格納された全ての矩形領域データを選択したか判定する（Ｓ３１）。ＣＰＵ２１は、Ｓ２７の処理によって選択されていない矩形領域データが、テーブル２４４に残っていると判定した場合（Ｓ３３：ＮＯ）、処理をＳ２７に戻す。ＣＰＵ２１は、テーブル２４４に格納された矩形領域データのうち選択していない矩形領域データの１つを選択し（Ｓ２７）、Ｓ２９、Ｓ３１の処理を繰り返す。ＣＰＵ２１は、テーブル２４４に格納された矩形領域データを全て選択したと判定した場合（Ｓ３３：ＹＥＳ）、メイン処理を終了させる。
【０２４１】
＜本実施形態の主たる作用、効果＞
以上説明したように、ＰＣ２のＣＰＵ２１は、分離処理（図１３参照）において、部分画像に基づいて第１中間画像及び第２中間画像を生成する（Ｓ８７、Ｓ８９、Ｓ９９、Ｓ１０５）。ＣＰＵ２１は、第２中間画像を生成する過程で、部分画像から所定の色の画素（彩度「１６」以上の色の画素）を除去する（Ｓ１０１、Ｓ１０３）。次に、ＣＰＵ２１は、第１中間画像及び第２中間画像に対し、Ｓｏｂｅｌフィルタなどの周知エッジ抽出フィルタを用いてフィルタリング処理を実行する（Ｓ１０９）。ＣＰＵ２１は、フィルタリングによってエッジが抽出された第１中間画像及び第２中間画像を２値化する（Ｓ１２１、Ｓ１３１）。ここで、第２中間画像では、元の部分画像から所定の色が除去されているので、所定の色のオブジェクトのエッジは抽出されない。この場合、ＣＰＵ２１は、２値化された第１中間画像及び第２中間画像を論理積することによって、第１画像及び第２画像から、所定の色のオブジェクトを排除できる（Ｓ１２９，Ｓ１３９）。なお、所定の色として、パンチ穴画像に対応しない色を設定することによって、ＣＰＵ２１は、パンチ穴画像と異なる画像が、パンチ穴画像として抽出されることを抑制できる。
【０２４２】
ＣＰＵ２１は、元画像がカラー画像の場合、部分画像をグレースケール化することによって、第１中間画像を生成する（Ｓ８７）。又、ＣＰＵ２１は、部分画像から所定の色を除去し（Ｓ９３、Ｓ１０１）、その後、グレースケール化することによって、第２中間画像を生成する（Ｓ９９、Ｓ１０５）。この場合、ＣＰＵ２１は、分離処理におけるＳ１０７以降の処理の負荷を軽減できるので、パンチ穴画像を抽出するまでに要する時間を短縮できる。
【０２４３】
ＣＰＵ２１は、２値化された第１中間画像に対してクロージング処理（即ち、膨張処理及び収縮処理を順に）実行する（Ｓ１２５、Ｓ１３５）。これによって、ＣＰＵ２１は、２値化された第１中間画像中の細かな穴を埋めたり、欠落部分を接続させたりできる。又、ＣＰＵ２１は、２値化された第２中間画像に対して膨張処理を実行する（Ｓ１２７、１３７）。これによって、ＣＰＵ２１は、２値化された第２中間画像中の孤立した領域を接続させることができる。なお、第１中間画像の場合と異なり、ＣＰＵ２１は、収縮を行わない。このため、ＣＰＵ２１は、彩度「１６」以上の色が除去されたり、背景輝度上限及び背景輝度下限の範囲外の色が除去されたりしたときに、色ズレなどに起因して輪郭の外縁が小さくなる可能性のある画像が、収縮処理によってさらに小さくなることを抑制できる。ＣＰＵ２１は、第１中間画像と第２中間画像とを論理積することによって、第１画像及び第２画像を生成する（Ｓ１２９、Ｓ１３９）。このため、ＣＰＵ２１は、第１画像及び第２画像の何れか一方にのみ含まれる画像を排除できるので、パンチ穴画像と異なる画像が、パンチ穴画像として抽出されることを抑制できる。このため、ＣＰＵ２１は、パンチ穴画像の抽出の精度を高めることができる。
【０２４４】
ＣＰＵ２１は、彩度「１６」以上の色を部分画像から除去することによって、第２中間画像を生成する（Ｓ９３、Ｓ１０１）。ここで例えば、背景部材の彩度が「１６」よりも小さい場合、ＣＰＵ２１は、彩度が「１６」よりも大きい画像であって背景画像と異なる画像を除去できる。このため、ＣＰＵ２１は、パンチ穴画像と異なるオブジェクトが、パンチ穴画像として抽出されることを抑制できる。
【０２４５】
ＣＰＵ２１は、背景部材の色がグレー色の場合、設定情報の背景輝度上限及び背景輝度下限（図３参照）の範囲外の色を部分画像から除去することによって、第２中間画像を生成する（Ｓ９５、Ｓ９７）。又、ＣＰＵ２１は、背景部材の色が白色の場合、設定情報の背景輝度上限以上の色を部分画像から除去することによって、第２中間画像を生成する（Ｓ１０３）。これによって、ＣＰＵ２１は、背景部材の輝度と異なる色のオブジェクトが、パンチ穴画像として抽出されることを抑制できる。
【０２４６】
ＣＰＵ２１は、決定されたパンチ穴に対応する矩形領域に含まれる画素の色を変更することによって、パンチ穴の画像を目立たなくすることができる。
【０２４７】
＜変形例＞
本発明は上記実施形態に限定されず、種々の変更が可能である。上記において、ＣＰＵ２１は、第１中間画像及び第２中間画像においてエッジを抽出するために、３×３のＳｏｂｅｌフィルタを用いてフィルタリングを行った（Ｓ１０９）。これに対し、ＣＰＵ２１は、３×３とは行列サイズの異なるＳｏｂｅｌフィルタを用いてエッジを抽出してもよい。さらに、ＣＰＵ２１は、Ｓｏｂｅｌフィルタと異なるフィルタ（例えば、ラプラシアンフィルタ）を用いてフィルタリングを行うことによって、第１中間画像及び第２中間画像からエッジを抽出してもよい。
【０２４８】
ＣＰＵ２１は、元画像がカラー画像の場合、部分画像をグレースケール化することによって、第１中間画像を生成した（Ｓ８７）。これに対し、ＣＰＵ２１は、カラー画像をそのまま第１中間画像としてもよい。又、ＣＰＵ２１は、彩度が「１６」以上の色を除去し（Ｓ９３、Ｓ１０１）、その後グレースケール化する（Ｓ９４、Ｓ１０２）ことによって、第２中間画像を生成した（Ｓ９９、Ｓ１０５）。これに対し、ＣＰＵ２１は、彩度が「１６」以上の色が除去された画像を、そのまま第２中間画像としてもよい。
【０２４９】
ＣＰＵ２１は、２値化された第１中間画像に対して膨張処理及び収縮処理を１回ずつ実行した（Ｓ１２５、Ｓ１３５）。これに対し、膨張処理及び収縮処理の実行回数は１回に限定されず、それぞれの処理が２回以上行われてもよい。又、第１中間画像に対し、膨張処理のみ実行され、収縮処理は行われなくてもよい。ＣＰＵ２１は、２値化された第２中間画像に対して膨張処理を１回実行した（Ｓ１２５、Ｓ１３５）。これに対し、膨張処理の実行回数は１回に限定されず、２回以上行われてもよい。又、第２中間画像に対する膨張処理の後、収縮処理が行われてもよい。
【０２５０】
ＣＰＵ２１は、彩度「１６」以上の色を部分画像から除去することによって、第２中間画像を生成した（Ｓ９３、Ｓ１０１）。ここで、彩度の閾値は「１６」に限定されず、他の値でもよい。又、例えば、ＣＰＵ２１は、背景部材の彩度の上限値としてユーザによって設定された値を、彩度の閾値としてもよい。
【０２５１】
ＣＰＵ２１は、背景部材の色がグレー色の場合、設定情報の背景輝度上限及び背景輝度下限（図３参照）の範囲外の色を部分画像から除去することによって、第２中間画像を生成した（Ｓ９５、Ｓ９７）。これに対し、ＣＰＵ２１は、背景部材の色が白色の場合と同様、設定情報の背景輝度上限以上の色を部分画像から除去することによって、第２中間画像を生成してもよい。又、ＣＰＵ２１は、背景部材の色が白色の場合、設定情報の背景輝度上限以上の色を部分画像から除去することによって、第２中間画像を生成した（Ｓ１０３）。これに対し、ＣＰＵ２１は、背景部材が白色の場合、輝度による色の除去を行わなくてもよい。又、ＣＰＵ２１は、背景部材が黒色の場合に、背景部材がグレー色の場合と同様の処理によって第２中間画像を生成してもよいし、背景部材が白色の場合と同様の処理によって第２中間画像を生成してもよい。  
【０２５２】
＜その他＞
Ｓ１の処理は本発明の「取得ステップ」の一例である。Ｓ８７、Ｓ８９、Ｓ９９、Ｓ１０５の処理は本発明の「第１生成ステップ」の一例である。Ｓ１０９の処理は本発明の「エッジ抽出ステップ」の一例である。Ｓ１２１、Ｓ１３１の処理は本発明の「２値化ステップ」の一例である。Ｓ１２９、Ｓ１３９の処理は本発明の「第２生成ステップ」の一例である。Ｓ２５の処理は本発明の「決定ステップ」の一例である。Ｓ３１の処理は本発明の「変更ステップ」の一例である。Ｓ１の処理を行うＣＰＵ２１は本発明の「取得手段」の一例である。Ｓ８７、Ｓ８９、Ｓ９９、Ｓ１０５の処理を行うＣＰＵ２１は本発明の「第１生成手段」の一例である。Ｓ１０９の処理を行うＣＰＵ２１は本発明の「エッジ抽出手段」の一例である。Ｓ１２１、Ｓ１３１の処理を行うＣＰＵ２１は本発明の「２値化手段」の一例である。Ｓ１２９、Ｓ１３９の処理を行うＣＰＵ２１は本発明の「第２生成手段」の一例である。Ｓ２５の処理を行うＣＰＵ２１は本発明の「決定手段」の一例である。
【符号の説明】
【０２５３】
１        ：画像読取装置
２        ：ＰＣ
１０      ：画像処理システム
２１      ：ＣＰＵ
２４      ：記憶部
【図１】
0006451461.tif 000004
【図２】
0006451461.tif 000005
【図３】
0006451461.tif 000006
【図４】
0006451461.tif 000007
【図５】
0006451461.tif 000008
【図６】
0006451461.tif 000009
【図７】
0006451461.tif 000010
【図８】
0006451461.tif 000011
【図９】
0006451461.tif 000012
【図１０】
0006451461.tif 000013
【図１１】
0006451461.tif 000014
【図１２】
0006451461.tif 000015
【図１３】
0006451461.tif 000016
【図１４】
0006451461.tif 000017
【図１５】
0006451461.tif 000018
【図１６】
0006451461.tif 000019
【図１７】
0006451461.tif 000020
【図１８】
0006451461.tif 000021
【図１９】
0006451461.tif 000022
【図２０】
0006451461.tif 000023
【図２１】
0006451461.tif 000024
【図２２】
0006451461.tif 000025
【図２３】
0006451461.tif 000026
【図２４】
0006451461.tif 000027
【図２５】
0006451461.tif 000028
【図２６】
0006451461.tif 000029
【図２７】
0006451461.tif 000030
【図２８】
0006451461.tif 000031
【図２９】
0006451461.tif 000032
【図３０】
0006451461.tif 000033
【図３１】
0006451461.tif 000034
【図３２】
0006451461.tif 000035
【図３３】
0006451461.tif 000036
【図３４】
0006451461.tif 000037
【図３５】
0006451461.tif 000038
【図３６】
0006451461.tif 000039
【図３７】
0006451461.tif 000040
【図３８】
0006451461.tif 000041
【図３９】
0006451461.tif 000042
【図４０】
0006451461.tif 000043
【図４１】
0006451461.tif 000044
【図４２】
0006451461.tif 000045