(57)【特許請求の範囲】
【請求項１】
複数枚の原稿を連続して搬送する搬送部と、
前記搬送部により副走査方向に搬送される前記原稿を読取位置において主走査方向に沿って読み取って読取データを生成する読取部と、
制御部と、
を備え、
前記制御部は、
前記読取部によって前記副走査方向に、対象原稿の先端を含む所定範囲に亘って読み取られた前記読取データにおいて、前記副走査方向に沿った複数の検出ライン上で、前記読取部によって先に読み取られた側の端である一端から前記読取部によって後に読み取られた側の端である他端に向けて原稿の端となる点を検出し、検出された前記点の位置から第１のエッジを検出する検出処理と、
前記読取データのうち、前記副走査方向において前記一端と前記第１のエッジとの間に挟まれた領域である一端側の領域に含まれる特徴点であって、基準値以上の画素値を有する前記特徴点の密度を求める密度算出処理と、
当該密度を閾値と比較した結果に基づいて前記第１のエッジが前記対象原稿の先端か、或は、前記対象原稿よりも先に搬送された原稿の後端かを判断する判断処理と、
を実行する読取装置。
【請求項２】
請求項１に記載の読取装置において、
前記読取データは、前記主走査方向及び前記副走査方向に単位画像を示す単位画像データが複数個配置されて構成されており、
前記制御部は、
前記検出処理では、
前記読取データを、前記基準値未満の画素値を有する前記単位画像データを第１データとし、前記基準値以上の画素値を有する前記単位画像データを第２データとして２値化し、
前記検出ライン上で前記一端から前記副走査方向に２値化された前記読取データを検出し、前記検出ライン上の前記第２データを前記特徴点として抽出し、抽出された前記特徴点から前記点を検出し、
前記密度算出処理では、
前記検出処理により検出される前記特徴点から前記密度を求める、読取装置。
【請求項３】
請求項１または請求項２に記載の読取装置において、
前記制御部は、更に、
前記判断処理において、前記第１のエッジが前記対象原稿よりも先に搬送された原稿の後端と判断された場合に、前記読取データのうち、前記副走査方向において前記第１のエッジに対する前記他端側の領域において、前記点を再度検出し、検出された前記点の位置から第２のエッジを検出する再検出処理、
を実行する、読取装置。
【請求項４】
請求項３に記載の読取装置において、
前記制御部は、
前記再検出処理では、
前記検出処理において、前記主走査方向において分離した２つの前記第１のエッジが検出された場合に、前記２つの第１のエッジのうち前記一端側のものを前記第１のエッジとして、前記他端側のものを前記第２のエッジの一部として検出する、読取装置。
【請求項５】
請求項３または請求項４に記載の読取装置において、
前記制御部は、更に、
前記読取データのうち、前記副走査方向において前記第１のエッジと前記第２のエッジとの間に挟まれた領域であるエッジ間領域から前記特徴点を抽出し、前記エッジ間領域における前記特徴点の密度を求める再密度算出処理と、
当該密度を前記閾値と比較した結果に基づいて前記第２のエッジが前記対象原稿の先端か否かを判断する再判断処理と、
を実行する読取装置。
【請求項６】
請求項１から請求項５のいずれか一項に記載の読取装置において、
前記閾値は、前記読取位置に前記原稿がない状態で前記読取部によって生成された読取データに含まれる前記特徴点の密度に応じて設定される、読取装置。
【請求項７】
請求項１から請求項６のいずれか一項に記載の読取装置において、
通知部、
を備え、
前記制御部は、更に、
前記判断処理及び前記再判断処理の結果をユーザに通知する通知処理、
を実行する、読取装置。
【請求項８】
請求項１から請求項７のいずれか一項に記載の読取装置において、
複数枚の原稿を載置可能な供給部、
を備え、
前記搬送部は、前記供給部に載置された前記原稿を搬送し、
更に、
前記供給部と前記読取位置との間の検出位置において前記搬送部により搬送される前記原稿の有無を検出する検出センサ、
を備え、
前記制御部は、更に、
前記検出センサによって前記搬送部により連続して搬送される原稿間の距離を前記対象原稿が前記読取位置に到達する前に取得する取得処理、
を実行し、
前記取得処理において、前記原稿間の距離が所定の基準より小さい場合に、前記判断処理を実行する、読取装置。
【請求項９】
副走査方向に連続して搬送される複数枚の原稿を主走査方向に沿って読み取って読取データを生成し出力する読取装置に接続された端末装置において実行されるプログラムであって、
前記端末装置に、
対象原稿の先端を含む所定範囲に亘って読み取られた前記読取データにおいて、前記副走査方向に沿った複数の検出ライン上で、前記読取部によって先に読み取られた側の端である一端から前記読取部によって後に読み取られた側の端である他端に向けて前記原稿の端となる点を検出し、検出された前記点の位置から第１のエッジを検出する検出処理と、
前記読取データのうち、前記副走査方向において前記一端と前記第１のエッジとの間に挟まれた領域である一端側の領域に含まれる特徴点であって、基準値以上の画素値を有する前記特徴点の密度を求める密度算出処理と、
当該密度を閾値と比較した結果に基づいて前記第１のエッジが前記対象原稿の先端か、或は、前記対象原稿よりも先に搬送された原稿の後端かを判断する判断処理と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書によって開示される発明は、原稿を読み取って得られる読取データから原稿のエッジを検出する技術に関する。
【背景技術】
【０００２】
従来より、読取装置において、ＡＤＦ（自動原稿供給装置）により搬送される原稿をイメージセンサで読み取って得られる読取データから原稿のエッジの位置を検出する技術が知られている。例えば、読取データにおいて、副走査方向（原稿の搬送方向）に沿った検出ライン上で周囲の画素との画素値の変化が閾値以上となるような画素をエッジの候補点として検出する処理を、検出ラインを主走査方向に移動しながら繰り返し行う。そして、検出された候補点群を直線近似して原稿のエッジの位置を特定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−５８３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術によれば、例えば、搬送される原稿間の距離が小さい場合などに、読取データからある原稿の先端のエッジを検出しようとしたときに、その前の原稿の後端のエッジを検出したり、逆に、ある原稿の後端のエッジを検出しようとしたときに、次の原稿の前端のエッジを検出したりするおそれがある。
【０００５】
本発明は上記のような事情に基づいて完成されたものであって、検出されたエッジが原稿の先端か後端かを判断する技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本明細書によって開示される読取装置は、原稿を読取位置に搬送する搬送部と、前記搬送部により副走査方向に搬送される前記原稿を前記読取位置において主走査方向に沿って読み取って読取データを生成する読取部と、前記読取データにおいて、前記副走査方向に沿った複数の検出ライン上で一端から他端に向けて前記原稿のエッジの候補であるエッジ候補点を検出し、検出された前記エッジ候補点の位置から第１のエッジを検出する検出部と、前記読取データにおける前記第１のエッジに対する前記一端側の領域から特徴点を抽出する抽出部と、前記一端側の領域における前記特徴点の密度を求め、当該密度を閾値と比較した結果に基づいて前記第１のエッジが前記原稿の先端か後端かを判断する判断処理を行う判断部と、を備える。
【０００７】
また、上記読取装置は、前記抽出部が、前記検出部により検出される前記エッジ候補点を前記特徴点として抽出する構成としてもよい。
【０００８】
また、上記読取装置は、前記検出部が、前記第１のエッジが検出目標のエッジでない場合に、前記第１のエッジに対する前記他端側の領域において、前記エッジ候補点を再度検出し、検出された前記エッジ候補点の位置から第２のエッジを検出する構成としてもよい。
【０００９】
また、上記読取装置は、前記検出部が、前記主走査方向において異なる２つのエッジが検出された場合に、前記２つのエッジのうち前記一端側を前記第１のエッジとして、前記他端側を前記第２のエッジの一部として検出する構成としてもよい。
【００１０】
また、上記読取装置は、前記抽出部が、前記第１のエッジと前記第２のエッジとの間の領域から特徴点を抽出し、前記判断部が、前記間の領域における前記特徴点の密度を求め、当該密度を前記閾値と比較した結果に基づいて前記第２のエッジが前記原稿の先端か後端かを判断する再判断処理を行う構成としてもよい。
【００１１】
また、上記読取装置は、前記読取位置に前記原稿がない状態で前記読取部によって生成された読取データにおいて、前記抽出部により抽出される特徴点の密度を求め、当該密度に応じて前記閾値を設定する設定部を備える構成としてもよい。
【００１２】
また、上記読取装置は、前記判断処理の結果をユーザに通知する通知部を備える構成としてもよい。
【００１３】
また、上記読取装置は、前記搬送部により連続して搬送される原稿間の距離を前記原稿が前記読取位置に到達する前に取得する取得部を備え、前記判断部は、前記原稿間の距離が所定の基準より小さい場合に、前記判断処理を実行する構成としてもよい。
【００１４】
なお、この発明は、読取装置、端末装置、原稿のエッジ検出方法、これらの装置の機能または方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体等の種々の態様で実現することができる。
【発明の効果】
【００１５】
本発明によれば、検出されたエッジが原稿の先端か後端かを判断することができる。
【図面の簡単な説明】
【００１６】
【図１】一実施形態における読取装置の電気的構成を概略的に示すブロック図
【図２】読取装置の部分拡大断面図
【図３】ＡＤＦ読取処理の前半部分のフローチャート
【図４】ＡＤＦ読取処理の後半部分のフローチャート
【図５】閾値設定処理のフローチャート
【図６】エッジ検出処理のフローチャート
【図７】フラグ設定処理のフローチャート
【図８】検出エリアと１枚の原稿との位置関係を説明する図
【図９】検出エリアと２枚の原稿との位置関係を説明する図
【図１０】別の実施形態における読取装置と端末装置の電気的構成を概略的に示すブロック図
【発明を実施するための形態】
【００１７】
次に本発明の一実施形態について図１から図９を参照して説明する。
【００１８】
（読取装置の構成）
図１は、読取装置１０の電気的構成を概略的に示すブロック図であり、図２は、読取装置１０の一部を拡大して示す断面図である。図１に示すように、読取装置１０は、制御部１１、通信部１７、読取部１８、ＡＤＦ１９、Ｆセンサ３５、Ｒセンサ３６、操作部３７、表示部３８を備えている。
【００１９】
制御部１１は、特定用途向け集積回路（ＡＳＩＣ）などにより構成されており、ＣＰＵ１２、ＲＯＭ１３、ＲＡＭ１４、ＮＶＲＡＭ１５などを有している。ＲＯＭ１３は、後述するＡＤＦ読取処理など、読取装置１０の各種動作を実行するための制御プログラムを記憶している。ＣＰＵ１２（検出部、抽出部、判断部、設定部、取得部の一例）は、ＲＯＭ１３から読み出したプログラムに従って各部の動作を制御する。ＲＡＭ１４は、ＣＰＵ１２の作業領域として用いられる揮発性のメモリであり、ＮＶＲＡＭ１５は、読取データや各種の設定値などを記憶する不揮発性のメモリである。
【００２０】
通信部１７は、例えばＵＳＢ（Universal Serial Bus）やＬＡＮ（Local Area Network）などのインターフェースであり、外部の機器と通信を行う。
【００２１】
読取部１８は、図２に示すように、原稿２６を光学的に読み取るＣＩＳ（Contact Image Sensor）などのイメージセンサを有し、読取装置１０の上部に設けられた一対のプラテンガラス２７，２８の下方に配置されている。
【００２２】
ＡＤＦ１９（自動原稿供給装置）は、プラテンガラス２７，２８の上方に設けられており、複数の搬送ローラ２９を図示しないステッピングモータの動力で回転させることによって、複数の原稿２６が積載された原稿トレイ３０から原稿２６を一枚ずつ送り出し、読取位置Ｐを経て排出トレイ３１に排出する。読取部１８は、読取位置Ｐにおいて原稿２６を主走査方向（図２の紙面直交方向）に１ラインずつ読み取り、読取データを生成して制御部１１へ出力する。
【００２３】
プラテンガラス２７の上方には、背景部３２が対面して設けられており、プラテンガラス２７と背景部３２との間が読取位置Ｐになっている。背景部３２の下面は、読取位置Ｐに原稿２６がない状態で読み取りを行ったときに読み取られる面であって、ほぼ均一な濃度の白色である。なお、背景部３２の下面は、黒色やその他の色であってもよく、均一な濃度でなくてもよい。
【００２４】
Ｆセンサ３５は、原稿トレイ３０に積載される原稿２６の有無を検知し、その有無に応じた検知信号を出力する。Ｒセンサ３６は、読取位置Ｐより若干上流側に配置され、原稿２６の有無を検知し、その有無に応じた検知信号を出力する。Ｆセンサ３５及びＲセンサ３６としては、光学式のセンサや、アクチュエータを用いた接触式のセンサを用いることができる。
【００２５】
図１に示す操作部３７は、複数のボタンを備え、ユーザによる各種の指示の入力を受け付ける。表示部３８（通知部の一例）は、ディスプレイやランプ等を備え、各種のメッセージや設定画面等を表示する。
【００２６】
（ＡＤＦ読取処理）
次にＡＤＦ１９によって供給される原稿２６を読み取るＡＤＦ読取処理の動作について説明する。図３及び図４は、ＡＤＦ読取処理のメインルーチンのフローチャートであり、図５は、ＡＤＦ読取処理のサブルーチンである閾値設定処理のフローチャート、図６は、ＡＤＦ読取処理のサブルーチンであるエッジ検出処理のフローチャート、図７は、ＡＤＦ読取処理のサブルーチンであるフラグ設定処理のフローチャートである。
【００２７】
このＡＤＦ読取処理は、ユーザが原稿トレイ３０に原稿２６をセットし、操作部３７から読取開始の指示を入力することにより開始される。ＣＰＵ１２は、図３のＡＤＦ読取処理を開始すると、後述する密度判断に用いられる閾値Ｄｔを設定するための閾値設定処理を実行する（Ｓ１０１）。
【００２８】
ＣＰＵ１２は、図５に示す閾値設定処理を開始すると、読取部１８によって背景部３２の読み取りを行う（Ｓ２０１）。このとき、読み取るライン数は、後述するエッジ検出処理で読み取る検出エリア４０のライン数と同じであり、検出エリア４０と同じ面積の画像を含む読取データが取得される。
【００２９】
続いてＣＰＵ１２は、背景部３２の読み取りによって得られた読取データからエッジ候補点を抽出する（Ｓ２０２）。ここでいうエッジ候補点（特徴点の一例）とは、原稿２６のエッジ２６Ａの候補となる画素の位置を示し、公知の手法によって抽出することができる。例えば、読取データに対し、注目画素とその周囲の画素との画素値の差を強調するフィルタを用いたエッジ強調処理を施し、次に画素値が所定の閾値以上なら「１」の値、閾値未満なら「０」の値とする２値化処理を施すことで、エッジ候補点（「１」の値の画素）が抽出される。
【００３０】
なお、上述のように背景部３２を読み取った読取データには、実際の原稿２６のエッジ２６Ａは含まれないものの、プラテンガラス２７または背景部３２に付着したゴミや汚れ、その他のノイズの影響でエッジ候補点が抽出されることがある。抽出されるエッジ候補点の数は、ゴミや汚れ等の付着状態や、読取部１８の読み取り特性の経年変化（受光素子の劣化等）の影響などにより変化する。
【００３１】
続いてＣＰＵ１２は、読取データにおけるエッジ候補点の密度、即ち単位面積当たりのエッジ候補点の数を算出する（Ｓ２０３）。そして、算出されたエッジ候補点の密度に基づいて閾値Ｄｔを設定する（Ｓ２０４）。この閾値Ｄｔは、後述の密度判断において、背景部３２を読み取った領域のエッジ候補点の密度と、原稿２６を読み取った領域のエッジ候補点の密度とを判別するために両密度の中間の値に設定される。
【００３２】
より詳細には、例えば、閾値Ｄｔは、Ｓ２０３にて算出されたエッジ候補点の密度に所定数を加えた値か、あるいは１以上の所定数（例えば２）を掛け合わせた値とされ、エッジ候補点の密度が大きいほど閾値Ｄｔが大きくなるように設定される。ＣＰＵ１２は、閾値Ｄｔを設定した後、この閾値設定処理を終了する。
【００３３】
ＣＰＵ１２は、図３のＳ１０１にて閾値Ｄｔを設定した後、ＡＤＦ１９により原稿トレイ３０に積載されている原稿２６の搬送を開始する（Ｓ１０２）。そして、密度判断を実行するか否かを定めるための密度判断実行フラグをオフに設定する（Ｓ１０３）。
【００３４】
続いてＣＰＵ１２は、Ｒセンサ３６がオンであるかを判断し（Ｓ１０４）、オンでない場合（Ｓ１０４：ＮＯ）には、オンになるまで同じ処理を繰り返して待機する。そして、最初の原稿２６の先端がＲセンサ３６の位置に到達してＲセンサ３６がオンになった場合（Ｓ１０４：ＹＥＳ）には、ＡＤＦ１９を駆動するステッピングモータに供給されるパルス信号のステップ数のカウントが、Ｒセンサ３６がオンしてから所定の第１ステップ数に至ったかを判断する（Ｓ１０５）。そして、カウントが第１ステップ数に至らない場合（Ｓ１０５：ＮＯ）には、カウントが第１ステップ数に至るまで待機する。
【００３５】
上記第１ステップ数は、読み取り開始のタイミングを決定するものであり、原稿２６の先端が読取位置Ｐに到達するよりも所定長さ（例えば３ｍｍ）分前にカウントが第１ステップ数に至るように値が設定されている。ＣＰＵ１２は、カウントが第１ステップ数に至った場合（Ｓ１０５：ＹＥＳ）には、読取部１８によって読み取りを開始する（Ｓ１０６）。
【００３６】
そして、ＣＰＵ１２は、次に説明する検出エリア４０の読み取りに相当する所定のライン数の読み取りが終了したかを判断し（Ｓ１０７）、終了していない場合（Ｓ１０７：ＮＯ）には終了するまで待機する。そして、検出エリア４０の読み取りが終了した場合（Ｓ１０７：ＹＥＳ）には、原稿２６のエッジ２６Ａを検出するためのエッジ検出処理を実行する（Ｓ１０８）。
【００３７】
ここで、図８及び図９は、それぞれ検出エリア４０と原稿２６との位置関係を説明する図である。図８は検出エリア４０に１枚の原稿２６の先端が含まれている例を示しており、図９は検出エリア４０に原稿２６の先端と前の原稿２６の後端とが含まれている例を示している。両図のように、検出エリア４０は、少なくとも検出目標である原稿２６の先端のエッジ２６Ａを含んでいる。なお、図８及び図９では、各原稿２６が搬送方向である副走査方向に対して傾いた状態を示しているが、通常は、各原稿２６が傾かない状態で読み取られる。
【００３８】
ＣＰＵ１２は、図６に示すエッジ検出処理を開始すると、検出エリア４０の読取データに対し、例えば既述のエッジ強調処理及び２値化処理を施すことにより、エッジ候補点を抽出する（Ｓ３０１）。なお、原稿２６には、表面の凹凸などのために一般的には背景部３２に比べてエッジ候補点が多く抽出される。
【００３９】
続いてＣＰＵ１２は、図８に示すように、検出エリア４０において、主走査方向に互いに間隔を空け、副走査方向に沿った複数の直線をそれぞれ検出ライン４１とし、各検出ライン４１の読取開始側の端部（図８，図９の上端）に位置する画素を始点として読取終了側の端部（図８，図９の下端）側へ向けて、先に抽出されたエッジ候補点を探索する。そして、各検出ライン４１上において最初に発見されたエッジ候補点を直線近似した直線を第１エッジとして検出する（Ｓ３０２）。
【００４０】
既述のように、エッジ候補点は実際のエッジ２６Ａ付近のみならず、原稿２６上や背景部３２の画像からも抽出されるが、大多数のエッジ候補点はほぼ実際の原稿２６のエッジ２６Ａに沿って並ぶため、第１エッジは、概ね原稿２６のエッジ２６Ａに沿った直線になる。なお、検出ライン４１上で他のエッジ候補点から大きく外れた位置にあるエッジ候補点が検出された場合にはノイズとして無視し、さらに別のエッジ候補点を探索してもよい。
【００４１】
続いてＣＰＵ１２は、既述の密度判断実行フラグがオンかを判断する（Ｓ３０３）。密度判断実行フラグがオフに設定されている場合（Ｓ３０３：ＮＯ）には、第１エッジを検出目標である原稿２６の先端のエッジ２６Ａと判断し（Ｓ３０４）、検出結果を記憶してこのエッジ検出処理を終了する。なお、最初の原稿２６の先端を検出する際には、密度判断実行フラグが図３のＳ１０３にてオフに設定されているため、上述のように、密度判断を行わずに、検出された第１エッジが検出目標のエッジ２６Ａであると判断される。
【００４２】
ＣＰＵ１２は、図３のＳ１０８にてエッジ検出処理を終了すると、Ｒセンサ３６がオフかを判断し（Ｓ１０９）、オフでない場合（Ｓ１０９：ＮＯ）には、オフになるまで待機する。原稿２６の後端がＲセンサ３６の位置を通過すると、ＣＰＵ１２は、Ｒセンサ３６がオフであると判断し（Ｓ１０９：ＹＥＳ）、Ｒセンサ３６がオフしてから所定の第２ステップ数がカウントされたかを判断する（図４のＳ１１０）。
【００４３】
上記第２ステップ数は、読み取り終了のタイミングを決定するものであり、原稿２６の後端が読取位置Ｐを通過してから所定長さ（例えば３ｍｍ）分後にカウントが第２ステップ数に至るように値が設定されている。ＣＰＵ１２は、Ｒセンサ３６がオフしてからカウントが第２ステップ数に至らない場合（Ｓ１１０：ＮＯ）には、次の原稿２６がＲセンサ３６の位置に到達することによってＲセンサ３６がオンになったかを判断する（Ｓ１１１）。
【００４４】
そして、ＣＰＵ１２は、Ｒセンサ３６がオンになっていない場合（Ｓ１１１：ＮＯ）には、Ｓ１１０に戻り同様の処理を繰り返す。Ｒセンサ３６がオフになってからカウントが第２ステップ数に至る前に、次の原稿２６の先端がＲセンサ３６の位置に到達してＲセンサ３６がオンになった場合（Ｓ１１１：ＹＥＳ）には、さらにＲセンサ３６がオフしてからカウントが第２ステップ数に至ったかを判断し（Ｓ１１２）、カウントが第２ステップ数に至っていない場合に場合（Ｓ１１２：ＮＯ）には、第２ステップ数に至るまで待機する。
【００４５】
ＣＰＵ１２は、カウントが第２ステップ数に至った場合（Ｓ１１２：ＹＥＳ）には、先の原稿２６の１ページ分の読み取りを終了する（Ｓ１１３）。続いて、密度判断実行フラグの値を設定するためのフラグ設定処理を実行する（Ｓ１１４）。
【００４６】
ＣＰＵ１２は、図７のフラグ設定処理を開始すると、続けて搬送される原稿２６間の距離である原稿間距離を取得する（Ｓ４０１）。原稿間距離は、例えば、Ｒセンサ３６がオフしてからオンになるまでの時間を計測し、その時間と原稿２６の搬送速度とに基づいて算出することができる。また、原稿間距離は、ＡＤＦ１９による送り出しの構造によっては、原稿２６の長さによって決まることがある。そのような構成では、Ｒセンサ３６がオンしてからオフになるまでの時間を計測し、その時間から原稿２６の長さを求め、その長さから原稿間距離を求めることができる。あるいは、ユーザが操作部３７から原稿サイズを入力し、そのサイズに基づいて原稿間距離を求めてもよい。
【００４７】
続いてＣＰＵ１２は、原稿間距離が所定値より小さいかを判断する（Ｓ４０２）。原稿間距離が上記所定値より小さい場合（Ｓ４０２：ＹＥＳ）には、図９に示すように、検出エリア４０内に前の原稿２６の後端のエッジ２６Ｂが含まれる可能性がある。このため、この場合には、密度判断実行フラグをオンに設定し（Ｓ４０３）、このフラグ設定処理を終了する。また、原稿間距離が上記所定値以上である場合（Ｓ４０２：ＮＯ）には、検出エリア４０内に前の原稿２６の後端のエッジ２６Ｂが含まれないため、密度判断実行フラグをオフに設定し（Ｓ４０４）、このフラグ設定処理を終了する。
【００４８】
ＣＰＵ１２は、図４のＳ１１４にてフラグ設定処理を終了した後、図３のＳ１０５に戻る。そして、次の原稿２６の読み取りを開始し（Ｓ１０６）、検出エリア４０のデータを取得した後（Ｓ１０７：ＹＥＳ）、エッジ検出処理を実行する（Ｓ１０８）。
【００４９】
ＣＰＵ１２は、図６のエッジ検出処理において、既述のように、検出エリア４０からエッジ候補点を抽出し（Ｓ３０１）、第１エッジを検出した後（Ｓ３０２）、密度判断実行フラグがオンかを判断する（Ｓ３０３）。ここで、前述のように原稿間距離が所定値より小さく、エッジ判断実行フラグがオンに設定されている場合（Ｓ３０３：ＹＥＳ）には、以下に示すように、エッジ候補点の密度に基づいて検出されたエッジが原稿２６の先端か後端かを判断する密度判断を行う（Ｓ３０５〜Ｓ３１０，Ｓ３０４）。
【００５０】
エッジ判断実行フラグがオンである場合、ＣＰＵ１２は、まず検出エリア４０における読取開始端から第１エッジまでの領域におけるエッジ候補点の密度Ｄｅ１を求める（Ｓ３０５）。
【００５１】
ここで、図８に示すように、検出エリア４０に１枚の原稿２６の先端が含まれている場合、第１エッジとして検出されるのは１本の直線である。この場合、検出エリア４０における読取開始端から第１エッジまでの領域とは、検出ライン４１を使ってエッジ候補点を探索した略台形状の領域（原稿２６が傾いていない場合には長方形状の領域）に相当する。よって、Ｓ３０５ではこの領域の密度Ｄｅ１を算出する。
【００５２】
一方、図９に示すように、検出エリア４０に前の原稿２６の後端が含まれかつ前の原稿２６が傾いている場合には、前の原稿２６の後端が検出エリア４０の読取開始端と交点４４にて交わることがある。このような場合には、検出ライン４１上で検出されるエッジ候補点から２つのエッジが検出される。すなわち、この例では、前の原稿２６の左端から交点４４までの直線（第１エッジ２６Ｂ）と、交点４４から副走査方向に沿った直線と次の原稿２６の先端とが交わる点から次の原稿２６の右端までの直線（第１エッジ２６Ｃ）とが第１エッジとして得られる。このような場合、ＣＰＵ１２は、読取開始端から第１エッジ２６Ｂまでの交点４４を１つの頂点とする三角形の領域を第１領域Ａ１とし、読取開始端から第１エッジ２６Ｃまでの領域であって交点４４を１つの頂点とする略四角形の領域を第２領域Ａ２として２つの領域に分ける。すなわち、ＣＰＵ１２は、第１エッジが２本の直線からなる場合には、それぞれの直線と検出エリア４０の読取開始端との間に形成される領域の密度を算出する。
【００５３】
そして、ＣＰＵ１２は、エッジ候補点の密度Ｄｅ１が、図５のＳ２０４にて設定された閾値Ｄｔより小さいかを判断する（Ｓ３０６）。ここで、既述のように複数の領域に分けた場合は、それぞれの領域におけるエッジ候補点の密度Ｄｅ１と閾値Ｄｔとを比較する。なお、既述のようにエッジ候補点の密度は、背景部３２を読み取った画像と原稿２６を読み取った画像とで異なっており、本実施形態では、原稿２６を読み取った画像の方が大きい。
【００５４】
そのため、ＣＰＵ１２は、エッジ候補点の密度Ｄｅ１が閾値Ｄｔより小さい場合（Ｓ３０６：ＹＥＳ）には、図８のように、第１領域Ａ１が原稿２６でなく背景部３２を読み取った画像であると判断できるため、Ｓ３０４に進み、第１エッジを検出目標とする原稿２６の先端のエッジ２６Ａであると判断して、このエッジ検出処理を終了する。
【００５５】
また、エッジ候補点の密度Ｄｅ１が閾値Ｄｔ以上である場合（Ｓ３０６：ＮＯ）には、第１エッジが前の原稿２６の後端のエッジ２６Ｂであると判断できる。例えば図９に示すように、第１領域Ａ１が原稿２６を読み取った画像であり、第１エッジが前の原稿２６の後端のエッジ２６Ｂであると判断できる。この場合、ＣＰＵ１２は、既述の各検出ライン４１において、第１エッジ２６Ｂよりも読取終了端側でエッジ候補点を探索し、発見されたエッジ候補点を直線近似して第２エッジを検出する（Ｓ３０７）。なお、図９のような場合には、第１エッジ２６Ｂが検出された検出ラインのみで再度エッジ候補点を探索し、そこで発見されたエッジ候補点と、最初に発見されたエッジ候補点（第１エッジ２６Ｃを示す候補点）とを合わせて直線近似して第２エッジを検出する。
【００５６】
続いてＣＰＵ１２は、第１エッジ２６Ｂから第２エッジまでの間の第３領域Ａ３のエッジ候補点の密度Ｄｅ２を算出する（Ｓ３０８）。そして、算出されたエッジ候補点の密度Ｄｅ２が閾値Ｄｔより小さいかを判断し（Ｓ３０９）、閾値Ｄｔより小さい場合（Ｓ３０９：ＹＥＳ）には、第２領域Ａ２が背景部３２を読み取った画像であると判断されるため、第２エッジが検出目標とする原稿２６の先端のエッジ２６Ａであると判断し（Ｓ３１０）、エッジ検出処理を終了する。
【００５７】
また、ＣＰＵ１２は、エッジ候補点の密度Ｄｅ２が閾値Ｄｔ以上である場合（Ｓ３０９：ＮＯ）には、何らかの事情でエッジ検出が正常に行われなかったと判断されるため、図４のＳ１１５にて、ユーザにエッジ検出が失敗した旨を伝えるメッセージなどを表示部３８に表示するエラー通知を行い、その後、ＡＤＦ１９の搬送動作を停止し（Ｓ１１６）、このＡＤＦ読取処理を修了する。
【００５８】
また、ＣＰＵ１２は、図４のＳ１１０にて、Ｒセンサ３６がオフになってから（Ｒセンサ３６が再びオンになる前に）第２ステップ数がカウントされた場合（Ｓ１１０：ＹＥＳ）には、原稿２６の１ページ分の読み取りを終了し（Ｓ１１７）、既述のフラグ設定処理を行う（Ｓ１１８）。
【００５９】
そして、ＣＰＵ１２は、Ｆセンサ３５がオンであるかを判断し（Ｓ１１９）、Ｆセンサ３５がオンである場合（Ｓ１１９：ＹＥＳ）、即ち後続の原稿２６が存在する場合には、Ｒセンサ３６がオンであるかを判断し（Ｓ１２０）、オンでない場合（Ｓ１２０：ＮＯ）にはオンになるまで待機する。後続の原稿２６がＲセンサ３６の位置に達してＲセンサ３６がオンになった場合（Ｓ１２０：ＹＥＳ）には、図３のＳ１０５に戻り、以下同様の処理を繰り返す。
【００６０】
また、ＣＰＵ１２は、Ｆセンサ３５がオンでない場合（Ｓ１１９：ＮＯ）、即ち後続の原稿２６が存在しない場合には、ＡＤＦ１９の搬送動作を停止し（Ｓ１１６）、このＡＤＦ読取処理を終了する。
【００６１】
上記ＡＤＦ読取処理を終えた後、ＣＰＵ１２は、例えば、各原稿２６について検出されたエッジの位置から原稿２６の傾きを求め、読取データにおける原稿２６の傾きを補正する。そして、補正後の読取データを、所定のファイル形式に変換し、ＮＶＲＡＭ１５等に保存する。
【００６２】
（本実施形態の効果）
以上のように本実施形態によれば、複数の検出ライン上でエッジ候補点を検出し、検出されたエッジ候補点の位置から第１エッジを検出する（Ｓ３０２）。そして、第１エッジの読取開始端側の第１領域Ａ１から特徴点として抽出されるエッジ候補点の密度Ｄｅ１を求め（Ｓ３０５）、密度Ｄｅ１を閾値Ｄｔと比較した結果に基づいて（Ｓ３０６）、第１エッジが原稿２６の先端か後端かを判断する（Ｓ３０４）。
【００６３】
また、エッジ候補点を検出する処理が特徴点を抽出する処理を兼ねるため、両者を別々に行う場合に比べて処理を短時間で行うことができる。
【００６４】
また、第１エッジが検出目標のエッジでない場合（Ｓ３０６：ＮＯ）に、第１エッジの下端側の領域において、エッジ候補点を再度検出し、検出されたエッジ候補点の位置から第２のエッジを検出する（Ｓ３０７）。これにより、最初に検出したエッジが検出目標のエッジでない場合に、再度エッジを検出することができる。
【００６５】
また、主走査方向において異なる２つのエッジが検出された場合に、２つのエッジのうち読取開始端側を第１エッジとし、読取終了端側を第２エッジの一部として検出するため、２つのエッジを効率的に検出することができる。
【００６６】
また、第１エッジと第２エッジとの間の第２領域Ａ２から特徴点として抽出されるエッジ候補点の密度Ｄｅ２を求め（Ｓ３０８）、この密度Ｄｅ２を閾値Ｄｔと比較した結果に基づいて（Ｓ３０９）、第２エッジが原稿２６の先端か後端かを判断する（Ｓ３１０）。これにより、第１エッジが検出目標のエッジでない場合に、検出目標のエッジをより確実に検出することができる。
【００６７】
また、読取位置Ｐに原稿２６がない状態で読取部１８によって生成された読取データにおいて特徴点であるエッジ候補点を抽出し（Ｓ２０２）、そのエッジ候補点の密度を求め（Ｓ２０３）、当該密度に応じて閾値Ｄｔを設定する（Ｓ２０４）。これにより、プラテンガラス２７や背景部３２に付着するゴミや汚れの度合、あるいは読取部１８の経年変化の程度などに応じて適切な閾値を設定し、それにより判断の精度を確保することができる。
【００６８】
また、特徴点の密度に基づいて検出されたエッジが原稿２６の先端であるか後端であるかを判断した結果をユーザに通知するため（Ｓ１１５）、例えば、目標のエッジが検出されない場合には、ユーザが読み取りをやり直すなどの対応をすることができる。
【００６９】
また、原稿間距離を取得し（Ｓ４０１）、その原稿間距離が所定の基準より小さい場合（Ｓ４０２：ＹＥＳ）に、検出されたエッジが原稿２６の先端であるか後端であるかの判断を行う（Ｓ３０３：ＹＥＳ）。原稿間距離が小さい場合には、読取データに複数の原稿２６のエッジが含まれる可能性が高まるため、そのような場合に上記判断を行うと効果的である。
【００７０】
＜他の実施形態＞
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような実施形態も本発明の技術的範囲に含まれる。
【００７１】
（１）上記実施形態では、本発明を読取装置に適用したものを示したが、本発明は、例えば、読取機能に加えて印刷機能やＦＡＸ通信機能を備えた複合機にも適用でき、また、端末装置などにも適用できる。
【００７２】
例えば図１０は、既述の読取装置１０と接続される端末装置５０の電気的構成を示すブロック図である。端末装置５０は、汎用的なコンピュータであって、ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、ＨＤＤ５４、操作部５５、表示部５６、通信部５７などを備えている。ＨＤＤ５４には、ＯＳや、スキャナドライバやエッジ検出処理を行うプログラムなどが記憶されている。通信部５７は、ＵＳＢやＬＡＮなどのインターフェースであって読取装置１０と接続されている。
【００７３】
ユーザが読取装置１０に複数の原稿２６をＡＤＦ１９にセットした後、操作部５５で読み取りの実行を選択すると、端末装置５０のＣＰＵ５１は、通信部５７を介して読取装置１０に読み取りの実行指示を送信する。読取装置１０のＣＰＵ１２は、読み取りの実行指示を受信すると、読取部１８により各原稿２６を読み取って得られた読取データを端末装置５０に送信する。端末装置５０のＣＰＵ５１は、読取データを受信すると、図６のエッジ検出処理に概ね相当する処理を実行して各原稿２６の傾きを検出し、読取データを補正する。
【００７４】
（２）上記実施形態では、特徴点としてエッジ候補点を抽出するものを示したが、本発明によれば、エッジ候補点とは別の特徴点を抽出してもよい。例えば、画素値が所定の閾値以上の画素の位置を特徴点として抽出してもよく、その特徴点の密度を比較することにより、エッジが原稿の先端か後端かを判断することができる。
【００７５】
（３）上記ＡＤＦ読取処理は一例に過ぎず、処理内容を適宜変更して実施することができる。例えば、図５の閾値設定処理を省略して閾値を固定値としてもよい。また、図７のフラグ設定処理を省略して、密度判断実行フラグを常にオンとし、密度判断を常に実行するようにしてもよい。
【００７６】
また、第２エッジを検出する処理（Ｓ３０７〜Ｓ３１０）を省略してもよい。例えば、第１領域Ａ１のエッジ候補点の密度Ｄｅ１が閾値Ｄｔ以上の場合（Ｓ３６０：ＮＯ）には、そのとき検出目標である原稿２６のページ番号をＲＡＭ１４に記憶する。そして、ＡＤＦ読取処理の終了時に、ＲＡＭ１４に記憶された未検出のページ番号がある場合には、それらのページ番号を表示部３８に表示させ、ユーザに通知してもよい。
【００７７】
また、図６では、Ｓ３０８，Ｓ３０９の処理を省略して、Ｓ３０７にて第２エッジが検出された場合に、Ｓ３１０にてその第２エッジを検出目標のエッジと判断してもよい。
【００７８】
（４）上記実施形態では、原稿２６の先端のエッジを検出目標として検出するものを示したが、原稿２６の後端を検出目標として検知してもよい。
（５）エッジの検出が成功した場合に、その旨をユーザに通知してもよい。
【００７９】
（６）上記実施形態では、検出部、抽出部、判断部、設定部、取得部をいずれも同じＣＰＵによって実現する例を示したが、本発明によれば、これらは、互いに別のＣＰＵ、若しくはＡＳＩＣやその他の回路によって構成することができる。
【符号の説明】
【００８０】
１０…読取装置、１２…ＣＰＵ、１８…読取部、２６…原稿、エッジ…２６Ａ，２６Ｂ、３８…表示部、４１…検出ライン、５０…端末装置、５１…ＣＰＵ
【図１】
0005516539.tif 000002
【図２】
0005516539.tif 000003
【図３】
0005516539.tif 000004
【図４】
0005516539.tif 000005
【図５】
0005516539.tif 000006
【図６】
0005516539.tif 000007
【図７】
0005516539.tif 000008
【図８】
0005516539.tif 000009
【図９】
0005516539.tif 000010
【図１０】
0005516539.tif 000011