(57)【要約】【課題】原稿の傾きを求めて傾き補正を行う画像読取装置において、原稿の傾きを求めるまでの時間を短縮する。【解決手段】画像読取装置は、搬送部と読取部とＦセンサとＣＰＵを備え、ＣＰＵは、読取部が読み取った先端読取画像ＳＧ１のうち、基準読取素子及び右側読取素子を用いて読み取られた右側先端エッジ画像に対して、右側先端エッジデータ検索処理を実行する（Ｓ３４）。そして、右側先端エッジデータ検索処理において、基準読取素子を用いて読み取られた基準先端エッジ画像で先端エッジデータが検索されない場合には、右側先端エッジデータ検索処理において検索された先端エッジデータを用いて原稿Ｇの傾きθが検出される。左側読取素子を用いて読み取られた左側先端エッジ画像に対して、左側先端エッジデータ検索処理を実行しないので、原稿の傾きθを求めるまでの時間を短縮することができる。【選択図】図４
2014030109.tif 000002
【特許請求の範囲】
【請求項１】
原稿を搬送経路に沿って搬送する搬送部と、
前記搬送経路上の読取位置に配置され、前記搬送部によって搬送される前記原稿を主走査方向に並んで配置される複数の読取素子を用いて読み取る読取部と、
前記搬送経路上の前記読取位置よりも上流側の検知位置に配置されるとともに、前記主走査方向の基準位置の片側に設けられ、前記原稿の有無を検知する検知部と、
制御部と、
を備え、
前記制御部は、
前記検知部によって前記原稿が検知された場合に、前記読取部によって前記主走査方向と直交する副走査方向に、前記原稿の先端を含む所定範囲に亘って読み取られた前記所定範囲の読取画像を抽出する読取画像抽出処理と、
前記所定範囲の読取画像のうち、前記基準位置上に配置された基準読取素子及び前記基準読取素子よりも前記主走査方向において前記検知部側に配置された前記読取素子を用いて読み取られた検知部側読取画像に対して、エッジ点を検索する検知部側エッジ点検索処理と、
検索されたエッジ点から前記原稿の主走査方向に対する傾きを求め、前記傾きから前記読取部が読み取った読取画像の傾き補正を行う傾き補正処理と、
を実行し、
前記傾き補正処理では、前記検知部側エッジ点検索処理において前記基準読取素子を用いて読み取られた基準読取画像でエッジ点が検索されない場合に、前記検知部側エッジ点検索処理によって検索されたエッジ点から前記原稿の主走査方向に対する傾きを求める、画像読取装置。
【請求項２】
請求項１に記載の画像読取装置であって、
前記制御部は、更に、
前記検知部側エッジ点検索処理において前記基準読取画像でエッジ点が検索された場合に、前記所定範囲の読取画像のうち、前記基準読取素子よりも前記主走査方向において前記検知部側と逆側に配置された前記読取素子を用いて読み取られた逆側読取画像に対して、エッジ点を検索する逆側エッジ点検索処理、
を実行し、
前記傾き補正処理では、前記検知部側エッジ点検索処理において前記基準読取画像でエッジ点が検索される場合に、前記検知部側エッジ点検索処理及び前記逆側エッジ点検索処理によって検索されたエッジ点から前記原稿の主走査方向に対する傾きを求める、画像読取装置。
【請求項３】
請求項１または請求項２に記載の画像読取装置であって、
前記制御部は、
前記検知部側エッジ点検索処理において、前記基準読取画像のうち、前記読取部によって前記副走査方向に先に読み取られた側の端である先読取端を開始点とし、前記開始点から前記副走査方向へエッジ点を検索し、前記基準読取画像でエッジ点が検索されない場合に、エッジ点が検索されるまで前記開始点を前記検知部側に移動させて該開始点から前記副走査方向へのエッジ点の検索を繰り返す、画像読取装置。
【請求項４】
請求項３に記載の画像読取装置であって、
前記所定範囲の読取画像は、前記主走査方向及び前記副走査方向に単位画像を示す読取データが複数個並んで配置されて構成されており、
前記制御部は、
前記検知部側エッジ点検索処理において、前記開始点を前記主走査方向に基準データ数毎に移動させて前記エッジ点の検索を繰り返す、画像読取装置。
【請求項５】
請求項４に記載の画像読取装置であって、
前記制御部は、
前記読取画像抽出処理において、前記所定範囲の読取画像を、前記読取画像において閾値よりも低い輝度を有する前記読取データを第１データとし、前記読取画像において前記閾値よりも高い輝度を有する前記読取データを第２データとした２値化されたデータであるエッジ画像として抽出し、
前記検知部側エッジ点検索処理において、前記開始点から前記副走査方向に前記エッジ画像を検索し、前記副走査方向に連続した第１データを検索した場合に、エッジ点が検索されたと判断する、画像読読取装置。
【請求項６】
請求項４または請求項５に記載の画像読取装置であって、
前記制御部は、
前記検知部側エッジ点検索処理において、エッジ点が検索された後、前記開始点を前記検知部側に移動させて前記開始点から前記副走査方向に前記所定範囲に亘って検索してもエッジ点が検索されないことが連続して生じた場合に、エッジ点が検索されないと判断し、エッジ点の検索を終了する、画像読取装置。
【請求項７】
請求項３ないし請求項６のいずれか一項に記載の画像読取装置であって、
前記制御部は、
前記検知部側エッジ点検索処理において、前記基準読取画像でエッジ点が検索されない場合に、前記エッジ点が初めて検索された際の開始点へ移動する前の開始点の前記主走査方向の位置である第１位置を記憶するとともに、前記エッジ点の探索を終了した際の前記開始点の前記主走査方向の位置である第２位置を記憶し、
前記制御部は、更に、
前記読取画像のうち、前記主走査方向が前記第１位置となる点を開始点とし、前記開始点から前記主走査方向において前記検知部側にエッジ点を検索する基準位置側エッジ点検索処理と、
前記読取画像のうち、前記主走査方向が前記第２位置となる点を開始点とし、前記開始点から前記主走査方向において前記検知部側と逆側にエッジ点を検索する端部側エッジ点検索処理と、
前記傾き補正処理によって求められた傾きと、前記準位置側エッジ点検索処理及び前記端部側エッジ点検索処理によってそれぞれ求められたエッジ点とから、前記原稿の先端側の角位置を検出する原稿角位置検出処理と、
前記原稿角位置検出処理によって求められた前記原稿の角位置から前記原稿の幅を求め、該幅から原稿のサイズを検出する原稿サイズ検出処理と、
を実行する、画像読取装置。
【請求項８】
請求項１ないし請求項７のいずれか一項に記載の画像読取装置であって、
前記主走査方向の基準位置は、前記主走査方向の中点である、画像読取装置。
【請求項９】
請求項１ないし請求項８のいずれか一項に記載の画像読取装置であって、
更に、
前記原稿が前記主走査方向の前記検知部側に載置される載置台を備え、
前記検知部は、前記載置台に位置し、
前記搬送部は、載置台に前記原稿が載置されたことを前記検知部が検知すると、前記載置台に載置された前記原稿を順に搬送する、画像読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
画像読取装置において、搬送される原稿の傾きを求めて傾き補正を行うための技術に関する。
【背景技術】
【０００２】
従来から、搬送される原稿の傾きを求めて傾き補正を行う装置が知られている（例えば、特許文献１）。この装置では、読取ユニットを用いて原稿の先端部を含む範囲に対しプレスキャン動作を実行して画像データを生成し、この画像データから生成した当該範囲のエッジ画像データを用いて原稿推定処理を実行する。原稿推定処理では、原稿の先端側のエッジを意味する下エッジを検出する下エッジ検出処理において、検査位置を主走査方向にエッジ画像データの左端から右端まで移動させてエッジ点の抽出を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１６４８０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のように、従来技術では、主走査方向において、エッジ画像データの端から端までエッジ点の検出が行われていた。しかし、エッジ画像データでは、主走査方向の少なくとも一部においてエッジ点が存在しないことがあり、特に、名刺などの小型原稿のエッジ画像データでは、主走査方向の略半分の領域においてエッジ点が存在しないことがあった。そのため、従来技術のエッジ点の検出方法では、必要以上にエッジ点の検出が行われ、原稿の傾きを求めるまでの時間が長期化してしまう問題が生じていた。
【０００５】
本明細書では、搬送される原稿の傾きを求めて傾き補正を行う画像読取装置において、原稿の傾きを求めるまでの時間を短縮する技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書によって開示される画像読取装置は、原稿を搬送経路に沿って搬送する搬送部と、前記搬送経路上の読取位置に配置され、前記搬送部によって搬送される前記原稿を主走査方向に並んで配置される複数の読取素子を用いて読み取る読取部と、前記搬送経路上の前記読取位置よりも上流側の検知位置に配置されるとともに、前記主走査方向の基準位置の片側に設けられ、前記原稿の有無を検知する検知部と、制御部と、を備え、前記制御部は、前記検知部によって前記原稿が検知された場合に、前記読取部によって前記主走査方向と直交する副走査方向に、前記原稿の先端を含む所定範囲に亘って読み取られた前記所定範囲の読取画像を抽出する読取画像抽出処理と、前記所定範囲の読取画像のうち、前記基準位置上に配置された基準読取素子及び前記基準読取素子よりも前記主走査方向において前記検知部側に配置された前記読取素子を用いて読み取られた検知部側読取画像に対して、エッジ点を検索する検知部側エッジ点検索処理と、検索されたエッジ点から前記原稿の主走査方向に対する傾きを求め、前記傾きから前記読取部が読み取った読取画像の傾き補正を行う傾き補正処理と、を実行し、前記傾き補正処理では、前記検知部側エッジ点検索処理において前記基準読取素子を用いて読み取られた基準読取画像でエッジ点が検索されない場合に、前記検知部側エッジ点検索処理によって検索されたエッジ点から前記原稿の主走査方向に対する傾きを求める。
【０００７】
この画像読取装置では、主走査方向の基準位置の片側に設けられた検知部により原稿が検知され、所定範囲の読取画像が抽出されると、当該読取画像のうち、基準位置の片側に相当する検知部側読取画像に対して検知部側エッジ点検索処理を実行する。そして、当該処理において、基準読取画像でエッジ点が検索されない場合には、検知部側エッジ点検索処理によって検索されたエッジ点から原稿の主走査方向に対する傾きを求める。そのため、開始点を読取画像の主走査方向における端から端まで移動させてエッジ点の検索を行う従来技術に比べて、片側だけでエッジ点の検索が済むため、エッジ点の検索に必要な時間を短縮することができ、原稿の傾きを求めるまでの時間を短縮することができる。
【０００８】
また、上記の画像読取装置では、前記制御部は、更に、前記検知部側エッジ点検索処理において前記基準読取画像でエッジ点が検索された場合に、前記所定範囲の読取画像のうち、前記基準読取素子よりも前記主走査方向において前記検知部側と逆側に配置された前記読取素子を用いて読み取られた逆側読取画像に対して、エッジ点を検索する逆側エッジ点検索処理、を実行し、前記傾き補正処理では、前記検知部側エッジ点検索処理において前記基準読取画像でエッジ点が検索される場合に、前記検知部側エッジ点検索処理及び前記逆側エッジ点検索処理によって検索されたエッジ点から前記原稿の主走査方向に対する傾きを求める構成としても良い。
【０００９】
この画像読取装置によれば、検知部側エッジ点検索処理において、基準読取画像でエッジ点が検索されない場合には、検知部側エッジ点検索処理のみを行い、基準読取画像でエッジ点が検索される場合には、検知部側エッジ点検索処理及び逆側エッジ点検索処理を行うので、片側だけでなく両側の探索が必要であっても適切にエッジ点を探索することができる。
【００１０】
また、上記の画像読取装置では、前記制御部は、前記検知部側エッジ点検索処理において、前記基準読取画像のうち、前記読取部によって前記副走査方向に先に読み取られた側の端である先読取端を開始点とし、前記開始点から前記副走査方向へエッジ点を検索し、前記基準読取画像でエッジ点が検索されない場合に、エッジ点が検索されるまで前記開始点を前記検知部側に移動させて該開始点から前記副走査方向へのエッジ点の検索を繰り返す構成としても良い。
【００１１】
この画像読取装置では、検知部側エッジ点検索処理において、開始点を基準読取画像から検知部側に移動させてエッジ点を検索する。そのため、エッジ点が存在しない読取画像の主走査方向における端部においてエッジ点を検索することが抑制され、エッジ点の検索に必要な時間を短縮することができる。また、基準読取画像でエッジ点が検索されない場合でも、エッジ点が検索されるまでエッジ点の検索を繰り返すので、基準読取画像でエッジ点が検索されない場合に、エッジ点の検索が終了され、エッジ点が検索できない事態が発生することが抑制される。
【００１２】
また、上記の画像読取装置では、前記所定範囲の読取画像は、前記主走査方向及び前記副走査方向に単位画像を示す読取データが複数個並んで配置されて構成されており、前記制御部は、前記検知部側エッジ点検索処理において、前記開始点を前記主走査方向に基準データ数毎に移動させて前記エッジ点の検索を繰り返す構成としても良い。
【００１３】
この画像読取装置によれば、主走査方向に並んだ全てのデータに対してエッジ点を検索する場合に比べて、エッジ点の検索に必要な時間を短縮することができ、原稿の傾きを求めるまでの時間を短縮することができる。
【００１４】
また、上記の画像読取装置では、前記制御部は、前記読取画像抽出処理において、前記所定範囲の読取画像を、前記読取画像において閾値よりも低い輝度を有する前記読取データを第１データとし、前記読取画像において前記閾値よりも高い輝度を有する前記読取データを第２データとした２値化されたデータであるエッジ画像として抽出し、前記検知部側エッジ点検索処理において、前記開始点から前記副走査方向に前記エッジ画像を検索し、前記副走査方向に連続した第１データを検索した場合に、エッジ点が検索されたと判断する構成としても良い。
【００１５】
画像読取装置では、通常、原稿が存在しない領域におけるエッジ画像は第２データとなり、原稿が存在する領域と原稿が存在しない領域の境界部分におけるエッジ画像は第１データとなることから、この違いを利用して境界部分、つまりエッジ点を検索することができる。しかし、原稿が存在しない領域におけるエッジ画像においても、ノイズ等により第１データが含まれることがあり、ノイズ等により第１データとなったエッジ画像を境界部分を読み取ったエッジ画像と誤検索してしまうと、原稿の傾きを正確に求めることができない。この画像読取装置によれば、副走査方向に連続した第１データを検索した場合に、エッジ点を検索するので、境界部分を誤検索してしまうことが抑制され、原稿の傾きを正確に求めることができる。
【００１６】
また、上記の画像読取装置では、前記制御部は、前記検知部側エッジ点検索処理において、エッジ点が検索された後、前記開始点を前記検知部側に移動させて前記開始点から前記副走査方向に前記所定範囲に亘って検索してもエッジ点が検索されないことが連続して生じた場合に、エッジ点が検索されないと判断し、エッジ点の検索を終了する構成としても良い。
【００１７】
この画像読取装置によれば、検知部側に開始点を移動させてエッジ点が検索されないことが連続して生じた場合に、エッジ点の検索を終了するので、ノイズ等により１回だけエッジ点が検索されなかった場合にエッジ点の検索を終了してしまうことが抑制され、エッジ点の検索を終了するか否かを正確に判断することができる。
【００１８】
また、上記の画像読取装置では、前記制御部は、前記検知部側エッジ点検索処理において、前記基準読取画像でエッジ点が検索されない場合に、前記エッジ点が初めて検索された際の開始点へ移動する前の開始点の前記主走査方向の位置である第１位置を記憶するとともに、前記エッジ点の探索を終了した際の前記開始点の前記主走査方向の位置である第２位置を記憶し、前記制御部は、更に、前記読取画像のうち、前記主走査方向が前記第１位置となる点を開始点とし、前記開始点から前記主走査方向において前記検知部側にエッジ点を検索する基準位置側エッジ点検索処理と、前記読取画像のうち、前記主走査方向が前記第２位置となる点を開始点とし、前記開始点から前記主走査方向において前記検知部側と逆側にエッジ点を検索する端部側エッジ点検索処理と、前記傾き補正処理によって求められた傾きと、前記準位置側エッジ点検索処理及び前記端部側エッジ点検索処理によってそれぞれ求められたエッジ点とから、前記原稿の先端側の角位置を検出する原稿角位置検出処理と、前記原稿角位置検出処理によって求められた前記原稿の角位置から前記原稿の幅を求め、該幅から原稿のサイズを検出する原稿サイズ検出処理と、を実行する構成としても良い。
【００１９】
この画像読取装置では、基準位置側エッジ点検索処理において主走査方向が第１位置となる点を開始点とし、読取画像の検知部側の端位置を開始点としない。また、端部側エッジ点検索処理において主走査方向が第２位置となる点を開始点とし、読取画像の検知部側と逆側の端位置を開始点としない。この画像読取装置では、読取画像の検知部側または検知部側と逆側における端位置を開始点としないことで、エッジ点の検索に必要な時間を短縮することができ、原稿のサイズを検出するまでの時間を短縮することができる。
【００２０】
また、上記の画像読取装置では、前記主走査方向の基準位置は、前記主走査方向の中点である構成としても良い。
【００２１】
この画像読取装置では、主走査方向の基準位置を主走査方向の中点とするので、主走査方向の基準位置が主走査方向の中点よりも主走査方向の検知部側の逆側に存在する場合に比べて、検知部側エッジ点検索処理においてエッジ点の検索に必要な時間を短縮することができる。
【００２２】
また、上記の画像読取装置では、更に、前記原稿が前記主走査方向の前記検知部側に載置される載置台を備え、前記検知部は、前記載置台に位置し、前記搬送部は、載置台に前記原稿が載置されたことを前記検知部が検知すると、前記載置台に載置された前記原稿を順に搬送する構成としても良い。
【００２３】
この画像読取装置では、搬送台の主走査方向の検知部側に原稿が載置され、載置台に位置する検知部によって、載置台に原稿が載置されたことが検知されると、当該原稿が搬送部により搬送され、読取部を用いて読み取られる。この画像読取装置によれば、名刺サイズなどの小さい原稿が搬送台の主走査方向の検知部側に載置され、読取部において原稿が載置されていない領域が比較的広い場合に、原稿の傾きを求めるまでの時間を短縮することができる。
【発明の効果】
【００２４】
本明細書によって開示される画像読取装置では、搬送される原稿の傾きを求めて傾き補正を行う場合に、原稿の傾きを求めるまでの時間を短縮することができる。
【図面の簡単な説明】
【００２５】
【図１】画像読取装置の断面図及び上面図
【図２】画像読取装置の電気的構成を概略的に示すブロック図
【図３】読取処理を示すフローチャート
【図４】傾き／原稿サイズ検出処理を示すフローチャート
【図５】右側先端エッジデータ検索処理を示すフローチャート
【図６】副走査方向検索処理を示すフローチャート
【図７】原稿サイズ検出処理を示すフローチャート
【図８】左側先端エッジデータ検索処理を示すフローチャート
【図９】主走査方向検索処理を示すフローチャート
【図１０】右側先端エッジデータ検索処理を説明する図
【図１１】右側先端エッジ画像を示す図
【図１２】左側エッジデータ検索処理及び右側エッジデータ検索処理を説明する図
【発明を実施するための形態】
【００２６】
＜実施形態＞
本発明の一実施形態を、図１ないし図１２を用いて説明する。
【００２７】
１．画像読取装置の機械的構成
図１に示すように、画像読取装置１は、ユーザにより給紙トレイ２に載置された複数の原稿Ｇを排紙トレイ４Ａ、４Ｂに搬送するとともに、搬送中の原稿Ｇを本体部３に含まれるＣＩＳ３０を用いて読み取るシートフィードスキャナである。給紙トレイ２は、載置台の一例である。
【００２８】
画像読取装置１の本体部３には、給紙トレイ２と排紙トレイ４を接続する搬送経路２２が設けられており、この搬送経路２２の周辺に、給紙ローラ４０と、分離パッド４２と、搬送ローラ４４と、ＣＩＳ３０と、フロントセンサ（以下、Ｆセンサ）１３と、リアセンサ（以下、Ｒセンサ）１４と、排紙ローラ４６と、切換板４８と、を備える。ＣＩＳ３０は、読取部の一例であり、Ｆセンサ１３は、検知部の一例である。
【００２９】
給紙ローラ４０は、給紙トレイ２に載置された原稿Ｇに当接し、摩擦力により、給紙トレイ２に載置された原稿Ｇを本体部３の内部へと引き込む。この際、原稿Ｇは、分離パッド４２の摩擦力により各原稿Ｇ毎に分離され、搬送経路２２へと送り出される。
【００３０】
搬送ローラ４４は、モータＭ（図２参照）により駆動され、本体部３の内部へと引き込まれた原稿Ｇを搬送経路２２に沿って搬送する。ＣＩＳ３０は、その主走査方向Ｄ１が搬送経路２２に沿った搬送方向Ｄ２に直交する姿勢で搬送経路２２上の読取位置Ｌ１に配置され、読取位置Ｌ１を通過する原稿Ｇを読み取る。図１に上面視して示すように、ＣＩＳ３０の原稿Ｇと対向する上面に複数の読取素子３１が主走査方向Ｄ１に並んで配置されており、これらの読取素子３１を用いて原稿Ｇを読み取る。
【００３１】
排紙ローラ４６は、搬送ローラ４４と同様にモータＭにより駆動され、搬送経路２２上に搬送された原稿Ｇを排紙トレイ４に送り出す。排紙ローラ４６の搬送経路２２を挟んで対向する位置に、切換板４８が配置されている。切換板４８は、切換部１９（図２参照）により制御されており、排紙トレイ４Ａへと続く第１搬送経路２２Ａに沿った第１姿勢Ｆ１と、排紙トレイ４Ｂへと続く第２搬送経路２２Ｂに沿った第２姿勢Ｆ２と、のいずれか一方の姿勢となるように制御される。
【００３２】
第１搬送経路２２Ａと第２搬送経路２２Ｂは、給紙トレイ２から排紙ローラ４６に至る範囲において共通している。つまり、読取位置Ｌ１を共通するとともに、後述する検知位置Ｌ２を共通する。
【００３３】
その一方、第１搬送経路２２Ａと第２搬送経路２２Ｂは、排紙ローラ４６から排紙トレイ４Ａ、４Ｂに至る範囲において異なる。この範囲において、第１搬送経路２２Ａは、略直線状に設けられており、名刺などの比較的小型の原稿の搬送に用いられる。また、第２搬送経路２２Ｂは、その一部が排紙ローラ４６に沿って曲線状に設けられており、Ａ４サイズなどの比較的大型の原稿の搬送に用いられる。
【００３４】
切換板４８が図１に実線で示す第１姿勢Ｆ１である場合、原稿Ｇは第１搬送経路２２Ａに沿って搬送され、排紙トレイ４Ａに排紙される。一方、切換板４８が図１に点線で示す第２姿勢Ｆ２である場合、原稿Ｇは第２搬送経路２２Ｂに沿って搬送され、排紙トレイ４Ｂに排紙される。つまり、給紙ローラ４０と搬送ローラ４４と排紙ローラ４６とによって、給紙トレイ２に載置された複数の原稿Ｇを搬送経路２２に沿って搬送する搬送部１５が形成されている。
【００３５】
Ｆセンサ１３は、給紙トレイ２に配置され、給紙トレイ２に原稿Ｇが載置された場合にオンし、給紙トレイ２に原稿Ｇが載置されていない場合にオフする。つまり、Ｆセンサ１３は、搬送経路２２において読取位置Ｌ１よりも上流側の検知位置Ｌ２に配置され、給紙トレイ２に原稿Ｇが有るか否かを検知する。Ｒセンサ１４は、搬送経路２２において読取位置Ｌ１よりも上流側であり、検知位置Ｌ２よりも下流側の検知位置Ｌ３に配置され、原稿Ｇが搬送経路２２上の検知位置Ｌ３を通過する場合にオンし、原稿Ｇが検知位置Ｌ３を通過していない場合にオフする。
【００３６】
図１に上面視して示すように、本実施形態では、原稿Ｇは給紙トレイ２に対して主走査方向の右側基準で載置され、主走査方向Ｄ１において、一点鎖線で示す中心線Ｐよりも右側に配置されたＦセンサ１３によって原稿Ｇの有無が検知される。そして、Ｆセンサ１３により原稿Ｇが検知されると、搬送部１５により原稿Ｇが搬送され、ＣＩＳ３０が有する複数の読取素子３１によって原稿Ｇが読み取られる。中心線Ｐが配された主走査方向Ｄ１の中点が、基準位置の一例である。また、中心線Ｐよりも右側が、主走査方向Ｄ１の基準位置の片側の一例であり、主走査方向Ｄ１の検知部側の一例である。本実施形態において、主走査方向Ｄ１の検知部側は、主走査方向Ｄ１と等しい。
【００３７】
そのため、図２に実線で示すように、原稿Ｇが名刺などの小型の原稿である場合、原稿Ｇは中心線Ｐよりも右側に載置される。この場合、原稿Ｇの画像は、ＣＩＳ３０の複数の読取素子３１のうち、中心線Ｐ上の基準読取素子３１Ｋよりも右側に配置された右側読取素子３１Ｒにより読み取られる。
【００３８】
一方、図２に二点鎖線で示すように、原稿ＧがＡ４サイズなどの大型の原稿である場合、原稿Ｇは中心線Ｐを亘って両側に載置される。この場合、原稿Ｇの画像は、基準読取素子３１Ｋ、右側読取素子３１Ｒに加えて、基準読取素子３１Ｋよりも左側に配置された左側読取素子３１Ｌにより読み取られる。基準読取素子３１Ｋよりも左側は、主走査方向Ｄ１の検知部側と逆側の一例である。本実施形態において、主走査方向Ｄ１の検知部側と逆側は、主走査方向Ｄ１の逆側と等しい。
【００３９】
さらに、画像読取装置１には、各種のボタンからなり、ユーザからの操作入力を受け付ける入力部１１、画像読取装置１の状態を表示する液晶ディスプレイからなる表示部１２が設けられている（図２参照）。
【００４０】
２．画像読取装置の電気的構成
図３に示すように、画像読取装置１は、中央処理装置（以下、ＣＰＵ）２０、ＲＯＭ２６、ＲＡＭ２７、画像処理部２８、デバイス制御部１６、アナログフロントエンド（以下、ＡＦＥ）１７、駆動回路１８を備え、これらにバス２９を介して、入力部１１、表示部１２、切換部１９、Ｆセンサ１３、Ｒセンサ１４、などが接続されている。図３に点線２１で示すように、ＣＰＵ２０と、ＲＯＭ２６と、ＲＡＭ２７と、画像処理部２８を含めたものが、制御部の一例である。
【００４１】
ＲＯＭ２６には、画像読取装置１の動作を制御するための各種のプログラムが記憶されており、ＣＰＵ２０は、ＲＯＭ２６から読み出したプログラムに従って各部の制御を行う。デバイス制御部１６は、ＣＩＳ３０に接続されており、ＣＰＵ２０からの命令に基づいて読取制御信号をＣＩＳ３０に送信する。ＣＩＳ３０は、デバイス制御部１６からの読取制御信号に基づいて、予め定められた読取領域Ｈ（図１０参照）に亘って原稿Ｇを読み取る。
【００４２】
ＣＩＳ３０は、搬送経路２２の読取位置Ｌ１を搬送される原稿Ｇに対して、各読取素子３１を用いて読取領域Ｈに亘って繰り返し読取データを取得する。これにより、ＣＩＳ３０は、主走査方向Ｄ１及び主走査方向Ｄ１と直交する副走査方向Ｄ３に複数の読取データが並んで配置されて構成される読取画像Ｇ１（図１０参照）を読み取ると、読取画像Ｇ１をＡＦＥ１５に出力する。図１０に示すように、読取画像Ｇ１の各読取データには、当該読取データが読み取られた受光素子及びタイミングに基づいて、主走査方向Ｄ１に延びるＸ軸方向のＸ座標、及び副走査方向Ｄ３に延びるＹ軸方向のＹ座標が設定される。
【００４３】
ＡＦＥ１７は、ＣＩＳ３０に接続されており、ＣＰＵ２０からの命令に基づいて、ＣＩＳ３０から出力されるアナログ信号である読取データをデジタル信号である階調データに変換する。ＡＦＥ１５は、変換した階調データを、バス２９を介してＲＡＭ２７に記憶する。
【００４４】
画像処理部２８は、ＲＡＭ２７に記憶された階調データに２値化処理やエンハンス処理等のエッジ抽出処理を行い、エッジ画像Ｇ２に変換する。画像処理部２８は、２値化処理において、予め記憶された閾値と各読取データを比較し、閾値よりも低い輝度を有する読取データを「１」に変換し、閾値よりも高い輝度を有する読取データを「０」に変換する。そのため、エッジ画像Ｇ２は、「０」と「１」で表される２値化データとなる。「１」は、第１データの一例であり、「０」は、第２データの一例である。また、画像処理部２８は、ＲＡＭ２７に記憶された階調データに傾き補正やトリミング処理等の補正処理を行う。画像処理部２８により変換されたエッジ画像Ｇ２は、ＲＡＭ２７に記憶される。
【００４５】
駆動回路１８は、モータＭに接続されており、ＣＰＵ２０からの命令に基づいてパルス信号をモータＭに送信する。モータＭは、パルス信号の１パルスで、１ステップの回転角度分、回転駆動する。モータＭが１ステップ分駆動すると、搬送ローラ４４及び排紙ローラ４６が駆動し、搬送経路２２上を原稿Ｇが所定距離の分だけ搬送される。ＣＰＵ２０は、原稿Ｇを搬送する際に、駆動回路１８を介してパルス信号をモータＭに送信し、これに従って搬送部１５は、そのパルス信号のパルスの数に規定距離を掛けた距離だけ原稿Ｇを搬送する。以後、駆動回路１８がモータＭに送信するパルス信号のパルスの数を、ステップ数と呼ぶ。
【００４６】
３．読取処理
次に、図３ないし図１２を参照して、画像読取装置１における原稿Ｇの読取処理について説明する。本実施形態では、原稿Ｇとして、図１０に実線で示す名刺を読み取る処理について主に説明する。
【００４７】
図３は、ＣＰＵ２０が所定のプログラムに従って実行する読取処理のフローチャートを示す。ＣＰＵ２０は、給紙トレイ２に原稿Ｇが載置されたことがＦセンサ１３により検知され、入力部１１を介して使用者から原稿Ｇの読取指示が入力されると、処理を開始する。
【００４８】
ＣＰＵ２０は、読取処理を開始すると、駆動回路１８を用いてモータＭにパルス信号を送信して原稿Ｇの搬送を開始する（Ｓ２）とともに、ステップ数をカウントする。ＣＰＵ２０は、Ｒセンサ１４を用いて搬送中の原稿Ｇの位置を検知し（Ｓ４：ＮＯ）、Ｒセンサ１４がオン（Ｓ４：ＹＥＳ）すると、搬送経路２２上の検知位置Ｌ３に原稿Ｇの搬送方向Ｄ２の先端が到達したことを検知する。ＣＰＵ２０は、Ｒセンサ１４がオンしてから第１ステップ数ＳＴ１がカウントされた後に原稿Ｇの読み取りを開始する（Ｓ６）。
【００４９】
ＣＰＵ２０は、原稿Ｇの読み取りを開始すると、まず、読取領域Ｈの先端側に設定された先端読取領域ＳＨの先端読取画像ＳＧ１を読み取る読取画像抽出処理を実行する。図１０に示すように、先端読取領域ＳＨは、副走査方向Ｄ３における幅Ｗが、原稿Ｇの搬送方向Ｄ２の先端を含む範囲に設定されている。そのため、先端読取画像ＳＧ１には、原稿Ｇの先端エッジ、つまり原稿Ｇの搬送方向Ｄ２における先端辺を読み取った画像が含まれる。先端読取領域ＳＨは、所定範囲の一例である。
【００５０】
また、ＣＰＵ２０は、画像処理部２８を用いて先端読取画像ＳＧ１にエッジ抽出処理を実行する（Ｓ８）。ＣＰＵ２０は、先端読取領域ＳＨの幅Ｗに相当する第２ステップ数ＳＴ２がカウントされるまで、先端読取画像ＳＧ１の読み取り及びエッジ抽出処理を繰り返す（Ｓ１０：ＮＯ）。ＣＰＵ２０は、第２ステップ数ＳＴ２がカウントされると（Ｓ１０：ＹＥＳ）、先端読取画像ＳＧ１をエッジ抽出処理した先端エッジ画像ＳＧ２をＲＡＭ２７に記憶し、原稿Ｇの傾きθ及び原稿サイズＺを検出する傾き／原稿サイズ検出処理（Ｓ１２）を実行する。ＣＰＵ２０は、当該処理を、先端読取領域ＳＨの読取後、読取領域Ｈの読取完了前に実行する。
【００５１】
（傾き／原稿サイズ検出処理）
図４に、傾き／原稿サイズ検出処理のフローチャートを示す。傾き／原稿サイズ検出処理において、ＣＰＵ２０は、ＲＡＭ２７から先端エッジ画像ＳＧ２を読み出し（Ｓ３２）、画像処理部２８を用いて原稿Ｇの先端エッジに当たる読取データである先端エッジデータを検索する処理を実行する。先端エッジデータは、エッジ点の一例である。
【００５２】
当該処理において、ＣＰＵ２０は、まず、先端エッジ画像ＳＧ２のうち、基準読取素子３１Ｋ及び右側読取素子３１Ｒを用いて読み取られた右側先端エッジ画像ＳＧＲ（図１１参照）に対して先端エッジデータを検索する右側先端エッジデータ検索処理を実行する（Ｓ３４）。右側先端エッジ画像ＳＧＲには、基準読取素子３１Ｋを用いて読み取られた基準先端エッジ画像ＳＧＫが含まれる。右側先端エッジ画像ＳＧＲは、検知部側読取画像の一例であり、基準先端エッジ画像ＳＧＫは、基準読取画像の一例である。また、右側先端エッジデータ検索処理は、検知部側エッジ点検索処理の一例である。
【００５３】
（右側先端エッジデータ検索処理）
図５に、右側先端エッジデータ検索処理のフローチャートを示す。右側原稿先端エッジ探索処理において、ＣＰＵ２０は、検索された先端エッジデータの数を示す検索データ数Ｂ、及び検索を失敗した回数を示す失敗カウンタＮをゼロにし（Ｓ５２、Ｓ５４）、当該処理の開始時における開始点を（ＸＭ、Ｙ０）に設定する（Ｓ５６）。図１０に示すように、先端読取画像ＳＧ１及び先端エッジ画像ＳＧ２では、図面右上角の座標は（Ｘ０、Ｙ０）で表され、図面左下角の座標は（ＸＭＡＸ、ＹＴ）で表される。ＸＭは、Ｘ０とＸＭＡＸの中点を意味しており、Ｙ０は、ＣＩＳ３０によって副走査方向Ｄ３に先に読み取られた側の端における読取データのＹ座標を意味する。先端エッジデータ検索処理では、開始点のＹ座標はＹ０に設定される。
【００５４】
ＣＰＵ２０は、現在の開始点のＸ座標がＸＭＡＸ以下であるかを確認し（Ｓ５８）、現在の開始点のＸ座標がＸＭＡＸよりも大きい場合（Ｓ５８：ＮＯ）、右側先端エッジデータ検索処理を終了する。一方、現在の開始点のＸ座標がＸＭＡＸ以下である場合（Ｓ５８：ＹＥＳ）、開始点から副走査方向Ｄ３に検索点を移動させて先端エッジデータを検索する副走査方向検索処理を実行する（Ｓ６０）。
【００５５】
（副走査方向検索処理）
図６に、副走査方向検索処理のフローチャートを示す。副走査方向検索処理の開始時において、検索点は開始点に等しい。副走査方向検索処理において、ＣＰＵ２０は、今回の検索点における読取データを確認する（Ｓ８２）。
【００５６】
図１１は、図１０に示す先端エッジ画像ＳＧ２を、各読取データが視認できる程度に拡大した拡大図である。図１１に示すように、先端エッジ画像ＳＧ２では、通常、原稿Ｇが存在しない領域を読み取った読取データは「０」の２値化データで表され、先端エッジデータは「１」の２値化データで表される。図１１では、「０」の２値化データについては表示を省略し、「１」の２値化データを黒点で表示している。また、先端エッジデータなどのエッジデータは、主走査方向及び副走査方向において連続した２個の「１」の２値化データによって表され、主走査方向及び副走査方向に連続して発生することがない孤立点Ｂと区別される。
【００５７】
ＣＰＵ２０は、今回の検索点が「０」である場合（Ｓ８４：ＮＯ）、今回の検索点のＹ座標に１を加え、次回の検索点とする（Ｓ９６）。ＣＰＵ２０は、次回の検索点のＹ座標がＹＴよりも大きいかを確認し（Ｓ９８）、次回の検索点のＹ座標がＹＴよりも大きい場合（Ｓ９８：ＹＥＳ）、検索成功フラグＦをオフし（Ｓ１００）、副走査方向検索処理を終了する。これにより、現在の開始点からの副走査方向検索処理において、先端エッジデータが検索されなかったことが示される。一方、次回の検索点のＹ座標がＹＴ以下である場合（Ｓ９８：ＮＯ）、Ｓ８２からの処理を繰り返す。
【００５８】
また、ＣＰＵ２０は、今回の検索点が「１」である場合（Ｓ８４：ＹＥＳ）、今回の検索点の座標をＲＡＭ２７に一時的に記憶する（Ｓ８６）。次に、ＣＰＵ２０は、今回の検索点のＹ座標がＹ０よりも大きいかを確認する（Ｓ８８）。ＣＰＵ２０は、今回の検索点のＹ座標がＹ０である場合（Ｓ８８：ＮＯ）、現在の開始点からの副走査方向検索処理において、複数の検索が行われておらず、先端エッジデータの正確な検索が困難なことから、Ｓ９６からの処理を繰り返す。
【００５９】
一方、ＣＰＵ２０は、今回の検索点のＹ座標がＹ０よりも大きい場合（Ｓ８８：ＹＥＳ）、前回の検索点が「１」であったかを確認する（Ｓ９０）。具体的には、ＣＰＵ２０は、ＲＡＭ２７に前回の検索点の座標が記憶されているかを確認する。ＣＰＵ２０は、前回の検索点が「０」であった場合（Ｓ９０：ＮＯ）、先端エッジデータか孤立点Ｂかの区別が困難なことから、Ｓ９６からの処理を繰り返す。
【００６０】
ＣＰＵ２０は、前回の検索点が「１」であった場合（Ｓ９０：ＹＥＳ）、副走査方向Ｄ３に連続した「１」の２値化データが検索されたことから、先端エッジデータが検索されたと判断する。ＣＰＵ２０は、今回の検索点の座標を先端エッジデータの座標としてＲＡＭ２７に記憶し（Ｓ９２）、検索成功フラグＦをオンして（Ｓ９４）、副走査方向検索処理を終了する。これにより、現在の開始点からの副走査方向検索処理において、先端エッジデータが検索されたことが示される。
【００６１】
ＣＰＵ２０は、副走査方向検索処理を終了すると、図５に示す右側先端エッジデータ検索処理に戻り、終了した副走査方向検索処理において先端エッジデータが検索されたかを確認する（Ｓ６２）。ＣＰＵ２０は、検索成功フラグＦがオンされており、先端エッジデータが検索された場合（Ｓ６２：ＹＥＳ）、検索データ数Ｂに１を加えるとともに失敗カウンタＮをゼロにする（Ｓ６４）。
【００６２】
また、ＣＰＵ２０は、現在の開始点のＸ座標に１５を加え、次回の開始点とし（Ｓ６６）、Ｓ５８からの処理を繰り返す。つまり、ＣＰＵ２０は、開始点を主走査方向Ｄ１に１５毎に移動させて、先端エッジデータの検索を繰り返す。開始点のＸ座標に加える１５は、基準データ数の一例である。
【００６３】
一方、ＣＰＵ２０は、検索成功フラグＦがオフされており、先端エッジデータが検索されなかった場合（Ｓ６２：ＮＯ）、更に検索データ数Ｂを確認する（Ｓ６８）。ＣＰＵ２０は、検索データ数Ｂがゼロであり（Ｓ６８：ＹＥＳ）、右側先端エッジデータ検索処理において未だに先端エッジデータが検索されていない場合、失敗カウンタＮを増加させることなく、処理を続行する。これによって、先端エッジデータが検索される前に、失敗カウンタＮの増加により右側先端エッジデータ検索処理が終了してしまうことが防止され、先端エッジデータが検索されるまで副走査方向検索処理が繰り返される。
【００６４】
ＣＰＵ２０は、現在の開始点のＸ座標を左側外部座標Ｔ１としてＲＡＭ２７に記憶し（Ｓ７０）、Ｓ６６からの処理を繰り返す。ここで、左側外部座標Ｔ１は先端エッジデータが初めて検索された開始点へ移動する前の開始点のＸ座標を意味する。つまり、次のＳ６６からの処理において、先端エッジデータが初めて検索された場合、左側外部座標Ｔ１は先端エッジデータが初めて検索された開始点へ移動する前の開始点のＸ座標となる。また、次のＳ６６からの処理においても先端エッジデータが初めて検索されなかった場合、左側外部座標Ｔ１が順次更新されることで、左側外部座標Ｔ１は先端エッジデータが初めて検索された開始点へ移動する前の開始点のＸ座標となる。左側外部座標Ｔ１は、第１位置の一例である。
【００６５】
一方、ＣＰＵ２０は、検索データ数Ｂがゼロでなく（Ｓ６８：ＹＥＳ）、右側先端エッジデータ検索処理において既に先端エッジデータが検索されている場合、失敗カウンタＮに１を加え（Ｓ７２）、失敗カウンタＮを確認する（Ｓ７４）。ＣＰＵ２０は、失敗カウンタＮが１である場合（Ｓ７４：ＮＯ）、つまり先端エッジデータが検索されないことが連続して生じていない場合には、検索されない原因がノイズ等である可能性があることから、Ｓ６６からの処理を繰り返す。
【００６６】
また、ＣＰＵ２０は、失敗カウンタＮが２である場合（Ｓ７４：ＹＥＳ）、つまり先端エッジデータが検索されないことが連続して生じている場合には、これ以上検索を繰り返しても先端エッジデータが検索されないと判断する。ＣＰＵ２０は、現在の開始点のＸ座標を右側外部座標Ｔ２としてＲＡＭ２７に記憶し（Ｓ７６）、右側先端エッジデータ検索処理を終了する。
【００６７】
ＣＰＵ２０は、右側先端エッジデータ検索処理を終了すると、図４に示す傾き／原稿サイズ検出処理に戻り、終了した右側先端エッジデータ検索処理において基準先端エッジ画像ＳＧＫで先端エッジデータが検索されたかを確認する（Ｓ３６）。具体的には、ＣＰＵ２０は、ＲＡＭ２７にＸ座標がＸＭとなる先端エッジデータの座標が記憶されているかを確認する。
【００６８】
ＣＰＵ２０は、図１０に二点鎖線で示すように、基準先端エッジ画像ＳＧＫで先端エッジデータが検索された場合（Ｓ３６：ＹＥＳ）、左側読取素子３１Ｌを用いて読み取られた左側先端エッジ画像ＳＧＬ（図１１参照）に対して先端エッジデータを検索する左側先端エッジデータ検索処理を実行する（Ｓ３８）。
【００６９】
（左側先端エッジデータ検索処理）
左側先端エッジデータ検索処理は、開始点を（ＸＭ−１５、Ｙ０）に設定する点（Ｓ５６）、現在の開始点のＸ座標がＸ０以上であるかを確認する点（Ｓ５８）、及び現在の開始点のＸ座標から１５を減じ、次回の開始点とする点（Ｓ６６）を除いて右側先端エッジデータ検索処理と同一であり、重複した説明を省略する。左側先端エッジデータ検索処理を実行する場合、右側先端エッジデータ検索処理において左側外部座標Ｔ１がＲＡＭ２７に記憶されない。この場合、ＣＰＵ２０は、左側先端エッジデータ検索処理で検索された外部座標Ｔを左側外部座標Ｔ１としてＲＡＭ２７に記憶する（Ｓ７６）。
【００７０】
ＣＰＵ２０は、左側先端エッジデータ検索処理を実行した場合、右側先端エッジデータ検索処理及び左側先端エッジデータ検索処理の両方の先端エッジデータ検索処理において検索された先端エッジデータを用いて、後述する原稿Ｇの傾きθを求める処理を実行する（Ｓ４２）。
【００７１】
一方、ＣＰＵ２０は、図１０に実線で示すように、基準先端エッジ画像ＳＧＫで先端エッジデータが検索されない場合（Ｓ３６：ＮＯ）、左側先端エッジデータ検索処理を実行することなく、右側先端エッジデータ検索処理において検索された先端エッジデータを用いて、後述する原稿Ｇの傾きθを求める処理を実行する（Ｓ４２）。
【００７２】
ＣＰＵ２０は、原稿Ｇの主走査方向Ｄ１に対する傾きθを求める処理において、ＲＡＭ２７から先端エッジデータの座標を読み出す（Ｓ４０）。ＣＰＵ２０は、左側先端エッジデータ検索処理が実行されている場合、右側先端エッジデータ検索処理及び左側先端エッジデータ検索処理において検索された先端エッジデータの座標を読み出し、左側先端エッジデータ検索処理が実行されていない場合、右側先端エッジデータ検索処理において検索された先端エッジデータの座標を読み出す。
【００７３】
ＣＰＵ２０は、読み出した先端エッジデータの座標を直線近似し、算出された直線式をＲＡＭ２７に記憶する。算出された直線式は、Ｘ軸及びＹ軸を用いて表わされ、直線式の傾きは、Ｘ軸方向、つまり主走査方向Ｄ１に対する傾きを表す。ＣＰＵ２０は、算出された直線式の傾きを、原稿Ｇの主走査方向Ｄ１に対する傾きθとして検出し（Ｓ４２）、次に、原稿サイズＺを検出する原稿サイズ検出処理を実行する（Ｓ４４）。
【００７４】
（原稿サイズ検出処理）
図７に、原稿サイズ検出処理のフローチャートを示す。原稿サイズ検出処理において、ＣＰＵ２０は、ＲＡＭ２７から先端エッジ画像ＳＧ２を読み出し（Ｓ１０２）、画像処理部２８を用いて原稿サイズＺを検出する処理を実行する。ＣＰＵ２０は、まず、原稿Ｇの先端エッジの左側頂点の読取データに当たる左側頂点データを検出するために、原稿Ｇの左側端点に当たる左側エッジデータを検索する左側エッジデータ検索処理を実行する（Ｓ１０４）。
【００７５】
（左側エッジデータ検索処理）
図８に、左側エッジデータ検索処理のフローチャートを示す。左側エッジデータ検索処理において、ＣＰＵ２０は、失敗カウンタＮをゼロにし（Ｓ１２２）、ＲＡＭ２７から左側外部座標Ｔ１を読み出す（Ｓ１２４）。ＣＰＵ２０は、読み出した左側外部座標Ｔ１を用いて、当該処理の開始時における開始点を（Ｔ１、ＹＴ）に設定する（Ｓ１２６）。左側エッジデータ検索処理では、開始点のＸ座標はＴ１に設定される。
【００７６】
ＣＰＵ２０は、現在の開始点のＹ座標がＹ０以上であるかを確認し（Ｓ１２８）、現在の開始点のＹ座標がＹ０よりも小さい場合（Ｓ１２８：ＮＯ）、左側エッジデータ検索処理を終了する。一方、現在の開始点のＹ座標がＹ０以上である場合（Ｓ１２８：ＹＥＳ）、図１２に示すように、開始点から主走査方向Ｄ１に検索点を移動させて左側エッジデータを検索する主走査方向検索処理を実行する（Ｓ１３０）。
【００７７】
（主走査方向検索処理）
図９に、主走査方向検索処理のフローチャートを示す。主走査方向検索処理において、ＣＰＵ２０は、今回の検索点における読取データを確認する（Ｓ１５２）。ＣＰＵ２０は、今回の検索点が「０」である場合（Ｓ１５４：ＮＯ）、今回の検索点のＸ座標に１を加え、次回の検索点とする（Ｓ１６６）。ＣＰＵ２０は、次回の検索点のＸ座標がＸＭＡＸよりも大きいかを確認し（Ｓ１６８）、次回の検索点のＸ座標がＸＭＡＸよりも大きい場合（Ｓ１６８：ＹＥＳ）、検索成功フラグＦをオフし（Ｓ１００）、主走査方向検索処理を終了する。一方、次回の検索点のＸ座標がＸＭＡＸ以下である場合（Ｓ１６８：ＮＯ）、Ｓ１５２からの処理を繰り返す。
【００７８】
また、ＣＰＵ２０は、今回の検索点が「１」である場合（Ｓ１５４：ＹＥＳ）、今回の検索点の座標をＲＡＭ２７に一時的に記憶する（Ｓ１５６）。次に、ＣＰＵ２０は、今回の検索点のＸ座標がＴ１よりも大きいかを確認する（Ｓ１５８）。ＣＰＵ２０は、今回の検索点のＸ座標がＴ１である場合（Ｓ１５８：ＹＥＳ）、Ｓ１６６からの処理を繰り返す。
【００７９】
一方、ＣＰＵ２０は、今回の検索点のＸ座標がＴ１よりも大きい場合（Ｓ１５８：ＹＥＳ）、前回の検索点が「１」であったかを確認する（Ｓ１６０）。ＣＰＵ２０は、前回の検索点が「０」であった場合（Ｓ１６０：ＮＯ）、左側エッジデータか孤立点Ｂかの区別が困難なことから、Ｓ１６６からの処理を繰り返す。
【００８０】
ＣＰＵ２０は、前回の検索点が「１」であった場合（Ｓ１６０：ＹＥＳ）、左側エッジデータが検索されたと判断し、今回の検索点の座標を左側エッジデータの座標としてＲＡＭ２７に記憶するとともに（Ｓ１６２）、検索成功フラグＦをオンして（Ｓ１６４）、主走査方向検索処理を終了する。
【００８１】
ＣＰＵ２０は、主走査方向検索処理を終了すると、図８に示す左側エッジデータ検索処理に戻り、終了した主走査方向検索処理において左側エッジデータが検索されたかを確認する（Ｓ１３２）。ＣＰＵ２０は、検索成功フラグＦがオンされており、左側エッジデータが検索された場合（Ｓ１３２：ＹＥＳ）、失敗カウンタＮをゼロにする（Ｓ１３４）。ＣＰＵ２０は、現在の開始点のＹ座標から１５を減じて次回の開始点とし（Ｓ１３６）、Ｓ１２８からの処理を繰り返す。
【００８２】
一方、ＣＰＵ２０は、検索成功フラグＦがオフされており、左側エッジデータが検索されなかった場合（Ｓ１３２：ＮＯ）、失敗カウンタＮに１を加え（Ｓ１３８）、失敗カウンタＮを確認する（Ｓ１４０）。ＣＰＵ２０は、失敗カウンタＮが１である場合（Ｓ１４０：ＮＯ）、Ｓ１３６からの処理を繰り返す。ＣＰＵ２０は、失敗カウンタＮが２である場合（Ｓ１４０：ＹＥＳ）、これ以上検索を繰り返しても左側エッジデータが検索されないと判断し、左側エッジデータ検索処理を終了する。
【００８３】
ＣＰＵ２０は、左側エッジデータ検索処理を終了すると、図７に示す原稿サイズ検出処理に戻り、終了した左側エッジデータ検索処理において検索された左側エッジデータから代表左側エッジデータを選出する（Ｓ１０６）。ＣＰＵ２０は、左側エッジデータ検索処理において１つの左側エッジデータが検索された場合、その左側エッジデータを代表左側エッジデータとして選出する。また、左側エッジデータ検索処理において複数の左側エッジデータが検索された場合、その平均や中点等を代表左側エッジデータとして選出する。
【００８４】
（右側エッジデータ検索処理）
次に、ＣＰＵ２０は、原稿Ｇの先端エッジの右側頂点の読取データに当たる右側頂点データを検出するために、原稿Ｇの右側端点に当たる右側エッジデータを検索する右側エッジデータ検索処理を実行する（Ｓ１０８）。
【００８５】
右側先端エッジデータ検索処理では、開始点のＸ座標はＴ２に設定され、ＣＰＵ２０は、図１２に示すように、開始点から主走査方向Ｄ１と逆側に検索点を移動させて原稿Ｇの右側エッジに当たる読取データである右側エッジデータを検索する。右側先端エッジデータ検索処理は、開始点を（Ｔ２、ＹＴ）に設定する点（Ｓ１２６）、主走査方向検索処理において今回の検索点のＸ座標がＴ２よりも小さいかを確認する点（Ｓ１５８）、主走査方向検索処理において今回の検索点のＸ座標から１を減じて次回の検索点とする点（Ｓ１６６）、次回の検索点のＸ座標がＸ０よりも小さいかを確認する点（Ｓ１６８）、を除いて左側エッジデータ検索処理と同一であり、重複した説明を省略する。
【００８６】
ＣＰＵ２０は、右側エッジデータ検索処理を終了すると、終了した右側エッジデータ検索処理において検索された右側エッジデータから代表右側エッジデータを選出する（Ｓ１１０）。ＣＰＵ２０は、先端エッジデータから算出された直線式をＲＡＭ２７から読み出し（Ｓ１１２）、当該直線式で示される直線と、当該直線に対する垂線であって代表左側エッジデータを通過する垂線との交点を、左側頂点データとして検出する（Ｓ１１４）。同様に、代表右側エッジデータを通過する垂線との交点を、右側頂点データとして検出する（Ｓ１１６）。
【００８７】
ＣＰＵ２０は、左側頂点データと右側頂点データの座標から、原稿Ｇの先端エッジにおける頂点間距離、つまり原稿Ｇの先端辺の幅Ｄを算出する（Ｓ１１８）。ＲＯＭ２６には、予め原稿Ｇの幅Ｄと原稿サイズＺとが対応付けられた対応表が記憶されている。ＣＰＵ２０は、算出された原稿Ｇの先端辺の幅ＤとＲＯＭ２６に記憶された対応表から原稿サイズＺを検出し（Ｓ１２０）、原稿サイズ検出処理を終了するとともに、傾き／原稿サイズ検出処理を終了する。
【００８８】
上述したように、ＣＰＵ２０は、読取領域Ｈの読取中に傾き／原稿サイズ検出処理を実行している。そして、ＣＰＵ２０は、、傾き／原稿サイズ検出処理において原稿Ｇの傾きθ及び原稿サイズＺが検出されると、読取領域Ｈの読取中に読取画像Ｇ１の傾き補正を開始する。つまり、読取画像Ｇ１を読み取りながら読取画像Ｇ１の傾き補正を実行する。
【００８９】
ＣＰＵ２０は、検出された原稿Ｇの傾きθと基準角度θＫとを比較し（Ｓ１４）、原稿Ｇの傾きθが基準角度θＫ以内である場合（Ｓ１４：ＹＥＳ）、画像処理部２８を用いてＲＡＭ２７に記憶されている読取画像Ｇ１に対して、トリミング及び傾き補正処理を実行する（Ｓ１６）。ＣＰＵ２０は、検出された原稿サイズＺから出力用データのサイズを決定し、ＲＡＭ２７に記憶されている読取画像Ｇ１から原稿Ｇの傾きθに沿った方向に読取データを読み出し、出力用データを完成させる。
【００９０】
一方、ＣＰＵ２０は、原稿Ｇの傾きθが基準角度θＫよりも大きい場合（Ｓ１４：ＮＯ）、ＲＡＭ２７に記憶されている読取画像Ｇ１に対して、トリミング処理を実行する（Ｓ１８）。ＣＰＵ２０は、検出された原稿サイズＺから出力用データのサイズを決定し、ＲＡＭ２７に記憶されている読取画像Ｇ１から主走査方向に沿った方向に読取データを読み出し、出力用データを完成させる。
【００９１】
ＣＰＵ２０は、Ｒセンサ１４がオフするまでＳ１４〜Ｓ１８の処理を繰り返す（Ｓ２０：ＮＯ）。ＣＰＵ２０は、Ｒセンサ１４がオフすると（Ｓ２０：ＹＥＳ）、Ｒセンサ１４がオフしてから第３ステップ数ＳＴ３がカウントされた後に原稿Ｇの読み取りを終了する（Ｓ２２）とともに原稿Ｇの搬送を終了し（Ｓ２４）、読取処理を終了する。
【００９２】
４．本実施形態の効果
（１）本実施形態の画像読取装置１では、先端エッジ画像ＳＧ２の先端エッジデータを検索する際に、まず右側先端エッジ画像ＳＧＲに対して右側先端エッジデータ検索処理を実行し、当該右側先端エッジデータ検索処理において、基準先端エッジ画像ＳＧＫで先端エッジデータが検索されない場合には、左側先端エッジ画像ＳＧＬに対して先端エッジデータを検索することなく、右側先端エッジデータ検索処理において検索された先端エッジデータから原稿Ｇの傾きθを求める。そのため、開始点を先端エッジ画像ＳＧ２の主走査方向における端から端まで移動させて検索を行う従来技術に比べて、中心線Ｐに対して片側だけで先端エッジデータの検索が済むため、先端エッジデータの検索に必要な時間を短縮することができ、原稿Ｇの傾きθを求めるまでの時間を短縮することができる。
【００９３】
（２）一方、本実施形態の画像読取装置１では、右側先端エッジデータ検索処理において、基準先端エッジ画像ＳＧＫで先端エッジデータが検索された場合、左側先端エッジ画像ＳＧＬに対して左側先端エッジデータ検索処理を実行し、右側先端エッジデータ検索処理及び左側先端エッジデータ検索処理において検索された先端エッジデータから原稿Ｇの傾きθを求める。そのため、中心線Ｐに対して両側で検索された先端エッジデータを用いて、原稿Ｇの傾きθを精度良く求めることができる。
【００９４】
（３）本実施形態の画像読取装置１では、右側（左側）先端エッジデータ検索処理の開始時において開始点のＸ座標をＸＭ（ＸＭ−１５）に設定し、その後、開始点を主走査方向Ｄ１（主走査方向Ｄ１と逆側）に移動させて先端エッジデータを検索する。そのため、先端エッジ画像ＳＧ２の主走査方向Ｄ１における両端部など、先端エッジデータが存在しない部分において先端エッジデータを検索する必要がなく、先端エッジデータの検索に必要な時間を短縮することができる。
【００９５】
（４）本実施形態の画像読取装置１では、右側先端エッジデータ検索処理において、基準先端エッジ画像ＳＧＫで先端エッジデータが検索されない場合でも、先端エッジデータが検索されるまで先端エッジデータの検索を繰り返すので、先端エッジデータが検索される前に先端エッジデータの検索が終了され、右側先端エッジデータ検索処理において先端エッジデータが１つも検索されない事態が発生することが抑制される。
【００９６】
（５）本実施形態の画像読取装置１では、右側（左側）先端エッジデータ検索処理において、開始点のＸ座標を１５づつ移動して先端エッジデータを検索する。また、右側（左側）エッジデータ検索処理において、開始点のＹ座標を１５づつ移動して右側（左側）エッジデータを検索する。そのため、開始点のＸ座標及び又はＹ座標を１づつ移動してエッジデータを検索する場合に比べて、先端エッジデータの検索に必要な時間を短縮することができ、原稿Ｇの傾きθを求めるまでの時間を短縮することができる。
【００９７】
（６）本実施形態の画像読取装置１では、右側（左側）先端エッジデータ検索処理及び右側（左側）エッジデータ検索処理において、主走査方向Ｄ１または副走査方向Ｄ３に連続した検索点がいずれも「１」である場合にエッジデータが検索されたと判断する。そのため、副走査方向に連続して発生することがない孤立点Ｂをエッジデータと誤検索してしまうことが抑制され、原稿Ｇの傾きθを正確に求めることができる。
【００９８】
（７）本実施形態の画像読取装置１では、右側（左側）先端エッジデータ検索処理及び右側（左側）エッジデータ検索処理において、主走査方向Ｄ１または副走査方向Ｄ３に開始点を移動させてエッジデータを検索し、先端エッジデータ検索されないことが連続して生じた場合に、先端エッジデータの検索を終了する。そのため、ノイズ等により１回だけエッジデータが検索されなかった場合にエッジデータの検索を終了してしまうことが抑制され、エッジデータの検索終了タイミングを正確に判断することができる。
【００９９】
（８）本実施形態の画像読取装置１では、左側エッジデータ検索処理において、開始点のＸ座標をＴ１に設定し、先端エッジ画像ＳＧ２の主走査方向Ｄ１の逆側における端位置、つまりＸ０を開始点としない。また、右側エッジデータ検索処理において、開始点のＸ座標をＴ２に設定し、先端エッジ画像ＳＧ２の主走査方向Ｄ１における端位置、つまりＸＭＡＸを開始点としない。そのため、右側（左側）エッジデータ検索処理に必要な時間を短縮することができ、原稿サイズＺを求めるまでの時間を短縮することができる。
【０１００】
（９）本実施形態の画像読取装置１では、中心線Ｐを主走査方向Ｄ１の基準位置とするので、主走査方向Ｄ１の基準位置が主走査方向Ｄ１におけるＦセンサ１３の位置と逆側に配置される場合に比べて、右側先端エッジデータ検索処理に必要な時間を短縮することができる。
【０１０１】
＜他の実施形態＞
本発明は上記記述及び図面によって説明した実施形態に限定されるものではなく、例えば次のような種々の態様も本発明の技術的範囲に含まれる。
（１）上記実施形態では、スキャナ機能を備えた画像読取装置１を用いて説明を行ったが、本発明はこれに限られず、プリンタ機能、コピー機能、ファクシミリ機能などを備えた複合機であっても良い。
【０１０２】
（２）上記実施形態では、画像読取装置１が１つのＣＰＵ２０を有し、この１つのＣＰＵ２０によって読取処理等の各種処理が実行される例を用いて説明を行ったが、本発明はこれに限られない。例えば、複数のＣＰＵにより各部が構成されてもよければ、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などのハード回路のみにより各部が構成されてもよい。さらには、単数又は複数のＣＰＵ及びＡＳＩＣによって、各部が構成されてもよい。
【０１０３】
（３）また、ＣＰＵ２０が実行するプログラムは必ずしもＲＯＭ２６に記憶されている必要はなく、ＣＰＵ２０自身に記憶されていてもよければ、他の記憶装置に記憶されていても良い。
【０１０４】
（４）上記実施形態では、検知部が給紙トレイ２に載置されたＦセンサ１３である例を用いて説明を行ったが、検知部は必ずしもＦセンサ１３である必要はなく、また、検知部は必ずしも給紙トレイ２に載置されている必要もない。
【０１０５】
（５）上記実施形態では、主走査方向Ｄ１の基準位置が、主走査方向Ｄ１の中点である例を用いて説明を行ったが、基準位置は主走査方向Ｄ１において適宜変更することができる。
【０１０６】
（６）上記実施形態では、右側（左側）エッジデータ検索処理において、複数回の主走査方向検索処理を実行する例を用いて説明を行ったが、右側（左側）エッジデータ検索処理では、必ずしも複数個の右側（左側）エッジデータを検索する必要がなく、右側（左側）エッジデータを１つ検索した場合に右側（左側）エッジデータ検索処理を終了してもよい。
【０１０７】
（７）上記実施形態では、右側（左側）先端エッジデータ検索処理及び右側（左側）エッジデータ検索処理において、開始点のＸ座標またはＹ座標を１５づつ移動して検索を行う例を用いて説明を行ったが、１５は一例であり、２以上の整数であれば、特に限定されるものではない。
【符号の説明】
【０１０８】
１：画像読取装置、２：給紙トレイ、４Ａ、４Ｂ：排紙トレイ、１３：Ｆセンサ、１４：Ｒセンサ、１５：搬送部、２０：ＣＰＵ、２２：搬送経路、３０：ＣＩＳ、３１：読取素子、３１Ｋ：基準読取素子、３１Ｌ：左側読取素子、３１Ｒ：右側読取素子、Ｄ１：主走査方向、Ｄ２：搬送方向、Ｄ３：副走査方向、ＳＧ１：先端読取画像、ＳＧ２：先端エッジ画像、ＳＧＫ：基準先端エッジ画像、ＳＧＬ：左側先端エッジ画像、ＳＧＲ：右側先端エッジ画像
【図１】
2014030109.tif 000003
【図２】
2014030109.tif 000004
【図３】
2014030109.tif 000005
【図４】
2014030109.tif 000006
【図５】
2014030109.tif 000007
【図６】
2014030109.tif 000008
【図７】
2014030109.tif 000009
【図８】
2014030109.tif 000010
【図９】
2014030109.tif 000011
【図１０】
2014030109.tif 000012
【図１１】
2014030109.tif 000013
【図１２】
2014030109.tif 000014