(57)【特許請求の範囲】
【請求項１】
トレイ上の原稿を搬送する搬送手段と、
前記原稿の画像を読み取り、画像データを出力するイメージセンサと、
前記画像データに基づいて、前記原稿の搬送方向と直交する主走査方向の一方の端部及び他方の端部のそれぞれのエッジ位置を検出するエッジ検出手段と、
前記エッジ検出手段によって検出された前記一方の端部及び前記他方の端部のそれぞれの前記エッジ位置に基づいて、前記主走査方向における前記一方の端部のエッジ位置と前記他方の端部のエッジ位置との間より狭い前記主走査方向における範囲を決定し、決定した前記範囲内の原稿の先端位置に基づいて、原稿画像の前記主走査方向に対する斜行量を表す一次式を算出する傾き式算出手段と、
前記エッジ検出手段によって検出された前記エッジ位置の一方と前記一次式とにより、斜行補正時の基準となる基準位置を算出する基準位置算出手段と、
前記基準位置及び前記一次式に応じて前記画像データの斜行補正を行う斜行補正手段と、を備えることを特徴とする、
画像読取装置。
【請求項２】
前記基準位置算出手段は、前記エッジ検出手段によって検出された前記エッジ位置の一方と前記一次式とにより仮想基準位置を算出し、前記仮想基準位置と前記エッジ位置の一方との差分に前記斜行量を乗算することで調整量を算出し、前記仮想基準位置を前記調整量に応じて調整することで、前記基準位置を算出することを特徴とする、
請求項１記載の画像読取装置。
【請求項３】
前記斜行補正手段は、前記原稿画像を回転処理及び平行移動することで斜行補正を行うことを特徴とする、
請求項１記載の画像読取装置。
【請求項４】
前記イメージセンサで読み取った前記画像の主走査方向の複数のラインにおいて前記原稿画像のエッジ部分の画像を検出して、主走査方向の位置毎に、該位置の副走査方向のエッジ部分の画像の有無を表すエッジ情報を取得するエッジ情報取得手段を備えており、
前記エッジ検出手段は、前記エッジ情報に基づいて、前記主走査方向の両方向から前記エッジ部分の画像が所定数連続して検出される位置を検出し、検出した位置に応じて前記一方の端部及び前記他方の端部のそれぞれの前記エッジ位置を取得することを特徴とする、
請求項１記載の画像読取装置。
【請求項５】
トレイ、前記トレイ上の原稿を搬送する搬送手段、前記原稿の画像を読み取って画像データを出力するイメージセンサ、及びコントローラを備える画像形成装置により実行される方法であって、前記コントローラが、
前記画像データに基づいて、前記原稿の搬送方向と直交する主走査方向の一方の端部及び他方の端部のそれぞれのエッジ位置を検出し、
検出した前記一方の端部及び前記他方の端部のそれぞれの前記エッジ位置に基づいて、前記主走査方向における前記一方の端部のエッジ位置と前記他方の端部のエッジ位置との間よりも狭い前記主走査方向における範囲を決定し、
決定した前記範囲内の原稿の先端位置に基づいて、原稿画像の前記主走査方向に対する斜行量を表す一次式を算出し、
検出した前記一方の端部及び前記他方の端部の前記エッジ位置の一方及び前記一次式により、斜行補正時の基準となる基準位置を算出し、
前記基準位置及び前記一次式に応じて前記画像データの斜行補正を行うことを特徴とする、
画像読取方法。
【請求項６】
前記コントローラが、検出した前記エッジ位置の一方と前記一次式とにより仮想基準位置を算出し、前記仮想基準位置と前記エッジ位置の一方との差分に前記斜行量を乗算することで調整量を算出し、前記仮想基準位置を前記調整量に応じて調整することで、前記基準位置を算出することを特徴とする、
請求項５記載の画像読取方法。
【請求項７】
前記コントローラが、前記原稿画像を回転処理及び平行移動することで斜行補正を行うことを特徴とする、
請求項５記載の画像読取方法。
【請求項８】
前記コントローラが、前記イメージセンサで読み取った前記画像の主走査方向の複数のラインにおいて検出した前記原稿画像のエッジ部分の画像に応じて、主走査方向の位置毎に、該位置の副走査方向のエッジ部分の画像の有無を表すエッジ情報を取得し、
取得した前記エッジ情報に基づいて、前記主走査方向の両方向から前記エッジ部分の画像が所定数連続して検出される位置を検出し、検出した位置に応じて前記一方の端部及び前記他方の端部のそれぞれの前記エッジ位置を取得することを特徴とする、
請求項５記載の画像読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿の画像（以下、「原稿画像」という。）を読み取るスキャナ等の画像読取装置に関する。
【背景技術】
【０００２】
画像読取装置は、例えば複写機や複合機等の画像形成装置に設けられ、複写やファクシミリ送信の際の原稿画像の読み取りに用いられる。また、画像読取装置は、パーソナルコンピュータ等の情報処理装置に接続されて、スキャナとして用いられることもある。画像読取装置は、ＡＤＦ（Automatic Document Feeder）のような原稿搬送装置を備えることもある。原稿搬送装置を備えた画像読取装置は、原稿搬送装置から原稿を１枚ずつ連続して取り込み、取り込んだ原稿を搬送しながら原稿画像を連続して読み取る。画像読取装置は、原稿搬送装置から原稿を連続して取り込むことで、効率的に原稿画像の読み取りを行うことができる。
【０００３】
画像読取装置は、原稿画像の読み取り時に、搬送される原稿に光を照射し、その反射光を受光する。画像読取装置は、受光した反射光を電気信号に変換して、読み取った原稿画像を表す画像データを生成する。画像読取装置は、原稿の搬送方向に対して直交する方向を主走査方向として原稿に光を照射し、原稿画像を読み取る。原稿が主走査方向に対して傾いて搬送される場合、画像読取装置は、傾いた状態の原稿画像を読み取ることになる。原稿画像の傾きを補正するために、搬送される原稿の傾きを検出して、傾き補正を行う画像読取装置が提案されている。特許文献１は、原稿画像のエッジ部分を精度よく認識して、斜行補正を行う画像処理装置を提案する。
【０００４】
原稿画像の読取位置において原稿の領域外である背景部分にゴミ、汚れ等が付着する場合、画像読取装置は、背景部分のゴミ、汚れ等を画像（以下、「ゴミ画像」という。）として読み取ってしまう。画像読取装置は、ゴミ画像を含む読取画像から原稿画像のエッジ部分の検出を行う場合、ゴミ画像を原稿画像のエッジ部分に誤認識することがある。原稿画像のエッジ部分の誤認識は、原稿画像の斜行量の正確な検出を妨げる。特許文献２は、イメージセンサやその対向部材にゴミが付着した場合であっても、原稿画像と背景の境界位置（エッジ部分）及び原稿画像の傾きやサイズを正確に検出して補正する画像読取装置を提案する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２１８９５３号公報
【特許文献２】特開２００８−１２４８２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
原稿の各辺の状態（劣化度合い）が同程度であれば、特許文献１の画像処理装置により、原稿のエッジが精度よく認識される。しかし、原稿の各辺の状態が同程度であるとは限らず、原稿の破れ、撓み、折れの状態によっては、特許文献１の画像処理装置であっても、原稿のエッジが精度よく認識できずに、精度の高い斜行補正及び位置補正ができなくなることがある。特許文献２の画像読取装置についても、原稿の各辺の状態を考慮したエッジ検出を行っておらず、原稿の破れ、撓み、折れの状態によっては、精度の高い斜行補正及び位置補正ができない。
【０００７】
本発明は、上記の問題を解決するために、原稿の各辺の状態の影響を受けずに原稿画像のエッジ部分を精度よく認識して、原稿画像の斜行補正及び位置補正を行う画像読取装置を提供することを主たる課題とする。
【課題を解決するための手段】
【０００８】
本発明の画像読取装置は、トレイ上の原稿を搬送する搬送手段と、前記原稿の画像を読み取り、画像データを出力するイメージセンサと、前記画像データに基づいて、前記原稿の搬送方向と直交する主走査方向の一方の端部及び他方の端部のそれぞれのエッジ位置を検出するエッジ検出手段と、前記エッジ検出手段によって検出された前記一方の端部及び前記他方の端部のそれぞれの前記エッジ位置に基づいて、前記主走査方向における前記一方の端部のエッジ位置と前記他方の端部のエッジ位置との間より狭い前記主走査方向における範囲を決定し、決定した前記範囲内の原稿の先端位置に基づいて、原稿画像の前記主走査方向に対する斜行量を表す一次式を算出する傾き式算出手段と、前記エッジ検出手段によって検出された前記エッジ位置の一方と前記一次式とにより、斜行補正時の基準となる基準位置を算出する基準位置算出手段と、前記基準位置及び前記一次式に応じて前記画像データの斜行補正を行う斜行補正手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、所定の範囲内の第２エッジ位置に基づいて原稿画像の主走査方向に対する斜行量を表す一次式を算出するために、原稿の各辺の状態の影響を受けずに原稿画像のエッジ部分を精度よく認識することができる。そのために本発明の画像読取装置は、原稿画像の斜行補正及び位置補正を精度よく行うことができる。
【図面の簡単な説明】
【００１０】
【図１】画像読取装置の構成図。
【図２】画像読取ユニットの構成図。
【図３】コントローラの構成図。
【図４】エッジ情報取得部の詳細な構成図。
【図５】（ａ）〜（ｄ）はエッジ検出処理及び主走査エッジ位置の検出処理の説明図。
【図６】主走査エッジ位置を判断する処理を表すフローチャート。
【図７】原稿の影の画像と原稿の搬送方向先端のエッジ画像との関係の説明図。
【図８】副走査エッジ位置の検出処理を表すフローチャート。
【図９】有効データ範囲の説明図。
【図１０】基準位置算出処理の説明図。
【図１１】基準位置算出処理を表すフローチャート。
【図１２】アフィン変換による一連の処理の説明図。
【図１３】原稿の搬送状態及び読み取った原稿画像の対応を表す図。
【図１４】テスト原稿の例示図。
【図１５】コントローラの構成図。
【図１６】基準位置算出処理を表すフローチャート。
【発明を実施するための形態】
【００１１】
以下、図面を参照しつつ実施形態を詳細に説明する。
【００１２】
［第１実施形態］
図１は、原稿搬送機構を搭載する画像読取装置の構成図である。画像読取装置は、原稿トレイ１０１、原稿搬送モータ１０５、画像読取ユニット１０６、及び排紙トレイ１０８を備える。原稿トレイ１０１は、１枚以上の矩形の原稿１０２が載置される。原稿１０２の搬送経路１２０に沿って、給紙ローラ１２１、搬送ローラ１２２、及び排出ローラ１２３が設けられる。給紙ローラ１２１、搬送ローラ１２２、及び排出ローラ１２３は、原稿搬送モータ１０５により駆動される。
原稿トレイ１０１は、原稿１０２の搬送方向に直交する方向に並んで２つの原稿ガイド１０３を備える。本明細書では、原稿１０２の搬送方向に直交する方向を原稿１０２の幅方向という。２つの原稿ガイド１０３は、原稿１０２の幅方向にスライド可能であり、原稿トレイ１０１に載置される原稿１０２を挟み込んで整合する。給紙ローラ１２１は、原稿トレイ１０１に載置される原稿１０２を１枚ずつ取り込む。搬送ローラ１２２は、給紙ローラ１２１により取り込まれた原稿１０２を画像読取ユニット１０６へ搬送する。搬送経路１２０を挟んで画像読取ユニット１０６に対向する位置には、原稿背景板１０９が設けられる。画像読取ユニット１０６は、原稿背景板１０９との間に画像読取位置１０７を形成する。画像読取ユニット１０６は、搬送ローラ１２２により搬送された原稿１０２が画像読取位置１０７を通過する際に、原稿画像を読み取る。原稿画像が読み取られた原稿１０２は、排出ローラ１２３により画像読取位置１０７から排紙トレイ１０８へ排出される。
【００１３】
図２は、画像読取ユニット１０６の構成図である。画像読取ユニット１０６は、ＬＥＤ（Light Emitting Diode）光源２０１、レンズ２０２、ＣＣＤ（Charge Coupled Device）ラインセンサ２０３、及びミラー２０４〜２０７を備える。
【００１４】
ＬＥＤ光源２０１は、画像読取位置１０７を通過する原稿１０２に対して光を照射する。ＬＥＤ光源２０１は、複数のＬＥＤ素子（発光素子）が原稿１０２の幅方向に並んで構成されてもよく、また、原稿１０２の幅方向に移動可能に構成されてもよい。そのために画像読取ユニット１０６の主走査方向は、原稿１０２の幅方向になる。副走査方向は、原稿１０２の搬送方向になる。
【００１５】
ＬＥＤ光源２０１から原稿１０２に照射される光は、原稿１０２により反射される。原稿１０２による反射光は、ミラー２０４〜２０７により反射されて、レンズ２０２に導かれる。レンズ２０２は、反射光をＣＣＤラインセンサ２０３の受光面に集光する。ＣＣＤラインセンサ２０３は、長辺が主走査方向に伸びる矩形の受光面を有する。ＣＣＤラインセンサ２０３は、受光面に集光された反射光を光電変換し、原稿画像を表す電気信号であるアナログ画像データを生成して出力する。
【００１６】
図３は、画像読取装置の動作を制御するコントローラの構成図である。コントローラ３００は、画像読取装置に内蔵される。コントローラ３００は、ＣＰＵ（Central Processing Unit）４０１により画像読取装置による原稿画像の読取処理を制御する。また、コントローラは、原稿画像の斜行補正のために、Ａ／Ｄ変換部３０３、シェーディング補正部３０４、エッジ情報取得部３０５、エッジ判断部３０６、メモリ３０７、傾き式算出部３０８、基準位置算出部３０９、及び斜行補正部３１０を備える。コントローラ３００は、原稿搬送モータ１０５及び画像読取ユニット１０６（ＬＥＤ光源２０１及びＣＣＤラインセンサ２０３）に接続され、原稿搬送モータ１０５による原稿１０２の搬送制御及び画像読取ユニット１０６による画像読取制御を行う。コントローラ３００は、ＣＣＤラインセンサ２０３から原稿画像を表すアナログ画像データを取得し、斜行補正等の画像処理を行って画像データを生成する。生成された画像データは、複写やファクシミリ送信、パーソナルコンピュータ等への送信に用いられる。
【００１７】
コントローラ３００は、ボリューム抵抗器１０４に接続され、ボリューム抵抗器１０４の抵抗値を検出する。ボリューム抵抗器１０４は、２つの原稿ガイド１０３の間隔に応じて抵抗値が変化する。コントローラ３００は、ボリューム抵抗器１０４の抵抗値により２つの原稿ガイド１０３の間隔を検出することができる。コントローラ３００は、２つの原稿ガイド１０３の間隔により、原稿トレイ１０１に載置される原稿１０２の幅方向のサイズである原稿幅を検出する。
【００１８】
コントローラ３００は操作部４０６に接続される。操作部４０６は、入力装置であり、ユーザからの画像読取処理の開始指示、原稿サイズ指定等の指示を受け付けて、コントローラ３００に送信する。また操作部４０６は、ディスプレイ等の出力装置を備え、コントローラ３００の制御によりメッセージの表示等を行う。
【００１９】
ＣＰＵ３０１は、画像読取装置の各部の動作を制御することで画像読取処理を行う。ＣＰＵ３０１は、画像読取処理では、ＬＥＤ光源２０１の発光制御、原稿搬送モータ１０５による原稿１０２の搬送制御、ＣＣＤラインセンサ２０３による受光した反射光の光電変換等の制御を行う。ＣＰＵ３０１は、操作部４０６から入力されるユーザの指示に基づいて、画像読取処理を行う。また、ＣＰＵ３０１は、ボリューム抵抗器１０４の抵抗値に基づいて、原稿トレイ１０１に載置される原稿１０２の原稿幅を検出する。
【００２０】
Ａ／Ｄ変換部３０３は、ＣＣＤラインセンサ２０３から入力されるアナログ画像データをデジタル画像データに変換する。シェーディング補正部３０４は、デジタル画像データを処理して、ＬＥＤ光源２０１の光量の不均一性やＣＣＤラインセンサ２０３の画素感度の影響を補正（シェーディング補正）する。
【００２１】
エッジ情報取得部３０５は、シェーディング補正部３０４により補正されたデジタル画像データに基づいて、画像読取ユニット１０６の読み取りばらつきによるランダムノイズ除去を行う。エッジ情報取得部３０５は、シェーディング補正部３０４により補正されたデジタル画像データに基づいて、原稿画像の主走査方向（幅方向）に対する斜行量（傾き）を検知する。エッジ情報取得部３０５は、検知した斜行量をＣＰＵ３０１に入力する。また、エッジ情報取得部３０５は、シェーディング補正部３０４により補正されたデジタル画像データに基づいて、原稿画像のエッジ部分を表すエッジ情報を検出して、メモリ３０７に格納する。なお、エッジ情報取得部３０５は、デジタル画像データをシェーディング補正部３０４から直接取得する他に、メモリ３０７から取得してもよい。エッジ情報取得部３０５の詳細については後述する。
【００２２】
エッジ判断部３０６は、原稿画像の主走査方向（幅方向）の２つのエッジ部分を左主走査エッジ位置及び右主走査エッジ位置として検出し、ＣＰＵ３０１に入力する。エッジ判断部３０６は、エッジ情報取得部３０５で生成されるエッジ情報をメモリ３０７から取得し、ＣＰＵ３０１から指示される原稿画像のエッジ部分を判断するための閾値である原稿エッジ判断値に基づいて、原稿画像のエッジ部分を判断する。
【００２３】
傾き式算出部３０８は、エッジ判断部３０６で判断された左主走査エッジ位置及び右主走査エッジ位置に基づいて、原稿画像の傾きを表す一次式を算出するための範囲を判断する。傾き式算出部３０８は、メモリ３０７から取得するエッジ情報により一次式を算出するための範囲のデータを取得して、斜行量、傾き方向、切片、切片向きを表す一次式を算出する。傾き式算出部３０８は、算出した一次式をＣＰＵ３０１に入力する。
【００２４】
基準位置算出部３０９は、原稿１０２の搬送方向前側の原稿画像の二つの角部の位置（角位置）のいずれか一方を、原稿画像の斜行補正時の基準位置としてＣＰＵ３０１に入力する。基準位置算出部３０９は、原稿１０２の各辺の状態劣化及び原稿１０２の斜行量に関わらず、原稿１０２の正確な角位置を算出する。そのために基準位置算出部３０９は、エッジ情報と一次式とに基づいて、原稿１０２の搬送方向前側の二つの角位置のいずれか一方を、左主走査エッジ位置又は右主走査エッジ位置に応じて主走査方向に微調整する。基準位置算出部３０９は、傾き式算出部３０８で算出された一次式と、微調整した角位置とから、斜行補正時の基準位置となる原稿１０２の搬送方向前部の角位置を推定する。
【００２５】
斜行補正部３１０は、斜行量、傾き方向、及び斜行補正時の基準位置に基づいてデジタル画像データの斜行補正及び位置補正を行って、画像データを生成する。斜行補正部３１０は、生成した画像データを出力する。また、斜行補正部３１０は、シェーディング補正されたデジタル画像データをメモリ３０７に格納する。
【００２６】
以下にエッジ情報取得部３０５、エッジ判断部３０６、傾き式算出部３０８、基準位置算出部３０９、及び斜行補正部３１０の詳細について説明する。
【００２７】
（エッジ情報取得部）
図４は、エッジ情報取得部３０５の詳細な構成図である。エッジ情報取得部３０５は、入力データ選択部４０１、ノイズ除去部４０２、エッジ検出部４０３、主走査カウンタ４０４、及び副走査カウンタ４０５を備える。
【００２８】
入力データ選択部４０１は、ＣＰＵ３０１からの入力データ選択指示に基づいて、シェーディング補正部３０４及びメモリ３０７の少なくとも一方から取得するデジタル画像データを、ノイズ除去部４０２に送信する。ノイズ除去部４０２は、入力データ選択部４０１から取得したデジタル画像データに対して画像読取ユニット１０６に起因するランダムノイズ成分の除去処理を行う。ランダムノイズ成分は、エッジ検出処理時に原稿画像のエッジ部分であるエッジ画像に誤検知される可能性がある。そのためにノイズ除去部４０２は、エッジ検出前にノイズ成分の除去を行う。なお、ノイズ除去部４０２は、一般的な移動平均フィルタや、エッジ画像を保存しつつノイズ成分の除去が可能なバイラテラルフィルタ等によりノイズ除去を行うことができる。ノイズ除去部４０２は、ノイズ除去後のデジタル画像データをエッジ検出部４０３に送信する。
【００２９】
エッジ検出部４０３は、ノイズ除去後のデジタル画像データに対してエッジ検出処理を行い、原稿画像のエッジ部分を表すエッジ画像を検出する。主走査カウンタ４０４は、ＣＰＵ３０１から設定された主走査方向（幅方向）のエッジ検出範囲に基づき、エッジ検出部４０３がエッジを検出する主走査方向における範囲を制御する。副走査カウンタ４０５は、ＣＰＵ３０１から設定された副走査方向（搬送方向）のエッジ検出範囲に基づき、エッジ検出部４０３がエッジを検出する副走査方向における範囲を制御する。
エッジ検出部４０３は、主走査カウンタ４０４及び副走査カウンタ４０５により設定されたエッジ検出範囲内で、原稿画像のエッジ画像を検出する。エッジ検出部４０３は、検出したエッジ画像及びエッジ画像から生成される後述のエッジ情報をメモリ３０７に格納する。エッジ検出部４０３は、公知の一次微分、二次微分、ハフ変換等により、原稿画像のエッジ画像を検出する。
【００３０】
図５は、エッジ検出処理及び主走査方向の原稿画像のエッジ位置である主走査エッジ位置の検出処理の説明図である。図５の左右方向が主走査方向（幅方向）、上下方向が副走査方向（搬送方向）である。説明のために、図中左端の画素を１画素目、右端の画素を３６画素目とする。図５（ａ）は、原稿画像のエッジ検出範囲の説明図である。本実施形態では、主走査カウンタ４０４に設定される主走査方向のエッジ検出範囲Ｈが３６画素、副走査カウンタ４０５に設定される副走査方向のエッジ検出範囲Ｖが４画素である。エッジ検出範囲Ｖが４画素あるために、エッジ検出部４０３は、原稿画像が多少傾く場合であっても原稿画像のエッジ部分の検出を行うことができる。エッジ検出範囲Ｖは、原稿１０２の搬送状況に応じて設定される。エッジ検出範囲Ｖは、原稿１０２の搬送方向先端より前の位置から所定画素分（所定ライン分）の範囲に設定される。
原稿画像からエッジ検出処理により得られる検出画像は、原稿１０２のエッジ部分を表すエッジ画像１１０に、固着ゴミによる直線の固着ゴミ画像１１１及び浮遊ゴミによる破線の浮遊ゴミ画像１１２を含む。
【００３１】
エッジ検出部４０３は、エッジ検出範囲Ｈ、Ｖ内でエッジ検出を行うことで、図５（ｂ）の検出結果を得る。エッジ検出部４０３は、例えば背景色から色が変化する画素をエッジ部分として検出する。エッジ検出部４０３は、検出画像を、エッジ部分として検出した画素を「１」、エッジ部分として検出しなかった画素を「０」として、２値化して表す。固着ゴミ画像１１１及び浮遊ゴミ画像１１２もエッジ部分として検出されるために、当該画素が「１」となる。エッジ検出部４０３は、この検出画像に基づいて、主走査方向の位置毎に副走査方向に論理和演算を行い、主走査方向の画素毎に、一度でもエッジ画像が検出された画素を「１」、一度もエッジが検出されない画素を「０」とする演算結果を算出する。図５（ｃ）は、このような副走査方向の論理和演算の結果を表す。論理和演算の結果は、主走査方向の位置毎のエッジ画像の有無を表す。エッジ検出部４０３は、エッジ情報として、この論理和演算の結果をメモリ３０７に格納する。本実施形態では、論理和演算の結果、固着ゴミ画像１１１及び浮遊ゴミ画像１１２の影響で、主走査方向の図中右から３画素目及び３４画素目がエッジ部分として検出される。このようにエッジ検出部４０３は、デジタル画像データから図５（ｃ）に例示するエッジ情報を生成する。
【００３２】
（エッジ判断部）
エッジ判断部３０６は、エッジ検出部４０３で生成された図５（ｃ）のようなエッジ情報をメモリ３０７から取得し、このエッジ情報に基づいて、左右の主走査エッジ位置の検出処理を行う。図５（ｄ）は、エッジ判断部３０６が行う左右の主走査エッジ位置の検出処理の説明図である。エッジ判断部３０６は、エッジ情報を主走査方向の両方向から１画素ずつ順に確認して、エッジ画像１１０の主走査方向の両端部を検出する。本実施形態では主走査方向の両方向からエッジ情報の確認を同時に行うことで、エッジ画像１１０の左右両端部を検出する。
【００３３】
エッジ判断部３０６は、エッジ情報において、値が「１」に設定された画素が所定数連続した場合に、その先頭の画素を主走査エッジ位置と判断する。本実施形態では、値「１」が連続する所定数を「５」とする。連続する所定数は、ＣＰＵ３０１により原稿エッジ判断値としてエッジ判断部３０６に設定される。エッジ判断部３０６は、左端部原稿エッジカウンタ及び右端部原稿エッジカウンタ（いずれも不図示）を備え、値が「１」の画素が連続する数をカウントする。エッジ判断部３０６は、値が「１」に設定された画素を主走査エッジ位置としてラッチしておき、値が「０」の画素を検出すると、カウント値を「０」にクリアし、且つ主走査エッジ位置もクリアする。
【００３４】
図５（ｄ）の例では、３画素目が値「１」であるために、エッジ判断部３０６は、３画素目を左主走査エッジ位置にラッチして、左端部原稿エッジカウンタのカウント値を「１」に設定する。しかしながら、４画素目の値が「０」であるために、エッジ判断部３０６は、ラッチした左主走査エッジ位置をクリアして、左端部原稿エッジカウンタのカウント値を「０」にクリアする。
１０画素目が値「１」であるために、エッジ判断部３０６は、１０画素目を左主走査エッジ位置にラッチして、左端部原稿エッジカウンタのカウント値を「１」に設定する。値が「１」の画素は、２７画素目まで連続する。本実施形態では、原稿エッジ判断値が「５」であるために、エッジ判断部３０６は、１５画素目の値を確認した段階でラッチしている左主走査エッジ位置の画素を原稿画像の左端部のエッジ位置と判断する。
【００３５】
右端部のエッジ位置は、以下のように判断される。図５（ｄ）の例では３４画素目が値「１」であるために、エッジ判断部３０６は、３４画素目を右主走査エッジ位置にラッチして、右端部原稿エッジカウンタのカウント値を「１」に設定する。しかしながら、３３画素目の値が「０」であるために、エッジ判断部３０６は、ラッチした右主走査エッジ位置をクリアして、右端部原稿エッジカウンタのカウント値を「０」にクリアする。
２７画素目が値「１」であるために、エッジ判断部３０６は、２７画素目を右主走査エッジ位置にラッチして、右端部原稿エッジカウンタのカウント値を「１」に設定する。値が「１」の画素は、１０画素目まで連続する。本実施形態では、原稿エッジ判断値が「５」であるために、エッジ判断部３０６は、２３画素目の値を確認した段階でラッチしている右主走査エッジ位置の画素を原稿画像の右端部のエッジ位置と判断する。
【００３６】
以上のようにエッジ判断部３０６は、ＣＰＵ３０１から指示された所定数だけ値「１」に設定された画素が連続する場合に、その先頭の画素がゴミによる縦スジではなく、読み取った原稿画像のエッジ部分であると判断する。エッジ判断部３０６は、左端部の原稿開始位置が１０画素目、右端部の原稿開始位置が２７画素目と判断して、ＣＰＵ３０１へ左右両端部の主走査エッジ位置の判断結果を送信する。
【００３７】
図６は、原稿画像の左右の主走査エッジ位置を判断する処理を表すフローチャートである。画像読取装置は、ユーザによる操作部４０６からの画像読取処理の開始指示に応じて、原稿画像の読取処理を実行する。
【００３８】
コントローラ３００は、操作部４０６から画像読取処理の開始指示を受信すると、原稿搬送モータ１０５により原稿１０２の搬送を開始させる（Ｓ６０１）。画像読取ユニット１０６は、給紙ローラ１２１及び搬送ローラ１２２により原稿トレイ１０１から画像読取位置１０７まで搬送される原稿１０２から、搬送中に原稿画像を読み取る（Ｓ６０２）。画像読取ユニット１０６は、読み取った原稿画像を表すアナログ画像データをコントローラ３００に入力する。排出ローラ１２３は、原稿画像が読み取られた原稿１０２を画像読取位置１０７から排紙トレイ１０８に排出する。
【００３９】
コントローラ３００は、Ａ／Ｄ変換部３０３及びシェーディング補正部３０４により、画像読取ユニット１０６から取得したアナログ画像データをデジタルデータに変換した後にシェーディング補正して、デジタル画像データを生成する。コントローラ３００のエッジ情報取得部３０５は、エッジ検出部４０３により、デジタル画像データからエッジ検出を行う（Ｓ６０３）。エッジ検出できた場合（Ｓ６０３：Y）、エッジ検出部４０３は図５（ｃ）に例示するエッジ情報を生成してメモリ３０７に格納する（Ｓ６０４）。エッジ検出部４０３がエッジ検出できなかった場合（Ｓ６０３：N）、コントローラ３００は、画像読取装置にエラーが発生していると判断して、操作部４０６の出力装置によりエラー通知を行う（Ｓ６１０）。
【００４０】
エッジ判断部３０６は、メモリ３０７からエッジ情報を取得して、図５（ｄ）で説明したように、原稿画像の左主走査エッジ位置及び右主走査エッジ位置を検索する。そのためにエッジ判断部３０６は、エッジ情報から、値が「１」の画素を確認する（Ｓ６０５）。値が「１」の画素を確認した場合（Ｓ６０５：Y）、エッジ判断部３０６は、当該画素を原稿開始位置としてラッチする（Ｓ６０６）。エッジ判断部３０６は、値が「１」の画素が所定数連続するか否かを確認する（Ｓ６０７）。所定数連続する場合（Ｓ６０７：Y）、エッジ判断部３０６は、Ｓ６０６でラッチした画素を主走査エッジ位置に確定する（Ｓ６０８）。値が「１」の画素を確認しない場合（Ｓ６０５：N）、或いは値が「１」の画素が所定数連続しない場合（Ｓ６０７：N）、エッジ判断部３０６は、次の画素の値を確認する（Ｓ６０５）。エッジ判断部３０６は、Ｓ６０５〜Ｓ６０８の処理を、主走査方向の左側及び右側のそれぞれから行うことで、左右の主走査エッジ位置を確定する。
【００４１】
コントローラ３００は、原稿画像の左右の主走査エッジ位置が確定すると、原稿トレイ１０１に次の原稿１０２が載置されているか否かを判断する（Ｓ６０９）。原稿トレイ１０１は、例えば載置された原稿１０２を検知するセンサを備える。コントローラ３００は、このセンサの検知結果により、次の原稿１０２が原稿トレイ１０１に載置されているか否かを判断することができる。次の原稿１０２が載置されている場合（Ｓ６０９：Y）、コントローラ３００は、原稿搬送モータ１０５により次の原稿１０２の搬送を開始して、画像読取処理を繰り返す（Ｓ６０１）。次の原稿１０２が載置されていない場合（Ｓ６０９：N）、コントローラ３００は、主走査エッジ位置の判断処理を終了する。
【００４２】
（副走査方向のエッジ検出）
原稿画像の副走査方向のエッジは、エッジ情報取得部３０５のエッジ検出部４０３により行われる。エッジ検出部４０３による原稿画像の副走査方向のエッジ画像の検出、つまり搬送方向先端のエッジ検出処理について説明する。搬送方向における原稿１０２の先端部には、ＬＥＤ光源２０１からの光と搬送されている原稿１０２との位置関係から、影が生じる。この影部は、搬送方向にある程度の幅をもっている。原稿１０２の搬送方向先端の斜行補正を精度よく行うためには、原稿画像から副走査方向のエッジ画像を正確に検出する必要がある。図７は、原稿の影の画像と原稿１０２の搬送方向先端のエッジ画像との関係の説明図である。図示するように、エッジ検出部４０３は、影により生じるエッジ部を影部エッジ画像７０１として検出し、影部から原稿部に変化する部分を原稿部エッジ画像７０２として検出する。このように、影部エッジ画像７０１と原稿部エッジ画像７０２とは、エッジ検出部４０３により二重に検出される。これは、エッジ検出時の検出局所領域（フィルタサイズ）にもよるが、影幅が広く出た場合には影部の輝度が安定する傾向にあり、検出局所領域（フィルタサイズ）内でのエッジ変化が無いと判定されてしまうことにより発生する。
【００４３】
原稿画像からエッジ画像を正確に検出するために、エッジ検出部４０３は、図５（ｂ）のエッジ検出結果を副走査方向に確認して、２回目のエッジ変化（「０」から「１」へ値の変化）位置（画素）を原稿部エッジ画像７０２として検出する。また、影部エッジ画像７０１が検出されない場合がある。この場合、エッジ画像が一重に出現する。エッジ検出部４０３は、１回目のエッジ変化（「０」から「１」の変化）位置（画素）をラッチしておき、このラッチした位置から副走査方向に所定画素数だけエッジ変化の有無を確認する。エッジ検出部４０３は、エッジ変化がなければラッチした位置を原稿部エッジ画像７０２として検出する。原稿部エッジ画像７０２が原稿画像の副走査方向のエッジ位置（副走査エッジ位置）となる。
【００４４】
図８は、このような副走査エッジ位置の検出処理を表すフローチャートである。この処理は、図６の主走査エッジ位置を判断する処理のＳ６０３で、エッジ検出部４０３がデジタル画像データからエッジ検出を行って生成する図５（ｂ）のエッジ検出結果を用いて実行される。
【００４５】
エッジ検出部４０３は、副走査方向にエッジ検出結果の画素毎の値を確認する（Ｓ８０１）。値に変化（「０」から「１」への変化）がある場合（Ｓ８０１：Y）、エッジ検出部４０３は、値が変化した画素を副走査方向の原稿開始位置としてラッチする（Ｓ８０２）。エッジ検出部４０３は、引き続き、副走査方向にエッジ検出結果の画素毎の値を確認する（Ｓ８０３）。値に変化（「０」から「１」への変化）がある場合（Ｓ８０３：Y）、エッジ検出部４０３は、Ｓ８０２の処理で副走査方向の原稿開始位置としてラッチした画素を、今回値が変化した画素に更新する（Ｓ８０４）。値に変化がない場合（Ｓ８０３：N）、エッジ検出部４０３は、副走査方向に所定数の画素の値の変化が無いことを確認するまで、値の確認を行う（Ｓ８０７：N、Ｓ８０３）。
【００４６】
副走査方向の原稿開始位置の更新後、或いは副走査方向に所定数の画素の値に変化が無いことを確認した場合（Ｓ８０７：Y）、エッジ検出部４０３は、ラッチしている画素を、原稿画像の副走査エッジ位置として検出する。エッジ検出部４０３は、検出した副走査エッジ位置をメモリ３０７に格納する（Ｓ８０６）。以上の処理により、原稿画像の副走査エッジ位置が検出される。
【００４７】
（傾き式算出部）
傾き式算出部３０８による一次式の算出処理について説明する。傾き式算出部３０８は、エッジ判断部３０６で判断された左右両端部の主走査エッジ位置及びエッジ検出部４０３で検出された副走査エッジ位置に基づいて、一次式の算出に用いるエッジ検出結果の有効データ範囲を判断する。傾き式算出部３０８は、有効データ範囲で原稿画像の主走査方向に対する斜行量を表す一次式を算出する。一次式の算出は、例えば一般的な最小二乗法やハフ変換により行われる。原稿１０２の端部、特に角部は、破れ、自然劣化、角折れ等により劣化する可能性がある。そのために傾き式算出部３０８は、一次式の算出を有効データ範囲内のエッジ検出結果により行う。傾き式算出部３０８は、エッジ判断部３０６で判断した左右の主走査エッジ位置から、原稿画像中央位置（（左主走査エッジ位置）＋（右主走査エッジ位置）／２）及び原稿画像長（（右主走査エッジ位置）−（左主走査エッジ位置））を算出する。傾き式算出部３０８は、エッジ検出結果から、原稿画像長の範囲内（右主走査エッジ位置と左主走査エッジ位置との間）で、原稿画像中央位置を中心にして主走査方向に所定数の画素の値を取得する。原稿画像中央位置を中心にして主走査方向に所定数の画素が、有効データ範囲となる。
【００４８】
図９は、有効データ範囲の説明図である。ここでは、主走査方向の画素数が７２００画素であり、図の最も左側の画素が１画素目、最も右側の画素が７２００画素目である。エッジ判断部３０６は、左主走査エッジ位置を１００画素目、右主走査エッジ位置を５０６０画素目と判断する。この場合、原稿画像中央位置は２５８０画素目となり、原稿画像長は４９６０画素となる。図９では、原稿画像中央位置を中心にして、主走査方向に２０４８画素の範囲（１５５７画素目〜２６０４画素目）を有効データ範囲とする。傾き式算出部３０８は、有効データ範囲内の副走査エッジ位置に基づいて、（ｙ＝ａｘ＋ｂ）で表される一次式を算出する。具体的には、斜行量及び切片の傾き方向（符号）に関して、プラスの場合「０」、マイナスの場合「１」として、斜行量（ａ）、傾き方向（０又は１）、切片（ｂ）、切片方向（０又は１）が算出される。なお、本処理により算出された原稿画像長をＣＰＵ３０１へ出力し、読取原稿の主走査サイズを確定する目的で使用することも可能である。
【００４９】
（基準位置算出部）
基準位置算出部３０９による基準位置算出処理について説明する。ここでは、原稿画像の副走査方向端部の左端部角位置を基準位置として算出する例を説明する。なお、基準位置算出部３０９は、ＣＰＵ３０１の指示により、左端部角位置及び右端部角位置のいずれか一方を基準位置として算出する。
【００５０】
原稿１０２の端部が劣化している場合、エッジ検出結果から正確に原稿画像の角位置を判断することができないため、角位置を推定する必要がある。角位置の正確な推定には、エッジ判断部３０６で判断された左主走査エッジ位置と、エッジ検出部４０３で検出された副走査エッジ位置、傾き式算出部３０８で算出された一次式を用いる。
【００５１】
図１０は、基準位置算出処理の説明図である。図１０は、左主走査エッジ位置ｘ０が「１００」、左主走査エッジ位置のエッジ画像１１０の副走査方向の位置ｙ０が「３５０」、一次式が（ｙ＝０．２ｘ＋１５０）の場合の基準位置（ｘ２，ｙ２）を表す。この場合、左主走査エッジ位置を通る副走査方向に伸びる直線と、一次式と、の交点（仮想基準位置）の副走査方向の位置ｙ１は、（ｙ１＝０．２×１００＋１５０＝１７０）となる。左主走査エッジ位置ｘ０と位置ｙ１との副走査方向の差分Δｙは、（Δｙ＝３５０−１７０＝１８０）となる。差分Δｙと斜行量ａとの乗算値である３６画素が、主走査方向の調整量となる。主走査方向の調整量の算出は、従来は複雑で精密な計算により行われるが、本実施形態では、このように簡素化して行われる。この算出方法では、原稿画像の傾きが大きくなるにつれて調整量の精度が低下する。しかし、斜行補正部３１０で補正可能な傾きの範囲では、１画素未満（例えば６００ｄｐｉで４２ｕｍ未満）での調整が可能なようにＣＰＵ３０１で制御される。
【００５２】
基準位置算出部３０９は、算出した調整量により仮想基準位置を調整することで基準位置を算出する。基準位置算出部３０９は、算出した主走査方向の調整量を、左主走査エッジ位置に対してプラス方向（０）、マイナス方向（１）のいずれに調整すればよいかを判断する。傾き式算出部３０８で算出された一次式の傾き方向がプラス（０）の場合、原稿画像は、右下に傾いている状態であり、左主走査エッジ位置に対してプラス方向に補正される。傾き式算出部３０８で算出された一次式の傾き方向がマイナス（１）の場合、原稿画像は、右上に傾いている状態であり、左主走査エッジ位置に対してマイナス方向に補正される。
【００５３】
例えば、図１０のように原稿画像が右下に傾いて（傾き方向：プラス（０））おり、左主走査エッジ位置ｘ０が１００画素目であり、調整量が３６画素である場合、基準位置算出部３０９は、プラス方向（０）の調整と判断する。また基準位置算出部３０９は、（１００＋３６＝１３６）画素目を原稿画像の左端部の推定主走査エッジ位置ｘ２と推定する。推定副走査エッジ位置ｙ２は、調整された左端部の推定主走査エッジ位置ｘ２を一次式に代入することで算出される。図１０の例では、一次式に左端部の推定主走査エッジ位置ｘ２を代入することで左端部の推定副走査位置（ｙ２＝０．２＊１３６＋１５０＝１７７）が算出される。なお、この例では小数点以下を四捨五入しているが、切り捨ててもよい。これらの処理により、基準位置算出部３０９は、斜行補正部３１０が斜行補正に用いる斜行補正時の基準位置（ｘ２，ｙ２）を推定する。
【００５４】
図１１は、基準位置算出部３０９による斜行補正時の基準位置の算出処理を表すフローチャートである。基準位置算出部３０９は、ＣＰＵ３０１からの指示により、この処理を実行する。以下の説明では、左端部角位置を基準位置として推定する場合を説明するが、右端部角位置を基準位置として推定する場合も同様の処理となる。
【００５５】
基準位置算出部３０９は、エッジ判断部３０６で判断された左主走査エッジ位置ｘ０に対応する副走査方向の位置ｙ０を取得する（Ｓ１１０１）。基準位置算出部３０９は、傾き式算出部３０８で算出された一次式にエッジ判断部３０６で判断された左主走査エッジ位置ｘ０を代入して、仮想基準位置の副走査方向の位置ｙ１を算出する（Ｓ１１０２）。基準位置算出部３０９は、仮想基準位置の副走査方向の位置ｙ１から、左主走査エッジ位置の副走査位置ｙ０を減算して差分Δｙを算出する（Ｓ１１０３）。基準位置算出部３０９は、差分Δｙと傾き式算出部３０８で算出された一次式の斜行量ａとを乗算して、調整量Δｘを算出する（Ｓ１１０４）。
【００５６】
基準位置算出部３０９は、傾き式算出部３０８で算出された一次式の傾き方向を確認する（Ｓ１１０５）。傾き方向がプラス（０）の場合（Ｓ１１０５：Y）、基準位置算出部３０９は、左主走査エッジ位置ｘ０に調整量Δｘを加算して推定主走査エッジ位置ｘ２を算出する（Ｓ１１０６）。傾き方向がマイナス（１）の場合（Ｓ１１０５：N）、基準位置算出部３０９は、左主走査エッジ位置ｘ０から調整量Δｘを減算することで推定主走査エッジ位置ｘ２を算出する（Ｓ１１０７）。
【００５７】
基準位置算出部３０９は、傾き式算出部３０８で算出された一次式に、算出した推定主走査エッジ位置ｘ２を代入することで、斜行補正時の基準位置となる推定副走査エッジ位置ｙ２を算出する（Ｓ１１０８）。基準位置算出部３０９は、算出した推定主走査エッジ位置ｘ２及び推定副走査エッジ位置ｙ２を、斜行補正の基準位置として出力する（Ｓ１１０９）。以上の処理により、斜行補正時の基準位置が算出される。
【００５８】
（斜行補正部）
斜行補正部３１０は、傾き式算出部３０８で算出された一次式に含まれる斜行量、傾き方向、及び基準位置算出部３０９で推定された基準位置に基づいて、原稿画像の斜行補正及び位置補正を行う。斜行補正部３１０は、例えば一般的なアフィン変換等により、斜行補正を行う。
【００５９】
斜行補正部３１０は、下記に示すアフィン変換の式によって、斜行量に応じた角度θの補正を行った原稿画像の各画素の位置（主走査方向（Ｘ），副走査方向（Ｙ））を算出する。斜行補正部３１０は、メモリ３０７に格納されたデジタル画像データをアフィン変換することで、斜行補正した原稿画像を表す画像データを出力する。基準位置（ｘ２，ｙ２）は、斜行補正されたデジタル画像データを平行移動させるための移動量となる。この移動量によって、原稿画像の先端部及び端部の出力位置を合わせることができる。アフィン変換による一連の処理を図１２に示す。斜行補正部３１０は、原稿画像を回転処理及び平行移動することで斜行補正を行う。
【００６０】
Ｘ  ＝  ｘｃｏｓθ  −  ｙｓｉｎθ  ＋  ｘ２
Ｙ  ＝  ｘｓｉｎθ  ＋  ｙｃｏｓθ  ＋  ｙ２
Ｘ：主走査方向の補正後の画素位置，Ｙ：副走査方向の補正後の画素位置
ｘ：補正前の主走査方向の画素位置，ｙ：補正前の副走査方向の画素位置
ｘ２：主走査方向の平行移動量（主走査方向の基準位置）
ｙ２：副走査方向の平行移動量（副走査方向の基準位置）
θ：原稿先端から算出された傾きに基づく角度
【００６１】
以上のように本実施形態の画像読取装置は、原稿画像の主走査方向のエッジの劣化部分を除く範囲内で斜行量を算出して斜行補正を行う。そのために、固定ゴミ、浮遊ゴミによるゴミ画像の影響、及び原稿１０２のエッジ部分の劣化を除いて、デジタル画像データから精度よく原稿画像の斜行補正を行うことが可能となる。
【００６２】
［第２実施形態］
第２実施形態の画像読取装置のハードウェア構成は、図１に示す第１実施形態の画像読取装置の構成と同様であるので、説明を省略する。原稿読取装置は、原稿搬送機構の取り付けが調整されておらず、原稿搬送機構が原稿１０２の搬送方向に対して大きく傾いている場合、基準位置の推定が正確に行えなくなる可能性がある。図１３は、原稿搬送機構及び画像読取ユニット１０６の取り付けが調整されていない場合の、原稿１０２の搬送状態及び読み取った原稿画像の対応を表す図である。
【００６３】
原稿画像は、基本的には平行四辺形に読み取られる。そのために原稿画像の傾き方向（プラス「０」、マイナス「１」）の情報のみでは、基準位置算出部３０９は、主走査エッジ位置の調整量の算出及び傾き方向（プラス、マイナス）の判断ができない。第２実施形態では、調整量の算出及び傾き整方向の判断のために、下記の処理により原稿搬送機構の斜行量の取得を行う。
【００６４】
第２実施形態の画像読取装置は、斜行補正機能を外部からの操作により解除できる構成になっている。画像読取装置は、斜行補正機能を解除した状態で搬送機構及び画像読取ユニット１０６の取り付け状態に起因する斜行量を算出する。そのために、画像読取装置は、図１４に示す斜行量算出用のテスト原稿を、斜行補正機能を解除した状態で読み取る。テスト原稿は、各辺に平行に縦横に直線が印字される。画像読取装置は、このテスト原稿を読み取り、読み取った原稿画像から線の斜行量の差分を算出する。また、画像読取装置の調整者は、図１３に示す原稿画像のパターンから原稿搬送機構及び画像読取ユニット１０６の取り付け傾き方向を判定する。算出した差分は、原稿搬送機構及び画像読取ユニット１０６の斜行量に相当する。
【００６５】
図１５は、第２実施形態のコントローラ４００の構成図である。コントローラ４００は、第１実施形態のコントローラ３００にオフセット記憶部１５０１を追加した構成である。オフセット記憶部１５０１は、原稿搬送機構及び画像読取ユニット１０６に起因する斜行量及び傾き方向を記憶する。オフセット記憶部１５０１の記憶内容は、斜行補正機能の有効時に使用される。オフセット記憶部１５０１は、画像読取装置の使用前に予め測定された結果が記憶される。
【００６６】
あるいは、調整者が操作部４０６により画像読取装置を調整モードに設定して、図１４のテスト原稿を複写出力させる。画像読取装置は、調整モードに設定されることで、斜行補正機能が解除される。調整者は、複写出力の結果から原稿搬送機構及び画像読取ユニット１０６の斜行量と方向を判定して、操作部４０６から判定結果を入力する。入力された判定結果は、ＣＰＵ３０１によりオフセット記憶部１５０１に記憶される。
【００６７】
図１６は、第２実施形態の斜行補正時の基準位置の算出処理を表すフローチャートである。基準位置算出部３０９は、ＣＰＵ３０１からの指示により、この処理を実行する。以下の説明では、左端部角位置を基準位置として推定する場合を説明するが、右端部角位置を基準位置として推定する場合も同様の処理となる。
【００６８】
基準位置算出部３０９は、エッジ判断部３０６で判断された左主走査エッジ位置ｘ０に対応する副走査方向の位置ｙ０を取得する（Ｓ１６０１）。基準位置算出部３０９は、傾き式算出部３０８で算出された一次式にエッジ判断部３０６で判断された左主走査エッジ位置ｘ０を代入して、仮想基準位置の副走査方向の位置ｙ１を算出する（Ｓ１６０２）。基準位置算出部３０９は、仮想基準位置の副走査方向の位置ｙ１から、左主走査エッジ位置の副走査位置ｙ０を減算して差分Δｙを算出する（Ｓ１６０３）。
【００６９】
基準位置算出部３０９は、オフセット記憶部１５０１から斜行量α及びその方向（「０」又は「１」）を取得し、傾き式算出部３０８で算出された斜行量θ及びその方向（「０」又は「１」）との加算処理を行う（Ｓ１６０４）。加算結果は、傾き量ｓｋｅｗとなる。傾き量ｓｋｅｗは、例えば、（α−θ）で表される。
【００７０】
基準位置算出部３０９は、算出した傾き量ｓｋｅｗが０以上であるか否かを判断する（Ｓ１６０５）。０以上である場合（Ｓ１６０５：Y）、基準位置算出部３０９は、推定主走査エッジ位置ｘ２を、左主走査エッジ位置ｘ０に、｜斜行量θ−斜行量α｜と差分Δｙの積を加算することで算出する（Ｓ１１０６）。０未満である場合（Ｓ１６０５：N）、基準位置算出部３０９は、推定主走査エッジ位置ｘ２を、左主走査エッジ位置ｘ０から、｜斜行量θ−斜行量α｜と差分Δｙの積を減算することで算出する（Ｓ１６０７）。
【００７１】
基準位置算出部３０９は、傾き式算出部３０８で算出された一次式に、算出した推定主走査エッジ位置ｘ２を代入することで、斜行補正時の基準位置となる推定副走査エッジ位置ｙ２を算出する（Ｓ１６０８）。基準位置算出部３０９は、算出した推定主走査エッジ位置ｘ２及び推定副走査エッジ位置ｙ２を、斜行補正部３１０による斜行補正時に用いられる斜行補正の基準位置として出力する（Ｓ１６０９）。以上の処理により、斜行補正時の基準位置が算出される。
【００７２】
斜行補正部３１０は、ＣＰＵ３０１の指示により、オフセット記憶部１５０１から斜行量α及び方向（「０」又は「１」）を取得し、傾き式算出部３０８で算出された一次式に含まれる斜行量に基づいて、原稿画像の斜行補正及び位置補正を行う。斜行補正部３１０は、例えば一般的なアフィン変換等により、斜行補正を行う。
【００７３】
斜行補正部３１０は、下記に示すアフィン変換の式によって、斜行量に応じた角度θの補正を行った画素の位置（主走査方向（Ｘ），副走査方向（Ｙ））を算出する。斜行補正部３１０は、メモリ３０７に格納されたデジタル画像データをアフィン変換することで、斜行を補正した画像データを出力する。斜行量（α）の前の符号は、取り付け傾き方向が「０」の場合プラス、「１」の場合マイナスとなる。
【００７４】
Ｘ  ＝  ｘｃｏｓθ  −  ｙｓｉｎθ  ＋  ｘ２
Ｙ  ＝  ｘｓｉｎ（θ±α）  ＋  ｙｃｏｓ（θ±α）＋  ｙ２
Ｘ：主走査方向の補正後の画素位置，Ｙ：副走査方向の補正後の画素位置
ｘ：補正前の主走査方向の画素位置，ｙ：補正前の副走査方向の画素位置
ｘ２：主走査方向の平行移動量（主走査回転基準位置）
ｙ２：副走査方向の平行移動量（副走査回転基準位置）
θ：原稿先端から算出された傾き基づく角度
α：取り付け斜行量
【００７５】
以上のような構成により、画像読取装置は、第１実施形態の画像読取装置の効果に加え、原稿搬送機構や画像読取ユニット１０６の取り付けに起因する原稿画像の斜行の補正を行うことができる。そのために、デジタル画像データから精度よく原稿画像の斜行補正を行うことが可能となる。
【符号の説明】
【００７６】
１０１…原稿トレイ、１０２…原稿、１０３…原稿ガイド、１０４…ボリューム抵抗器、１０５…原稿搬送モータ、１０６…画像読取ユニット、１０７…画像読取位置、１０８…排紙トレイ、１０９…原稿背景板、２０１…ＬＥＤ光源、２０２…レンズ、２０３…ＣＣＤラインセンサ、２０４〜２０７…ミラー、３００，４００…コントローラ、４０１…ＣＰＵ、３０３…Ａ／Ｄ変換部、３０４…シェーディング補正部、３０５…エッジ情報取得部、３０６…エッジ判断部、３０７…メモリ、３０８…傾き式算出部、３０９…基準位置算出部、３１０…斜行補正部、１５０１…オフセット記憶部
【図１】
0006671927.tif 000002
【図２】
0006671927.tif 000003
【図３】
0006671927.tif 000004
【図４】
0006671927.tif 000005
【図５】
0006671927.tif 000006
【図６】
0006671927.tif 000007
【図７】
0006671927.tif 000008
【図８】
0006671927.tif 000009
【図９】
0006671927.tif 000010
【図１０】
0006671927.tif 000011
【図１１】
0006671927.tif 000012
【図１２】
0006671927.tif 000013
【図１３】
0006671927.tif 000014
【図１４】
0006671927.tif 000015
【図１５】
0006671927.tif 000016
【図１６】
0006671927.tif 000017