(57)【要約】【課題】スキャン画像における原稿の終端の位置をすみやかに特定することができるスキャナを提供する。【解決手段】原稿の３番目の頂点（Ｃ点）の下方までスキャンが終了すると、スキャナは、スキャン画像において、Ａ，Ｂ点（１，２番目の頂点）を通過する直線ＡＢと、Ｂ，Ｅ点を通過する直線ＢＥと、Ａ，Ｃ点を通過する直線ＡＣと、Ｃ，Ｄ点を通過する直線ＣＤとを算出し、これらの直線の傾きに基づき、１〜３番目の頂点が直角かどうかを判定する。そして、これらの頂点が全て直角である場合には、原稿が矩形であると判定し、直線ＡＢと、ＡＢ間の長さと、Ｃ点の座標とに基づき、４番目の頂点（Ｆ点）の座標（Ｆｘ，Ｆｙ）を算出する。【選択図】図５
2011029997.tif 000002
【特許請求の範囲】
【請求項１】
原稿の画像を順次読み取ることにより、該原稿のスキャンを行い、画像データを生成する読取手段と、
前記読取手段により前記原稿の前記スキャンが開始された後から、前記スキャンが終了するまでの間に、前記読取手段により生成された該原稿の一部についての前記画像データが示す画像において、該原稿の頂点を検出する頂点検出手段と、
前記読取手段により生成された前記画像データが示す画像において、前記原稿の輪郭上の点の位置を検出する第一の位置検出手段と、
前記読取手段により生成された、前記原稿の一部についての前記画像データが示す画像において、前記頂点検出手段により該原稿の３つの頂点が検出されると、該原稿を矩形であるとみなし、該原稿の残りの１つの頂点である４番目の頂点の位置を、前記第一の位置検出手段により検出された該原稿の輪郭上の点の位置に基づき算出する頂点算出処理を実行する算出手段と、
を備えることを特徴とする画像読取装置。
【請求項２】
請求項１に記載の画像読取装置において、
前記画像データが示す画像において、前記読取手段により先に読み取られた画像が存在する側を上流側、後に読み取られた画像が存在する側を下流側とし、前記原稿の頂点のうち、最上流側に位置する頂点を第一頂点、最上流から２番目，３番目に位置する頂点を第二頂点，第三頂点とし、該画像における前記原稿が矩形である場合の、前記第一頂点と前記第二頂点とを結ぶ辺を前辺、該前辺に対向する辺を後辺、残りの辺を側辺とし、
前記第一の位置検出手段は、前記読取手段により、前記原稿の前記後辺の一部を含む画像についての前記画像データが生成され、前記頂点検出手段により前記３つの頂点が検出されると、該画像における前記第二頂点を含む前記側辺上の予め定められた場所に存在する２点の位置と、前記後辺上の予め定められた場所に存在する２点の位置とを検出し、
前記算出手段は、前記頂点算出処理において、前記第一の位置検出手段により検出された前記第二頂点を含む前記側辺上の２点の位置に基づき直線を算出すると共に、前記後辺上の２点の位置に基づき直線を算出し、これらの直線の交点の位置を、前記４番目の頂点の位置として算出すること、
を特徴とする画像読取装置。
【請求項３】
請求項１に記載の画像読取装置において、
前記画像データが示す画像において、前記読取手段により先に読み取られた画像が存在する側を上流側、後に読み取られた画像が存在する側を下流側とし、前記原稿の頂点のうち、最上流側に位置する頂点を第一頂点、最上流から２番目，３番目に位置する頂点を第二頂点，第三頂点とし、
前記第一の位置検出手段は、前記画像データが示す画像において、前記頂点検出手段により検出された前記３つの頂点の位置を検出し、
前記算出手段は、前記頂点算出処理において、前記第一の位置検出手段により特定された前記３つの頂点の位置に基づき、前記第一頂点と、前記第二頂点と前記第三頂点とのうちの一方とを通過する直線の方向と、前記第一頂点と該一方の頂点との間の距離と、前記第二頂点と前記第三頂点とのうちの他方の位置とを算出し、算出した該方向と、該距離と、該位置とに基づき、前記４番目の頂点の位置を算出すること、
を特徴とする画像読取装置。
【請求項４】
請求項１から請求項３のいずれかに記載の画像読取装置において、
前記頂点検出手段により前記画像データが示す画像において前記原稿の頂点が検出されると、該頂点の角度に基づき、該原稿を矩形であるとみなすことができるかどうかを判定する矩形判定手段をさらに備え、
前記算出手段は、前記矩形判定手段により肯定判定がなされた場合に、前記頂点算出処理を実行すること、
を特徴とする画像読取装置。
【請求項５】
請求項１から請求項４のいずれかに記載の画像読取装置において、
原稿載置部に載置された前記原稿を搬送経路に沿って搬送させる搬送手段をさらに備え、
前記読取手段は、前記搬送経路上における読取ポイントに対応する位置に配置されており、該読取ポイントを通過する前記原稿の画像を読み取ることにより、前記原稿に対し前記スキャンを行い、前記画像データを生成すること、
を特徴とする画像読取装置。
【請求項６】
請求項５に記載の画像読取装置において、
前記画像データに基づき、前記スキャンの対象となった前記原稿のサイズを特定する特定手段と、
前記読取手段により生成された、前記原稿の一部についての前記画像データが示す画像において、前記頂点検出手段により該原稿の前記第一頂点と前記第二頂点とが検出されると、該第一頂点の位置と該第二頂点の位置を検出する第二の位置検出手段と、
前記第二の位置検出手段により検出された前記第一頂点の位置と前記第二頂点の位置とに基づき、該第一頂点と該第二頂点との間の距離である頂点間距離を算出する距離算出手段と、
前記距離算出手段により算出された前記原稿についての前記頂点間距離と、該原稿よりも前に搬送された矩形の前記原稿である先の原稿について前記距離算出手段により算出された前記頂点間距離とが一致するかを判定する距離判定手段と、
を備え、
前記算出手段は、前記距離判定手段により、前記読取手段により生成された前記画像データが示す画像における前記原稿についての前記頂点間距離と、前記先の原稿についての前記頂点間距離が一致すると判定された場合には、該画像における前記原稿を矩形とみなし、前記第二の位置検出手段により検出された、該画像における前記第一頂点の位置と、前記第二頂点の位置と、前記特定手段により特定された該先の原稿のサイズとに基づき、前記４番目の頂点の位置を算出する頂点推定処理を、前記頂点算出処理に替えて実行すること、
を特徴とする画像読取装置。
【請求項７】
請求項６に記載の画像読取装置において、
前記頂点算出処理に替えて、前記頂点推定処理を実行する旨の指示をユーザから受け付ける受付手段をさらに備え、
前記算出手段は、前記受付手段を介してユーザから前記指示を受け付けた場合には、前記頂点算出処理に替えて、前記頂点推定処理を実行すること、
を特徴とする画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿に記載された画像を読み取り、画像データを生成する画像読取装置に関する。
【背景技術】
【０００２】
スキャナ等の画像読取装置において、原稿のスキャンを終了するタイミングや、スキャンされる原稿のサイズ等を特定するために、スキャン画像における原稿の領域の終端の位置を検出するということが考えられる。ここで、スキャン画像における原稿の領域の終端の位置を特定する方法としては、特許文献１に記載されている方法が知られていた。
【０００３】
すなわち、特許文献１に記載の画像伝送装置では、原稿読取位置に特定のパターンが設けられており、原稿のスキャンを行うと、原稿の背景画像として上記パターンが読み取られる。そして、スキャンにより生成されたスキャン画像データに対し上記パターンの検出処理が行われ、上記パターンの検出結果に基づき原稿の終端の位置が特定される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２１３４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の画像伝送装置では、原稿全体のスキャンが終了し、原稿全体の画像データが生成された後でないと、原稿の終端の位置を特定することができなかった。従って、原稿の終端の位置を特定するのに時間がかかるという問題があった。
【０００６】
本発明は上記課題に鑑みてなされたものであり、原稿のスキャンが終了し、原稿全体の画像データが生成される前に、スキャン画像における原稿の終端の位置をすみやかに特定することができる画像読取装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するためになされた請求項１に記載の画像読取装置は、原稿の画像を順次読み取ることにより、該原稿のスキャンを行い、画像データを生成する読取手段と、読取手段により原稿のスキャンが開始された後から、スキャンが終了するまでの間に、読取手段により生成された該原稿の一部についての画像データが示す画像において、該原稿の頂点を検出する頂点検出手段と、読取手段により生成された画像データが示す画像において、原稿の輪郭上の点の位置を検出する第一の位置検出手段と、読取手段により生成された、原稿の一部についての画像データが示す画像において、頂点検出手段により該原稿の３つの頂点が検出されると、該原稿を矩形であるとみなし、該原稿の残りの１つの頂点である４番目の頂点の位置を、第一の位置検出手段により検出された該原稿の輪郭上の点の位置に基づき算出する頂点算出処理を実行する算出手段と、を備えることを特徴とする。
【０００８】
こうすることにより、スキャンの対象となる矩形の原稿が走査方向に対して傾いた状態となっている場合には、原稿全体のスキャンが終了する前に、スキャン画像における原稿の終端の位置となる４番目の頂点の位置を予測することができる。これにより、スキャン画像における原稿の終端の位置をすみやかに特定することができる。
【０００９】
そして、原稿の終端の位置が予測できると、例えば、スキャンにより原稿の終端の位置に対応する画像データが生成された際に原稿のスキャンが終了したとみなすことが可能となり、原稿のスキャンが無駄に行われてしまうことを防ぐことが可能となる。また、原稿の終端となる４番目の頂点の位置を予測することにより、原稿のサイズを推定することが可能となる。
【００１０】
尚、具体的には、以下のようにして原稿の終端の位置を予測しても良い。
すなわち、請求項２に記載されているように、画像データが示す画像において、読取手段により先に読み取られた画像が存在する側を上流側、後に読み取られた画像が存在する側を下流側とし、原稿の頂点のうち、最上流側に位置する頂点を第一頂点、最上流から２番目，３番目に位置する頂点を第二頂点，第三頂点とし、該画像における原稿が矩形である場合の、第一頂点と第二頂点とを結ぶ辺を前辺、該前辺に対向する辺を後辺、残りの辺を側辺とし、第一の位置検出手段は、読取手段により、原稿の後辺の一部を含む画像についての画像データが生成され、頂点検出手段により３つの頂点が検出されると、該画像における第二頂点を含む側辺上の予め定められた場所に存在する２点の位置と、後辺上の予め定められた場所に存在する２点の位置とを検出し、算出手段は、頂点算出処理において、第一の位置検出手段により検出された第二頂点を含む側辺上の２点の位置に基づき直線を算出すると共に、後辺上の２点の位置に基づき直線を算出し、これらの直線の交点の位置を、４番目の頂点の位置として算出しても良い。
【００１１】
また、請求項３に記載されているように、画像データが示す画像において、読取手段により先に読み取られた画像が存在する側を上流側、後に読み取られた画像が存在する側を下流側とし、原稿の頂点のうち、最上流側に位置する頂点を第一頂点、最上流から２番目，３番目に位置する頂点を第二頂点，第三頂点とし、第一の位置検出手段は、画像データが示す画像において、頂点検出手段により検出された３つの頂点の位置を検出し、算出手段は、頂点算出処理において、第一の位置検出手段により特定された３つの頂点の位置に基づき、第一頂点と、第二頂点と第三頂点とのうちの一方とを通過する直線の方向と、第一頂点と該一方の頂点との間の距離と、第二頂点と第三頂点とのうちの他方の位置とを算出し、算出した該方向と、該距離と、該位置とに基づき、４番目の頂点の位置を算出しても良い。
【００１２】
また、画像読取装置は、原稿が矩形でない場合には、原稿の終端の位置を精度良く予測することは困難である。
そこで、請求項４に記載の原稿読取装置は、頂点検出手段により画像データが示す画像において原稿の頂点が検出されると、該頂点の角度に基づき、該原稿を矩形であるとみなすことができるかどうかを判定する矩形判定手段をさらに備え、算出手段は、矩形判定手段により肯定判定がなされた場合に、頂点算出処理を実行する。
【００１３】
こうすることにより、原稿が矩形である場合のみ終端の位置を予測することができるため、終端の位置を予測する精度が向上する。
また、原稿を搬送させながらスキャンを行うシートフィード型のスキャナでは、スキャンを行う際に、走査方向に対して原稿が傾いた状態となってしまうことが多い。
【００１４】
そこで、請求項５に記載されているように、画像読取装置は、原稿載置部に載置された原稿を搬送経路に沿って搬送させる搬送手段をさらに備え、読取手段は、搬送経路上における読取ポイントに対応する位置に配置されており、該読取ポイントを通過する原稿の画像を読み取ることにより、原稿に対しスキャンを行い、画像データを生成する。
【００１５】
こうすることにより、シートフィード型のスキャナにて、スキャン画像において原稿の終端の位置を精度良く予測することができる。
また、原稿自動送りにより複数の原稿について連続的にスキャンが行われる場合には、これらの原稿のサイズは同一である場合が多いと考えられる。
【００１６】
そこで、請求項６に記載の画像読取装置は、画像データに基づき、スキャンの対象となった原稿のサイズを特定する特定手段と、読取手段により生成された、原稿の一部についての画像データが示す画像において、頂点検出手段により該原稿の第一頂点と第二頂点とが検出されると、該第一頂点の位置と該第二頂点の位置を検出する第二の位置検出手段と、第二の位置検出手段により検出された第一頂点の位置と第二頂点の位置とに基づき、該第一頂点と該第二頂点との間の距離である頂点間距離を算出する距離算出手段と、距離算出手段により算出された原稿についての頂点間距離と、該原稿よりも前に搬送された矩形の原稿である先の原稿について距離算出手段により算出された頂点間距離とが一致するかを判定する距離判定手段と、を備え、算出手段は、距離判定手段により、読取手段により生成された画像データが示す画像における原稿についての頂点間距離と、先の原稿についての頂点間距離が一致すると判定された場合には、該画像における原稿を矩形とみなし、第二の位置検出手段により検出された、該画像における第一頂点の位置と、第二頂点の位置と、特定手段により特定された該先の原稿のサイズとに基づき、４番目の頂点の位置を算出する頂点推定処理を、頂点算出処理に替えて実行する。
【００１７】
こうすることにより、原稿自動送りにより２番目以降に搬送される原稿については、そのスキャン画像において、より速やかに原稿の終端の位置を予測することができる。
また、原稿自動送りにより複数の原稿について連続的にスキャンが行われる場合であっても、スキャンの対象となる原稿のサイズが全て同一であるとは限らない。そして、サイズが異なる複数の原稿に対し原稿自動送りによるスキャンが行われる場合に上述した頂点推定処理が実行されてしまうと、原稿の終端の位置を精度良く予測することができなくなってしまう。
【００１８】
そこで、請求項７に記載の画像読取装置は、頂点算出処理に替えて、頂点推定処理を実行する旨の指示をユーザから受け付ける受付手段をさらに備え、算出手段は、受付手段を介してユーザから指示を受け付けた場合には、頂点算出処理に替えて、頂点推定処理を実行する。
【００１９】
こうすることにより、サイズの異なる複数の原稿について原稿自動送りにより連続的にスキャンが行われる場合に頂点推定処理が行われてしまうことを防ぐことができ、原稿の終端の位置を予測する精度が向上する。
【図面の簡単な説明】
【００２０】
【図１】スキャナの構成を示すブロック図である。
【図２】終端位置検出処理のフローチャートである。
【図３】終端位置検出処理のフローチャートである。
【図４】スキャン画像上での原稿のエッジのチェックについての説明図である。
【図５】原稿の４番目の頂点の位置の算出についての説明図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態について図面を用いて説明する。尚、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
【００２２】
［構成の説明］
まず、本実施形態における、ＡＤＦ（Auto Document Feeder）を備えるスキャナ１の構成について、図１に記載のブロック図を用いて説明する。スキャナ１は、原稿載置部に載置された複数の原稿を搬送経路に沿って順次搬送して原稿自動送りを行う搬送部１０と、搬送経路上の読取ポイントに設けられたＣＩＳ（Contact Image Sensor）等から構成される画像読取部２０と、画像読取部２０により読取ポイントを通過する原稿の前端から後端にかけてスキャンを行わせ、この原稿のスキャン画像データを順次生成する読取制御部３０と、ユーザからの各種操作を受け付けると共に、各種情報を表示する表示操作部４０と、各種情報を記憶するＲＡＭ５０及びフラッシュメモリ６０と、フラッシュメモリ６０に記憶されているプログラムに基づき各種処理を実行しスキャナ１を統括制御するＣＰＵ７０と、ＬＡＮに接続され、図示しないＰＣ等と通信を行う通信部８０と、を有している。また、これらの構成要素は、バス９０により互いに接続されている。
【００２３】
［動作の説明］
次に、スキャナ１において、原稿載置部に載置された２枚の原稿に対して原稿自動送りによるスキャンを実施する際に行われる終端位置検出処理について、図２，３に記載のフローチャートを用いて説明する。本処理は、搬送部１０により１枚目の原稿が搬送経路上の読取ポイントまで搬送され、読取制御部３０により、この１枚目の原稿についてのスキャン画像データの生成が開始された際に開始され、読取制御部３０によるスキャン画像データの生成と並行して実行される処理である。尚、読取制御部３０により生成されるスキャン画像データが示すスキャン画像において、画像読取部２０によるスキャンにおける主走査方向に対応する方向を横方向、副走査方向（原稿の搬送方向）に対応する方向を縦方向とし、縦方向において、先に読み取られた画像が存在する側を上側、後に読み取られた画像が存在する側を下側とする。
【００２４】
Ｓ１０５では、スキャナ１のＣＰＵ７０は、読取制御部３０により順次生成される１枚目の原稿のスキャン画像データに対しての原稿のエッジ検出を開始する。具体的には、図４の説明図に記載されているように、このスキャン画像において、横方向に並ぶ画素列に対し、上側から順に横方向の両端から並行してチェックを行い、原稿のエッジを検出する。エッジが検出されると、ＣＰＵ７０はＳ１１０に処理を移行する。
【００２５】
Ｓ１１０では、ＣＰＵ７０は、スキャン画像に向かって右端からのチェックにより検出された右エッジの位置と、左端からのチェックにより検出された左エッジの位置が同じであるかどうかを判定する。位置が同じである場合には（Ｓ１１０：Ｙｅｓ）、図４の説明図に記載されているように原稿が傾いているとみなし、ＣＰＵ７０はＳ１１５に処理を移行する。また、位置が同じでない場合には（Ｓ１１０：Ｎｏ）、ＣＰＵ７０はＳ１７５に処理を移行する。
【００２６】
Ｓ１１５では、ＣＰＵ７０は、Ｓ１１０で検出された左右のエッジが重なる位置を１番目の頂点（Ａ点）とし、Ａ点の座標を、横方向をＸ軸方向、縦方向をＹ軸方向とするＸＹ座標系の原点（０，０）として特定する（図５の説明図参照）。そして、Ｓ１２０に処理を移行する。
【００２７】
Ｓ１２０では、ＣＰＵ７０は、Ａ点よりも下側における、それぞれの上記画素列における左右エッジ間の距離の特定を開始し、Ｓ１２５に処理を移行する。
Ｓ１２５では、ＣＰＵ７０は、１枚目の原稿のスキャン開始後、制限時間内にエッジ間距離が一定となったかどうか判定し、肯定判定がなされた場合には（Ｓ１２５：Ｙｅｓ）Ｓ１３０に、否定判定がなされた場合には（Ｓ１２５：Ｎｏ）Ｓ１８０に処理を移行する。尚、上記制限時間とは、傾いた矩形の原稿の前端部分のスキャンに必要と考えられる時間であり、スキャンの解像度や、搬送中の原稿において想定される原稿の傾きの最大値等に基づき設定される時間である。
【００２８】
Ｓ１３０では、ＣＰＵ７０は、エッジ間距離が一定である上記画素列のうち、最も上に位置する画素列を特定する。そして、Ａ点を原点とするＸＹ座標系において、この画素列におけるエッジのうち、Ａ点からより離れた場所に存在するエッジの座標を２番目の頂点（Ｂ点）の座標として特定し、Ｓ１３５に処理を移行する。尚、図５の説明図に記載されているように、Ｂ点の座標を（Ｂｘ，Ｂｙ）と記載する。
【００２９】
Ｓ１３５では、ＣＰＵ７０は、１枚目の原稿のスキャン開始後、制限時間内にエッジ間距離が減少し始めたかどうか判定し、肯定判定がなされた場合には（Ｓ１３５：Ｙｅｓ）Ｓ１４０に、否定判定がなされた場合には（Ｓ１３５：Ｎｏ）Ｓ１８０に処理を移行する。尚、上記制限時間とは、矩形の原稿の前端から後端にかけてのスキャンに必要と考えられる時間であり、スキャンの解像度や、スキャンが可能な最大の原稿サイズ等に基づき設定される時間である。
【００３０】
Ｓ１４０では、ＣＰＵ７０は、エッジ間距離が一定である上記画素列のうち、最も下に位置する画素列を特定する。そして、Ａ点を原点とするＸＹ座標系において、この画素列におけるエッジのうち、Ｂ点についてのチェックとは反対方向のチェックにより検出されたエッジの座標を３番目の頂点（Ｃ点）の座標として特定し、Ｓ１４５に処理を移行する。尚、図５の説明図に記載されているように、Ｃ点の座標を（Ｃｘ，Ｃｙ）と記載する。
【００３１】
Ｓ１４５では、ＣＰＵ７０は、Ｃ点の下側に位置する上記画素列において検出された左右エッジの位置を特定する。このとき、Ａ点を原点とするＸＹ座標系において、Ｃ点と同じ方向（本実施形態の場合は右側）のチェックにより検出されたエッジの座標をＤ点の座標として、Ｂ点と同じ方向（本実施形態の場合は左側）のチェックにより検出されたエッジの座標をＥ点の座標として特定する。そして、ＣＰＵ７０は、Ｓ１５０に処理を移行する。尚、図５の説明図に記載されているように、Ｄ点の座標を（Ｄｘ，Ｄｙ）、Ｅ点の座標を（Ｅｘ，Ｅｙ）と記載する。
【００３２】
Ｓ１５０では、ＣＰＵ７０は、Ａ〜Ｅ点の位置に基づき、Ａ，Ｂ点を通過する直線ＡＢと、Ｂ，Ｅ点を通過する直線ＢＥと、Ａ，Ｃ点を通過する直線ＡＣと、Ｃ，Ｄ点を通過する直線ＣＤとを算出する。具体的には、直線ＡＢは、ｙ＝（Ｂｙ／Ｂｘ）×ｘ，直線ＢＥは、ｙ＝［（Ｂｙ−Ｅｙ）／（Ｂｘ−Ｅｘ）］×ｘ＋Ｂｙ−［（Ｂｙ−Ｅｙ）／（Ｂｘ−Ｅｘ）］×Ｂｘ，直線ＡＣは、ｙ＝（Ｃｙ／Ｃｘ）×ｘ，直線ＣＤは、ｙ＝［（Ｃｙ−Ｄｙ）／（Ｃｘ−Ｄｘ）］×ｘ＋Ｃｙ−［（Ｃｙ−Ｄｙ）／（Ｃｘ−Ｄｘ）］×Ｃｘとして算出される。これらの直線を算出すると、ＣＰＵ７０は、Ｓ１５５に処理を移行する。
【００３３】
Ｓ１５５では、ＣＰＵ７０は、直線ＡＢ，ＢＥ，ＡＣ，ＣＤの傾きに基づき、１〜３番目の頂点の角度が直角であるか判定し、これらの頂点が全て直角である場合には（Ｓ１５５：Ｙｅｓ）、原稿が矩形であると判定してＳ１６０に処理を移行する。これらの頂点が全て直角でない場合（Ｓ１５５：Ｎｏ）、Ｓ１８０に処理を移行する。尚、例えば、これらの頂点のうちの一つ或いは二つを選択し、選択した頂点の角度が直角である場合には原稿を矩形であると判定しても良い。
【００３４】
Ｓ１６０では、ＣＰＵ７０は、ＡＢ間の長さを算出し、Ｓ１６５に処理を移行する。尚、ＡＢ間の長さは、｜ＡＢ｜＝（Ｂｘ＾２＋Ｂｙ＾２）＾（１／２）として算出される。ここで、“Ｂｘ＾２”とはＢｘの２乗を意味し、本実施形態では、“＾”は、累乗を表す演算子として用いられている。
【００３５】
Ｓ１６５では、ＣＰＵ７０は、原稿が矩形である場合の４番目の頂点（Ｆ点）の座標（Ｆｘ，Ｆｙ）を、直線ＣＤと直線ＢＥの交点の座標として算出する。すなわち、直線ＢＥの式ｙ＝［（Ｂｙ−Ｅｙ）／（Ｂｘ−Ｅｘ）］×ｘ＋Ｂｙ−［（Ｂｙ−Ｅｙ）／（Ｂｘ−Ｅｘ）］×Ｂｘと、直線ＣＤの式ｙ＝［（Ｃｙ−Ｄｙ）／（Ｃｘ−Ｄｘ）］×ｘ＋Ｃｙ−［（Ｃｙ−Ｄｙ）／（Ｃｘ−Ｄｘ）］×Ｃｘとの連立方程式の解であるｘ，ｙがそれぞれＦｘとＦｙに相当する。
【００３６】
尚、ＣＰＵ７０は、直線ＡＢと、ＡＢ間の長さと、点Ｃの座標とに基づきＦ点の座標を算出しても良い。すなわち、原稿が矩形である場合、直線ＡＦと平行な直線がＣ点およびＦ点を通ること、直線ＡＢの長さが直線ＡＦの長さと等しくなること、を利用して、Ｆ点を求める。このとき、Ｆ点の座標（Ｆｘ，Ｆｙ）は、Ｆｘ＝Ｃｘ±Ｂｘ，Ｆｙ＝Ｃｙ±Ｂｙとして算出される。ここで、ＦｘおよびＦｙは２つの解が求められるが、本実施形態のように原稿が右上に傾いている場合と、原稿が左上に傾いている場合のそれぞれについて使用する式を使い分ければよい。また、ＣＰＵ７０は、直線ＡＣと、ＡＣ間の長さと、点Ｂの座標とに基づき、同様にしてＦ点の座標を算出しても良い。また、直線ＡＢと直線ＣＦの傾きが等しくなることを利用してＦ点の座標を算出しても良い。Ｆ点を算出すると、ＣＰＵ７０は、Ｓ１７０に処理を移行する。
【００３７】
Ｓ１７０では、ＣＰＵ７０は、Ａ点及びＣ点の座標に基づきＡＣ間の長さを算出し、ＡＢ間、及びＡＣ間の長さを、１枚目の原稿のサイズとして記憶する。そして、１枚目の原稿のスキャンが終了すると、図３のＳ２０５に処理を移行する。
【００３８】
Ｓ１７５では、ＣＰＵ７０は、スキャンの対象となる原稿を斜行していない矩形の原稿とみなし、Ｓ１８５に処理を移行する。また、Ｓ１８０では、ＣＰＵ７０は、スキャンの対象となる原稿を矩形ではない異型の原稿とみなし、Ｓ１８５に処理を移行する。
【００３９】
Ｓ１８５では、Ｓ１０５の処理と同様、１枚目のスキャン画像に対してエッジの検出を続け、４番目の頂点（Ｆ点）の位置を求める。そして、１枚目の原稿のスキャンが終了すると、図３のＳ２０５に処理を移行する。
【００４０】
Ｓ２０５では、ＣＰＵ７０は、読取制御部３０により順次生成される２枚目の原稿のスキャン画像データにおける横方向に並ぶ画素列に対し、１枚目の原稿と同様に原稿のエッジ検出を開始する。エッジが検出されると、ＣＰＵ７０は、Ｓ２１０に処理を移行する。
【００４１】
Ｓ２１０では、ＣＰＵ７０は、右エッジの位置と左エッジの位置が同じであるかどうかを判定する。位置が同じである場合には（Ｓ２１０：Ｙｅｓ）、原稿が傾いているとみなし、ＣＰＵ７０はＳ２１５に処理を移行する。また、位置が同じでない場合には（Ｓ２１０：Ｎｏ）、ＣＰＵ７０はＳ２８５に処理を移行する。
【００４２】
Ｓ２１５では、ＣＰＵ７０は、検出されたエッジの位置を１番目の頂点（Ａ点）とし、Ａ点の座標を、横方向をＸ軸方向、縦方向をＹ軸方向とするＸＹ座標系の原点（０，０）として特定する。そして、Ｓ２２０に処理を移行する。
【００４３】
Ｓ２２０では、ＣＰＵ７０は、Ａ点よりも下側における、それぞれの上記画素列における左右エッジ間の距離の特定を開始し、Ｓ２２５に処理を移行する。
Ｓ２２５では、ＣＰＵ７０は、２枚目の原稿のスキャン開始後、１枚目の原稿のスキャンと同様に制限時間内にエッジ間距離が一定となったかどうか判定し、肯定判定がなされた場合には（Ｓ２２５：Ｙｅｓ）Ｓ２３０に、否定判定がなされた場合には（Ｓ２２５：Ｎｏ）Ｓ２９０に処理を移行する。
【００４４】
Ｓ２３０では、ＣＰＵ７０は、エッジ間距離が一定である上記画素列のうち、最も上に位置する画素列を特定する。そして、１枚目の原稿のスキャンの際と同様に、Ａ点を原点とするＸＹ座標系において、この画素列におけるエッジのうち、Ａ点からより離れた場所に存在するエッジの座標を２番目の頂点（Ｂ点）の座標として特定し、Ｓ２３５に処理を移行する。
【００４５】
Ｓ２３５では、ＣＰＵ７０は、Ａ点とＢ点との間の長さに基づき４番目の頂点の位置を推定するみなし算出モードがＯＮ状態であるか判定する。表示操作部４０を介してユーザから受け付けた操作によりみなし算出モードがＯＮ状態となっている場合には（Ｓ２３５：Ｙｅｓ）、ＣＰＵ７０はＳ２４０に処理を移行する。また、みなし算出モードがＯＦＦ状態である場合には（Ｓ２３５：Ｎｏ）、Ｓ２５５に処理を移行する。
【００４６】
Ｓ２４０では、ＣＰＵ７０は、ＡＢ間の長さを算出し、Ｓ２４５に処理を移行する。尚、ＡＢ間の長さは、｜ＡＢ｜＝（Ｂｘ＾２＋Ｂｙ＾２）＾（１／２）として算出される。
Ｓ２４５では、ＣＰＵ７０は、２枚目の原稿についてのＡＢ間の長さが、１枚目の原稿についてのＡＢ間の長さと等しいかどうかを判定する。長さが等しい場合には（Ｓ２４５：Ｙｅｓ）、ＣＰＵ７０は、Ｓ２５０に処理を移行し、長さが等しくない場合には（Ｓ２４５：Ｎｏ）、Ｓ２５５に処理を移行する。
【００４７】
Ｓ２５０では、ＣＰＵ７０は、Ａ点及びＢ点の座標と１枚目の原稿のサイズに基づき、４番目の頂点（Ｆ点）の座標を推定する。具体的には、Ａ点及びＢ点の座標に基づき直線ＡＢを算出し、Ｂ点を通過して直線ＡＢに直交する直線を算出する。そして、算出した直線上の点であって、Ｂ点の下側に位置し、Ｂ点からの長さが、１枚目の原稿におけるＡＣ間の長さと等しくなる点の座標を、Ｆ点の座標として算出する。Ｆ点の座標を算出した後、２枚目の原稿のスキャンが終了すると、ＣＰＵ７０は、本処理を終了する。
【００４８】
Ｓ２５５では、ＣＰＵ７０は、２枚目の原稿のスキャン開始後、１枚目の原稿のスキャンと同様に制限時間内にエッジ間距離が減少し始めたかどうか判定し、肯定判定がなされた場合には（Ｓ２５５：Ｙｅｓ）Ｓ２６０に、否定判定がなされた場合には（Ｓ２５５：Ｎｏ）Ｓ２９０に処理を移行する。
【００４９】
Ｓ２６０では、ＣＰＵ７０は、エッジ間距離が一定である上記画素列のうち、最も下に位置する画素列を特定する。そして、１枚目の原稿のスキャンの際と同様に、Ａ点を原点とするＸＹ座標系において、この画素列におけるエッジのうち、Ｂ点についてのチェックとは反対方向のチェックにより検出されたエッジの座標を３番目の頂点（Ｃ点）の座標として特定し、Ｓ２６５に処理を移行する。
【００５０】
Ｓ２６５では、ＣＰＵ７０は、Ｃ点の下側に位置する上記画素列において検出された左右エッジの位置を特定する。このとき、１枚目の原稿のスキャンの際と同様に、Ａ点を原点とするＸＹ座標系において、Ｃ点と同じ方向のチェックにより検出されたエッジの座標をＤ点の座標として、Ｂ点と同じ方向のチェックにより検出されたエッジの座標をＥ点の座標として特定する。そして、ＣＰＵ７０は、Ｓ２７０に処理を移行する。
【００５１】
Ｓ２７０では、ＣＰＵ７０は、１枚目の原稿のスキャンの際と同様に、Ａ〜Ｅ点の位置に基づき、Ａ，Ｂ点を通過する直線ＡＢと、Ｂ，Ｅ点を通過する直線ＢＥと、Ａ，Ｃ点を通過する直線ＡＣと、Ｃ，Ｄ点を通過する直線ＣＤとを算出する。そして、これらの直線を算出すると、ＣＰＵ７０は、Ｓ２７５に処理を移行する。
【００５２】
Ｓ２７５では、ＣＰＵ７０は、直線ＡＢ，ＢＥ，ＡＣ，ＣＤの傾きに基づき、１〜３番目の頂点の角度が直角であるか判定し、これらの頂点が全て直角である場合には（Ｓ２７５：Ｙｅｓ）、原稿が矩形であると判定してＳ２８０に処理を移行する。これらの頂点が全て直角でない場合（Ｓ２７５：Ｎｏ）、Ｓ２９０に処理を移行する。
【００５３】
Ｓ２８０では、ＣＰＵ７０は、１枚目の原稿のスキャンの際と同様に、原稿が矩形である場合の４番目の頂点（Ｆ点）の座標（Ｆｘ，Ｆｙ）を算出する。そして、２枚目の原稿のスキャンが終了すると、本処理を終了する。
【００５４】
Ｓ２８５では、ＣＰＵ７０は、スキャンの対象となる原稿を斜行していない矩形の原稿とみなし、Ｓ２９５に処理を移行する。また、Ｓ２９０では、ＣＰＵ７０は、スキャンの対象となる原稿を矩形でない原稿とみなし、Ｓ２９５に処理を移行する。
【００５５】
Ｓ２９５では、Ｓ２０５の処理と同様、２枚目のスキャン画像に対してエッジの検出を続け、４番目の頂点（Ｆ点）の位置を求める。そして、２枚目の原稿のスキャンが終了すると、本処理を終了する。
【００５６】
尚、言うまでも無いことではあるが、３枚以上の原稿に対して原稿自動送りによるスキャンを実施する際にも、同様にして、原稿の終端の位置を算出することができる。このとき、みなし算出モードがＯＮ状態となっている場合には、必ずしも１枚目の原稿のサイズを基に原稿の終端の位置を算出する必要は無く、例えば、直前に搬送された原稿のサイズを基に原稿の終端の位置を算出しても良い。
【００５７】
［効果］
本実施形態のスキャナ１によれば、スキャンの対象となる原稿が矩形であり、なおかつ、この原稿が走査方向に対して傾いている場合には、原稿全体のスキャンが終了する前に、原稿の４番目の頂点の位置、すなわち、原稿の終端の位置を算出することができる。したがって、スキャナ１によれば、スキャン画像における原稿の終端の位置をすみやかに予測することができる。
【００５８】
また、スキャナ１では、１〜３番目の頂点の角度に基づき、原稿が矩形であるかどうか判定する。そして、原稿が矩形である場合に限り、４番目の頂点の位置を算出する。このため、原稿が矩形でない場合に４番目の頂点の算出が行われてしまうことを防ぐことができ、原稿の終端の位置を算出する精度を向上させることができる。
【００５９】
また、スキャナ１では、１番目に搬送される原稿と２番目に搬送される原稿の、１番目の頂点（Ａ点）の２番目の頂点（Ｂ点）の間の長さが等しい場合には、直線ＡＢと１番目の原稿のサイズとに基づき、２番目の原稿における４番目の頂点の算出が行われる。このため、２番目の原稿については、より速やかに原稿の終端の位置を予測できる。
【００６０】
［他の実施形態］
（１）本実施形態におけるスキャナ１は、原稿を搬送しながらスキャンを行うシートフィード型として構成されている。しかし、フラットベット型のスキャナに対して本発明を適用した場合にも、本実施形態と同様、原稿の終端の位置を速やかに予測できる。
【００６１】
（２）本実施形態では、原稿の頂点であるＡ〜Ｃ点等の座標に基づき直線ＡＢ，ＢＥ，ＡＣ，ＣＤを算出しているが、頂点の座標に限らず、原稿の前端或いは側端上のエッジの座標に基づき、直線ＡＢ等を算出しても良い。
【００６２】
［特許請求の範囲との対応］
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。スキャナ１が画像読取装置に、画像読取部２０及び読取制御部３０が読取手段に、搬送部１０が搬送手段に、表示操作部４０が受付手段に相当する。また、後端位置検出処理におけるＳ１０５〜Ｓ１４０、及び、Ｓ２０５〜Ｓ２３０，Ｓ２５５，Ｓ２６０が、頂点検出手段に相当する。また、Ｓ１１５，Ｓ１３０，Ｓ１４０、及び、Ｓ２１５，Ｓ２３０，Ｓ２６０が、第一の位置検出手段に相当する。また、Ｓ１１５，Ｓ１３０、及び、Ｓ２１５，Ｓ２３０が、第二の位置検出手段に相当する。また、Ｓ１６５，Ｓ２５０，Ｓ２８０が算出手段に相当し、Ｓ１６５，Ｓ２８０が頂点算出処理に、Ｓ２５０が頂点推定処理に相当する。また、Ｓ１５５，Ｓ２７５が矩形判定手段に、Ｓ１７０が特定手段に、Ｓ２４５が距離判定手段に、Ｓ１６０，Ｓ２４０が距離算出手段に相当する。また、ＡＢ間の長さが頂点間距離に相当し、１〜３番目の頂点が、それぞれ、第一〜三頂点に相当する。
【符号の説明】
【００６３】
１…スキャナ、１０…搬送部、２０…画像読取部、３０…読取制御部、４０…表示操作部、５０…ＲＡＭ、６０…フラッシュメモリ、７０…ＣＰＵ、８０…通信部、９０…バス。
【図１】
2011029997.tif 000003
【図２】
2011029997.tif 000004
【図３】
2011029997.tif 000005
【図４】
2011029997.tif 000006
【図５】
2011029997.tif 000007