(57)【要約】【課題】原稿が傾いて載置されたときに、読取動作の途中で読取終了する。【解決手段】  原稿台と、原稿押え部材と、読取部と、移動部と、制御部と、を備え、制御部は、読取動作を開始する開始処理と、先端検出処理と、切替開始位置を算出する位置算出処理と、検出範囲を設定する範囲設定処理と、検出範囲に含まれるエッジデータの位置に基づき原稿の有無を判断する第１側端判断処理と、検出範囲に含まれるエッジデータの個数に基づき原稿の有無を判断する第２側端判断処理と、先端検出処理における原稿押え部材の端部の検出結果に応じて、第１側端判断処理、又は第２側端判断処理により原稿の有無を判断する選択処理と、原稿押え範囲に含まれるエッジデータの個数が変化した場合に、側端判断処理を切り替える切替処理と、原稿無を判断した場合に読取動作を終了する終了処理と、を実行する。 【選択図】図１４
2019092093.tif 000002
【特許請求の範囲】
【請求項１】
原稿の４つの角のうちの１つの角である基準角を基準として原稿を支持する原稿領域を有する原稿台と、
前記原稿台に支持された原稿を押える原稿押え部材であって、主走査方向と直交する副走査方向に沿った前記原稿押え部材の端部のうちの前記基準角に近い端部は、前記原稿領域のうちの原稿押え領域内を変位可能に構成されている原稿押え部材と、
前記原稿台に支持された原稿の画像を主走査方向に沿ったラインイメージセンサで読み取ることにより読取画像データを生成する読取部であって、前記原稿押え領域に原稿が支持されていない場合に、前記原稿押え領域内に前記原稿押え部材の端部を示す第１エッジデータを読取画像データとして生成し、前記原稿台に原稿が支持されている場合に、前記原稿台に支持された原稿の辺である原稿端を示す第２エッジデータを読取画像データとして生成し、エッジデータは前記第１エッジデータと前記第２エッジデータとを含む読取部と、
副走査方向に沿って前記ラインイメージセンサを移動させる移動部と、
制御部と、を備え、
前記制御部は、
前記ラインイメージセンサを副走査方向に沿って下流へ前記移動部により移動させながら前記読取画像データを生成させる読取動作を開始する開始処理と、
前記読取動作の開始時に前記ラインイメージセンサが位置する副走査方向における読取開始位置から副走査方向に沿って下流へ所定距離離れた先端領域下端位置までに読み取られた読取画像データである先端読取画像データから、前記基準角が含まれる副走査方向に沿った原稿の辺である原稿側端と、前記基準角が含まれる主走査方向に沿った原稿の辺である原稿先端と、前記原稿押え部材の端部とを検出する先端検出処理と、
前記先端読取画像データから特定される前記原稿側端である先端領域側端のうちで副走査方向に沿って最も下流の位置である第１側端位置と前記原稿押え範囲とに基づき切替開始位置を算出する位置算出処理と、
前記第１側端位置から、前記先端領域側端に基づき算出される第２側端位置までの前記読取画像データにおける主走査方向の範囲を検出範囲として設定する範囲設定処理と、
前記検出範囲に含まれる前記エッジデータの位置に基づき原稿の有無を判断する第１側端判断処理と、
前記検出範囲に含まれる前記エッジデータの個数に基づき原稿の有無を判断する第２側端判断処理と、
前記先端検出処理において、前記先端領域下端位置における先端読取画像データから、前記原稿押え部材の端部が検出された場合に、前記第２側端判断処理を選択して実行し、前記原稿押え部材の端部が検出されなかった場合に、前記第１側端判断処理を選択して実行する選択処理と、
前記イメージセンサが前記切替開始位置に移動したときに開始され、前記原稿押え範囲に含まれる前記エッジデータの個数が２から１へ変化した場合に、前記第１側端判断処理へ切り替えて実行し、前記原稿押え範囲に含まれる前記エッジデータの個数が１から２へ変化した場合に、前記第２側端判断処理へ切り替えて実行する切替処理と、
前記第１側端判断処理、又は前記第２側端判断処理において原稿無を判断した場合に前記読取動作を終了する終了処理と、を実行することを特徴とする画像読取装置。
【請求項２】
前記第１側端判断処理は、
前記イメージセンサが前記先端領域下端位置から副走査方向に沿って下流へ移動している間に、前記検出範囲に含まれる前記エッジデータの位置が変化したときに、原稿無と判断することを特徴とする請求項１に記載の画像読取装置。
【請求項３】
前記第２側端判断処理は、
前記イメージセンサが前記先端領域下端位置から副走査方向に沿って下流へ移動している間に、前記検出範囲に含まれる前記エッジデータの個数が２から１へと変化したときに、原稿無と判断することを特徴とする請求項１、又は請求項２に記載の画像読取装置。
【請求項４】
前記制御部は、
前記先端検出処理において検出した原稿側端、又は前記先端検出処理において検出した原稿先端から前記原稿台に支持された原稿の傾き角度を算出する傾き算出処理を実行し、
前記位置算出処理は、前記第１側端位置から前記原稿押え範囲のうちの前記第１側端位置に最も近い位置までの距離に、前記傾き角度に正接処理を施した値の逆数を掛け算した距離だけ前記先端領域下端位置から副走査方向に沿って下流に離れた位置を前記切替開始位置として算出することを特徴とする請求項１乃至請求項３のいずれかに記載の画像読取装置。
【請求項５】
前記位置算出処理は、前記第１側端位置から前記原稿押え範囲のうちの前記第１側端位置に最も遠い位置までの距離に、前記原稿の傾き角度に正接処理を施した値の逆数を掛け算した距離だけ前記先端領域下端位置から副走査方向に沿って下流に離れた位置を切替終了位置として算出し、
前記終了処理は、前記切替処理において、前記イメージセンサが前記切替開始位置から前記切替終了位置まで移動する間に、前記原稿押え範囲に含まれる前記エッジデータの個数が変化しなかった場合に、前記読取動作を終了することを特徴とする請求項４に記載の画像読取装置。
【請求項６】
前記原稿台は、前記基準角を当接させる基準部を備え、
前記移動部は、副走査方向における読取開始位置から副走査方向に沿って下流へ最大読取距離離れた予め定められた最大読取位置まで前記ラインイメージセンサを移動可能に構成され、
前記先端検出処理は、前記原稿先端と前記原稿側端との交点を前記基準角として検出し、
前記範囲設定処理は、
前記傾き角度に正接処理を施した値に前記最大読取距離を掛け算した距離に、前記基準部を通る副走査方向に沿った直線と前記基準角との距離を足し算した距離だけ前記基準角の主走査方向の位置から主走査方向に沿って離れた位置を前記第２側端位置として算出することを特徴とする請求項４、又は請求項５に記載の画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像読取装置に関する。
【背景技術】
【０００２】
特許文献１に記載の原稿読取り装置は、原稿を搬送しながら原稿を読み取る。原稿読取り装置は、原稿の背面に配置され、白色と黒色とからなる印が形成された背面板を備える。原稿読取り装置は、原稿が搬送されるときに、読取部が印を読み取る状態から、印でなく原稿を読み取る状態への変化を検出する。この変化を検出することにより、原稿読取り装置は、原稿の先端が読取開始位置に到達したことを検知し、読取動作を開始する。
【０００３】
特許文献２に記載の画像読取装置は、原稿を原稿台に載置して読取部を移動させながら原稿を読み取る。画像読取装置は、背景パターンが形成された原稿押え板を備える。画像読取装置は、読み取った領域のうちで背景パターンが原稿により覆われることにより背景パターンを含まなくなった領域を原稿領域として原稿のサイズを検出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２１０２２３号公報
【特許文献２】特開２００１−６６７１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献２に記載の画像読取装置のように、原稿を原稿台に載置して読取部を移動させながら原稿を読み取る画像読取装置において、特許文献１に記載の原稿読取り装置のように原稿押え板に形成された背景パターンを含まなくなった領域の位置から読取開始し、背景パターンを含む領域の位置で読取終了する画像読取装置を考える。
【０００６】
この画像読取装置は、原稿が傾いて載置されたときに、背景パターンが原稿の途中から読み取られることにより、原稿の途中で読取終了する問題がある。
【０００７】
そこで、本発明は上述した事情に鑑みてなされ、原稿が傾いて載置された場合でも、原稿を正常に読み取ることのできる画像読取装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、請求項１に記載の発明態様では、画像読取装置は、原稿の４つの角のうちの１つの角である基準角を基準として原稿を支持する原稿領域を有する原稿台と、前記原稿台に支持された原稿を押える原稿押え部材であって、主走査方向と直交する副走査方向に沿った前記原稿押え部材の端部のうちの前記基準角に近い端部は、前記原稿領域のうちの原稿押え領域内を変位可能に構成されている原稿押え部材と、前記原稿台に支持された原稿の画像を主走査方向に沿ったラインイメージセンサで読み取ることにより読取画像データを生成する読取部であって、前記原稿押え領域に原稿が支持されていない場合に、前記原稿押え領域内に前記原稿押え部材の端部を示す第１エッジデータを読取画像データとして生成し、前記原稿台に原稿が支持されている場合に、前記原稿台に支持された原稿の辺である原稿端を示す第２エッジデータを読取画像データとして生成し、エッジデータは前記第１エッジデータと前記第２エッジデータとを含む読取部と、副走査方向に沿って前記ラインイメージセンサを移動させる移動部と、
制御部と、を備え、前記制御部は、前記ラインイメージセンサを副走査方向に沿って下流へ前記移動部により移動させながら前記読取画像データを生成させる読取動作を開始する開始処理と、前記読取動作の開始時に前記ラインイメージセンサが位置する副走査方向における読取開始位置から副走査方向に沿って下流へ所定距離離れた先端領域下端位置までに読み取られた読取画像データである先端読取画像データから、前記基準角が含まれる副走査方向に沿った原稿の辺である原稿側端と、前記基準角が含まれる主走査方向に沿った原稿の辺である原稿先端と、前記原稿押え部材の端部とを検出する先端検出処理と、前記先端読取画像データから特定される前記原稿側端である先端領域側端のうちで副走査方向に沿って最も下流の位置である第１側端位置と前記原稿押え範囲とに基づき切替開始位置を算出する位置算出処理と、前記第１側端位置から、前記先端領域側端に基づき算出される第２側端位置までの前記読取画像データにおける主走査方向の範囲を検出範囲として設定する範囲設定処理と、前記検出範囲に含まれる前記エッジデータの位置に基づき原稿の有無を判断する第１側端判断処理と、前記検出範囲に含まれる前記エッジデータの個数に基づき原稿の有無を判断する第２側端判断処理と、前記先端検出処理において、前記先端領域下端位置における先端読取画像データから、前記原稿押え部材の端部が検出された場合に、前記第２側端判断処理を選択して実行し、前記原稿押え部材の端部が検出されなかった場合に、前記第１側端判断処理を選択して実行する選択処理と、前記イメージセンサが前記切替開始位置に移動したときに開始され、前記原稿押え範囲に含まれる前記エッジデータの個数が２から１へ変化した場合に、前記第１側端判断処理へ切り替えて実行し、前記原稿押え範囲に含まれる前記エッジデータの個数が１から２へ変化した場合に、前記第２側端判断処理へ切り替えて実行する切替処理と、前記第１側端判断処理、又は前記第２側端判断処理において原稿無を判断した場合に前記読取動作を終了する終了処理と、を実行する。
【０００９】
請求項２に記載の具体的態様では、前記第１側端判断処理は、前記イメージセンサが前記先端領域下端位置から副走査方向に沿って下流へ移動している間に、前記検出範囲に含まれる前記エッジデータの位置が変化したときに、原稿無と判断する。
【００１０】
請求項３に記載の具体的態様では、前記第２側端判断処理は、前記イメージセンサが前記先端領域下端位置から副走査方向に沿って下流へ移動している間に、前記検出範囲に含まれる前記エッジデータの個数が２から１へと変化したときに、原稿無と判断する。
【００１１】
請求項４に記載の具体的態様では、前記制御部は、前記先端検出処理において検出した原稿側端、又は前記先端検出処理において検出した原稿先端から前記原稿台に支持された原稿の傾き角度を算出する傾き算出処理を実行し、前記位置算出処理は、前記第１側端位置から前記原稿押え範囲のうちの前記第１側端位置に最も近い位置までの距離に、前記傾き角度に正接処理を施した値の逆数を掛け算した距離だけ前記先端領域下端位置から副走査方向に沿って下流に離れた位置を前記切替開始位置として算出する。
【００１２】
請求項５に記載の具体的態様では、前記位置算出処理は、前記第１側端位置から前記原稿押え範囲のうちの前記第１側端位置に最も遠い位置までの距離に、前記原稿の傾き角度に正接処理を施した値の逆数を掛け算した距離だけ前記先端領域下端位置から副走査方向に沿って下流に離れた位置を切替終了位置として算出し、前記終了処理は、前記切替処理において、前記イメージセンサが前記切替開始位置から前記切替終了位置まで移動する間に、前記原稿押え範囲に含まれる前記エッジデータの個数が変化しなかった場合に、前記読取動作を終了する。
【００１３】
請求項６に記載の具体的態様では、前記原稿台は、前記基準角を当接させる基準部を備え、前記移動部は、副走査方向における読取開始位置から副走査方向に沿って下流へ最大読取距離離れた予め定められた最大読取位置まで前記ラインイメージセンサを移動可能に構成され、前記先端検出処理は、前記原稿先端と前記原稿側端との交点を前記基準角として検出し、前記範囲設定処理は、前記傾き角度に正接処理を施した値に前記最大読取距離を掛け算した距離に、前記基準部を通る副走査方向に沿った直線と前記基準角との距離を足し算した距離だけ前記基準角の主走査方向の位置から主走査方向に沿って離れた位置を前記第２側端位置として算出する。
【発明の効果】
【００１４】
請求項１に記載の発明態様では、位置算出処理は、先端読取画像データから特定される原稿側端である先端領域側端のうちで副走査方向に沿って最も下流の位置である第１側端位置と原稿押え範囲とに基づき切替開始位置を算出し、第１側端判断処理は、検出範囲に含まれるエッジデータの位置に基づき原稿の有無を判断し、第２側端判断処理は、検出範囲に含まれるエッジデータの個数に基づき原稿の有無を判断し、選択処理は、先端検出処理において、先端領域下端位置における先端読取画像データから、原稿押え部材の端部が検出された場合に、第２側端検出処理を選択して実行し、原稿押え部材の端部が検出されなかった場合に、第１側端検出処理を選択して実行し、切替処理は、イメージセンサが切替開始位置に移動したときに開始され、原稿押え範囲に含まれるエッジデータの個数が２から１へ変化した場合に、前記第１側端検出処理へ切り替えて実行し、原稿押え範囲に含まれるエッジデータの個数が１から２へ変化した場合に、第２側端検出処理へ切り替えて実行する。よって、原稿が傾いて載置されたことにより原稿押え部材の端部である第１エッジデータが原稿の読取動作の途中から読み取られた場合でも、切替処理により、第１側端検出処理から第２側端検出処理へ側端検出処理を切り替えるため、原稿を正常に読み取ることができる。
【００１５】
請求項２に記載の具体的態様では、第１側端判断処理は、イメージセンサが先端領域下端位置から副走査方向に沿って下流へ移動している間に、検出範囲に含まれるエッジデータの位置が変化したときに、原稿無と判断する。よって、原稿押え部材の端部が読み取れないように原稿を載置した場合には、原稿の画像を読み取り終えた時点において、エッジデータが原稿端を示す第２エッジデータから原稿押え部材の端部を示す第１エッジデータへと変化するため、エッジデータの位置が変化する。エッジデータの位置が変化した時点で原稿無を判断することで、精度良く原稿無を判断することができる。
【００１６】
請求項３に記載の具体的態様では、第２側端判断処理は、イメージセンサが先端領域下端位置から副走査方向に沿って下流へ移動している間に、前記検出範囲に含まれるエッジデータの個数が２から１へと変化したときに、原稿無と判断する。よって、原稿押え部材の端部と原稿の原稿側端とが読み取れるように原稿を載置した場合には、原稿の画像を読み取り終えた時点において、エッジデータが原稿端を示す第２エッジデータと原稿押え部材の端部を示す第１エッジデータとが読み取られる状態から原稿押え部材の端部を示す第１エッジデータのみが読み取られる状態へ変化する。エッジデータの個数が２から１へと変化した時点で原稿無を判断することで、精度良く原稿無を判断することができる。
【００１７】
請求項４に記載の具体的態様では、位置算出処理は、第１側端位置から原稿押え範囲のうちの第1側端位置に最も近い位置までの距離に、傾き角度に正接処理を施した値の逆数を掛け算した距離だけ先端領域下端位置から副走査方向に沿って下流に離れた位置を切替開始位置として算出する。よって、傾き算出処理により算出した原稿の傾き角度と、第１側端位置から原稿押え範囲のうちの最も近い位置までの距離とから切替開始位置を算出するため、原稿の側端が原稿押え範囲に入る副走査方向の位置である切替開始位置を精度良く算出することができる。
【００１８】
請求項５に記載の具体的態様では、位置算出処理は、第１側端位置から原稿押え範囲のうちの第1側端位置に最も遠い位置までの距離に、原稿の傾き角度に正接処理を施した値の逆数を掛け算した距離だけ先端領域下端位置から副走査方向に沿って下流に離れた位置を切替終了位置として算出し、終了処理は、切替処理において、イメージセンサが切替開始位置から切替終了位置まで移動する間に、原稿押え範囲に含まれるエッジデータの個数が変化しなかった場合に、読取動作を終了する。よって、傾き算出処理により算出した原稿の傾き角度と、第１側端位置から原稿押え範囲のうちの最も遠い位置までの距離とから切替終了位置を算出するため、原稿の側端が原稿押え範囲から外れる副走査方向の位置である切替終了位置を精度良く算出することができる。また、イメージセンサが切替終了位置となった時点で、エッジデータの個数が変化しなかったときは、エッジデータが、既に原稿端を示す第２エッジデータから原稿押え部材の端部を示す第１エッジデータへと変化している。この場合に、早く読取動作を終了することができる。
【００１９】
請求項６に記載の具体的態様では、範囲設定処理は、傾き角度に正接処理を施した値に予め定められた最大読取距離を掛け算した距離に、基準部を通る副走査方向に沿った直線と基準角との距離を足し算した距離だけ基準角の主走査方向の位置から主走査方向に沿って離れた位置を第２側端位置として算出する。よって、傾き角度と、最大読取距離と、基準部を通る副走査方向に沿った直線と基準角との距離と、基準角の主走査方向の位置とから第２側端位置を算出するため、第１側端位置と算出した第２側端位置とから精度良くエッジデータを検出する検出範囲を設定することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係る画像読取装置ＳＭの内部構成を示す図面である。
【図２】原稿載置台ＤＴの上面図である。
【図３】画像読取装置ＳＭの電気的構成を示すブロック図である。
【図４】読取メイン処理を示すフローチャートである。
【図５】先端検知処理Ｒ３を示すフローチャートである。
【図６】エッジ検出フラグＥＤＦＧ設定処理ＲＡ５を示すフローチャートである。
【図７】切替フラグＣＦＧ設定処理ＲＡ６を示すフローチャートである。
【図８】切替開始位置ＣＳＰ算出処理ＲＡ７を示すフローチャートである。
【図９】原稿検知処理Ｒ４を示すフローチャートである。
【図１０】エッジ検出処理ＲＥ２を示すフローチャートである。
【図１１】１エッジ検出処理ＲＦ２を示すフローチャートである。
【図１２】２エッジ検出処理ＲＦ３を示すフローチャートである。
【図１３】検出切替処理ＲＥ８を示すフローチャートである。
【図１４】（Ａ）原稿ＧＳが右回りに傾いたときの白黒データＷＢＤと、切替開始位置ＣＳＰなどの情報とを説明する図面である。（Ｂ）検出基点位置ＤＣＰ付近を拡大して説明する図面である。
【図１５】（Ａ）原稿ＧＳが左回りに傾いた時の白黒データＷＢＤと、切替開始位置ＣＳＰなどの情報とを説明する図面である。（Ｂ）検出基点位置ＤＣＰ付近を拡大して説明する図面である。
【発明を実施するための形態】
【００２１】
＜画像読取装置ＳＭの構成＞
図面を参照して本実施形態における画像読取装置ＳＭの構成について説明する。図１は、画像読取装置ＳＭの正面図を示す。図２は、原稿載置台ＤＴを上から見た上面図を示す。以下の説明において、図１の右方向を副走査方向ＳＤの下流、図２の下方向を主走査方向ＭＤの下流、図２の右方向を副走査方向ＳＤの下流として説明する。
【００２２】
画像読取装置ＳＭは、原稿載置台ＤＴと、原稿押え板ＣＶと、を備える。原稿載置台ＤＴは、本体ＭＢと、透明板ＴＰと、を備える。本体ＭＢは、様々な部材（例えば、透明板ＴＰ、読取部２０等）を収容するための筐体である。透明板ＴＰは、図２に一点鎖線で示すように、本体ＭＢに収容されており、本体ＭＢに固定されている。透明板ＴＰは、読取対象の原稿ＧＳを支持する。原稿押え板ＣＶは、本体ＭＢの奥側（図１の紙面に垂直方向の奥側、図２の上側）に回動軸２８を備え、本体ＭＢの前側（図１の紙面に垂直方向の手前側、図２の下側）から開閉される。
【００２３】
画像読取装置ＳＭは、さらに、透明板ＴＰの下方で本体ＭＢに収容されている読取部２０を備える。読取部２０は、本体ＭＢに対して副走査方向ＳＤ（即ち図１の左右方向）に沿って移動可能である。読取部２０は、透明板ＴＰに支持される原稿ＧＳの読取動作を実行する。読取部２０は、ＣＩＳ（Contact Image Sensorの略で、密着型イメージセンサ）で構成され、具体的には、光源２１と、ロッドレンズ２４と、受光部２２と、を備える。光源２１は、赤色、青色、および緑色の発光ダイオードなどで構成され、透明板ＴＰに向けて、光を照射する。ロッドレンズ２４は、主に光源２１から照射される光の反射光を受光部２２に結像する。
【００２４】
受光部２２は、主走査方向ＭＤに配列される多数の光電変換素子２３を含み、図示しないアナログシフトレジスタ、および増幅器を内蔵する。各光電変換素子２３の出力は、主走査方向の各画素における受光量である。光電変換素子２３の先頭画素は、図２に図示する主走査方向ＭＤの最も上流に位置する画素であり、光電変換素子２３の最終画素は、図２に図示する主走査方向ＭＤの最も下流に位置する画素である。本実施形態では、１ラインは、この主走査方向ＭＤの先頭画素から最終画素までで構成される画素群である。
【００２５】
図２において、原稿載置台ＤＴの上面は、本体ＭＢの上面、および透明板ＴＰが原稿押え板ＣＶ側に露出した面を有する。本体ＭＢは、黒色であり、回動軸２８が主走査方向ＭＤの上流側に配置されている。透明板ＴＰは、図２に一点鎖線で示すように、副走査方向ＳＤに沿って伸びる長辺と、主走査方向ＭＤに沿って伸びる短辺と、によって構成される矩形形状を有する。透明板ＴＰの原稿押え板ＣＶ側に露出する面は、図２において実線で示す。原稿ＧＳは、基準位置ＢＰを基点として透明板ＴＰに載置される。回動軸２８は、原稿押え板ＣＶを開閉するときに回動する軸であり、本体ＭＢの主走査方向ＭＤの上流側に２カ所配置されている。原稿押え板ＣＶのうち透明板ＴＰと接触する面は、透明板ＴＰの原稿押え板ＣＶ側に露出する面よりも若干小さい。そのため、原稿ＧＳが基準位置ＢＰを基点として載置されず、且つ原稿押え板領域ＣＶＲ内に載置されていない状態で原稿押え板ＣＶが閉じられたときに、原稿押さえ板ＣＶと対向する位置に位置する読取部２０は原稿押え板領域ＣＶＲ内で原稿押え板ＣＶの端部を読み取る。原稿ＧＳが基準位置ＢＰを基点として載置した状態で原稿押え板ＣＶが閉じられたときに、原稿ＧＳと対向する位置に位置する読取部２０は原稿押え板ＣＶの端部を読み取らず、原稿ＧＳの端部を読み取る。原稿押え板領域ＣＶＲは、図２に示すように、原稿押え板ＣＶが閉じられたときに、副走査方向ＳＤに沿った原稿押え板ＣＶの端部のうち基準位置ＢＰに近い端部が変位可能な透明板ＴＰ上の領域である。
【００２６】
透明板ＴＰの原稿押え板ＣＶ側に露出する面のうち主走査方向ＭＤの最も上流の位置であり、且つ副走査方向ＳＤの最も上流の位置が基準位置ＢＰの位置である。透明板ＴＰの原稿押え板ＣＶ側に露出する面のうち副走査方向の最も下流の位置が最大読取位置ＭＲＰである。画像読取装置ＳＭは、副走査方向ＳＤにおける基準位置ＢＰから最大読取位置ＭＲＰまでの範囲を読取範囲として原稿ＧＳの画像を読み取る。副走査方向ＳＤにおける基準位置ＢＰが先頭ラインの副走査方向ＳＤの位置である。
【００２７】
画像読取装置ＳＭは、さらに、透明板ＴＰの上面に固定されている基準部材ＢＭを備える。基準部材ＢＭは、透明板ＴＰの副走査方向ＳＤの上流側（即ち図２の左側）の端部に設けられている。基準部材ＢＭは、主走査方向ＭＤに沿って伸びる白色の部材である。副走査方向ＳＤにおいて、基準部材ＢＭ上の位置が、ホーム位置ＨＰである。読取部２０は、ホーム位置ＨＰを基準として、副走査方向ＳＤに移動可能に構成されている。
【００２８】
＜画像読取装置ＳＭの電気的構成＞
画像読取装置ＳＭの電気的構成について図３を参照して説明する。図３において、画像読取装置ＳＭは、ＣＰＵ３０、ＲＯＭ３１、ＲＡＭ３２、フラッシュＲＯＭ３３、デバイス制御部３４、アナログフロントエンド（以下、ＡＦＥという）３５、画像処理部３６、エッジ検出部３９、および駆動回路３７を主な構成要素として備える。これらの構成要素は、バス３８を介して、操作機構ＯＭ、および表示機構ＤＭに接続される。操作機構ＯＭは、開始ボタンおよび決定ボタン等の複数のキーによって構成される。ユーザは、操作機構ＯＭを操作することによって、様々な指示を画像読取装置ＳＭに入力することができる。表示機構ＤＭは、様々な情報を表示するためのディスプレイである。
【００２９】
ＲＯＭ３１は、後述する読取メイン処理、各メイン処理中のサブルーチンの処理など、画像読取装置ＳＭの各種動作を実行するためのプログラムを記憶する。ＣＰＵ３０は、ＲＯＭ３１から読み出されたプログラムに従って、各部の制御を行う。フラッシュＲＯＭ３３は、読み書き可能な不揮発性メモリであり、ＣＰＵ３０の制御処理により生成された各種のデータ、例えば読取メイン処理により取得された各種のデータなどを記憶する。ＲＡＭ３２は、ＣＰＵ３０の制御処理により生成された算出結果などを一時的に記憶する。
【００３０】
デバイス制御部３４は、読取部２０に接続され、ＣＰＵ３０からの命令に基づいて、光源２１の点灯又は消灯を制御する信号、および光源２１に流れる電流値を制御する信号を光源２１に送信する。また、デバイス制御部３４は、ＣＰＵ３０からの命令に基づいて、多数の光電変換素子２３の電気信号を同時にシフトレジスタに転送するためのシリアルイン信号ＳＩおよびシフトレジスタの電気信号を順番に出力させるためのクロック信号ＣＬＫを受光部２２に送信する。読取部２０は、デバイス制御部３４からこれらの信号を受け取ると、光源２１を点灯させるとともに、受光部２２が受光した受光量に応じたアナログ信号をＡＦＥ３５に送信する。
【００３１】
ＡＦＥ３５は、読取部２０に接続され、ＣＰＵ３０からの命令に基づいて、読取部２０から送信されるアナログ信号をデジタルデータに変換する。ＡＦＥ３５は、予め定められた入力レンジおよび分解能を有する。例えば、分解能は、１０ビットであるならば、「０」から「１０２３」までの階調である。この場合、ＡＦＥ３５は、読取部２０から送信されたアナログ信号をデジタルデータとして１０ビット（０〜１０２３）の階調データに変換する。ＡＦＥ３５によって変換されたデジタルデータは、画像処理部３６、およびエッジ検出部３９に送信される。
【００３２】
画像処理部３６は、画像処理用の専用ＩＣであるＡＳＩＣから構成され、デジタルデータに画像処理を施す。画像処理は、ガンマ補正などの補正処理である。画像処理部３６は、画像処理をデジタルデータに施し、デジタル画像データを生成する。そのデジタル画像データは、バス３８を介してＲＡＭ３２に記憶される。
【００３３】
エッジ検出部３９は、デジタルデータにソーベルフィルタをかける処理などの周知のエッジ検出処理を施し、白黒データＷＢＤを生成する。エッジ検出部３９は、エッジである画素について「１」を白黒データＷＢＤとして生成し、エッジでない画素について「０」を白黒データＷＢＤとして生成する。生成した白黒データＷＢＤは、ＲＡＭ３２に記憶される。
【００３４】
駆動回路３７は、搬送モータＭＴに接続され、ＣＰＵ３０から送信される駆動指令に基づいて搬送モータＭＴを駆動する。駆動回路３７は、駆動指令により指令された回転量および回転方向に従って搬送モータＭＴを回転させる。搬送モータＭＴが所定量だけ回転すると、移動機構ＭＭが所定角度回転し、読取部２０が副走査方向ＳＤに所定距離だけ搬送される。
【００３５】
＜画像読取装置ＳＭの動作＞
（読取メイン処理）
次に、画像読取装置ＳＭの動作について図面を参照して説明する。画像読取装置ＳＭは、原稿ＧＳを読み取る読取メイン処理を主に実行する。図４に示す読取メイン処理中の処理Ｒ１〜処理Ｒ５は、ＣＰＵ３０が実行する処理である。
【００３６】
図４に示す読取メイン処理は、ユーザが原稿ＧＳを透明板ＴＰに載置し、操作機構ＯＭの読取開始ボタンを押下することにより、開始される。即ち、ＣＰＵ３０は、読取開始ボタンを押下した指令を受け取ることにより、読取メイン処理を開始する。本実施形態では、原稿ＧＳが右回りに傾いた場合と、原稿ＧＳが左回りに傾いた場合とを例に挙げて説明する。図１４（Ａ）は、原稿ＧＳが右回りに傾いた時の白黒データＷＢＤと、切替開始位置ＣＳＰなどの情報とを説明する図面であり、図１４（Ｂ）は、図１４（Ａ）における検出基点位置ＤＣＰ付近を拡大して説明する図面である。図１５（Ａ）は、原稿ＧＳが左回りに傾いた時の白黒データＷＢＤと、切替開始位置ＣＳＰなどの情報とを説明する図面であり、図１５（Ｂ）は、図１５（Ａ）における検出基点位置ＤＣＰ付近を拡大して説明する図面である。図１４、および図１５において、主走査方向ＭＤおよび副走査方向ＳＤは、それぞれ矢印に示す方向である。
【００３７】
ＣＰＵ３０は、デバイス制御部３４、および画像処理部３６等を初期化する（Ｒ１）。具体的には、ＣＰＵ３０は、主走査方向ＭＤの読取解像度が３００ＤＰＩ、および副走査方向ＳＤの読取解像度が３００ＤＰＩに対応するクロック信号ＣＬＫ及びシリアルイン信号ＳＩの設定値をフラッシュＲＯＭ３３から取得し、デバイス制御部３４に設定する。ＣＰＵ３０は、主走査方向ＭＤの読取解像度が３００ＤＰＩ、および副走査方向ＳＤの読取解像度が３００ＤＰＩとして読み取るための設定値をフラッシュＲＯＭ３３から取得し、画像処理部３６に設定する。ＣＰＵ３０は、合計ライン数ＴＬＮに「３５０」を設定してＲＡＭ３２に記憶する。ＣＰＵ３０は、原稿フラグＯＦＧをオフにしてＲＡＭ３２に記憶する。
【００３８】
ＣＰＵ３０は、読取動作を開始する（Ｒ２）。具体的には、ＣＰＵ３０は、駆動回路３７に駆動指令を送信し、読取部２０を基準位置ＢＰに移動させる。ＣＰＵ３０は、駆動回路３７とデバイス制御部３４に指令を送信し、基準位置ＢＰから副走査方向ＳＤに沿って下流へ読取部２０を移動させながら原稿ＧＳを読み取る読取動作を開始させる。読取動作が開始されると、デジタル画像データと白黒データＷＢＤとが、ＲＡＭ３２に記憶される。
【００３９】
ＣＰＵ３０は、先端検知処理を実行する（Ｒ３）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、図１４（Ａ）、図１４（Ｂ）、図１５（Ａ）、および図１５（Ｂ）に示す側端直線ＳＬ、先端直線ＨＬ、基準頂点ＣＤＰ、検出基点位置ＤＣＰ、傾き角度ＣＡ、後端角位置ＤＭＤＰ、板エッジ直線ＣＥＬ、板エッジ近距離ＮＣＥＬ、板エッジ遠距離ＦＣＥＬ、切替開始位置ＣＳＰ、及び切替終了位置ＣＥＰを算出してＲＡＭ３２に記憶する。ＣＰＵ３０は、エッジ検出フラグＥＤＦＧを１エッジ、又は２エッジに設定してＲＡＭ３２に記憶する。ＣＰＵ３０は、切替フラグＣＦＧをオン、又はオフに設定してＲＡＭ３２に記憶する。
【００４０】
ＣＰＵ３０は、原稿検知処理を実行する（Ｒ４）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、エッジ検出フラグＥＤＦＧに基づいて原稿フラグＯＦＧをオフ、又はオンに設定してＲＡＭ３２に記憶する。ＣＰＵ３０は、読取部２０が切替開始位置ＣＳＰまで搬送されたときから、エッジ検出処理を切り替える検出切替処理を実行する。ＣＰＵ３０は、原稿フラグＯＦＧがオフになると、読取動作を終了する。本実施形態では、ＣＰＵ３０は、１ライン毎の画像を読み取る時間と同じ時間で１ライン毎の原稿フラグＯＦＧをオフ又はオンに設定する。
【００４１】
ＣＰＵ３０は、読取動作を終了する（Ｒ５）。具体的には、ＣＰＵ３０は、駆動回路３７とデバイス制御部３４とに指令を送信し、原稿ＧＳを読み取る読取動作を終了し、読取部２０を駆動停止させた後に、ホーム位置ＨＰに移動させる。処理Ｒ５が終了すると、読取メイン処理が終了する。
【００４２】
（先端検知処理Ｒ３）
図５に示す先端検知処理（Ｒ３）が開始されると、ＣＰＵ３０は、図１４（Ａ）、及び図１５（Ａ）に示す先端データＨＡを取得する（ＲＡ１）。具体的には、ＣＰＵ３０は、ＲＡＭ３２に記憶された白黒データＷＢＤのうちで副走査方向ＳＤに沿って最も上流のラインである先頭ラインから副走査方向ＳＤに沿って下流へ３５０ライン目の位置である先端データ下端位置ＨＡＤＰまでの白黒データＷＢＤを先端データＨＡとして取得する。即ち、先端データＨＡは、先頭ラインから副走査方向ＳＤに沿って下流へ３５０ライン目の位置である先端データ下端位置ＨＡＤＰまでの領域の白黒データＷＢＤである。
【００４３】
ＣＰＵ３０は、先端直線ＨＬ、及び側端直線ＳＬを算出する（ＲＡ２）。具体的には、ＣＰＵ３０は、図１４（Ａ）及び図１５（Ａ）に示すように、副走査方向ＳＤの上流に位置する原稿ＧＳの主走査方向ＭＤに沿った先端直線ＨＬと、主走査方向ＭＤの上流に位置する原稿ＧＳの副走査方向ＳＤに沿った側端直線ＳＬとを先端データＨＡから決定する。
【００４４】
ＣＰＵ３０は、図１４（Ａ）及び図１５（Ａ）に示すように、基準頂点ＣＤＰおよび検出基点位置ＤＣＰを算出する（ＲＡ３）。具体的には、ＣＰＵ３０は、先端直線ＨＬと、側端直線ＳＬとの交点を基準頂点ＣＤＰとして算出する。ＣＰＵ３０は、先端データＨＡにおける側端直線ＳＬのうちで副走査方向ＳＤに沿って最も下流に特定される側端直線ＳＬの位置を検出基点位置ＤＣＰとして算出する。ＣＰＵ３０は、主走査方向ＭＤにおける検出基点位置ＤＣＰをエッジ位置ＥＰとしてＲＡＭ３２に記憶する。検出基点位置ＤＣＰは、先端データ下端位置ＨＡＤＰにおける側端直線ＳＬ上の位置である。
【００４５】
ＣＰＵ３０は、図１４（Ａ）及び図１５（Ａ）に示す先端直線ＨＬの傾き角度ＣＡを算出する（ＲＡ４）。具体的には、ＣＰＵ３０は、主走査方向に沿った直線から先端直線ＨＬへの反時計回り方向への角度を傾き角度ＣＡとして算出する。本実施形態では、主走査方向ＭＤに沿った直線から先端直線ＨＬへの反時計回り方向への角度を傾き角度ＣＡとして算出したが、副走査方向ＳＤに沿った直線から側端直線ＳＬへの反時計回り方向への角度を傾き角度ＣＡとして算出しても良い。この場合、副走査方向ＳＤに沿った直線から側端直線ＳＬへの反時計回り方向への角度と、主走査方向に沿った直線から先端直線ＨＬへの反時計回り方向への角度とは、原稿ＧＳの形状が矩形形状であるため、同じ角度となる。
【００４６】
ＣＰＵ３０は、エッジ検出フラグＥＤＦＧを設定する（ＲＡ５）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、後端角位置ＤＭＤＰ、および板エッジ直線ＣＥＬを算出する。ＣＰＵ３０は、検出範囲ＤＥＲを設定する。ＣＰＵ３０は、エッジ検出フラグＥＤＦＧを１エッジ、若しくは２エッジに設定してＲＡＭ３２に記憶する。
【００４７】
ＣＰＵ３０は、切替フラグＣＦＧを設定する（ＲＡ６）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、切替フラグＣＦＧをオン、若しくはオフに設定してＲＡＭ３２に記憶する。
【００４８】
ＣＰＵ３０は、切替開始位置ＣＳＰ算出処理を実行する（ＲＡ７）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、板エッジ近距離ＮＣＥＬ、板エッジ遠距離ＦＣＥＬ、切替開始位置ＣＳＰ、及び切替終了位置ＣＥＰを算出する。処理ＲＡ７が終了すると、先端検知処理Ｒ３が終了する。
【００４９】
（エッジ検出フラグＥＤＦＧ設定処理ＲＡ５）
図６に示すエッジ検出フラグＥＤＦＧ設定処理（ＲＡ５）が開始されると、ＣＰＵ３０は、図１４（Ａ）及び図１５（Ａ）に示す後端角位置ＤＭＤＰを算出する（ＲＢ１）。具体的には、ＣＰＵ３０は、傾き角度ＣＡに正接処理を施した値に、副走査方向ＳＤにおける基準位置ＢＰから予め記憶された最大読取位置ＭＲＰまでの距離を掛け算した距離を、主走査方向ＭＤにおける基準頂点ＣＤＰの位置に加算することにより、後端角位置ＤＭＤＰを算出する。本実施形態では、傾き角度ＣＡは、原稿ＧＳが左回りに傾いた時に、０度よりも大きく４５度未満となり、原稿ＧＳが右回りに傾いた時に、２７０度よりも大きく３６０度未満となる。そのため、傾き角度ＣＡに正接処理を施した値は、原稿ＧＳが左回りに傾いた時に、正の値となり、原稿ＧＳが右回りに傾いた時に、負の値となる。よって、後端角位置ＤＭＤＰは、原稿ＧＳが左回りに傾いた時に、基準頂点ＣＤＰよりも主走査方向ＭＤの下流となり、原稿ＧＳが右回りに傾いた時に、基準頂点ＣＤＰよりも主走査方向ＭＤの上流となる。
【００５０】
ＣＰＵ３０は、先端データＨＡに板エッジ直線ＣＥＬが含まれるか否かを判断する（ＲＢ２）。具体的には、ＣＰＵ３０は、原稿押え板領域ＣＶＲ内に位置し、且つ検出基点位置ＤＣＰよりも主走査方向ＭＤの上流側に位置する直線が存在する場合（ＲＢ２：Ｙｅｓ）に、処理ＲＢ３に進み、原稿押え板領域ＣＶＲ内に位置し、且つ検出基点位置ＤＣＰよりも主走査方向ＭＤの上流側に位置する直線が存在しない場合（ＲＢ２：Ｎｏ）に、処理ＲＢ６に進む。
【００５１】
ＣＰＵ３０は、図１４（Ａ）に示す板エッジ直線ＣＥＬを算出する（ＲＢ３）。具体的には、ＣＰＵ３０は、原稿押え板領域ＣＶＲ内に位置し、且つ検出基点位置ＤＣＰよりも主走査方向ＭＤの上流側に位置する直線である板エッジ直線ＣＥＬを先端データＨＡから算出する。
【００５２】
ＣＰＵ３０は、図１４（Ａ）に示す検出範囲ＤＥＲを設定する（ＲＢ４）。具体的には、ＣＰＵ３０は、後端角位置ＤＭＤＰから主走査方向ＭＤにおける検出基点位置ＤＣＰまでの主走査方向ＭＤにおける範囲を検出範囲ＤＥＲとして設定してＲＡＭ３２に記憶する。
【００５３】
ＣＰＵ３０は、エッジ検出フラグＥＤＦＧを２エッジに設定してＲＡＭ３２に記憶する（ＲＢ５）。ＣＰＵ３０は、「２」をエッジ数ＮＥとしてＲＡＭ３２に記憶する。処理ＲＢ５が終了すると、エッジ検出フラグＥＤＦＧ設定処理ＲＡ５が終了する。
【００５４】
処理ＲＢ２においてＮｏと判断されると、ＣＰＵ３０は、図１５（Ａ）に示す検出範囲ＤＥＲを設定する（ＲＢ６）。具体的には、ＣＰＵ３０は、主走査方向ＭＤにおける検出基点位置ＤＣＰから後端角位置ＤＭＤＰまでの主走査方向ＭＤにおける範囲を検出範囲ＤＥＲとして設定してＲＡＭ３２に記憶する。
【００５５】
ＣＰＵ３０は、エッジ検出フラグＥＤＦＧを１エッジに設定してＲＡＭ３２に記憶する（ＲＢ７）。ＣＰＵ３０は、「１」をエッジ数ＮＥとしてＲＡＭ３２に記憶する。処理ＲＢ７が終了すると、エッジ検出フラグＥＤＦＧ設定処理ＲＡ５が終了する。
【００５６】
（切替フラグＣＦＧ設定処理ＲＡ６）
図７に示す切替フラグＣＦＧ設定処理（ＲＡ６）が開始されると、ＣＰＵ３０は、傾き角度ＣＡが０度であるか否かを判断する（ＲＣ１）。ＣＰＵ３０は、傾き角度ＣＡが０度である場合（ＲＣ１：Ｙｅｓ）に、処理ＲＣ５へ進み、傾き角度ＣＡが０度でない場合（ＲＣ１：Ｎｏ）に、処理ＲＣ２へ進む。
【００５７】
ＣＰＵ３０は、エッジ検出フラグＥＤＦＧが１エッジ、若しくは２エッジのいずれであるかを判断する（ＲＣ２）。ＣＰＵ３０は、エッジ検出フラグＥＤＦＧが２エッジである場合（ＲＣ２：２エッジ）に、処理ＲＣ４へ進み、エッジ検出フラグＥＤＦＧが１エッジである場合（ＲＣ２：１エッジ）に、処理ＲＣ３へ進む。
【００５８】
ＣＰＵ３０は、傾き角度ＣＡが４５度未満であるか否かを判断する（ＲＣ３）。ＣＰＵ３０は、傾き角度ＣＡが４５度未満である場合（ＲＣ３：Ｙｅｓ）に、処理ＲＣ６へ進み、傾き角度ＣＡが４５度未満でない場合（ＲＣ３：Ｎｏ）に、処理ＲＣ５へ進む。
【００５９】
処理ＲＣ２において２エッジと判断されると、ＣＰＵ３０は、処理ＲＣ３と同様に、傾き角度ＣＡが４５度未満であるか否かを判断する（ＲＣ４）。ＣＰＵ３０は、傾き角度ＣＡが４５度未満である場合（ＲＣ４：Ｙｅｓ）に、処理ＲＣ５へ進み、傾き角度ＣＡが４５度未満でない場合（ＲＣ４：Ｎｏ）に、処理ＲＣ６へ進む。本実施形態では、傾き角度ＣＡが０度より大きく４５度未満の場合に、原稿ＧＳが左回りに傾いた場合であり、傾き角度ＣＡが２７０度より大きく３６０度未満の場合に、原稿ＧＳが右回りに傾いた場合である。
【００６０】
ＣＰＵ３０は、切替フラグＣＦＧをオフに設定してＲＡＭ３２に記憶する（ＲＣ５）。処理ＲＣ５が終了すると、切替フラグＣＦＧ設定処理ＲＡ６が終了する。
【００６１】
ＣＰＵ３０は、切替フラグＣＦＧをオンに設定してＲＡＭ３２に記憶する（ＲＣ６）。処理ＲＣ６が終了すると、切替フラグＣＦＧ設定処理ＲＡ６が終了する。
【００６２】
（切替開始位置ＣＳＰ算出処理ＲＡ７）
図８に示す切替開始位置ＣＳＰ算出処理（ＲＡ７）が開始されると、ＣＰＵ３０は、図１４（Ｂ）及び図１５（Ｂ）に示す板エッジ近距離ＮＣＥＬを算出する（ＲＤ１）。具体的には、ＣＰＵ３０は、先端データ下端位置ＨＡＤＰにおいて原稿押え板領域ＣＶＲのうちの最も側端直線ＳＬに近い位置から検出基点位置ＤＣＰまでの距離を板エッジ近距離ＮＣＥＬとして算出する。
【００６３】
ＣＰＵ３０は、図１４（Ｂ）及び図１５（Ｂ）に示す板エッジ遠距離ＦＣＥＬを算出する（ＲＤ２）。具体的には、ＣＰＵ３０は、先端データ下端位置ＨＡＤＰにおいて原稿押え板領域ＣＶＲのうちで側端直線ＳＬから最も遠い位置から検出基点位置ＤＣＰまでの距離を板エッジ遠距離ＦＣＥＬとして算出する。
【００６４】
ＣＰＵ３０は、図１４（Ａ）及び図１５（Ａ）に示す切替開始位置ＣＳＰを算出する（ＲＤ３）。具体的には、ＣＰＵ３０は、先端データ下端位置ＨＡＤＰから、傾き角度ＣＡに正接処理を施した値の逆数に板エッジ近距離ＮＣＥＬを掛け算した距離だけ副走査方向ＳＤに沿って下流へ離れた副走査方向ＳＤの位置を切替開始位置ＣＳＰとして算出する。本実施形態では、傾き角度ＣＡに正接処理を施した値の逆数に板エッジ近距離ＮＣＥＬを掛け算した距離は、正の値であれば正の値とし、負の値であれば正の値とする絶対数である。
【００６５】
ＣＰＵ３０は、図１４（Ａ）及び図１５（Ａ）に示す切替終了位置ＣＥＰを算出する（ＲＤ４）。具体的には、ＣＰＵ３０は、先端データ下端位置ＨＡＤＰから、傾き角度ＣＡに正接処理を施した値の逆数に板エッジ遠距離ＦＣＥＬを掛け算した距離だけ副走査方向ＳＤに沿って下流へ離れた副走査方向ＳＤの位置を切替終了位置ＣＥＰとして算出する。処理ＲＤ４が終了すると、切替開始位置ＣＳＰ算出処理ＲＡ７が終了する。本実施形態では、傾き角度ＣＡに正接処理を施した値の逆数に板エッジ遠距離ＦＣＥＬを掛け算した距離は、正の値であれば正の値とし、負の値であれば正の値とする絶対数である。
【００６６】
（原稿検知処理Ｒ４）
図９に示す原稿検知処理（Ｒ４）が開始されると、ＣＰＵ３０は、検出ラインデータＤＬＤを設定する（ＲＥ１）。具体的には、ＣＰＵ３０は、合計ライン数ＴＬＮに対応する副走査方向ＳＤの位置における１ラインの白黒データＷＢＤを検出ラインデータＤＬＤとして設定してＲＡＭ３２に記憶する。ここで、合計ライン数ＴＬＮに対応する副走査方向ＳＤの位置は、先頭ラインから副走査方向ＳＤに沿って下流へ合計ライン数ＴＬＮだけ離れたラインの副走査方向ＳＤの位置である。本実施形態では、処理Ｒ１において合計ライン数ＴＬＮが「３５０」に設定されるため、先端データ下端位置ＨＡＤＰから副走査方向ＳＤに沿って下流の位置における１ラインの白黒データＷＢＤが検出ラインデータＤＬＤとして設定される。
【００６７】
ＣＰＵ３０は、エッジ検出処理を実行する（ＲＥ２）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、エッジ検出フラグＥＤＦＧに基づき原稿フラグＯＦＧをオンに設定してＲＡＭ３２に記憶する。
【００６８】
ＣＰＵ３０は、原稿フラグＯＦＧがオフであるか否かを判断する（ＲＥ３）。ＣＰＵ３０は、原稿フラグＯＦＧがオフである場合（ＲＥ３：Ｙｅｓ）に、原稿検知処理Ｒ４が終了し、原稿フラグＯＦＧがオンである場合（ＲＥ３：Ｎｏ）に、処理ＲＥ４に進む。本実施形態では、原稿フラグＯＦＧがオフであると判断されることは、原稿ＧＳが無いことを示している。
【００６９】
ＣＰＵ３０は、切替フラグＣＦＧがオンであるか否かを判断する（ＲＥ４）。ＣＰＵ３０は、切替フラグＣＦＧがオフである場合（ＲＥ４：Ｎｏ）に、処理ＲＥ１０へ進み、切替フラグＣＦＧがオンである場合（ＲＥ４：Ｙｅｓ）に、処理ＲＥ５へ進む。
【００７０】
ＣＰＵ３０は、合計ライン数ＴＬＮに対応する副走査方向ＳＤの位置が切替開始位置ＣＳＰであるか否かを判断する（ＲＥ５）。ＣＰＵ３０は、合計ライン数ＴＬＮに対応する副走査方向ＳＤの位置が切替開始位置ＣＳＰである場合（ＲＥ５：Ｙｅｓ）に、処理ＲＥ８へ進み、合計ライン数ＴＬＮに対応する副走査方向ＳＤの位置が切替開始位置ＣＳＰでない場合（ＲＥ５：Ｎｏ）に、処理ＲＥ６へ進む。
【００７１】
処理ＲＥ５でＮｏと判断されるか、処理ＲＥ９でＮｏと判断されるか、又は処理ＲＥ１０でＮｏと判断されると、ＣＰＵ３０は、合計ライン数ＴＬＮに数値「１」を加算する（ＲＥ６）。
【００７２】
ＣＰＵ３０は、原稿フラグＯＦＧをオフに設定してＲＡＭ３２に記憶する（ＲＥ７）。ＣＰＵ３０は、処理ＲＥ７が終了すると、処理ＲＥ１へ進む。
【００７３】
処理ＲＥ５においてＹｅｓと判断されると、ＣＰＵ３０は、検出切替処理を実行する（ＲＥ８）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、切替フラグＣＦＧをオフに設定した後に、エッジ検出フラグＥＤＦＧを変更するか、又は読取終了フラグＲＥＦＧをオンに設定する。
【００７４】
ＣＰＵ３０は、読取終了フラグＲＥＦＧがオンであるか否かを判断する（ＲＥ９）。ＣＰＵ３０は、読取終了フラグＲＥＦＧがオンである場合（ＲＥ９：Ｙｅｓ）に、原稿検知処理Ｒ４が終了し、読取終了フラグＲＥＦＧがオフである場合（ＲＥ９：Ｎｏ）に、処理ＲＥ６へ進む。
【００７５】
処理ＲＥ４においてＮｏと判断されると、ＣＰＵ３０は、合計ライン数ＴＬＮに対応する副走査方向ＳＤの位置が最大読取位置ＭＲＰであるか否かを判断する（ＲＥ１０）。ＣＰＵ３０は、合計ライン数ＴＬＮに対応する副走査方向ＳＤの位置が最大読取位置ＭＲＰでない場合（ＲＥ１０：Ｎｏ）に、処理ＲＥ６に進み、合計ライン数ＴＬＮに対応する副走査方向ＳＤの位置が最大読取位置ＭＲＰである場合（ＲＥ１０：Ｙｅｓ）に、原稿検知処理Ｒ４が終了する。
【００７６】
（エッジ検出処理ＲＥ２）
図１０に示すエッジ検出処理ＲＥ２が開始されると、ＣＰＵ３０は、エッジ検出フラグＥＤＦＧが１エッジ、若しくは２エッジのいずれであるかを判断する（ＲＦ１）。ＣＰＵ３０は、エッジ検出フラグＥＤＦＧが１エッジである場合（ＲＦ１：１エッジ）に、処理ＲＦ２に進み、エッジ検出フラグＥＤＦＧが２エッジである場合（ＲＦ１：２エッジ）に、処理ＲＦ３に進む。
【００７７】
ＣＰＵ３０は、１エッジ検出処理を実行する（ＲＦ２）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、原稿フラグＯＦＧをオフに設定した後に、エッジ位置ＥＰをＲＡＭ３２に記憶するか、又は原稿フラグＯＦＧをオフに設定しない。処理ＲＦ２が終了すると、エッジ検出処理ＲＥ２が終了する。
【００７８】
処理ＲＥ２において２エッジと判断されると、ＣＰＵ３０は、２エッジ検出処理を実行する（ＲＦ３）。詳細は後述するため、ここでは概説する。ＣＰＵ３０は、原稿フラグＯＦＧをオフに設定するか、又は原稿フラグＯＦＧをオフに設定しない。処理ＲＦ３が終了すると、エッジ検出処理ＲＥ２が終了する。
【００７９】
（１エッジ検出処理ＲＦ２）
図１１に示す１エッジ検出処理ＲＦ２が開始されると、ＣＰＵ３０は、検出範囲ＤＥＲにおける検出ラインデータＤＬＤからエッジ位置ＥＰを取得する（ＲＧ１）。具体的には、ＣＰＵ３０は、検出範囲ＤＥＲに含まれる検出ラインデータＤＬＤから「１」を示すエッジがある画素郡の位置をエッジ位置ＥＰとして取得する。
【００８０】
ＣＰＵ３０は、エッジ位置ＥＰが変化したか否かを判断する（ＲＧ２）。具体的には、ＣＰＵ３０は、ＲＡＭ３２に記憶されているエッジ位置ＥＰと処理ＲＧ１で取得したエッジ位置ＥＰとで位置が１０画素以上離れているか否かを判断することにより、エッジ位置ＥＰが変化したか否かを判断する。ＣＰＵ３０は、エッジ位置ＥＰが変化した場合（ＲＧ２：Ｙｅｓ）に、１エッジ検出処理ＲＦ２が終了し、エッジ位置ＥＰが変化していない場合（ＲＧ２：Ｎｏ）に、処理ＲＧ３に進む。エッジ位置ＥＰは、処理ＲＡ３、若しくは処理ＲＧ４において記憶される。
【００８１】
ＣＰＵ３０は、原稿フラグＯＦＧをオンに設定してＲＡＭ３２に記憶する（ＲＧ３）。本実施形態では、原稿フラグＯＦＧをオンに設定することは、原稿ＧＳが有ることを示している。
【００８２】
ＣＰＵ３０は、エッジ位置ＥＰを記憶する（ＲＧ４）。具体的には、ＣＰＵ３０は、処理ＲＧ１で取得したエッジ位置ＥＰを新たなエッジ位置ＥＰとしてＲＡＭ３２に記憶する。処理ＲＧ４が終了すると、１エッジ検出処理ＲＦ２が終了する。本実施形態では、エッジ位置ＥＰが１０画素以上離れていない場合に、ＣＰＵ３０は、取得したエッジ位置ＥＰを新たなエッジ位置ＥＰとして記憶している。そのため、原稿ＧＳが傾いているような上体で１０画素未満で徐々にエッジ位置ＥＰが変化する場合でも、原稿の有無を精度良く検出することができる。
【００８３】
（２エッジ検出処理ＲＦ３）
図１２に示す２エッジ検出処理ＲＦ３が開始されると、ＣＰＵ３０は、検出範囲ＤＥＲにおける検出ラインデータＤＬＤからエッジ数ＮＥを検出する（ＲＨ１）。具体的には、ＣＰＵ３０は、検出範囲ＤＥＲに含まれる検出ラインデータＤＬＤから「１」を示すエッジがある画素群の個数をエッジ数ＮＥとして検出する。
【００８４】
ＣＰＵ３０は、エッジ数ＮＥが変化したか否かを判断する（ＲＨ２）。具体的には、ＣＰＵ３０は、ＲＡＭ３２に記憶されているエッジ数ＮＥと処理ＲＨ１で検出したエッジ数ＮＥとが異なっているか否かを判断する。ＣＰＵ３０は、異なっている場合（ＲＨ２：Ｙｅｓ）に、２エッジ検出処理ＲＦ３が終了し、異なっていない場合（ＲＨ２：Ｎｏ）に、処理ＲＨ３に進む。本実施形態では、エッジ数ＮＥが２から１へ変化した場合に、原稿フラグＯＦＧをオフの状態を維持する。原稿フラグＯＦＧをオフの状態を維持することは、原稿ＧＳがないことを示している。エッジ数ＮＥは、処理ＲＢ５、処理ＲＢ７、若しくは処理ＲＩ７において記憶される。
【００８５】
ＣＰＵ３０は、原稿フラグＯＦＧをオンに設定してＲＡＭ３２に記憶する（ＲＨ３）。処理ＲＨ３が終了すると、２エッジ検出処理ＲＦ３が終了する。本実施形態では、原稿フラグＯＦＧをオンに設定することは、原稿ＧＳが有ることを示している。
【００８６】
（検出切替処理ＲＥ８）
図１３に示す検出切替処理ＲＥ８が開始されると、ＣＰＵ３０は、検出ラインデータＤＬＤを設定する（ＲＩ１）。具体的には、ＣＰＵ３０は、合計ライン数ＴＬＮに対応する副走査方向ＳＤの位置における１ラインの白黒データＷＢＤを検出ラインデータＤＬＤとして設定してＲＡＭ３２に記憶する。ここで、合計ライン数ＴＬＮに対応する副走査方向ＳＤの位置は、先頭ラインから副走査方向ＳＤに沿って下流へ合計ライン数ＴＬＮだけ離れたラインの副走査方向ＳＤの位置である。
【００８７】
ＣＰＵ３０は、原稿押え板領域ＣＶＲにおける検出ラインデータＤＬＤからエッジ数ＮＥを検出する（ＲＩ２）。具体的には、ＣＰＵ３０は、原稿押え板領域ＣＶＲに含まれる検出ラインデータＤＬＤから「１」を示すエッジがある画素群の個数をエッジ数ＮＥとして検出する。
【００８８】
ＣＰＵ３０は、エッジ数ＮＥが変化したか否かを判断する（ＲＩ３）。具体的には、ＣＰＵ３０は、ＲＡＭ３２に記憶されているエッジ数ＮＥと処理ＲＩ２で検出したエッジ数ＮＥとが異なっているか否かを判断する。ＣＰＵ３０は、異なっている場合（ＲＩ３：Ｙｅｓ）に、処理ＲＩ７に進み、異なっていない場合（ＲＩ３：Ｎｏ）に、処理ＲＩ４に進む。
【００８９】
ＣＰＵ３０は、合計ライン数ＴＬＮに対応する副走査方向ＳＤの位置が切替終了位置ＣＥＰであるか否かを判断する（ＲＩ４）。ＣＰＵ３０は、合計ライン数ＴＬＮに対応する副走査方向ＳＤの位置が切替終了位置ＣＥＰである場合（ＲＩ４：Ｙｅｓ）に、処理ＲＩ６へ進み、合計ライン数ＴＬＮに対応する副走査方向ＳＤの位置が切替終了位置ＣＥＰでない場合（ＲＩ４：Ｎｏ）に、処理ＲＩ５へ進む。
【００９０】
ＣＰＵ３０は、合計ライン数ＴＬＮに数値「１」を加算する（ＲＩ５）。ＣＰＵ３０は、処理ＲＩ５が終了すると、処理ＲＩ１へ進む。
【００９１】
処理ＲＩ４においてＹｅｓと判断されると、ＣＰＵ３０は、読取終了フラグＲＥＦＧをオンに設定してＲＡＭ３２に記憶する（ＲＩ６）。処理ＲＩ６が終了すると、検出切替処理ＲＥ８が終了する。
【００９２】
処理ＲＩ３においてＹｅｓと判断されると、ＣＰＵ３０は、エッジ数ＮＥを記憶する（ＲＩ７）。具体的には、ＣＰＵ３０は、処理ＲＩ２で検出したエッジ数ＮＥを新たなエッジ数ＮＥとしてＲＡＭ３２に記憶する。
【００９３】
ＣＰＵ３０は、切替フラグＣＦＧをオフに設定してＲＡＭ３２に記憶する（ＲＩ８）。
【００９４】
ＣＰＵ３０は、エッジ検出フラグＥＤＦＧを変更する（ＲＩ９）。具体的には、ＣＰＵ３０は、エッジ検出フラグＥＤＦＧが１エッジである場合に、２エッジをエッジ検出フラグＥＤＦＧとしてＲＡＭ３２に記憶し、エッジ検出フラグＥＤＦＧが２エッジである場合に、１エッジをエッジ検出フラグＥＤＦＧとしてＲＡＭ３２に記憶する。処理ＲＩ９が終了すると、検出切替処理ＲＥ８が終了する。本実施形態では、エッジ数ＮＥが１から２に変化した場合に、２エッジをエッジ検出フラグＥＤＦＧとしてＲＡＭ３２に記憶し、エッジ数ＮＥが２から１に変化した場合に、１エッジをエッジ検出フラグＥＤＦＧとしてＲＡＭ３２に記憶する。
【００９５】
＜実施形態の効果＞
本実施形態では、切替フラグＣＦＧ設定処理は、傾き角度ＣＡが０度でないときに、切替フラグＣＦＧをオンに設定し、傾き角度ＣＡが０度であるときに、エッジ検出フラグＥＤＦＧ、および傾き角度ＣＡに基づき切替フラグＣＦＧをオフに設定する。原稿検知処理Ｒ４において処理ＲＥ１〜処理ＲＥ７は、切替フラグＣＦＧがオンであるときには、切替開始位置ＣＳＰとなるまで、エッジ検出フラグＥＤＦＧに基づき原稿ＧＳの有無を判断し、原稿ＧＳが無いときに原稿フラグＯＦＧをオフにして読取動作が終了する。処理ＲＥ５において、合計ライン数ＴＬＮに対応する副走査方向の位置が切替開始位置ＣＳＰとなったときに、処理ＲＥ８は、切替終了位置ＣＥＰとなるまで、原稿押え板領域ＣＶＲにおけるエッジ数ＮＥが変化したか否かを判断し、エッジ数ＮＥが変化したと判断したときに、エッジ数ＮＥと、切替フラグＣＦＧと、エッジ検出フラグＥＤＦＧとを設定する。処理Ｒ４は、切替フラグＣＦＧがオフであるときには、最大読取位置ＭＲＰとなるまで、エッジ検出フラグＥＤＦＧに基づき原稿ＧＳの有無を判断し、原稿ＧＳが無いと判断したときに原稿フラグＯＦＧをオフにして読取動作が終了する。よって、原稿ＧＳが傾いて載置されたことにより、原稿の読取動作の途中から原稿押え板ＣＶの端部が読み取られた場合でも、原稿押え板領域ＣＶＲにおけるエッジ数ＮＥが変化したか否かを判断して、エッジ数ＮＥが変化した場合に、エッジ数ＮＥと、切替フラグＣＦＧと、エッジ検出フラグＥＤＦＧとを再度設定するため、原稿を正常に読み取ることができる。
【００９６】
処理ＲＦ２において処理ＲＧ１は、検出範囲ＤＥＲ内のエッジ位置ＥＰを取得する。処理ＲＧ２は、エッジ位置ＥＰが変化した場合には、原稿フラグＯＦＧをオフに維持する。よって、原稿押え板ＣＶの端部が原稿ＧＳで覆われているエッジ数ＮＥが１である場合に、原稿ＧＳの画像を読み取り終えた時点において、原稿ＧＳの端部から原稿押え板ＣＶの端部へと変化するため、エッジ数ＮＥは変化しないがエッジ位置ＥＰは変化する。エッジ位置ＥＰの変化を検出することで、原稿無を早く判断することができる。
【００９７】
処理ＲＦ３において処理ＲＨ１は、検出範囲ＤＥＲ内のエッジ数ＮＥを検出する。処理ＲＨ２は、エッジ数ＮＥが変化した場合には、原稿フラグＯＦＧをオフに維持する。よって、原稿押え板ＣＶの端部が原稿ＧＳで覆われていないエッジ数ＮＥが２である場合に、原稿ＧＳの画像を読み取り終えた時点において、原稿ＧＳの端部と原稿押え板ＣＶの端部との２つの端部から原稿押え板ＣＶの端部の１つの端部へと変化する。原稿押え板ＣＶの端部の位置は変化しないがエッジ数ＮＥは変化する。エッジ数ＮＥの変化を検出することで、原稿無を早く判断することができる。
【００９８】
[実施形態と発明との対応関係]
画像読取装置ＳＭ、原稿載置台ＤＴ、および原稿押え板ＣＶが、本発明の画像読取装置、原稿台、および原稿押え部材の一例である。読取部２０、ＡＦＥ３５、およびエッジ検出部３９が、本発明の読取部の一例である。駆動回路３７、搬送モータＭＴ、および移動機構ＭＭが、本発明の移動部の一例である。ＣＰＵ３０が、本発明の制御部の一例である。基準位置ＢＰに対応する透明板ＴＰが、本発明の基準部の一例である。
【００９９】
処理Ｒ２が、本発明の開始処理の一例である。処理Ｒ３が、本発明の先端検出処理の一例である。処理ＲＡ７が、本発明の位置算出処理の一例である。処理ＲＦ２が、本発明の第１側端判断処理の一例である。処理ＲＦ３が、本発明の第２側端判断処理の一例である。処理ＲＢ２、および処理ＲＦ１が、本発明の選択処理の一例である。処理ＲＥ８が、本発明の切替処理の一例である。処理ＲＡ４が、本発明の傾き算出処理の一例である。
【０１００】
[変形例]
本発明は、本実施形態に限定されることなく、その趣旨を逸脱しない範囲において種々の変形が可能である。以下にその変形の一例を述べる。
【０１０１】
（１）本実施形態の画像読取装置ＳＭは、プリンタ部を備えた複合機に適用されても良い。また、本実施形態では、読取部２０が、ＣＩＳで構成される場合について説明をしたが、ＣＣＤ（Charge Coupled Device）を搭載し、副走査方向に移動するＣＣＤユニットで構成されても良いし、ＣＣＤ素子が固定されて光源とミラーとが副走査方向に移動する読取ユニットで構成されても良い。
【０１０２】
（２）本実施形態では、切替開始位置ＣＳＰは、先端データ下端位置ＨＡＤＰから、傾き角度ＣＡに正接処理を施した値の逆数に板エッジ近距離ＮＣＥＬを掛け算した距離だけ副走査方向ＳＤに沿って下流へ離れた位置として算出したが、異なる方法でも良い。画像読取装置ＳＭが、プレスキャンなどを実行することにより、原稿押え板ＣＶの端部の位置を検出しておき、原稿押え板ＣＶの端部の位置が変化した位置を切替開始位置ＣＳＰとしても良い。
【０１０３】
（３）本実施形態では、検出範囲ＤＥＲは、後端角位置ＤＭＤＰと主走査方向ＭＤにおける検出基点位置ＤＣＰとの間を検出範囲ＤＥＲとして設定したが、異なる範囲でも良い。原稿ＧＳの主走査方向ＭＤの幅と予め定められた規定の原稿サイズとから副走査方向ＳＤの長さを推定し、推定した副走査方向ＳＤの長さと傾き角度ＣＡと基準頂点ＣＤＰとから後端角位置ＤＭＤＰを算出し、後端角位置ＤＭＤＰと検出基点位置ＤＣＰとの間を検出範囲ＤＥＲとして設定しても良い。
【０１０４】
（４）本実施形態では、先端検知処理Ｒ３は、先頭ラインから副走査方向ＳＤに沿って下流へ３５０ライン目の位置である先端下端位置ＨＡＤＰまでの白黒データＷＢＤを先端データとして取得したが、異なる範囲でも良い。例えば、副走査方向ＳＤにおける解像度が６００ＤＰＩであったときは、先頭ラインから副走査方向ＳＤに沿って下流へ７００ライン目の位置を先端下端位置ＨＡＤＰとしても良いし、先端直線ＨＬ、側端直線ＳＬ、および板エッジ直線ＣＥＬが取得できる大きさの範囲であれば、３５０ライン目の位置よりも副走査方向ＳＤに沿って上流の位置でも良い。
【符号の説明】
【０１０５】
ＳＭ…画像読取装置、ＯＭ…操作機構、ＣＶ…原稿押え板、ＭＴ…搬送モータ、ＭＭ…移動機構、２０…読取部、２１…光源、２２…受光部、２３…光電変換素子、３０…ＣＰＵ、３３…フラッシュＲＯＭ、３４…デバイス制御部、３５…ＡＦＥ、３６…画像処理部、３７…駆動回路、３９…エッジ検出部
【図１】
2019092093.tif 000003
【図２】
2019092093.tif 000004
【図３】
2019092093.tif 000005
【図４】
2019092093.tif 000006
【図５】
2019092093.tif 000007
【図６】
2019092093.tif 000008
【図７】
2019092093.tif 000009
【図８】
2019092093.tif 000010
【図９】
2019092093.tif 000011
【図１０】
2019092093.tif 000012
【図１１】
2019092093.tif 000013
【図１２】
2019092093.tif 000014
【図１３】
2019092093.tif 000015
【図１４】
2019092093.tif 000016
【図１５】
2019092093.tif 000017