(57)【特許請求の範囲】
【請求項１】
搬送経路に沿って原稿を搬送する搬送部と、
前記搬送経路上に位置し、前記搬送部によって搬送される前記原稿を主走査方向に読み取り、原稿を読み取った原稿画像範囲を含む読取範囲の画像を、出力する読取部と、
前記読取部によって出力された画像に対して２値化を行い、エッジ画像に変換するエッジ画像変換部と、
ＣＰＵと、
を備え、
前記ＣＰＵは、
前記エッジ画像変換部によって変換されたエッジ画像から、前記原稿画像範囲の先端の一辺側、及び、前記原稿画像範囲の後端の一辺側のそれぞれに対してエッジ点を複数検出するエッジ点検出処理と、
前記主走査方向に直交する方向における前記エッジ点の位置の最大値と最小値との差分を取得する間隔取得処理と、
前記間隔取得処理によって取得された前記原稿画像範囲の先端の一辺側の前記位置の前記差分が基準間隔以下の場合、前記エッジ点検出処理によって検出された前記原稿画像範囲の先端の一辺側の複数のエッジ点から前記読取部に対する原稿の傾きを検出し、前記傾きに応じて前記原稿画像範囲の画像に対して傾き補正し、
前記間隔取得処理によって取得された前記原稿画像範囲の先端の一辺側の前記位置の前記差分が前記基準間隔よりも大きい場合、前記エッジ点検出処理によって検出された前記原稿画像範囲の後端の一辺側の複数のエッジ点から前記読取部に対する原稿の傾きを検出し、前記傾きに応じて前記原稿画像範囲の画像に対して傾き補正し、
前記原稿画像範囲の後端の一辺側に対して検出された複数のエッジ点の位置の前記差分が前記基準間隔よりも大きい場合、前記原稿画像範囲の画像に対して傾き補正を実行しない、
傾き補正処理と、
を実行する、画像読取装置。
【請求項２】
請求項１に記載の画像読取装置であって、
前記エッジ点検出処理は、前記読取範囲の前記主走査方向における両端部を除いた中央部において読み取られた画像から前記複数のエッジ点を検出する、画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書によって開示される技術は、原稿を読み取る画像読取装置に用いられる技術に関する。
【背景技術】
【０００２】
従来から、原稿台に載置される原稿や搬送される原稿を読み取る画像読取装置では、原稿が傾いて原稿台にセットされる場合や、原稿の搬送によって原稿が傾く場合がある。その場合、ＣＩＳ等の読取部は、原稿が傾いた状態で読み取ることになる為、読取部が読み取った読取画像に対して、原稿の傾きを補正する画像読取装置（例えば、特許文献１）が知られている。
特許文献１の画像読取装置では、読み取った原稿の読取画像の端の候補となる点を検出し、その点を最小二乗法を用いて直線近似し、その直線から読取部に対する原稿の傾きを求め、読取部が読み取った読取画像に対して、原稿の傾きを補正する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１６４８０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、原稿の端は直線状であるとは限らない。例えば、ユーザにより切断されて整形された原稿では、端の一部が他の部分よりも外側にはみ出していたり、逆に端の一部が他の部分よりも内側にえぐれていたりして、原稿の端が凹凸状であることがある。このような原稿では、原稿の読取画像の端の候補となる点を検出し、その点を最小二乗法を用いて直線近似したとしても、そもそも原稿の端が直線状でない場合は、正しく原稿の傾きを求めることができない。しかし、従来の画像読取装置は、そのような原稿の端が直線状であるか否かに関らず、その点を最小二乗法を用いて直線近似することによって、その直線から読取部に対する原稿の傾きを求めていた。
【０００５】
本発明は、原稿を読み取る画像読取装置において、画像読取装置が有する読取部が読み取った読取画像から、読取部に対する原稿の傾きを補正する技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書によって開示される画像読取装置は、原稿を読み取った原稿画像範囲を含む読取範囲の画像を、主走査方向に読み取る読取部と、前記読取部によって取得した画像に基づいて、前記原稿画像範囲の１つの辺側のエッジ点を複数検出するエッジ検出部と、前記主走査方向に直交または平行な方向における前記エッジ点の位置のばらつきを取得する間隔取得部と、前記位置のばらつきが基準間隔以下の場合、前記エッジ検出部によって検出された複数のエッジ点から前記読取部に対する原稿の傾きを検出し、前記傾きに応じて前記原稿画像範囲の画像に対して傾き補正する傾き補正部と、前記位置のばらつきが前記基準間隔よりも大きい場合、前記エッジ検出部に前回検出した辺とは異なる辺側のエッジ点を複数検出させて、前記間隔取得部にその異なる辺側のエッジ点の位置のばらつきを取得させる制御部と、を備える。
【０００７】
また、上記の画像読取装置では、更に、搬送経路に沿って原稿を搬送する搬送部を備え、前記読取部は、前記搬送経路上に位置し、前記搬送部によって搬送される原稿を読み取り、前記エッジ検出部は、前記原稿画像範囲の先端の一辺側に対してエッジ点を複数検出し、前記制御部は、前記エッジ点の位置のばらつきが前記基準間隔よりも大きい場合、前記エッジ検出部に前記原稿画像範囲の後端の一辺側のエッジ点を複数検出させる構成としても良い。
【０００８】
また、上記の画像読取装置では、前記制御部は、前記原稿画像範囲の後端の一辺側に対して検出された複数のエッジ点の位置のばらつきが前記基準間隔よりも大きい場合、前記傾き補正部に前記原稿画像範囲の画像に対して傾き補正させない構成としても良い。
【０００９】
また、上記の画像読取装置では、前記エッジ検出部は、前記読取範囲の前記主走査方向における両端部を除いた中央部において読み取られた画像から前記複数の点を検出する構成としても良い。
【００１０】
また、上記の画像読取装置では、前記制御部は、前記位置のばらつきが前記傾き補正部が許容する第２基準間隔より大きい場合、前記傾き補正部に前記原稿画像範囲の画像に対して傾き補正させない構成としても良い。
【発明の効果】
【００１１】
本明細書によって開示される画像読取装置では、原稿画像範囲の一辺側に対してエッジ点を複数検出し、そのエッジ点の位置のばらつきが主走査方向に直交または平行な方向において基準間隔よりも大きくばらついている場合には、原稿画像範囲の画像の別の辺に対してエッジ点を検出する。この画像読取装置によれば、原稿画像範囲の一辺が基準間隔よりも大きくばらついている場合に、他の辺に対してエッジ点を検出し、傾きを検出可能な状態とするので、基準間隔よりも大きくばらついている辺から検出された傾きを用いずに原稿の傾きを補正することができる。
【図面の簡単な説明】
【００１２】
【図１】画像読取装置の概略的な断面図
【図２】画像読取装置のブロック図
【図３】実施形態１の読取処理を示すフローチャート
【図４】実施形態１の傾き補正処理を示すフローチャート
【図５】実施形態１のエッジ検出処理を示すフローチャート
【図６】実施形態１のエッジ検出処理を示すフローチャート
【図７】傾き検出処理を示すフローチャート
【図８】実施形態１のエッジ画像ＥＧを示す図
【図９】実施形態２の傾き補正処理を示すフローチャート
【図１０】実施形態２の傾き補正処理を示すフローチャート
【図１１】実施形態２のエッジ検出処理を示すフローチャート
【図１２】実施形態２のエッジ検出処理を示すフローチャート
【図１３】実施形態２のエッジ画像ＥＧを示す図
【発明を実施するための形態】
【００１３】
＜実施形態１＞
実施形態１を、図１ないし図８を用いて説明する。
【００１４】
１．画像読取装置の機械的構成
図１は、本実施形態の画像読取装置１の概略的な断面図である。画像読取装置１は、給紙トレイ２と、本体部３と、排紙トレイ４と、を含む。画像読取装置１は、ユーザにより給紙トレイ２に載置された複数の原稿Ｇを排紙トレイ４に搬送するとともに、搬送中の原稿Ｇを本体部３に含まれるＣＩＳ２４を用いて読み取るシートフィードスキャナである。
【００１５】
本体部３には、給紙トレイ２と排紙トレイ４を接続する搬送経路２２が設けられており、この搬送経路２２の周辺に、給紙ローラ２０と、分離パッド２１と、搬送ローラ２３と、ＣＩＳ２４と、フロントセンサ（以下、Ｆセンサ）２５と、リアセンサ（以下、Ｒセンサ）２６と、を備える。ＣＩＳ２４は、読取部の一例である。
【００１６】
給紙ローラ２０は、給紙トレイ２に載置された原稿Ｇに当接しており、摩擦力により、給紙トレイ２に載置された複数枚の原稿Ｇを本体部３の内部へと引き込む。分離パッド２１は、摩擦力により、複数枚の原稿Ｇを１枚の原稿Ｇに分離する。給紙トレイ２に載置された複数枚の原稿Ｇは、これらによって、１枚の原稿Ｇに分離されて本体部３の内部へと引き込まれる。
【００１７】
搬送ローラ２３は、モータＭ（図２参照）により駆動され、本体部３の内部へと引き込まれた原稿Ｇを搬送経路２２上に搬送する。ＣＩＳ２４は、その読取方向である主走査方向Ｄ１が搬送経路２２に沿った搬送方向Ｄ２に直交する姿勢で搬送経路２２上に位置し、搬送経路２２内を搬送される原稿Ｇを読み取る。
【００１８】
また、搬送ローラ２３は、搬送経路２２上に搬送された原稿Ｇを排紙トレイ４に送り出す。搬送ローラ２３により排紙トレイ４に排紙された原稿Ｇは、排紙トレイ４に積層される。つまり、給紙ローラ２０と搬送ローラ２３とによって、給紙トレイ２に載置された複数枚の原稿Ｇを搬送経路２２に沿って搬送する搬送部２７が形成されている。
【００１９】
Ｆセンサ２５は、給紙トレイ２に配置され、給紙トレイ２に原稿Ｇが載置された場合にオンし、給紙トレイ２に原稿Ｇが載置されていない場合にオフするように設定されている。Ｒセンサ２５は、搬送経路２２上のＣＩＳ２４よりも上流側に配置され、搬送経路２２上を原稿Ｇが通過する場合にオンし、搬送経路２２上を原稿Ｇが通過していない場合にオフするように設定されている。また、本体部３には、この他に、電源スイッチや各種設定ボタンからなり、ユーザからの操作指令等を受け付ける入力部５（図２参照）や、ＬＥＤからなり画像読取装置１の状況を表示する表示部６（図２参照）、及び出力装置９等が含まれる。なお、出力装置９は、例えば、ＵＳＢメモリの接続部等からなり、ＣＩＳ２４を用いて原稿Ｇを読み取った画像を画像読取装置１外に持ち出すためのものである。
【００２０】
２．画像読取装置の電気的構成
図２は、画像読取装置１の電気的構成を概略的に示すブロック図である。図２に示すよ
うに、画像読取装置１は、画像読取装置１の各部を制御するＡＳＩＣ（特定用途向け集積
回路）１０を含む。ＡＳＩＣ１０は、中央処理装置（以下、ＣＰＵ）１１と、ＲＯＭ１２
と、ＲＡＭ１３と、デバイス制御部１４と、アナログフロントエンド（以下、ＡＦＥ）１
５と、駆動回路１６、画像処理回路１７と、を備え、これらにバス１８を介して、Ｆセン
サ２５、Ｒセンサ２６などが接続されている。
【００２１】
ＲＯＭ１２には、画像読取装置１の動作を制御するための各種のプログラムが記憶されており、ＣＰＵ１１は、ＲＯＭ２６から読み出したプログラムに従って、間隔取得部３１、傾き補正部３２、制御部３３等として機能し、各部の制御を行う。デバイス制御部１４は、ＣＩＳ２４に接続されており、ＣＰＵ１１からの命令に基づいて読み取りを制御する信号をＣＩＳ２４に送信する。ＣＩＳ２４は、デバイス制御部１４からの信号に基づいて、読取範囲Ｈ（図８参照）に亘って原稿Ｇを読み取り、読み取った読取データをＡＦＥ１５に出力する。
【００２２】
ＡＦＥ１５は、ＣＩＳ２４に接続されており、ＣＰＵ１１からの命令に基づいて、ＣＩＳ２４から出力されるアナログ信号である読取データをデジタル信号である階調データに変換する。読取データ及び階調データは、画像の一例である。ＡＦＥ１５は、ＣＩＳ２４から出力される読取データを、画像読取装置１内に保存、又は画像読取装置１外に持ち出すことを目的としたスキャン画像ＳＧに変換するとともに、読取データのうち、原稿Ｇを読み取った原稿画像範囲ＧＨ（図８参照）を特定するためのエッジ画像ＥＧに変換する。エッジ画像ＥＧは、予め定められた基準輝度を用いて、当該基準輝度よりも高い輝度を有することを示す第１階調値と、当該基準輝度よりも低い輝度を有することを示す第２階調値とに２値化されている。スキャン画像ＳＧ及びエッジ画像ＥＧは、バス１８を介してＲＡＭ１３に記憶される。画像処理回路１７は、ＲＡＭ１３に記憶されたエッジ画像ＥＧに基づいて原稿画像範囲ＧＨを特定し、原稿画像範囲ＧＨのスキャン画像ＳＧを生成する。
【００２３】
駆動回路１６は、モータＭに接続されており、ＣＰＵ１１からの命令に基づいてパルス信号をモータＭに送信する。駆動回路１６から入力されるパルス信号に応じてモータＭが回転すると、これに従って搬送部２７が駆動し、搬送経路２２に沿って原稿Ｇをステップ搬送する。つまり、ＣＰＵ１１は、原稿Ｇを搬送する際に、駆動回路１６を介してパルス信号をモータＭに送信し、これに従って搬送部２７は、そのパルス信号の送信されたパルスの数に規定距離Ｌを掛けた距離だけ原稿Ｇを搬送する。以後、駆動回路１６が搬送部２７に送信するパルス信号のパルスの数を、ステップ数と呼ぶ。
【００２４】
３．読取処理
次に、図３ないし図８を参照して、ＣＩＳ２４を用いて原稿Ｇを読み取る場合の、ＣＰＵ１１における処理について説明する。
【００２５】
図３は、ＣＰＵ１１が所定のプログラムに従って実行する処理のフローチャートを示す。ＣＰＵ１１は、Ｆセンサ２５を用いて給紙トレイ２に原稿Ｇが載置されたことが確認され、入力部５を介して原稿Ｇの読取指示が入力されると、処理を開始する。
【００２６】
（基本処理）
ＣＰＵ１１は、処理を開始すると、駆動回路１６を用いて搬送部２７を駆動し、原稿Ｇの搬送を開始する（Ｓ２）。ＣＰＵ１１は、Ｒセンサ２６を用いて搬送中の原稿Ｇの位置を検出し（Ｓ４：ＮＯ）、Ｒセンサ２６がオンすると（Ｓ４：ＹＥＳ）、Ｒセンサ２６によってオンしてからＣＩＳ２４による読み取りを開始するまでの第１ステップ数ＳＴ１がカウントされるのを待機する（Ｓ６：ＮＯ）。第１ステップ数ＳＴ１は、搬送方向Ｄ２におけるＲセンサ２６とＣＩＳ２４との間の距離、及び読取範囲Ｈに基づいて決定される。
【００２７】
ＣＰＵ１１は、Ｒセンサ２６によってオンしてから第１ステップ数ＳＴ１がカウントされると（Ｓ６：ＹＥＳ）、ＣＩＳ２４を用いて原稿Ｇの読み取りを開始する（Ｓ８）。また、ＣＰＵ１１は、Ｒセンサ２６がオフするのを待機しており（Ｓ１０：ＮＯ）、Ｒセンサ２６がオフすると（Ｓ１０：ＹＥＳ）、Ｒセンサ２６によってオフしてからＣＩＳ２４による読み取りを終了するまでの第２ステップ数ＳＴ２がカウントされる（Ｓ１２）のを待機するとともに、次の原稿ＧによってＲセンサ２６が再びオンする（Ｓ２２）のを待機する。第２ステップ数ＳＴ２は、第１ステップ数ＳＴ１と同様に、搬送方向Ｄ２におけるＲセンサ２６とＣＩＳ２４との間の距離、及び読取範囲Ｈに基づいて決定される。
【００２８】
ＣＰＵ１１は、Ｒセンサ２６が再びオンする前に第２ステップ数ＳＴ２がカウントされた場合（Ｓ１２：ＹＥＳ、Ｓ１４：ＮＯ）、原稿Ｇの読取範囲Ｈに亘る読み取りが完了したことを検知する。ＣＰＵ１１は、原稿Ｇの読み取りを終了し（Ｓ２２）、後述する傾き補正処理を実行する（Ｓ２４）。つまり、本実施形態では、ＣＰＵ１１は、原稿Ｇの読取範囲Ｈの全域に亘る読み取りを完了した後に、読取範囲Ｈの全域に対応するエッジ画像ＥＧを用いて傾き補正処理を実行する。傾き補正処理実行後、ＣＰＵ１１は、Ｆセンサ２５がオンしているか否かを確認し（Ｓ２６）、Ｆセンサ２５がオフしている場合（Ｓ２６：ＮＯ）、給紙トレイ２に読み取られずに残っている原稿Ｇは無いと判断し、原稿Ｇの搬送を停止し、読取処理を終了する。
【００２９】
また、ＣＰＵ１１は、Ｆセンサ２５がオンしている場合（Ｓ２６：ＹＥＳ）、次に搬送される原稿Ｇに対して処理を実行する。ＣＰＵ１１は、Ｒセンサ２６を用いて次に搬送される原稿Ｇの位置を検出し（Ｓ２８：ＮＯ）、Ｒセンサ２６がオンすると（Ｓ２８：ＹＥＳ）、Ｓ６からの処理を繰り返す。
【００３０】
一方、ＣＰＵ１１は、第２ステップ数ＳＴ２がカウントされる前にＲセンサ２６が再びオンした場合（Ｓ１２：ＮＯ、Ｓ１４：ＹＥＳ）、第２ステップ数ＳＴ２のカウントを継続する（Ｓ１６：ＮＯ）。ＣＰＵ１１は、第２ステップ数ＳＴ２がカウントされると（Ｓ１６：ＹＥＳ）、原稿Ｇの読み取りを終了するとともに（Ｓ１８）、後述する傾き補正処理を実行する（Ｓ２０）。傾き補正処理実行後、ＣＰＵ１１は、Ｓ６に戻り、次に搬送される原稿Ｇに対して処理を実行する。
【００３１】
（傾き検出処理）
図４を用いて、傾き補正処理を説明する。傾き補正処理において、ＣＰＵ１１は、まずエッジ点検出処理を実行する（Ｓ３０）。ＣＰＵ１１は、原稿Ｇを搬送経路２２上に搬送させながら読み取る際に、搬送される原稿Ｇが搬送方向Ｄ２に対して傾いた場合でも、画像欠落を生じさせることなく原稿Ｇを読み取るために、原稿Ｇよりも広い読取範囲Ｈを設定している。そのため、図８に示すように、読取範囲Ｈの全域を読み取ったエッジ画像ＥＧの内に、原稿Ｇを読み取った原稿画像範囲ＧＨの画像が含まれる。エッジ点検出処理において、ＣＰＵ１１は、画像処理回路１７を用いて、ＲＡＭ１３に記憶されたエッジ画像ＥＧから、原稿Ｇを読み取った原稿画像範囲ＧＨの境界線上の点であるエッジ点Ｐを検出する処理を実行する。
【００３２】
図５、６を用いて、エッジ点検出処理を説明する。ＣＰＵ１１は、エッジ点検出処理を開始すると、読取範囲Ｈの全域に対応するエッジ画像ＥＧから、主走査方向Ｄ１の両端部ＯＢを除いた中央部ＩＢのエッジ画像ＥＧを選出する（Ｓ４２）。エッジ画像ＥＧの主走査方向Ｄ１は、ＣＩＳ２４の主走査方向Ｄ１と等しいことから、エッジ画像ＥＧの中央部ＩＢは、ＣＩＳ２４の主走査方向Ｄ１における両端部を除いた中央部において読み取られたエッジ画像ＥＧであるということができる。以後のエッジ点検出処理の説明では、選出した中央部ＩＢのエッジ画像ＥＧに対してエッジ点Ｐを検出する処理を実行する。
【００３３】
次に、ＣＰＵ１１は、エッジ点Ｐを検出するための各種パラメータを設定する。ＣＰＵ１１は、パラメータとして、Ｘstart、Ｙstart、ｄＸ、ｄＹ、Ｙpeakmax、Ｙpeakmin、ｎの各パラメータを有している。ここで、図８に示すように、（Ｘ、Ｙ）はエッジ画像ＥＧにおける座標系を示しており、Ｘは主走査方向Ｄ１と平行な座標軸、Ｙは搬送方向Ｄ２と平行な座標軸を示している。本実施形態では、座標系（Ｘ、Ｙ）の原点として、選出された中央部ＩＢのエッジ画像ＥＧのうち、最もＸ座標及びＹ座標が小さくなる点を原点とし、この場合に、Ｘ座標が最大となる点のＸ座標をＸmaxとし、Ｙ座標が最大となる点のＹ座標をＹmaxとしている。
【００３４】
本実施形態では、ＣＰＵ１１は、エッジ点Ｐを検出する際に、設定された複数のＸ座標において搬送方向Ｄ２にエッジ点Ｐの検出を進め、後述するエッジ点Ｐの条件を満たす位置の各Ｙ座標を検出する。そして、間隔取得部３１として機能するＣＰＵ１１は、複数のＸ座標に対応する複数のエッジ点Ｐの位置のばらつきを、Ｙ座標のばらつきとして取得する。Ｘstartは、複数のＸ座標のうち最も小さいＸ座標を示しており、ｄＸは、複数のＸ座標の間隔を示している。また、Ｙstartは、搬送方向Ｄ２に検出を開始するＹ座標を示しており、ｄＹは、搬送方向Ｄ２に検出を進める際の検出分解能を示している。また、Ｙpeakmaxは、検出されたエッジ点Ｐのうち、最もＹ座標が大きいエッジ点ＰのＹ座標を示しており、Ｙpeakminは、検出されたエッジ点Ｐのうち、最もＹ座標が小さいエッジ点ＰのＹ座標を示している。
【００３５】
ＣＰＵ１１は、エッジ画像ＥＧに対してエッジ点Ｐを検出する際に、まずエッジ画像ＥＧの先端の一辺側に対してエッジ点Ｐ（以後、先端エッジ点Ｐ）を複数検出する。ＣＰＵ１１は、先端エッジ点Ｐを複数検出するためのパラメータを設定する。ＣＰＵ１１は、例えば、Ｘstart＝ｄＸ＝８、Ｙstart＝０、ｄＹ＝１と設定する（Ｓ４４）。また、ＣＰＵ１１は、Ｙpeakmax＝０、Ｙpeakmin＝Ｙmaxと設定し（Ｓ４６）、前回のエッジ点検出処理において記憶されたピーク値をリセットする。
【００３６】
次に、ＣＰＵ１１は、設定されたパラメータを用いて複数のエッジ点Ｐの検出を開始する。ＣＰＵ１１は、エッジ点Ｐの検出に用いる検出点Ｅ（Ｘｅ、Ｙｅ）を有しており、Ｘｅ＝Ｘstartと設定する（Ｓ４８）。また、検出された先端エッジ点Ｐの個数を示すｎを、ｎ＝０と設定する（Ｓ５０）。
【００３７】
次に、ＣＰＵ１１は、ｎを「１」増加させ（Ｓ５２）、Ｙｅ＝Ｙstart（＝０）と設定し（Ｓ５４）、検出点Ｅがエッジ点Ｐであるか否かを確認する（Ｓ５６）。具体的には、検出点（Ｘｅ、Ｙｅ）の階調値が第１階調値となっている場合、検出点（Ｘｅ、Ｙｅ）がエッジ点Ｐであると判断する。一方、検出点Ｅの階調値が第２階調値となっている場合、検出点Ｅがエッジ点Ｐでないと判断する。
【００３８】
ＣＰＵ１１は、検出点Ｅがエッジ点Ｐでないと検出すると（Ｓ５６：ＮＯ）、ＹｅをｄＹ増加させ（Ｓ５８）、増加後のＹｅがＹmaxよりも大きいか、または増加後のＹｅが「０」よりも小さいかのいずれかの条件を満たすか否かを確認する（Ｓ６０）。ＣＰＵ１１は、増加後のＹｅが上記いずれかの条件を満たさない場合（Ｓ６０：ＮＯ）、Ｓ５６からの処理を繰り返し、搬送方向Ｄ２にエッジ画像ＥＧの検出を進める。
【００３９】
また、ＣＰＵ１１は、増加後のＹｅが上記いずれかの条件を満たす場合（Ｓ６０：ＹＥＳ）、ＸｅをｄＸ増加させ（Ｓ６２）、増加後のＸｅがＸmaxよりも大きいか否かを確認する（Ｓ６４）。ＣＰＵ１１は、増加後のＸｅがＸmax以下の場合（Ｓ６４：ＮＯ）、Ｓ５４からの処理を繰り返す。また、ＣＰＵ１１は、増加後のＸｅがＸmaxよりも大きい場合（Ｓ６４：ＹＥＳ）、エッジ点Ｐの検出に失敗したと判断する。
【００４０】
一方、ＣＰＵ１１は、検出点Ｅがエッジ点Ｐであると検出すると（Ｓ５６：ＮＯ）、検出点Ｅをｎ番目のエッジ点Ｐであるエッジ点ＰｎとしてＲＡＭ１３に記憶する（Ｓ６６）。ＣＰＵ１１は、更にエッジ点Ｐｎとして記憶した検出点ＥのＹｅをＹpeakmax及びＹpeakminと比較する（Ｓ６８、Ｓ７２）。ＣＰＵ１１は、ＹｅがＹpeakmaxよりも大きい場合（Ｓ６８：ＹＥＳ）、Ｙpeakmaxの値を当該Ｙｅの値に再設定し（Ｓ７０）、ＹｅがＹpeakmax以下の場合（Ｓ６８：ＮＯ）、Ｙpeakmaxの値を現在の値に維持する。また、ＣＰＵ１１は、ＹｅがＹpeakminよりも小さい場合（Ｓ７２：ＹＥＳ）、Ｙpeakminの値を当該Ｙｅの値に再設定し（Ｓ７４）、ＹｅがＹpeakmin以上の場合（Ｓ７２：ＮＯ）、Ｙpeakminの値を現在の値に維持する。
【００４１】
次に、ＣＰＵ１１は、ＹpeakminからＹpeakminを引いてエッジ点ＰのＹ座標のばらつきを示す差分値ΔＹを算出する。上述したように、差分値ΔＹは、複数のエッジ点Ｐの位置のばらつきを示すということができる。そして、ＣＰＵ１１は、この差分値ΔＹを予め記憶された基準間隔Ｋと比較する（Ｓ７６）。ＣＰＵ１１は、差分値ΔＹが基準間隔Ｋ以下の場合（Ｓ７６：ＮＯ）、ｎが後述する傾き検出処理に必要なエッジ点数である必要個数ｎＫ以上であるか否かを確認する（Ｓ７８）。ＣＰＵ１１は、ｎが必要個数ｎＫ以上である場合（Ｓ７８：ＹＥＳ）、エッジ点Ｐの検出に成功したと判断する。
【００４２】
また、ＣＰＵ１１は、ｎが必要個数ｎＫよりも少ない場合（Ｓ７８：ＮＯ）、ＸｅをｄＸ増加させ（Ｓ８０）、増加後のＸｅがＸmaxよりも大きいか否かを確認する（Ｓ８２）。ＣＰＵ１１は、増加後のＸｅがＸmax以下の場合（Ｓ８２：ＮＯ）、Ｓ５２からの処理を繰り返す。また、ＣＰＵ１１は、増加後のＸｅがＸmaxよりも大きい場合（Ｓ８２：ＹＥＳ）、エッジ点Ｐの検出に失敗したと判断する。
【００４３】
一方、制御部３３として機能するＣＰＵ１１は、差分値ΔＹが基準間隔Ｋよりも大きい場合（Ｓ７６：ＹＥＳ）、現在検出しているエッジ点Ｐが先端エッジ点Ｐであるかを確認する（Ｓ８４）。ＣＰＵ１１は、現在設定されているＹstart等のパラメータから現在検出しているエッジ点Ｐが先端エッジ点Ｐであるかを確認する。ＣＰＵ１１は、現在検出しているエッジ点Ｐが先端エッジ点Ｐである場合（Ｓ８４：ＹＥＳ）、先端エッジ点Ｐの検出を終了し、次に、エッジ画像ＥＧの後端の一辺側に対してエッジ点Ｐ（以後、後端エッジ点Ｐ）を複数検出する。
【００４４】
ＣＰＵ１１は、後端エッジ点Ｐを複数検出するためのパラメータを設定する。ＣＰＵ１１は、例えば、Ｘstart＝ｄＸ＝８、Ｙstart＝Ｙmax、ｄＹ＝−１と設定し（Ｓ８６）、Ｓ４６に戻り、後端エッジ点Ｐに対して差分値ΔＹを算出し、基準間隔Ｋと比較する（Ｓ７６）等の処理を繰り返す。そして、ＣＰＵ１１は、後端エッジ点Ｐにおいても算出された差分値ΔＹが基準間隔Ｋよりも大きい場合（Ｓ７６：ＹＥＳ、Ｓ８４：ＮＯ）、エッジ点Ｐの検出に失敗したと判断する。
【００４５】
図４に示すように、制御部３３として機能するＣＰＵ１１は、エッジ点検出処理においてエッジ点Ｐの検出に失敗した場合（Ｓ３２：ＮＯ）、後述する傾き検出処理（Ｓ３４）、及びスキャン画像回転処理（Ｓ３８）を実行することなく、図３のＳ６又はＳ２６の処理に戻る。一方、ＣＰＵ１１は、エッジ点検出処理においてエッジ点Ｐの検出に成功した場合（Ｓ３２：ＹＥＳ）、傾き検出処理を実行する（Ｓ３４）。
【００４６】
図７を用いて、傾き検出処理を説明する。ＣＰＵ１１は、傾き検出処理を開始すると、得られたエッジ点Ｐを直線近似し、当該直線の主走査方向Ｄ１に対する角度である傾きθを算出する（Ｓ９２）。ＣＰＵ１１は、傾きθが後述するスキャン画像回転処理が可能な上限値である補正可能限界θＬ以下であるか否かを確認する（Ｓ９４）。傾きθは、エッジ点Ｐの位置のばらつきに基づいて決定されることから、補正可能限界θＬは、スキャン画像回転処理においてエッジ点Ｐの位置のばらつきが許容されるものか否かを区分する第２基準間隔の一例ということができる。
【００４７】
ＣＰＵ１１は、傾きθが補正可能限界θＬよりも大きい場合（Ｓ９４：ＮＯ）、傾きθの検出に失敗したと判断する。一方、傾きθが補正可能限界θＬ以下の場合（Ｓ９４：ＹＥＳ）、傾きθから傾き補正量θＨを算出し（Ｓ９６）、傾きθの検出に成功したと判断する。本実施形態のように、エッジ点Ｐとして先端エッジ点Ｐ及び後端エッジ点Ｐを検出している場合、傾き補正量θＨは傾きθと一致する。また、主走査方向Ｄ１にエッジ点Ｐの検出を進めエッジ点Ｐを検出している場合、傾き補正量θＨは傾きθから９０°を引いた、あるいは９０°から傾きθを引いた値となる。
【００４８】
図４に示すように、制御部３３として機能するＣＰＵ１１は、傾き検出処理において傾きθの検出に失敗した場合（Ｓ３６：ＮＯ）、後述するスキャン画像回転処理（Ｓ３８）を実行することなく、図３のＳ６又はＳ２６の処理に戻る。一方、傾き補正部３２として機能するＣＰＵ１１は、傾き検出処理において傾きθの検出に成功した場合（Ｓ３６：ＹＥＳ）、スキャン画像回転処理を実行する（Ｓ３８）。ＣＰＵ１１は、ＲＡＭ１３に記憶された原稿画像範囲ＧＨのスキャン画像ＳＧを、傾き検出処理において算出された傾き補正量θＨだけ回転させる。スキャン画像回転処理終了後、ＣＰＵ１１は、図３のＳ６又はＳ２６の処理に戻る。
【００４９】
４．本実施形態の効果
（１）画像読取装置１では、エッジ画像ＥＧの原稿画像範囲ＧＨの先端の一辺側に対してエッジ点Ｐを複数検出し、そのエッジ点Ｐの位置のばらつきを示す差分値ΔＹが基準間隔Ｋよりも大きくばらついている場合には、原稿画像範囲ＧＨの後端の一辺側に対してエッジ点Ｐを検出する。そのため、差分値ΔＹが基準間隔Ｋよりも大きくばらついているエッジ画像ＥＧの原稿画像範囲ＧＨの先端の一辺から傾きθを算出し、原稿Ｇの傾きを補正することがなく、原稿画像範囲ＧＨを特定する特定精度の悪化を抑制することができる。
【００５０】
（２）画像読取装置１では、エッジ画像ＥＧの原稿画像範囲ＧＨの先端及び後端の一辺側に対する差分値ΔＹが基準間隔Ｋよりも大きくばらついている場合に、原稿画像範囲ＧＨに対して傾き検出処理、及びスキャン画像回転処理を実行しない。そのため、不正確にスキャン画像ＳＧの原稿画像範囲ＧＨが回転処理されてしまうことを抑制することができ、原稿画像範囲ＧＨを特定する特定精度の悪化を抑制することができる。
【００５１】
（３）画像読取装置１では、図８に示すように、読取範囲Ｈの全域に対応するエッジ画像ＥＧから、主走査方向Ｄ１の両端部ＯＢを除いた中央部ＩＢのエッジ画像ＥＧを選出し、この中央部ＩＢのエッジ画像ＥＧに対してエッジ点Ｐを検出する。通常、ＣＩＳ２４で原稿Ｇを読み取る際に、原稿Ｇは、ＣＩＳ２４の読取範囲Ｈの略中央に配置されることが多い。そのため、ＣＩＳ２４の中央部において読み取られたエッジ画像ＥＧである中央部ＩＢのエッジ画像ＥＧには、原稿画像範囲ＧＨの先端及び後端の一辺が含まれているものの、他の辺が含まれていないことが多い。この画像読取装置１によれば、原稿画像範囲ＧＨの先端及び後端の一辺側に対して複数のエッジ点Ｐを検出する際に、他の辺側に対するエッジ点Ｐが誤検出されてしまうことが抑制され、誤検出による傾き検出精度の悪化等の問題の発生が抑制される。
【００５２】
（４）画像読取装置１では、エッジ画像ＥＧの原稿画像範囲ＧＨの先端及び後端の一辺側に対する差分値ΔＹが基準間隔Ｋよりも大きくばらつき、傾き補正部３２として機能するＣＰＵ１１により精度よく傾き補正できない場合に、スキャン画像ＳＧの原稿画像範囲ＧＨに対してスキャン画像回転処理を実行しない。そのため、不正確にスキャン画像ＳＧの原稿画像範囲ＧＨが回転処理されてしまうことを抑制することができ、原稿画像範囲ＧＨを特定する特定精度の悪化を抑制することができる。
【００５３】
＜実施形態２＞
実施形態２を、図９ないし図１３を用いて説明する。本実施形態では、ＣＰＵ１１は、原稿Ｇの読取範囲Ｈの全域に亘って読み取りをする際に、読取範囲Ｈの全域に対応するエッジ画像ＥＧをＲＡＭ１３に記憶しない点で、実施形態１の画像読取装置１と異なる。本実施形態では、ＣＰＵ１１は、原稿Ｇの読取範囲Ｈの全域に亘って読み取りをする際に、図１３に示すように、ＡＦＥ１５を用いて、原稿画像範囲ＧＨの先端の一辺が含まれる範囲の先端エッジ画像ＥＧ１をＲＡＭ１３に記憶し、原稿画像範囲ＧＨの後端の一辺が含まれる範囲の後端エッジ画像ＥＧ２をＲＡＭ１３に記憶し、これらのエッジ画像ＥＧ１、ＥＧ２を用いて傾き補正処理を実行する。以下の説明では、実施形態１と同一の内容については重複した記載を省略する。
【００５４】
１．読取処理
（基本処理）
図９、１０に示すように、ＣＰＵ１１は、処理を開始し、Ｒセンサ２６がオンすると（Ｓ４：ＹＥＳ）、傾き補正量θＨをクリアする（Ｓ１０２）。そして、ＣＰＵ１１は、Ｒセンサ２６がオンしてから第１ステップ数がカウントされると（Ｓ６：ＹＥＳ）、ＣＩＳ２４を用いて原稿Ｇの読み取りを開始する（Ｓ１０４）。この際、ＣＰＵ１１は、上述したように、ＡＦＥ１５を用いて、原稿Ｇの読取範囲Ｈの全域に亘ってスキャン画像ＳＧをＲＡＭ１３に記憶する一方、エッジ画像ＥＧについては、先端エッジ画像ＥＧ１及び後端エッジ画像ＥＧ２に限ってＲＡＭ１３に記憶する。
【００５５】
ＣＰＵ１１は、ＣＩＳ２４の読取開始から先端エッジ画像ＥＧ１に相当する第３ステップ数ＳＴ３がカウントされているか否かを確認する（Ｓ１０６）。ここで、第３ステップ数ＳＴ３は、読取範囲Ｈ及び原稿サイズに基づいて決定される。ＣＰＵ１１は、ＣＩＳ２４の読取開始から第３ステップ数ＳＴ３がカウントされている場合（Ｓ１０６：ＹＥＳ）、読み取られた先端エッジ画像ＥＧ１に対して図４に示す傾き補正処理（Ｓ１０８）を行う。先端エッジ画像ＥＧ１に対する傾き補正処理において、傾き補正部３２として機能するＣＰＵ１１は、それまでに読み取られた原稿画像範囲ＧＨのスキャン画像ＳＧを算出された傾き補正量θＨだけ回転させるとともに、その後に読み取られる原稿画像範囲ＧＨのスキャン画像ＳＧに対しても順次回転させる処理を実行する。
【００５６】
また、ＣＰＵ１１は、ＣＩＳ２４の読取開始から第３ステップ数ＳＴ３がカウントされていない場合（Ｓ１０６：ＮＯ）、傾き補正処理を行うことなくＳ１０の処理を実行する。Ｓ１０の処理において、ＣＰＵ１１は、Ｒセンサ２６がオフしているか否かを確認し（Ｓ１０）、Ｒセンサ２６がオフしている場合（Ｓ１０：ＹＥＳ）、第２ステップ数ＳＴ２がカウントされる（Ｓ１２）のを待機するとともに、Ｒセンサ２６が再びオンする（Ｓ２２）のを待機する。一方、ＣＰＵ１１は、Ｒセンサ２６がオフしていない場合（Ｓ１０：ＮＯ）、Ｓ１０６からの処理を繰り返す。ＣＰＵ１１は、Ｓ１０６からの処理を繰り返す際、それまでの処理において第３ステップ数ＳＴ３がカウントされており（Ｓ１０６：ＹＥＳ）、先端エッジ画像ＥＧ１に対して傾き補正処理（Ｓ１０８）が行われている場合、再度傾き補正処理（Ｓ１０８）を実行しない。
【００５７】
次に、ＣＰＵ１１は、Ｒセンサ２６が再びオンする前に第２ステップ数ＳＴ２がカウントされた場合（Ｓ１２：ＹＥＳ、Ｓ１４：ＮＯ）、原稿Ｇの読取範囲Ｈの全域に亘るスキャン画像ＳＧの読み取り、及び後端エッジ画像ＥＧ２の読み取りが完了したことを検知する。ＣＰＵ１１は、原稿Ｇの読み取りを終了し（Ｓ２２）、傾き補正量θＨが算出されているか否かを確認する（Ｓ１１６）。
【００５８】
ＣＰＵ１１は、先端エッジ画像ＥＧ１に対する傾き補正処理において傾き補正量θＨが算出され、傾き補正量θＨが既に算出されているている場合（Ｓ１１６：ＹＥＳ）、Ｓ２６に処理を進める。一方、先端エッジ画像ＥＧ１に対する傾き補正処理において傾き補正量θＨが算出されておらず、傾き補正量θＨが未だ算出されていない場合（Ｓ１１６：ＮＯ）、後端エッジ画像ＥＧ２に必要なシフト処理を実行し（Ｓ１１８）、読み取られた後端エッジ画像ＥＧ２に対して図４に示す傾き補正処理（Ｓ１２０）を行う。ここでシフト処理とは、例えば、後端エッジ画像ＥＧ２が先端エッジ画像ＥＧ１とＲＡＭ１３における記憶領域を共有するようにリングバッファとして記憶されている場合に、記憶された後端エッジ画像ＥＧ２を読み取られた順に並べ替える処理を示している。
【００５９】
一方、ＣＰＵ１１は、第２ステップ数ＳＴ２がカウントされる前にＲセンサ２６が再びオンした場合（Ｓ１２：ＮＯ、Ｓ１４：ＹＥＳ）、第２ステップ数ＳＴ２のカウントを継続する（Ｓ１６：ＮＯ）。ＣＰＵ１１は、第２ステップ数ＳＴ２がカウントされると（Ｓ１６：ＹＥＳ）、原稿Ｇの読み取りを終了し（Ｓ１８）、Ｓ１１６と同様に、傾き補正量θＨが算出されているか否かを確認する（Ｓ１１０）。
【００６０】
（傾き検出処理）
本実施形態の傾き検出処理は、実施形態１の傾き検出処理と等しいが、実行するエッジ点検出処理（Ｓ３０）が異なる。図１１、１２を用いて、本実施形態のエッジ点検出処理を説明する。ＣＰＵ１１は、エッジ点検出処理を開始すると、図１３に示すように、中央部ＩＢの先端エッジ画像ＥＧ１又は後端エッジ画像ＥＧ２を選出する（Ｓ４２）。
【００６１】
次に、ＣＰＵ１１は、現在検出しているエッジ点Ｐが先端エッジ点Ｐであるか後端エッジ点Ｐを確認する（Ｓ１２２）。ＣＰＵ１１は、当該処理に先だってシフト処理が行われたか否かによって現在処理しているエッジ画像ＥＧが先端エッジ画像ＥＧ１であるか、後端エッジ画像ＥＧ２であるかを識別し、現在検出しているエッジ点Ｐが先端エッジ点Ｐであるか後端エッジ点Ｐであるかを確認する。ＣＰＵ１１は、現在検出しているエッジ点Ｐが先端エッジ点Ｐである場合（Ｓ１２２：先端）、後端エッジ点Ｐを複数検出する出ための複数検出するためのパラメータを設定する（Ｓ４４）。また、ＣＰＵ１１は、現在検出しているエッジ点Ｐが後端エッジ点Ｐである場合（Ｓ１２２：後端）、後端エッジ点Ｐを複数検出する出ための複数検出するためのパラメータを設定する（Ｓ８６）。
【００６２】
そして、ＣＰＵ１１は、先端エッジ点Ｐ又は後端エッジ点Ｐに対して差分値ΔＹを算出し、基準間隔Ｋと比較する（Ｓ７６）。制御部３３として機能するＣＰＵ１１は、差分値ΔＹが基準間隔Ｋよりも大きい場合（Ｓ７６：ＹＥＳ）、現在検出しているエッジ点Ｐが先端エッジ点Ｐであるかを確認することなく、エッジ点Ｐの検出に失敗したと判断する。
【００６３】
２．本実施形態の効果
（１）画像読取装置１では、傾き補正処理を実行する際に、先端エッジ画像ＥＧ１又は後端エッジ画像ＥＧ２のみを用い、読取範囲Ｈの全域に対応するエッジ画像ＥＧを必要としない。そのため、エッジ画像ＥＧを記憶しておくためのＲＡＭ１３の記憶容量を縮小することができ、装置の製造コストを削減することができる。
【００６４】
（２）さらに画像読取装置１では、先端エッジ画像ＥＧ１において傾き補正量θＨが算出された場合には、後端エッジ画像ＥＧ２を読み取る必要がない。そのため、読取処理における画像読取装置１の処理負担を軽減することができる。
【００６５】
＜他の実施形態＞
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような種々の態様も本発明の技術的範囲に含まれる。
（１）上記実施形態では、画像読取装置１を用いて説明を行ったが、本発明はこれに限られない。例えば、画像の形成を行うプリンタ機能を、コピー機能、ファクシミリ機能等の少なくとも１つの機能をスキャナ機能と共に有する複合機であっても良い。
【００６６】
（２）上記実施形態では、画像読取装置１が１つのＡＳＩＣ１０を有し、間隔取得部３１、傾き補正部３２、制御部３３として機能する１つのＣＰＵ１１によって読取処理を実行する例を用いて説明を行ったが、本発明はこれに限られない。例えば、複数のＡＳＩＣ、ＣＰＵなどによって読取処理を実行を実行してもよい。
【００６７】
（３）上記実施形態では、エッジ点Ｐを検出する際に、設定された複数のＸ座標において搬送方向Ｄ２にエッジ点Ｐの検出を進める例を用いて説明を行ったが、本発明はこれに限られない。例えば、設定された複数のＸ座標において主走査方向Ｄ１にエッジ点Ｐの検出を進めても良い。また、主走査方向Ｄ１へのエッジ点Ｐの検出と、搬送方向Ｄ２へのエッジ点Ｐの検出を組み合わせて実行してもよい。つまり、原稿画像範囲ＧＨの一辺側に対して差分値ΔＹが基準間隔Ｋよりも大きくばらついている場合に、その隣接する辺に対してエッジ点Ｐを複数検出し、差分値ΔＹを算出しても良い。
【００６８】
（４）上記実施形態では、ＣＩＳ２４の主走査方向Ｄ１の全域から読み取られた階調データからエッジ画像ＥＧを生成しておき、エッジ点検出処理において、中央部ＩＢのエッジ画像ＥＧを選出する処理を行っていたが、本発明はこれに限られない。例えば、ＣＩＳ２４の主走査方向Ｄ１の中央部において読み取られた階調データからエッジ画像ＥＧを生成しておいてもよい。これにより、エッジ画像ＥＧを記憶しておくためのＲＡＭ１３の記憶容量を縮小することができ、装置の製造コストを削減することができる。
【符号の説明】
【００６９】
１：画像読取装置、１０：ＡＳＩＣ、１１：ＣＰＵ、１４：デバイス制御部、１５：ＡＦＥ、１６：駆動回路、１７：画像処理回路、２２：搬送経路、２４：ＣＩＳ、２５：Ｆセンサ、２６：Ｒセンサ、３１：間隔取得部、３２：傾き補正部、３３：制御部、Ｄ１：主走査方向、Ｄ２：搬送方向、ＥＧ：エッジ画像、ＳＧ：スキャン画像、Ｈ：読取範囲、ＧＨ：原稿画像範囲、Ｐ、Ｐｎ：エッジ点、ΔＹ：差分値、θＨ：補正量、Ｋ：基準間隔、ｎＫ：必要個数、θＬ：補正可能限界
【図１】
0005780064.tif 000002
【図２】
0005780064.tif 000003
【図３】
0005780064.tif 000004
【図４】
0005780064.tif 000005
【図５】
0005780064.tif 000006
【図６】
0005780064.tif 000007
【図７】
0005780064.tif 000008
【図８】
0005780064.tif 000009
【図９】
0005780064.tif 000010
【図１０】
0005780064.tif 000011
【図１１】
0005780064.tif 000012
【図１２】
0005780064.tif 000013
【図１３】
0005780064.tif 000014