(57)【要約】【課題】原稿の端付近に透過光量が多い部分があっても、白エッジの位置を検出できる。【解決手段】  原稿台と、原稿押え部材と、読取部と、制御部と、を備え、制御部は、１頁の画像データを取得する画像データ取得処理と、黒端位置を１頁の画像データから検出する黒端検出処理と、黒画素の階調値に基づき原稿の原稿種別を決定する決定処理と、白端位置を１頁の画像データから検出する白端検出処理と、を実行し、白端検出処理は、原稿種別が薄紙のときに、白階調値に基づき定められた第１閾値以上であるか否かを判断することにより白画素を検出する薄紙白端検出処理と、原稿種別が厚紙のときに、予め定められた第２閾値以上であるか否かを判断することにより白画素を検出する厚紙白端検出処理と、を含む。 【選択図】図５
2018121146.tif 000002
【特許請求の範囲】
【請求項１】
原稿を載置する原稿台と、
白色の原稿押え面を有する原稿押え部材と、
原稿を照射する光源および主走査方向に１列に配置された多数の受光部を備え、副走査方向に沿って読取位置を移動しながら前記原稿台に載置された原稿を読み取ることにより、複数の画素の階調値からなる画像データを生成する読取部であって、前記原稿押え部材を読み取ることにより白階調値を生成する読取部と、
制御部と、を備え、
前記制御部は、
前記原稿台に載置された原稿および前記原稿押え部材を原稿の大きさより広い範囲で読み取らせることによって生成させた１頁の画像データを取得する画像データ取得処理と、
原稿の先端または原稿の後端の位置である黒端位置を前記１頁の画像データから検出する黒端検出処理であって、前記白階調値よりも小さい階調値を有する黒画素の位置を検出することにより前記黒端位置を検出する黒端検出処理と、
前記黒画素の階調値に基づき原稿の原稿種別を決定する決定処理であって、前記原稿種別は薄紙と厚紙とを含む決定処理と、
原稿の先端および原稿の後端のうちで前記黒端と異なる端の位置である白端位置を前記１頁の画像データから検出する白端検出処理であって、前記白階調値以上の階調値を有する白画素を検出することにより前記白端位置を検出する白端検出処理と、を実行し、
前記白端検出処理は、
前記原稿種別が薄紙のときに、前記１頁の画像データにおける各画素の階調値が前記白階調値に基づき定められた第１閾値以上であるか否かを判断することにより前記第１閾値以上である画素を前記白画素として検出する薄紙白端検出処理と、
前記原稿種別が厚紙のときに、前記１頁の画像データにおける各画素の階調値が予め定められた第２閾値以上であるか否かを判断することにより前記第２閾値以上である画素を前記白画素として検出する厚紙白端検出処理と、を含むことを特徴とする画像読取装置。
【請求項２】
前記決定処理は、
前記１頁の画像データにおいて検出された全ての前記黒画素の階調値に基づき黒端偏差を算出する黒端偏差算出処理と、
前記黒端偏差が予め定められた第３閾値以上であるときに前記原稿種別を薄紙と判断し、前記黒端偏差が前記第３閾値未満であるときに前記原稿種別を厚紙と判断する黒端偏差判断処理と、を含むことを特徴とする請求項１に記載の画像読取装置。
【請求項３】
前記制御部は、
前記原稿台の四隅に位置する４個の隅領域の各隅領域における複数の画素の階調値を平均して４個の隅平均値を算出する隅平均値算出処理と、
前記４個の隅平均値のうちの３個の前記隅平均値を選択する隅平均値選択処理と、
前記３個の前記隅平均値を平均して前記白階調値を算出する白平均値算出処理と、
前記３個の前記隅平均値に対応する３個の隅領域における複数の画素の階調値に基づき白偏差を算出する白偏差算出処理と、
前記白階調値に前記白偏差を加算して前記第１閾値を算出する第１閾値算出処理と、を実行し、
前記第２閾値は前記読取部が生成することができる最大階調値であり、
前記第３閾値は、前記読取部が生成することができる最小階調値から前記最大階調値までの階調数の２％であることを特徴とする請求項２に記載の画像読取装置。
【請求項４】
１ラインの画素のうちの先頭画素の位置から最終画素の位置へ向かう方向を主走査方向の上流から下流へ向かう方向とし、
前記読取部の読取開始位置から読取終了位置へ向かう方向を副走査方向の上流から下流へ向かう方向とし、
前記制御部は、
前記白階調値から前記白偏差を２倍した値を引算して第４閾値を算出する第４閾値算出処理を実行し、
前記光源は、副走査方向の下流側から上流側へ向けて原稿を照射し、
前記黒端検出処理は、
主走査方向の特定位置における最初の画素から副走査方向に沿って下流へ前記黒画素を検出することにより前記特定位置における前記黒端位置である第１黒端位置を検出する第１黒端検出処理と、
前記特定位置における前記第１黒端位置の画素から主走査方向に沿って上流へ前記黒端位置を検出する第２黒端検出処理と、
前記特定位置における前記第１黒端位置の画素から主走査方向に沿って下流へ前記黒端位置を検出する第３黒端検出処理と、を含み、
前記第１黒端検出処理は、
前記特定位置における対象黒端画素と副走査方向の下流側に隣接する画素を順に新たな対象黒端画素として設定する対象黒端画素設定処理であって、最初に前記対象黒端画素を設定するときに、前記特定位置における最初の画素を前記対象黒端画素として設定し、黒端検出値を前記読取部が生成することができる最大階調値に設定する対象黒端画素設定処理と、
前記対象黒端画素の階調値が前記黒端検出値よりも小さいか否かを判断する黒端検出値判断処理と、
前記対象黒端画素の階調値が前記黒端検出値よりも小さいときに副走査方向の前記対象黒端画素の位置を示す画素番号と関連付けて前記対象黒端画素の階調値を前記黒端検出値として記憶し、再度前記対象黒端画素設定処理を実行させる黒端検出値記憶処理と、
前記対象黒端画素の階調値が前記黒端検出値以上であるときに前記白階調値から前記黒端検出値を引算して黒端差分値を算出する黒端差分値算出処理と、
前記黒端差分値が前記第４閾値以上であるときに、前記黒端検出値に対応する画素を前記黒画素と判断し、前記画素番号が示す位置を前記第１黒端位置として検出し、前記黒端差分値が前記第４閾値未満であるときに、前記黒端検出値に対応する画素を前記黒画素でないと判断し、再度前記対象黒端画素設定処理を実行させる黒端差分値判断処理と、
前記特定位置における前記第１黒端位置の画素から副走査方向に沿って下流へ第１所定画素数離れた画素と副走査方向の下流側に隣接する前記第１所定画素数の画素の階調値である背景色階調値を平均することにより背景色平均値を算出する背景色平均値算出処理と、
前記第１所定画素数の前記背景色階調値に基づき背景色偏差を算出する背景色偏差算出処理と、を含むことを特徴とする請求項１乃至請求項３のいずれかに記載の画像読取装置。
【請求項５】
前記第２黒端検出処理は、
前記特定位置における前記第１黒端位置の画素を最初の第１対象黒端画素として前記第１対象黒端画素と主走査方向の上流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ隣接する第２所定画素数の画素群を第１対象黒端画素群として設定する第１対象黒端画素群設定処理と、
前記白階調値から前記第１対象黒端画素群の階調値のうちで最小の階調値である第１最小値を引算して第１差分値を算出する第１差分値算出処理と、
前記第１差分値が前記第４閾値以上であるか否かを判断する第１差分値判断処理であって、前記第１差分値が前記第４閾値以上のときに前記第１最小値を示す画素を新たな第１対象黒端画素として設定し、再度前記第１対象黒端画素群設定処理を実行させる第１差分値判断処理と、を含み、
前記第３黒端検出処理は、
前記特定位置における前記第１黒端位置の画素を最初の第２対象黒端画素として前記第２対象黒端画素と主走査方向の下流側に隣接する画素と副走査方向における上流側と下流側とにそれぞれ隣接する前記第２所定画素数の画素群を第２対象黒端画素群として設定する第２対象黒端画素群設定処理と、
前記白階調値から前記第２対象黒端画素群の階調値のうちで最小の階調値である第２最小値を引算して第２差分値を算出する第２差分値算出処理と、
前記第２差分値が前記第４閾値以上であるか否かを判断する第２差分値判断処理であって、前記第２差分値が前記第４閾値以上のときに前記第２最小値を示す画素を新たな第２対象黒端画素として設定し、再度前記第２対象黒端画素群設定処理を実行させる第２差分値判断処理と、を含み、
前記新たな第１対象黒端画素の位置と前記新たな第２対象黒端画素の位置とは、前記黒端位置であることを特徴とする請求項４に記載の画像読取装置。
【請求項６】
前記制御部は、
前記背景色平均値に前記背景色偏差を加算して第５閾値を算出する第５閾値算出処理を実行し、
前記薄紙白端検出処理は、
前記特定位置において副走査方向の最終画素位置から副走査方向に沿って上流へ階調値が前記第１閾値以上である前記白画素を検出することにより前記特定位置における前記白端位置である第１白端位置を検出する第１白端検出処理と、
前記特定位置における前記第１白端位置の画素から主走査方向に沿って上流へ前記白端位置を検出する第２白端検出処理と、
前記特定位置における前記第１白端位置の画素から主走査方向に沿って下流へ前記白端位置を検出する第３白端検出処理と、を含み、
前記第１白端検出処理は、
前記特定位置における副走査方向の最終画素から順に副走査方向に沿って上流へ連続して隣接する第３所定画素数の画素の階調値が前記第１閾値以上であるか否かを判断する第１白端開始位置検出処理であって、前記第１閾値以上であるときに、前記隣接する第３所定画素数の画素のうちで最も副走査方向の上流の画素の位置を第１白端開始位置として検出する第１白端開始位置検出処理と、
前記特定位置における副走査方向の前記第１白端開始位置の画素の階調値を薄紙閾値として取得する薄紙閾値取得処理と、
前記特定位置における副走査方向の前記第１白端開始位置の画素から順に副走査方向に沿って上流へ階調値が前記第５閾値未満であるか否かを判断する第１白端終了位置検出処理であって、前記第５閾値未満であるときに、前記第５閾値未満であると判断された画素の位置を第１白端終了位置として検出する第１白端終了位置検出処理と、を含み、
前記第１白端開始位置から前記第１白端終了位置までの画素が前記白画素であり、
前記第１白端終了位置が前記第１白端位置である請求項５に記載の画像読取装置。
【請求項７】
前記厚紙白端検出処理は、
前記特定位置における副走査方向の最終画素から副走査方向に沿って上流へ前記第２閾値以上である前記白画素を検出することにより前記特定位置における前記白端位置である第１白端位置を検出する第４白端検出処理と、
前記第２白端検出処理と、
前記第３白端検出処理と、を含み、
第４白端検出処理は、
前記特定位置における副走査方向の最終画素から順に副走査方向に沿って上流へ連続して隣接する第４所定画素数の画素の階調値が前記第２閾値以上であるか否かを判断する第２白端開始位置検出処理であって、前記第２閾値以上であるときに、前記隣接する第４所定画素数の画素のうちで副走査方向に最も上流の画素の位置を第２白端開始位置として検出する第２白端開始位置検出処理と、
前記特定位置における副走査方向の前記第２白端開始位置の画素から順に副走査方向に沿って上流へ階調値が第６閾値未満であるか否かを判断する第２白端終了位置検出処理であって、前記第６閾値未満であるときに、前記第６閾値未満であると判断された画素の位置を第２白端終了位置として検出する第２白端終了位置検出処理と、を含み、
前記第２白端開始位置から前記第２白端終了位置までの画素が前記白画素であり、
前記第２白端終了位置が前記第１白端位置であり、
前記第６閾値は、前記階調値の最小値から最大値までの階調数の９８％であることを特徴とする請求項６に記載の画像読取装置。
【請求項８】
前記第２白端検出処理は、
前記原稿種別が薄紙のときに、前記薄紙閾値を白端閾値として設定し、前記原稿種別が厚紙のときに、前記第６閾値を前記白端閾値として設定する閾値設定処理と、
前記特定位置における前記第１白端位置の画素を最初の第１対象白端画素として前記第１対象白端画素と主走査方向の上流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ隣接する前記第１所定画素数の画素群を第１対象白端画素群として設定する第１対象白端画素群設定処理と、
前記第１対象白端画素群のうちで副走査方向に最も上流の画素から副走査方向に沿って下流へ階調値が前記白端閾値以上であるか否かを判断する第１対象白端判断処理であって、前記白端閾値以上であるときに、前記白端閾値以上である画素を新たな第１対象白端画素として設定し、再度前記第１対象白端画素群設定処理を実行させる第１対象白端判断処理と、を含み、
前記第３白端検出処理は、
前記特定位置における前記第１白端位置の画素を最初の第２対象白端画素として前記第２対象白端画素と主走査方向の下流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ隣接する前記第１所定画素数の画素群を第２対象白端画素群として設定する第２対象白端画素群設定処理と、
前記第２対象白端画素群のうちで副走査方向に最も上流の画素から副走査方向に沿って下流へ階調値が前記白端閾値以上であるか否かを判断する第２対象白端判断処理であって、前記白端閾値以上であるときに、前記白端閾値以上である画素を新たな第２対象白端画素として設定し、再度前記第２対象白端画素群設定処理を実行させる第２対象白端検出処理と、を含むことを特徴とする請求項７に記載の画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像読取装置に関する。
【背景技術】
【０００２】
画像読取装置において、主走査方向に１列に並んだ複数の受光素子を備える読取デバイスを用いて読取デバイスと原稿との相対的な位置を副走査方向に変更しながら原稿の画像を読み取って得られる読取画像から原稿の先端若しくは原稿の後端を検出することが知られている。
【０００３】
特許文献１に記載の画像読取装置は、読み取った読取画像が原稿の背景色である白色であるか否かを検出することにより、検出した白色でない位置を原稿の後端の位置として検出する。原稿の後端において、光源から照射された光が原稿の厚みにより遮られることで、短い影がエッジとして現れており、画像読取装置は、このエッジを検出することで原稿の後端を検出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−４８８３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の画像読取装置において、原稿の先端を検出する場合を考える。この場合では、原稿を照射する光源の向きが単一方向であり、光源から照射された光が遮られることがないため、原稿の先端において短い影が現れずに、エッジを検出することができない。
【０００６】
光源が単一方向を向く読取デバイスを用いて、背景色が白色の原稿であって原稿の厚み方向の側面も白色である原稿の先端および原稿の後端を読み取ると、原稿の先端及び原稿の後端のうちで短い影が発生していない端において、原稿の読取画像に白く明るい領域である白エッジが発生する。具体的には、白色の原稿押え部材で原稿を押えた状態で、背景色が白色の原稿の端付近に影が発生しない光源の向きで照射させる。このように照射が行われた際に、原稿の側面が背景色と同様に白いため、光源から照射された光が原稿の側面で反射した側面光を読み取ることにより背景色の白色よりも白く明るい白エッジが発生すると考えられる。この白エッジおよび短い影を検出することにより、原稿の先端および原稿の後端を検出することが考えられる。
【０００７】
しかし、画像読取装置は、原稿の厚さが薄い場合に、原稿を透過する透過光の影響により、白エッジの位置を誤検知する場合がある。即ち、原稿は、原稿を構成している紙の繊維の重なりが多いことにより、原稿に光を照射したときに原稿を透過する光量である透過光量が少ない部分と、紙の繊維の重なりが少ないことにより、原稿に光を照射したときに透過光量が多い部分とを有する。画像読取装置は、透過光量が多い部分では、白色の原稿で反射した反射光に加え、原稿を透過して白色の原稿押え部材で反射して再び原稿を透過した透過光を読み取ることにより背景色の白色よりも白く明るく読み取る。よって、原稿の端付近に透過光量の多い部分があると、側面光に起因して原稿の背景色の白色よりも白く明るくなっているのか、透過光に起因して原稿の背景色の白色よりも白く明るくなっているのか、どちらに起因しているかが分からないため、画像読取装置は、白エッジの位置を精度良く検出することが困難となる。
【０００８】
そこで、本発明は上述した事情に鑑みてなされ、原稿の端付近に透過光量が多い部分があっても、白エッジの位置を精度良く検出することができる画像読取装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１に記載の発明態様では、画像読取装置は、原稿を載置する原稿台と、白色の原稿押え面を有する原稿押え部材と、原稿を照射する光源および主走査方向に１列に配置された多数の受光部を備え、副走査方向に沿って読取位置を移動しながら前記原稿台に載置された原稿を読み取ることにより、複数の画素の階調値からなる画像データを生成する読取部であって、前記原稿押え部材を読み取ることにより白階調値を生成する読取部と、制御部と、を備え、前記制御部は、前記原稿台に載置された原稿および前記原稿押え部材を原稿の大きさより広い範囲で読み取らせることによって生成させた１頁の画像データを取得する画像データ取得処理と、原稿の先端または原稿の後端の位置である黒端位置を前記１頁の画像データから検出する黒端検出処理であって、前記白階調値よりも小さい階調値を有する黒画素の位置を検出することにより前記黒端位置を検出する黒端検出処理と、前記黒画素の階調値に基づき原稿の原稿種別を決定する決定処理であって、前記原稿種別は薄紙と厚紙とを含む決定処理と、原稿の先端および原稿の後端のうちで前記黒端と異なる端の位置である白端位置を前記１頁の画像データから検出する白端検出処理であって、前記白階調値以上の階調値を有する白画素を検出することにより前記白端位置を検出する白端検出処理と、を実行し、前記白端検出処理は、前記原稿種別が薄紙のときに、前記１頁の画像データにおける各画素の階調値が前記白階調値に基づき定められた第１閾値以上であるか否かを判断することにより前記第１閾値以上である画素を前記白画素として検出する薄紙白端検出処理と、前記原稿種別が厚紙のときに、前記１頁の画像データにおける各画素の階調値が予め定められた第２閾値以上であるか否かを判断することにより前記第２閾値以上である画素を前記白画素として検出する厚紙白端検出処理と、を含む。
【００１０】
請求項２に記載の具体的態様では、前記決定処理は、前記１頁の画像データにおいて検出された全ての前記黒画素の階調値に基づき黒端偏差を算出する黒端偏差算出処理と、前記黒端偏差が予め定められた第３閾値以上であるときに前記原稿種別を薄紙と判断し、前記黒端偏差が前記第３閾値未満であるときに前記原稿種別を厚紙と判断する黒端偏差判断処理と、を含む。
【００１１】
請求項３に記載の具体的態様では、前記制御部は、前記原稿台の四隅に位置する４個の隅領域の各隅領域における複数の画素の階調値を平均して４個の隅平均値を算出する隅平均値算出処理と、前記４個の隅平均値のうちの３個の前記隅平均値を選択する隅平均値選択処理と、前記３個の前記隅平均値を平均して前記白階調値を算出する白平均値算出処理と、前記３個の前記隅平均値に対応する３個の隅領域における複数の画素の階調値に基づき白偏差を算出する白偏差算出処理と、前記白階調値に前記白偏差を加算して前記第１閾値を算出する第１閾値算出処理と、を実行し、前記第２閾値は前記読取部が生成することができる最大階調値であり、前記第３閾値は、前記読取部が生成することができる最小階調値から前記最大階調値までの階調数の２％である。
【００１２】
請求項４に記載の具体的態様では、画像読取装置は、１ラインの画素のうちの先頭画素の位置から最終画素の位置へ向かう方向を主走査方向の上流から下流へ向かう方向とし、前記読取部の読取開始位置から読取終了位置へ向かう方向を副走査方向の上流から下流へ向かう方向とし、前記制御部は、前記白階調値から前記白偏差を２倍した値を引算して第４閾値を算出する第４閾値算出処理を実行し、前記光源は、副走査方向の下流側から上流側へ向けて原稿を照射し、前記黒端検出処理は、主走査方向の特定位置における最初の画素から副走査方向に沿って下流へ前記黒画素を検出することにより前記特定位置における前記黒端位置である第１黒端位置を検出する第１黒端検出処理と、前記特定位置における前記第１黒端位置の画素から主走査方向に沿って上流へ前記黒端位置を検出する第２黒端検出処理と、前記特定位置における前記第１黒端位置の画素から主走査方向に沿って下流へ前記黒端位置を検出する第３黒端検出処理と、を含み、前記第１黒端検出処理は、前記特定位置における対象黒端画素と副走査方向の下流側に隣接する画素を順に新たな対象黒端画素として設定する対象黒端画素設定処理であって、最初に前記対象黒端画素を設定するときに、前記特定位置における最初の画素を前記対象黒端画素として設定し、黒端検出値を前記読取部が生成することができる最大階調値に設定する対象黒端画素設定処理と、前記対象黒端画素の階調値が前記黒端検出値よりも小さいか否かを判断する黒端検出値判断処理と、前記対象黒端画素の階調値が前記黒端検出値よりも小さいときに副走査方向の前記対象黒端画素の位置を示す画素番号と関連付けて前記対象黒端画素の階調値を前記黒端検出値として記憶し、再度前記対象黒端画素設定処理を実行させる黒端検出値記憶処理と、前記対象黒端画素の階調値が前記黒端検出値以上であるときに前記白階調値から前記黒端検出値を引算して黒端差分値を算出する黒端差分値算出処理と、前記黒端差分値が前記第４閾値以上であるときに、前記対象黒端画素を前記黒画素と判断し、前記画素番号が示す位置を前記第１黒端位置として検出し、前記黒端差分値が前記第４閾値未満であるときに、前記対象黒端画素を前記黒画素でないと判断し、再度前記対象黒端画素設定処理を実行させる黒端差分値判断処理と、前記特定位置における前記第１黒端位置の画素から副走査方向に沿って下流へ第１所定画素数離れた画素と副走査方向の下流側に隣接する前記第１所定画素数の画素の階調値である背景色階調値を平均することにより背景色平均値を算出する背景色平均値算出処理と、前記第１所定画素数の前記背景色階調値に基づき背景色偏差を算出する背景色偏差算出処理と、を含む。
【００１３】
請求項５に記載の具体的態様では、前記第２黒端検出処理は、前記特定位置における前記第１黒端位置の画素を最初の第１対象黒端画素として前記第１対象黒端画素と主走査方向の上流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ隣接する第２所定画素数の画素群を第１対象黒端画素群として設定する第１対象黒端画素群設定処理と、前記白階調値から前記第１対象黒端画素群の階調値のうちで最小の階調値である第１最小値を引算して第１差分値を算出する第１差分値算出処理と、前記第１差分値が前記第４閾値以上であるか否かを判断する第１差分値判断処理であって、前記第１差分値が前記第４閾値以上のときに前記第１最小値を示す画素を新たな第１対象黒端画素として設定し、再度前記第１対象黒端画素群設定処理を実行させる第１差分値判断処理と、を含み、前記第３黒端検出処理は、前記特定位置における前記第１黒端位置の画素を最初の第２対象黒端画素として前記第２対象黒端画素と主走査方向の下流側に隣接する画素と副走査方向における上流側と下流側とにそれぞれ隣接する前記第２所定画素数の画素群を第２対象黒端画素群として設定する第２対象黒端画素群設定処理と、前記白階調値から前記第２対象黒端画素群の階調値のうちで最小の階調値である第２最小値を引算して第２差分値を算出する第２差分値算出処理と、前記第２差分値が前記第４閾値以上であるか否かを判断する第２差分値判断処理であって、前記第２差分値が前記第４閾値以上のときに前記第２最小値を示す画素を新たな第２対象黒端画素として設定し、再度前記第２対象黒端画素群設定処理を実行させる第２差分値判断処理と、を含み、前記新たな第１対象黒端画素の位置と前記新たな第２対象黒端画素の位置とは、前記黒端位置である。
【００１４】
請求項６に記載の具体的態様では、前記制御部は、前記背景色平均値に前記背景色偏差を加算して第５閾値を算出する第５閾値算出処理を実行し、前記薄紙白端検出処理は、前記特定位置において副走査方向の最終画素位置から副走査方向に沿って上流へ階調値が前記第１閾値以上である前記白画素を検出することにより前記特定位置における前記白端位置である第１白端位置を検出する第１白端検出処理と、前記特定位置における前記第１白端位置の画素から主走査方向に沿って上流へ前記白端位置を検出する第２白端検出処理と、前記特定位置における前記第１白端位置の画素から主走査方向に沿って下流へ前記白端位置を検出する第３白端検出処理と、を含み、前記第１白端検出処理は、前記特定位置における副走査方向の最終画素から順に副走査方向に沿って上流へ連続して隣接する第３所定画素数の画素の階調値が前記第１閾値以上であるか否かを判断する第１白端開始位置検出処理であって、前記第１閾値以上であるときに、前記隣接する第３所定画素数の画素のうちで最も副走査方向の上流の画素の位置を第１白端開始位置として検出する第１白端開始位置検出処理と、前記特定位置における副走査方向の前記第１白端開始位置の画素の階調値を薄紙閾値として取得する薄紙閾値取得処理と、前記特定位置における副走査方向の前記第１白端開始位置の画素から順に副走査方向に沿って上流へ階調値が前記第５閾値未満であるか否かを判断する第１白端終了位置検出処理であって、前記第５閾値未満であるときに、前記第５閾値未満であると判断された画素の位置を第１白端終了位置として検出する第１白端終了位置検出処理と、を含み、前記第１白端開始位置から前記第１白端終了位置までの画素が前記白画素であり、前記第１白端終了位置が前記第１白端位置である。
【００１５】
請求項７に記載の具体的態様では、前記厚紙白端検出処理は、前記特定位置における副走査方向の最終画素から副走査方向に沿って上流へ前記第２閾値以上である前記白画素を検出することにより前記特定位置における前記白端位置である第１白端位置を検出する第４白端検出処理と、前記第２白端検出処理と、前記第３白端検出処理と、を含み、第４白端検出処理は、前記特定位置における副走査方向の最終画素から順に副走査方向に沿って上流へ連続して隣接する第４所定画素数の画素の階調値が前記第２閾値以上であるか否かを判断する第２白端開始位置検出処理であって、前記第２閾値以上であるときに、前記隣接する第４所定画素数の画素のうちで副走査方向に最も上流の画素の位置を第２白端開始位置として検出する第２白端開始位置検出処理と、前記特定位置における副走査方向の前記第２白端開始位置の画素から順に副走査方向に沿って上流へ階調値が第６閾値未満であるか否かを判断する第２白端終了位置検出処理であって、前記第６閾値未満であるときに、前記第６閾値未満であると判断された画素の位置を第２白端終了位置として検出する第２白端終了位置検出処理と、を含み、前記第２白端開始位置から前記第２白端終了位置までの画素が前記白画素であり、前記第２白端終了位置が前記第１白端位置であり、前記第６閾値は、前記階調値の最小値から最大値までの階調数の９８％である。
【００１６】
請求項８に記載の具体的態様では、前記第２白端検出処理は、前記原稿種別が薄紙のときに、前記薄紙閾値を白端閾値として設定し、前記原稿種別が厚紙のときに、前記第６閾値を前記白端閾値として設定する閾値設定処理と、前記特定位置における前記第１白端位置の画素を最初の第１対象白端画素として前記第１対象白端画素と主走査方向の上流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ隣接する前記第１所定画素数の画素群を第１対象白端画素群として設定する第１対象白端画素群設定処理と、前記第１対象白端画素群のうちで副走査方向に最も上流の画素から副走査方向に沿って下流へ階調値が前記白端閾値以上であるか否かを判断する第１対象白端判断処理であって、前記白端閾値以上であるときに、前記白端閾値以上である画素を新たな第１対象白端画素として設定し、再度前記第１対象白端画素群設定処理を実行させる第１対象白端判断処理と、を含み、前記第３白端検出処理は、前記特定位置における前記第１白端位置の画素を最初の第２対象白端画素として前記第２対象白端画素と主走査方向の下流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ隣接する前記第１所定画素数の画素群を第２対象白端画素群として設定する第２対象白端画素群設定処理と、前記第２対象白端画素群のうちで副走査方向に最も上流の画素から副走査方向に沿って下流へ階調値が前記白端閾値以上であるか否かを判断する第２対象白端判断処理であって、前記白端閾値以上であるときに、前記白端閾値以上である画素を新たな第２対象白端画素として設定し、再度前記第２対象白端画素群設定処理を実行させる第２対象白端検出処理と、を含む。
【発明の効果】
【００１７】
請求項１に記載の発明態様では、画像読取装置は、１頁の画像データから黒画素の位置を検出し、検出した黒画素の階調値に基づき原稿の原稿種別を決定し、原稿種別が薄紙のときに、白階調値に基づき定められた第１閾値以上であるか否かを判断することにより白画素を検出し、原稿種別が厚紙のときに、予め定められた第２閾値以上であるか否か判断することにより白画素を検出する。よって、黒画素の階調値に基づき決定した原稿種別である薄紙と厚紙とで異なる閾値を用いて各画素の階調値を判断するため、原稿の端付近に透過光量が多い部分があっても、白画素の位置を精度良く検出することができる。
【００１８】
請求項２に記載の具体的態様では、決定処理は、検出された全ての黒画素の階調値に基づき黒端偏差を算出し、黒端偏差が予め定められた第３閾値以上であるときに原稿種別を薄紙と判断し、第３閾値未満であるときに原稿種別を厚紙と判断する。よって、黒画素の階調値に基づき原稿種別を判断しているため、原稿端部と関係のないデータを追加で取得することなく、精度良く原稿種別を判断することができる。
【００１９】
請求項３に記載の具体的態様では、画像読取装置は、４個の隅領域の各隅領域における４個の隅平均値を算出し、４個の隅平均値のうちで３個の隅平均値を選択し、３個の隅平均値を平均して白階調値を算出し、３個の隅領域における複数の画素の階調値に基づき白偏差を算出し、白階調値に白偏差を加算して第１閾値を算出する。よって、隅領域の階調値に基づき算出した白階調値と白偏差とから第１閾値を算出しているため、白階調値よりも階調値が大きい白エッジを精度良く検出することができる。
【００２０】
請求項４に記載の具体的態様では、黒端検出処理は、主走査方向の特定位置における黒画素を検出することにより第１黒端位置を検出する第１黒端検出処理と、第１黒端位置から主走査方向に沿って上流へ黒端位置を検出する第２黒端検出処理と、第１黒端位置から主走査方向に沿って下流へ黒端位置を検出する第３黒端検出処理と、を含む。第１黒端検出処理は、特定位置における副走査方向に沿って下流側に隣接する画素を順に新たな対象黒端画素として設定する対象黒端画素設定処理と、対象黒端画素の階調値が黒端検出値よりも小さいか否かを判断する黒端検出値判断処理と、対象黒端画素の階調値が黒端検出値よりも小さいときに対象黒端画素の位置を示す画素番号と関連付けて対象黒端画素の階調値を黒端検出値として記憶し、対象黒端画素の階調値が黒端検出値以上であるときに白階調値から黒端検出値を引算して黒端差分値を算出する黒端差分値算出処理と、黒端差分値が第４閾値以上であるときに黒端検出値に対応する画素を黒画素と判断し、画素番号が示す位置を第１黒端位置として検出する。よって、特定位置における全ての画素に対して第４閾値以上であるか否かを判断することなく、黒画素を判断することができる。
【００２１】
請求項５に記載の具体的態様では、第２黒端検出処理は、第１対象黒端画素と主走査方向の上流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ隣接する第２所定画素数の画素群を第１対象黒端画素群として設定する第１対象黒端画素群設定処理と、白階調値から第１対象黒端画素群の階調値のうちで最小の階調値である第１最小値を引算して第１差分値を算出する第１差分値算出処理と、第１差分値が第４閾値以上のときに第１最小値を示す画素を新たな第１対象黒端画素として設定する第１差分値判断処理と、を含む。第３黒端検出処理は、第２対象黒端画素と主走査方向の下流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ隣接する第２所定画素数の画素群を第２対象黒端画素群として設定する第２対象黒端画素群設定処理と、白階調値から第２対象黒端画素群の階調値のうちで最小の階調値である第２最小値を引算して第２差分値を算出する第２差分値算出処理と、第２差分値が第４閾値以上のときに第１最小値を示す画素を新たな第２対象黒端画素として設定する第２差分値判断処理と、を含む。よって、１頁の全ての画素に対して第４閾値以上であるか否かを判断することなく、黒端画素に隣接する第２所定画素数の画素群から黒端画素の位置を検出するため、速く黒端画素の位置を検出することができる。
【００２２】
請求項６に記載の具体的態様では、薄紙白端検出処理は、特定位置における白画素を検出することにより第１白端位置を検出する第１白端検出処理と、第１白端位置から主走査方向に沿って上流へ白端位置を検出する第２白端検出処理と、第１白端位置から主走査方向に沿って下流へ白端位置を検出する第３白端検出処理と、を含む。第１白端検出処理は、特定位置における副走査方向に沿って上流へ連続して隣接する第３所定画素数の画素の階調値が第１閾値以上であるときに、隣接する第３所定画素数の画素のうちで最も上流の画素の位置を第１白端開始位置として検出する第１白端開始位置検出処理と、第１白端開始位置の画素の階調値を薄紙閾値として取得する薄紙閾値取得処理と、特定位置における第１白端開始位置の画素から順に副走査方向に沿って上流へ階調値が第５閾値未満であるか否かを判断し、第５閾値未満であると判断された画素の位置を第１白端終了位置として検出する第１白端終了位置検出処理と、を含む。よって、特定位置における全ての画素に対して第５閾値未満であるか否かを判断することなく、白画素を判断することができる。
【００２３】
請求項７に記載の具体的態様では、厚紙白端検出処理は、特定位置における白画素を検出することにより第１白端位置を検出する第４白端検出処理と、第２白端検出処理と、第３白端検出処理とを含む。第４白端検出処理は、特定位置における副走査方向に沿って上流へ連続して隣接する第４所定画素数の画素の階調値が第２閾値以上であるときに、隣接する第４所定画素数の画素のうちで最も上流の画素の位置を第２白端開始位置として検出する第２白端開始位置検出処理と、特定位置における第２白端開始位置の画素から順に副走査方向に沿って上流へ階調値が第６閾値未満であるか否かを判断し、第６閾値未満であると判断された画素の位置を第２白端終了位置として検出する第２白端終了位置検出処理と、を含む。よって、特定位置における全ての画素に対して第６閾値未満であるか否かを判断することなく、白画素を判断することができる。
【００２４】
請求項８に記載の具体的態様では、第２白端検出処理は、原稿種別が薄紙のときに薄紙閾値を白端閾値として設定し、原稿種別が厚紙のときに第６閾値を白端閾値として設定する閾値設定処理と、第１対象白端画素と主走査方向の上流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ隣接する第１所定画素数の画素群を第１対象白端画素群として設定する第１対象白端画素群設定処理と、第１対象白端画素群のうちで副走査方向に最も上流の画素から副走査方向に沿って下流へ階調値が白端閾値以上であるか否かを判断し、白端閾値以上である画素を新たな第１対象白端画素として設定する第１対象白端判断処理と、を含む。第３白端検出処理は、第２対象白端画素と主走査方向の下流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ隣接する第１所定画素数の画素群を第２対象白端画素群として設定する第２対象白端画素群設定処理と、第２対象白端画素群のうちで副走査方向に最も上流の画素から副走査方向に沿って下流へ階調値が白端閾値以上であるか否かを判断し、白端閾値以上である画素を新たな第２対象白端画素として設定する第２対象白端検出処理と、を含む。よって、１頁の全ての画素に対して白端閾値以上であるか否かを判断することなく、白端画素に隣接する第１所定画素数の画素群から白端画素の位置を検出するため、速く白端画素の位置を検出することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施形態に係る画像読取装置ＳＭの内部構成を示す図面である。
【図２】原稿載置台ＤＴの上面図である。
【図３】画像読取装置ＳＭの電気的構成を示すブロック図である。
【図４】読取メイン処理を示すフローチャートである。
【図５】原稿検出処理（Ｒ６）を示すフローチャートである。
【図６】板色偏差ＣＣＤ算出処理（ＲＡ１）を示すフローチャートである。
【図７】黒エッジ検出処理（ＲＡ２）を示すフローチャートである。
【図８】原稿先端位置ＯＨＰ検出処理（ＲＡ６）を示すフローチャートである。
【図９】背景色エッジ検出処理（ＲＡ９）を示すフローチャートである。
【図１０】薄紙白エッジ検出処理（ＲＡ１２）を示すフローチャートである。
【図１１】厚紙白エッジ検出処理（ＲＡ１４）を示すフローチャートである。
【図１２】原稿後端位置ＯＴＰ検出処理（ＲＡ１６）を示すフローチャートである。
【図１３】副走査方向の画素位置が１０１画素目から１２０画素目までの位置について、第２判断位置ＤＰ２における階調値ＧＶを説明する図面である。
【図１４】副走査方向の画素位置が１００画素目から１２０画素目までの位置について、主走査方向５００画素目の位置における階調値ＧＶを説明する図面である。
【図１５】副走査方向の画素位置が２５７１画素目から２６００画素目までの位置について、第２判断位置ＤＰ２における階調値ＧＶを説明する図面である。
【図１６】副走査方向の画素位置が２５７５画素目から２５９５画素目までの位置について、主走査方向５００画素目の位置における階調値ＧＶを説明する図面である。
【発明を実施するための形態】
【００２６】
＜画像読取装置ＳＭの構成＞
図１は、画像読取装置ＳＭの正面図を示す。図２は、原稿載置台ＤＴを上から見た上面図を示す。以下の説明において、図１の右方向を副走査方向の下流、図２の下方向を主走査方向の下流、図２の右方向を副走査方向の下流として説明する。画像読取装置ＳＭは、原稿載置台ＤＴと、原稿押え板ＣＶと、を備える。原稿載置台ＤＴは、本体ＭＢと、透明板ＴＰと、を備える。本体ＭＢは、様々な部材（例えば、透明板ＴＰ、読取部２０等）を収容するための筐体である。透明板ＴＰは、本体ＭＢに収容されており、本体ＭＢに固定されている。透明板ＴＰには、読取対象の原稿が載置される。原稿押え板ＣＶは、本体ＭＢの上部に配置されており、本体ＭＢに対して開閉可能である。原稿押え板ＣＶは、本体ＭＢの奥側（図１の紙面に垂直方向の奥側、図２の上側）に回転軸２８を備え、本体ＭＢの前側（図１の紙面に垂直方向の手前側、図２の下側）から開閉される。
【００２７】
画像読取装置ＳＭは、さらに、透明板ＴＰの下方で本体ＭＢに収容されている読取部２０を備える。読取部２０は、本体ＭＢに対して副走査方向（即ち図１の左右方向）に沿って移動可能である。読取部２０は、透明板ＴＰに載置される原稿の読取を実行する。読取部２０は、ＣＩＳ（Contact Image Sensorの略、密着型イメージセンサ）で構成され、具体的には、光源２１と、ロッドレンズ２４と、受光部２２と、を備える。光源２１は、赤色、青色、および緑色の発光ダイオードなどで構成され、透明板ＴＰに向けて、光を照射する。ロッドレンズ２４は、主に光源２１から照射される光の反射光を受光する。
【００２８】
受光部２２は、主走査方向に配列される２６８０個の光電変換素子２３を含み、図示しないシフトレジスタ、および増幅器を内蔵する。各光電変換素子２３の出力は、主走査方向の各画素における受光量である。光電変換素子２３の先頭画素は、図２に図示する主走査方向の最も上流に位置する画素であり、光電変換素子２３の最終画素は、図２に図示する主走査方向の最も下流に位置する画素である。本実施形態では、１ラインは、この主走査方向の先頭画素から最終画素までで構成される画素群である。
【００２９】
図２において原稿載置台ＤＴの上面は、本体ＭＢの上面、および透明板ＴＰが原稿押え板ＣＶ側に露出した面を有する。本体ＭＢは、カバーセンサ２７、および回動軸２８が配置されている。透明板ＴＰは、副走査方向に沿って伸びる長辺と、主走査方向に沿って伸びる短辺と、によって構成される矩形形状を有する。透明板ＴＰの露出する面は、図２において実線で示す。透明板ＴＰの露出する面のうち副走査方向の最上流位置が読取開始位置ＳＰであり、透明板ＴＰの露出する面のうち副走査方向の最下流位置が読取終了位置ＥＰである。副走査方向の読取開始位置ＳＰから読取終了位置ＥＰまでの画素数は、３７７０画素である。透明板ＴＰには、いずれかの位置に原稿が載置される。回動軸２８は、原稿押え板ＣＶを開閉するときに回動する軸であり、本体ＭＢの主走査方向の上流側に２カ所配置されている。カバーセンサ２７は、回動軸の近傍に配置され、原稿押え板ＣＶが開いたときの開状態時にオンし、原稿押え板ＣＶが閉じたときの閉状態時にオフする。
【００３０】
後述する黒エッジ検出処理ＲＡ２を実行する第１判断位置ＤＰ１、第２判断位置ＤＰ２、および第３判断位置ＤＰ３について説明する。第１判断位置ＤＰ１は、図２の実線で示すように、副走査方向の位置であり、主走査方向の先頭画素から１３４０画素目の位置である。第２判断位置ＤＰ２は、図２の一点差線で示すように、副走査方向の位置であり、主走査方向の先頭画素から６７０画素目の位置である。第３判断位置ＤＰ３は、図２の二点差線で示すように、副走査方向の位置であり、主走査方向の先頭画素から１３４０画素目の位置である。第１判断位置ＤＰ１と第２判断位置ＤＰ２との距離は、読取可能な最小の原稿サイズの幅よりも大きく、第１判断位置ＤＰ１と第３判断位置ＤＰ３との距離は、読取可能な最小の原稿サイズの幅よりも大きい。
【００３１】
後述する板色偏差ＣＣＤ算出処理ＲＡ１を実行する位置である第１板色領域ＲＣＲ１、第２板色領域ＲＣＲ２、第３板色領域ＲＣＲ３、および第４板色領域ＲＣＲ４について説明する。第１板色領域ＲＣＲ１は、図２の右上斜線を付した領域で示すように、透明板ＴＰの露出する面のうち主走査方向の最上流位置であり、且つ副走査方向の最上流位置にある矩形領域であり、主走査方向に１０画素、および副走査方向に１０画素の範囲に含まれる合計１００画素からなる領域である。第２板色領域ＲＣＲ２は、右下斜線を付した領域で示すように、透明板ＴＰの露出する面のうち主走査方向の最下流位置であり、且つ副走査方向の最上流位置にある矩形領域であり、主走査方向に１０画素、および副走査方向に１０画素の範囲に含まれる合計１００画素からなる領域である。第３板色領域ＲＣＲ３は、縦線を付した領域で示すように、透明板ＴＰの露出する面のうち主走査方向の最上流位置であり、且つ副走査方向の最下流位置である矩形領域であり、主走査方向に１０画素、および副走査方向に１０画素の範囲に含まれる合計１００画素からなる領域である。第４板色領域ＲＣＲ４は、横線を付した領域で示すように、透明板ＴＰの露出する面のうち主走査方向の最下流位置であり、且つ副走査方向の最下流位置である矩形領域であり、主走査方向に１０画素、および副走査方向に１０画素の範囲に含まれる合計１００画素からなる領域である。第１板色領域ＲＣＲ１と第２板色領域ＲＣＲ２とは、第１距離Ｌ１離れており、読取可能な最大の原稿サイズの幅よりも大きく、第１板色領域ＲＣＲ１と第３板色領域ＲＣＲ３とは、第２距離Ｌ２離れており、読取可能な最大の原稿サイズの幅よりも大きい。
【００３２】
画像読取装置ＳＭは、さらに、透明板ＴＰの上面に固定されている基準部材ＢＭを備える。基準部材ＢＭは、透明板ＴＰの副走査方向の上流側（即ち図２の左側）の端部に設けられている。基準部材ＢＭは、主走査方向に沿って伸びる白色の部材であり、後述する補正データを取得するときや、光源２１を調整するときに利用される。以下では、副走査方向において、基準部材ＢＭの中央の位置を、「ホーム位置ＨＰ」と呼ぶ。読取部２０は、ホーム位置ＨＰを基準として、副走査方向に移動可能に構成されている。
【００３３】
＜画像読取装置ＳＭの電気的構成＞
画像読取装置ＳＭの電気的構成について図３を参照して説明する。図３において、画像読取装置ＳＭは、ＣＰＵ３０、ＲＯＭ３１、ＲＡＭ３２、フラッシュＲＯＭ３３、デバイス制御部３４、アナログフロントエンド（以下、ＡＦＥという）３５、画像処理部３６、および駆動回路３７を主な構成要素として備える。これらの構成要素は、バス３８を介して、操作機構ＯＭ、表示機構ＤＭ、およびカバーセンサ２７に接続される。操作機構ＯＭは、開始ボタンおよび決定ボタン等の複数のキーによって構成される。ユーザは、操作機構ＯＭを操作することによって、様々な指示を画像読取装置ＳＭに入力することができる。表示機構ＤＭは、様々な情報を表示するためのディスプレイである。
【００３４】
ＲＯＭ３１は、後述する読取メイン処理、各メイン処理中のサブルーチンの処理など、画像読取装置ＳＭの各種動作を実行するためのプログラムを記憶する。ＣＰＵ３０は、ＲＯＭ３１から読み出されたプログラムに従って、各部の制御を行う。フラッシュＲＯＭ３３は、読み書き可能な不揮発性メモリであり、ＣＰＵ３０の制御処理により生成された各種のデータ、たとえば読取メイン処理により取得された各種のデータなどを記憶する。ＲＡＭ３２は、ＣＰＵ３０の制御処理により生成された算出結果などを一時的に記憶する。
【００３５】
デバイス制御部３４は、読取部２０に接続され、ＣＰＵ３０からの命令に基づいて、光源２１の点灯または消灯を制御する信号、および光源２１に流れる電流値を制御する信号を光源２１に送信する。また、デバイス制御部３４は、ＣＰＵ３０からの命令に基づいて、多数の光電変換素子２３の電気信号を同時にシフトレジスタに転送するためのシリアルイン信号ＳＩおよびシフトレジスタの電気信号を順番に出力させるためのクロック信号ＣＬＫを受光部２２に送信する。読取部２０は、デバイス制御部３４からこれらの信号を受け取ると、光源２１を点灯させるとともに、受光部２２が受光した受光量に応じたアナログ信号をＡＦＥ３５に送信する。
【００３６】
ＡＦＥ３５は、読取部２０に接続され、ＣＰＵ３０からの命令に基づいて、読取部２０から送信されるアナログ信号をデジタルデータに変換する。ＡＦＥ３５は、予め定められた入力レンジおよび分解能を有する。たとえば、分解能は、１０ビットであるならば、「０」から「１０２３」までの階調である。この場合、ＡＦＥ３５は、読取部２０から送信されたアナログ信号をデジタルデータとして１０ビット（０〜１０２３）の階調データに変換する。ＡＦＥ３５によって変換されたデジタルデータは、画像処理部３６に送信される。
【００３７】
画像処理部３６は、画像処理用の専用ＩＣであるＡＳＩＣから構成され、デジタルデータにシェーディング補正処理を施す。画像処理部３６は、シェーディング補正処理を施さないように設定することもできるし、シェーディング補正を施すように設定することもできる。画像処理部３６は、シェーディング補正を施すように設定されたときに、１０ビットのデジタルデータにシェーディング補正処理を施し、８ビットの階調値ＧＶを生成する。この階調値ＧＶは、バス３８を介してＲＡＭ３２に記憶される。画像処理部３６は、シェーディング補正を施さないように設定されたときに、１０ビットのデジタルデータをＲＡＭ３２に記憶する。ここで、シェーディング補正は、白補正および黒補正などである。画像処理部３６には、黒補正のために黒補正データが設定され、白補正のために白補正データが設定される。本実施形態では、階調値ＧＶは８ビットであるため、「０」から「２５５」までの数値である。
【００３８】
駆動回路３７は、搬送モータＭＴに接続され、ＣＰＵ３０から送信される駆動指令に基づいて搬送モータＭＴを駆動する。駆動回路３７は、駆動指令により指令された回転量および回転方向に従って搬送モータＭＴを回転させる。搬送モータＭＴが所定量だけ回転すると、移動機構ＭＭが所定角度回転し、読取部２０が副走査方向に所定距離だけ搬送される。
【００３９】
＜画像読取装置ＳＭの動作＞
（読取メイン処理）
次に、画像読取装置ＳＭの動作について図面を参照して説明する。画像読取装置ＳＭは、原稿ＧＳを読み取る読取メイン処理を主に実行する。図４に示す読取メイン処理中の処理Ｒ１〜処理Ｒ７は、ＣＰＵ３０が実行する処理である。
【００４０】
図４に示す読取メイン処理は、ユーザが原稿ＧＳを原稿載置台ＤＴに載置し、原稿押え板ＣＶを閉じた後に、操作機構ＯＭの読取開始ボタンを押下することにより、開始される。即ち、ＣＰＵ３０は、カバーセンサ２７がオフの状態で、読取開始ボタンを押下した指令を受け取ることにより、読取メイン処理を開始する。
【００４１】
ＣＰＵ３０は、デバイス制御部３４、および画像処理部３６等を初期化する（Ｒ１）。具体的には、ＣＰＵ３０は、主走査方向の読取解像度が３００ＤＰＩ、および副走査方向の読取解像度が６００ＤＰＩに対応するクロック信号ＣＬＫ及びシリアルイン信号ＳＩの設定をフラッシュＲＯＭ３３から取得し、デバイス制御部３４に設定する。ＣＰＵ３０は、画像処理部３６にシェーディング補正を実行しない設定を設定する。ＣＰＵ３０は、第1白カウント値ＷＣＴ１および第２白カウント値ＷＣＴ２にそれぞれ数値「０」を設定する。
【００４２】
ＣＰＵ３０は、後述する読取処理Ｒ７で点灯する光量である読取用光量ＳＴ１を調整する（Ｒ２）。具体的には、ＣＰＵ３０は、各色の光源２１を予め調整された電流値で点灯させた状態で、基準部材ＢＭを照射し、その反射光を読み取ったときの１０ビットのデジタルデータの最大値が「１０２３」となるように、赤色点灯期間、緑色点灯期間、および青色点灯期間を調整する。
【００４３】
ＣＰＵ３０は、後述する事前読取処理Ｒ５で点灯する光量である原稿検出用光量ＳＴ２を調整する（Ｒ３）。具体的には、ＣＰＵ３０は、緑色の光源２１を予め調整された電流値で点灯させた状態で、基準部材ＢＭを照射し、その反射光を読み取ったときの１０ビットのデジタルデータの最大値が「９２１」となるように、緑色点灯期間を調整する。「９２１」は、デジタルデータの最大値である「１０２３」より１０％小さい値である。
【００４４】
ＣＰＵ３０は、補正データを取得する（Ｒ４）。具体的には、ＣＰＵ３０は、光源２１を消灯した状態で読み取ることにより、１ラインの各画素の１０ビットのデジタルデータを黒補正データとして取得する。ＣＰＵ３０は、光源２１を読取用光量ＳＴ１で点灯した状態で基準部材ＢＭを読み取ることにより、１ラインの各画素の１０ビットのデジタルデータを白補正データとして取得する。
【００４５】
ＣＰＵ３０は、事前読取処理を実行する（Ｒ５）。具体的には、ＣＰＵ３０は、画像処理部３６にシェーディング補正を実行する設定を設定する。ＣＰＵ３０は、画像処理部３６に黒補正データおよび白補正データを設定する。ＣＰＵ３０は、駆動回路３７に指令を出力し、駆動回路３７により読取部２０を搬送させる。ＣＰＵ３０は、光源２１を原稿検出用光量ＳＴ２で点灯した状態で読取開始位置ＳＰから読取終了位置ＥＰまでの最大読取範囲を読取部２０により主走査方向の読取解像度３００ＤＰＩ、および副走査方向の読取解像度６００ＤＰＩで読み取らせる。ＣＰＵ３０は、読み取ったデジタルデータを画像処理部３６に処理させることにより、１頁の階調値ＧＶを取得してＲＡＭ３２に記憶させる。
【００４６】
ＣＰＵ３０は、処理Ｒ５で記憶させた１頁の階調値ＧＶから原稿先端位置ＯＨＰ及び原稿後端位置ＯＴＰを検出する（Ｒ６）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、１頁の階調値ＧＶから原稿先端位置ＯＨＰを検出する。ＣＰＵ３０は、原稿先端位置ＯＨＰよりも副走査方向に沿って下流に位置する複数の画素の階調値ＧＶを平均して背景色平均値ＢＧＡＶを算出する。ＣＰＵ３０は、原稿先端位置ＯＨＰにおける全ての画素の階調値ＧＶから黒エッジ値偏差ＢＥＤを算出する。ＣＰＵ３０は、背景色平均値ＢＧＡＶが白判定値ＷＤＶ以上であるか否かを判断し、白判定値ＷＤＶ未満であれば、背景色エッジ検出処理ＲＡ９により原稿後端位置ＯＴＰを検出する。白判定値ＷＤＶ以上であれば、さらにＣＰＵ３０は、黒エッジ値偏差ＢＥＤが紙種閾値ＯＴＨ以上であるか否かを判断し、紙種閾値ＯＴＨ以上であれば、薄紙白エッジ検出処理ＲＡ１２により原稿後端位置ＯＴＰを検出し、紙種閾値ＯＴＨ未満であれば、厚紙白エッジ検出処理ＲＡ１４により原稿後端位置ＯＴＰを検出する。
【００４７】
ＣＰＵ３０は、読取処理を実行する（Ｒ７）。具体的には、ＣＰＵ３０は、ユーザにより設定された読取解像度に対応するクロック信号ＣＬＫ及びシリアルイン信号ＳＩの設定をフラッシュＲＯＭ３３から取得し、デバイス制御部３４に設定する。ＣＰＵ３０は、駆動回路３７に指令を出力し、駆動回路３７により読取部２０を搬送させる。ＣＰＵ３０は、原稿先端位置ＯＨＰから原稿後端位置ＯＴＰまでの読取範囲を読取部２０によりユーザにより設定された読取解像度で読み取らせる。ＣＰＵ３０は、読み取ったデジタルデータを画像処理部３６に処理させることにより、階調値ＧＶからなる画像データをＲＡＭ３２に記憶させる。ここで、原稿先端位置ＯＨＰから原稿後端位置ＯＴＰまでの読取範囲は、原稿先端位置ＯＨＰ、原稿後端位置ＯＴＰ、主走査最上流線、および主走査最下流線で囲まれる領域である。主走査最上流線は、原稿先端位置ＯＨＰにおける主走査方向の最上流の画素の位置から原稿後端位置ＯＴＰにおける主走査方向の最上流の画素の位置までの線である。主走査最下流線は、原稿先端位置ＯＨＰにおける主走査方向の最下流の画素の位置から原稿後端位置ＯＴＰにおける主走査方向の最下流の画素の位置までの線である。
【００４８】
（原稿検出処理Ｒ６）
図５に示す原稿検出処理Ｒ６が開始されると、ＣＰＵ３０は、板色平均値ＣＣＡＶおよび板色偏差ＣＣＤを算出する（ＲＡ１）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、処理Ｒ５で記憶させた１頁の階調値ＧＶのうちで第1板色領域ＲＣＲ１、第２板色領域ＲＣＲ２、第３板色領域ＲＣＲ３、および第４板色領域ＲＣＲ４の各板色領域に含まれる階調値ＧＶを平均して第１板色平均値ＣＣ１、第２板色平均値ＣＣ２、第３板色平均値ＣＣ３、および第４板色平均値ＣＣ４を算出する。ＣＰＵ３０は、第１板色平均値ＣＣ１、第２板色平均値ＣＣ２、第３板色平均値ＣＣ３、および第４板色平均値ＣＣ４のうちで第1所定範囲内にある３個の板色平均値を選択する。ＣＰＵ３０は、３個の板色平均値を平均して板色平均値ＣＣＡＶを算出する。ＣＰＵ３０は、選択した３個の板色平均値に対応する３個の板色領域に含まれる全ての画素の階調値ＧＶから板色偏差ＣＣＤを算出する。
【００４９】
ＣＰＵ３０は、処理Ｒ５で記憶させた１頁の階調値ＧＶから第１判断位置ＤＰ１、第２判断位置ＤＰ２、または第３判断位置ＤＰ３において原稿先端位置ＯＨＰを検出する（ＲＡ２）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、第１判断位置ＤＰ１、第２判断位置ＤＰ２、または第３判断位置ＤＰ３において副走査方向の読取開始位置ＳＰの画素から副走査方向に沿って下流へ板色平均値ＣＣＡＶとの差が第１黒閾値ＢＴＨ１以上である階調値ＧＶの画素の位置を原稿先端位置ＯＨＰとして検出する。ＣＰＵ３０は、原稿先端位置ＯＨＰから副走査方向に沿って下流へ１００画素離れた位置の画素から副走査方向に沿って下流へ１００画素の合計１００個の階調値ＧＶを平均して背景色平均値ＢＧＡＶを算出する。ＣＰＵ３０は、第１判断位置ＤＰ１、第２判断位置ＤＰ２、および第３判断位置ＤＰ３のいずれにおいても原稿先端位置ＯＨＰを検出できなかった場合は、原稿無フラグＯＦをオンに設定する。ここで、板色平均値ＣＣＡＶとの差が第１黒閾値ＢＴＨ１以上である画素が黒エッジを示す黒画素である。
【００５０】
ＣＰＵ３０は、原稿無フラグＯＦがオンか否かを判断する（ＲＡ３）。ＣＰＵ３０は、原稿無フラグＯＦがオンでない場合（ＲＡ３：Ｎｏ）に、処理ＲＡ６へ進み、原稿無フラグＯＦがオンである場合（ＲＡ３：Ｙｅｓ）に、処理ＲＡ４へ進む。
【００５１】
ＣＰＵ３０は、原稿先端位置ＯＨＰを最大位置に設定する（ＲＡ４）。具体的には、ＣＰＵ３０は、主走査方向の先頭画素位置から最終画素位置までの全ての画素位置について副走査方向の読取開始位置ＳＰの画素位置を原稿先端位置ＯＨＰとして設定する。
【００５２】
ＣＰＵ３０は、原稿後端位置ＯＴＰを最大位置に設定する（ＲＡ５）。具体的には、ＣＰＵ３０は、主走査方向の先頭画素位置から最終画素位置までの全ての画素位置について副走査方向の読取終了位置ＥＰの画素位置を原稿後端位置ＯＴＰとして設定する。処理ＲＡ５が終了すると、原稿検出処理Ｒ６が終了する。
【００５３】
処理ＲＡ３においてＮｏと判断すると、ＣＰＵ３０は、原稿先端位置ＯＨＰを検出する（ＲＡ６）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、原稿先端位置ＯＨＰから主走査方向に沿って上流側に隣接する画素から副走査方向に沿って上流側と下流側とに隣接するそれぞれ１０画素ずつの合計２０画素を上流側の対象画素群として設定する。ＣＰＵ３０は、設定した上流側の対象画素群のうちで最も小さい値と板色平均値ＣＣＡＶとの差が第１黒閾値ＢＴＨ１以上である画素の位置を原稿先端位置ＯＨＰとして検出する。ＣＰＵ３０は、新たな原稿先端位置ＯＨＰを検出した場合は、再度上流側の対象画素群を設定しなおして原稿先端位置ＯＨＰを検出する。同様に、ＣＰＵ３０は、原稿先端位置ＯＨＰから主走査方向に沿って下流側に隣接する画素から副走査方向に沿って上流側と下流側とに隣接するそれぞれ１０画素ずつの合計２０画素を下流側の対象画素群として設定する。ＣＰＵ３０は、設定した下流側の対象画素群のうちで最も小さい値と板色平均値ＣＣＡＶとの差が第１黒閾値ＢＴＨ１以上である画素の位置を原稿先端位置ＯＨＰとして検出する。ＣＰＵ３０は、新たな原稿先端位置ＯＨＰを検出した場合は、再度下流側の対象画素群を設定しなおして原稿先端位置ＯＨＰを検出する。ＣＰＵ３０は、検出した全ての原稿先端位置ＯＨＰの画素の階調値ＧＶから黒エッジ値偏差ＢＥＤを算出する。ここで、板色平均値ＣＣＡＶとの差が第1黒閾値以上である画素が黒エッジを示す黒画素である。
【００５４】
ＣＰＵ３０は、背景色平均値ＢＧＡＶが白判定値ＷＤＶ以上であるか否かを判断する（ＲＡ７）。ＣＰＵ３０は、白判定値ＷＤＶ以上である場合（ＲＡ７：Ｙｅｓ）に、処理ＲＡ１０へ進み、白判定値ＷＤＶ未満である場合（ＲＡ７：Ｎｏ）に、処理ＲＡ８へ進む。処理ＲＡ８に進むと、ＣＰＵ３０は、エッジ種フラグＥＦを数値「０」に設定する（ＲＡ８）。本実施形態において、白判定値ＷＤＶは、「２００」である。原稿の背景色として「２００」以上の階調値ＧＶのときに、白色の階調値ＧＶよりも階調値ＧＶが大きい白エッジを検出することができる。
【００５５】
ＣＰＵ３０は、背景色閾値ＢＧＴＨに基づき端部判断位置ＥＤＰにおける原稿後端位置ＯＴＰを検出する（ＲＡ９）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、板色平均値ＣＣＡＶと背景色平均値ＢＧＡＶとを平均して背景色閾値ＢＧＴＨを算出する。ＣＰＵ３０は、端部判断位置ＥＤＰにおいて副走査方向の読取終了位置ＥＰの画素から副走査方向に沿って上流へ背景色閾値ＢＧＴＨよりも小さい階調値ＧＶの画素の位置を原稿後端位置ＯＴＰとして検出する。ＣＰＵ３０は、端部判断位置ＥＤＰにおいて原稿後端位置ＯＴＰを検出できなかった場合は、原稿無フラグＯＦをオンに設定する。
【００５６】
処理ＲＡ７においてＹｅｓと判断すると、ＣＰＵ３０は、黒エッジ値偏差ＢＥＤが紙種閾値ＯＴＨ以上であるか否かを判断する（ＲＡ１０）。ＣＰＵ３０は、紙種閾値ＯＴＨ未満である場合（ＲＡ１０：Ｎｏ）に、原稿の原稿種別が厚紙であると判断し、処理ＲＡ１３へ進む。処理ＲＡ１３に進むと、ＣＰＵ３０は、エッジ種フラグＥＦを数値「２」に設定する（ＲＡ１３）。ＣＰＵ３０は、紙種閾値ＯＴＨ以上である場合（ＲＡ１０：Ｙｅｓ）に、原稿の原稿種別が薄紙であると判断し、処理ＲＡ１１に進む。処理ＲＡ１１に進むと、ＣＰＵ３０は、エッジ種フラグＥＦを数値「１」に設定する（ＲＡ１１）。本実施形態では、紙種閾値ＯＴＨは、８ビットの階調数である「２５５」の２％であり、「５」である。経験的に、原稿が薄いと、原稿の影である原稿先端の階調値ＧＶが安定せずに階調値ＧＶが変動する。原稿が厚いと、原稿先端の階調値ＧＶが安定して階調値ＧＶが８ビットの階調数である「２５５」の１％程度変動する。
【００５７】
ＣＰＵ３０は、第1白閾値ＷＴＨ１および第２白閾値ＷＴＨ２に基づき端部判断位置ＥＤＰにおける原稿後端位置ＯＴＰを検出する（ＲＡ１２）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、板色平均値ＣＣＡＶに板色偏差ＣＣＤを加算して第１白閾値ＷＴＨ１を算出する。ＣＰＵ３０は、背景色平均値ＢＧＡＶに背景色偏差ＢＧＤを加算して第２白閾値ＷＴＨ２を算出する。ＣＰＵ３０は、端部判断位置ＥＤＰにおいて副走査方向の読取終了位置ＥＰの画素から副走査方向に沿って上流へ７画素連続して第１白閾値ＷＴＨ１以上となる副走査方向に最も上流の画素の位置を検出する。第1白閾値ＷＴＨ１以上であると検出した副走査方向に最も上流の画素の階調値ＧＶを薄紙閾値ＦＴＨとしてＲＡＭ３２に記憶する。ＣＰＵ３０は、第1白閾値ＷＴＨ１以上であると検出した画素の位置から副走査方向に沿って上流へ第２白閾値ＷＴＨ２未満となる画素の位置を原稿後端位置ＯＴＰとして検出する。ＣＰＵ３０は、端部判断位置ＥＤＰにおいて原稿後端位置ＯＴＰを検出できなかった場合は、原稿無フラグＯＦをオンに設定する。ここで、７画素連続して第１白閾値ＷＴＨ１以上となる副走査方向に最も上流の画素から第２白閾値ＷＴＨ２未満となる画素までが白エッジを示す白画素である。
【００５８】
処理ＲＡ１３が終了すると、ＣＰＵ３０は、階調値ＧＶの最大値および第３白閾値ＷＴＨ３に基づき端部判断位置ＥＤＰにおける原稿後端位置ＯＴＰを検出する（ＲＡ１４）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、端部判断位置ＥＤＰにおいて副走査方向の読取終了位置ＥＰの画素から副走査方向に沿って上流へ３画素連続して階調値ＧＶの最大値となる副走査方向に最も上流の画素の位置を検出する。最大値であると検出した副走査方向に最も上流の画素の位置から副走査方向に沿って上流へ第３白閾値ＷＴＨ３未満となる画素の位置を原稿後端位置ＯＴＰとして検出する。ＣＰＵ３０は、端部判断位置ＥＤＰにおいて原稿後端位置ＯＴＰを検出できなかった場合は、原稿無フラグＯＦをオンに設定する。本実施形態では、第３白閾値ＷＴＨ３は、８ビットの階調数である「２５５」の２％であり、「５」である。背景色の階調値ＧＶが「２００」の原稿ときに白エッジの画素の階調値ＧＶが「２５５」から「２５３」程度まで変動するからである。ここで、３画素連続して階調値ＧＶの最大値となる副走査方向に最も上流の画素から第３白閾値ＷＴＨ３未満となる画素までが白エッジを示す白画素である。
【００５９】
ＣＰＵ３０は、原稿無フラグＯＦがオンか否かを判断する（ＲＡ１５）。ＣＰＵ３０は、オンである場合（ＲＡ１５：Ｙｅｓ）に、処理ＲＡ５へ進み、オンでない場合（ＲＡ１５：Ｎｏ）に、処理ＲＡ１６へ進む。
【００６０】
ＣＰＵ３０は、原稿後端位置ＯＴＰを検出する（ＲＡ１６）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、エッジ種フラグＥＦが数値「０」のときに、背景色閾値ＢＧＴＨを後端閾値ＴＴＨとして設定し、エッジ種フラグＥＦが数値「１」のときに、薄紙閾値ＦＴＨを後端閾値ＴＴＨとして設定し、エッジ種フラグＥＦが数値「２」のときに、第３白閾値ＷＴＨ３を後端閾値ＴＴＨとして設定する。ＣＰＵ３０は、原稿後端位置ＯＴＰから主走査方向に沿って上流側に隣接する画素から副走査方向に沿って上流側と下流側とに隣接するそれぞれ１０画素ずつの合計２０画素を上流側の対象画素群として設定する。ＣＰＵ３０は、設定した上流側の対象画素群のうちで副走査方向の最も上流の画素から副走査方向に沿って下流へ後端閾値ＴＴＨ以上となる画素を原稿後端位置ＯＴＰとして検出する。ＣＰＵ３０は、新たな原稿後端位置ＯＴＰを検出した場合は、再度上流側の対象画素群を設定しなおして原稿後端位置ＯＴＰを検出する。同様に、ＣＰＵ３０は、原稿後端位置ＯＴＰから主走査方向に沿って下流側に隣接する画素から副走査方向に沿って上流側と下流側とに隣接するそれぞれ１０画素ずつの合計２０画素を下流側の対象画素群として設定する。ＣＰＵ３０は、設定した下流側の対象画素群のうちで副走査方向の最も上流の画素から副走査方向の下流に沿って後端閾値ＴＴＨ以上となる画素を原稿後端位置ＯＴＰとして検出する。ＣＰＵ３０は、新たな原稿後端位置ＯＴＰを検出した場合は、再度下流側の対象画素群を設定しなおして原稿後端位置ＯＴＰを検出する。処理ＲＡ１６が終了すると、原稿検知処理Ｒ６が終了する。
【００６１】
（板色偏差ＣＣＤ算出処理ＲＡ１）
図６に示す板色偏差ＣＣＤ算出処理ＲＡ１が開始されると、ＣＰＵ３０は、第1板色平均値ＣＣ１を算出する（ＲＢ１）。具体的には、ＣＰＵ３０は、処理Ｒ５で取得した1頁の階調値ＧＶのうちで第1板色領域ＲＣＲ１内にある全ての画素の階調値ＧＶを平均して第1板色平均値ＣＣ１を算出する。
【００６２】
ＣＰＵ３０は、第２板色平均値ＣＣ２を算出する（ＲＢ２）。具体的には、ＣＰＵ３０は、処理Ｒ５で取得した１頁の階調値ＧＶのうちで第２板色領域ＲＣＲ２内にある全ての画素の階調値ＧＶを平均して第２板色平均値ＣＣ２を算出する。
【００６３】
ＣＰＵ３０は、第３板色平均値ＣＣ３を算出する（ＲＢ３）。具体的には、ＣＰＵ３０は、処理Ｒ５で取得した１頁の階調値ＧＶのうちで第３板色領域ＲＣＲ３内にある全ての画素の階調値ＧＶを平均して第３板色平均値ＣＣ３を算出する。
【００６４】
ＣＰＵ３０は、第４板色平均値ＣＣ４を算出する（ＲＢ４）。具体的には、ＣＰＵ３０は、処理Ｒ５で取得した１頁の階調値ＧＶのうちで第４板色領域ＲＣＲ４内にある全ての画素の階調値ＧＶを平均して第４板色平均値ＣＣ４を算出する。
【００６５】
ＣＰＵ３０は、第１板色平均値ＣＣ１、第２板色平均値ＣＣ２、および第３板色平均値ＣＣ３が第１所定範囲内であるか否かを判断する（ＲＢ５）。ＣＰＵ３０は、第1所定範囲内でない場合（ＲＢ５：Ｎｏ）に、処理ＲＢ８へ進み、第1所定範囲内である場合（ＲＢ５：Ｙｅｓ）に、処理ＲＢ６へ進む。本実施形態では、第1所定範囲は、例えば数値「１２」である。原稿押え板ＣＶの白色が退色等により変化する値が「１０」であるため、第1所定範囲は「１０」よりも大きい値である。
【００６６】
ＣＰＵ３０は、第1板色平均値ＣＣ１、第２板色平均値ＣＣ２、および第３板色平均値ＣＣ３を平均して板色平均値ＣＣＡＶを算出する（ＲＢ６）。
【００６７】
ＣＰＵ３０は、板色偏差ＣＣＤを算出する（ＲＢ７）。具体的には、ＣＰＵ３０は、第１板色領域ＲＣＲ１、第２板色領域ＲＣＲ２、および第３板色領域ＲＣＲ３の全ての領域に含まれる全ての画素の階調値ＧＶから標準偏差を板色偏差ＣＣＤとして算出する。ＣＰＵ３０は、処理ＲＢ７が終了すると、処理ＲＢ１６へ進む。
【００６８】
処理ＲＢ５においてＮｏと判断されると、ＣＰＵ３０は、第１板色平均値ＣＣ１、第２板色平均値ＣＣ２、および第４板色平均値ＣＣ４が第１所定範囲内であるか否かを判断する（ＲＢ８）。ＣＰＵ３０は、第１所定範囲内でない場合（ＲＢ８：Ｎｏ）に、処理ＲＢ１１へ進み、第１所定範囲内である場合（ＲＢ８：Ｙｅｓ）に、処理ＲＢ９へ進む。
【００６９】
ＣＰＵ３０は、第１板色平均値ＣＣ１、第２板色平均値ＣＣ２、および第４板色平均値ＣＣ４を平均して板色平均値ＣＣＡＶを算出する（ＲＢ９）。
【００７０】
ＣＰＵ３０は、板色偏差ＣＣＤを算出する（ＲＢ１０）。具体的には、ＣＰＵ３０は、第１板色領域ＲＣＲ１、第２板色領域ＲＣＲ２、および第４板色領域ＲＣＲ４の全ての領域に含まれる全ての画素の階調値ＧＶから標準偏差を板色偏差ＣＣＤとして算出する。ＣＰＵ３０は、処理ＲＢ１０が終了すると、処理ＲＢ１６へ進む。
【００７１】
処理ＲＢ８においてＮｏと判断すると、ＣＰＵ３０は、第１板色平均値ＣＣ１、第３板色平均値ＣＣ３、および第４板色平均値ＣＣ４が第１所定範囲内であるか否かを判断する（ＲＢ１１）。ＣＰＵ３０は、第１所定範囲内でない場合（ＲＢ１１：Ｎｏ）に、処理ＲＢ１４に進み、第１所定範囲内である場合（ＲＢ１１：Ｙｅｓ）に、処理ＲＢ１２へ進む。
【００７２】
ＣＰＵ３０は、第１板色平均値ＣＣ１、第３板色平均値ＣＣ３、および第４板色平均値ＣＣ４を平均して板色平均値ＣＣＡＶを算出する（ＲＢ１２）。
【００７３】
ＣＰＵ３０は、板色偏差ＣＣＤを算出する（ＲＢ１３）。具体的には、ＣＰＵ３０は、第１板色領域ＲＣＲ１、第３板色領域ＲＣＲ３、および第４板色領域ＲＣＲ４の全ての領域に含まれる全ての画素の階調値ＧＶから標準偏差を板色偏差ＣＣＤとして算出する。ＣＰＵ３０は、処理ＲＢ１３が終了すると、処理ＲＢ１６へ進む。
【００７４】
処理ＲＢ１１においてＮｏと判断すると、ＣＰＵ３０は、第２板色平均値ＣＣ２、第３板色平均値ＣＣ３、および第４板色平均値ＣＣ４を平均して板色平均値ＣＣＡＶを算出する（ＲＢ１４）。
【００７５】
ＣＰＵ３０は、板色偏差ＣＣＤを算出する（ＲＢ１５）。具体的には、ＣＰＵ３０は、第２板色領域ＲＣＲ２、第３板色領域ＲＣＲ３、および第４板色領域ＲＣＲ４の全ての領域に含まれる全ての画素の階調値ＧＶから標準偏差を板色偏差ＣＣＤとして算出する。
【００７６】
ＣＰＵ３０は、第１黒閾値ＢＴＨ１を算出する（ＲＢ１６）。具体的には、ＣＰＵ３０は、板色偏差ＣＣＤを２倍した値を板色平均値ＣＣＡＶから引算して第１黒閾値ＢＴＨ１を算出する。処理ＲＢ１６が終了すると、板色偏差ＣＣＤ算出処理ＲＡ１が終了する。
【００７７】
（黒エッジ検出処理ＲＡ２）
図７に示す黒エッジ検出処理ＲＡ２が開始されると、ＣＰＵ３０は、第１判断位置ＤＰ１を対象判断位置に設定し、画素番号ＳＰＮを０に設定する（ＲＣ１）。
【００７８】
ＣＰＵ３０は、対象画素を設定する（ＲＣ２）。具体的には、ＣＰＵ３０は、画素番号ＳＰＮに「１」を加算し、主走査方向の対象判断位置において対象画素と副走査方向に沿って下流側に隣接する画素を対象画素として設定する。対象画素が設定されていない場合、ＣＰＵ３０は、画素番号ＳＰＮに「１」を加算し、主走査方向の対象判断位置における副走査方向の読取開始位置ＳＰの画素を対象画素として設定し、黒エッジ最小値ＢＥＭＮに数値「２５５」を設定する。
【００７９】
ＣＰＵ３０は、対象画素の階調値ＧＶが黒エッジ最小値ＢＥＭＮより小さいか否かを判断する（ＲＣ３）。ＣＰＵ３０は、黒エッジ最小値ＢＥＭＮ以上である場合（ＲＣ３：Ｎｏ）に、処理ＲＣ５へ進み、黒エッジ最小値ＢＥＭＮより小さい場合（ＲＣ３：Ｙｅｓ）に、処理ＲＣ４へ進む。
【００８０】
ＣＰＵ３０は、対象画素の階調値ＧＶを黒エッジ最小値ＢＥＭＮとして記憶する（ＲＣ４）。具体的には、ＣＰＵ３０は、画素番号ＳＰＮに関連付けて黒エッジ最小値ＢＥＭＮをＲＡＭ３２に記憶する。処理ＲＣ４が終了すると、ＣＰＵ３０は、処理ＲＣ２へ進む。
【００８１】
処理ＲＣ３においてＮｏと判断されると、ＣＰＵ３０は、第1最小差分値ＭＮＤＶ１を算出する（ＲＣ５）。具体的には、ＣＰＵ３０は、板色平均値ＣＣＡＶから黒エッジ最小値ＢＥＭＮを引算して第1最小差分値ＭＮＤＶ１を算出する。
【００８２】
ＣＰＵ３０は、第1最小差分値ＭＮＤＶ１が第１黒閾値ＢＴＨ１以上であるか否かを判断する（ＲＣ６）。ＣＰＵ３０は、第１黒閾値ＢＴＨ１以上である場合（ＲＣ６：Ｙｅｓ）に、対象画素の設定を削除し、処理ＲＣ１２へ進む。ＣＰＵ３０は、第１黒閾値ＢＴＨ１未満である場合（ＲＣ６：Ｎｏ）に、処理ＲＣ７へ進む。
【００８３】
ＣＰＵ３０は、対象画素が副走査方向の読取終了位置ＥＰの画素であるか否かを判断する（ＲＣ７）。ＣＰＵ３０は、読取終了位置ＥＰの画素でない場合（ＲＣ７：Ｎｏ）に、処理ＲＣ２へ進む。ＣＰＵ３０は、読取終了位置ＥＰの画素である場合（ＲＣ７：Ｙｅｓ）に、対象画素の設定を削除し、処理ＲＣ８へ進む。
【００８４】
ＣＰＵ３０は、対象判断位置がいずれの位置であるかを判断する（ＲＣ８）。ＣＰＵ３０は、対象判断位置が第１判断位置ＤＰ１である場合（ＲＣ８：第１判断位置ＤＰ１）に、処理ＲＣ９へ進み、対象判断位置が第２判断位置ＤＰ２である場合（ＲＣ８：第２判断位置ＤＰ２）に、処理ＲＣ１０へ進み、対象判断位置が第３判断位置ＤＰ３である場合（ＲＣ８：第３判断位置ＤＰ３）に、処理ＲＣ１１へ進む。
【００８５】
ＣＰＵ３０は、第２判断位置ＤＰ２を対象判断位置に設定する（ＲＣ９）。処理ＲＣ９が終了すると、ＣＰＵ３０は、処理ＲＣ２へ進む。
【００８６】
処理ＲＣ８において「第２判断位置ＤＰ２」と判断すると、ＣＰＵ３０は、第３判断位置ＤＰ３を対象判断位置に設定する（ＲＣ１０）。処理ＲＣ１０が終了すると、ＣＰＵ３０は、処理ＲＣ２へ進む。
【００８７】
処理ＲＣ８において「第３判断位置ＤＰ３」と判断すると、ＣＰＵ３０は、原稿無フラグＯＦをオンに設定する（ＲＣ１１）。処理ＲＣ１１が終了すると、黒エッジ検出処理ＲＡ２は終了する。
【００８８】
処理ＲＣ６において、Ｙｅｓと判断すると、ＣＰＵ３０は、設定されている対象判断位置を端部判断位置ＥＤＰとしてＲＡＭ３２に記憶する（ＲＣ１２）。
【００８９】
ＣＰＵ３０は、原稿先端位置ＯＨＰを記憶する（ＲＣ１３）。具体的には、ＣＰＵ３０は、黒エッジ最小値ＢＥＭＮに関連付けられている画素番号ＳＰＮに対応する画素の位置を副走査方向の原稿先端位置ＯＨＰとしてＲＡＭ３２に記憶し、主走査方向の対象判断位置を主走査方向の原稿先端位置ＯＨＰとしてＲＡＭ３２に記憶する。ここで、画素番号ＳＰＮに対応する画素の位置は、例えば画素番号ＳＰＮが「１００」のときに、副走査方向の読取開始位置ＳＰから１００画素目の位置である。
【００９０】
ＣＰＵ３０は、黒エッジ最小値ＢＥＭＮを黒エッジ値ＢＥＶとしてＲＡＭ３２に記憶する（ＲＣ１４）。
【００９１】
ＣＰＵ３０は、背景色平均値ＢＧＡＶを算出する（ＲＣ１５）。具体的には、ＣＰＵ３０は、主走査方向の対象判断位置において副走査方向の原稿先端位置ＯＨＰから副走査方向に沿って下流へ１００画素離れた位置の画素から副走査方向の下流側に連続して隣接する９９画素目の画素までの合計１００画素の階調値ＧＶである背景色階調値を平均して背景色平均値ＢＧＡＶを算出する。
【００９２】
ＣＰＵ３０は、背景色偏差ＢＧＤを算出する（ＲＣ１６）。具体的には、ＣＰＵ３０は、１００個の背景色階調値から標準偏差を背景色偏差ＢＧＤとして算出する。処理ＲＣ１６が終了すると、黒エッジ検出処理ＲＡ２が終了する。
【００９３】
（原稿先端位置ＯＨＰ検出処理ＲＡ６）
図８に示す原稿先端位置ＯＨＰ検出処理ＲＡ６が開始されると、ＣＰＵ３０は、上流側の対象画素群を設定する（ＲＤ１）。具体的には、ＣＰＵ３０は、主走査方向に最も上流にある原稿先端位置ＯＨＰの画素と主走査方向の上流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ１０画素ずつ連続して隣接する画素を上流側の対象画素群として設定する。上流側の対象画素群が設定されていないときは、主走査方向に最も上流にある原稿先端位置ＯＨＰは、処理ＲＣ１３で記憶した位置である。
【００９４】
ＣＰＵ３０は、上流側の対象画素群のうちで階調値ＧＶが最も小さい最小値を検出する（ＲＤ２）。
【００９５】
ＣＰＵ３０は、第２最小差分値ＭＮＤＶ２を算出する（ＲＤ３）。具体的には、ＣＰＵ３０は、板色平均値ＣＣＡＶから処理ＲＤ２で検出した最小値を引算して第２最小差分値ＭＮＤＶ２を算出する。
【００９６】
ＣＰＵ３０は、第２最小差分値ＭＮＤＶ２が第1黒閾値ＢＴＨ１以上であるか否かを判断する（ＲＤ４）。ＣＰＵ３０は、第１黒閾値ＢＴＨ１未満である場合（ＲＤ４：Ｎｏ）に、上流側の対象画素群の設定を削除し、処理ＲＤ６へ進む。ＣＰＵ３０は、第１黒閾値ＢＴＨ１以上である場合（ＲＤ４：Ｙｅｓ）に、処理ＲＤ５へ進む。
【００９７】
ＣＰＵ３０は、原稿先端位置ＯＨＰおよび黒エッジ値ＢＥＶを記憶する（ＲＤ５）。具体的には、ＣＰＵ３０は、設定されている上流側の対象画素群の主走査方向の位置を主走査方向の原稿先端位置ＯＨＰとしてＲＡＭ３２に記憶し、処理ＲＤ２で検出した最小値を示す画素の副走査方向の位置を副走査方向の原稿先端位置ＯＨＰとしてＲＡＭ３２に記憶し、処理ＲＤ２で検出した最小値を黒エッジ値ＢＥＶとしてＲＡＭ３２に記憶する。処理ＲＤ５が終了すると、ＣＰＵ３０は、処理ＲＤ１へ進む。
【００９８】
処理ＲＤ４においてＮｏと判断すると、ＣＰＵ３０は、下流側の対象画素群を設定する（ＲＤ６）。具体的には、ＣＰＵ３０は、主走査方向に最も下流にある原稿先端位置ＯＨＰの画素と主走査方向の下流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ１０画素ずつ連続して隣接する画素を下流側の対象画素群として設定する。下流側の対象画素群が設定されていないときは、主走査方向に最も下流にある原稿先端位置ＯＨＰは、処理ＲＣ１３で記憶した位置である。
【００９９】
ＣＰＵ３０は、下流側の対象画素群のうちで階調値ＧＶが最も小さい最小値を検出する（ＲＤ７）。
【０１００】
ＣＰＵ３０は、第３最小差分値ＭＮＤＶ３を算出する（ＲＤ８）。具体的には、ＣＰＵ３０は、板色平均値ＣＣＡＶから処理ＲＤ７で検出した最小値を引算して第３最小差分値ＭＮＤＶ３を算出する。
【０１０１】
ＣＰＵ３０は、第３最小差分値ＭＮＤＶ３が第１黒閾値ＢＴＨ１以上であるか否かを判断する（ＲＤ９）。ＣＰＵ３０は、第１黒閾値ＢＴＨ未満である場合（ＲＤ９：Ｎｏ）に、下流側の対象画素郡の設定を削除し、処理ＲＤ１１へ進む。ＣＰＵ３０は、第１黒閾値ＢＴＨ１以上である場合（ＲＤ９：Ｙｅｓ）に、処理ＲＤ１０へ進む。
【０１０２】
ＣＰＵ３０は、原稿先端位置ＯＨＰおよび黒エッジ値ＢＥＶを記憶する（ＲＤ１０）。具体的には、ＣＰＵ３０は、設定されている下流側の対象画素群の主走査方向の位置を主走査方向の原稿先端位置ＯＨＰとしてＲＡＭ３２に記憶し、処理ＲＤ７で検出した最小値を示す画素の副走査方向の位置を副走査方向の原稿先端位置ＯＨＰとしてＲＡＭ３２に記憶し、処理ＲＤ７で検出した最小値を黒エッジ値ＢＥＶとしてＲＡＭ３２に記憶する。処理ＲＤ１０が終了すると、ＣＰＵ３０は、処理ＲＤ６へ進む。
【０１０３】
ＣＰＵ３０は、黒エッジ値偏差ＢＥＤを算出する（ＲＤ１１）。具体的には、ＣＰＵ３０は、処理ＲＣ１４で記憶した黒エッジ値ＢＥＶ、処理ＲＤ５で記憶した黒エッジ値ＢＥＶ、及び処理ＲＤ１０で記憶した黒エッジ値ＢＥＶの全ての黒エッジ値ＢＥＶから標準偏差を黒エッジ値偏差ＢＥＤとして算出する。処理ＲＤ１１が終了すると、原稿先端位置ＯＨＰ検出処理ＲＡ６が終了する。
【０１０４】
（背景色エッジ検出処理）
図９に示す背景色エッジ検出処理ＲＡ９が開始されると、ＣＰＵ３０は、背景色閾値ＢＧＴＨを算出する（ＲＧ１）。具体的には、ＣＰＵ３０は、板色平均値ＣＣＡＶと背景色平均値ＢＧＡＶとを平均して背景色閾値ＢＧＴＨを算出する。
【０１０５】
ＣＰＵ３０は、端部判断位置ＥＤＰの対象画素を設定する（ＲＧ１）。具体的には、ＣＰＵ３０は、主走査方向の端部判断位置ＥＤＰにおいて対象画素と副走査方向に沿って上流側に隣接する画素を対象画素として設定する。対象画素が設定されていない場合は、ＣＰＵ３０は、主走査方向の端部判断位置ＥＤＰにおける副走査方向の読取終了位置ＥＰの画素を対象画素として設定する。
【０１０６】
ＣＰＵ３０は、対象画素の階調値ＧＶが背景色閾値ＢＧＴＨより小さいか否かを判断する（ＲＧ３）。ＣＰＵ３０は、背景色閾値ＢＧＴＨより小さい場合（ＲＧ３：Ｙｅｓ）に、対象画素の設定を削除し、処理ＲＧ６へ進む。ＣＰＵ３０は、背景色閾値ＢＧＴＨ以上である場合（ＲＧ３：Ｎｏ）に、処理ＲＧ４へ進む。
【０１０７】
ＣＰＵ３０は、対象画素が副走査方向の読取開始位置ＳＰの画素であるか否かを判断する（ＲＧ４）。ＣＰＵ３０は、読取開始位置ＳＰの画素でない場合（ＲＧ４：Ｎｏ）に、処理ＲＧ２へ進む。ＣＰＵ３０は、読取開始位置ＳＰの画素である場合（ＲＧ４：Ｙｅｓ）に、対象画素の設定を削除し、処理ＲＧ５へ進む。
【０１０８】
ＣＰＵ３０は、原稿無フラグＯＦをオンに設定する（ＲＧ５）。処理ＲＧ５が終了すると、背景色エッジ検出処理ＲＡ９が終了する。
【０１０９】
ＣＰＵ３０は、原稿後端位置ＯＴＰを記憶する（ＲＧ６）。具体的には、ＣＰＵ３０は、対象画素の主走査方向の位置および対象画素の副走査方向の位置を主走査方向の原稿後端位置ＯＴＰおよび副走査方向の原稿後端位置ＯＴＰとしてＲＡＭ３２に記憶する。処理ＲＧ６が終了すると、背景色エッジ検出処理ＲＡ９が終了する。
【０１１０】
（薄紙白エッジ検出処理ＲＡ１２）
図１０に示す薄紙白エッジ検出処理ＲＡ１２が開始されると、ＣＰＵ３０は、第１白閾値ＷＴＨ１を算出する（ＲＥ１）。具体的には、ＣＰＵ３０は、板色平均値ＣＣＡＶに板色偏差ＣＣＤを加算して第１白閾値ＷＴＨ１を算出する。
【０１１１】
ＣＰＵ３０は、第２白閾値ＷＴＨ２を算出する（ＲＥ２）。具体的には、ＣＰＵ３０は、背景色平均値ＢＧＡＶに背景色偏差ＢＧＤを加算して第２白閾値ＷＴＨ２を算出する。
【０１１２】
ＣＰＵ３０は、端部判断位置ＥＤＰの対象画素を設定する（ＲＥ３）。具体的には、ＣＰＵ３０は、主走査方向の端部判断位置ＥＤＰにおいて対象画素と副走査方向に沿って上流側に隣接する画素を対象画素として設定する。対象画素が設定されていない場合は、ＣＰＵ３０は、主走査方向の端部判断位置ＥＤＰにおける副走査方向の読取終了位置ＥＰの画素を対象画素として設定する。
【０１１３】
ＣＰＵ３０は、対象画素の階調値ＧＶが第１白閾値ＷＴＨ１以上であるか否かを判断する（ＲＥ４）。ＣＰＵ３０は、第１白閾値ＷＴＨ１以上である場合（ＲＥ４：Ｙｅｓ）に、処理ＲＥ７に進み、第１白閾値ＷＴＨ１未満である場合（ＲＥ４：Ｎｏ）に、処理ＲＥ５に進む。処理ＲＥ５に進むと、ＣＰＵ３０は、第１白カウント値ＷＣＴ１に数値「０」を設定する（ＲＥ５）。
【０１１４】
ＣＰＵ３０は、対象画素が副走査方向の読取開始位置ＳＰの画素であるか否かを判断する（ＲＥ６）。ＣＰＵ３０は、読取開始位置ＳＰの画素でない場合（ＲＥ６：Ｎｏ）に、処理ＲＥ３へ進む。ＣＰＵ３０は、読取開始位置ＳＰの画素である場合（ＲＥ６：Ｙｅｓ）に、対象画素の設定を削除し、処理ＲＥ１３に進む。
【０１１５】
処理ＲＥ４においてＹｅｓと判断すると、ＣＰＵ３０は、第１白カウント値ＷＣＴ１に「１」を加算する（ＲＥ７）。
【０１１６】
ＣＰＵ３０は、第１白カウント値ＷＣＴ１が数値「７」以上であるか否かを判断する（ＲＥ８）。ＣＰＵ３０は、数値「７」未満である場合（ＲＥ８：Ｎｏ）に、処理ＲＥ３へ進む。ＣＰＵ３０は、数値「７」以上である場合（ＲＥ８：Ｙｅｓ）に、第１白カウント値ＷＣＴ１に数値「０」を設定し、処理ＲＥ９に進む。
【０１１７】
ＣＰＵ３０は、薄紙閾値ＦＴＨを記憶する（ＲＥ９）。具体的には、ＣＰＵ３０は、対象画素の階調値ＧＶを薄紙閾値ＦＴＨとしてＲＡＭ３２に記憶する。
【０１１８】
ＣＰＵ３０は、端部判断位置ＥＤＰの対象画素を設定する（ＲＥ１０）。具体的には、ＣＰＵ３０は、主走査方向の端部判断位置ＥＤＰにおいて対象画素と副走査方向に沿って上流側に隣接する画素を対象画素として設定する。
【０１１９】
ＣＰＵ３０は、対象画素の階調値ＧＶが第２白閾値ＷＴＨ２以上であるか否かを判断する（ＲＥ１１）。ＣＰＵ３０は、第２白閾値ＷＴＨ２未満である場合（ＲＥ１１：Ｎｏ）に、対象画素の設定を削除し、処理ＲＥ１４へ進む。ＣＰＵ３０は、第２白閾値ＷＴＨ２以上である場合（ＲＥ１１：Ｙｅｓ）に、処理ＲＥ１２へ進む。
【０１２０】
ＣＰＵ３０は、対象画素が副走査方向の読取開始位置ＳＰの画素であるか否かを判断する（ＲＥ１２）。ＣＰＵ３０は、読取開始位置ＳＰの画素でない場合（ＲＥ１２：Ｎｏ）に、処理ＲＥ１０へ進む。ＣＰＵ３０は、読取開始位置ＳＰの画素である場合（ＲＥ１２：Ｙｅｓ）に、対象画素の設定を削除し、処理ＲＥ１３へ進む。
【０１２１】
ＣＰＵ３０は、原稿無フラグＯＦをオンに設定する（ＲＥ１３）。処理ＲＥ１３が終了すると、薄紙白エッジ検出処理ＲＡ１２が終了する。
【０１２２】
処理ＲＥ１１においてＮｏと判断されると、ＣＰＵ３０は、原稿後端位置ＯＴＰを記憶する（ＲＥ１４）。具体的には、ＣＰＵ３０は、対象画素の主走査方向の位置および対象画素の副走査方向の位置を主走査方向の原稿後端位置ＯＴＰおよび副走査方向の原稿後端位置ＯＴＰとしてＲＡＭ３２に記憶する。処理ＲＥ１４が終了すると、薄紙白エッジ検出処理ＲＡ１２が終了する。
【０１２３】
（厚紙白エッジ検出処理ＲＡ１４）
図１１に示す厚紙白エッジ検出処理ＲＡ１４が開始されると、ＣＰＵ３０は、端部判断位置ＥＤＰの対象画素を設定する（ＲＦ１）。具体的には、ＣＰＵ３０は、主走査方向の端部判断位置ＥＤＰにおいて対象画素と副走査方向に沿って上流側に隣接する画素を対象画素として設定する。対象画素が設定されていない場合は、ＣＰＵ３０は、主走査方向の端部判断位置ＥＤＰにおける副走査方向の読取終了位置ＥＰの画素を対象画素として設定する。
【０１２４】
ＣＰＵ３０は、対象画素の階調値ＧＶが最大値であるか否かを判断する（ＲＦ２）。ＣＰＵ３０は、最大値である場合（ＲＦ２：Ｙｅｓ）に、処理ＲＦ６に進み、最大値でない場合（ＲＦ２：Ｎｏ）に、処理ＲＦ３に進む。処理ＲＦ３に進むと、ＣＰＵ３０は、第２白カウント値ＷＣＴ２に数値「０」を設定する（ＲＦ３）。
【０１２５】
ＣＰＵ３０は、対象画素が副走査方向の読取開始位置ＳＰの画素であるか否かを判断する（ＲＦ４）。ＣＰＵ３０は、読取開始位置ＳＰの画素でない場合（ＲＦ４：Ｎｏ）に、処理ＲＦ１に進む。ＣＰＵ３０は、読取開始位置ＳＰの画素である場合（ＲＦ４：Ｙｅｓ）に、対象画素の設定を削除し、処理ＲＦ５に進む。
【０１２６】
ＣＰＵ３０は、原稿無フラグＯＦをオンに設定する（ＲＦ５）。処理ＲＦ５が終了すると、厚紙白エッジ検出処理ＲＡ１４が終了する。
【０１２７】
処理ＲＦ２においてＹｅｓと判断されると、ＣＰＵ３０は、第２白カウント値ＷＣＴ２に「１」を加算する（ＲＦ６）。
【０１２８】
ＣＰＵ３０は、第２白カウント値ＷＣＴ２が数値「３」以上であるか否かを判断する（ＲＦ７）。ＣＰＵ３０は、数値「３」未満である場合（ＲＦ７：Ｎｏ）に、処理ＲＦ１へ進む。ＣＰＵ３０は、数値「３」以上である場合（ＲＦ７：Ｙｅｓ）に、第２白カウント値ＷＣＴ２に数値「０」を設定し、処理ＲＦ８に進む。
【０１２９】
ＣＰＵ３０は、端部判断位置ＥＤＰの対象画素を設定する（ＲＦ８）。具体的には、ＣＰＵ３０は、主走査方向の端部判断位置ＥＤＰにおいて対象画素と副走査方向に沿って上流側に隣接する画素を対象画素として設定する。
【０１３０】
ＣＰＵ３０は、対象画素の階調値ＧＶが第３白閾値ＷＴＨ３以上であるか否かを判断する（ＲＦ９）。ＣＰＵ３０は、第３白閾値ＷＴＨ３未満である場合（ＲＦ９：Ｎｏ）に、処理ＲＦ１１に進み、第３白閾値ＷＴＨ３以上である場合（ＲＦ９：Ｙｅｓ）に、処理ＲＦ１０に進む。
【０１３１】
ＣＰＵ３０は、対象画素が副走査方向の読取開始位置ＳＰの画素であるか否かを判断する（ＲＦ１０）。ＣＰＵ３０は、読取開始位置ＳＰの画素でない場合（ＲＦ１０：Ｎｏ）に、処理ＲＦ８に進み。ＣＰＵ３０は、読取開始位置ＳＰの画素である場合（ＲＦ１０：Ｙｅｓ）に、対象画素の設定を削除し、処理ＲＦ５へ進む。
【０１３２】
処理ＲＦ９においてＮｏと判断されると、ＣＰＵ３０は、原稿後端位置ＯＴＰを記憶する（ＲＦ１１）。具体的には、ＣＰＵ３０は、対象画素の主走査方向の位置および対象画素の副走査方向の位置を主走査方向の原稿後端位置ＯＴＰおよび副走査方向の原稿後端位置ＯＴＰとしてＲＡＭ３２に記憶する。処理ＲＦ１１が終了すると、厚紙白エッジ検出処理ＲＡ１４が終了する。
【０１３３】
（原稿後端位置ＯＴＰ検出処理）
図１２に示す原稿後端位置ＯＴＰ検出処理ＲＡ１６が開始されると、ＣＰＵ３０は、エッジ種フラグＥＦがいずれであるかを判断する（ＲＨ１）。ＣＰＵ３０は、エッジ種フラグＥＦが数値「０」の場合（ＲＨ１：０）に、背景色閾値ＢＧＴＨを後端閾値ＴＴＨとして設定する（ＲＨ２）。ＣＰＵ３０は、エッジ種フラグＥＦが数値「１」の場合（ＲＨ：１）に、薄紙閾値ＦＴＨを後端閾値ＴＴＨとして設定する（ＲＨ３）。ＣＰＵ３０は、エッジ種フラグＥＦが数値「２」の場合（ＲＨ：２）に、第３白閾値ＷＴＨ３を後端閾値ＴＴＨとして設定する（ＲＨ４）。処理ＲＨ２、処理ＲＨ３、または処理ＲＨ４が終了すると、ＣＰＵ３０は、処理ＲＨ５へ進む。
【０１３４】
ＣＰＵ３０は、上流側の対象画素群を設定する（ＲＨ５）。具体的には、ＣＰＵ３０は、主走査方向に最も上流にある原稿後端位置ＯＴＰの画素と主走査方向の上流側に隣接する画素から上流側における上流側と下流側とにそれぞれ１０画素ずつ連続して隣接する画素を上流側の対象画素群として設定する。上流側の対象画素群が設定されていないときは、主走査方向に最も上流にある原稿後端位置ＯＴＰは、処理ＲＧ６、処理ＲＦ１１、または処理ＲＥ１４で記憶した原稿後端位置ＯＴＰである。
【０１３５】
ＣＰＵ３０は、上流側の対象画素群から対象画素を設定する（ＲＨ６）。具体的には、ＣＰＵ３０は、対象画素と副走査方向に沿って下流側に隣接する画素を対象画素として設定する。対象画素が設定されていない場合は、ＣＰＵ３０は、上流側の対象画素群のうちで最も副走査方向に上流の画素を対象画素として設定する。
【０１３６】
ＣＰＵ３０は、対象画素の階調値ＧＶが後端閾値ＴＴＨ以上であるか否かを判断する（ＲＨ７）。ＣＰＵ３０は、後端閾値ＴＴＨ未満である場合（ＲＨ７：Ｎｏ）に、処理ＲＨ９へ進み、後端閾値ＴＴＨ以上である場合（ＲＨ７：Ｙｅｓ）に、処理ＲＨ８へ進む。
【０１３７】
ＣＰＵ３０は、原稿後端位置ＯＴＰを記憶する（ＲＨ８）。具体的には、ＣＰＵ３０は、設定されている対象画素の主走査方向の位置および対象画素の副走査方向の位置を主走査方向の原稿後端位置ＯＴＰおよび副走査方向の原稿後端位置ＯＴＰとしてＲＡＭ３２に記憶する。処理ＲＨ８が終了すると、ＣＰＵ３０は、処理ＲＨ５へ進む。
【０１３８】
処理ＲＨ７においてＮｏと判断すると、ＣＰＵ３０は、対象画素が上流側の対象画素群のうちで副走査方向に沿って最も下流の画素であるか否かを判断する（ＲＨ９）。ＣＰＵ３０は、最も下流の画素でない場合（ＲＨ９：Ｎｏ）に、処理ＲＨ６へ進み、最も下流の画素である場合（ＲＨ９：Ｙｅｓ）に、処理ＲＨ１０に進む。
【０１３９】
ＣＰＵ３０は、下流側の対象画素群を設定する（ＲＨ１０）。具体的には、ＣＰＵ３０は、主走査方向に最も下流にある原稿後端位置ＯＴＰの画素と主走査方向の上流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ１０画素ずつ連続して隣接する画素を下流側の対象画素群として設定する。下流側の対象画素群が設定されていないときは、主走査方向に最も下流にある原稿後端位置ＯＴＰは、処理ＲＧ６、処理ＲＦ１１、または処理ＲＥ１４で記憶した原稿後端位置ＯＴＰである。
【０１４０】
ＣＰＵ３０は、下流側の対象画素群から対象画素を設定する（ＲＨ１１）。具体的には、ＣＰＵ３０は、対象画素と副走査方向に沿って下流側に隣接する画素を対象画素として設定する。対象画素が設定されていない場合は、ＣＰＵ３０は、上流側の対象画素群のうちで最も副走査方向に上流の画素を対象画素として設定する。
【０１４１】
ＣＰＵ３０は、対象画素の階調値ＧＶが後端閾値ＴＴＨ以上であるか否かを判断する（ＲＨ１２）。ＣＰＵ３０は、後端閾値ＴＴＨ未満である場合（ＲＨ１２：Ｎｏ）に、処理ＲＨ１４に進み、後端閾値ＴＴＨ以上である場合（ＲＨ１２：Ｙｅｓ）に、処理ＲＨ１３に進む。
【０１４２】
ＣＰＵ３０は、原稿後端位置ＯＴＰを記憶する（ＲＨ１３）。具体的には、ＣＰＵ３０は、設定されている対象画素の主走査方向の位置および対象画素の副走査方向の位置を主走査方向の原稿後端位置ＯＴＰおよび副走査方向の原稿後端位置ＯＴＰとしてＲＡＭ３２に記憶する。処理ＲＨ１３が終了すると、ＣＰＵ３０は、処理ＲＨ１０へ進む。
【０１４３】
処理ＲＨ１２においてＮｏと判断されると、ＣＰＵ３０は、対象画素が下流側の対象画素群のうちで副走査方向に沿って最も下流の画素であるか否かを判断する（ＲＨ１４）。ＣＰＵ３０は、最も下流の画素でない場合（ＲＨ１４：Ｎｏ）に、処理ＲＨ１１へ進み、最も下流の画素である場合（ＲＨ１４：Ｙｅｓ）に、原稿後端位置ＯＴＰ検出処理ＲＡ１６を終了する。
【０１４４】
（具体例）
図２に示すように、Ａ５サイズの原稿を横向きに載置した場合について説明する。図１３及び図７を参照して、黒エッジ検出処理ＲＡ２において第２判断位置ＤＰ２の原稿先端位置ＯＨＰを検出する過程について説明する。
【０１４５】
図１３に示すように、第２判断位置ＤＰ２における副走査方向の１０１画素目から１１２画素目までの階調値ＧＶは、「２３２」、「２２９」、「２３０」、「２２８」、「２２９」、「２２４」、「２１９」、「２０７」、「１７３」、「１２９」、「８２」、「１２４」である。
【０１４６】
黒エッジ検出処理ＲＡ２が開始されると、ＣＰＵ３０は、第１判断位置ＤＰ１を対象判断位置に設定する（ＲＣ１）。図２に示すように、第１判断位置ＤＰ１には原稿ＧＳが載置されていないため、処理ＲＣ６において第1最小差分値ＭＮＤＶ１が第１黒閾値ＢＴＨ１以上とならない。ＣＰＵ３０は、対象画素が最終画素であると判断すると（ＲＣ７：Ｙｅｓ）、対象判断位置は第１判断位置ＤＰ１と判断し（ＲＣ８：第１判断位置ＤＰ１）、第２判断位置ＤＰ２を対象判断位置として設定する（ＲＣ９）。
【０１４７】
第２判断位置ＤＰ２において副走査方向の読取開始位置ＳＰの画素から１０８画素目までは、原稿押え板ＣＶを読み取るため、処理ＲＣ６において第1最小差分値ＭＮＤＶ１が第１黒閾値ＢＴＨ１以上とならない。よって、処理ＲＣ２から処理ＲＣ７までが繰り返し実行される。ＣＰＵ３０は、副走査方向の１０９画素目を対象画素として設定する（ＲＣ２）。ＣＰＵ３０は、対象画素の階調値ＧＶである「１７３」が黒エッジ最小値ＢＥＭＮである「２０７」よりも小さいと判断する（ＲＣ３：Ｙｅｓ）。ＣＰＵ３０は、対象画素の階調値ＧＶである「１７３」を黒エッジ最小値ＢＥＭＮとしてＲＡＭ３２に記憶し（ＲＣ４）、処理ＲＣ２へ進む。
【０１４８】
ＣＰＵ３０は、副走査方向の１１０画素目を対象画素として設定する（ＲＣ２）。ＣＰＵ３０は、対象画素の階調値ＧＶである「１２９」が黒エッジ最小値ＢＥＭＮである「１７３」よりも小さいと判断する（ＲＣ３：Ｙｅｓ）。ＣＰＵ３０は、対象画素の階調値ＧＶである「１２９」を黒エッジ最小値ＢＥＭＮとしてＲＡＭ３２に記憶し（ＲＣ４）、処理ＲＣ２へ進む。
【０１４９】
ＣＰＵ３０は、副走査方向の１１１画素目を対象画素として設定する（ＲＣ２）。ＣＰＵ３０は、対象画素の階調値ＧＶである「８２」が黒エッジ最小値ＢＥＭＮである「１２９」よりも小さいと判断する（ＲＣ３：Ｙｅｓ）。ＣＰＵ３０は、対象画素の階調値ＧＶである「８２」を黒エッジ最小値ＢＥＭＮとしてＲＡＭ３２に記憶し（ＲＣ４）、処理ＲＣ２へ進む。
【０１５０】
ＣＰＵ３０は、副走査方向の１１２画素目を対象画素として設定する（ＲＣ２）。ＣＰＵ３０は、対象画素の階調値ＧＶである「１２４」が黒エッジ最小値ＢＥＭＮである「８２」以上であると判断する（ＲＣ３：Ｎｏ）。ＣＰＵ３０は、板色平均値ＣＣＡＶである「２３０」から黒エッジ最小値ＢＥＭＮである「８２」を引算して「１４８」を第1最小差分値ＭＮＤＶ１として算出する（ＲＣ５）。ＣＰＵ３０は、第1最小差分値ＭＮＤＶ１である「１４８」が第１黒閾値ＢＴＨ１である「２１６」よりも小さいと判断する（ＲＣ６：Ｙｅｓ）。ＣＰＵ３０は、主走査方向の第２判断位置ＤＰ２および副走査方向の１１２画素目の位置を原稿先端位置ＯＨＰとしてＲＡＭ３２に記憶する（ＲＣ１３）。
【０１５１】
次に、図１４及び図８を参照して、原稿先端位置ＯＨＰ検出処理ＲＡ６において主走査方向に５００画素目の位置の原稿先端位置ＯＨＰを検出する過程について説明する。
【０１５２】
図１４に示すように、主走査方向に５００画素目の位置における副走査方向の１００画素目から１２０画素目までの階調値ＧＶは、「２３６」、「２３５」、「２２９」、「２２４」、「２２８」、「２２５」、「２１９」、「２１５」、「２００」、「１６９」、「１１２」、「１０５」、「１５８」、「１７９」、「１８６」、「２１１」、「２３１」、「２３２」、「２２１」、「２３０」、「２３３」である。
【０１５３】
原稿先端位置ＯＨＰ検出処理ＲＡ６が開始されると、ＣＰＵ３０は、処理ＲＤ１から処理ＲＤ５までを繰り返し実行することにより、第２判断位置ＤＰ２である主走査方向の６７０画素目の位置から５０１画素目の位置までの原稿先端位置ＯＨＰを検出する。ＣＰＵ３０は、主走査方向の５０１画素目の位置の原稿先端位置ＯＨＰの画素と主走査方向の上流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ１０画素ずつ連続して隣接する画素を上流側の対象画素群として設定する（ＲＤ１）。即ち、ＣＰＵ３０は、原稿先端位置ＯＨＰである主走査方向に５０１画素目の位置および副走査方向に１１０画素目の位置にある画素から主走査方向の上流側に隣接する主走査方向に５００画素目の位置および副走査方向に１１０画素目の位置から副走査方向に沿って上流側と下流側とにそれぞれ１０画素ずつ連続して隣接する副走査方向に１００画素目から１２０画素目までの画素を上流側の対象画素群として設定する（ＲＤ１）。
【０１５４】
ＣＰＵ３０は、上流側の対象画素群のうちで最も小さい階調値ＧＶである「１０５」を検出する（ＲＤ２）。ＣＰＵ３０は、板色平均値ＣＣＡＶである「２３０」から「１０５」を引算して「１２５」を第２最小差分値ＭＮＤＶとして算出する（ＲＤ３）。ＣＰＵ３０は、第２最小差分値ＭＮＤＶ２である「１２５」が第１黒閾値ＢＴＨ１である「２１６」よりも小さいと判断する（ＲＤ４：Ｙｅｓ）。ＣＰＵ３０は、主走査方向の５００画素目の位置および副走査方向の１１１画素目の位置を原稿先端位置ＯＨＰとしてＲＡＭ３２に記憶する（ＲＤ５）。
【０１５５】
次に、図１５及び図１０を参照して、薄紙白エッジ検出処理ＲＡ１２において第２判断位置ＤＰ２の原稿後端位置ＯＴＰを検出する過程について説明する。
【０１５６】
図１５に示すように、第２判断位置ＤＰ２における副走査方向の２５７１画素目から２６００画素目までの階調値ＧＶは、「２２９」、「２３１」、「２２７」、「２４３」、「２２８」、「２４３」、「２３４」、「２２８」、「２３３」、「２３６」、「２３６」、「２４３」、「２４５」、「２４０」、「２３８」、「２４９」、「２５５」、「２５５」、「２５５」、「２５４」、「２５３」、「２５２」、「２４９」、「２４４」、「２４０」、「２３７」、「２３８」、「２４２」、「２４２」、「２３５」である。このとき、副走査方向において２５７４画素目の画素、２５７６画素目の画素、２５８２画素目の画素、２５８３画素目の画素は、透過光による影響により階調値ＧＶが周辺画素に比べて高くなっている。
【０１５７】
薄紙白エッジ検出処理ＲＡ１２が開始されると、ＣＰＵ３０は、板色平均値ＣＣＡＶである「２３０」に板色偏差ＣＣＤである「７」を加算して「２３７」を第１白閾値ＷＴＨ１として算出する（ＲＥ１）。ＣＰＵ３０は、背景色平均値ＢＧＡＶである「２３２」に背景色偏差ＢＧＤである「１０」を加算して「２４２」を第２白閾値ＷＴＨ２として算出する（ＲＥ２）。
【０１５８】
端部判断位置ＥＤＰである第２判断位置ＤＰ２において、副走査方向の読取終了位置ＥＰの画素から２６００画素目までは、原稿押え板ＣＶを読み取るため、７画素連続して第１白閾値ＷＴＨ１以上となることはない。よって、処理ＲＥ３から処理ＲＥ８までが繰り返し実行される。ＣＰＵ３０は、副走査方向の２５９９画素目の画素を対象画素として設定する（ＲＥ３）。ＣＰＵ３０は、対象画素の階調値ＧＶである「２４２」が第１白閾値ＷＴＨ１である「２３７」以上であると判断し（ＲＥ４）、第１白カウント値ＷＣＴ１である「０」に「１」を加算する（ＲＥ７）。ＣＰＵ３０は、第１白カウント値ＷＣＴ１が「７」未満であると判断し（ＲＥ８）、処理ＲＥ３へ進む。副走査方向の２５９８画素目の画素から２５９３画素目の画素までは、階調値ＧＶが「２３７」以上であるため、処理ＲＥ３から処理ＲＥ８までを繰り返し実行し、第１白カウント値ＷＣＴ１に「１」を加算して「７」を算出する（ＲＥ７）。
【０１５９】
ＣＰＵ３０は、第１白カウント値ＷＣＴ１が「７」以上であると判断する（ＲＥ８：Ｙｅｓ）。ＣＰＵ３０は、対象画素の階調値ＧＶである「２４９」を薄紙閾値ＦＴＨとして記憶する（ＲＥ９）。ＣＰＵ３０は、対象画素と副走査方向に沿って上流側に隣接する副走査方向の２５９２画素目の画素を対象画素として設定する（ＲＥ１０）。ＣＰＵ３０は、対象画素の階調値ＧＶである「２５２」が第２白閾値ＷＴＨ２である「２４２」以上であると判断する（ＲＥ１１：Ｙｅｓ）。ＣＰＵ３０は、対象画素は読取開始位置ＳＰの画素でないと判断し（ＲＥ１２：Ｎｏ）、処理ＲＥ１０へ進む。副走査方向の２５９１画素目の画素から２５８６画素目の画素までは、階調値ＧＶが「２４２」以上であるため、ＣＰＵ３０は、処理ＲＥ１１において第２白閾値ＷＴＨ２以上であると判断する。よって、処理ＲＥ１０から処理ＲＥ１２が繰り返し実行される。
【０１６０】
ＣＰＵ３０は、対象画素と副走査方向に沿って上流側に隣接する副走査方向の２５８５画素を対象画素として設定する（ＲＥ１０）。ＣＰＵ３０は、対象画素の階調値ＧＶである「２３８」が第２白閾値ＷＴＨ２である「２４２」未満であると判断し（ＲＥ１１：Ｎｏ）、主走査方向の第２判断位置ＤＰ２および副走査方向の２５８５画素目の位置を原稿後端位置ＯＴＰとしてＲＡＭ３２に記憶する。
【０１６１】
次に、図１６及び図１２を参照して、原稿後端位置ＯＴＰ検出処理ＲＡ１６において主走査方向に５００画素目の位置の原稿後端位置ＯＴＰを検出する過程について説明する。
【０１６２】
図１６に示すように、主走査方向に５００画素目の位置における副走査方向の２５７５画素目から２５９５画素目までの階調値ＧＶは、「２４０」、「２３２」、「２２５」、「２１０」、「２２１」、「２２８」、「２４２」、「２４０」、「２４６」、「２３４」、「２３４」、「２４４」、「２５５」、「２５５」、「２５３」、「２５４」、「２５３」、「２５３」、「２４９」、「２４６」、「２４３」である。このとき、副走査方向において、２５８１画素目の画素、２５８２画素目の画素、２５８３画素目の画素は、透過光による影響により階調値ＧＶが周辺画素に比べて高くなっている。
【０１６３】
原稿後端位置ＯＴＰ検出処理ＲＡ１６が開始されると、ＣＰＵ３０は、エッジ種フラグＥＦが１であると判断し（ＲＨ１：１）、薄紙閾値ＦＴＨである「２４９」を後端閾値ＴＴＨとして設定する（ＲＨ３）。
【０１６４】
ＣＰＵ３０は、処理ＲＨ５から処理ＲＨ９までを繰り返し実行することにより、第２判断位置ＤＰ２である主走査方向の６７０画素目の位置から５０１画素目の位置までの原稿後端位置ＯＴＰを検出する。ＣＰＵ３０は、主走査方向の５０１画素目の位置の原稿後端位置ＯＴＰの画素と主走査方向に隣接する画素から副走査方向における上流側と下流側とにそれぞれ１０画素ずつ連続して隣接する画素を上流側の対象画素群として設定する（ＲＨ５）。即ち、ＣＰＵ３０は、原稿後端位置ＯＴＰである主走査方向に５０１画素目の位置および副走査方向に２５８５画素目の位置にある画素から主走査方向の上流側に隣接する主走査方向に５００画素目の位置および副走査方向に２５８５画素目の位置から副走査方向に沿って上流側と下流側とにそれぞれ１０画素ずつ連続して隣接する副走査方向に２５７５画素目から２５９５画素目までの画素を上流側の対象画素群として設定する（ＲＨ５）。
【０１６５】
ＣＰＵ３０は、上流側の対象画素群のうちで最も副走査方向に上流の画素である２５７５画素目の画素を対象画素として設定する（ＲＨ６）。ＣＰＵ３０は、対象画素の階調値ＧＶである「２４０」が後端閾値ＴＴＨである「２４９」未満であると判断し（ＲＨ７：Ｎｏ）、処理ＲＨ６へ進む。副走査方向の２５７６画素目の画素から２５８６画素目の画素までは、階調値ＧＶが「２４９」未満であるため、ＣＰＵ３０は、処理ＲＨ７において黒端閾値ＴＴＨ未満であると判断する。よって、処理ＲＨ６から処理ＲＨ９までが繰り返し実行される。
【０１６６】
ＣＰＵ３０は、２５８６画素目の画素と副走査方向に沿って下流側に隣接する２５８７画素目の画素を対象画素として設定する（ＲＨ６）。ＣＰＵ３０は、対象画素の階調値ＧＶである「２５５」が黒端閾値ＴＴＨ以上であると判断し（ＲＨ７：Ｙｅｓ）、主走査方向の５００画素目の位置および副走査方向の２５８７画素目の位置を原稿後端位置ＯＴＰとしてＲＡＭ３２に記憶する（ＲＨ８）。
【０１６７】
＜実施形態の効果＞
本実施形態では、黒エッジ検出処理ＲＡ２は、主走査方向の対象判断位置において副走査方向の原稿先端位置ＯＨＰから副走査方向に沿って下流へ１００画素離れた位置の画素から副走査方向の下流側に連続して隣接する合計１００画素の階調値ＧＶを平均して背景色平均値ＢＧＡＶを算出する。原稿先端位置ＯＨＰ検出処理ＲＡ６は、処理ＲＣ１４で記憶した黒エッジ値ＢＥＶ、処理ＲＤ５で記憶した黒エッジ値ＢＥＶ、及び処理ＲＤ１０で記憶した黒エッジ値ＢＥＶの全ての黒エッジ値ＢＥＶから標準偏差を黒エッジ値偏差ＢＥＤとして算出する。原稿検出処理Ｒ６は、背景色平均値ＢＧＡＶが白判定値ＷＤＶ以上であるか否かを判断し、白判定値ＷＤＶ未満である場合に、背景色エッジ検出処理ＲＡ９を実行し、白判定値ＷＤＶ以上である場合に、黒エッジ値偏差ＢＥＤが紙種閾値ＯＴＨ以上であるか否かを判断し、紙種閾値ＯＴＨ以上である場合に、薄紙白エッジ検出処理ＲＡ１２を実行し、紙種閾値ＯＴＨ未満である場合に、厚紙白エッジ検出処理ＲＡ１４を実行する。よって、薄紙の場合に黒エッジ値ＢＥＶにバラツキが発生することを利用して、黒エッジ値偏差ＢＥＤに基づき薄紙であるか否かを判断し、薄紙の場合に薄紙白エッジ検出処理ＲＡ１２を実行するため、原稿の端付近に透過光量が多い部分があっても、白画素の位置を精度良く検出することができる。また、原稿端部と関係のないデータを追加で取得することなく、いずれの白エッジ検出処理を実行するかを精度良く判断することができる。
【０１６８】
板色偏差ＣＣＤ算出処理ＲＡ１は、第１板色領域ＲＣＲ１内にある全ての画素の階調値ＧＶを平均して第１板色平均値ＣＣ１を算出し、第２板色領域ＲＣＲ２内にある全ての画素の階調値ＧＶを平均して第２板色平均値ＣＣ２を算出し、第３板色領域ＲＣＲ３内にある全ての画素の階調値ＧＶを平均して第３板色平均値ＣＣ３を算出し、第４板色領域ＲＣＲ４内にある全ての画素の階調値ＧＶを平均して第４板色平均値ＣＣ４を算出し、第１板色平均値ＣＣ１、第２板色平均値ＣＣ２、および第３板色平均値ＣＣ３が第１所定範囲内であるか否かを判断し、第１所定範囲内である場合に、第１板色領域ＲＣＲ１、第２板色領域ＲＣＲ２、および第３板色領域ＲＣＲ３から板色平均値ＣＣＡＶと板色偏差ＣＣＤとを算出し、第１所定範囲内でない場合に、第１板色平均値ＣＣ１、第２板色平均値ＣＣ２、および第４板色平均値ＣＣ４が第１所定範囲内であるか否かを判断し、第１所定範囲内である場合に、第１板色領域ＲＣＲ１、第２板色領域ＲＣＲ２、および第４板色領域ＲＣＲ４から板色平均値ＣＣＡＶと板色偏差ＣＣＤとを算出し、第１所定範囲内でない場合に、第１板色平均値ＣＣ１、第３板色平均値ＣＣ３、および第４板色平均値ＣＣ４が第１所定範囲内であるか否かを判断し、第１所定範囲内である場合に、第１板色領域ＲＣＲ１、第３板色領域ＲＣＲ３、および第４板色領域ＲＣＲ４から板色平均値ＣＣＡＶと板色偏差ＣＣＤとを算出し、第１所定範囲内でない場合に、第２板色領域ＲＣＲ２、第３板色領域ＲＣＲ３、および第４板色領域ＲＣＲ４から板色平均値ＣＣＡＶと板色偏差ＣＣＤとを算出し、板色偏差ＣＣＤを２倍した値を板色平均値ＣＣＡＶから引算して第１黒閾値ＢＴＨ１を算出する。よって、第１黒閾値ＢＴＨ１を板色平均値ＣＣＡＶと板色偏差ＣＣＤとから算出しているため、板色平均値ＣＣＡＶよりも階調値ＧＶが大きい白エッジを精度良く検出することができる。
【０１６９】
黒エッジ検出処理ＲＡ２は、主走査方向の対象判断位置において対象画素と副走査方向に沿って下流側に隣接する画素を対象画素として設定し、対象画素の階調値ＧＶが黒エッジ最小値ＢＥＭＮより小さいか否かを判断し、黒エッジ最小値ＢＥＭＮより小さい場合に、対象画素の階調値ＧＶを黒エッジ最小値ＢＥＭＮとして記憶し、黒エッジ最小値ＢＥＭＮ以上である場合に、第１最小差分値ＭＮＤＶ１を算出し、第１最小差分値ＭＮＤＶ１が第1黒閾値ＢＴＨ１以上である場合に、黒エッジ最小値ＢＥＭＮに関連付けられている画素番号ＳＰＮに対応する画素の位置を副走査方向の原稿先端位置ＯＨＰとしてＲＡＭ３２に記憶する。よって、対象判断位置における全ての画素に対して第１黒閾値ＢＴＨ１以上であるか否かを判断することなく、原稿先端位置ＯＨＰを記憶することができる。
【０１７０】
原稿先端位置ＯＨＰ検出処理ＲＡ６は、主走査方向に最も上流にある原稿先端位置ＯＨＰの画素と主走査方向の上流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ１０画素ずつ連続して隣接する画素を上流側の対象画素群として設定し、上流側の対象画素群のうちで階調値ＧＶが最も小さい最小値を検出し、板色平均値ＣＣＡＶから検出した最小値を引算して第２最小差分値ＭＮＤＶ２を算出し、第２最小差分値ＭＮＤＶ２が第１黒閾値ＢＴＨ１以上であるか否かを判断し、第１黒閾値ＢＴＨ１以上である場合に、検出した最小値を示す画素の位置を原稿先端位置ＯＨＰとしてＲＡＭ３２に記憶し、主走査方向に最も下流にある原稿先端位置ＯＨＰの画素と主走査方向の下流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ１０画素ずつ連続して隣接する画素を下流側の対象画素群として設定し、下流側の対象画素群のうちで階調値ＧＶが最も小さい最小値を検出し、板色平均値ＣＣＡＶから検出した最小値を引算して第３最小差分値ＭＮＤＶ３を算出し、第３最小差分値ＭＮＤＶ３が第１黒閾値ＢＴＨ１以上であるか否かを判断し、第１黒閾値ＢＴＨ１以上である場合に、検出した最小値を示す画素の位置を先行先端位置ＯＨＰとしてＲＡＭ３２に記憶する。よって、１頁の全ての画素に対して第１黒閾値ＢＴＨ１以上であるか否かを判断することなく、原稿先端位置ＯＨＰに隣接する対象画素群から原稿先端位置ＯＨＰを検出するため、速く原稿先端位置ＯＨＰを検出することができる。
【０１７１】
薄紙白エッジ検出処理ＲＡ１２は、板色平均値ＣＣＡＶに板色偏差ＣＣＤを加算して第１白閾値ＷＴＨ１を算出し、背景色平均値ＢＧＡＶに背景色偏差ＢＧＤを加算して第２白閾値ＷＴＨ２を算出し、端部判断位置ＥＤＰにおいて対象画素と副走査方向に沿って上流側に隣接する画素を対象画素として設定し、対象画素の階調値ＧＶが第１白閾値ＷＴＨ１以上であるか否か判断し、第１白閾値ＷＴＨ１以上である場合に、第１白カウント値ＷＣＴ１に「１」を加算し、第１白カウント値ＷＣＴ１が「７」以上であるか否かを判断し、「７」未満である場合に、再度対象画素を設定し、「７」以上である場合に、対象画素の階調値ＧＶを薄紙閾値ＦＴＨとしてＲＡＭ３２に記憶し、端部判断位置ＥＤＰにおいて対象画素と副走査方向に沿って上流側に隣接する画素を対象画素として設定し、対象画素の階調値ＧＶが第２白閾値ＷＴＨ２以上であるか否かを判断し、第２白閾値ＷＴＨ２未満である場合に、対象画素の位置を原稿後端位置ＯＴＰとしてＲＡＭ３２に記憶する。よって、端部判断位置ＥＤＰにおける全ての画素に対して第１白閾値ＷＴＨ１および第２白閾値ＷＴＨ２以上であるか否かを判断することなく、原稿後端位置ＯＴＰを記憶することができる。
【０１７２】
厚紙白エッジ検出処理ＲＡ１４は、端部判断位置ＥＤＰにおいて対象画素と副走査方向に沿って上流側に隣接する画素を対象画素として設定し、対象画素の階調値ＧＶが最大値であるか否かを判断し、最大値である場合に、第２白カウント値ＷＣＴ２に「１」を加算し、第２白カウント値ＷＣＴ２が「３」以上であるか否かを判断し、「３」未満である場合に、再度対象画素を設定し、「３」以上である場合に、端部判断位置ＥＤＰにおいて対象画素と副走査方向に沿って上流側に隣接する画素を対象画素として設定し、対象画素の階調値ＧＶが第３白閾値ＷＴＨ３以上であるか否かを判断し、第３白閾値ＷＴＨ３未満である場合に、対象画素の位置を原稿後端位置ＯＴＰとしてＲＡＭ３２に記憶する。よって、端部判断位置ＥＤＰにおける全ての画素に対して最大値および第３白閾値以上であるか否かを判断することなく、原稿後端位置ＯＴＰを記憶することができる。
【０１７３】
原稿後端位置ＯＴＰ検出処理ＲＡ１６は、エッジ種フラグＥＦがいずれであるかを判断し、エッジ種フラグＥＦが「０」である場合に、背景色閾値ＢＧＴＨを後端閾値ＴＴＨとして設定し、エッジ種フラグＥＦが「１」である場合に、薄紙閾値ＦＴＨを後端閾値ＴＴＨとして設定し、エッジ種フラグＥＦが「２」である場合に、第３白閾値ＷＴＨ３を後端閾値ＴＴＨとして設定し、主走査方向に最も上流にある原稿後端位置ＯＴＰの画素と主走査方向の上流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ１０画素ずつ連続して隣接する画素を上流側の対象画素群として設定し、上流側の対象画素群のうちで副走査方向に最も上流の画素から順に下流側に隣接する画素を対象画素として設定し、対象画素の階調値ＧＶが後端閾値ＴＴＨ以上であるか否かを判断し、後端閾値ＴＴＨ以上である場合に、対象画素の位置を原稿後端位置ＯＴＰとしてＲＡＭ３２に記憶し、再度上流側の対象画素郡を設定し、後端閾値ＴＴＨ未満である場合に、対象画素が上流側の対象画素群のうちで副走査方向に最も下流の画素であるか否かを判断し、最も下流の画素でない場合に、再度対象画素を設定し、最も下流の画素である場合に、主走査方向に最も下流にある原稿後端位置ＯＴＰの画素と主走査方向の下流側に隣接する画素から副走査方向における上流側と下流側とにそれぞれ１０画素ずつ連続して隣接する画を下流側の対象画素群として設定し、下流側の対象画素群のうちで副走査方向に最も上流の画素から順に下流側に隣接する画素を対象画素として設定し、対象画素の階調値ＧＶが後端閾値ＴＴＨ以上であるか否かを判断し、後端閾値ＴＴＨ以上である場合に、対象画素の位置を原稿後端位置ＯＴＰとしてＲＡＭ３２に記憶する。よって、１頁の全ての画素に対して後端閾値ＴＴＨ以上であるか否かを判断することなく、原稿後端位置ＯＴＰに隣接する対象画素群から原稿後端位置ＯＴＰを検出するため、速く原稿後端位置ＯＴＰを検出することができる。
【０１７４】
［実施形態と発明との対応関係］
画像読取装置ＳＭ、原稿載置台ＤＴ、および原稿押え板ＣＶが、本発明の画像読取装置、原稿台、および原稿押え部材の一例である。読取部２０、ＡＦＥ３５、および画像処理部３６が、本発明の読取部の一例である。ＣＰＵ３０が、本発明の制御部の一例である。処理Ｒ５が、本発明の画像データ取得処理の一例である。処理ＲＡ２および処理ＲＡ６が、本発明の黒端検出処理の一例である。処理ＲＡ１０および処理ＲＤ１１が、本発明の決定処理の一例である。処理ＲＡ１２、処理ＲＡ１４、および処理ＲＡ１６が、本発明の白端検出処理の一例である。
【０１７５】
処理ＲＢ１、処理ＲＢ２、処理ＲＢ３、および処理ＲＢ４が、本発明の隅平均値算出処理の一例である。処理ＲＢ５、処理ＲＢ８、および処理ＲＢ１１が、本発明の隅平均値選択処理の一例である。処理ＲＢ６、処理ＲＢ９、処理ＲＢ１２、および処理ＲＢ１４が、本発明の白平均値算出処理の一例である。処理ＲＢ７、処理ＲＢ１０、処理ＲＢ１３、および処理ＲＢ１５が、本発明の白偏差算出処理の一例である。処理ＲＥ１が、本発明の第１閾値算出処理の一例である。処理ＲＢ１６が、本発明の第４閾値算出処理の一例である。処理ＲＥ２が、本発明の第５閾値算出処理の一例である。
【０１７６】
［変形例］
本発明は、本実施形態に限定されることなく、その趣旨を逸脱しない範囲において種々の変形が可能である。以下にその変形の一例を述べる。
【０１７７】
（１）本実施形態の画像読取装置ＳＭは、プリンタ部を備えた複合機に適用されても良い。また、本実施形態では、読取部２０が、ＣＩＳで構成される場合について説明をしたが、ＣＣＤを搭載し、副走査方向に移動するＣＣＤユニットで構成されても良いし、光源とミラーとのみが副走査方向に移動するＣＣＤを用いた読取ユニットで構成されても良い。
【０１７８】
（２）本実施形態では、原稿先端が黒エッジとなり、原稿後端が白エッジとなる光源の向きで原稿を照射する構成について説明したが、原稿先端が白エッジとなり、原稿後端が黒エッジとなる光源の向きで原稿を照射する構成でも良い。
【０１７９】
（３）本実施形態では、第１板色領域ＲＣＲ１、第２板色領域ＲＣＲ２、第３板色領域ＲＣＲ３、および第４板色領域ＲＣＲ４内に含まれる画素を用いて板色平均値ＣＣＡＶおよび板色偏差ＣＣＤを算出したが、別の原稿が置かれていない領域に含まれる画素を用いて算出しても良い。
【０１８０】
（４）本実施形態では、第１判断位置ＤＰ１、第２判断位置ＤＰ２、および第３判断位置ＤＰ３において黒エッジ検出処理ＲＡ２を実行したが、異なる主走査方向の位置でも良い。
【０１８１】
（５）本実施形態では、各偏差を算出するときに、標準偏差を用いて算出したが、バラツキを表す別の偏差を用いて算出しても良い。
【０１８２】
（６）本実施形態では、処理Ｒ５において最大の範囲の読取領域で取得した１頁の階調値ＧＶを用いて原稿検出処理Ｒ６を実行したが、原稿が置かれている最大の範囲以外の範囲の読取領域で取得した１頁の階調値ＧＶを用いて原稿検出処理Ｒ６を実行しても良い。
【０１８３】
（７）本実施形態では、処理Ｒ５は緑色を点灯した原稿検出用光量ＳＴ２を用いて原稿検出用の画像として１頁の階調値ＧＶを取得したが、赤色、青色、および緑色を点灯して原稿検出用の画像として１頁の階調値ＧＶを取得しても良い。
【０１８４】
（８）本実施形態では、処理ＲＦ２において対象画素の階調値ＧＶが最大値であるか否かを判断したが、たとえば対象画素の階調値ＧＶが「２５０」以上であるか否かを判断しても良い。
【符号の説明】
【０１８５】
ＳＭ…画像読取装置、ＯＭ…操作機構、ＣＶ…カバー、２０…読取部、２１…光源、２２…受光部、２３…光電変換素子、３０…ＣＰＵ、３３…フラッシュＲＯＭ、３４…デバイス制御部、３５…ＡＦＥ、３６…画像処理部、２７…カバーセンサ、３７…駆動回路
【図１】
2018121146.tif 000003
【図２】
2018121146.tif 000004
【図３】
2018121146.tif 000005
【図４】
2018121146.tif 000006
【図５】
2018121146.tif 000007
【図６】
2018121146.tif 000008
【図７】
2018121146.tif 000009
【図８】
2018121146.tif 000010
【図９】
2018121146.tif 000011
【図１０】
2018121146.tif 000012
【図１１】
2018121146.tif 000013
【図１２】
2018121146.tif 000014
【図１３】
2018121146.tif 000015
【図１４】
2018121146.tif 000016
【図１５】
2018121146.tif 000017
【図１６】
2018121146.tif 000018