(57)【特許請求の範囲】
【請求項１】
ラインイメージセンサにより読み取られる画像データの中から読取対象の原稿の画像データを切り出す画像読取装置において、
ラインイメージセンサにより読み取られる画像データを格納するメモリ手段と、
ラインイメージセンサにより読み取られる画像データに従って、読取対象の原稿の傾き及びサイズと、上記メモリ手段に格納される該原稿の画像データの読出開始位置とを検出する検出手段と、
上記検出手段の検出結果に従って原稿の傾きを補正することを実現する画像データの読出順序を決定し、それに従って上記メモリ手段から原稿の画像データを読み出す読出手段と、
上記読出順序による読み出しにより水平ズレ及び／又は垂直ズレを引き起こす画素の画素データについて、そのズレの形態に応じた画像フィルタを選択して、それに従って、その画素の近傍に位置する画素の画素データを使ってスムージング処理を施すスムージング手段とを備えることを、
特徴とする画像読取装置。
【請求項２】
請求項１に記載の画像読取装置において、
上記スムージング手段は、水平ズレを引き起こす画素の画素データについては、上記選択した画像フィルタに従って、水平方向に隣接する画素の画素データを使ってスムージング処理を施し、垂直ズレを引き起こす画素の画素データについては、上記選択した画像フィルタに従って、垂直方向に隣接する画素の画素データを使ってスムージング処理を施し、水平ズレ及び垂直ズレを引き起こす画素の画素データについては、上記選択した画像フィルタに従って、水平方向に隣接する画素の画素データと垂直方向に隣接する画素の画素データとを使ってスムージング処理を施すことを、
特徴とする画像読取装置。
【請求項３】
請求項１又は２に記載の画像読取装置において、
上記検出手段及び上記読出手段は、上記メモリ手段が画像データを格納しているときにその処理を実行することを、
特徴とする画像読取装置。
【請求項４】
請求項１ないし３のいずれか１項に記載の画像読取装置において、
上記検出手段は、原稿の画像データの上記メモリ手段への格納終了を検出するときに、上記読出手段に対して、上記メモリ手段からの原稿の画像データの読み出し終了を指示することを、
特徴とする画像読取装置。
【請求項５】
請求項１ないし４のいずれか１項に記載の画像読取装置において、
ラインイメージセンサにより読み取られる画像データを２値化することでエッジ部分を検出し、各ライン毎に、最左端に位置するエッジ部分と最右端に位置するエッジ部分とを特定することで、原稿の４辺上に位置するエッジ部分を抽出する抽出手段を備え、
上記検出手段は、上記抽出手段の抽出するエッジ部分を使って原稿の４辺の座標位置を示す直線式を特定し、それらの直線式の交点を求めることで原稿の頂点を検出して、それに従って、読取対象の原稿の傾き及びサイズと、上記メモリ手段に格納される該原稿の画像データの読出開始位置とを検出することを、
特徴とする画像読取装置。
【請求項６】
請求項５に記載の画像読取装置において、
上記検出手段は、原稿の左右２つの辺の座標位置を示す直線式を特定し、その直線式の持つ傾きに直交する傾きを算出して、それを使って、原稿の上下２つの辺の座標位置を示す直線式を特定することを、
特徴とする画像読取装置。
【請求項７】
請求項１ないし６のいずれか１項に記載の画像読取装置において、
上記読出順序により縮小された形で読み出される原稿の画像データを本来の大きさに拡大する拡大手段を備えることを、
特徴とする画像読取装置。
【請求項８】
請求項１ないし７のいずれか１項に記載の画像読取装置において、
上記読出手段は、上記読出開始アドレスを起点として、水平方向に上記傾きの指定する画素数分読み出してから、上記傾きに応じて１つ前あるいは１つ後のラインに移ってその読み出しを続けていくことを上記幅の長さ分繰り返すことで原稿の１ライン分を読み出し、その１ライン分の読み出しを垂直方向に上記傾きの指定するライン数分繰り返していくとともに、その次のラインについては、上記傾きに応じて起点となる開始アドレスを１画素分左あるいは右にずらしていくことを繰り返していくという読出順序を決定することを、
特徴とする画像読取装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、搬送されてくる原稿や載置される原稿を読み取る画像読取装置に関し、特に、高精度かつ高速度の原稿読み取りを実現する画像読取装置に関するものである。
【０００２】
【従来の技術】
搬送されてくる原稿や載置される原稿を読み取る画像読取装置では、高速の原稿読み取りが要求されることを考慮し、複雑な画像処理を施すことなく原稿を読み取れるようにするために、原稿の姿勢をある決まったものに規制するという方法を用いている。
【０００３】
すなわち、複数枚の読取原稿を自動給紙機構にセットして連続的に読み取るような場合には、従来技術では、ユーザに対して、自動給紙機構の用紙ガイドを読取原稿のサイズに合った位置にセットさせることで、原稿の姿勢をある決まったものに規制して読み取るという方法を用いている。
【０００４】
また、読取原稿を原稿台に載置させて読み取るような場合には、従来技術では、ユーザに対して、読取原稿を原稿台の上に規定の姿勢で載置させることで、原稿の姿勢をある決まったものに規制して読み取るという方法を用いている。
【０００５】
【発明が解決しようとする課題】
しかしながら、このような従来技術に従っていると、原稿の姿勢が規定のものにならない場合には、原稿を正確に読み取れないという問題点がある。
【０００６】
すなわち、原稿が傾いてセットされてしまうと、画像読取装置に対して、傾いた形の原稿の画像データが入力されてしまうことで、原稿を正確に読み取れないのである。
【０００７】
確かに、最近の画像処理技術の進歩により、パーソナルコンピュータ上などで、傾いた画像データを処理対象として、画像データに対して回転処理などの編集処理を施すことが広く行われている。
【０００８】
しかしながら、このような画像処理技術により実現される回転処理は、その処理時間がかかり、これがために、リアルタイムの原稿読み取りが要求されるような画像読取装置には適用できない。
【０００９】
このようなことから、従来技術に従っていると、自動給紙機構を備える画像読取装置を使って、例えば、Ａ４サイズの読取原稿とＢ５サイズの読取原稿とを混在させて連続的に読み取らせるようにすると、小さい方のＢ５サイズの読取原稿の姿勢が自動給紙機構による規制を受けないことで傾くことが避けられず、これがために、Ｂ５サイズの読取原稿を正確に読み取ることができないという問題点や、Ｂ５サイズの読取原稿が空白を持つＡ４サイズの画像になってしまうという問題点があることで、高精度の画像読み取りを実現できないという問題点がある。
【００１０】
本発明はかかる事情に鑑みてなされたものであって、搬送されてくる原稿や載置される原稿を読み取るときに、高精度かつ高速度の原稿読み取りを実現する新たな画像読取装置の提供を目的とする。
【００１１】
【課題を解決するための手段】
この目的を達成するために、本発明の画像読取装置では、ラインイメージセンサにより読み取られる画像データの中から読取対象の原稿の画像データを切り出す画像読取装置において、ラインイメージセンサにより読み取られる画像データを格納するメモリ手段と、ラインイメージセンサにより読み取られる画像データを２値化することでエッジ部分を検出し、各ライン毎に、最左端に位置するエッジ部分と最右端に位置するエッジ部分とを特定することで、原稿の４辺上に位置するエッジ部分を抽出する抽出手段と、抽出手段の抽出するエッジ部分を使って、読取対象の原稿の傾き及びサイズと、メモリ手段に格納される原稿の画像データの読出開始位置とを検出する検出手段と、検出手段の検出結果に従って原稿の傾きを補正することを実現する画像データの読出順序を決定し、それに従ってメモリ手段から原稿の画像データを読み出す読出手段と、読出手段の決定した読出順序による読み出しにより水平ズレ及び／又は垂直ズレを引き起こす画素の画素データについて、そのズレの形態に応じた画像フィルタを選択して、それに従って、その画素の近傍に位置する画素の画素データを使ってスムージング処理を施すスムージング手段と、読出手段の決定する読出順序により縮小された形で読み出される原稿の画像データを本来の大きさに拡大する拡大手段とを備えるように構成する。
【００１２】
このように構成される本発明の画像読取装置では、ラインイメージセンサにより読み取られる画像データを多値データのままメモリ手段に格納していくとともに、抽出手段にも入力していくことになる。
【００１３】
この入力を受けて、抽出手段は、ラインイメージセンサにより読み取られる画像データを２値化することでエッジ部分を検出し、各ライン毎に、最左端に位置するエッジ部分と最右端に位置するエッジ部分とを特定することで、原稿の４辺上に位置するエッジ部分を抽出する。
【００１４】
この抽出結果を受けて、検出手段は、この抽出されたエッジ部分を使って原稿の４辺の座標位置を示す直線式を特定し、それらの直線式の交点を求めることで原稿の頂点を検出して、それに従って、読取対象の原稿の傾き及びサイズと、メモリ手段に格納される原稿の画像データの読出開始位置とを検出する。
【００１５】
読出手段は、この検出結果を受けて、原稿の傾きを補正することを実現する画像データの読出順序を決定し、それに従ってメモリ手段から原稿の画像データを読み出す。
【００１６】
そして、この原稿の画像データの読み出しを受けて、スムージング手段は、この読出順序による読み出しにより水平ズレ及び／又は垂直ズレを引き起こす画素の画素データについて、そのズレの形態に応じた画像フィルタを選択して、それに従って、その画素の近傍に位置する画素の画素データを使ってスムージング処理を施す。
【００１７】
そして、拡大手段は、スムージング処理の施された原稿の画像データを処理対象として、この読出順序により縮小された形で読み出される原稿の画像データを本来の大きさに拡大する。
【００１８】
このようにして、本発明の画像読取装置では、ラインイメージセンサにより読み取られる画像データを多値データのままメモリ手段に格納するとともに、それと並行させて、読取対象の原稿の傾き及びサイズと、メモリ手段に格納される原稿の画像データの読出開始位置とを検出する構成を採って、その検出結果に従って原稿の傾きを補正することを実現する画像データの読出順序を決定し、それに従ってメモリ手段から原稿の画像データを読み出すことで、多値データのまま傾きを補正する形で原稿の画像データを切り出すように処理するのである。
【００１９】
これから、本発明の画像読取装置によれば、原稿の画像データを読み取りつつ、多値データのままの状態でもって、その原稿の画像データの傾きを補正していくことができるようになることから、高精度かつ高速度の原稿読み取りを実現できるようになる。
【００２７】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
【００２８】
図１に、本発明を具備する原稿読取装置１の一実施形態例を図示する。
【００２９】
この図に示すように、本発明の原稿読取装置１は、自動給紙機構により搬送されてくる原稿を読み取るラインイメージセンサ１０と、ラインイメージセンサ１０の読み取る画像データをＡ／Ｄ変換するＡ／Ｄ変換器１１と、Ａ／Ｄ変換器１１の出力する画像データを入力として、規定の画像処理を施すことで原稿を読み取るメモリ制御部１２と、Ａ／Ｄ変換器１１の出力する画像データを入力として、その画像データの持つエッジ個所を検出するエッジ検出部１３と、例えばファームウェアにより構成されて、エッジ検出部１３の検出するエッジ情報を入力として、原稿の傾きやサイズを検出する傾き／サイズ検出部１４と、例えばファームウェアにより構成されて、メモリ制御部１２に対してスキャナ読取処理の起動を指示するとともに、傾き／サイズ検出部１４の検出結果を受けて、メモリ制御部１２に対してデスキュー処理の起動を指示するスキャナ制御部１５とを備える。
【００３０】
このメモリ制御部１２は、ラインイメージセンサ１０により読み取られる原稿の画像データをその読み取りの順番に格納する第１の画像メモリ２０と、第１の画像メモリ２０に格納される原稿の画像データをその傾きを補正しつつ読み出す傾き補正読出部２１と、傾き補正読出部２１による読み出しにより発生する画像データの持つギザギザ部分をスムーズなものにするスムージング処理部２２と、スムージング処理部２２の処理した画像データを平滑化する平滑化処理部２３と、平滑化処理部２３の処理した画像データを水平方向に拡大する水平拡大処理部２４と、平滑化処理部２３の処理した画像データを垂直方向に拡大する垂直拡大処理部２５と、水平／垂直方向に拡大された画像データを２値化する２値化部２６と、原稿の枠部分に存在する陰やノイズを除去するマスキング部２７と、これらの処理の施された第１の画像メモリ２０から読み出された画像データを格納して、図示しない上位装置に引き渡す第２の画像メモリ２８とを備える。
【００３１】
このように、メモリ制御部１２は、原稿の画像データを２値化してから傾きを補正するのではなくて、２値化する前の多値データの状態で傾きを補正する構成を採って、その後で、スムージング処理を施すという構成を採っている。これから、スムージング処理が有効なものになる。
【００３２】
なお、平滑化処理部２３や水平拡大処理部２４や垂直拡大処理部２５や２値化部２６やマスキング部２７については、従来の画像処理技術で用いられたものを利用することができる。
【００３３】
先ず最初に、本発明の原稿読取装置１を構成する各構成部分の概要について説明する。
【００３４】
（１）エッジ検出部１３は、スキャナ制御部１５の発行するスキャナ読取処理の起動に応答して起動されると、図２に示すように、各ライン毎に、ラインイメージセンサ１０の読み取る画像データをスキャン開始の左端から順番に確認することで、ノイズや陰に影響されることなく、「白から黒」あるいは「黒から白」に急峻に変化する画素位置を検出して、最初に検出する画素位置を「左エッジ」、最後に検出する画素位置を「右エッジ」として、それを傾き／サイズ検出部１４に報告する処理を行う。
【００３５】
（２）傾き／サイズ検出部１４は、エッジ検出部１３から各ライン毎に報告される「左エッジ座標」／「右エッジ座標」を受け取ると、図３に示すように、原稿の上端側の２つの頂点の座標を検出するとともに、原稿の最下端となる頂点の座標を検出する処理を行う。
【００３６】
そして、傾き／サイズ検出部１４は、この上端側の２つの頂点の座標が検出できた段階で、図中に示す原稿の「幅」と「水平傾き（θ) 」とを算出し、更に、“１／cos θ”に従って水平倍率補正値を算出するとともに、原稿の搬送速度が規定の標準である場合には、その水平倍率補正値と同じ値を垂直倍率補正値として算出し、原稿の搬送速度が規定の標準のものでない場合には、“１／cos θ”と搬送速度の比率値とに従って垂直倍率補正値を算出して、それらの「幅」／「傾き（tan θで表現する）」／「倍率補正値」と、原稿の上左端の頂点に対応付けられる画素データの格納先アドレス（第１の画像メモリ２０の格納アドレス）として定義される「切出開始アドレス」とをスキャナ制御部１５に報告する処理を行う。
【００３７】
そして、傾き／サイズ検出部１４は、検出した原稿の最下端の頂点までの読み取りが終えたことを検出（図中に示す原稿の「長さ」を算出できる状態）すると、原稿の読み取りが終了した旨をスキャナ制御部１５に報告する処理を行う。
【００３８】
（３）スキャナ制御部１５は、メモリ制御部１２に対してスキャナ読取処理の実行を指示することで、図４に示すように、ラインイメージセンサ１０により読み取られる原稿の画像データ（多値データ）を、メモリ制御部１２の持つ第１の画像メモリ２０にその読み取りの順番に書き込む処理を行う。
【００３９】
そして、スキャナ制御部１５は、傾き／サイズ検出部１４から、上述した「切出開始アドレス」／「幅」／「傾き」／「倍率補正値」の報告を受け取ると、「画像処理モード」／「マスキング範囲」を設定して、それらの受け取った値とその設定した値とを通知しつつ、メモリ制御部１２に対してデスキュー処理の実行を指示する処理を行う。
【００４０】
なお、スキャナ制御部１５は、傾き／サイズ検出部１４が傾き／サイズの検出に失敗した場合には、メモリ制御部１２に対して傾き“０”のデスキュー処理の実行を指示することになる。
【００４１】
そして、スキャナ制御部１５は、傾き／サイズ検出部１４から、原稿の読み取りが終了した旨の通知を受け取ると、それに応動して、メモリ制御部１２に対してデスキュー処理の終了を指示する処理を行う。
【００４２】
（４）メモリ制御部１２は、スキャナ制御部１５からスキャナ読取処理の起動がかかると、図４に示したように、ラインイメージセンサ１０により読み取られる原稿の画像データを、メモリ制御部１２の持つ第１の画像メモリ２０にその読み取りの順番に書き込む処理を行う。
【００４３】
そして、メモリ制御部１２は、スキャナ制御部１５からデスキュー処理の起動がかかると、スキャナ制御部１５から通知される「切出開始アドレス」／「幅」／「傾き」／「倍率補正値」に従って、図５に示すように、第１の画像メモリ２０に格納される原稿の画像データをその傾きを補正しつつ読み出すとともに、その読み出しにより発生する画像データの持つギザギザ部分をスムーズなものにするスムージング処理を施し、更に、平滑化処理部２３や水平拡大処理部２４や垂直拡大処理部２５や２値化部２６やマスキング部２７を使って、スキャナ制御部１５から通知される「画像処理モード」／「マスキング範囲」に応じた画像処理を施す処理に入って、原稿の読み取りの終了に連動してスキャナ制御部１５からデスキュー処理の終了が指示されると、その処理を終了する処理を行う。
【００４４】
なお、メモリ制御部１２は、スキャナ制御部１５から傾き“０”のデスキュー処理の実行を指示されるときには、第１の画像メモリ２０に格納される原稿の画像データをそのまま読み出すことで、傾きの補正やスムージング処理は行わないように処理することになる。
【００４５】
次に、本発明の原稿読取装置１を構成する各構成部分の詳細な構成について説明する。
【００４６】
先ず最初に、エッジ検出部１３の詳細な構成について説明する。
【００４７】
エッジ検出部１３は、図６に示すように、ドットカウンタ１３０と、左端エッジ座標検出部１３１と、右端エッジ座標検出部１３２と、エッジ座標報告部１３３と、エッジフィルタ部１３４とで構成されている。
【００４８】
このドットカウンタ１３０は、▲１▼水平同期信号（図２に図示）がＯＮならば、カウンタ値を“０”にリセットし、▲２▼水平有効信号（図２に図示）がＯＮならば、画像クロックをカウントアップし、▲３▼水平有効信号がＯＦＦならば、カウンタ値を保持するように動作することで、左端から順次入力されてくる画像データのドット数をカウントする。
【００４９】
左端エッジ座標検出部１３１は、▲１▼水平同期信号がＯＮならば、最初エッジのレジスタに“００００”をセットし、▲２▼水平有効信号がＯＮで、かつ、最初エッジのレジスタに“００００”がセットされ、かつ、エッジフィルタ部１３４がエッジを検出するならば、最初エッジのレジスタにドットカウンタ１３０のカウンタ値をセットし、▲３▼水平有効信号がＯＦＦか、最初エッジのレジスタに“００００”でない値がセットされているか、エッジフィルタ部１３４がエッジを検出しないならば、最初エッジのレジスタの値を保持することで、各ライン毎に、最初のエッジ部分として検出された画素のドットカウンタ値を保持する。
【００５０】
右端エッジ座標検出部１３２は、▲１▼水平同期信号がＯＮならば、最終エッジのレジスタに“ＦＦＦＦ”をセットし、▲２▼水平有効信号がＯＮで、かつ、エッジフィルタ部１３４がエッジを検出するならば、最終エッジのレジスタにドットカウンタ１３０のカウンタ値をセットし、▲３▼水平有効信号がＯＦＦか、エッジフィルタ部１３４がエッジを検出しないならば、最終エッジのレジスタの値を保持することで、各ライン毎に、最終のエッジ部分として検出された画素のドットカウンタ値を保持する。
【００５１】
エッジ座標報告部１３３は、▲１▼水平同期信号がＯＮならば、上述した最初エッジのレジスタが保持するドットカウンタ値を左端エッジ座標を保持するレジスタにセットするとともに、上述した最終エッジのレジスタが保持するドットカウンタ値を右端エッジ座標を保持するレジスタにセットし、▲２▼水平同期信号がＯＦＦならば、左端エッジ座標を保持するレジスタの値を保持するとともに、右端エッジ座標を保持するレジスタの値を保持することで、左端エッジの座標と右端エッジの座標とを傾き／サイズ検出部１４に報告する。
【００５２】
エッジフィルタ部１３４は、注目画素を中心とする中ブロックと、その中ブロックの右側に位置する右ブロックと、その中ブロックの左側に位置する左ブロックとを使い、「原稿の押え板が黒」の場合には、ノイズや陰を除去しつつ、原稿と原稿押え板との境界目や原稿が持つエッジ部分を検出するために、▲１▼図７（ａ）に示すように、左ブロックに属する全ての画素の画素データがＬowスライスよりも小さく、かつ、右ブロックに属する全ての画素の画素データがＨigh スライスよりも大きい場合に注目画素位置をエッジであると検出するとともに、▲２▼そのパターンが逆となる、左ブロックに属する全ての画素の画素データがＨigh スライスよりも大きく、かつ、右ブロックに属する全ての画素の画素データがＬowスライスよりも小さい場合に注目画素位置をエッジであると検出する。ここで、「Ｌowスライス＜Ｈigh スライス」に設定される。
【００５３】
そして、「原稿の押え板が白」の場合には、ノイズや陰を除去しつつ、原稿端部の持つ影や原稿が持つエッジ部分を検出するために、▲１▼図７（ｂ）に示すように、左ブロックと右ブロックとに属する全ての画素の画素データがＨigh スライスよりも大きく、かつ、中ブロックに属する全ての画素の画素データのＬowスライスよりも小さい場合に注目画素位置をエッジであると検出するとともに、▲２▼そのパターンが逆となる、左ブロックと右ブロックに属する全ての画素の画素データがＬowスライスよりも小さく、かつ、中ブロックに属する全ての画素の画素データのＨigh スライスよりも大きい場合に注目画素位置をエッジであると検出する。ここで、「Ｌowスライス＞Ｈigh スライス」に設定される。
【００５４】
図８に、エッジフィルタ部１３４の一例を図示する。
【００５５】
この図に示すように、エッジフィルタ部１３４は、Ａ／Ｄ変換器１１から入力される画素データ（８ビットの多値データ）を上述のＬowスライス／Ｈigh スライスと比較するコンパレータ２００と、コンパレータ２００の出力するＨigh スライス比較出力をシフトさせつつ保持するシフトレジスタ２０１と、コンパレータ２００の出力するＬowスライス比較出力をシフトさせつつ保持するシフトレジスタ２０２と、シフトレジスタ２０１が保持する左ブロックに属する画素の比較出力値の論理積を演算するＡＮＤ回路２０３と、シフトレジスタ２０２が保持する左ブロックに属する画素の比較出力値の論理積を演算するＡＮＤ回路２０４と、シフトレジスタ２０１が保持する中ブロックに属する画素の比較出力値の論理積を演算するＡＮＤ回路２０５と、シフトレジスタ２０２が保持する中ブロックに属する画素の比較出力値の論理積を演算するＡＮＤ回路２０６と、シフトレジスタ２０１が保持する右ブロックに属する画素の比較出力値の論理積を演算するＡＮＤ回路２０７と、シフトレジスタ２０２が保持する右ブロックに属する画素の比較出力値の論理積を演算するＡＮＤ回路２０８と、ＡＮＤ回路２０３〜２０８の演算結果を入力として、注目画素位置をエッジであるのか否かを判定するエッジ判定回路２０９とを備える。
【００５６】
この構成に従って入力されるデータを受けて、エッジ判定回路２０９は、外部から指示されるフィルタタイプに従って「原稿の押え板が黒」であることを判断する場合には、図９に示すフィルタタイプ１の論理演算を実行することで、注目画素位置がエッジ部分であるのか否かを判断し、そして、外部から指示されるフィルタタイプに従って「原稿の押え板が白」であることを判断する場合には、図９に示すフィルタタイプ２の論理演算を実行することで、注目画素位置がエッジ部分であるのか否かを判断する。
【００５７】
なお、図８では図示していないが、Ｌowスライス／Ｈigh スライスを発生する回路が用意されていて、このスライス発生回路は、外部から指示されるフィルタタイプに応じて、適切なＬowスライス／Ｈigh スライスを発生してコンパレータ２００に与えるように動作する。
【００５８】
このエッジフィルタ部１３４は、スキャナ装置が固有の特性を持つことに対処するために、中ブロックのサイズを１画素／３画素／５画素／９画素の中から選択できるようにするとともに、左ブロックと右ブロックのサイズを２画素／４画素／８画素／１６画素の中から選択できるようにしている。
【００５９】
この選択の構成は、例えば、図１０に示すように、１画素を中ブロックのサイズとして、セレクタによりＡＮＤ回路を選択することで、左右ブロックのサイズを２画素／４画素／８画素／１６画素の中から選択できるようにするエッジフィルタ回路と、３画素を中ブロックのサイズとして、セレクタによりＡＮＤ回路を選択することで、左右ブロックのサイズを２画素／４画素／８画素／１６画素の中から選択できるようにするエッジフィルタ回路と、５画素を中ブロックのサイズとして、セレクタによりＡＮＤ回路を選択することで、左右ブロックのサイズを２画素／４画素／８画素／１６画素の中から選択できるようにするエッジフィルタ回路と、９画素を中ブロックのサイズとして、セレクタによりＡＮＤ回路を選択することで、左右ブロックのサイズを２画素／４画素／８画素／１６画素の中から選択できるようにするエッジフィルタ回路と、これらの４つのエッジフィルタ回路の出力値の中から指定されるものを選択してエッジ判定回路２０９に入力するセレクタとで実現されることになる。
【００６０】
この構成に従って、エッジ検出部１３は、スキャナ制御部１５の発行するスキャナ読取処理の起動に応答して起動されると、図２に示すように、各ライン毎に、ラインイメージセンサ１０の読み取る画像データをスキャン開始の左端から順番に確認することで、ノイズや陰に影響されることなく、「白から黒」あるいは「黒から白」に急峻に変化する画素位置を検出して、最初に検出する画素位置を「左エッジ」、最後に検出する画素位置を「右エッジ」として、それを傾き／サイズ検出部１４に報告する処理を行うのである。
【００６１】
次に、傾き／サイズ検出部１４の実行する詳細な処理について説明する。
【００６２】
傾き／サイズ検出部１４は、図１１（ａ）に示すような傾いた姿勢で搬送されてくる原稿の傾きとサイズとを検出する処理を行う。このとき、図１１（ｂ）に示すように、原稿の四隅が折り曲げられていたり、原稿の四隅にマーク等が記載されていても、原稿の傾きとサイズとを正確に検出する機能を有している。
【００６３】
傾き／サイズ検出部１４は、具体的には、図１２に示すように、原稿の左辺の座標位置を示す式「Ｙ＝Ａ＊Ｘ＋Ｂ」と、原稿の右辺の座標位置を示す式「Ｙ＝Ａ＊Ｘ＋Ｃ」と、原稿の上辺の座標位置を示す式「Ｙ＝−（１／Ａ）＊Ｘ＋Ｄ」と、原稿の下辺の座標位置を示す式「Ｙ＝−（１／Ａ）＊Ｘ＋Ｅ」とを求めて、これらの４つの式に従って、原稿の上端側の２つの頂点の座標と、原稿の最下端となる頂点の座標とを算出することで、この検出機能を実現している。
【００６４】
図１３ないし図１５に、傾き／サイズ検出部１４の実行する処理フローの一実施形態例を図示する。次に、この処理フローに従って、この検出機能を実現する傾き／サイズ検出部１４の実行する処理について詳細に説明する。
【００６５】
傾き／サイズ検出部１４は、原稿読取処理に入ることで起動されると、図１３ないし図１５の処理フローに示すように、先ず最初に、ステップ１で、エッジ検出部１３からエッジのＸ座標値となる「左端エッジ座標」／「右端エッジ座標」の報告を待って、その報告を受け取ると、ステップ２に進んで、その報告される「左端エッジ座標」／「右端エッジ座標」を受け取る。
【００６６】
続いて、ステップ３で、読取ライン数を加算することで、その受け取った「左端エッジ座標」／「右端エッジ座標」のＹ座標値を算出し、続くステップ４で、その受け取った「左端エッジ座標」／「右端エッジ座標」を、読取ライン数と対応を取りつつ保存する。
【００６７】
続いて、ステップ５で、原稿の上端の２つの頂点を検出してあるのか否かを判断して、検出していないことを判断するときには、ステップ６に進んで、受け取った「右端エッジ座標」と「左端エッジ座標」との差分値を算出することで原稿幅を算出する。
【００６８】
続いて、ステップ７で、その算出した原稿幅が前回のものよりも広くなったのか否かを判断して、広くなったことを判断するときには、そのままステップ１に戻り、広くなっていないことを判断するときには、ステップ８に進んで、その状態が規定のライン数連続したのか否かを判断して、規定のライン数連続していない場合には、そのままステップ１に戻る。
【００６９】
一方、ステップ８で、原稿幅が広くならないことが規定のライン数連続したことを判断するとき、すなわち、図１２中に示す原稿幅Ｗの位置に到達したことを判断するときには、ステップ９に進んで、その連続ライン数の起点となった左端エッジ座標（Ｘ1,Ｙ1)と、その連続ライン数の到達点となった左端エッジ座標（Ｘ2,Ｙ2)とから、原稿の左辺の座標位置を示す式
Ｙ＝Ａ＊Ｘ＋Ｂ
を算出するとともに、その連続ライン数の起点となった右端エッジ座標（Ｘ3,Ｙ3)と、その連続ライン数の到達点となった右端エッジ座標（Ｘ4,Ｙ4)とから、原稿の右辺の座標位置を示す式
Ｙ＝Ａ＊Ｘ＋Ｃ
を算出する。
【００７０】
続いて、ステップ１０で、原稿の上辺と左辺及び右辺とが直交しているとともに、原稿の下辺と左辺及び右辺とが直交していることに対応して、原稿の上辺及び下辺の傾きを「−（１／Ａ）」に従って算出する。
【００７１】
続いて、ステップ１１で、保存してあるエッジ座標の中から原稿の上辺に位置するエッジ座標を抽出する。この原稿の上辺に位置するエッジ座標を抽出処理は、例えば、保存してあるエッジ座標（左端エッジ座標／右端エッジ座標）の中から、ステップ８でその到達を判断した原稿幅Ｗよりも小さな原稿幅を持つエッジ座標を抽出して、それらの中から、原稿の左辺の座標位置を示す式「Ｙ＝Ａ＊Ｘ＋Ｂ」や、原稿の右辺の座標位置を示す式「Ｙ＝Ａ＊Ｘ＋Ｃ」に乗らないものを特定することで行う。
【００７２】
続いて、ステップ１２で、この抽出したエッジ座標（例えば、図１２に示す（Ｘ5,Ｙ5)）を、原稿の上辺の座標位置を示す式
Ｙ＝−（１／Ａ）＊Ｘ＋Ｄ
に代入することで、この抽出した各エッジ座標毎にＤの値を算出して、他のものから外れている値を除外しつつその算出されたＤの値の平均値を算出することで、原稿の上辺の座標位置を示す式
Ｙ＝−（１／Ａ）＊Ｘ＋Ｄ
を算出する。
【００７３】
続いて、ステップ１３で、ステップ９で算出した原稿の左辺の座標位置を示す式「Ｙ＝Ａ＊Ｘ＋Ｂ」と、この算出した原稿の上辺の座標位置を示す式「Ｙ＝−（１／Ａ）＊Ｘ＋Ｄ」との交点位置を算出することで、原稿の左上頂点の座標を求めるとともに、ステップ９で算出した原稿の右辺の座標位置を示す式「Ｙ＝Ａ＊Ｘ＋Ｃ」と、この算出した原稿の上辺の座標位置を示す式「Ｙ＝−（１／Ａ）＊Ｘ＋Ｄ」との交点位置を算出することで、原稿の右上頂点の座標を求める。
【００７４】
続いて、ステップ１４で、その算出した原稿の左上頂点の座標と右上頂点の座標とから、原稿が右上がりに傾いているのか左上がりに傾いているのかを検出する。すなわち、左上頂点の座標の方が右上頂点の座標よりも読取開始側に近い位置にあるときには、原稿は左上がりの形態で傾いていると判断し、右上頂点の座標の方が左上頂点の座標よりも読取開始側に近い位置にあるときには、原稿は右上がりの形態で傾いていると判断するのである。
【００７５】
続いて、ステップ１５で、図３に示したもので定義される「切出開始アドレス（原稿の上左端のエッジ座標に対応付けられる画素データの第１の画像メモリ２０上の格納アドレス）」と、「幅」と、「傾き（tan θ）」と、「倍率補正値（１／cos θ) 」とを算出して、それをスキャナ制御部１５に通知してから、ステップ１に戻る。
【００７６】
一方、ステップ５で、原稿の上端の２つの頂点を検出してあることを判断するときには、ステップ１６に進んで、原稿の最下端の頂点を検出してあるのか否かを判断して、最下端の頂点を検出していないことを判断するときには、ステップ１７に進んで、受け取った「右端エッジ座標」と「左端エッジ座標」との差分値を算出することで原稿幅を算出する。
【００７７】
続いて、ステップ１８で、その算出した原稿幅が概略０となったのか否かを判断して、原稿幅が概略０になっていないことを判断するときには、ステップ１に戻り、原稿幅が概略０となったことを判断するときには、ステップ１８に進んで、保存してあるエッジ座標の中から原稿の下辺に位置するエッジ座標を抽出する。
【００７８】
この原稿の下辺に位置するエッジ座標を抽出処理は、例えば、保存してあるエッジ座標（左端エッジ座標／右端エッジ座標）の中から上述の原稿幅Ｗの検出以降にその原稿幅Ｗのよりも小さな原稿幅を持つことになったエッジ座標を抽出して、それらの中から、原稿の左辺の座標位置を示す式「Ｙ＝Ａ＊Ｘ＋Ｂ」や、原稿の右辺の座標位置を示す式「Ｙ＝Ａ＊Ｘ＋Ｃ」に乗らないものを特定することで行う。
【００７９】
続いて、ステップ１９で、この抽出したエッジ座標（例えば、図１２に示す（Ｘ6,Ｙ6)）を、原稿の下辺の座標位置を示す式
Ｙ＝−（１／Ａ）＊Ｘ＋Ｅ
に代入することで、この抽出した各エッジ座標毎にＥの値を算出して、他のものから外れている値を除外しつつその算出されたＥの値の平均値を算出することで、原稿の下辺の座標位置を示す式
Ｙ＝−（１／Ａ）＊Ｘ＋Ｅ
を算出する。
【００８０】
続いて、ステップ２０で、ステップ１４で検出される原稿の姿勢に応じて、原稿の左辺の座標位置を示す式「Ｙ＝Ａ＊Ｘ＋Ｂ」か、原稿の右辺の座標位置を示す式「Ｙ＝Ａ＊Ｘ＋Ｃ」のいずれか一方の式を選択して、その選択した式と、この検出した原稿の下辺の座標位置を示す式「Ｙ＝−（１／Ａ）＊Ｘ＋Ｅ」との交点位置を算出することで、原稿の最下端の頂点を求める。
【００８１】
すなわち、ステップ１４で、原稿が図１２に示すように左上がりに傾いていることを検出する場合には、原稿の右辺の座標位置を示す式「Ｙ＝Ａ＊Ｘ＋Ｃ」と、この算出した原稿の下辺の座標位置を示す式「Ｙ＝−（１／Ａ）＊Ｘ＋Ｅ」との交点位置を算出することで、原稿の最下端の頂点を求め、一方、原稿が右上がりに傾いていることを検出する場合には、原稿の左辺の座標位置を示す式「Ｙ＝Ａ＊Ｘ＋Ｂ」と、この算出した原稿の下辺の座標位置を示す式「Ｙ＝−（１／Ａ）＊Ｘ＋Ｅ」との交点位置を算出することで、原稿の最下端の頂点を求めるのである。
【００８２】
続いて、ステップ２１で、読取ラインが原稿の最下端の頂点の位置と一致したのか否かを判断して、一致しないことを判断するときには、ステップ１に戻り、一致したことを判断するときには、ステップ２２に進んで、原稿の読み取りの終了をスキャナ制御部１５に通知して、処理を終了する。
【００８３】
そして、ステップ１６で、原稿の最下端の頂点を検出してあることを判断するときには、ステップ１７〜ステップ２０の処理を省略して、直ちにステップ２１に進んで、読取ラインが原稿の最下端の頂点の位置と一致したのか否かを判断して、一致しないことを判断するときには、ステップ１に戻り、一致したことを判断するときには、ステップ２２に進んで、原稿の読み取りの終了をスキャナ制御部１５に通知して、処理を終了する。
【００８４】
なお、この原稿の読み取りの終了の際に、図３に示す原稿の「長さ」をスキャナ制御部１５に通知するようにしている。これは、第２の画像メモリ２８から原稿の画像データを受け取る図示しない上位装置に対して、原稿の画像データを格納するのにどれ位のメモリ容量（＝〔長さ／cos θ〕＊〔幅／cos θ〕）を用意する必要があるのかを知らせるようにするためである。
【００８５】
このようにして、傾き／サイズ検出部１４は、エッジ検出部１３から各ライン毎に報告される「左エッジ座標」／「右エッジ座標」を受け取ると、図３に示すように、原稿の上端側の２つの頂点の座標を検出するとともに、原稿の最下端となる頂点の座標を検出する処理を行う。
【００８６】
そして、傾き／サイズ検出部１４は、この上端側の２つの頂点の座標が検出できた段階で、原稿の「幅」と、原稿の「傾き（tan θ：好ましくは分子が１、分母が自然数となる値に近似する）」と、原稿の「倍率補正値（１／cos θ：但し、原稿の搬送速度が標準のものでない場合には、水平倍率補正値と垂直倍率補正値とを別々に算出する）」と算出するとともに、「切出開始アドレス（原稿の上左端のエッジ座標に対応付けられる画素データの第１の画像メモリ２０上の格納アドレス）」を特定して、これらのデータをスキャナ制御部１５に報告する処理を行う。
【００８７】
そして、傾き／サイズ検出部１４は、検出した原稿の最下端の頂点までの読み取りが終えたことを検出すると、原稿の読み取りが終了した旨をスキャナ制御部１５に報告する処理を行う。
【００８８】
スキャナ制御部１５は、上述したように、メモリ制御部１２に対してスキャナ読取処理の実行を指示することで、図４に示すように、ラインイメージセンサ１０により読み取られる原稿の画像データ（多値データ）を、メモリ制御部１２の持つ第１の画像メモリ２０にその読み取りの順番に書き込む処理を行う。
【００８９】
そして、スキャナ制御部１５は、上述した処理に従って傾き／サイズ検出部１４から、「切出開始アドレス」／「幅」／「傾き」／「倍率補正値」の報告を受け取ると、「画像処理モード」／「マスキング範囲」を設定して、それらの受け取った値とその設定した値とを通知しつつ、メモリ制御部１２に対してデスキュー処理の実行を指示する処理を行う。
【００９０】
そして、スキャナ制御部１５は、傾き／サイズ検出部１４から、原稿の読み取りが終了した旨の通知を受け取ると、メモリ制御部１２に対してデスキュー処理の終了を指示する処理を行う。
【００９１】
次に、メモリ制御部１２の実行する処理の詳細について説明する。
【００９２】
メモリ制御部１２は、スキャナ制御部１５からスキャナ読取処理の起動がかかると、図４に示したように、ラインイメージセンサ１０により読み取られる原稿の画像データを、メモリ制御部１２の持つ第１の画像メモリ２０にその読み取りの順番に書き込む処理を行う。
【００９３】
なお、これから説明するように、メモリ制御部１２は、第１の画像メモリ２０に書き込んだ画像データを順次読み出して並列的に処理していくことになるので、ラインイメージセンサ１０により読み取られる原稿の画像データを上書きする形で第１の画像メモリ２０に書き込むことが可能となる。これから、第１の画像メモリ２０は、原稿１枚分の画像データを格納できるようにする容量を持つ必要はない。
【００９４】
この書き込みに応答して、傾き／サイズ検出部１４は上述した処理に入り、これを受けて、スキャナ制御部１５は、ある時点で、メモリ制御部１２に対して、「切出開始アドレス」／「幅」／「傾き（tan θ）」／「倍率補正値」／「画像処理モード」／「マスキング範囲」を通知しつつ、デスキュー処理の実行を指示する。
【００９５】
このデスキュー処理の実行指示を受け取ると、メモリ制御部１２を構成する傾き補正読出部２１は、通知された「切出開始アドレス」を起点にして、通知された「傾き（tan θ）」と通知された「幅」とに応じた形で格納アドレスを順次設定しながら、第１の画像メモリ２０に格納される原稿の画像データをその傾きを補正しつつ読み出す処理を行う。
【００９６】
例えば、水平方向に５画素進んで垂直方向に１画素ずれるという右上がりの「tan θ＝１／５」という傾きが通知される場合には、図１６に示すように、「切出開始アドレス」を起点にして、水平方向に４画素読み出したら、１つ前の読取ラインの読み出しに入って水平方向に４画素読み出していくということを、通知された「幅」の長さ分繰り返すことで原稿の第１番目のラインをその傾きを補正しつつ読み出し、それに続いて、第２番目のラインと第３番目のラインと第４番目のラインについても、「切出開始アドレス」と同じ水平位置を起点として同様の形で読み出し、第５番目のラインに入ると、「切出開始アドレス」から右に１画素ずれた位置を起点として同様な形で読み出していくということを原稿の最終ラインまで繰り返していくことで、原稿の画像データをその傾きを補正しつつ読み出す処理を行うのである。
【００９７】
一方、左上がりの「tan θ＝１／５」という傾きが通知される場合には、「切出開始アドレス」を起点にして、水平方向に４画素読み出したら、１つ後の読取ラインの読み出しに入って水平方向に４画素読み出していくということを、通知された「幅」の長さ分繰り返すことで原稿の第１番目のラインをその傾きを補正しつつ読み出し、それに続いて、第２番目のラインと第３番目のラインと第４番目のラインについても、「切出開始アドレス」と同じ水平位置を起点として同様の形で読み出し、第５番目のラインに入ると、「切出開始アドレス」から左に１画素ずれた位置を起点として同様な形で読み出していくということを原稿の最終ラインまで繰り返していくことで、原稿の画像データをその傾きを補正しつつ読み出す処理を行うのである。
【００９８】
第１の画像メモリ２０に格納される画素データの格納アドレスは、図１７に示すような規則性を持ち、これから、傾き補正読出部２１は、「切出開始アドレス」／「傾き（tan θ）」／「幅」の通知を受け取ると、どのように格納アドレスを変更していけば傾きを補正した形で原稿の画像データを読み出すことができるのかということを知ることができるので、それに応じた形で格納アドレスを順次設定しながら、第１の画像メモリ２０に格納される原稿の画像データをその傾きを補正しつつ読み出す処理を行うことになる。
【００９９】
図１８ないし図２０に、傾き補正読出部２１が実行するこの画像データの読み出し処理を処理フローの形で記述したものを図示する。
【０１００】
ここで、この処理フローでは、「水平傾き（１／（ｐ＋１))」と「垂直傾き（１／（ｑ＋１))」とが別々の値で与えられることを想定している。ステップ２で行う右上がりか否かの判断処理は、「水平傾き（１／（ｐ＋１))」に付加される符号で行う。また、ステップ３〜ステップ１４は原稿が右上がりに傾いているときに実行する処理、ステップ１５〜ステップ２６は原稿が左上がりに傾いていくときに実行する処理である。
【０１０１】
図１６との対応で説明するならば、図１６では「ｐ＝４」となる。ステップ５に記述する「アドレスＸに続くｐ番目のアドレスに対応付けられる１ライン前のアドレス」とは、図１６の例で説明するならば、例えば、アドレスＸに続く４番目の画素データｅの格納アドレスに対応付けられる１ライン前の画素データｆの格納アドレスということである。また、ステップ１４に記述する「アドレスＸの次のアドレスに対応付けられる１ライン後のアドレス」とは、図１６の例で説明するならば、例えば、画素データ▲１▼の次の画素データ▲２▼の格納アドレスに対応付けられる１ライン後の画素データ▲３▼の格納アドレスということである。
【０１０２】
ステップ３〜ステップ１４で実行する原稿が右上がりに傾いているときの処理では、原稿の上左端の頂点を起点にして、１ライン前１ライン前と辿って画像データを読み出していくのに対して、ステップ１５〜ステップ２６で実行する原稿が左上がりに傾いているときの処理では、原稿の上左端の頂点を起点にして、１ライン後１ライン後と辿って画像データを読み出していく点に違いがあるだけである。
【０１０３】
このような斜め読み出しの方法を用いると、１画素未満の量子化誤差のために、局所的に画像のズレが発生する。メモリ制御部１２を構成するスムージング処理部２２は、この画像ズレの補正を行うために用意される。
【０１０４】
傾き補正読出部２１は、このスムージング処理部２２に対して、どの画素に対してスームジング処理を施せばよいのかを知らせるために、図１６に示すように、垂直方向にずらした形で画素データを読み出すときには、そのずらしの直前に読み出した画素データ（例えば図中のｄ）と、そのずらして読み出した画素データ（例えば図中のｆ）とを「水平ズレ画素」として定義して、画素データに付加される１ビット構成の水平ズレビットをＯＮするように処理している。
【０１０５】
そして、傾き補正読出部２１は、このスムージング処理部２２に対して、どの画素に対してスームジング処理を施せばよいのかを知らせるために、図１６に示すように、水平方向にずらした形で画素データを読み出すときには、そのずらしの直前に読み出したライン上の画素データ（図中の左上がりの斜線で示すもの）と、そのずらして読み出したライン上の画素データ（図中の右上がりの斜線で示すもの）とを「垂直ズレ画素」として定義して、画素データに付加される１ビット構成の垂直ズレビットをＯＮするように処理している。
【０１０６】
メモリ制御部１２を構成するスムージング処理部２２は、傾き補正読出部２１により読み出される傾きの補正された原稿の画像データを受け取ると、図２１に示すような画像フィルタを用いて、傾き補正により発生する画像データの持つギザギザ部分をスムーズなものとする処理を行う。
【０１０７】
すなわち、水平ズレビットがＯＮする水平ズレ画素に対しては、例えば、図２１（ａ）に示すような画像フィルタ（スムージングの度合いＫについては選択可能である）を用いて、傾き補正により発生する画像データの持つギザギザ部分をスムーズなものとする処理を行う。
【０１０８】
ちなみに、この図２１（ａ）に示す画像フィルタでは、「Ｋ＝１」の場合には、水平ズレ画素の画素データ（図中のＸ）を左右に隣接する画素の画素データの平均値に置き換えることで、水平ズレ画素により発生するギザギザ部分をスムーズなものとする処理を行うことになる。
【０１０９】
また、垂直ズレビットがＯＮする垂直ズレ画素に対しては、例えば、図２１（ｂ）に示すような画像フィルタ（スムージングの度合いＫについては選択可能である）を用いて、傾き補正により発生する画像データの持つギザギザ部分をスムーズなものとする処理を行う。
【０１１０】
ちなみに、この図２１（ｂ）に示す画像フィルタでは、「Ｋ＝１」の場合には、垂直ズレ画素の画素データ（図中のＸ）を上下に隣接する画素の画素データの平均値に置き換えることで、垂直ズレ画素により発生するギザギザ部分をスムーズなものとする処理を行うことになる。
【０１１１】
また、水平ズレビットがＯＮするとともに垂直ズレビットがＯＮする水平垂直ズレ画素に対しては、例えば、図２１（ｃ）に示すような画像フィルタ（スムージングの度合いＫについては選択可能である）を用いて、傾き補正により発生する画像データの持つギザギザ部分をスムーズなものとする処理を行う。
【０１１２】
ちなみに、この図２１（ｃ）に示す画像フィルタでは、「Ｋ＝１」の場合には、水平垂直ズレ画素の画素データ（図中のＸ）を上下左右に隣接する画素の画素データの平均値に置き換えることで、水平垂直ズレ画素により発生するギザギザ部分をスムーズなものとする処理を行うことになる。
【０１１３】
なお、この画像フィルタの適用を可能とするために、スムージング処理部２２は、傾き補正読出部２１により読み出される３ライン分の画像データを保持する機構を有している。
【０１１４】
メモリ制御部１２を構成する平滑化処理部２３は、スムージング処理部２２によりスムージング処理の施された原稿の画像データを受け取ると、図２２に示すような画像フィルタを用いて、そのスムージング処理では取り除けなかった画像データの持つギザギザ部分を平滑化する処理を行う。
【０１１５】
すなわち、全ての画素に対して、例えば、図２２に示すような画像フィルタ（平滑化の度合いＫについては選択可能である）を用いて、スムージング処理部２２によるスムージング処理では取り除けなかった画像データの持つギザギザ部分を平滑化する処理を行う。
【０１１６】
ちなみに、この図２２に示す画像フィルタでは、「Ｋ＝１」の場合には、処理対象の画素の画素データ（図中のＸ）を８方向に隣接する８個の画素の画素データの平均値に置き換えることで、スムージング処理では取り除けなかった画像データの持つギザギザ部分を平滑化する処理を行うことになる。
【０１１７】
なお、この画像フィルタの適用を可能とするために、平滑化処理部２３は、スムージング処理部２２によりスムージング処理の施された３ライン分の画像データを保持する機構を有している。
【０１１８】
メモリ制御部１２を構成する水平拡大処理部２４は、傾き補正読出部２１により読み出される傾きの補正された原稿の画像データが本来の画像データに比べて水平方向に「cos θ」倍に縮小されていることを考慮して、その読み出された画像データを水平方向に「１／cos θ」倍に拡大する処理を行う。
【０１１９】
そして、メモリ制御部１２を構成する垂直拡大処理部２５は、傾き補正読出部２１により読み出される傾きの補正された原稿の画像データが本来の画像データに比べて垂直方向に例えば「cos θ」倍（原稿の搬送速度により変わる）に縮小されていることを考慮して、その読み出された画像データを垂直方向に例えば「１／cos θ」倍に拡大する処理を行う。
【０１２０】
この水平拡大処理部２４による水平方向の拡大処理は、例えば、「１／cos θ＝１.0１」のときには、水平方向の１００画素につき１画素を挿入する必要があることを判断して、例えば、その挿入個所の左右の画素の画素データの平均値を算出し、その平均値を持つ画素データを挿入個所に挿入することで行う。
【０１２１】
そして、この垂直拡大処理部２５による垂直方向の拡大処理は、例えば、「１／cos θ＝１.0１」のときには、垂直方向の１００ラインにつき１ラインを挿入する必要があることを判断して、例えば、その挿入個所の上下のラインの画素の画素データの平均値を算出し、その平均値を持つ画素データを挿入個所に挿入することで行う。
【０１２２】
メモリ制御部１２を構成する２値化部２６は、水平拡大処理部２４と垂直拡大処理部２５とにより拡大処理された画像データを規定の閾値と比較することで、多値の画像データを２値化する処理を行う。
【０１２３】
このように、メモリ制御部１２は、原稿の画像データを２値化してから傾きを補正するのではなくて、２値化する前の多値データの状態で傾きを補正する構成を採って、その後で、スムージング処理を施すという構成を採っている。これから、スムージング処理が有効なものになる。
【０１２４】
メモリ制御部１２を構成するマスキング部２７は、２値化部２６により２値化された原稿の画像データの持つ枠部分（端部分）に存在する影を消去する処理を行って、第２の画像メモリ２８に格納する処理を行う。
【０１２５】
このようにして、メモリ制御部１２は、スキャナ制御部１５からスキャナ読取処理の起動がかかると、図４に示したように、ラインイメージセンサ１０により読み取られる原稿の画像データを、メモリ制御部１２の持つ第１の画像メモリ２０にその読み取りの順番に書き込む処理を行う。
【０１２６】
そして、メモリ制御部１２は、スキャナ制御部１５からデスキュー処理の起動がかかると、スキャナ制御部１５から通知される「切出開始アドレス」／「幅」／「傾き」／「倍率補正値」に従って、図５に示すように、第１の画像メモリ２０に格納される原稿の画像データをその傾きを補正しつつ読み出すとともに、その傾き補正により発生する画像データの持つギザギザ部分をスムーズなものにするスムージング処理を施し、更に、平滑化処理部２３や水平拡大処理部２４や垂直拡大処理部２５や２値化部２６やマスキング部２７を使って、スキャナ制御部１５から通知される「画像処理モード」／「マスキング範囲」に応じた画像処理を施す処理に入って、原稿の読み取りの終了に連動してスキャナ制御部１５からデスキュー処理の終了が指示されると、その処理を終了する処理を行う。
【０１２７】
なお、図１に示す実施形態例では説明しなかったが、メモリ制御部１２は、画像処理部として、その他に、強調処理を行う処理部や、誤差拡散を行う処理部や、浮動スライスへの変換を行う処理部などが用意している。
【０１２８】
【発明の効果】
以上説明したように、本発明の画像読取装置では、ラインイメージセンサにより読み取られる画像データを多値データのままメモリ手段に格納するとともに、それと並行させて、読取対象の原稿の傾き及びサイズと、メモリ手段に格納される原稿の画像データの読出開始位置とを検出する構成を採って、その検出結果に従って原稿の傾きを補正することを実現する画像データの読出順序を決定し、それに従ってメモリ手段から原稿の画像データを読み出すことで、多値データのまま傾きを補正する形で原稿の画像データを切り出すように処理するのである。
【０１２９】
これから、本発明の画像読取装置によれば、原稿の画像データを読み取りつつ、多値データのままの状態でもって、その原稿の画像データの傾きを補正していくことができるようになることから、高精度かつ高速度の原稿読み取りを実現できるようになる。
【０１３０】
したがって、複数枚の読取原稿を自動給紙機構にセットして連続的に読み取るような場合に、異なるサイズの原稿を同時に読み取れるようになるとともに、原稿を原稿台に載置させて読み取るような場合に、原稿の姿勢が正確にセットされなくても正確に読み取れるようになる。
【図面の簡単な説明】
【図１】本発明の一実施形態例である。
【図２】エッジ検出部の処理の説明図である。
【図３】傾き／サイズ検出部の処理の説明図である。
【図４】第１の画像メモリへの画像データの格納処理の説明図である。
【図５】メモリ制御部の処理の説明図である。
【図６】  エッジ検出部の回路構成の一例である。
【図７】エッジフィルタ部の２値化処理の説明図である。
【図８】  エッジフィルタ部の一例である。
【図９】エッジ判定回路の判定処理の説明図である。
【図１０】  エッジフィルタ部の一例である。
【図１１】搬送されてくる原稿の説明図である。
【図１２】傾き／サイズ検出部の検出処理の説明図である。
【図１３】傾き／サイズ検出部の実行する処理フローの一実施形態例である。
【図１４】傾き／サイズ検出部の実行する処理フローの一実施形態例である。
【図１５】傾き／サイズ検出部の実行する処理フローの一実施形態例である。
【図１６】傾き補正読出部の読出処理の説明図である。
【図１７】第１の画像メモリに格納される画像データの説明図である。
【図１８】傾き補正読出部の実行する処理の説明図である。
【図１９】傾き補正読出部の実行する処理の説明図である。
【図２０】傾き補正読出部の実行する処理の説明図である。
【図２１】スムージング処理を施す画像フィルタの説明図である。
【図２２】平滑化処理を施す画像フィルタの説明図である。
【符号の説明】
１    原稿読取装置
１０  ラインイメージセンサ
１１  Ａ／Ｄ変換器
１２  メモリ制御部
１３  エッジ検出部
１４  傾き／サイズ検出部
１５  スキャナ制御部
２０  第１の画像メモリ
２１  傾き補正読出部
２２  スムージング処理部
２３  平滑化処理部
２４  水平拡大処理部
２５  垂直拡大処理部
２６  ２値化部
２７  マスキング部
２８  第２の画像メモリ
【図１】
0003670571.tif 000002
【図２】
0003670571.tif 000003
【図３】
0003670571.tif 000004
【図４】
0003670571.tif 000005
【図５】
0003670571.tif 000006
【図６】
0003670571.tif 000007
【図７】
0003670571.tif 000008
【図８】
0003670571.tif 000009
【図９】
0003670571.tif 000010
【図１０】
0003670571.tif 000011
【図１１】
0003670571.tif 000012
【図１２】
0003670571.tif 000013
【図１３】
0003670571.tif 000014
【図１４】
0003670571.tif 000015
【図１５】
0003670571.tif 000016
【図１６】
0003670571.tif 000017
【図１７】
0003670571.tif 000018
【図１８】
0003670571.tif 000019
【図１９】
0003670571.tif 000020
【図２０】
0003670571.tif 000021
【図２１】
0003670571.tif 000022
【図２２】
0003670571.tif 000023