(57)【特許請求の範囲】
【請求項１】
原稿の画像を読み取る読取部と，
制御部と，
を備え，
前記制御部は，
前記読取部の読取結果から原稿の先端エッジを検出する先端検出処理と，
前記読取部の読取結果から原稿の後端エッジを検出する後端検出処理と，
前記読取部の読取結果から原稿のエッジを用いて画像を補正する補正処理と，
前記先端検出処理の検出結果と前記後端検出処理の検出結果とに基づいて，先端エッジを用いて前記補正処理を実行するか，後端エッジを用いて前記補正処理を実行するか，前記補正処理を実行しないか，を決定する決定処理と，
を実行することを特徴とする画像読取装置。
【請求項２】
請求項１に記載する画像読取装置において，
前記制御部は，
前記決定処理では，先端エッジと後端エッジとのうち，一方のエッジに直線性が無く，他方のエッジに直線性が有る場合に，他方のエッジを用いて前記補正処理を実行すると決定することを特徴とする画像読取装置。
【請求項３】
請求項１または請求項２に記載する画像読取装置において，
前記制御部は，
前記決定処理では，先端エッジと後端エッジとのうち，一方のエッジが検出できず，他方のエッジが検出できた場合に，他方のエッジを用いて前記補正処理を実行すると決定することを特徴とする画像読取装置。
【請求項４】
請求項１から請求項３のいずれか１つに記載する画像読取装置において，
前記制御部は，
先端エッジと後端エッジとのうち一方のエッジの検出に失敗した場合，検出に失敗した方のエッジの側の端部の画像を補修する補修処理を実行することを特徴とする画像読取装置。
【請求項５】
請求項４に記載する画像読取装置において，
前記制御部は，
前記補修処理では，エッジの検出に失敗した要因に応じて，画像の補修範囲を決定する第１範囲決定処理と，
前記第１範囲決定処理にて決定された範囲の画像を原稿の地色に変更する第１変更処理と，
を実行することを特徴とする画像読取装置。
【請求項６】
請求項１から請求項５のいずれか１つに記載する画像読取装置において，
前記制御部は，
前記決定処理では，先端エッジと後端エッジとの，エッジの長さの差が所定値よりも大きい場合，先端エッジと後端エッジとのうち，エッジの長さが長い方のエッジを用いて前記補正処理を実行すると決定することを特徴とする画像読取装置。
【請求項７】
請求項６に記載する画像読取装置において，
前記制御部は，
前記決定処理では，先端エッジと後端エッジとの，エッジの長さの差が所定値よりも大きい場合であって，さらにエッジの傾きの差が閾値よりも小さい場合に，先端エッジと後端エッジとのうち，エッジの長さが長い方のエッジを用いて前記補正処理を実行すると決定することを特徴とする画像読取装置。
【請求項８】
請求項６または請求項７に記載する画像読取装置において，
前記制御部は，
先端エッジと後端エッジとの，エッジの長さの差が所定値よりも大きい場合，先端エッジと後端エッジとのうち，エッジの長さが短い方のエッジの端部に画像の補修範囲を決定する第２範囲決定処理と，
前記第２範囲決定処理にて決定された範囲の画像を原稿の地色に変更する第２変更処理と，
を実行することを特徴とする画像読取装置。
【請求項９】
請求項１から請求項８のいずれか１つに記載する画像読取装置において，
前記制御部は，
前記補正処理では，前記決定処理にて前記補正処理に用いると決定されたエッジを用いて，前記読取部の読取結果から原稿の範囲を抽出するトリミングを行うことを特徴とする画像読取装置。
【請求項１０】
請求項１から請求項９のいずれか１つに記載する画像読取装置において，
前記制御部は，
前記補正処理では，前記決定処理にて前記補正処理に用いると決定されたエッジを用いて，前記読取部の読取結果から原稿の傾きを補正することを特徴とする画像読取装置。
【請求項１１】
請求項１から請求項１０のいずれか１つに記載する画像読取装置において，
前記制御部は，
前記決定処理では，先端エッジと後端エッジとの両方のエッジの検出に失敗した場合，前記補正処理を実行しないと決定し，
前記決定処理にて前記補正処理を実行しないと決定した場合，前記読取部の読取結果をそのまま出力することを特徴とする画像読取装置。
【請求項１２】
情報処理装置に，
原稿の読取画像を取得する取得処理と，
前記取得処理にて取得された前記読取画像から原稿の先端エッジを検出する先端検出処理と，
前記取得処理にて取得された前記読取画像から原稿の後端エッジを検出する後端検出処理と，
前記取得処理にて取得された前記読取画像から原稿のエッジを用いて画像を補正する補正処理と，
前記先端検出処理の検出結果と前記後端検出処理の検出結果とに基づいて，先端エッジを用いて前記補正処理を実行するか，後端エッジを用いて前記補正処理を実行するか，前記補正処理を実行しないか，を決定する決定処理と，
を実行させることを特徴とするプログラム。
【請求項１３】
原稿の画像を読み取った読取画像から，画像データの補正を行う読取画像の補正方法であって，
原稿の読取画像を取得する取得ステップと，
前記取得ステップにて取得された読取画像から原稿の先端エッジを検出する先端検出ステップと，
前記取得ステップにて取得された読取画像から原稿の後端エッジを検出する後端検出ステップと，
前記取得ステップにて取得された読取画像から原稿のエッジを用いて画像を補正する補正ステップと，
前記先端検出ステップでの検出結果と前記後端検出ステップでの検出結果とに基づいて，先端エッジを用いて前記補正ステップを実行するか，後端エッジを用いて前記補正ステップを実行するか，前記補正ステップを実行しないか，を決定する決定ステップと，
を含むことを特徴とする読取画像の補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，原稿の画像を読み取る画像読取装置，プログラム，および読取画像の補正方法に関する。さらに詳細には，原稿の画像を読み取った読取画像から，画像データの補正を行う技術に関するものである。
【背景技術】
【０００２】
従来から，原稿の画像を読み取る読取装置では，読取画像から原稿のエッジを判断し，傾き補正やトリミング等の画像データの補正を行う技術が知られている。例えば，特許文献１には，読取画像から原稿の先端エッジを検索し，検索された先端エッジに基づいて原稿の傾きを検出する構成が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１１５６１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら，前記した従来の技術には，次のような問題があった。すなわち，原稿の先端には破損や耳折れ（ドッグイヤー）が生じている場合がある。この場合，原稿の先端エッジを高精度に検索できないことから，画像データの補正が実行できない，あるいは補正を実行したとしても精度が低いという問題がある。
【０００５】
本発明は，前記した従来の技術が有する問題点を解決するためになされたものである。すなわちその課題とするところは，原稿の画像を読み取った読取画像から，画像データの補正を行う際の，補正の精度の低下を抑制する技術を提供することにある。
【課題を解決するための手段】
【０００６】
この課題の解決を目的としてなされた読取装置は，原稿の画像を読み取る読取部と，制御部とを備え，前記制御部は，前記読取部の読取結果から原稿の先端エッジを検出する先端検出処理と，前記読取部の読取結果から原稿の後端エッジを検出する後端検出処理と，前記読取部の読取結果から原稿のエッジを用いて画像を補正する補正処理と，前記先端検出処理の検出結果と前記後端検出処理の検出結果とに基づいて，前記補正処理に用いるエッジを，先端エッジとするか，後端エッジとするか，を決定する決定処理とを実行することを特徴としている。
【０００７】
本明細書に開示される読取装置は，原稿の画像を読み取り，その読取結果から，原稿の先端エッジと原稿の後端エッジとを検出する。さらに，検出した原稿のエッジを用いて，読取結果の画像を補正する補正処理を実行する。そして，原稿の先端エッジの検出結果と，原稿の後端エッジの検出結果とに基づいて，補正処理に用いるエッジを，先端エッジとするか後端エッジとするかを決定する。
【０００８】
すなわち，本明細書に開示される読取装置によれば，読取結果の画像から，先端エッジと後端エッジとの両方を検出し，それらの検出結果に基づいていずれのエッジを用いるかを決定する。これにより，仮に一方のエッジに破損や耳折れが生じていた場合には，他方のエッジを用いた補正処理の実行が期待できる。その結果として，補正の精度の低下が抑制される。
【０００９】
また，前記制御部は，前記決定処理では，先端エッジと後端エッジとのうち，一方のエッジに直線性が無く，他方のエッジに直線性が有る場合に，他方のエッジを前記補正処理に用いるエッジに決定するとよい。直線性が無いエッジを用いると補正の精度が著しく低下する。そのため，直線性が有るエッジを補正処理に用いることで，補正の精度の低下が抑制できる。
【００１０】
また，前記制御部は，前記決定処理では，先端エッジと後端エッジとのうち，一方のエッジが検出できず，他方のエッジが検出できた場合に，他方のエッジを前記補正処理に用いるエッジに決定するとよい。一方のエッジが検出できなかったとしても，他方のエッジが検出できたのであれば，当該他方のエッジを用いて補正可能である。そのため，補正を成功させる可能性が高まり，結果として補正の精度の低下が抑制できる。
【００１１】
また，前記制御部は，先端エッジと後端エッジとのうち一方のエッジの検出に失敗した場合，検出に失敗した方のエッジの側の端部の画像を補修する補修処理を実行するとよい。画像のうち，エッジの検出に失敗した側の端部には，エッジ近傍の画像に補修が必要な箇所がある可能性が高い。一方，エッジの検出に成功した側は画像の補修が不要である可能性が高い。検出に失敗した方のエッジの側の端部の画像を補修することで，より好適な画像の出力が期待できる。
【００１２】
また，前記制御部は，前記補修処理では，エッジの検出に失敗した要因に応じて画像の補修範囲を決定する第１範囲決定処理と，前記第１範囲決定処理にて決定された範囲の画像を原稿の地色に変更する第１変更処理とを実行するとよい。エッジの検出に失敗した要因によって，画像の幅方向について，補修が必要な範囲を推測できる。そのため，失敗の要因に応じて決定される範囲の画像を原稿の地色に変更することで，より好適な画像の出力が期待できる。
【００１３】
また，前記制御部は，前記決定処理では，先端エッジと後端エッジとの，エッジの長さの差が所定値よりも大きい場合，先端エッジと後端エッジとのうち，エッジの長さが長い方のエッジを前記補正処理に用いるエッジに決定するとよい。エッジの長さの差が大きい場合，一方のエッジが読取範囲からはみ出している可能性が高い。そのため，エッジの長さが長い方のエッジを補正処理に用いることで，補正の精度の低下が抑制できる。
【００１４】
また，前記制御部は，前記決定処理では，先端エッジと後端エッジとの，エッジの長さの差が所定値よりも大きい場合であって，さらにエッジの傾きの差が閾値よりも小さい場合に，先端エッジと後端エッジとのうち，エッジの長さが長い方のエッジを前記補正処理に用いるエッジに決定するとよい。エッジの長さの差が大きい場合であっても，エッジの傾きの差が大きい場合には，不定型サイズの原稿の可能性や，回転斜行等の搬送エラーが生じている可能性もある。そのため，エッジの傾き差が小さい場合に，エッジの長さが長い方のエッジを補正処理に用いる方が好ましい。なお，エッジの傾きの差が大きい場合には，例えば，エッジの検出エラーとして補正処理を実行しなくてもよいし，ユーザに補正処理の実行有無を問い合わせてもよいし，別の補正処理を実行してもよい。
【００１５】
また，前記制御部は，先端エッジと後端エッジとの，エッジの長さの差が所定値よりも大きい場合，先端エッジと後端エッジとのうち，エッジの長さが短い方のエッジの端部に画像の補修範囲を決定する第２範囲決定処理と，前記第２範囲決定処理にて決定された範囲の画像を原稿の地色に変更する第２変更処理とを実行するとよい。エッジの長さの差が大きい場合，長さが短い側のエッジの端部が読取範囲からはみ出していると推測できる。そのため，エッジの長さが短い方の端部を補修範囲として，その範囲の画像を原稿の地色に変更することで，より好適な画像の出力が期待できる。
【００１６】
また，前記制御部は，前記補正処理では，前記決定処理にて前記補正処理に用いると決定されたエッジを用いて，前記読取部の読取結果から原稿の範囲を抽出するトリミングを行うとよい。決定処理にて決定されたエッジを用いることで，高精度なトリミングが期待できる。
【００１７】
また，前記制御部は，前記補正処理では，前記決定処理にて前記補正処理に用いると決定されたエッジを用いて，前記読取部の読取結果から原稿の傾きを補正するとよい。決定処理にて決定されたエッジを用いることで，高精度な傾き補正が期待できる。
【００１８】
上記画像読取装置の機能を実現するための補正方法，コンピュータプログラム，および当該コンピュータプログラムを格納するコンピュータ読取可能な記憶媒体も，新規で有用である。補正方法の各ステップは，画像読取装置，情報処理装置，サーバ等の外部装置，のいずれによって行われてもよい。
【発明の効果】
【００１９】
本発明によれば，原稿の画像を読み取った読取画像から，画像データの補正を行う際の，補正の精度の低下を抑制する技術が実現される。
【図面の簡単な説明】
【００２０】
【図１】実施の形態にかかるスキャナの概略構成を示す断面図である。
【図２】スキャナの電気的構成を示すブロック図である。
【図３】画像データの例を示す説明図である。
【図４】先端画像の例を示す説明図である。
【図５】先端エッジの検出に失敗する先端画像の例を示す説明図である。
【図６】先端エッジの検出に失敗する先端画像の例を示す説明図である。
【図７】先端エッジの検出に失敗する先端画像の例を示す説明図である。
【図８】先端画像の例を示す説明図である。
【図９】原稿の角部がはみ出した先端画像の例を示す説明図である。
【図１０】読取出力処理の手順を示すフローチャートである。
【図１１】出力データ生成処理の手順を示すフローチャートである。
【図１２】補正前の画像データの例を示す説明図である。
【図１３】補正データの例を示す説明図である。
【図１４】補正データの例を示す説明図である。
【図１５】補正データの例を示す説明図である。
【図１６】補正データの例を示す説明図である。
【発明を実施するための形態】
【００２１】
以下，本発明にかかる読取装置を具体化した実施の形態について，添付図面を参照しつつ詳細に説明する。本形態は，画像読取機能を備えたスキャナに本発明を適用したものである。
【００２２】
本形態のスキャナ１００は，その断面の概略を図１に示すように，読取ヘッド２１と原稿を搬送するための搬送部２２とを有し，搬送部２２にて搬送される原稿の画像を，読取ヘッド２１にて読み取る。読取ヘッド２１は，対向する箇所に光を照射し，受光量に基づく信号を出力する。そして，スキャナ１００は，読取ヘッド２１の出力信号に基づいて，画像データを取得する。本形態のスキャナ１００の読取方式は，ＣＩＳ方式でもよいし，ＣＣＤ方式でもよい。読取ヘッド２１は，読取部の一例である。
【００２３】
スキャナ１００は，搬送部２２にて，図１中に一点鎖線で示す搬送経路２３に沿って，図中の右から左向きに原稿を搬送させる。さらに，スキャナ１００は，原稿の搬送経路２３を挟んで読取ヘッド２１に対向する箇所に，原稿押さえ２４を有している。スキャナ１００は，原稿が読取位置に無い状態で画像を読み取ると，原稿押さえ２４を読み取る。なお，原稿押さえ２４のうち，読取ヘッド２１に対向する面は，白色またはグレー色の単色の平面である。
【００２４】
スキャナ１００は，例えば，図１に示すように，原稿が載置される原稿トレイ２５と，それぞれの位置での原稿の有無に応じた信号を出力するセンサ２７とセンサ２８とを有している。また，スキャナ１００の搬送部２２は，原稿の搬送方向について上流側から順に，給紙ローラ４１と，読取ヘッド２１より上流側に位置する搬送ローラ対４２と，読取ヘッド２１より下流側に位置する搬送ローラ対４３とを有している。さらに，スキャナ１００は，給紙ローラ４１に対向する位置に分離パッド４４を備えている。
【００２５】
給紙ローラ４１は，分離パッド４４との協働により，原稿トレイ２５に載置された複数枚の原稿のうちの１枚を搬送経路２３へ搬送する。各搬送ローラ対４２，４３はそれぞれ，駆動ローラとその駆動ローラに対向して設けられる従動ローラとを有し，原稿を読取ヘッド２１に対向させつつ搬送する。センサ２７は，原稿トレイ２５に載置された原稿の有無に応じた信号を出力する。センサ２８は，原稿の搬送方向について，搬送ローラ対４２より下流側で読取ヘッド２１より上流側の位置での原稿の有無に応じた信号を出力する。
【００２６】
なお，スキャナ１００では，図１中で紙面に直交する方向であって，原稿の搬送方向に直交する方向である幅方向について，読取範囲は，読取ヘッド２１の構成によって予め決まっている。つまり，スキャナ１００は，原稿の大きさにかかわらず，幅方向に所定の範囲を読み取る。一方，スキャナ１００は，原稿の搬送方向について，センサ２７とセンサ２８との少なくとも一方の出力信号に基づいて，読取開始タイミングと読取終了タイミングとを決定する。なお，スキャナ１００では，センサ２７とセンサ２８とは，幅方向についての各１箇所における原稿の有無に応じた信号を出力する。センサ２７とセンサ２８との幅方向における検知箇所は，例えば，中央位置であり，それぞれ異なる位置であってもよい。
【００２７】
続いて，スキャナ１００の電気的構成について説明する。スキャナ１００は，図２に示すように，ＣＰＵ３１と，ＲＯＭ３２と，ＲＡＭ３３と，ＮＶＲＡＭ（不揮発性ＲＡＭ）３４とを含むコントローラ３０を備えている。また，スキャナ１００は，読取ヘッド２１と，搬送部２２と，ネットワークＩＦ３７と，ＵＳＢＩＦ３８と，操作パネル４０とを備え，これらがコントローラ３０に電気的に接続されている。
【００２８】
ＲＯＭ３２には，スキャナ１００を制御するための各種制御プログラムや各種設定，初期値等が記憶されている。ＲＡＭ３３は，各種制御プログラムが読み出される作業領域として，あるいは，データを一時的に記憶する記憶領域として利用される。ＣＰＵ３１は，ＲＯＭ３２から読み出した制御プログラムに従って，その処理結果をＲＡＭ３３またはＮＶＲＡＭ３４に記憶させながら，スキャナ１００の各構成要素を制御する。
【００２９】
ＣＰＵ３１は，制御部の一例である。なお，コントローラ３０が制御部であってもよい。なお，図２中のコントローラ３０は，ＣＰＵ３１等，スキャナ１００の制御に利用されるハードウェアを纏めた総称であって，実際にスキャナ１００に存在する単一のハードウェアを表すとは限らない。さらに，ＡＳＩＣを有してもよく，ＡＳＩＣが制御部であってもよい。
【００３０】
ネットワークＩＦ３７は，ＬＡＮケーブル等を用いてネットワークを介してスキャナ１００に接続された装置と通信を行うためのハードウェアである。ＵＳＢＩＦ３８は，ＵＳＢケーブル等を介してスキャナ１００に接続された装置と通信を行うためのハードウェアである。操作パネル４０は，ディスプレイと入力ボタン等を有し，ユーザへの告知を表示し，ユーザによる入力操作を受け付ける。
【００３１】
続いて，本形態のスキャナ１００における原稿の読取動作について説明する。本形態のスキャナ１００は，原稿を搬送してその画像を読み取ることにより画像データを取得し，取得した画像データに基づいて出力データを生成し，生成した出力データを指示された出力先に出力する手順を実行する。なお，出力データは，一般的な画像フォーマットであればよく，例えば，ＰＤＦ，ＪＰＥＧ，ＧＩＦ，ビットマップが該当する。
【００３２】
具体的に，本形態のスキャナ１００は，原稿が原稿トレイ２５にセットされた状態で，原稿の読み取り指示を受け付けると，まず，原稿トレイ２５から搬送部２２にて原稿を１枚搬送させる。そして，スキャナ１００は，センサ２８の出力信号等に基づいて，原稿が読取ヘッド２１に対向する位置に到達する前に，読取ヘッド２１にて画像の読み取りを開始させる。
【００３３】
これにより，スキャナ１００は，図３に示すように，画像データ５０を取得する。画像データ５０の幅方向の大きさである読取幅Ｗｘは，前述したように，予め決まっている。以下では，読み取りの進行方向について，最初に読み取られる側を先端側，最後に読み取られる側を後端側とする。なお，図３および以後の同様の図中では，斜線部にて，原稿を読み取った画像部分を示している。つまり，画像データ５０には，原稿を読み取った画像部分の周囲，少なくとも先端側と後端側とには，原稿ではなく，前述した原稿押さえ２４を読み取った画像部分が含まれている。
【００３４】
そして，スキャナ１００は，原稿の搬送方向について予め決めた所定長Ｗｙ以上の画像データ５０を取得した後，原稿の先端側のエッジの検出を開始する。スキャナ１００は，画像データ５０のうち，幅方向について読取範囲の全体に相当する読取幅Ｗｘ，原稿の搬送方向について先端から所定長Ｗｙの範囲のデータに基づいて，先端エッジを検出する。スキャナ１００は，先端エッジの検出処理を原稿の残りの部分の読み取りと並行して実行する。先端エッジの検出処理については，後述する。
【００３５】
スキャナ１００は，さらに読み取りを継続し，原稿の後端が読取ヘッド２１の位置を通過した後，読取ヘッド２１の読み取りを終了させる。読み取り終了後，スキャナ１００は，原稿の後端側のエッジを検出する。スキャナ１００は，画像データ５０のうち，幅方向について読取範囲の全体に相当する読取幅Ｗｘ，原稿の搬送方向について画像データ５０の後端から先端側に向かって所定長Ｗｙの範囲のデータに基づいて，後端エッジを検出する。後端エッジの検出処理は，後述する先端エッジの検出処理と同様の処理を画像データ５０の後端側から実行する処理である。
【００３６】
そして，スキャナ１００は，検出した先端エッジと後端エッジとの少なくとも一方を用いて，取得した画像データ５０，すなわち読取結果の画像に対して各種の画像処理を実行する。具体的に，スキャナ１００は，画像データ５０のうちの原稿に相当する範囲を取り出すトリミング処理と，原稿の傾きを補正する傾き補正処理と，原稿の範囲の形状が長方形となっていない場合に長方形となるように補修する画像補修処理とを実行する。そして，スキャナ１００は，画像処理後の画像データに基づいて出力用のデータである出力データを生成し，生成した出力データを，読取動作の指示にて指定された出力先に出力する。
【００３７】
続いて，先端エッジの検出処理について説明する。スキャナ１００は，図３に示したように，画像データ５０のうち先端側の部分データである先端画像５１を用いて，先端エッジの検出処理を実行する。つまり，先端画像５１は，画像データ５０のうち先端エッジの検出に使用する範囲の画像データである。先端画像５１の大きさは，図４に示すように，幅方向について読取幅Ｗｘ，原稿の搬送方向について先端から所定長Ｗｙである。なお，図４中に示すように，読み取りの進行方向について先端側を上，後端側を下として，先端画像５１の上下左右を定義する。
【００３８】
スキャナ１００における先端エッジの検出処理では，概略，以下の５つのステップをこの順に実行する。各ステップは，（１）中央エッジ点Ｅｃの取得，（２）複数のエッジ点Ｅの取得，（３）エッジ点Ｅの直線性の判断，（４）複数のエッジ点Ｅの近似直線Ｌの取得，（５）左端Ｐ１および右端Ｐ２の取得である。先端エッジは，（５）において取得された左端Ｐ１と右端Ｐ２とを結ぶ線分として取得される。これらの各ステップのいずれかにて適切に取得できなかった場合，あるいは（３）において直線性が無いと判断した場合には，スキャナ１００は，適切な先端エッジの検出に失敗したと判断する。以下，各ステップを順に説明する。
【００３９】
（１）中央エッジ点Ｅｃの取得ステップでは，スキャナ１００は，図４に示すように，先端画像５１に対して，上端の左右の中央位置である中点Ｃから下向きに順に画像データを検索し，エッジ条件を満たすか否かを判断する。エッジ条件は，画像データの輝度値またはＲＧＢのいずれかの値が所定の閾値を超える条件である。そして，スキャナ１００は，エッジ条件を満たす最上位置の点である中央エッジ点Ｅｃの位置を取得する。この中央エッジ点Ｅｃが先端エッジの検出における基準の位置となる。
【００４０】
例えば，図５に示すように，先端の中央部に欠損のある原稿を読み取った場合，中央エッジ点Ｅｃが取得できない可能性がある。つまり，先端画像５１を上端の中点Ｃから下向きに検索し，エッジ条件を満たす点がないままで所定長Ｗｙの検索が終了し，検索位置が先端画像５１の下端に到達してしまった場合である。例えば，前述したセンサ２８の出力信号に基づいて読取開始タイミングを決定するスキャナ１００であって，センサ２８の幅方向の検出位置が中央ではない場合には，このような画像データが得られる可能性がある。中央エッジ点Ｅｃの取得に失敗した場合は，先端エッジが検出できない場合であり，適正な先端エッジの検出に失敗した場合の一例である。中央エッジ点Ｅｃの取得に成功した場合には，スキャナ１００は，次のステップ（２）の処理に進む。
【００４１】
（２）複数のエッジ点Ｅの取得ステップでは，スキャナ１００は，図４に示したように，ステップ（１）で取得した中央エッジ点Ｅｃを基準に，左右方向に所定の間隔でエッジ点Ｅを取得する。例えば，先端画像５１のうち，中央エッジ点Ｅｃを中心として上下に予め決めた幅の検索範囲Ｄを検索し，エッジ点Ｅを取得する。検索範囲Ｄは，先端画像５１の上下の所定長Ｗｙ以下の範囲である。このように検索範囲Ｄを限定することで，処理の所要時間を短縮できる。なお，スキャナ１００は，エッジ点Ｅの間隔より短い間隔で複数のエッジ条件を満たす点を取得し，取得した複数の点の位置の平均値等に基づいて，所定間隔のエッジ点Ｅを取得してもよい。
【００４２】
例えば，図６に示すように，先端の中央部に欠損のある原稿を読み取った場合，中央エッジ点Ｅｃが取得できても他のエッジ点Ｅが取得できない可能性がある。図５の例とは異なり，センサ２８の出力信号に基づいて読取開始タイミングを決定するスキャナ１００であって，センサ２８の幅方向の検出位置が中央である場合には，このような画像データが得られる可能性がある。エッジ点Ｅの取得に失敗した場合は，先端エッジが検出できない場合であり，適正な先端エッジの検出に失敗した場合の一例である。エッジ点Ｅの取得に成功した場合には，スキャナ１００は，次のステップ（３）の処理に進む。
【００４３】
（３）エッジ点Ｅの直線性の判断ステップでは，スキャナ１００は，図４に示したように，中央エッジ点Ｅｃおよび複数のエッジ点Ｅの配列の直線性を確認する。例えば，スキャナ１００は，隣接するエッジ点Ｅとの間の傾き値をそれぞれ取得し，それぞれの傾き値の分散の程度が所定の範囲内であれば直線性が有ると判断し，所定の範囲内でなければ直線性が無いと判断する。具体的には，スキャナ１００は，隣接するエッジ点Ｅ間の上下距離を左右距離で除した値を傾き値とし，最小二乗法にて傾き値の分散を算出する。あるいは，スキャナ１００は，傾き値の最大値と最小値との差が所定の範囲内であるか否かに基づいて判断してもよい。
【００４４】
例えば，図７に示すように，耳折れ等により先端の角部に欠損のある原稿を読み取った場合，エッジ点Ｅの直線性が無いと判断される可能性がある。この例では，複数のエッジ点Ｅのうち，左端のエッジ点Ｅから欠損部の角のエッジ点Ｅ１までは傾き値がほぼ一定の範囲内であるのに対し，欠損部のエッジ点Ｅ２やＥ３の傾き値は，左端のエッジ点Ｅからエッジ点Ｅ１までの傾き値とは大きく異なる。そのため，スキャナ１００は，図７に示した例のエッジ点Ｅには直線性が無いと判断する。エッジ点の直線性が無い場合は，適正な先端エッジの検出に失敗した場合の一例である。エッジ点Ｅに直線性が有ると判断した場合には，スキャナ１００は，次のステップ（４）の処理に進む。
【００４５】
（４）近似直線Ｌの取得ステップでは，スキャナ１００は，図４に示したように，中央エッジ点Ｅｃおよび複数のエッジ点Ｅの座標に基づいて，例えば，最小二乗法にて近似直線Ｌを取得する。先のステップにて直線性が有ると判断されているので，スキャナ１００は，全てのエッジ点Ｅを利用して，直線式を取得する。そして，スキャナ１００は，次のステップ（５）の処理に進む。
【００４６】
（５）左端Ｐ１および右端Ｐ２の取得ステップでは，スキャナ１００は，ステップ（２）にて取得した複数のエッジ点Ｅの途切れた位置から，先端画像５１の左右の中央に向かって検索し，原稿の画像の左右端を取得する。例えば，図４中の左端Ｐ１の近傍に破線の矢印で示したように，スキャナ１００は，端のエッジ点Ｅの近傍を検索し，前述したエッジ条件を満たす左右のエッジを取得する。さらに，スキャナ１００は，取得したエッジに基づいて左辺および右辺を決定し，左辺と近似直線Ｌとの交点を左端Ｐ１，右辺と近似直線Ｌとの交点を右端Ｐ２とする。そして，スキャナ１００は，近似直線Ｌのうち左端Ｐ１と右端Ｐ２との間の範囲を，先端エッジとする。先端エッジの長さＳｔは，左端Ｐ１と右端Ｐ２との距離である。
【００４７】
なお，スキャナ１００は，例えば，図８に示すように，（２）にて取得したエッジ条件を満たす点の位置が先端画像５１の左右または上下の端辺まで続いている場合，（５）では，続いている側の左右辺の検索は実行せず，近似直線Ｌと先端画像５１の端辺との交点を左右端とする。具体的に，図８の例では，先端画像５１の左端辺５１１および右端辺５１２までエッジ点Ｅが連続して取得されており，スキャナ１００は，近似直線Ｌと左端辺５１１との交点を左端Ｐ１とし，近似直線Ｌと右端辺５１２との交点を右端Ｐ２とする。
【００４８】
また，例えば，図９に示すように，原稿の傾きが大きく，原稿の角部が読取範囲外にはみ出した場合，近似直線Ｌと先端画像５１の上端辺５１３とが交差した画像データ５０が得られる可能性がある。この例では，スキャナ１００は，交差した側である右端Ｐ２を，近似直線Ｌと先端画像５１の上端辺５１３との交点とする。この場合，先端エッジは，左端Ｐ１から右端Ｐ２までの範囲となり，先端エッジの長さＳｔは，左端Ｐ１と右端Ｐ２との距離となる。
【００４９】
スキャナ１００では，先端エッジの検出状況に関係なく読み取りを継続する。前述した画像データ５０の読み取りが終了した後，スキャナ１００は，図３に示したように，画像データ５０のうち後端側の所定長Ｗｙの部分データに基づいて，後端エッジの検出処理を実行する。後端エッジの検出は，先端エッジの検出と同様の処理である。ただし，画像データ５０の後端側を上，先端側を下として，ステップ（１）〜（５）を実行する。
【００５０】
そして，スキャナ１００は，先端エッジと検出結果と後端エッジの検出結果とに基づいて，画像の補正に用いるエッジを，先端エッジとするか後端エッジとするかを決定する。例えば，スキャナ１００は，先端エッジの検出または後端エッジの検出のいずれか一方について適正な検出に成功し，他方に失敗した場合，成功した方のエッジを画像の補正に用いると決定する。補正の詳細については後述する。
【００５１】
続いて，本形態のスキャナ１００において読取動作および読み取った画像に基づく画像データを出力する動作を実現する処理である読取出力処理について，図１０のフローチャートを参照して説明する。本処理は，スキャナ１００が読取開始の指示を受け付けたことを契機に，ＣＰＵ３１にて実行される。
【００５２】
本形態のスキャナ１００は，読取出力処理の実行を開始すると，搬送部２２に原稿を搬送させ，前述した所定のタイミングで読取ヘッド２１に原稿の画像の読み取りを開始させる（Ｓ１０１）。そして，スキャナ１００は，予め決めた所定長Ｗｙ以上の読み取りが終了し，所定長Ｗｙの画像データを取得したか否かを判断する（Ｓ１０２）。取得していなければ（Ｓ１０２：ＮＯ），スキャナ１００は，さらに継続して読み取る。
【００５３】
所定長Ｗｙの画像データを取得したと判断したら（Ｓ１０２：ＹＥＳ），スキャナ１００は，先端エッジの検出を開始する（Ｓ１０３）。スキャナ１００は，先端エッジの検出では，前述したように，先端から所定長Ｗｙの部分データである先端画像５１を利用し，（１）〜（５）の各ステップを実行する。Ｓ１０３は，先端検出処理の一例である。
【００５４】
そして，スキャナ１００は，先端エッジの検出に成功したか否かを判断する（Ｓ１０４）。成功しなかったと判断した場合（Ｓ１０４：ＮＯ），スキャナ１００は，失敗要因をＲＡＭ３３またはＮＶＲＡＭ３４に記憶する（Ｓ１０５）。スキャナ１００は，失敗要因として，先端と後端とのうちエッジの検出に失敗した側の情報と，幅方向における失敗箇所を特定するための失敗の要因の情報とを記憶する。
【００５５】
スキャナ１００は，Ｓ１０５では，例えば，先端エッジの検出にて失敗したことと，実行に失敗したステップ番号とを記憶する。あるいは，スキャナ１００は，（１）にて失敗した場合には，先端中央の欠損，（２）にて失敗した場合には，先端中央の欠損または突出，（３）にて失敗した場合には，直線性の欠如等と記憶してもよい。あるいは，スキャナ１００は，失敗要因として，検出に失敗した幅方向の箇所を，中央部，左端部，右端部等と記憶してもよい。また，スキャナ１００は，より具体的に，欠損の範囲や直線からの分散が大きい箇所を特定し，その情報を加えて記憶してもよい。
【００５６】
Ｓ１０５にて失敗要因を記憶した後，あるいは，先端エッジの検出に成功したと判断した場合（Ｓ１０４：ＹＥＳ），その原稿の後端まで読み取りを終了したか否かを判断する（Ｓ１０６）。読み取りが終了していなければ（Ｓ１０６：ＮＯ），スキャナ１００は，さらに読み取りを実行する。
【００５７】
読み取りが終了したと判断した場合（Ｓ１０６：ＹＥＳ），スキャナ１００は，後端エッジの検出を開始する（Ｓ１０７）。後端エッジの検出処理は，先端エッジの検出処理と同様の処理を後端側から実行する処理である。なお，先端エッジの検出が終了する前に読み取りが終了した場合には，先端エッジの検出と後端エッジの検出とを並行して実行してもよい。Ｓ１０７は，後端検出処理の一例である。
【００５８】
そして，スキャナ１００は，後端エッジの検出に成功したか否かを判断する（Ｓ１０８）。後端エッジの検出に成功しなかったと判断した場合（Ｓ１０８：ＮＯ），スキャナ１００は，先端と後端との両方のエッジの検出に失敗したか否かを判断する（Ｓ１０９）。両方のエッジの検出に失敗したと判断したら（Ｓ１０９：ＹＥＳ），補正処理に用いることのできるエッジが無いので，スキャナ１００は，補正を行わず，全面の画像データ５０をそのまま出力する（Ｓ１１０）。なお，Ｓ１１０では，スキャナ１００は，Ｓ１０５にて記憶した失敗要因を削除する。
【００５９】
一方，両方失敗ではないと判断した場合（Ｓ１０９：ＮＯ），つまり，先端のエッジの検出には成功している場合には，スキャナ１００は，後端エッジの検出における失敗要因をＲＡＭ３３またはＮＶＲＡＭ３４に記憶する（Ｓ１１１）。Ｓ１１１でも，スキャナ１００は，Ｓ１０５と同様に，失敗した側の情報と，幅方向についての情報とを記憶する。つまり，Ｓ１１１では，スキャナ１００は，後端エッジにて失敗したこととその要因とを記憶する。そして，スキャナ１００は，後端エッジの検出に成功したと判断した場合（Ｓ１０８：ＹＥＳ），または，Ｓ１１１にて失敗要因を記憶した後，出力データ生成処理を実行する（Ｓ１２０）。
【００６０】
次に，読取出力処理のＳ１２０にて実行され，スキャナ１００にて出力するデータを生成する出力データ生成処理の手順について，図１１のフローチャートを参照して説明する。この出力データ生成処理は，先端と後端との少なくとも一方のエッジの検出に成功した場合に実行される処理であり，画像の補正に用いるエッジを，先端エッジとするか後端エッジとするかを決定し，画像の補正を実行して，補正後のデータを出力する処理である。なお，画像の補正としては，例えば，画像のトリミングと，傾き補正と，画像の補修とが含まれる。
【００６１】
出力データ生成処理では，スキャナ１００は，まず，先端と後端との両方のエッジの検出に成功したか否かを判断する（Ｓ２０１）。例えば，先端と後端とのいずれのエッジについても失敗要因が記憶されていない場合には，スキャナ１００は，両方のエッジの検出に成功したと判断する。両方に成功したと判断した場合（Ｓ２０１：ＹＥＳ），スキャナ１００は，先端と後端とのエッジの傾きがほぼ同じであるか否かを判断する（Ｓ２０２）。スキャナ１００は，例えば，先端のエッジの傾きと後端のエッジの傾きとの差が，所定の傾き閾値より小さい場合に，エッジの傾きがほぼ同じであると判断する。
【００６２】
スキャナ１００は，先端と後端とのエッジの傾きがほぼ同じではないと判断した場合（Ｓ２０２：ＮＯ），補正を行わず，全面の画像データ５０をそのまま出力範囲とする（Ｓ２０３）。先端と後端との両方のエッジの検出に成功しても，先端の傾きと後端の傾きとがかなり異なる場合，原稿が長方形ではない可能性が高い。そのため，スキャナ１００は，長方形へのトリミングや，傾き補正等の処理を行わず，画像データ５０の全体を出力範囲に決定する。
【００６３】
そして，スキャナ１００は，画像データ５０に基づいて所定の形式の出力データを生成し，指定されている出力先に出力データを出力する。スキャナ１００は，出力後，出力データ生成処理を終了する。スキャナ１００は，出力データ生成処理の終了後，図１０の読取出力処理に戻り，読取出力処理を終了する。
【００６４】
一方，先端と後端とのエッジの傾きがほぼ同じであると判断した場合（Ｓ２０２：ＹＥＳ），スキャナ１００は，先端と後端とのエッジの長さがほぼ同じであるか否かを判断する（Ｓ２０５）。スキャナ１００は，例えば，先端のエッジの長さと後端のエッジの長さとの差が，所定の長さ閾値より小さい場合に，エッジの長さがほぼ同じであると判断する。そして，先端と後端とのエッジの長さがほぼ同じであると判断した場合（Ｓ２０５：ＹＥＳ），スキャナ１００は，先端エッジと後端エッジとのいずれか一方を出力データ生成処理に用いるエッジに決定する。
【００６５】
そして，スキャナ１００は，先端エッジを用いて画像データ５０を長方形にトリミングし，先端エッジの傾きを用いて傾き補正を実行する（Ｓ２０６）。Ｓ２０６は，決定処理と補正処理との一例である。トリミングに際して，スキャナ１００は，原稿の搬送方向の長さを，先端エッジと後端エッジとの距離に基づいて推定してもよいし，センサ２８の出力信号に基づいて推定してもよい。なお，Ｓ２０６では，後端エッジを用いて，トリミングと傾き補正とを実行してもよい。また，スキャナ１００は，画像データ５０のうち，先端エッジと後端エッジとで囲まれる範囲を原稿の範囲であると推定し，この範囲を抜き出すことでトリミングを実行してもよい。
【００６６】
さらに，スキャナ１００は，補正済の画像データに基づいて，所定の形式の出力データを生成し，出力データを出力して（Ｓ２０９），出力データ生成処理を終了する。出力データ生成処理の終了後は，スキャナ１００は，図１０の読取出力処理に戻り，読取出力処理を終了する。
【００６７】
一方，先端と後端とのエッジの長さがほぼ同じではないと判断した場合（Ｓ２０５：ＮＯ），スキャナ１００は，後端エッジの方が先端エッジよりも長いか否かを判断する（Ｓ２１１）。例えば，図９に示した例のように，原稿の角部が読取範囲外にはみ出した状態で読み取った場合，先端エッジの長さＳｔは本来の原稿の幅よりも短い。そして，例えば，図１２に示すように，後端エッジの長さＳｂが，先端エッジの長さＳｔよりも長い場合，後端エッジは適正に取得され，その長さＳｂは本来の原稿の幅に近いと推定できる。
【００６８】
そこで，スキャナ１００は，後端エッジの方が先端エッジの長さよりも長いと判断した場合（Ｓ２１１：ＹＥＳ），後端エッジを補正に用いるエッジに決定する。先端と後端とでエッジの長さが異なる場合には，短いエッジの側にて原稿が読取範囲外にはみ出した可能性がある。そして，スキャナ１００は，後端エッジを用いて画像データ５０を長方形にトリミングし，後端エッジの傾きを用いて傾き補正を実行する（Ｓ２１２）。Ｓ２１２は，決定処理と補正処理との一例である。
【００６９】
Ｓ２１２の結果，図１３に示すように，スキャナ１００は，傾きを補正した長方形の補正データ５３を取得する。図１３中に斜線で示した範囲は，原稿を読み取った画像部分である。なお，トリミングに際して，スキャナ１００は，原稿の搬送方向の長さを，先端エッジと後端エッジとの距離に基づいて推定してもよいし，センサ２８の出力信号に基づいて推定してもよい。
【００７０】
次に，スキャナ１００は，補正データ５３のうち，補修すべき範囲を先端側の角部である補修範囲５３１に決定し，補修範囲５３１の画像を補修する（Ｓ２１３）。Ｓ２１３は，第２範囲決定処理と第２変更処理との一例である。つまり，スキャナ１００は，補正データ５３のうち，先端エッジと後端エッジとの長さの差ΔＳによって区切られる範囲を補修範囲５３１に決定し，この補修範囲５３１の画像データを原稿の地色に変更することにより画像を補修する。原稿の地色は，例えば，画像データ５０中の出現頻度が最も高い色である。あるいは，スキャナ１００は，補修範囲５３１の周辺の色を地色としてもよい。
【００７１】
なお，この例は，先端エッジの検出のステップ（２）において取得されたエッジ点Ｅが，先端画像５１の端辺まで連続していた場合であり，スキャナ１００は，左右方向について補修範囲５３１を，エッジ点Ｅの並びと先端画像５１の端辺との交わる側として決定できる。なお，この例では，補修範囲５３１にもともと画像データがないので，トリミング実行時に補修範囲５３１を地色の画像データで埋めるようにしてもよい。また，先端画像５１より先端側まで画像データ５０がある場合には，スキャナ１００は，補修範囲５３１に該当する部分の画像データ５０を用いて補修してもよい。
【００７２】
さらに，スキャナ１００は，補修済みの補正データ５３に基づいて，所定の形式の出力データを生成し，出力データを出力して（Ｓ２０９），出力データ生成処理を終了する。出力データ生成処理の終了後は，スキャナ１００は，図１０の読取出力処理に戻り，読取出力処理を終了する。
【００７３】
一方，スキャナ１００は，後端エッジの方が長くないと判断した場合（Ｓ２１１：ＮＯ），先端エッジを補正に用いるエッジに決定し，前述したＳ２１２とＳ２１３を先端エッジに適用して実行する。つまり，後端エッジの方が長い場合と反対に，後端エッジの角部が読取範囲からはみ出した可能性が高いことから，スキャナ１００は，先端エッジを用いて画像データ５０を長方形にトリミングし，先端エッジの傾きを用いて傾き補正を実行する（Ｓ２１５）。Ｓ２１５は，決定処理と補正処理との一例である。
【００７４】
さらに，スキャナ１００は，補正データのうち，補修すべき範囲を後端側の角部に決定し，その範囲の画像データを地色に変更することで画像を補修する（Ｓ２１６）。Ｓ２１６も，第２範囲決定処理と第２変更処理との一例である。Ｓ２１６では，スキャナ１００は，Ｓ２１３と同様の処理を後端側について実行する。
【００７５】
さらに，スキャナ１００は，補修済みの補正データに基づいて，所定の形式の出力データを生成し，出力データを出力して（Ｓ２０９），出力データ生成処理を終了する。出力データ生成処理の終了後は，スキャナ１００は，図１０の読取出力処理に戻り，読取出力処理を終了する。
【００７６】
また，Ｓ２０１にて両方のエッジの検出に成功していないと判断した場合（Ｓ２０１：ＮＯ），つまり，片方のエッジのみ検出に成功したと判断した場合には，スキャナ１００は，検出に成功した方のエッジを用いて画像データのトリミングと傾き補正とを実行する（Ｓ２１８）。つまり，スキャナ１００は，適正に検出されたと推定されるエッジとその傾きに基づいて，画像データ５０から長方形の画像部分を取り出し，傾き補正を実行して，補正データを取得する。適正な検出に成功したエッジは信頼性が高いので，Ｓ２１８では，適切なトリミングと傾き補正を実行できる可能性が高い。Ｓ２１８は，決定処理と補正処理との一例である。
【００７７】
さらに，スキャナ１００は，検出に失敗した側のエッジに関する失敗要因を読み出す（Ｓ２１９）。失敗要因は，Ｓ１０５またはＳ１１１にてＲＡＭ３３またはＮＶＲＡＭ３４に記憶した内容である。さらに，スキャナ１００は，失敗要因に応じて画像の補修範囲を決定し，補修範囲の画像を補修する（Ｓ２２０）。Ｓ２２０は，補修処理と第１範囲決定処理と第１変更処理との一例である。スキャナ１００は，Ｓ２１９にて読み出した失敗要因に基づいて，先端側と後端側とのいずれを補修するかを決定する。さらに，スキャナ１００は，幅方向における失敗箇所を特定するための失敗の要因の情報に基づいて，Ｓ２２０にて，画像の幅方向について，画像の補修範囲を決定する。
【００７８】
例えば，図５や図６に示した例のように，失敗要因が先端エッジ検出における中央エッジ点Ｅｃの取得の失敗である場合，図１４に示すように，先端側の中央部に欠損箇所５４１のある補正データ５４が得られる可能性が高い。そして，欠損箇所５４１の画像データは，原稿押さえ２４を読み取った場合に得られる画像データに近い値である可能性が高い。そこで，スキャナ１００は，欠損箇所５４１を補修範囲と決定し，欠損箇所５４１の画像データを原稿の地色の画像データに変更する。
【００７９】
なお，失敗要因が先端エッジ検出における中央エッジ点Ｅｃの取得の失敗である場合であっても，トリミングに際して，センサ２８の出力信号に基づいて原稿の搬送方向の長さを推定した場合，図１５に示すように，欠損箇所を含まない補正データ５５が得られる可能性もある。しかし，先端エッジの検出に失敗したと判断していることから，スキャナ１００は，先端側に欠損箇所５５１を含む画像データがあると推定できる。そこで，欠損箇所を含まない補正データが得られた場合には，欠損箇所５５１を含むようにトリミングをやり直し，欠損箇所５５１の画像データを原稿の地色に変更して補修済みのデータを取得するとよい。
【００８０】
また，例えば，図７に示した例のように，失敗要因が先端エッジ検出における直線性の欠如である場合，図１６に示すように，先端側の端部などに欠損箇所５６１のある補正データ５６である可能性が高い。スキャナ１００は，例えば，先端エッジ検出のステップ（３）にて算出した傾き値の分散等を失敗要因として記憶しておけば，読み出した失敗要因に基づいて，左右のいずれの端部に欠損箇所５６１があるかを判断できる。そして，欠損箇所５６１の画像データは，原稿押さえ２４を読み取った場合に得られる画像データに近い値である可能性が高い。そこで，スキャナ１００は，欠損箇所５６１を補修範囲と決定し，欠損箇所５６１の画像データを原稿の地色の画像データに変更する。
【００８１】
さらに，スキャナ１００は，補修済みの補正データに基づいて，所定の形式の出力データを生成し，出力データを出力して（Ｓ２０９），出力データ生成処理を終了する。出力データ生成処理の終了後は，スキャナ１００は，図１０の読取出力処理に戻り，読取出力処理を終了する。
【００８２】
以上，詳細に説明したように，本形態のスキャナ１００は，読み取った画像データ５０から先端エッジと後端エッジとを検出し，その検出結果に基づいて，画像データ５０を補正する処理に用いるエッジを決定する。例えば，先端エッジの検出に成功しなかった場合でも，後端エッジの検出に成功していれば，後端エッジを用いて画像データ５０の補正を実行できる。従って，原稿の画像を読み取った画像データ５０の補正を行う際の，補正の精度の低下を抑制することが期待できる。
【００８３】
なお，本実施の形態は単なる例示にすぎず，本発明を何ら限定するものではない。したがって本発明は当然に，その要旨を逸脱しない範囲内で種々の改良，変形が可能である。例えば，スキャナに限らず，複写機，複合機，ＦＡＸ装置等，原稿の画像を読み取る画像読取機能を備えるものであれば適用可能である。また，原稿を搬送しつつ読み取る方式に限らず，原稿を停止させ，読取ヘッド２１を移動させて読み取る方式の装置であってもよい。
【００８４】
また，例えば，補正処理としては，トリミングと傾き補正とに限らない。これらのうちの一方のみでもよいし，さらに他の処理があってもよい。また，例えば，画像の補修範囲の決定やその補修範囲のデータの変更はしなくてもよい。決定したエッジに基づいて，補正処理を行うだけでもよい。
【００８５】
また，実施の形態では，エッジの検出に失敗したと判断する例として複数の要因を示したが，これらの全てを判断しなくてもよい。例えば，１種類の要因のみを失敗要因としてもよい。また，例示以外に他の判断を加えてもよい。
【００８６】
また，実施の形態では，エッジの検出に失敗した場合に失敗要因を記憶するとしたが，記憶しなくてもよい。ただし，失敗要因を記憶していれば，欠損箇所を発見しやすく，補修処理が容易になる。
【００８７】
また，例えば，実施の形態では，先端エッジの検出を読み取り終了前に開始しているが，読み取り終了後に先端エッジと後端エッジとの検出を開始してもよい。つまり，読取出力処理にて，Ｓ１０２の判断を省略し，Ｓ１０３とＳ１０４とＳ１０５とを，Ｓ１０６にてＹＥＳと判断してから実行してもよい。
【００８８】
また，先端エッジの検出に用いる先端画像５１の原稿搬送方向の範囲は，画像データ５０の先端から所定長Ｗｙとしたが，これに限らない。例えば，センサ２８の出力信号に基づいて，原稿が読取ヘッド２１の位置に到達したと判断される時点の前後の，所定の範囲の画像データを用いてもよい。
【００８９】
また，実施の形態では，先端エッジと後端エッジとの傾きの差が大きい場合には全面の画像データ５０を出力するとしたが，これに限らない。先端エッジと後端エッジとの傾きの差が大きい場合には，例えば，エッジの検出エラーとして補正処理を実行しなくてもよいし，ユーザに補正処理の実行有無を問い合わせてもよいし，別の補正処理を実行してもよい。
【００９０】
また，実施の形態では，スキャナ１００にてエッジの検出と画像データの補修とを実行するとしたが，スキャナと接続するＰＣ等で実行してもよい。この場合，例えば，ＰＣは，スキャナに対して，画像の読み取りと読み取った画像データの送信とを指示し，スキャナから画像データを取得する。そして，ＰＣは，画像データの取得を契機に，取得した画像データに基づいて，エッジの検出，検出の成否の判断，画像データのトリミングと補正，および，欠損箇所の補修を実行する。
【００９１】
具体的には，ＰＣは，例えば，図１０に示した読取出力処理のうち，Ｓ１０１の読み取り開始をスキャナへの読み取り開始指示の送信に変更し，Ｓ１０２以降では，スキャナから送信される画像データを取得する。さらに，ＰＣは，Ｓ１０６の読み取り終了の判断を画像データの取得完了の判断に変更した処理を実行する。なお，指示された出力先がＰＣ自身であれば，ＰＣは，生成した出力データを外部装置に出力せず，自身のハードディスク等に記憶する。
【００９２】
また，実施の形態に開示されている処理は，単一のＣＰＵ，複数のＣＰＵ，ＡＳＩＣなどのハードウェア，またはそれらの組み合わせで実行されてもよい。また，実施の形態に開示されている処理は，その処理を実行するためのプログラムを記録した記録媒体，または方法等の種々の態様で実現することができる。
【符号の説明】
【００９３】
２１  読取ヘッド
３１  ＣＰＵ
１００  スキャナ
【図１】
0006459384.tif 000002
【図２】
0006459384.tif 000003
【図３】
0006459384.tif 000004
【図４】
0006459384.tif 000005
【図５】
0006459384.tif 000006
【図６】
0006459384.tif 000007
【図７】
0006459384.tif 000008
【図８】
0006459384.tif 000009
【図９】
0006459384.tif 000010
【図１０】
0006459384.tif 000011
【図１１】
0006459384.tif 000012
【図１２】
0006459384.tif 000013
【図１３】
0006459384.tif 000014
【図１４】
0006459384.tif 000015
【図１５】
0006459384.tif 000016
【図１６】
0006459384.tif 000017