原稿に対して相対移動しながら、主走査方向に前記原稿を読み取る読取部と、制御部と、を備え、前記制御部は、前記読取部によって前記主走査方向と直交する副走査方向に、前記原稿の先端を含む所定範囲に亘って読み取られた前記所定範囲の読取画像を抽出する読取画像抽出処理と、前記読取画像のうち、前記読取部によって前記副走査方向に先に読み取られた側の端である先読取端上の前記主走査方向の中心を開始点とし、前記開始点から前記副走査方向に前記読取画像の変化点を検索し、前記開始点を前記主走査方向に移動させて前記変化点の検索を繰り返し、前記開始点を前記主走査方向に移動させても前記変化点が検索されない場合に前記変化点の検索を終了する第1変化点検索処理と、前記読取画像のうち、前記開始点から前記副走査方向に前記読取画像の変化点を検索し、前記開始点を前記主走査方向と逆方向に移動させて前記変化点の検索を繰り返し、前記開始点を前記主走査方向と逆方向に移動させても前記変化点が検索されない場合に前記変化点の検索を終了する第2変化点検索処理と、の少なくとも一方の変化点検索処理と、前記変化点検索処理部によって検索された前記変化点から前記原稿の主走査方向に対する傾きを求め、前記傾きから前記読取部が読み取った読取画像の傾き補正を行う傾き補正処理と、を実行する画像読取装置。請求項1に記載の画像読取装置であって、前記制御部は、前記第1変化点検索処理と前記第2変化点検索処理の両方の変化点検索処理を実行し、前記傾き補正処理では、前記第1変化点検索処理部と、前記第2変化点検索処理部と、によってそれぞれ検索された前記変化点から前記原稿の主走査方向に対する傾きを求める、画像読取装置。請求項2に記載の画像読取装置であって、前記読取画像は、前記主走査方向及び前記副走査方向に単位画像を示す読取データが複数個並んで配置されて構成されており、前記第1変化点探索処理では、前記開始点を前記主走査方向に第1データ数毎に移動させて前記変化点の検索を繰り返し、前記第2変化点探索処理では、前記開始点を前記主走査方向と逆方向に第2データ数毎に移動させて前記変化点の検索を繰り返す、画像読取装置。請求項3に記載の画像読取装置であって、前記読取画像抽出処理では、前記所定範囲の読取画像を、前記読取画像において閾値よりも低い輝度を有する前記読取データを第1データとし、前記読取画像において前記閾値よりも高い輝度を有する前記読取データを第2データとした2値化されたデータであるエッジ画像として抽出し、前記第1変化点検索処理及び前記第2変化点検索処理では、前記開始点から前記副走査方向に前記エッジ画像を検出し、前記副走査方向に連続した第1データを検出した場合に前記変化点が検索されたと判断する、画像読取装置。請求項2ないし請求項4のいずれか一項に記載の画像読取装置であって、前記第1変化点探索処理及び前記第2変化点探索処理では、前記開始点を移動させて前記開始点から前記副走査方向に前記所定範囲に亘って検索しても前記変化点が検索されないことが連続して生じた場合に、前記変化点が検索されないと判断し、前記変化点の検索を終了する、画像読取装置。請求項2ないし請求項5のいずれか一項に記載の画像読取装置であって、前記第1変化点検索処理では、前記変化点の探索を終了した前記主走査方向の位置である第1位置を記憶し、前記第2変化点検索処理では、前記変化点の探索を終了した前記主走査方向の位置である第2位置を記憶し、前記制御部は、更に、前記読取画像のうち、前記主走査方向が前記第1位置となる点を開始点とし、前記開始点から前記主走査方向と逆方向に前記読取画像の変化点を検索する第3変化点検索処理と、前記読取画像のうち、前記主走査方向が前記第2位置となる点を開始点とし、前記開始点から前記主走査方向に前記読取画像の変化点を検索する第4変化点検索処理と、前記傾き補正処理によって求められた傾きと、前記第3変化点探索処理及び前記第4変化点探索処理によってそれぞれ求められた変化点とから、前記原稿の先端側の角位置を検出する原稿角位置検出処理と、前記原稿角位置検出処理によって求められた前記原稿の角位置から前記原稿の幅を求め、該幅から原稿のサイズを検出する原稿サイズ検出処理と、を実行する画像読取装置。請求項4に記載の画像読取装置であって、前記エッジ画像には、前記主走査方向に延びる第1軸と、前記副走査方向に延びる第2軸とを用いた座標系が設定され、前記変化点には当該座標系を用いて第1軸方向の第1座標及び前記第2軸方向の第2座標が設定されており、前記第1変化点検索処理では、検索された前記変化点を第3データ数毎の組に分け、各組に含まれる前記変化点から前記第2座標が中央値となる変化点を代表変化点として選出し、前記第2変化点検索処理では、検索された前記変化点を第4データ数毎の組に分け、各組に含まれる前記変化点から前記第2座標が中央値となる変化点を代表変化点として選出し、前記傾き補正処理では、前記第1変化点検索処理と、前記第2変化点検索処理と、によってそれぞれ選出された前記代表変化点から前記原稿の主走査方向に対する傾きを求める、画像読取装置。請求項1ないし請求項7のいずれか一項に記載の画像読取装置であって、更に、前記原稿を搬送経路上に搬送する搬送部を備え、前記読取部は、前記搬送部によって搬送される原稿を前記搬送経路上の固定された箇所で読み取り、前記読取画像抽出処理では、前記搬送部によって搬送される原稿の先端から前記所定範囲の読取画像を抽出し、前記傾き補正処理では、前記原稿の傾きを検出すると前記読取画像の傾き補正を開始する、画像読取装置。請求項8に記載の画像読取装置であって、更に、前記原稿が前記主走査方向の中心に載置される載置台を備え、前記搬送部は、前記載置台に載置された原稿を順に搬送する、画像読取装置。上記のように、従来技術では、主走査方向において、エッジ画像データの端から端までエッジ点の検出が行われていた。しかし、エッジ画像データでは、主走査方向の少なくとも一方の端部においてエッジ点が存在しないことがあるため、従来技術のエッジ点の検出方法では、必要以上にエッジ点の検出が行われ、原稿の傾きを求めるまでの時間が長期化してしまう問題が生じていた。本発明は、原稿の傾きを求めて傾き補正を行う画像読取装置において、原稿の傾きを求めるまでの時間を短縮する技術を開示する。本明細書によって開示される画像読取装置は、原稿に対して相対移動しながら、主走査方向に前記原稿を読み取る読取部と、制御部と、を備え、前記制御部は、前記読取部によって前記主走査方向と直交する副走査方向に、前記原稿の先端を含む所定範囲に亘って読み取られた前記所定範囲の読取画像を抽出する読取画像抽出処理と、前記読取画像のうち、前記読取部によって前記副走査方向に先に読み取られた側の端である先読取端上の前記主走査方向の中心を開始点とし、前記開始点から前記副走査方向に前記読取画像の変化点を検索し、前記開始点を前記主走査方向に移動させて前記変化点の検索を繰り返し、前記開始点を前記主走査方向に移動させても前記変化点が検索されない場合に前記変化点の検索を終了する第1変化点検索処理と、前記読取画像のうち、前記開始点から前記副走査方向に前記読取画像の変化点を検索し、前記開始点を前記主走査方向と逆方向に移動させて前記変化点の検索を繰り返し、前記開始点を前記主走査方向と逆方向に移動させても前記変化点が検索されない場合に前記変化点の検索を終了する第2変化点検索処理と、の少なくとも一方の変化点検索処理と、前記変化点検索処理部によって検索された前記変化点から前記原稿の主走査方向に対する傾きを求め、前記傾きから前記読取部が読み取った読取画像の傾き補正を行う傾き補正処理と、を実行する。また、上記の画像読取装置では、前記制御部は、前記第1変化点検索処理と前記第2変化点検索処理の両方の変化点検索処理を実行し、前記傾き補正処理では、前記第1変化点検索処理部と、前記第2変化点検索処理部と、によってそれぞれ検索された前記変化点から前記原稿の主走査方向に対する傾きを求める構成としても良い。また、上記の画像読取装置では、前記読取画像は、前記主走査方向及び前記副走査方向に単位画像を示す読取データが複数個並んで配置されて構成されており、前記第1変化点探索処理では、前記開始点を前記主走査方向に第1データ数毎に移動させて前記変化点の検索を繰り返し、前記第2変化点探索処理では、前記開始点を前記主走査方向と逆方向に第2データ数毎に移動させて前記変化点の検索を繰り返す構成としても良い。また、上記の画像読取装置では、前記読取画像抽出処理では、前記所定範囲の読取画像を、前記読取画像において閾値よりも低い輝度を有する前記読取データを第1データとし、前記読取画像において前記閾値よりも高い輝度を有する前記読取データを第2データとした2値化されたデータであるエッジ画像として抽出し、前記第1変化点検索処理及び前記第2変化点検索処理では、前記開始点から前記副走査方向に前記エッジ画像を検出し、前記副走査方向に連続した第1データを検出した場合に前記変化点が検索されたと判断する構成としても良い。また、上記の画像読取装置では、前記第1変化点探索処理及び前記第2変化点探索処理では、前記開始点を移動させて前記開始点から前記副走査方向に前記所定範囲に亘って検索しても前記変化点が検索されないことが連続して生じた場合に、前記変化点が検索されないと判断し、前記変化点の検索を終了する構成としても良い。また、上記の画像読取装置では、前記第1変化点検索処理では、前記変化点の探索を終了した前記主走査方向の位置である第1位置を記憶し、前記第2変化点検索処理では、前記変化点の探索を終了した前記主走査方向の位置である第2位置を記憶し、前記制御部は、更に、前記読取画像のうち、前記主走査方向が前記第1位置となる点を開始点とし、前記開始点から前記主走査方向と逆方向に前記読取画像の変化点を検索する第3変化点検索処理と、前記読取画像のうち、前記主走査方向が前記第2位置となる点を開始点とし、前記開始点から前記主走査方向に前記読取画像の変化点を検索する第4変化点検索処理と、前記傾き補正処理によって求められた傾きと、前記第3変化点探索処理及び前記第4変化点探索処理によってそれぞれ求められた変化点とから、前記原稿の先端側の角位置を検出する原稿角位置検出処理と、前記原稿角位置検出処理によって求められた前記原稿の角位置から前記原稿の幅を求め、該幅から原稿のサイズを検出する原稿サイズ検出処理と、を実行する構成としても良い。また、上記の画像読取装置では、前記エッジ画像には、前記主走査方向に延びる第1軸と、前記副走査方向に延びる第2軸とを用いた座標系が設定され、前記変化点には当該座標系を用いて第1軸方向の第1座標及び前記第2軸方向の第2座標が設定されており、前記第1変化点検索処理では、検索された前記変化点を第3データ数毎の組に分け、各組に含まれる前記変化点から前記第2座標が中央値となる変化点を代表変化点として選出し、前記第2変化点検索処理では、検索された前記変化点を第4データ数毎の組に分け、各組に含まれる前記変化点から前記第2座標が中央値となる変化点を代表変化点として選出し、前記傾き補正処理では、前記第1変化点検索処理と、前記第2変化点検索処理と、によってそれぞれ選出された前記代表変化点から前記原稿の主走査方向に対する傾きを求める構成としても良い。また、上記の画像読取装置では、更に、前記原稿を搬送経路上に搬送する搬送部を備え、前記読取部は、前記搬送部によって搬送される原稿を前記搬送経路上の固定された箇所で読み取り、前記読取画像抽出処理では、前記搬送部によって搬送される原稿の先端から前記所定範囲の読取画像を抽出し、前記傾き補正処理では、前記原稿の傾きを検出すると前記読取画像の傾き補正を開始する構成としても良い。また、上記の画像読取装置では、更に、前記原稿が前記主走査方向の中心に載置される載置台を備え、前記搬送部は、前記載置台に載置された原稿を順に搬送する構成としても良い。本明細書によって開示される画像読取装置では、読取画像の変化点を検索する際に、開始点を読取画像の主走査方向における中心から主走査方向または主走査方向と逆方向に移動をさせて変化点を検索し、変化点が存在しない読取画像の主走査方向における端部において変化点を検索しない。この画像読取装置によれば、開始点を読取画像の主走査方向における端から端まで移動させて検索を行う従来技術に比べて、変化点の検索に必要な時間を短縮することができ、原稿の傾きを求めるまでの時間を短縮することができる。<実施形態>本発明の一実施形態を、図1ないし図13を用いて説明する。1.複合機の外観構成図1は、本発明の画像形成装置の一例である複合機1の外観を示す斜視図である。この複合機1は、プリンタ機能、スキャナ機能、コピー機能、ファクシミリ機能などを備えた多機能周辺装置である。図2は、閉姿勢における画像読取装置3の断面図である。図1に示すように、複合機1は、本体部2の上方に原稿を読み取るための画像読取装置3を備えている。画像読取装置3は、後述する読取部30、原稿自動送り装置以下、ADF40、原稿載置部50等を含む。原稿載置部50は、台枠51、透明なガラス板からなる第1プラテンガラス52、第2プラテンガラス53、及びこれらのガラス52、53の中間に配置された中間枠54を含む。原稿載置部50は、原稿カバー48によって開閉可能に覆われている。ADF40は、ADFカバー41、原稿トレイ42、押圧部材44、各種ローラ46、排紙トレイ47、Fセンサ13、Rセンサ14等を含む。原稿トレイ42は、載置台の一例である。ADF40には、原稿トレイ42から排紙トレイ47へと原稿を搬送する搬送経路45が設けられている。以後、搬送経路45に沿った方向を搬送方向と呼び、これに直交する方向を直交方向と呼ぶ。図2に、搬送方向を矢印81で示す。また、搬送経路45の原稿トレイ42に近い側を上流側と呼び、搬送経路45の排紙トレイ47に近い側を下流側と呼ぶ。ローラ46は、原稿を搬送経路45上に搬送する。ローラ46は、原稿トレイ42に載置された複数の原稿を1枚の原稿に分離し、搬送経路45へと引き込む。また、ローラ46は、搬送経路45上に搬送された原稿を、排紙トレイ47に排紙する。つまり、ローラ46によって、原稿トレイ42に載置された原稿を順に排紙トレイ47へと搬送する搬送部15が形成されている。原稿トレイ42には、原稿トレイ42に載置された原稿を直交方向に移動させる原稿ガイド19が設けられている。原稿トレイ42では、ユーザにより原稿ガイド19が押し広げられ、又は押し狭められることにより、原稿が直交方向の中心に載置される。これにより、搬送経路45上を搬送される原稿は搬送経路45の直交方向における中心を通るように搬送される。また、原稿トレイ42に、Fセンサ13が配置されている。Fセンサ13は、原稿トレイ42に原稿が載置されたか否かを検出する。搬送経路45上に、Rセンサ14が配置されている。Rセンサ14は、搬送経路45上の当該センサが配置された位置に原稿が存在するか否かを検出する。また、搬送経路45上のRセンサ14の下流側に、読取部30が配置されている。読取部30は、本体部2内に配置されており、直交方向に広がって形成されているとともに、図2に矢印82で示す副走査方向に移動可能に支持されている。つまり、直交方向は、読取部30の主走査方向に等しい。読取部30は、図2に点線で示すように、主走査方向と直交する副走査方向に移動しながら第1プラテンガラス52上に静止して載置された原稿を主走査方向に読み取る。また、図2に実線で示すように、第2プラテンガラス53下の搬送経路45上の固定位置である読取位置Lに移動し、搬送部15によって搬送される原稿を読み取る。読取位置Lは、固定された箇所の一例である。この際、読取部30は、搬送部15によって搬送される原稿が第2プラテンガラス53上を通過する際の当該原稿を読み取り、搬送方向は、読取部30の副走査方向に等しい。第2プラテンガラス53に対向して、押圧部材44が配置されている。押圧部材44は、第2プラテンガラス53上を通過する原稿が第2プラテンガラス53から浮かないように、原稿を第2プラテンガラス53に押圧する。なお、以下の説明において、特に記載がない場合には、読取位置Lにおいて搬送経路45を搬送される原稿を読み取る読取部30の状態及び動作を説明しているものとする。次に、読取部30の構造について説明する。読取部30は、CISContactImageSensorを用いた、いわゆるCIS方式で第2プラテンガラス53上に載置された原稿を読み取る。読取部30は、複数の受光素子が主走査方向に直線状に配列されているリニアイメージセンサ33、発光ダイオードなどで構成される光源31、光源から照射される光を第2プラテンガラス53上に配置された原稿等へと導く導光体36、原稿等で反射された反射光をリニアイメージセンサ33の各受光素子に結像させるロッドレンズアレイ32、これらが搭載されるキャリッジ34を含む。なお、読取部30は、必ずしもCISを用いて構成される必要はなく、CCDを用いて構成されても良い。さらに、複合機1の前側には、各種のボタンからなり、ユーザからの操作入力を受け付ける入力部11、複合機1の状態を表示する液晶ディスプレイからなる表示部12が設けられている。2.複合機の電気的構成図3は、複合機1の電気的構成を概略的に示すブロック図である。図3に示すように、複合機1は、複合機1の各部を制御するASIC特定用途向け集積回路10を含む。ASIC10は、中央処理装置以下、CPU20、ROM26、RAM27、画像処理部28、デバイス制御部16、アナログフロントエンド以下、AFE17、駆動回路18を備え、これらにバス29を介して、入力部11、表示部12、Fセンサ13、Rセンサ14などが接続されている。CPU20は、制御部の一例である。ROM26には、複合機1の動作を制御するための各種のプログラムが記憶されており、CPU20は、ROM26から読み出したプログラムに従って各部の制御を行う。デバイス制御部16は、読取部30に接続されており、CPU20からの命令に基づいて、光源31の点灯/消灯、及びリニアイメージセンサ33による読み取りを制御する信号を読取部30に送信する。読取部30は、デバイス制御部16からの信号に基づいて、予め定められた読取領域H図8参照に亘って原稿を読み取る。読取部30は、搬送経路45上を搬送される原稿に対して、リニアイメージセンサ33の各受光素子を用いて読取領域Hに亘って繰り返し読取データを取得する。これにより、読取部30は、主走査方向及び副走査方向に複数の読取データが並んで配置されて構成される読取画像G1図9参照を読み取ると、読取画像G1をAFE15に出力する。図8に示すように、読取画像G1の各読取データには、当該読取データが読み取られた受光素子及びタイミングに基づいて、主走査方向に延びるX軸方向のX座標、及び副走査方向に延びるY軸方向のY座標が設定される。AFE17は、読取部30に接続されており、CPU20からの命令に基づいて、読取部30から出力されるアナログ信号である読取データをデジタル信号である階調データに変換する。AFE15は、変換した階調データを、バス29を介してRAM27に記憶する。画像処理部28は、RAM27に記憶された階調データに2値化処理やエンハンス処理等のエッジ抽出処理を行い、エッジ画像G2に変換する。画像処理部28は、2値化処理において、予め記憶された閾値と各読取データを比較し、閾値よりも低い輝度を有する読取データを1に変換し、閾値よりも高い輝度を有する読取データを0に変換する。そのため、エッジ画像G2は、0と1で表される2値化データとなる。1は、第1データの一例であり、0は、第2データの一例である。また、画像処理部28は、RAM27に記憶された階調データに傾き補正やトリミング処理等の補正処理を行う。画像処理部28により変換されたエッジ画像G2は、RAM27に記憶される。駆動回路18は、モータMに接続されており、CPU20からの命令に基づいてパルス信号をモータMに送信する。モータMは、パルス信号の1パルスで、1ステップの回転角度分、回転駆動する。モータMが1ステップ分駆動すると、搬送ローラ23が駆動し、搬送経路45上を原稿が所定距離の分だけ搬送される。CPU20は、原稿を搬送する際に、駆動回路18を介してパルス信号をモータMに送信し、これに従って搬送部15は、そのパルス信号のパルスの数に規定距離を掛けた距離だけ原稿を搬送する。以後、駆動回路18がモータMに送信するパルス信号のパルスの数を、ステップ数と呼ぶ。3.読取処理次に、図4ないし図13を参照して、ADF40を用いて原稿の画像を読み取る読取処理について説明する。本実施形態では、原稿として長方形や正方形等の原稿角が直角である原稿を用いて読み取りを実行する。図4は、CPU20が所定のプログラムに従って実行する読取処理のフローチャートを示す。CPU20は、Fセンサ13を用いて複合機1の原稿トレイ42に原稿が載置されたことが確認され、入力部11を介して原稿の読取指示が入力されると、処理を開始する。CPU20は、処理を開始すると、駆動回路18を用いてモータMにパルス信号を送信して原稿の搬送を開始するS2とともに、ステップ数のカウントを開始する。CPU20は、Rセンサ14を用いて搬送中の原稿の位置を検出しS4:NO、Rセンサ14がオンS4:YESすると、搬送経路45上のRセンサ14に対応する位置に原稿が到達したことを検出する。CPU20は、Rセンサ14がオンしてから第1ステップ数ST1がカウントされた後に原稿の読み取りを開始するS6。CPU20は、原稿の読み取りを開始すると、まず、読取領域Hの先端側に設定された先端読取領域SHの先端読取画像SG1を読み取る読取画像抽出処理を実行する。図8に示すように、先端読取領域SHは、その副走査方向における幅Wが、原稿の先端を含む範囲に設定されている。そのため、先端読取画像SG1には、原稿の先端エッジ、つまり原稿の先端辺を読み取った画像が含まれる。先端読取領域SHは、所定範囲の一例である。また、CPU20は、画像処理部28を用いて先端読取画像SG1にエッジ抽出処理を実行するS8。CPU20は、原稿の読取開始から幅Wに相当する第2ステップ数ST2がカウントされるまで、先端読取画像SG1の読み取り及びエッジ抽出処理を繰り返すS10:NO。CPU20は、第2ステップ数ST2がカウントされるとS10:YES、先端読取画像SG1をエッジ抽出処理した先端エッジ画像SG2をRAM27に記憶し、原稿の傾きθ及び原稿サイズZを検出する傾き/原稿サイズ検出処理S12に移行する。傾き/原稿サイズ検出処理は、傾き補正処理の一部である。CPU20は、当該処理を、先端読取領域SHの読取後、読取領域Hの読取完了前に実行する。傾き/原稿サイズ検出処理図5に、傾き/原稿サイズ検出処理のフローチャートを示す。傾き/原稿サイズ検出処理において、CPU20は、RAM27から先端エッジ画像SG2を読み出しS32、画像処理部28を用いて原稿の先端エッジに当たる読取データである先端エッジデータを検索する処理を実行する。先端エッジデータは、変化点の一例である。当該処理において、CPU20は、まず、先端エッジ画像SG2の主走査方向における中心から左側に対して先端エッジデータを検索する左側先端エッジデータ検索処理を実行しS34、続けて、中心から右側に対して先端エッジを検索する右側先端エッジデータ検索処理を実行するS36。左側先端エッジデータ検索処理は、第2変化点検索処理の一例であり、右側先端エッジデータ検索処理は、第1変化点検索処理の一例である。左側原稿先端エッジ検索処理図6、7に、左側原稿先端エッジ検索処理のフローチャートを示す。左側原稿先端エッジ探索処理において、CPU20は、先端エッジ画像SG2に含まれる読取データの1つを検索点として選出し、この検索点を先端エッジ画像SG2の主走査方向における中心から左側において移動させて先端エッジデータを検索する。CPU20は、まず、検索を失敗した数を示す失敗カウンタNをゼロとしS52、検索点の開始点をXM、Y0に設定するS54。図8に示すように、先端エッジ画像SG2において、図面右上角の座標はX0、Y0で表され、図面左下角の座標はXMAX、YTで表される。XMは、X0とXMAXの中間値を意味しており、Y0は、読取部30によって副走査方向に先に読み取られた側の端における読取データのY座標、すなわち、副走査方向と反対側の端における読取データのY座標を意味している。また、YTは、副走査方向の端における読取データのY座標を意味している。次に、CPU20は、開始点から副走査方向に検索点を移動させて先端エッジデータを検索する。CPU20は、まず、検索点が1であるか否かを確認するS56。図9は、図8に示す先端エッジ画像SG2の中心部を、各読取データが視認できる程度に拡大した拡大図である。図9に示すように、先端エッジ画像SG2では、通常、原稿が存在しない領域を読み取った読取データは0で表され、先端エッジデータは1で表される。図9では、0の読取データについては表示を省略し、1の読取データを黒点で表示している。また、先端エッジデータは、副走査方向において連続した2個の読取データによって表される。そのため、先端エッジ画像SG2において、先端エッジデータは、副走査方向に1の読取データが2個並んだものとして表される。CPU20は、検索点が0である場合S56:NO、検索点のY座標に1を加え、図9に矢印83で示すように、今回の検索点に副走査方向に隣接する読取データを次回の検索点とするS58。CPU20は、次回の検索点のY座標とYTを比較しS60、次回の検索点のY座標がYTでない場合S60:NO、S56からの処理を繰り返す。一方、CPU20は、検索点が1である場合S56:YES、前回の検索点が1であったかを否かを確認するS62。先端エッジ画像SG2では、検索点が1となる場合として、検索点が先端エッジデータである場合の他に、原稿が存在しない領域を読み取った読取データにおいてもノイズ等の理由で1となる場合がある。図9では、ノイズ等の理由で1となった読取データを孤立点Bで示し、先端エッジデータを丸84で囲って示す。丸84には、先端エッジデータとして、副走査方向に2つ並んだ1の読取データが含まれる。一方、孤立点Bは、通常、副走査方向に連続して発生しない。CPU20は、前回の検索点が0である場合S62:NO、今回の検索点が先端エッジデータと孤立点Bのいずれに位置するかを区別することができないことから、先端エッジデータと判断しない。この場合、CPU20は、今回の検索点の座標を一端記憶しS64、検索点のY座標に1を加えS66、S56からの処理を繰り返す。一方、CPU20は、前回の検索点が1である場合S62:YES、つまり前回及び今回の検索点が連続して1である場合、前回及び今回の検索点が先端エッジデータに位置していると判断する。この場合、先端エッジデータが検索されたと判断し、前回記憶した検索点の座標を先端エッジデータの座標としてRAM27に記憶するS68。CPU20は、失敗カウンタNをゼロとしS70、副走査方向における検索を終了する。CPU20は、開始点を主走査方向と逆方向に移動させて、副走査方向における検索を繰り返す。CPU20は、図9に矢印85に示すように、現在の開始点から主走査方向と逆方向に規定数T1移動させて、つまり、現在の開始点のX座標から規定数T1を減じて次回の開始点を設定するS72。CPU20は、次回の開始点のX座標とX0を比較しS74、次回の開始点のX座標がX0以上である場合S74:NO、S56からの処理、つまり副走査方向における検索を繰り返す。規定数T1は、2以上の整数に設定されており、第2データ数の一例である。また、CPU20は、図8に矢印86に示すように、副走査方向における検索において、先端エッジデータが検索される前に次回の検索点のY座標がYTとなった場合S60:YES、先端エッジデータが検索されず、先端エッジデータの検索を失敗したと判断する。この場合、CPU20は、失敗カウンタNに1を加えS76、失敗カウンタNを2と比較するS78。CPU20は、失敗カウンタNが2でない場合S78:NO、S72からの処理を行う。一方、CPU20は、失敗カウンタNが2である場合S78:YES、つまり、図8に矢印87に示すように、前回の開始点からの副走査方向における検索で先端エッジデータが検索されず、更に、現在の開始点からの副走査方向における検索で先端エッジデータが検索されない場合、先端エッジデータの検索を終了する。CPU20は、前回の開始点のX座標を左側外部座標T3としてRAM27に記憶するS80。左側外部座標T3は、第2位置の一例である。CPU20は、異常フラグFをオフとしS82、後述するS86からの処理に進む。また、CPU20は、先端エッジデータが検索されなくなる前に次回の開始点のX座標がX0よりも小さくなった場合S74:YES、異常フラグFをオンとしS84、後述するS86からの処理に進む。S86からの処理において、CPU20は、図8、9にカッコ88に示すように、検索された先端エッジデータを当該先端エッジデータが検索された順に3個毎の組とするS86。3個は、第4データ数の一例である。CPU20は、各組に含まれる先端エッジデータをそのY座標でソートしS88、これらの先端エッジデータのうち、Y座標が中間値となる先端エッジデータを各組の代表先端エッジデータとして選出するS90。CPU20は、代表先端エッジデータの座標をRAM27に記憶しS92、左側原稿先端エッジ検索処理を終了する。右側原稿先端エッジ検索処理次に、CPU20は、右側先端エッジデータ検索処理を実行するS36。右側先端エッジデータ検索処理は、開始点を主走査方向に規定数T2移動させて副走査方向における検索を繰り返す点、次回の開始点のX座標がXMAXよりも大きくなった場合に前回の開始点のX座標を右側外部座標T4として記憶して異常フラグFをオンする点、を除いて他、左側先端エッジデータ検索処理と同一であり、重複した説明を省略する。規定数T2は、2以上の整数に設定されており、第1データ数の一例である。また、右側外部座標T4は、第1位置の一例である。CPU20は、左側先端エッジデータ検索処理と、右側先端エッジデータ検索処理とによって、それぞれ検索された代表先端エッジデータの座標をRAM27から読み出しS40、これらの座標を用いて代表先端エッジデータを直線近似し、算出された直線式をRAM27に記憶するS42。算出された直線式は、X軸及びY軸を用いて表わされ、直線式の傾きは、X軸方向、つまり主走査方向に対する傾きを表す。CPU20は、算出された直線式の傾きを、原稿の主走査方向に対する傾きθとして検出しS44、次に、原稿サイズZを検出する原稿サイズ検出処理を実行するS46。原稿サイズ検出処理図10に、原稿サイズ検出処理のフローチャートを示す。原稿サイズ検出処理では、CPU20は、RAM27から先端エッジ画像SG2を読み出すS102とともに、RAM27から原稿の傾きθを読み出しS104、画像処理部28を用いて原稿サイズZを検出する。次に、CPU20は、原稿先端の左側頂点に当たる読取データである左側頂点データを検索する処理S106~110を実行し、次に、原稿先端の右側頂点に当たる読取データである右側頂点データを検索する処理S112~116を実行する。左側頂点データの検索において、CPU20は、まず、左側先端エッジデータ検索処理を終了した際の異常フラグFの状態を確認するS106。CPU20は、RAM27に左側外部座標T3が記憶されており、異常フラグFがオフの状態で左側先端エッジデータ検索処理を終了した場合S106:YES、原稿先端の左側頂点に当たる読取データである左側頂点データを検索する左側頂点データ検出処理を実行するS108。左側頂点データは、角位置の一例であり、左側頂点データ検出処理は、第3変化点検出処理及び原稿角位置検出処理を含む。左側頂点データ検出処理図11、12に、左側頂点データ検出処理のフローチャートを示す。左側頂点データ検出処理では、左側原稿先端エッジ検索処理と異なり、CPU20は、開始点から主走査方向に検索点を移動させて原稿の左側エッジに当たる読取データである左側エッジデータを検索するとともに、開始点を副走査方向と逆方向に移動させて左側エッジデータの検索を繰り返す。CPU20は、得られた左側エッジデータと代表先端エッジデータから算出された直線式とから、左側頂点データを検索する。CPU20は、まず、失敗カウンタNをゼロとしS132、RAM27から左側外部座標T3を読み出すS134。そして、読み出した左側外部座標T3を用いて検索点の開始点をT3、YTに設定するS136。次に、CPU20は、開始点から主走査方向に検索点を移動させて左側エッジデータを検索する。CPU20は、検索点が1であるか否かを確認しS138、検索点が0である場合S138:NO、検索点のX座標に1を加え、今回の検索点に主走査方向に隣接する読取データを次回の検索点とするS140。CPU20は、次回の検索点のX座標とXMを比較しS142、次回の検索点のX座標がXMでない場合S142:NO、S138からの処理を繰り返す。一方、CPU20は、検索点が1である場合S138:YES、前回の検索点が1であったかを否かを確認するS144。CPU20は、前回の検索点が0である場合S144:NO、今回の検索点の座標を一端記憶しS146、検索点のX座標に1を加えS148、S138からの処理を繰り返す。一方、CPU20は、前回の検索点が1である場合S144:YES、左側エッジデータが検索されたと判断し、前回記憶した検索点の座標を左側エッジデータの座標としてRAM27に記憶するS150。CPU20は、失敗カウンタNをゼロとしS152、主走査方向における検索を終了する。CPU20は、図13に矢印89に示すように、現在の開始点のY座標から規定数T5を減じて次回の開始点を設定しS154、次回の開始点のY座標とY0を比較するS156。CPU20は、次回の開始点のY座標がY0以上である場合S156:NO、S138からの処理を繰り返す。また、CPU20は、図13に矢印90に示すように、主走査方向における検索において、左側エッジデータが検索される前に次回の検索点のX座標がXMとなった場合S142:YES、左側エッジデータが検索されなかったと判断し、失敗カウンタNに1を加えS158、失敗カウンタNを2と比較するS160。CPU20は、失敗カウンタNが2でない場合S160:NO、S154からの処理を行う。一方、CPU20は、失敗カウンタNが2である場合S160:YES、つまり、左側エッジデータが検索されないことが連続して生じた場合、左側エッジデータの検索を終了し、後述するS162からの処理に進む。また、CPU20は、左側エッジデータが検索されなくなる前に次回の開始点のY座標がY0よりも小さくなった場合S156:YES、後述するS162からの処理に進む。S162からの処理において、CPU20は、検索された左側エッジデータのX座標及びY座標を各々平均し、平均左側エッジデータを算出するS162。CPU20は、RAM27から代表先端エッジデータを直線近似して算出された直線式を読み出しS164、平均左側エッジデータから当該直線式で示される直線に対する垂線と当該直線との交点に当たる読取データを、左側頂点データとして検出するS166。CPU20は、検出された左側頂点データの座標をRAM27に記憶しS168、左側頂点データ検出処理を終了する。一方、CPU20は、RAM27に左側外部座標T3が記憶されていない場合、つまり、原稿先端の左側頂点が先端読取領域SHから主走査方向と逆方向にはみ出しており、図13に示す左側エッジデータが先端読取画像SG1に含まれず、異常フラグFがオンの状態で左側先端エッジデータ検索処理を終了した場合S106:NO、RAM27に記憶された直線式においてX座標をX0とした点の読取データを、左側エッジデータとして検出するS110。次に、CPU20は、右側頂点データの検索を行う。CPU20は、右側先端エッジデータ検索処理を終了した際の異常フラグFの状態を確認しS112、右側外部座標T4が記憶されており、異常フラグFがオフの状態で右側先端エッジデータ検索処理を終了した場合S112:YES、原稿先端の右側頂点に当たる読取データである右側頂点データを検索する右側頂点データ検出処理を実行するS108。右側頂点データは、角位置の一例であり、右側頂点データ検出処理は、第4変化点検出処理及び原稿角位置検出処理を含む。右側頂点データ検出処理は、RAM27から読み出した右側外部座標T4を用いて検査点の開始点を設定する点、開始点から主走査方向と逆方向に検査点を移動させる点、開始点を副走査方向と逆方向に規定数T6移動させて主走査方向と逆方向における検索を繰り返す点、を除いて左側頂点データ検出処理と同一であり、重複した説明を省略する。一方、CPU20は、右側外部座標T4が記憶されておらず、異常フラグFがオンの状態で右側先端エッジデータ検索処理を終了した場合S112:NO、RAM27に記憶された直線式においてX座標をXMAXとした点の読取データを、左側エッジデータとして検出するS116。CPU20は、左側頂点データと右側頂点データの座標から、原稿の先端エッジにおける頂点間距離、つまり原稿の先端辺の幅Dを算出するS118。ROM26には、予め原稿の幅Dと原稿サイズZとが対応付けられた対応表が記憶されている。CPU20は、算出された原稿の先端辺の幅DとROM26に記憶された対応表から原稿サイズZを検出しS120、原稿サイズ検出処理を終了するとともに、傾き/原稿サイズ検出処理を終了する。上述したように、CPU20は、読取領域Hの読取中に傾き/原稿サイズ検出処理を実行している。そして、CPU20は、傾き/原稿サイズ検出処理において原稿の傾きθ及び原稿サイズZが検出されると、読取領域Hの読取中に読取画像G1の傾き補正を開始する。つまり、読取画像G1を読み取りながら読取画像G1の傾き補正を実行する。CPU20は、検出された原稿の傾きθと基準角度θKとを比較しS14、原稿の傾きθが基準角度θK以内である場合S14:YES、画像処理部28を用いてRAM27に記憶されている読取画像G1に対して、トリミング及び傾き補正処理を実行するS16。S16は、傾き補正処理の他の一部である。CPU20は、検出された原稿サイズZから出力用データのサイズを決定し、RAM27に記憶されている読取画像G1から原稿の傾きθに沿った方向に読取データを読み出し、出力用データを完成させる。一方、CPU20は、原稿の傾きθが基準角度θKよりも大きい場合S14:NO、RAM27に記憶されている読取画像G1に対して、トリミング処理を実行するS18。CPU20は、検出された原稿サイズZから出力用データのサイズを決定し、RAM27に記憶されている読取画像G1から主走査方向に沿った方向に読取データを読み出し、出力用データを完成させる。CPU20は、Rセンサ14がオフするまでS14~S18の処理を繰り返すS20:NO。CPU20は、Rセンサ14がオフするとS20:YES、Rセンサ14がオフしてから第3ステップ数ST3がカウントされた後に原稿の読み取りを終了するS22とともに原稿の搬送を終了しS24、読取処理を終了する。4.本実施形態の効果1本実施形態の複合機1では、先端エッジ画像SG2の先端エッジデータを検索する際に、開始点を先端エッジ画像SG2の主走査方向における中心から主走査方向または主走査方向と逆方向に移動をさせて先端エッジデータを検索し、先端エッジデータが存在しない先端エッジ画像SG2の主走査方向における端部において先端エッジデータを検索しない。本実施形態の複合機1によれば、開始点を先端エッジ画像SG2の主走査方向における端から端まで移動させて検索を行う従来技術に比べて、先端エッジデータの検索に必要な時間を短縮することができ、原稿の傾きθを求めるまでの時間を短縮することができる。2本実施形態の複合機1では、左側先端エッジデータ検索処理と右側先端エッジデータ検索処理をそれぞれ実行し、左側先端エッジデータ検索処理及び右側先端エッジデータ検索処理の両方の処理によって検索された先端エッジデータから原稿の傾きθを求める。そのため、主走査方向の比較的広い範囲において検索された先端エッジデータを用いて原稿の傾きθを求めることができ、原稿の傾きθを精度良く求めることができる。3本実施形態の複合機1では、左側先端エッジデータ検索処理では、主走査方向と逆方向に2以上の整数に設定された規定数T1づつ開始点を移動して先端エッジデータを検索し、右側先端エッジデータ検索処理では、主走査方向に2以上の整数に設定された規定数T2づつ開始点を移動して先端エッジデータを検索する。そのため、主走査方向又は主走査方向と逆方向に1づつ開始点を移動して開始点を検索する場合に比べて、先端エッジデータの検索に必要な時間を短縮することができ、原稿の傾きθを求めるまでの時間を短縮することができる。4本実施形態の複合機1では、副走査方向に連続した前回及び今回の検索点がいずれも1である場合に先端エッジデータが検索されたと判断する。そのため、副走査方向に連続して発生することがない孤立点Bと先端エッジデータを確実に区別することができる。従って、孤立点Bを先端エッジデータと誤検出してしまうことが抑制され、先端エッジデータを正確に検出することができる。5本実施形態の複合機1では、主走査方向または主走査方向と逆方向に開始点を移動させて副走査方向に先端エッジデータを検索し、開始点を移動させても先端エッジデータ検索されないことが連続して生じた場合に、先端エッジデータの検索を終了する。そのため、ノイズ等により1回だけ先端エッジデータが検出されなかった場合に先端エッジデータの検索を終了してしまうことが抑制される。これにより、左側外部座標T3及び右側外部座標T4、つまりは、左側頂点データ、右側頂点データ、及び原稿サイズZを正確に求めることができる。6本実施形態の複合機1では、左側頂点データ検出処理において主走査方向が左側外部座標T3となる点を開始点とし、先端エッジ画像SG2の主走査方向と逆方向における端位置、つまりX=X0を開始点としない。また、右側頂点データ検出処理において主走査方向が右側外部座標T4となる点を開始点とし、先端エッジ画像SG2の主走査方向における端位置、つまりX=XMAXを開始点としない。そのため、左側エッジデータ及び右側エッジデータの検索に必要な時間を短縮することができ、原稿サイズZを検出するまでの時間を短縮することができる。7本実施形態の複合機1では、左側先端エッジデータ検索処理及び右側先端エッジデータ検索処理において検索された先端エッジデータからさらに代表先端エッジデータを選出し、その選出された代表先端エッジデータから原稿の傾きθを求める。読取部30のリニアイメージセンサ33では、複数の受光素子が主走査方向に直線状に配列されており、その1つの受光素子が他の受光素子に比べて劣化したり、故障したりすることがある。このように、読取部30が有する受光素子に異常が発生した場合、図8、9に線91で示すように、当該受光素子が読み取った読取データの全てが、2値化処理により1に変換されてしまい、先端エッジ画像SG2に黒筋が生じる。この場合、孤立点Bと異なり、副走査方向に1となる読取データが連続することから、先端エッジデータとして検索され得る。本実施形態の複合機1では、代表先端エッジデータから原稿の傾きθを求めので、複数の検索された先端エッジデータのうちに、受光素子の異常を検索した先端エッジデータが含まれている場合でも、当該先端エッジデータを除いて原稿の傾きθを求めることができ、原稿の傾きθを正確に求めることができる。8本実施形態の複合機1では、搬送される原稿を固定された読取位置Lで読み取り、原稿の先端を用いて求められた原稿の傾きθを用いて読取画像G1の傾きを補正するので、原稿を読取り中にリアルタイムで傾き補正を実行することができる。9本実施形態の複合機1では、原稿ガイド19によって原稿トレイ42の主走査方向の中心に原稿が載置され、読取部30は搬送経路45の主走査方向の中心を通る原稿を読み取る。そのため、図1に示すように、名刺サイズの原稿を読み取る場合には、読取画像G1の主走査方向における端において、先端エッジデータが含まれない領域が比較的広く存在することとなり、開始点を先端エッジ画像SG2の主走査方向における端から端まで移動させて検索を行う従来技術では、先端エッジデータの先端エッジデータの検索が長期化してしまう。本実施形態の複合機1では、開始点を先端エッジ画像SG2の主走査方向における中心から主走査方向または主走査方向と逆方向に移動をさせるので、従来技術に比べて、先端エッジデータの検索に必要な時間を短縮することができ、原稿の傾きθを求めるまでの時間を短縮することができる。<他の実施形態>本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような種々の態様も本発明の技術的範囲に含まれる。1上記実施形態では、プリンタ機能、スキャナ機能、コピー機能、ファクシミリ機能などを備えた複合機1を用いて説明を行ったが、本発明はこれに限られない。例えば、少なくともスキャナ機能を有する装置であれば、他の機能の有無は特に限定されない。2上記実施形態では、複合機1が1つのASIC10を有し、ASIC10が有する1つのCPU20によって各種処理を実行する例を用いて示したが、本発明はこれに限られない。例えば、お互いに異なるCPU、ASICなどによって各種処理が分担されていても良い。3上記実施形態では、ADF40によって搬送される原稿を固定された読取位置Lに読み取る例を用いて説明を行ったが、第1プラテンガラス52上に静止して載置された原稿を副走査方向に移動しながら読み取る場合にも用いることができる。この場合にも、先端読取領域SHを読み取った先端読取画像SG1を用いて読取画像G1を読み取りながら原稿の傾きθを求めることができ、読取画像G1を読み取りながら傾き補正を行うことができる。4上記実施形態では、左側先端エッジデータ検索処理と右側先端エッジデータ検索処理とを実行し、それぞれ検索された先端エッジデータを用いて原稿の傾きθを求める例を用いて説明を行ったが、いずれか一方の先端エッジデータ検索処理のみを実行し、その処理において検索された先端エッジデータを用いて原稿の傾きθを求めても良い。