(57)【要約】【課題】  利便性の高い傾き修正装置および傾き修正方法を提供する。【解決手段】  ラインバッファ１１は、数ライン分の画像データを保持することが可能であり、メモリに相当する。ラインバッファ１１に記憶される所定ライン数分のデータの中の先頭ラインと最終ラインに含まれる原稿端のデータに基づいて画像データの傾き角度を検出しており、Ｓ１０２〜Ｓ１１２の処理は、角度検出部に相当する。Ｓ１２０の処理で、検出された傾きを解消するようにラインバッファ１１内の画像データを回転したデータを生成して出力しており、傾き解消部に相当する。画像データは、所定ライン数毎に順次ラインバッファ１１に入力され、ラインバッファ１１内に画像データが入力されると順次角度を検出して回転することを繰り返している。【選択図】  図２
2017147703.tif 000002
【特許請求の範囲】
【請求項１】
スキャンされた画像データを所定のライン数分記憶するメモリーと、
当該メモリーの画像データの傾き角度を検出する傾き角度検出部と、
検出された傾きを解消するように前記メモリー内の画像データを回転したデータを生成して出力する傾き解消部とを具備することを特徴とする傾き修正装置。
【請求項２】
前記メモリーは、ラインセンサーでスキャンした画像データを所定のライン数分記憶する
ことを特徴とする請求項１に記載の傾き修正装置。
【請求項３】
前記メモリーは、ラインセンサーの出力画像データを記憶するラインバッファであることを特徴とする請求項１または請求項２に記載の傾き修正装置。
【請求項４】
前記角度検出部は、前記メモリー内に記憶される所定ライン数分のデータの中の先頭ラインと最終ラインに含まれる原稿端のデータに基づいて画像データの傾き角度を検出することを特徴とする請求項１〜請求項３のいずれかに記載の傾き修正装置。
【請求項５】
前記角度検出部は、左端側と右端側とで個別に画像データの傾き角度を検出することを特徴とする請求項４に記載の傾き修正装置。
【請求項６】
前記角度検出部は、検出した角度のデータを保持し、左端側と右端側とで検出した傾き角度の差が所定のしきい値よりも大きい場合は保持している角度を採用することを特徴とする請求項５に記載の傾き修正装置。
【請求項７】
前記角度検出部は、先頭ラインと最終ラインの画像データにおける左端側と右端側から内側に向かって順番に有効データを判定し、最初に見つかった有効データの位置を利用して角度を検出することを特徴とする請求項５または請求項６に記載の傾き修正装置。
【請求項８】
前記画像データは、所定ライン数毎に順次前記メモリーに入力され、
前記角度検出部は、前記メモリー内に画像データが入力されると順次角度を検出して画像データを回転することを繰り返すことを特徴とする請求項２〜請求項７のいずれかに記載の傾き修正装置。
【請求項９】
検出された傾き角度を保持しておく角度記憶メモリーと、この角度記憶メモリーに記憶された傾き角度の経年変化を判断し、経年変化で傾き角度が大きくなってきたときに警報を通知する警報通知部とを有することを特徴とする請求項１〜請求項８のいずれかに記載の傾き修正装置。
【請求項１０】
スキャンされた画像データを所定のライン数分毎にラインバッファに記憶する工程と、
このラインバッファ内で画像データの傾き角度を検出する工程と、
検出された傾きを解消するように画像データを回転したデータを生成して出力する工程とを実施する傾き修正方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャン画像データの傾きを修正する傾き修正装置および傾き修正方法に関する。
【背景技術】
【０００２】
読み取り対象となる用紙をペーパーフィーダーを使用してラインスキャナーまで引き込む場合、引き込み開始時に斜めになる結果、読み込まれた画像が画像データとしても斜めになってしまうことがある。
この場合、斜めとなった画像をデータ処理することで傾きを修正する技術（以下、傾き補正と呼ぶ）が知られている。
特許文献１に示す傾き補正の手法では、スキャンした画像データを一度別メモリーに溜め込み、解析を行って再度画像形成を行っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３９６２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に示す傾き補正の手法では、画像データとして１ページを全て溜めこむメモリー容量が必要となる。また、読み取った画像を再度形成する必要があることから、処理が遅くなる。
本発明では、利便性の高い傾き修正装置および傾き修正方法を提供する。
【課題を解決するための手段】
【０００５】
本発明は、スキャンされた画像データを所定のライン数分記憶するメモリーと、当該メモリーの画像データの傾き角度を検出する傾き角度検出部と、検出された傾きを解消するように前記メモリー内の画像データを回転したデータを生成して出力する傾き解消部とを具備する構成としてある。
ここで、前記メモリーは、ラインセンサーでスキャンした画像データを所定のライン数分記憶するものが適用され、一例として、前記メモリーは、ラインセンサーの出力画像データを記憶するラインバッファで実現される。
【０００６】
前記構成において、メモリーは、スキャンされた画像データを所定のライン数分記憶する。傾き角度検出部は当該メモリーの画像データの傾き角度を検出し、傾き解消部は検出された傾きを解消するように前記メモリー内の画像データを回転したデータを生成して出力する。
このように、画像データを所定のライン数分の単位で傾き角度を検出し、傾きを解消して回転したデータを生成する。
【０００７】
従って、画像データを１ページ分単位で記憶するメモリーは必要としない。一時的に記憶するメモリー領域でも実現できる。例えば、ラインセンサーでスキャンした画像データを所定のライン数分記憶するもので充分であり、ラインバッファでも可能である。
このように、１ページ分の溜め込むメモリーがなくても傾き補正ができ、かつスキャン処理時間も短縮できる。
【図面の簡単な説明】
【０００８】
【図１】本発明が適用されるスキャナーの概略ブロック図である。
【図２】本発明を適用した傾き補正処理のフローチャートである。
【図３】斜行給紙された場合の画像データのラインバッファ内でのデータを示す図である。
【図４】斜行給紙された場合に少し進んだ画像データのラインバッファ内でのデータを示す図である。
【図５】斜行給紙された場合にさらに進んだ画像データのラインバッファ内でのデータを示す図である。
【図６】画像データを回転させる状況を示す図である。
【図７】ラインバッファ内の画像データが回転されて出力される状況を示す図である。
【図８】経年変化で消耗品等の交換を提案する処理のフローチャートである。
【図９】ラインバッファが記憶するライン数を動的に変更するフローチャートである。
【図１０】副走査方向で分割して傾き角度を検出する例を示す図である。
【発明を実施するための形態】
【０００９】
（第１実施形態）
以下、図面にもとづいて本発明の実施形態を説明する。
図１は、本発明の一実施形態にかかる傾き修正装置が適用されるスキャナーの概略ブロック図である。
同図において、ラインセンサー１０は、媒体上の画像を読み取るセンサーであり、一列に所定画素数だけ個々の明暗検出素子が配置されている。一例として、モノクロであっても良いし、カラーであっても良い。図示していないがラインセンサー１０と対応して媒体上を照らし出す発光素子も備えている。本実施例では、一体の素子を使用しているが、複数のラインセンサーを重ならないように並べて読み取り長さを伸ばした構造としても良い。
【００１０】
ラインセンサー１０は内部にラインバッファ１１を備えており、明暗検出素子で読み取ったデータ（出力画像データ）は一時的にこのラインバッファ１１に記憶され、順次出力される。ラインバッファ１１は、明暗検出素子から効率よくデータを取得することができるようにするために備えられており、数ライン分の画像データを保持することが可能である。すなわち、このラインバッファ１１が、本発明のメモリーに相当する。
プラテン２１は図示しない給紙機構に配置されており、給紙モーター２２によって回転駆動可能となっている。プラテン２１は、給紙モーター２２によって回転駆動されると、給紙機構にセットされた読み取り媒体を吸引し、前記ラインセンサー１０の配置場所を通過させる。
【００１１】
メモリー３０は、スキャンされた画像データを保持する領域として使用される他、他の制御のためにも利用される。
制御部４０は、給紙モーター２２やラインセンサー１０やメモリー３０の制御を行う。この他、制御部４０には、ユーザからの操作を入力する操作パネル５０と、外部機器と通信をして画像データを出力するためのインターフェイス（Ｉ／Ｏ）６０とが接続されている。制御部４０内には、ＣＰＵやＲＯＭやＲＡＭなどが備えられており、所定のプログラムを実行して各種の機能を実現可能となっている。
【００１２】
この機能の一例として、本発明では傾き補正処理を実行可能である。
図２は、本発明を適用した傾き補正処理のフローチャートである。以下、この傾き補正処理を図３〜図６を参照しつつ説明する。
傾き補正処理は、スキャン開始後に実行され、スキャンと並行して実施される。
制御部４０のＣＰＵは、Ｓ１００にて、ラインバッファ１１がたまったか判断する。この処理の実行前に制御部４０は給紙機構の給紙モーター２２に回転の指示を与えており、ラインセンサー１０は所定のタイミング毎に読み取った一ライン分の画像データをラインバッファ１１に出力している。ラインセンサー１０とラインバッファ１１との間ではハードウェア上の同期によって逐次データが溜め込まれ、制御部４０はラインバッファ１１に溜め込まれた数ライン分の画像データを取得することができるようになっている。
【００１３】
制御部４０は、傾き補正の処理のため、ラインバッファ１１に画像データが数ライン分だけ溜め込まれた時点で以下の処理を実行する。ＣＰＵは、Ｓ１０２にて、先頭ラインの左座標（Ｘ00，Ｙ00）を取得し、Ｓ１０４にて、最終ラインの左座標（Ｘ01，Ｙ01）取得し、二つの左座標（Ｘ00，Ｙ00）と左座標（Ｘ01，Ｙ01）からＳ１０６にて、左端の傾き角度θ0を算出する
【００１４】
図３は、斜行給紙された場合の画像データのラインバッファ内でのデータを示す図である。
Ａ４などの紙媒体が給紙機構にて吸引される場合、斜行給紙されることは避けられない。例えば、右肩側が先にプラテン２１にて吸引されると、図３に示すように、右肩側の角の画像がラインセンサー１０に読み取られ、数ライン分しかバッファ能力がないラインバッファ１１においては画像の一部として右肩側の斜めの画像データが書き込まれることになる。
【００１５】
同図において、線分Ｌ１は、紙媒体の上辺の画像に相当し、線分Ｌ２は、紙媒体の右辺の画像に相当する。一般的には線分Ｌ１と線分Ｌ２は直交するはずである。
ラインセンサー１０の画像解像度は予め分かっており、ラインバッファ１１が溜め込むことが可能なライン数も予め分かっている。さらに、給紙モーター２２の回転速度やプラテン２１の半径などから、所定時間に給紙される紙媒体の移動速度も予め算出できる。
【００１６】
このような背景から、単位時間あたりの紙媒体の移動速度M0を得て、ラインバッファ１１で溜め込むことが可能な数ライン（Ln）分の実際の紙媒体の長さL0は、単位時間あたりの取得ライン数（Lt）とすると
L0＝M0xLn/Lt
となる。すなわち、ラインセンサー１０の幅×ラインバッファ１１で溜め込む媒体の長さ（L0）という矩形領域に相当する紙媒体の画像データがラインバッファ１１に保存されている。
【００１７】
図３に示すように、紙媒体の右肩角の画像データがラインバッファ１１の先頭（最も古い側）にさしかかった時点で、先頭ラインの左座標（Ｘ00，Ｙ00）と最終ラインの左座標（Ｘ01，Ｙ01）取得すると、線分Ｌ１（Ｘ00，Ｙ00）−（Ｘ01，Ｙ01）の傾きが分かる。さらに、X00からX01までの距離は、ラインバッファ１１が溜め込む媒体の長さL0に一致しているから、固定値である。
【００１８】
従って、線分Ｌ１に基づく斜行角度θ0は、
sinθ0＝L0／（Ｙ01−Ｙ00）
となる。
同様に、右辺の線分Ｌ２についても、ＣＰＵは、Ｓ１０８にて、先頭ラインの右座標（Ｘ10，Ｙ10）を取得し、Ｓ１１０にて、最終ラインの右座標（Ｘ11，Ｙ11）取得し、Ｓ１１２にて、右端の傾き角度θ1を算出する。
【００１９】
右端については、線分Ｌ２に基づく斜行角度θ1は、
sinθ1＝（Ｙ10−Ｙ11）
となる。
なお、先頭ラインの左座標（Ｘ00，Ｙ00）、最終ラインの左座標（Ｘ01，Ｙ01）、先頭ラインの右座標（Ｘ10，Ｙ10）、最終ラインの右座標（Ｘ11，Ｙ11）を利用するというのは、その手法は、先頭ラインと最終ラインの画像データにおける左端側と右端側から内側に向かって順番に有効データを判定し、最初に見つかった有効データの位置を利用しているということでもある。その結果を利用して、角度を検出している。
【００２０】
このように、前記ラインバッファ１１に記憶される所定ライン数分のデータの中の先頭ラインと最終ラインに含まれる原稿端のデータに基づいて画像データの傾き角度を検出している。また、左端側と右端側とで個別に画像データの傾き角度を検出している。従って、Ｓ１０２〜Ｓ１１２の処理は、角度検出部に相当する。
このようにして左端の傾き角度θ0と右端の傾き角度θ1とが求められたら、ＣＰＵはＳ１１４にて、左右の傾き角度に差異があるか判断する。誤差も考慮して、しきい値Thθを設定し、
θ0−θ1＞Thθ
が成立するかで判断すればよい。
一般的には、左端の傾き角度θ0と右端の傾き角度θ1とは所定の誤差の範囲内で一致するはずである。
【００２１】
図４は、斜行給紙された場合に少し進んだ画像データのラインバッファ内でのデータを示す図である。
右肩の角部分の画像がラインバッファ１１内に入っている間は、上のような手法で算出しても左端の傾き角度θ0と右端の傾き角度θ1とは所定の誤差の範囲内で一致するものの、図４に示すように、左肩の角部分の画像がラインバッファ１１内に入った時点で、左端側の画像は角の二つの線分となっており、上のような手法で算出した左端の傾き角度θ0は正確なものとはならない。紙媒体の上辺を線分Ｌ１とし、左辺を線分Ｌ３とすると、上の算出は、図で示す線分Ｌ５の角度となるからである。従って、この場合は、左端の傾き角度θ0と右端の傾き角度θ1とは一時的に大きく異なることが予想される。
【００２２】
このような状態では、ＣＰＵが、Ｓ１１４にて左右の傾き角度に差異があると判断される。その場合、ＣＰＵは、Ｓ１１６にて、前回の値に近い方に設定する。図４に示す場合であれば、右端の傾き角度θ1は正しいし、それ以前に算出した傾き角度とも概ね一致すると想定される。前回の値は、Ｓ１１８にて今回の傾き角度を保存しており、この保存した傾き角度が次回において、前回の値として参照される。なお、最初の一回目においては前回の値は保存されていないが、図４に示す状態が生じる前に正しい傾き角度を算出することができているはずなので、問題はない。
【００２３】
このように、Ｓ１１８の処理は、検出した角度のデータを保持する処理に相当し、Ｓ１１４の処理は、左端側と右端側とで検出した傾き角度の差が所定のしきい値よりも大きいかを判定する処理に相当し、Ｓ１１６の処理は、所定のしきい値よりも大きい場合には保持している角度を採用する処理に相当する。
また、図５は、斜行給紙された場合にさらに進んだ画像データのラインバッファ内でのデータを示す図である。紙媒体の上辺の角が通過した後は、紙媒体の右辺Ｌ２と左辺Ｌ３が画像として続くはずであり、Ｓ１１４にて左右の傾き角度に差異があると判断されることはない。むろん、紙媒体の下辺Ｌ４（図示しない）において、上辺の角の画像と同様のことが起きるであろうが、Ｓ１１４〜Ｓ１１８の処理において、問題は解消される。
【００２４】
図６は、画像データを回転させる状況を示す図である。
左端と右端の傾き角度θ0，θ1とが算出されたら、ＣＰＵは、Ｓ１２０にて、回転して画像データを出力する。画像データの回転は公知の手法で算出すればよく、図６に示すように画素（xp0,yp0）の画像を時計回りに角度θ回転すると、新座標（xp1,yp1）が得られる。ラインバッファ１１内の斜行吸引された画像データは、以上の処理を経て回転され、メモリー３０に記憶される。
【００２５】
このように、Ｓ１２０の処理は、検出された傾きを解消するようにラインバッファ１１内の画像データを回転したデータを生成して出力しており、傾き解消部に相当する。
ＣＰＵは、Ｓ１２２にてスキャンデータが終了したか判断することで、ラインバッファ１１に画像データがたまる毎に以上の処理を繰り返す。
すなわち、画像データは、所定ライン数毎に順次ラインバッファ１１に入力され、ラインバッファ１１内に画像データが入力されると順次角度を検出して回転することを繰り返している。
【００２６】
図７は、ラインバッファ１１に溜め込まれる画像データが回転された画像データとしてメモリー３０に出力されていくことで、斜行を解消された画像データとなって出力される様子を示している。一点鎖線は、ラインバッファ１１に一回ごとに溜め込まれる斜行した画像データを示しており、ラインバッファ１１内の画像データを回転して出力した画像データは二点鎖線で示すものとなる。この二点鎖線で示す画像データは、斜行のない元の画像を表す画像データとなっている。
【００２７】
（第２実施形態）
第１実施形態では、制御部４０のＣＰＵがラインバッファ１１内の画像データを分析して傾き角度を検出し、メモリー３０に転送する過程で画像データを回転している。
他の実施形態として、メモリー３０内に順次画像データが移転されていく過程で、一部をバッファ領域として数ライン分の画像データを一時的に保存させ、メモリー３０内のバッファ領域内で第１実施形態と同様の手法で傾き角度を検出させるようにしてもよい。この場合、検出した傾き角度を解消するように画像データを回転させながら、メモリー３０内の他の領域に書き込む。メモリー３０内に書き込まれる画像データは斜行が解消されたものとなる。
【００２８】
特に、ラインバッファ１１からメモリー３０へ画像データをＤＭＡ転送する場合、制御部４０のＣＰＵはラインバッファ１１内の画像データにアクセスしないので、メモリー３０内に転送された後の画像データを回転させるためには、本実施形態のように処理するとよい。
【００２９】
（第３実施形態）
上述した実施形態においては、ラインバッファが記憶するライン数は一定である。
本実施形態では、ラインバッファが記憶するライン数を動的に変更する。
図９は、ラインバッファが記憶するライン数を動的に変更するフローチャートである。
制御部４０のＣＰＵは、Ｓ３００にて、傾き角度の変動があるか判断する。傾き角度はラインバッファ１１に画像データがたまる毎に検出しており、毎回、検出する傾き角度を記憶しておく。また、記憶するたびに分散を算出する。分散は、変動の傾向を示すから、分散が小さければ斜行は一定のまま進行していると言える。
【００３０】
しかし、分散が大きくなれば、傾き角度の変動が大きいことになる。このような場合には、より正確に傾き角度を検出して、傾きを解消すべく、ＣＰＵは、Ｓ３０２にて、ラインバッファが保持するライン数を減らす。すると、少ないライン数毎に傾き角度を計測しているので、より細やかな回転処理を実現できるようになる。
【００３１】
（第４実施形態）
給紙機構には使用に伴って消耗していくローラーなどがあり、ローラーの減りによって斜行の頻度が上がる傾向にある。
図８は、経年変化で消耗品等の交換を提案する処理のフローチャートである。
制御部４０のＣＰＵは、Ｓ２００にて、初回起動時であると判断すると、Ｓ２０２にて、傾き角度を初期傾き角度を示す変数エリアに保存しておく。なお、傾き補正処理を実行し、傾き角度を検出したときに、実行すればよい。例えば、このような初期傾き角度を示す変数を用意しておき、初期傾き角度が保存されていれば、初回起動時ではないと判断し、初期傾き角度が保存されていなければ、初回起動時と判断すればよい。
【００３２】
以後、傾き補正処理を実行し、Ｓ２０４にて傾き角度を検出した場合には、ＣＰＵは、Ｓ２０６にて、初回起動時の傾き角度と比較する。すなわち、検出された傾き角度を初期傾き角度とを比較する。そして、ＣＰＵは、Ｓ２０８にて、傾き角度が大きくなったと判断されたら、Ｓ２１０にて給紙機構の消耗品の交換を表示する。表示は、スキャナー本体で示しても良いし、スキャナーを接続したＰＣの側で表示しても良い。
【００３３】
このように、初期傾き角度を記憶する変数は、検出された傾き角度を保持しておき、また、今回検出された傾き角度を保存しておく変数は角度記憶メモリーに相当し、Ｓ２０６にて、この角度記憶メモリーに記憶された傾き角度の経年変化を判断し、Ｓ２０８とＳ２１０の処理で、経年変化で傾き角度が大きくなってきたときに警報を通知しており、警報通知部に相当する。
【００３４】
（第５実施形態）
図１０は、副走査方向で分割して傾き角度を検出する例を示す図である。
同図に示すように、スキャンエリアを左半分（Ｌｐａｒｔ）と、右半分（Ｒｐａｒｔ）とに分ける。そして、それぞれの領域で回転角度を検出することも可能である。むろん、分割する数は２つに限られず、より多くの数に分割しても良い。
なお、本発明は前記実施例に限られるものでないことは言うまでもない。当業者であれば言うまでもないことであるが、
・前記実施例の中で開示した相互に置換可能な部材および構成等を適宜その組み合わせを変更して適用すること
・前記実施例の中で開示されていないが、公知技術であって前記実施例の中で開示した部材および構成等と相互に置換可能な部材および構成等を適宜置換し、またその組み合わせを変更して適用すること
・前記実施例の中で開示されていないが、公知技術等に基づいて当業者が前記実施例の中で開示した部材および構成等の代用として想定し得る部材および構成等と適宜置換し、またその組み合わせを変更して適用すること
は本発明の一実施例として開示されるものである。
【符号の説明】
【００３５】
１０…ラインセンサー、１１…ラインバッファ、２１…プラテン、２２…給紙モーター、３０…メモリー、４０…制御部、５０…操作パネル、６０…インターフェイス（Ｉ／Ｏ）。 
【図１】
2017147703.tif 000003
【図２】
2017147703.tif 000004
【図３】
2017147703.tif 000005
【図４】
2017147703.tif 000006
【図５】
2017147703.tif 000007
【図６】
2017147703.tif 000008
【図７】
2017147703.tif 000009
【図８】
2017147703.tif 000010
【図９】
2017147703.tif 000011
【図１０】
2017147703.tif 000012