(57)【要約】【課題】原稿のエッジの検知精度を向上させる技術を提供すること。【解決手段】スキャナ１００は，画像を読み取る読取ヘッド２１を備え，原稿を読み取って，画像データ５１を取得する。スキャナ１００は，さらに，取得した画像データ５１から，原稿のエッジの情報であるエッジデータを取得する。スキャナ１００は，さらに，取得したエッジデータに基づいて，原稿の主走査方向の端部が，読取ヘッド２１の長さ方向の読取範囲を超えるか否かを判断する。【選択図】図４
2015211321.tif 000002
【特許請求の範囲】
【請求項１】
画像を読み取る読取部と，
制御部と，
を備え，
前記制御部は，
前記読取部に画像を読み取らせる読取処理と，
前記読取処理にて読み取った画像データから，原稿のエッジの情報であるエッジデータを取得するエッジ取得処理と，
前記エッジ取得処理にて取得された前記エッジデータに基づいて，原稿の主走査方向の端部が前記読取部の読取範囲を超えるか否かを判断する判断処理と，
を実行することを特徴とする読取装置。
【請求項２】
請求項１に記載する読取装置において，
前記制御部は，
前記エッジ取得処理にて取得された前記エッジデータに基づいて，原稿の先端角部を抽出する抽出処理を実行し，
前記判断処理では，原稿の先端角部が抽出されていない場合，あるいは原稿の先端角部が，前記読取部の読取範囲の限界から規定距離までの範囲内にある場合に，前記読取部の読取範囲を超えると判断することを特徴とする読取装置。
【請求項３】
請求項１または請求項２に記載する読取装置において，
前記制御部は，
前記エッジ取得処理にて取得された前記エッジデータに基づいて，原稿の傾きを取得する傾き取得処理を実行し，
前記判断処理では，前記傾き取得処理にて取得された前記傾きに基づいて，原稿の主走査方向の端部が前記読取部の読取範囲を超えるか否かを判断することを特徴とする読取装置。
【請求項４】
請求項１から請求項３のいずれか１つに記載する読取装置において，
前記制御部は，
前記エッジ取得処理では，
副走査方向に所定の頻度で，主走査方向に前記エッジデータを取得し，
前記判断処理にて前記読取部の読取範囲を超えると判断された場合，読取範囲を超える位置である超過位置から所定範囲内の領域である境界領域での前記エッジデータを取得する頻度を，前記境界領域以外の領域での前記頻度と比較して，高くすることを特徴とする読取装置。
【請求項５】
請求項４に記載する読取装置において，
前記制御部は，
前記エッジ取得処理では，前記エッジデータを用いて取得する原稿の特性と状態との少なくとも一方に応じて，異なる頻度で前記エッジデータを取得することを特徴とする読取装置。
【請求項６】
請求項１から請求項５のいずれか１つに記載する読取装置において，
前記制御部は，
前記エッジ取得処理にて取得された前記エッジデータのうち，前記判断処理にて読取範囲を超えないと判断された端部側の側辺である特定側辺のエッジデータを用いて，原稿の特性と状態との少なくとも一方を取得する情報取得処理を実行することを特徴とする読取装置。
【請求項７】
請求項６に記載する読取装置において，
前記制御部は，
前記情報取得処理には，前記判断処理にて否定判断された場合に，原稿の先端側のエッジデータと前記特定側辺のエッジデータとを用いて原稿の傾きを取得し，前記判断処理にて肯定判断された場合に，原稿の先端側のエッジデータを用いて原稿の傾きを取得する処理が含まれることを特徴とする読取装置。
【請求項８】
請求項６または請求項７に記載する読取装置において，
前記制御部は，
前記情報取得処理では，前記判断処理にて否定判断された場合に，前記特定側辺のエッジデータを回転斜行量の取得に用い，前記判断処理にて肯定判断された場合に，前記特定側辺のエッジデータを回転斜行量の取得に用いないことを特徴とする読取装置。
【請求項９】
請求項６から請求項８のいずれか１つに記載する読取装置において，
前記制御部は，
前記情報取得処理では，前記判断処理にて否定判断された場合に，前記特定側辺のエッジデータを原稿の形状の取得に用い，前記判断処理にて肯定判断された場合に，前記特定側辺のエッジデータを原稿の形状の取得に用いないことを特徴とする読取装置。
【請求項１０】
請求項６から請求項９のいずれか１つに記載する読取装置において，
前記制御部は，
前記情報取得処理では，前記判断処理にて否定判断された場合に，前記特定側辺のエッジデータをパンチ穴の位置の取得に用い，前記判断処理にて肯定判断された場合に，前記特定側辺のエッジデータをパンチ穴の位置の取得に用いないことを特徴とする読取装置。
【請求項１１】
情報処理装置に，
原稿の画像データを取得する原稿取得処理と，
前記原稿取得処理にて取得した画像データから，原稿のエッジの情報であるエッジデータを取得するエッジ取得処理と，
前記エッジ取得処理にて取得された前記エッジデータに基づいて，原稿の主走査方向の端部が読取範囲を超えているか否かを判断する判断処理と，
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，原稿の画像を読み取る読取装置およびプログラムに関する。さらに詳細には，読み取った画像のうち，原稿と背景部材との境界となる原稿のエッジを検知する技術に関するものである。
【背景技術】
【０００２】
従来から，原稿の画像を読み取り，読み取った画像のうち，原稿と背景部材との境界となる原稿のエッジを検知する技術が知られている。例えば，特許文献１には，読み取った画像のうち，原稿のエッジを検知する機能を有する画像読取装置であって，当該機能を用いて，読み取った画像から背景部分にある原稿の影を除去する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１６９０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら，前記した従来の技術には，次のような問題があった。すなわち，原稿サイズが大きい場合や原稿が傾いている場合，原稿の端部が読取範囲外となる場合がある。この場合，原稿の途中を原稿のエッジと誤判断する可能性がある。
【０００５】
本発明は，前記した従来の技術が有する問題点を解決するためになされたものである。すなわちその課題とするところは，原稿のエッジの検知精度を向上させる技術を提供することにある。
【課題を解決するための手段】
【０００６】
この課題の解決を目的としてなされた読取装置は，画像を読み取る読取部と，制御部とを備え，前記制御部は，前記読取部に画像を読み取らせる読取処理と，前記読取処理にて読み取った画像データから，原稿のエッジの情報であるエッジデータを取得するエッジ取得処理と，前記エッジ取得処理にて取得された前記エッジデータに基づいて，原稿の主走査方向の端部が前記読取部の読取範囲を超えるか否かを判断する判断処理とを実行することを特徴としている。
【０００７】
本明細書に開示される読取装置は，読み取った画像データから，原稿のエッジの情報であるエッジデータを取得する。そして，取得したエッジデータに基づいて，原稿の主走査方向の端部が読取部の読取範囲を超えるか否かを判断する。
【０００８】
すなわち，本明細書に開示される読取装置は，原稿のエッジの情報であるエッジデータの取得に加え，そのエッジデータに基づいて原稿の主走査方向の端部が読取部の読取範囲を超えるか否かの判断も行っている。そのため，その判断結果を利用することで，エッジデータのみで原稿の端部の位置を判断する場合と比較して，原稿の端部でないエッジの位置を原稿の端部の位置と判断する誤判断の抑制が期待できる。
【０００９】
また，前記制御部は，前記エッジ取得処理にて取得された前記エッジデータに基づいて，原稿の先端角部を抽出する抽出処理を実行し，前記判断処理では，原稿の先端角部が抽出されていない場合，あるいは原稿の先端角部が，前記読取部の読取範囲の限界から規定距離までの範囲内にある場合に，前記読取部の読取範囲を超えると判断するとよい。原稿の先端角部が抽出されていない場合には，原稿の端部が読取範囲外となっている可能性がある。また，原稿の先端角部が読取部の読取範囲の限界から規定距離までの範囲内にある場合にも，取得されたエッジデータから原稿の端部の位置を正確に判断することが困難な場合がある。そのため，読取部の読取範囲を超えると判断する方が好ましい。
【００１０】
また，前記制御部は，前記エッジ取得処理にて取得された前記エッジデータに基づいて，原稿の傾きを取得する傾き取得処理を実行し，前記判断処理では，前記傾き取得処理にて取得された前記傾きに基づいて，原稿の主走査方向の端部が前記読取部の読取範囲を超えるか否かを判断するとよい。原稿の傾きを考慮することで，原稿の副走査方向の途中から読取範囲外となる位置を検出できる。そのため，より正確に読取部の読取範囲を超えるか否かを判断できる。
【００１１】
また，前記制御部は，前記エッジ取得処理では，副走査方向に所定の頻度で，主走査方向に前記エッジデータを取得し，前記判断処理にて前記読取部の読取範囲を超えると判断された場合，読取範囲を超える位置である超過位置から所定範囲内の領域である境界領域での前記エッジデータを取得する頻度を，前記境界領域以外の領域での前記頻度と比較して，高くするとよい。この構成によれば，境界領域でのエッジの精度の高精度化を図ることができる一方で，境界領域以外の領域でのエッジの取得速度の高速化を図ることができる。
【００１２】
また，前記制御部は，前記エッジ取得処理では，前記エッジデータを用いて取得する原稿の特性と状態との少なくとも一方に応じて，異なる頻度で前記エッジデータを取得するとよい。取得する原稿の情報として原稿の特性と状態との少なくとも一方があり，その種類によって要求精度が異なる。そのため，原稿の情報の種類に応じて，高精度化と高速化との均衡を図る方が好ましい。原稿の特性には，例えば，原稿の形状，原稿のサイズ，パンチ穴の位置が該当する。原稿の状態には，例えば，原稿の傾き，回転斜行量が該当する。例えば，原稿の斜行状態は高精度が要求されるが，パンチ穴の位置や原稿サイズの場合は，高精度が要求されない。
【００１３】
また，前記制御部は，前記エッジ取得処理にて取得された前記エッジデータのうち，前記判断処理にて読取範囲を超えないと判断された端部側の側辺である特定側辺のエッジデータを用いて，原稿の特性と状態との少なくとも一方を取得する情報取得処理を実行するとよい。読取範囲を超えないと判断された端部側の側辺のエッジデータを用いて，原稿の特性と状態との少なくとも一方である原稿の情報を取得する，すなわち読取範囲を超えたと判断された端部側の側辺のエッジデータを用いずに，原稿の情報を取得することで，当該原稿の情報の精度の向上が期待できる。
【００１４】
また，前記情報取得処理には，前記判断処理にて否定判断された場合に，原稿の先端側のエッジデータと前記特定側辺のエッジデータとを用いて原稿の傾きを取得し，前記判断処理にて肯定判断された場合に，原稿の先端側のエッジデータを用いて原稿の傾きを取得する処理が含まれるとよい。側辺のエッジデータを用いることができれば，原稿の傾きを高精度に取得できる。
【００１５】
また，前記制御部は，前記情報取得処理では，前記判断処理にて否定判断された場合に，前記特定側辺のエッジデータを回転斜行量の取得に用い，前記判断処理にて肯定判断された場合に，前記特定側辺のエッジデータを回転斜行量の取得に用いないとよい。側辺のエッジデータを用いることができれば，回転斜行量を高精度に取得できる。
【００１６】
また，前記制御部は，前記情報取得処理では，前記判断処理にて否定判断された場合に，前記特定側辺のエッジデータを原稿の形状の取得に用い，前記判断処理にて肯定判断された場合に，前記特定側辺のエッジデータを原稿の形状の取得に用いないとよい。側辺のエッジデータを用いることができれば，原稿の形状を高精度に取得できる。なお，原稿の形状には，原稿の定型サイズの他，長方形以外の形状も含まれる。
【００１７】
また，前記制御部は，前記情報取得処理では，前記判断処理にて否定判断された場合に，前記特定側辺のエッジデータをパンチ穴の位置の取得に用い，前記判断処理にて肯定判断された場合に，前記特定側辺のエッジデータをパンチ穴の位置の取得に用いないとよい。側辺のエッジデータを用いることができれば，パンチ穴の位置を高精度に取得できる。
【００１８】
上記読取装置の機能を実現するためのコンピュータプログラムも，新規で有用である。
【発明の効果】
【００１９】
本発明によれば，原稿のエッジの検知精度を向上させる技術が実現される。
【図面の簡単な説明】
【００２０】
【図１】実施の形態にかかるスキャナの概略構成を示す断面図である。
【図２】スキャナの電気的構成を示すブロック図である。
【図３】原稿の配置を示す説明図である。
【図４】読取処理の手順を示すフローチャートである。
【図５】検出されたエッジを示す説明図である。
【図６】サンプリング位置決定処理の手順を示すフローチャートである。
【図７】傾き角を示す説明図である。
【図８】サンプリング頻度の例を示す説明図である。
【図９】原稿サイズ取得処理の手順を示すフローチャートである。
【図１０】回転斜行取得処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下，本発明にかかる読取装置を具体化した実施の形態について，添付図面を参照しつつ詳細に説明する。本形態は，画像読取機能を備えたスキャナに本発明を適用したものである。
【００２２】
本形態のスキャナ１００は，その断面を図１に示すように，読取ヘッド２１を有し，原稿と読取ヘッド２１とを相対的に移動させつつ，原稿の画像を読み取る。読取ヘッド２１は，対向する箇所に光を照射し，受光量に基づく信号を出力する。スキャナ１００は，読取ヘッド２１の出力信号に基づいて，例えば，１ライン分の画像データを連続して取得する。なお，本形態のスキャナ１００の読取方式は，ＣＩＳ方式でもよいし，ＣＣＤ方式でもよい。
【００２３】
原稿を面として読み取るために，本形態のスキャナ１００は，原稿を搬送する原稿搬送部２２を有している。原稿搬送部２２は，複数の搬送ローラ２６等を含み，図１中に一点鎖線で示す搬送路２５に沿って原稿を搬送する。そして，原稿搬送部２２は，原稿を１枚ずつ所定の速度で搬送し，読取ヘッド２１に対向する箇所を通過させる。そして，スキャナ１００は，原稿搬送部２２にて搬送中の原稿を，読取ヘッド２１にて読み取る。
【００２４】
また，原稿搬送部２２には，読み取り前の原稿が収容される原稿トレイ２８と，読み取り後の原稿が収容される原稿排出トレイ２９とが設けられている。そして，スキャナ１００は，読み取り実行の指示入力を受け付けると，原稿トレイ２８にセットされた原稿の１枚を搬送路２５に引き込んで搬送し，読み取りが終了した原稿を原稿排出トレイ２９に排出する。
【００２５】
本形態のスキャナ１００は，読取ヘッド２１にて，主走査方向の画像データを連続して取得する。スキャナ１００は，主走査方向について，原稿の配置に関わらず，読取ヘッド２１の長さに対応する範囲である読取範囲の画像データを取得する。図１に示すように，原稿の搬送路２５を挟んで読取ヘッド２１に対向する位置には，白板２３が配置されている。そのため，スキャナ１００は，読取ヘッド２１の対向位置に原稿がない場合には，白板２３を読み取る。
【００２６】
そして，本形態のスキャナ１００は，原稿の搬送に伴って，副走査方向に画像データを取得する。つまり，画像データは，主走査方向に連続して取得され，原稿の搬送と読み取りとの進行につれて副走査方向に増えていく。本形態では，読取ヘッド２１が，読取部の一例であり，読取ヘッド２１の長さが，読取範囲の限界の一例である。
【００２７】
続いて，スキャナ１００の電気的構成について説明する。スキャナ１００は，図２に示すように，ＣＰＵ３１と，ＲＯＭ３２と，ＲＡＭ３３と，ＮＶＲＡＭ（不揮発性ＲＡＭ）３４と，ＡＳＩＣ３５とを含むコントローラ３０を備えている。また，スキャナ１００は，読取ヘッド２１と，原稿搬送部２２と，ネットワークインターフェース３７と，ＵＳＢインターフェース３８と，操作パネル４０とを備え，これらがコントローラ３０に電気的に接続されている。
【００２８】
ＲＯＭ３２には，スキャナ１００を制御するための各種制御プログラムや各種設定，初期値等が記憶されている。ＲＡＭ３３は，各種制御プログラムが読み出される作業領域として，あるいは，データを一時的に記憶する記憶領域として利用される。ＣＰＵ３１は，ＲＯＭ３２から読み出した制御プログラムに従って，その処理結果をＲＡＭ３３またはＮＶＲＡＭ３４に記憶させながら，スキャナ１００の各構成要素を制御する。
【００２９】
ＣＰＵ３１は，制御部の一例である。なお，コントローラ３０が制御部であってもよいし，ＡＳＩＣ３５が制御部であってもよい。なお，図２中のコントローラ３０は，ＣＰＵ３１等，スキャナ１００の制御に利用されるハードウェアを纏めた総称であって，実際にスキャナ１００に存在する単一のハードウェアを表すとは限らない。
【００３０】
ネットワークインターフェース３７は，ＬＡＮケーブル等を用いてネットワークを介して接続された装置と通信を行うためのハードウェアである。ＵＳＢインターフェース３８は，ＵＳＢケーブル等を介して接続された装置と通信を行うためのハードウェアである。操作パネル４０は，ディスプレイと入力ボタン等を有し，ユーザへの告知を表示し，ユーザによる入力操作を受け付ける。
【００３１】
続いて，本形態のスキャナ１００における原稿の読み取り動作について説明する。本形態のスキャナ１００は，前述したように，原稿を搬送しつつ読み進める。そして，読み取り終わった部分の画像データを利用して，その範囲内に含まれる画像のエッジを検出し，検出したエッジの位置情報をエッジデータとして取得する。
【００３２】
エッジとは，画像データの中で，画像データのデータ値が所定の閾値を超えて変化する位置である。スキャナ１００は，例えば，画像データ中の各点の輝度値を所定の閾値で二値化し，二値化データの値が０から１へ変化した箇所をエッジであると判断して，エッジの位置をエッジデータとして取得する。
【００３３】
本形態のスキャナ１００にてシート状の原稿を読み取った場合，シートの縁辺と白板２３との境界に影が生じる。そのため，画像データ５１は，図３に示すように，シートの縁辺に対応する部分に，原稿の内容部分より濃い色の影画像５２が含まれることが多い。この図３では，取得した画像データ５１の全体を破線で囲い，その内部に原稿の画像が含まれていることを示している。例えば，長方形の原稿を読み取った画像データ５１には，原稿の四辺による影画像５２が含まれ，前述したエッジ検出動作を実行すると影画像５２によるエッジが検出される。
【００３４】
ここで，原稿の各辺を，図３に示すように定義する。原稿のうち，読取ヘッド２１の位置に最初に到達する箇所を，「上辺」とする。原稿が読取ヘッド２１に対して平行に配置されていれば，上辺によってできる影画像５２は，読み取った画像データ５１では主走査方向に整列して現れる。また，原稿のうち，最後に読取ヘッド２１の位置に到達する箇所を，「下辺」とする。さらに，原稿の読み取り面に向かって，上辺を上，下辺を下に配置した場合に，右側に配置される箇所を「右辺」，左側に配置される箇所を「左辺」とする。なお，左辺と右辺とを区別しない場合には，まとめて「側辺」とする。
【００３５】
本形態のスキャナ１００にて原稿を読み取って取得された画像データ５１について，各点の位置を，図３に示すように，Ｘ−Ｙ平面内の座標を用いて説明する。画像データ５１の生成開始位置を原点として，読取ヘッド２１の長手方向（主走査方向）をＸ軸，読み取りの進行方向（副走査方向）をＹ軸とする。Ｘ軸方向の画像データ５１の幅Ｗｘは，読取ヘッド２１の長さに基づく固定長である。そして，Ｗｘは，画像データ５１のＸ座標の最大値である。また，画像データ５１は，読み取りの進行とともに，１ピクセル分ずつＹ軸方向へ増えていく。
【００３６】
本形態のスキャナ１００は，読取開始の指示入力を受け付けると，原稿の搬送を開始し，その後，所定のタイミングにて読取動作を開始する。読み取りを開始するタイミングは，図３に示すように，原稿の上辺が読取ヘッド２１に対向する位置に到達すると予測されるタイミングより，少し前である。なお，原稿の先端が読取ヘッド２１に対向する位置に到達すると予測されるタイミングは，原稿の搬送開始からの経過時間と原稿の搬送速度とに基づいて決定できる。
【００３７】
スキャナ１００は，読み取りの進行に伴って，生成中の画像データ５１に対して，エッジ検出動作を実行する。まず，スキャナ１００は，読み取り開始から所定のライン数の画像データ５１を取得した後，原稿の上辺によって生じた影画像５２のエッジを検出する。例えば，Ｙ＝０の点から副走査方向に所定の範囲の画像データ５１から，エッジを検出する。そして，取得されたエッジの位置であるエッジデータに基づいて，原稿の上辺の位置を推定する。なお，Ｘ軸方向についての全ての点についてエッジ検出動作を実行すると，処理に時間が掛かりすぎる。そのため，本形態のスキャナ１００では，所定の間隔のＸ位置についてエッジ検出動作を実行する。また，ノイズを上辺と誤判断することを抑制するために，所定の個数以上の点で連続して輝度値が閾値を超えている場合に限って，上辺と判断する。
【００３８】
スキャナ１００は，さらに読み取りが進行したら，原稿の側辺によって生じた影画像５２のエッジを検出する。この場合には，読み取りの進行とともに，原稿の上辺側から副走査方向に順に検出することになる。そして，スキャナ１００は，Ｙ軸方向に所定の頻度でサンプリングして，Ｘ軸方向にエッジデータを取得する。つまり，画像データ５１のうち，Ｙ軸方向に所定の間隔を置いた位置ごとにエッジを検出し，側辺の位置を推定する。例えば，Ｘ＝０の点からＸ軸方向に検出することで，原稿の左辺の位置を推定する。また，Ｘ＝Ｗｘの点からＸ軸方向の逆方向に検出することで，原稿の右辺の位置を推定する。なお，サンプリングの頻度は，左辺と右辺とで同じ頻度でもよいし，異なる頻度でもよい。
【００３９】
スキャナ１００では，読取ヘッド２１の長さ方向の端部近傍はノイズの影響を受けやすく，主走査方向の端部近傍にて，原稿の側辺ではない箇所にエッジを検出してしまうことがある。また，原稿が読取ヘッド２１の長さ方向にはみ出した位置にセットされた場合，原稿の側辺によるエッジが適切に検出できない可能性がある。そのため，これらの場合には，前述したエッジ検出動作によって原稿の側辺の位置を推定すると，誤判断を招くおそれがある。
【００４０】
本形態のスキャナ１００は，検出されたエッジの位置が，画像データ５１のＸ軸方向の両端から予め決めた規定距離までの範囲内にある場合には，適切なエッジの位置ではないと判断する。具体的には，検出されたエッジの位置のＸ座標が０に近いかまたはＷｘに近い場合は，適切なエッジの位置ではないと判断する。この場合，原稿の主走査方向の端部が読取ヘッド２１の読取範囲を超えている可能性を否定できないので，原稿の主走査方向の端部が読取ヘッド２１の読取範囲を超えていると判断する。そして，そのエッジの位置に基づく原稿の側辺の位置の推定を行わない。
【００４１】
さらに，スキャナ１００は，読取範囲を超えていると判断した場合には，後述する原稿の情報を取得する処理にて，検出されたエッジの両端の位置情報を使用しない。なお，規定距離は，画像データ５１のＸ軸方向について，左端側と右端側とで同じでもよいし，異なっていてもよい。
【００４２】
また，スキャナ１００は，原稿の上辺によるエッジの左右の端部の位置である先端角部についても，同様に判断する。先端角部によるエッジの位置を取得できなかった場合や，先端角部が，画像データ５１のＸ軸方向の両端から予め決めた規定距離までの範囲内にある場合には，先端角部の位置を使用しない。例えば，先端角部の位置に基づく原稿の側辺の位置の推定を行わない。つまり，原稿の先端角部と推定されるエッジの位置が，主走査方向の端部近傍であった場合には，原稿の先端角部が読取範囲を超えていると判断する。
【００４３】
つまり，本形態のスキャナ１００は，エッジの検出された位置が，読取範囲のうちＸ軸方向の両端近傍ではない範囲内にエッジが検出されたと判断した場合には，そのエッジの位置情報であるエッジデータを原稿の側辺の位置であると推定して，原稿の位置や形状に係る各種の情報を取得する際に使用する。以下では，読取範囲内にエッジが検出されたと判断した場合を，エッジデータが有効であるとする。一方，読取範囲内にエッジが検出されなかったと判断した場合には，エッジデータが無効であるとし，エッジデータを使用しない。
【００４４】
続いて，本形態のスキャナ１００において，前述した原稿の読み取り動作を行う読取処理について，図４のフローチャートを参照して説明する。読取処理は，スキャナ１００にて，読取開始の指示入力を受け付けたことを契機に，ＣＰＵ３１にて実行される。なお，以下では，画像データ５１内の各点の位置を，前述したＸ−Ｙ平面内の座標を用いて，「（Ｘ座標，Ｙ座標）」と表記する。
【００４５】
本形態のスキャナ１００は，読取処理を開始すると，まず，原稿の搬送を開始する（Ｓ１０１）。そして，原稿の搬送開始から所定の時間が経過したら，スキャナ１００は，読取ヘッド２１による読み取りを開始する（Ｓ１０２）。Ｓ１０２によって，スキャナ１００は，Ｘ軸方向に１ライン分ずつ画像データを取得する。以後は，各ラインの画像データが，Ｙ軸方向に順次追加して取得される。Ｓ１０２の処理は，読取処理の一例である。
【００４６】
さらに，スキャナ１００は，取得した画像データ５１に基づいて，原稿の上辺による影画像５２と推定されるエッジの検出を開始する（Ｓ１０４）。具体的には，Ｘ軸方向にサンプリングした各位置において，Ｙ軸方向に所定の幅の画像データ５１に基づいて，輝度値が閾値を超えた箇所をエッジとして検出し，エッジの位置情報であるエッジデータを取得する。
【００４７】
そして，スキャナ１００は，上辺の一部であると判断できるエッジを検出したか否かを判断する（Ｓ１０５）。上辺を検出していないと判断した場合には（Ｓ１０５：ＮＯ），スキャナ１００は，さらに読み進める。そして，上辺を検出したと判断した場合には，（Ｓ１０５：ＹＥＳ），スキャナ１００は，検出された上辺の位置からさらに，予め決めた所定の距離だけ読み進める（Ｓ１０６）。
【００４８】
そして，スキャナ１００は，読み取り開始からＳ１０６の終了までに読み取った画像データ５１から検出されたエッジの位置に基づき，原稿の上辺全体の位置情報を取得する（Ｓ１０８）。例えば，Ｓ１０４にて上辺と推定された位置からＸ軸方向に連続するエッジを検出して，連続する上辺の位置とする。Ｓ１０８の処理は，エッジ取得処理の一例である。
【００４９】
次に，スキャナ１００は，上辺の角部の位置を取得する（Ｓ１０９）。Ｓ１０８にて検出されたエッジの途切れた位置を原稿の角部と推定して，その位置からＹ軸方向に連続するエッジを検出する。Ｙ軸方向にエッジが連続していれば，上辺によるエッジの途切れる位置は，原稿の先端角部に相当すると判断する。つまり，Ｓ１０９では，スキャナ１００は，原稿の上辺によるエッジの終端の位置から，図５に示すように，原稿の上辺の角部の座標を取得する。例えば，上辺と左辺とによる角部Ｃ（Ｘｃ，Ｙｃ）と，上辺と右辺とによる角部Ｄ（Ｘｄ，Ｙｄ）とを取得する。Ｓ１０９の処理は，抽出処理の一例である
【００５０】
そして，スキャナ１００は，左右両側の角部Ｃ，Ｄの取得に成功したか否かを判断する（Ｓ１１２）。例えば，上辺に終端が検出できなかった場合や，上辺が波打っている等により上辺の両端が適切に検出できなかった場合には，スキャナ１００は，角部Ｃ，Ｄの座標を適切に取得できない。従って，スキャナ１００は，角部Ｃ，Ｄの取得に失敗したと判断する。
【００５１】
さらに，スキャナ１００は，前述したように，検出されたエッジの位置が画像データ５１のＸ軸方向の両端近傍にあった場合には，そのエッジデータは信頼性が低い。つまりそのエッジデータに基づいて，辺の位置を判断することは好ましくない。そのため，そのエッジデータは無効であるとして，スキャナ１００は，辺の位置の推定にそのエッジデータを使用しない。以下では，エッジデータを無効とする範囲を，図５に示すように，左辺側を規定距離Ｗｌとし，右辺側を規定距離Ｗｒとする。ＷｌとＷｒとは，同じ距離でもよいし，異なっていてもよい。
【００５２】
つまり，スキャナ１００は，Ｓ１１２にて，取得された角部ＣのＸ座標Ｘｃが，０から予め決めた規定距離Ｗｌまでの範囲内にある場合，つまり，Ｘｃ＜Ｗｌである場合には，角部Ｃの取得に失敗したと判断する。また，スキャナ１００は，取得された角部ＤのＸ座標Ｘｄが，Ｘ座標の最大値Ｗｘから予め決めた規定距離Ｗｒまでの範囲内である場合，つまり，Ｘｄ＞Ｗｘ−Ｗｒである場合には，角部Ｄの取得に失敗したと判断する。Ｓ１１２の処理は，判断処理の一例である。
【００５３】
そして，スキャナ１００は，左右両側の角部Ｃ，Ｄの取得に成功したと判断した場合には（Ｓ１１２：ＹＥＳ），上辺と左辺と右辺とを使用すると決定する（Ｓ１１３）。つまり，左辺のエッジデータも，右辺のエッジデータも，ともに有効であり，いずれも以後の処理に使用できる。
【００５４】
一方，スキャナ１００は，角部Ｃ，Ｄの少なくとも一方の取得に成功しなかったと判断した場合には（Ｓ１１２：ＮＯ），左辺側の角部Ｃの取得に成功したか否かを判断する（Ｓ１１５）。そして，スキャナ１００は，左辺側の角部Ｃの取得に成功したと判断した場合には（Ｓ１１５：ＹＥＳ），左辺のエッジデータは有効であり，以後の処理にて上辺と左辺とを使用すると決定する（Ｓ１１６）。
【００５５】
また，スキャナ１００は，左辺側の角部Ｃの取得に成功しなかったと判断した場合には（Ｓ１１５：ＮＯ），右辺側の角部Ｄの取得に成功したか否かを判断する（Ｓ１１８）。そして，スキャナ１００は，右辺側の角部Ｄの取得に成功したと判断した場合には（Ｓ１１８：ＹＥＳ），右辺のエッジデータは有効であり，以後の処理にて上辺と右辺とを使用すると決定する（Ｓ１１９）。
【００５６】
スキャナ１００は，右辺側の角部Ｄの取得に成功しなかったと判断した場合には（Ｓ１１８：ＮＯ），上辺のみを使用すると決定する（Ｓ１２１）。つまり，左辺のエッジデータも右辺のエッジデータも無効であり，左辺も右辺も使用できない。この場合には，スキャナ１００は，後述する原稿の情報を取得する処理を実行しない。
【００５７】
そこで，Ｓ１２１の後，スキャナ１００は，原稿の下辺まで読み取りが終了したか否かを判断する（Ｓ１２３）。例えば，原稿の終端が読取ヘッド２１に対向する位置を通り抜け，さらに予め決めた時間だけ搬送したら，原稿の下辺までの読み取りが終了したと判断できる。読み取りが終了していないと判断した場合には（Ｓ１２３：ＮＯ），さらに読み取りを継続する。そして，読み取りが終了したと判断したら（Ｓ１２３：ＹＥＳ），読取処理を終了する。なお，Ｓ１２１の後，上辺の情報のみを利用して可能な処理が有れば，当該処理を実行してもよい。
【００５８】
一方，Ｓ１１３，Ｓ１１６，Ｓ１１９のいずれかにて，左辺と右辺との少なくとも一方は使用すると決定した場合には，スキャナ１００は，まず，サンプリング位置決定処理を実行する（Ｓ１２５）。図６のフローチャートに，サンプリング位置決定処理の手順を示す。
【００５９】
原稿の傾きが大きい場合などでは，例えば，図７に示すように，左右のいずれかの辺によるエッジデータが途中から無効となる可能性がある。サンプリング位置決定処理は，側辺のエッジデータが有効から無効に変化すると予測される位置である超過位置Ｈの座標を取得し，読取位置の副走査方向の位置がその超過位置ＨのＹ座標に近づいたら，それまでよりサンプリング頻度を高くする処理である。なお，この処理では，原稿が長方形であると推定している。
【００６０】
サンプリング位置決定処理では，スキャナ１００は，まず，上辺のＸ軸方向に対する原稿の傾き角θを取得する（Ｓ２０１）。傾き角θは，図７に示すように，角部Ｃと角部Ｄとを結ぶ線分とＸ軸とがなす角としてもよいし，上辺の各エッジデータを直線近似した直線とＸ軸とのなす角としてもよい。Ｓ２０１の処理は，傾き取得処理の一例である。
【００６１】
次に，傾き角θ＞０であれば，超過位置Ｈの座標を取得する。例えば，図７に示すように，Ｙｃ＜Ｙｄであれば，左辺側のエッジデータが無効となる可能性がある。そこで，スキャナ１００は，角部Ｃから上辺に直角な直線を想定し，原稿の左辺と仮定する。さらに，スキャナ１００は，仮定した左辺とＸ＝Ｗｌの直線とが交差すると予測される超過位置Ｈの座標（Ｗｌ，Ｙｈ）を取得する（Ｓ２０３）。
【００６２】
具体的に，超過位置ＨのＹ座標Ｙｈは，Ｓ２０１にて求めた傾き角θを用いて，以下の（式１）のように表すことができる。
ｔａｎθ  ＝  （Ｘｃ−Ｗｌ）  ／  （Ｙｈ−Ｙｃ）
Ｙｈ  ＝  Ｙｃ  ＋  （Ｘｃ−Ｗｌ）／ｔａｎθ  …  （式１）
【００６３】
次に，スキャナ１００は，左辺側のエッジ検出のためのサンプリング頻度を決定する（Ｓ２０５）。スキャナ１００では，前述したように，Ｙ軸方向に所定のサンプリング頻度でエッジ検出を実行する。そして，スキャナ１００は，図８に示すように，超過位置ＨのＹ座標Ｙｈから所定範囲内の領域Ｑでは，領域Ｑ以外の領域よりもサンプリング頻度を高くする。領域Ｑは，境界領域の一例である。
【００６４】
具体的に，スキャナ１００は，検出位置のＹ座標に応じて，図８に示すように，サンプリング頻度Ｐａ，Ｐｂを決定する。所定範囲としては，例えば，１００ピクセルとする。
サンプリング頻度Ｐａ  ＝５０（ピクセル）  ただし，Ｙ  ＜  Ｙｈ−１００
サンプリング頻度Ｐｂ  ＝  ５（ピクセル）  ただし，Ｙ  ≧  Ｙｈ−１００
【００６５】
そして，スキャナ１００は，Ｓ２０５にて決定したサンプリング頻度に従って，エッジ検出を実行する位置を決定し，ＲＡＭ３３に記憶する（Ｓ２０７）。なお，実際に超過する位置が超過位置Ｈより下方となる可能性もあるので，エッジ検出位置は，超過位置Ｈよりも少し下方まで決定しておくとよい。Ｓ２０７の後，サンプリング位置決定処理を終了する。
【００６６】
そして，スキャナ１００は，決定されたエッジ検出位置まで画像データ５１を生成したら，エッジ検出動作を実行する。検出されたエッジの位置のＸ座標がＷｌ以下となったら，スキャナ１００は，その後は左辺側のエッジ検出を実行しない。つまり，エッジデータが無効となったら，左辺についてのエッジ検出動作の実行は中止し，原稿の読み取りのみを継続する。そして，スキャナ１００は，この時点以降は，左辺は使用しない。なお，左辺が無効となっても，右辺のエッジデータを適切に取得できていれば，右辺側のエッジ検出については継続する。
【００６７】
サンプリング位置決定処理によって決定されたように，超過位置Ｈに近い位置では，サンプリング頻度を高くするので，検出されたエッジデータが無効となったことを見逃す可能性は低い。従って，無効のエッジデータを有効であると誤判断する可能性は低い。
【００６８】
これにより，側辺のエッジデータが有効であるか否かを精密に判断できる。つまり，信頼性の低いエッジデータを側辺の位置と推定して使用する可能性は低い。なお，右辺側のエッジデータが途中で無効となる可能性がある場合には，スキャナ１００は，Ｓ２０３にて，角部Ｄを通る右辺を仮定し，仮定した右辺とＸ＝Ｗｒの直線とが交差すると予測される点を超過位置Ｈとする。
【００６９】
また，原稿の搬送方向についての長さが，（Ｙｈ−Ｙｃ）よりも小さい場合には，エッジデータが無効となる前に読み取りが終了する。読取位置のＹ座標が（Ｙｈ−１００）に達しないうちに原稿の終端に達した場合には，スキャナ１００は，結果的にサンプリング頻度を変更しない。
【００７０】
図４の読取処理に戻り，Ｓ１２５のサンプリング位置決定処理が終了したので，次に，原稿情報取得処理を実行する（Ｓ１２７）。原稿情報取得処理とは，有効であると判断されたエッジデータを用いて原稿に係る情報を取得する処理である。取得する原稿の情報は，原稿の特性と状態との少なくとも一方であり，例えば，原稿のサイズ，原稿の傾き，原稿の回転斜行，原稿の形状，原稿に形成されているパンチ穴の位置がある。原稿情報取得処理の詳細については，後述する。Ｓ１２７の処理は，情報取得処理の一例である。
【００７１】
本形態のスキャナ１００は，上辺の位置のみでなく，左辺と右辺との少なくとも一方の位置に関するエッジデータが有効である場合に，種々の原稿情報取得処理のうち，必要に応じて１以上の処理を実行する。左辺と右辺との両方とも無効である場合には，いずれの処理も実行しない。スキャナ１００は，原稿の情報を取得する各種の処理のうち，１つ以上を有していればよい。複数の処理を有している場合には，全て実行してもよいし，ユーザの設定などによって選択された処理のみを実行してもよい。
【００７２】
原稿情報取得処理が終了したら，原稿の読み取りが終了したか否かを判断する（Ｓ１２３）。読み取りが終了していないと判断したら（Ｓ１２３：ＮＯ），さらに読み取りを継続する。そして，読み取りが終了したと判断したら（Ｓ１２３：ＹＥＳ），読取処理を終了する。
【００７３】
続いて，Ｓ１２７にて実行される原稿情報取得処理について説明する。まず，各種の情報を取得する処理の概要を説明する。本形態のスキャナ１００は，原稿のサイズを取得する処理では，長方形以外の形状の原稿でも，原稿の全体を含む最小の長方形のサイズを取得する。スキャナ１００は，例えば，原稿の途中に上辺よりも幅広の箇所がある場合には，その箇所の幅に基づいて，原稿の主走査方向の大きさを取得する。スキャナ１００は，左右両辺のエッジデータがともに有効である場合に，原稿のサイズを取得する処理を実行する。
【００７４】
また，本形態のスキャナ１００は，原稿の傾きを取得する処理では，原稿の辺縁と軸方向とのなす傾き角を取得する。上辺のみによる検出ではなく，左辺と右辺との少なくとも一方の位置を用いることで，より精密に傾き角を取得できる。スキャナ１００は，例えば，取得した傾き角に基づいて，画像データ５１を補正する。スキャナ１００は，左辺と右辺との少なくとも一方のエッジデータが有効である場合に，原稿の傾きを取得する処理を実行する。
【００７５】
また，本形態のスキャナ１００は，原稿の回転斜行を取得する処理では，原稿の左辺または右辺と軸方向とのなす傾き角が，搬送につれて変化していく状態であるか否かを取得する。原稿の傾き角が搬送につれて増加していると，原稿のジャムの原因となる可能性がある。スキャナ１００は，例えば，回転斜行を検出したら，エラーメッセージを表示して，原稿の搬送を停止する。スキャナ１００は，左辺と右辺との少なくとも一方のエッジデータが有効であれば，原稿の回転斜行を取得する処理を実行する。ただし，左右両辺の位置のエッジデータがともに有効であれば，より確実な判断が可能となる。
【００７６】
また，本形態のスキャナ１００は，原稿の形状を取得する処理では，エッジデータとして検出された左辺と右辺との位置を繋いで，原稿の形状として取得する。スキャナ１００は，例えば，原稿の形状に応じて，読み取った画像データ５１を補正する。スキャナ１００は，両辺のエッジデータがともに有効である場合，原稿の形状を取得する処理を実行する。左辺または右辺のいずれか一方のみが有効な場合には，取得できる原稿の形状は，不完全な情報となる。
【００７７】
また，本形態のスキャナ１００は，原稿に形成されているパンチ穴の位置を取得する処理では，各辺から所定の距離範囲の位置に所定の大きさの円状の画像が含まれている場合に，パンチ穴と判断する。スキャナ１００は，例えば，パンチ穴があると判断した場合には，パンチ穴の画像を周辺の地色に変換する処理を実行する。スキャナ１００は，左辺と右辺との少なくとも一方の位置のエッジデータが有効である場合に，有効である側の辺に近いパンチ穴について，パンチ穴の位置を取得する処理を実行する。
【００７８】
なお，側辺のエッジデータを取得するためのエッジ検出動作のサンプリング頻度は，側辺を使用して取得する原稿の情報の種類に応じて，異なる頻度とする。前述した超過位置Ｈの近傍以外でのサンプリング頻度Ｐａを，原稿情報取得処理として実行する処理の種類ごとに予め設定されている頻度とする。例えば，側辺の位置が高精度に要求される情報を取得する場合には，それ以外の場合に比較して高いサンプリング頻度とする。これにより，取得される原稿の情報の精度の向上が期待できる。なお，超過位置Ｈの近傍でのサンプリング頻度Ｐｂは，サンプリング頻度Ｐａに基づいて決定してもよいし，情報の種類にかかわらず予め決めた値に設定してもよい。
【００７９】
以下では，原稿情報取得処理の例として，図９に示す原稿サイズ取得処理と，図１０に示す回転斜行取得処理とについて，それぞれのフローチャートを参照して説明する。これらの処理は，読取処理において，Ｓ１１３，Ｓ１１６，Ｓ１１９のいずれかを実行した後に実行される。つまり，本処理の開始時には，上辺以外に使用できる辺（左辺または右辺または両方）が確定している。
【００８０】
まず，図９のフローチャートを参照して，原稿サイズ取得処理について説明する。この処理は，Ｓ１１３にて左右の両辺の位置を使用できると決定した場合に実行される。原稿サイズ取得処理では，スキャナ１００は，まず，上辺の情報に基づいて原稿の左右の位置の初期値を決定し，左辺位置と右辺位置との初期位置を決定する（Ｓ３０１）。具体的には，スキャナ１００は，左辺位置を角部ＣのＸ座標Ｘｃとし，右辺位置を角部ＤのＸ座標Ｘｄとする。
【００８１】
次に，スキャナ１００は，原稿の読み取り動作とエッジ検出動作とによって取得されたエッジデータが，左辺位置や右辺位置より外側であるか否かを判断する（Ｓ３０３）。具体的には，左側のエッジデータのＸ座標が左辺位置より小さいか，または，右側のエッジデータのＸ座標が右辺位置より大きいかの少なくとも一方を満たしていれば，スキャナ１００は，エッジデータが外側であると判断する。
【００８２】
スキャナ１００は，エッジデータの方が外側であると判断した場合には（Ｓ３０３：ＹＥＳ），外側であると判断したエッジデータのＸ座標を，対応する左辺位置または右辺位置とする（Ｓ３０５）。外側であると判断したエッジデータが片側の辺のみであれば，スキャナ１００は，片側の辺位置のみを変更する。一方，スキャナ１００は，エッジデータの方が外側ではないと判断した場合には（Ｓ３０３：ＮＯ），Ｓ３０５をスキップする。
【００８３】
そして，スキャナ１００は，１ページ分の読み取りが完了したか否かを判断する（Ｓ３０７）。読み取りが完了していなければ（Ｓ３０７：ＮＯ），スキャナ１００は，次に取得されたエッジデータが有効であるか否かを判断する（Ｓ３０９）。前述したように，原稿の搬送につれて，原稿の側辺が読取範囲から逸脱する場合がある。逸脱した後は，検出されたエッジデータは無効となるので，スキャナ１００は，仮にエッジデータが取得されても使用しない。
【００８４】
スキャナ１００は，エッジデータが有効であると判断した場合には（Ｓ３０９：ＹＥＳ），Ｓ３０３に戻って，エッジデータと辺位置とを比較する。そして，スキャナ１００は，エッジデータが有効で読み取りを完了したと判断したら（Ｓ３０７：ＹＥＳ），最終的な左辺位置と右辺位置との間隔を原稿の幅として原稿のサイズを算出し（Ｓ３１１），原稿サイズ取得処理を終了する。
【００８５】
一方，スキャナ１００は，読み取りが完了する前に，エッジデータが無効となったと判断した場合には（Ｓ３０９：ＮＯ），原稿のサイズの取得に失敗したことになる。そこで，スキャナ１００は，原稿サイズは不明であると決定して（Ｓ３１３），原稿サイズ取得処理を終了する。なお，原稿の読み取りが完了していなければ，読み取り動作は継続する。
【００８６】
続いて，図１０のフローチャートを参照して，回転斜行取得処理について説明する。この処理は，左辺と右辺との少なくとも一方の位置を使用できると決定した場合に実行される。回転斜行取得処理では，まず，スキャナ１００は，上辺の情報に基づいて，左辺と右辺との予測位置を取得する（Ｓ４０１）。例えば，前述した傾き角θとサンプリング位置とを利用して，スキャナ１００は，次にエッジ検出が実行される位置でのエッジデータを予測する。
【００８７】
スキャナ１００は，エッジ検出を実行したら，取得されたエッジデータと，Ｓ４０１にて予測した予測位置とを比較する。そして，スキャナ１００は，予測位置とエッジデータとの差分が予め決めた近似範囲内であるか否かを判断する（Ｓ４０３）。予測位置とエッジデータとが近く，差分が近似範囲内であると判断した場合には（Ｓ４０３：ＹＥＳ），スキャナ１００は，１ページ分の読み取りが完了したか否かを判断する（Ｓ４０５）。
【００８８】
スキャナ１００は，読み取りが完了したと判断した場合には（Ｓ４０５：ＹＥＳ），回転斜行は発生せず，読み取りが終わったので，そのまま回転斜行取得処理を終了する。一方，読み取りが完了していなければ（Ｓ４０５：ＮＯ），スキャナ１００は，読み取りを継続するとともに，Ｓ４０１に戻って，次の予測位置を取得する。
【００８９】
一方，予測位置とエッジデータとの差分が近似範囲を超えていると判断した場合には（Ｓ４０３：ＮＯ），回転斜行の可能性がある。そこで，スキャナ１００は，例えば，両辺とものエッジデータが有効であれば，両側の差分が同程度であるか否かを判断する（Ｓ４０７）。
【００９０】
そして，スキャナ１００は，両側の差分が同程度であれば（Ｓ４０７：ＹＥＳ），回転斜行と決定する（Ｓ４０９）。そして，スキャナ１００は，例えば，エラーメッセージを表示して，原稿の搬送と読み取りとを停止する。一方，両側の差分が同程度でなければ（Ｓ４０７：ＮＯ），スキャナ１００は，不定形の原稿であると決定する（Ｓ４１１）。不定形と決定した場合は，読取完了まで読み取りを継続してもよい。Ｓ４０９とＳ４１１の後，回転斜行取得処理を終了する。
【００９１】
なお，片側のみのエッジデータが有効である場合には，Ｓ４０３にてＮＯであれば回転斜行であると判断してもよい。あるいは，さらに次のエッジデータと予測位置とを比較して，差分が増大している場合に回転斜行であると判断してもよい。判断結果に応じて，読み取りを継続するか否かを決定して，回転斜行取得処理を終了する。
【００９２】
以上，詳細に説明したように，本形態のスキャナ１００は，原稿を搬送しつつ原稿の画像を読み取る。そして，エッジ検出動作を実行して，読み取った画像データ５１から，エッジの位置の情報であるエッジデータを取得する。さらに，取得したエッジデータに基づいて，原稿の左辺または右辺が読取ヘッド２１の読取範囲を超えるか否かを判断する。つまり，エッジ検出動作にて検出されたエッジのすべてをそのままで原稿の端部とせず，信頼性の高いエッジデータであるか否かを判断するので，原稿のエッジの検知精度の向上が期待できる。
【００９３】
なお，本実施の形態は単なる例示にすぎず，本発明を何ら限定するものではない。したがって本発明は当然に，その要旨を逸脱しない範囲内で種々の改良，変形が可能である。例えば，スキャナに限らず，複写機，複合機，ＦＡＸ装置等，画像読取機能を備えるものであれば適用可能である。また，例えば，原稿を搬送する代わりに，読取ヘッド２１を移動させて読み取る構成のものにも適用可能である。
【００９４】
また，本発明は，ＰＣ等の情報処理装置にも適用可能である。例えば，ＰＣにて，スキャナ１００から画像データを取得し，取得した画像データに基づいて，エッジ検出動作を行うこともできる。そして，ＰＣにてエッジデータを取得するとともに，そのエッジデータが有効であるか否かを判断してもよい。さらに，判断結果をスキャナ１００に送信してもよいし，ＰＣにて利用してもよい。
【００９５】
また，例えば，左辺側の規定距離Ｗｌと右辺側の規定距離Ｗｒとの少なくとも一方は，無くてもよい。つまり，Ｗｌ＝０でもよいし，Ｗｒ＝０でもよい。
【００９６】
また，先端の角部Ｃ，Ｄの座標に基づいて超過位置Ｈを算出するとしたが，検出されたエッジの位置と読取範囲の限界から規定距離の位置との距離が閾値以下となった場合に，超過位置Ｈに近づいたと判断してもよい。また，超過位置Ｈに近づいたらサンプリング頻度を高くするとしたが，変更しなくてもよい。また，取得する原稿の情報に応じて異なる頻度でサンプリングするとしたが，全て一律の頻度としてもよい。
【００９７】
また，例えば，Ｓ１０５にタイムアウトを設けてもよい。つまり，上辺のエッジデータを取得できなかった場合は，読み取り失敗であり，エラーメッセージを表示して処理を終了するとしてもよい。
【００９８】
また，実施の形態に開示されている処理は，単一のＣＰＵ，複数のＣＰＵ，ＡＳＩＣなどのハードウェア，またはそれらの組み合わせで実行されてもよい。また，実施の形態に開示されている処理は，その処理を実行するためのプログラムを記録した記録媒体，または方法等の種々の態様で実現することができる。
【符号の説明】
【００９９】
２１  読取ヘッド
３１  ＣＰＵ
１００  スキャナ
【図１】
2015211321.tif 000003
【図２】
2015211321.tif 000004
【図３】
2015211321.tif 000005
【図４】
2015211321.tif 000006
【図５】
2015211321.tif 000007
【図６】
2015211321.tif 000008
【図７】
2015211321.tif 000009
【図８】
2015211321.tif 000010
【図９】
2015211321.tif 000011
【図１０】
2015211321.tif 000012