(57)【要約】【課題】画像読取装置に振動センサ等の特別な装置を追加することなく、また、負荷の小さい簡易な画像処理により、画像読取装置の読取部の振動を検知して、振動によって画像にブレが生じるのを事前に防止すること。【解決手段】コンピュータ３は、画像読取装置１により撮像される少なくとも３フレームのプレスキャン画像データをリアルタイムに取得し（Ｓ１０３）、これらのプレスキャン画像データから、２フレームのプレスキャン画像データを１組とした組を複数選び、組毎に、２フレームのプレスキャン画像データ間の各画素の濃度差の絶対値が所定値（比較レベル）となる画素数をカウント処理し（Ｓ１０４）、各カウント値の最大値と最小値の差を演算し（Ｓ１０６）、演算結果が閾値以内であるか判定し（Ｓ１０７，Ｓ１０８）、閾値以内であると判定された場合に（Ｓ１０８でＹｅｓ）、画像読取装置１に本スキャンを実行させる（Ｓ１１０）。【選択図】図６
2011109585.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段により画像を読み取る画像読取装置の動作を制御する画像読取制御装置であって、
前記画像読取装置により撮像される少なくとも３フレームの画像データをリアルタイムに取得処理する取得手段と、
前記取得手段が取得した前記少なくとも３フレームの画像データから、２フレームの画像データを１組とした組を複数選び、組毎に、２フレームの画像データ間の各画素の濃度差の絶対値が所定値となる画素数をカウント処理する第１の演算手段と、
前記第１の演算手段で演算されたカウント値の最大値と最小値の差を演算処理する第２の演算手段と、
前記第２の演算手段の演算結果が閾値以内であるか否かを判定処理する判定手段と、
前記判定手段により前記演算結果が閾値以内であると判定された場合に、前記画像読取装置に撮像処理を実行させて前記画像読取装置により撮像された画像データを取得して記憶手段に記憶する撮像処理を行うように制御する制御手段と、
を有することを特徴とする画像読取制御装置。
【請求項２】
前記第１の演算手段は、前記取得手段が取得した前記少なくとも３フレームの画像データから、２フレームの画像データを１組とした組を２組選び、組毎に、２フレームの画像データ間の各画素の濃度差の絶対値が所定値となる画素数をカウントすることを特徴とする請求項１に記載の画像読取制御装置。
【請求項３】
前記所定値は、零の近傍の値であることを特徴とする請求項１又は２に記載の画像読取制御装置。
【請求項４】
前記制御手段は、前記取得手段による前記取得処理と、前記第１の演算手段による前記カウント処理とを１セットとする処理を、複数セット分実行するものであり、
前記第２の演算手段は、前記複数セット分のカウント値から、複数のカウント値を１グループとした少なくとも１つのグループに分け、グループ毎に、グループ内のカウント値の最大値と最小値の差を演算処理するものであり、
前記判定手段は、前記第２の演算手段による全グループの演算結果が閾値以内であるか否かを判定処理するものであり、
前記制御手段は、前記判定手段により全グループの演算結果が閾値以内であると判定された場合に、前記撮像処理を行うように制御することを特徴とする請求項１乃至３のいずれか１項に記載の画像読取制御装置。
【請求項５】
前記制御手段は、前記判定手段により前記いずれかのグループの前記演算結果が閾値以内でないと判定された場合には、最初の１セットのデータを破棄し、再度、１セット分の処理を実行させた後に前記判定処理を実行させることを特徴とする請求項４に記載の画像読取制御装置。
【請求項６】
前記制御手段は、前記判定手段により前記いずれかのグループの前記演算結果が閾値以内でないと判定された場合には、全セットのデータを破棄し、再度、前記複数セット分の処理を実行させた後に前記判定処理を実行させることを特徴とする請求項４に記載の画像読取制御装置。
【請求項７】
前記複数セットの処理は、異なる間隔で実行されることを特徴とする請求項４乃至６のいずれか１項に記載の画像読取制御装置。
【請求項８】
前記判定手段は、前記第１の演算処理でカウントされた前記いずれかのカウント値より算出した値を前記閾値として用いることを特徴とする請求項１乃至７のいずれか１項に記載の画像読取制御装置。
【請求項９】
前記取得手段により取得された画像データの各画素の濃度値の分布データを算出し、予め記憶手段に記憶される分布データと比較して、前記画像データに対応する被写体の種類を判別する判別手段と、
前記判定手段は、前記判別手段の判別結果に応じて、前記閾値の算出方法を変更することを特徴とする請求項８に記載の画像読取制御装置。
【請求項１０】
前記取得手段が取得する画像データは、前記画像読取装置の特定の部分を撮像画像を含むものであり、
前記画像読取装置の特定の部分には、コントラストの高い模様が付加されていることを特徴とする請求項１乃至９のいずれか１項に記載の画像読取制御装置。
【請求項１１】
撮像手段により画像を読み取る画像読取装置の動作を制御する画像読取制御方法であって、
前記画像読取装置により撮像される少なくとも３フレームの画像データをリアルタイムに取得処理する取得ステップと、
前記取得ステップで取得した前記少なくとも３フレームの画像データから、２フレームの画像データを１組とした組を複数選び、組毎に、２フレームの画像データ間の各画素の濃度差の絶対値が所定値となる画素数をカウント処理する第１の演算ステップと、
前記第１の演算ステップで演算されたカウント値の最大値と最小値の差を演算処理する第２の演算ステップと、
前記第２の演算ステップでの演算結果が閾値以内であるか否かを判定処理する判定ステップと、
前記判定ステップで前記演算結果が閾値以内であると判定された場合に、前記画像読取装置に撮像処理を実行させて前記画像読取装置により撮像された画像データを取得して記憶手段に記憶する撮像処理を行うように制御する制御ステップと、
を有することを特徴とする画像読取制御方法。
【請求項１２】
撮像手段により画像を読み取る画像読取装置の動作を制御するコンピュータを、請求項１乃至１０のいずれか１項に記載された画像読取制御装置の手段として機能させるためのプログラム。
【請求項１３】
請求項１２に記載されたプログラムをコンピュータ読み取り可能に記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像手段により画像を読み取る画像読取装置の制御に関する。
【背景技術】
【０００２】
従来から画像読取装置としては、ＣＣＤ等の一次元のリニアイメージセンサを用いて原稿を搬送しながら画像の読み取りを行うものや、原稿を原稿台にセットし、光学読み取り装置が移動するものなどが知られている。
【０００３】
また、エリアセンサなどの２次元センサを使用し、原稿と読取部の相対的な移動なしで原稿などの全体像をパーソナルコンピュータ（ＰＣ）のモニタに表示しながら、必要に応じて全体を一度に読み取る書画カメラ等も知られている。
【０００４】
しかし、いずれの場合においても画像の読み取りを行う際に振動があると、読み取り画像が歪むという問題があった。
【０００５】
そのため、特許文献１においては、振動検知手段を設けて振動を検知すると読み取りを停止して、警告を発し、不適切な画像の読み取りを防止している。
【０００６】
また、特に、読取部に二次元センサ(エリアセンサ)を使用した画像読取装置においては、エリアセンサを使用した読取部と原稿部とは一定の距離が必要であり、撮像時の振動などによって読取部が揺らぎ、読み取り画像が歪む可能性がさらに増加するという問題があった。
【０００７】
このため、特許文献２においては、二次元センサを使用した画像読取装置において、連続した動画画像の中からブロックマッチング法などにより動きベクトルを求め、そこから動き量を求めて静止画像を取り込むタイミングを計算している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００１−２３０９０５号公報
【特許文献２】特開２００６−０６７４５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、上述した特許文献１のような装置においては、読取部に何らかの振動を検知もしくはキャンセルする手段を設けることになり、装置に読み取り以外の機能を付与することになるので、装置の特に画像読取部の複雑化や大型化を招く可能性がある。
【００１０】
また、特許文献２のような装置においては、画面上の全ての画素上で動きのベクトルを演算し続けなければならず、汎用のＰＣなどを利用した画像読み取りシステムにおいて簡易に行うには負荷が大きい。特に、携帯性を重視して不特定のノートＰＣなどを利用する場合は、特に問題となる。
【００１１】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、画像読取装置に振動センサ等の特別な装置を追加することなく、また、負荷の小さい簡易な画像処理により、画像読取装置の読取部の振動を検知して、振動によって画像にブレが生じるのを事前に防止することができる携帯性の良い画像読取装置を実現できる仕組みを提供することである。
【課題を解決するための手段】
【００１２】
本発明は、撮像手段により画像を読み取る画像読取装置の動作を制御する画像読取制御装置であって、前記画像読取装置により撮像される少なくとも３フレームの画像データをリアルタイムに取得処理する取得手段と、前記取得手段が取得した前記少なくとも３フレームの画像データから、２フレームの画像データを１組とした組を複数選び、組毎に、２フレームの画像データ間の各画素の濃度差の絶対値が所定値となる画素数をカウント処理する第１の演算手段と、前記第１の演算手段で演算されたカウント値の最大値と最小値の差を演算処理する第２の演算手段と、前記第２の演算手段の演算結果が閾値以内であるか否かを判定処理する判定手段と、前記判定手段により前記演算結果が閾値以内であると判定された場合に、前記画像読取装置に撮像処理を実行させて前記画像読取装置により撮像された画像データを取得して記憶手段に記憶する撮像処理を行うように制御する制御手段とを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、画像読取装置に振動センサ等の特別な装置を追加することなく、また、負荷の小さい簡易な画像処理により、画像読取装置の読取部の振動を検知して、振動によって画像にブレが生じるのを事前に防止することができる携帯性の良い画像読取装置を実現できる等の効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施例を示す画像読取制御装置を適用可能な画像読取システムの構成を示す図である。
【図２】図１に示した画像読取装置１の制御構成を示すブロック図である。
【図３】図１に示したコンピュータ３の制御構成を示すブロック図である。
【図４】図１に示した画像読取装置の概観の一例を示す斜図である。
【図５】図１に示した画像読取装置の概観の一例を示す横図である。
【図６】実施例１の画像読取制御動作の一例を示すフローチャートである。
【図７】読取部１０が振動している場合のプレスキャン画像データを説明する図である。
【図８】３回のプレスキャン画像データの各画素の濃度（画素値）の差の絶対値の分布を示すヒストグラムである。
【図９】読取部１０の振動と１セット目，２セット目，３セット目のタイミングのデータ取得タイミングを説明する図である。
【図１０】本発明の実施例２の画像読取装置１の制御を示す図である。
【発明を実施するための形態】
【００１５】
以下に本発明を実施の形態に基づいて詳細に説明する。なお、以下に説明する本発明の実施の形態は、本発明の上位概念、中位概念および下位概念など種々の概念を説明するための一例である。したがって、本発明の技術的範囲は、以下の実施の形態に限定されるものではない。
【実施例１】
【００１６】
図１は、本発明の一実施例を示す画像読取制御装置を適用可能な画像読取システムの構成を示す図である。
【００１７】
図１において、１は画像読取装置であり、エリアセンサ等の２次元センサを使用して原稿Ｇの画像を読み取るものである。画像読取装置１は、所定のインタフェースケーブル２（例えば、ＵＳＢ(Universal Serial Bus)ケーブル）を介して、コンピュータ３に接続されて使用される。なお、画像読取装置１とコンピュータ３とは、ＵＳＢ以外のインタフェースで接続されてもよい。例えば、ＳＣＣＩや、無線、ネットワークを介して接続されていてもよい。
【００１８】
コンピュータ３には、画像読取装置１用のアプリケーションプログラムが予めインストールされている。コンピュータ３は、このアプリケーションプログラムを実行することにより、画像読取装置１の動作を制御する画像読取制御装置として機能する。
【００１９】
画像読取装置１は、コンピュータ３上で実行される上記プログラムからの指示により、原稿Ｇの画像読み取りを実行し、該読み取った画像データをコンピュータ３に送信する。
【００２０】
また、コンピュータ３は、インタフェースケーブル２を介して画像読取装置１が接続されたことを検知すると、上記アプリケーションプログラムを起動し、上記アプリケーションプログラムからの指示により、画像読取装置１を例えば低解像度でプレスキャンの状態とする。プレスキャン状態では、画像読取装置１は、原稿Ｇの画像を常時又は一定期間撮像し続け、該撮像した画像データをコンピュータ３に順次リアルタイムに送信する。コンピュータ３のアプリケーションは、画像読取装置１から入力される画像データをコンピュータ３のディスプレイ３１０（図３）に順次、最新の読取画像（プレスキャン画像）を表示する（動画表示）。
【００２１】
ユーザは、このプレスキャン動画を見ながら原稿をセットし、撮像操作等の操作を行うことができる。
【００２２】
コンピュータ３のアプリケーションを介してユーザが撮像操作を行うと、コンピュータのアプリケーションは、後述するフローチャートに示す処理において画像読取装置１に本スキャン指示を行う。画像読取装置１は、コンピュータ３からの本スキャン指示を受けると、上記のプレスキャン動作を終了し、原稿Ｇの画像を予め設定された解像度（例えば、プレスキャン時よりも高解像度）及びシャッター速度で１フレーム分撮像処理し、該撮像した画像データをコンピュータ３に送信する。
【００２３】
図２は、図１に示した画像読取装置１の制御構成を示すブロック図である。
【００２４】
図２において、１０９は制御部で、不図示のＣＰＵ、ＲＯＭ、ＲＡＭ等を有し、ＣＰＵがＲＯＭに記録されたプログラムを読み出して実行することにより、画像読取装置１全体を制御する。なお、制御部１０９のＲＡＭは、制御部１０９の作業領域として使用される。
【００２５】
１０１はレンズである。１０２はＣＣＤイメージセンサやＣＯＭＳイメージセンサ等で構成されるエリアセンサ（撮像素子）で、レンズ１０１からの光を光電変換し、画像信号としての電荷を蓄積する。
【００２６】
１０３は撮像素子駆動装置で、撮像素子１０２からの蓄積電荷の読出しや電子シャッター等をコントロールする。撮像素子駆動装置１０３は、制御部１０９からの指示により、撮像素子１０２を駆動し、光電変換により得られた蓄積電荷の出力を撮像素子１０２に指示する。撮像素子１０２は、上記指示に基づいて画像信号としての蓄積電荷を出力する。
【００２７】
１０４はＣＤＳ/ＡＧＣ回路で、相関二重サンプリング（ＣＤＳ）や自動利得制御（ＡＧＣ）を行う。１０５はＡ/Ｄ回路で、ＣＤＳ/ＡＧＣ回路１０４より出力されたアナログ値の画像信号を画像データとしてのデジタルデータに変換する。なお、ＣＤＳ/ＡＧＣ回路１０４、Ａ/Ｄ回路１０５は、撮像素子１０２に組み込まれたり、デジタル信号処理回路１０６に含まれる構成でも構わない。
【００２８】
１０６はデジタル信号処理回路で、制御部１０９からの指示により、Ａ/Ｄ回路１０５から出力された画像データをデジタル処理する。１０７はフレームメモリで、デジタル信号処理回路１０６で使用するための画像データを一時的に保持するために使用される。１０８はＵＳＢインタフェース（ＵＳＢ Ｉ／Ｆ）で、デジタル信号処理回路１０６から出力された画像データを外部装置（コンピュータ３）に出力する。
【００２９】
なお、画像読取装置１は、上述したプレスキャンの状態では、一定間隔（例えば、３０ｆｐｓの場合、毎秒３０回）で１フレーム分の撮像を行い、順次、撮像された画像データをコンピュータ３に出力する。
【００３０】
また、画像読取装置１は、コンピュータ３からの撮像指示を受けると、予め設定された解像度及びシャッター速度で撮像素子１０２を駆動して１フレーム分の撮像を行い、撮像された画像データをコンピュータ３に出力する。
【００３１】
図３は、図１に示したコンピュータ３の制御構成を示すブロック図である。
【００３２】
図３において、３０１はＣＰＵで、ＲＯＭ３０３や外部記憶装置３１１に記録されたプログラムに基づいてシステムバス３０４に接続された各デバイスを制御し、コンピュータ３全体を制御する。３０２はＲＡＭで、ＣＰＵ３０１の作業領域として使用される。なお、ＣＰＵ３０１は、外部記憶装置３１１に記録された上述の画像読取装置１用のアプリケーションプログラムを読み出して実行することにより、画像読取装置１を制御する。
【００３３】
３０５はキーボードコントローラ（ＫＢＣ）で、キーボード（ＫＢ）３０９や図示しないポインティングデバイス、例えばマウスからの入力を制御する。３０６はディスプレイコントローラ（ＤＰＣ）で、ディスプレイ３１０の表示を制御する。なお、ディスプレイ３１０はＣＲＴであってもＬＣＤ等のその他の形式の表示装置であってもよい。
【００３４】
３０７はメモリコントローラ（ＭＣ）で、外部装置（ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ等）とのアクセスを制御する。３０８はＵＳＢインタフェース（ＵＳＢ Ｉ／Ｆ）で、画像読取装置１との通信を制御する。
【００３５】
以下、図４、図５を参照して、画像読取装置１の一例として、折りたたみ式の画像読取装置を示す。
【００３６】
図４は、図１に示した画像読取装置の概観の一例を示す斜図である。
【００３７】
図５は、図１に示した画像読取装置の概観の一例を示す横図である。
【００３８】
画像読取装置１は、折りたたみ式携帯スキャナであり、関節部６，７等によって折りたたむことが可能である。
【００３９】
１０は読取部で、二次元センサの撮像素子としてＣＣＤを使用しカメラ部１０ａによってＡ４サイズの原稿Ｇを読み取ることができる。
【００４０】
読取部１０は、アーム部１１，１２によって支持され、アーム部１１，１２を起立した状態で保持するため一対の脚部１３，１４を備える。さらに、リンク１７，１８によって、アーム部１２と脚部１３，１４を一定の角度に保つ。このような構成によって、画像読取装置１は、読取部１０と撮像部の距離を一定に保つことができる。
【００４１】
以下、図６〜図９を参照して、実施例１の画像読取制御装置の動作について説明する。
【００４２】
図６は、実施例１の画像読取制御装置の動作の一例を示すフローチャートである。なお、このフローチャートの各ステップは、コンピュータ３のＣＰＵ３０１が外部記憶装置３１１に記録されたアプリケーションプログラムを読み出して実行することにより実現されるものである。
【００４３】
ＣＰＵ３０１は、ユーザによる所定の撮像操作（例えば、ディスプレイ３１０に表示される撮像ボタンを不図示のポインティングデバイスを用いてクリック）を検知すると、本フローチャートの処理を開始する（Ｓ１０１）。
【００４４】
まず、Ｓ１０２において、ＣＰＵ３０１は、画像読取装置１（上述したようにプリスキャンが実行されている）から出力されるプリスキャン画像データを取得し、輝度調整（ＡＥ；After Effects）処理を行う。そして、画像読取装置１で実行されているプレスキャン動作を停止させる。なお、Ｓ１０２を実行する時点で、画像読取装置１にてプレスキャンが実行されていない場合には、ＣＰＵ３０１は、画像読取装置１にプレスキャンの実行を指示して、画像読取装置１から出力されるプリスキャン画像データを取得するものとする。
【００４５】
次に、Ｓ１０３では、ＣＰＵ３０１は、画像読取装置１にプレスキャン（１フレーム分）を所定の間隔で３回実行させるように指示して、画像読取装置１から出力される３回分のプリスキャン画像データをリアルタイムに取得し、ＲＡＭ３０２等に格納する。
【００４６】
なお、上記Ｓ１０３で取得された３つのプレスキャン画像データは、理想的には全く同一のものとなる。しかし、上記Ｓ１０３の実行時に、画像読取装置１が外部からの力などを受けて振動していると、この振動により、この３つのプレスキャン画像データは、それぞれ異なるものとなり、これらを重ねて表示すると、例えば図７のようになる。
【００４７】
図７は、読取部１０が振動している場合のプレスキャン画像データを説明する図である。
【００４８】
図７に示す例では、画像読取装置１は、１回目のプレスキャン画像データ(1)の示す位置から、２回目のプレスキャン画像データ(2)の示す位置に振れ、さらに、３回目のプレスキャン画像データ(3)の示す位置に振れたことになる。
【００４９】
以下、図６のフローチャートの説明に戻る。
【００５０】
次に、Ｓ１０４において、ＣＰＵ３０１は、１回目のプレスキャン画像データ(1)の各画素から、２回目のプレスキャン画像データ(2)の各画素の濃度（画素値）の差の絶対値（即ち、１回目と２回目の各画素の濃度差の絶対値）を演算し、該演算値（１回目と２回目の各画素の濃度差の絶対値）の分布データ（図８のI（(1)−(2)））を算出する（各濃度値の画素数をカウントする）。さらに、ＣＰＵ３０１は、同様に、１回目のプレスキャン画像データ(1)の各画素から、３回目のプレスキャン画像データ(3)の各画素の濃度（画素値）の差の絶対値（即ち、１回目と３回目の各画素の濃度差の絶対値）を演算し、該演算値（１回目と３回目の各画素の濃度差の絶対値）の分布データ（図８のII（(1)−(3)））を算出する。
【００５１】
このとき、仮に濃淡を持つ２つの画像が全く同じ、すなわち、読取部１０が振動していない場合、理想的には上記各画素値の差の絶対値（(1)−(2)）は全て「０」となる。しかし、２つの画像がずれている、即ち、読取部１０が振動している場合、上記各画素値の差の絶対値（(1)−(2)）が「０」以外の値となる画素が多くなる。
【００５２】
上記Ｓ１０４の演算結果を、ヒストグラムとして表わすと例えば図８のようになる。
【００５３】
図８は、３回のプレスキャン画像データの各画素の濃度（画素値）の差の絶対値の分布を示すヒストグラムである。
【００５４】
上述したように、２つのプレスキャン画像の濃度差が小さい、すなわち読取部１０の振動が小さいほど画素値が一致する画素の数が多くなる。このため、各画素値の差の絶対値を取ると、「０」及び「０」に近い値を示す画素の数が多くなる。すなわち、ヒストグラムの黒（０）レベル付近が高くなる。逆に、振動が大きいほど画素値が一致する画素の数が少なくなる。このため、各画素値の差の絶対値を取ると、画素数が減り、「０」及び「０」に近い値を示す画素の数が少なくなり、大きな値を示す画素の数が多くなる。すなわち、ヒストグラムの黒（０）レベル付近が低くなり、白レベルが高くなることになる。
【００５５】
なお、ここでは、１回目と２回目の各画素の濃度差の絶対値の分布データ、１回目と３回目の各画素の濃度差の絶対値の分布データをそれぞれ算出することを示した。しかし、１回目と２回目の各画素の濃度差の絶対値が所定濃度となる画素数、１回目と３回目の各画素の濃度差の絶対値が所定濃度となる画素数のみを算出（カウント）するようにしても同様の成果が得られる。
【００５６】
以下、図６のフローチャートの説明に戻る。
【００５７】
次に、Ｓ１０５において、ＣＰＵ３０１は、上記Ｓ１０３，Ｓ１０４により取得・演算されるプレスキャンのデータを１セットとし、プレスキャンのデータが３セット分以上有るか否かを判定し、まだ３セット分無いと判定した場合（Ｓ１０５でＮｏ）、上記Ｓ１０３，Ｓ１０４を繰り返す。
【００５８】
なお、上記Ｓ１０３，Ｓ１０４を３回繰り返すことにより、プレスキャンのデータを３セット分取得することができる。即ち、各画素の濃度差の絶対値の分布データを６つ（図８に示したヒストグラムI，IIに相当するデータを３セット分）取得することができる。
【００５９】
本実施例では、Ｓ１０３，Ｓ１０４の動作を３セット分実行したが、１セット分のみ行う構成でも、３セット以外の複数セット分実行する構成でも、読取部１０の振動を検知することはできる。即ち、本発明は、プレスキャンのデータのセット回数に依存するものではない。しかし、セット回数が少ないと振動の周期によっては誤検知の恐れが増加し、セット回数があまり多いと後述する画像取り込み（本スキャン）までのタイムラグが発生しやすくなる可能性がある。
【００６０】
上記Ｓ１０５において、既にプレスキャンの演算データが３セット分以上有ると判定した場合（Ｓ１０５でＹｅｓ）、ＣＰＵ３０１は、Ｓ１０６に処理を進める。
【００６１】
Ｓ１０６では、ＣＰＵ３０１は、各セットのプレスキャンのデータ（上記Ｓ１０４の演算結果）を元に、１セットを１グループとし、１グループ毎に、１回目と２回目の各画素の濃度差の絶対値が所定濃度となる画素数と、１回目と３回目の各画素の濃度差の絶対値が所定値（所定濃度）となる画素数の差の絶対値を計算する。即ち、図８の黒近傍（零近傍）の比較レベル（所定値）におけるヒストグラムI（(1)−(2)）とヒストグラムII（(1)−(3)）の差の絶対値（I−II）を計算する。本実施例では、３セット（６つの分布データ）があるので、Ｓ１０６では３つの値（I−II）が算出される。
【００６２】
なお、図８に例示するように、２つの各画素の濃度差の絶対値の分布データ（ヒストグラム）I，IIは、特に黒近傍のレベルに差が出る傾向がある。
【００６３】
そして、この２つの各画素の濃度差の絶対値の分布データ（ヒストグラム）I，IIの差は、撮像したプレスキャン画像の差が大きいほど大きくなる。すなわち、この差は、読取部１０の振動が大きいほど大きくなり、振動が収まってくると小さくなってくる。よって、この２つの各画素の濃度差の絶対値の分布データ（ヒストグラム）の黒近傍レベルの差を見ることにより、読取部１０の振動の大きさを推測することができる。
【００６４】
尚、上記Ｓ１０６では、１セットを１グループとし、グループ毎に２つの分布データの比較レベルにおける画素数（カウント値）の最大値と最小値の差（つまりI,IIの差）を演算した。しかし、セットを跨いでグループ分けをし、グループ毎に複数の分布データの比較レベルにおける画素数（カウント値）を比較し、その最大値と最小値の差を演算し、各演算値を用いて、読取部１０の振動の大きさを推測するようにしても良い。
【００６５】
例えば、最初のセットの分布データの比較レベルにおける画素数（カウント値）をI,IIとし、次のセットの分布データの比較レベルにおける画素数（カウント値）をI',II'さらに次のセットの分布データの比較レベルにおける画素数（カウント値）をI",II"としたとき、これらを(I,I',I")と、(II,II',II")のグループに分け、グループ毎にそれぞれ、グループ(I,I',I")の最大値（例えばI）と最小値（例えばI"）の差（I−I"）と、グループ(II,II',II")の最大値（例えばII"）と最小値（例えばII'）の差（II"−II'）を演算してもよい。
【００６６】
また、これら６つの分布データの比較レベルにおける画素数（カウント値）全て(I,I',I",II,II',II")を１つのグループとしてもよい。即ち、(I,I',I",II,II',II")の最大値（例えばI"）と最小値（例えばII'）の差（I"−II'）を演算するようにしても良い。
【００６７】
これらの演算方法は、画像を読み取るときの振動が発生する条件などによって、もっとも良好に振動を検知できる方法を選択すれば良い。
【００６８】
本実施例では、２つの各画素の濃度差の絶対値の分布データ（ヒストグラム）を比較する濃度（所定値）を、完全な黒（零）レベルではなく、それより少しグレー側に移動した黒近傍（零近傍）レベルとしている。なお、完全な黒レベルは、ＣＣＤなどの撮像素子の特性上、上記の分布データ（ヒストグラム）にノイズが乗りやすく、正しいレベル判定ができない場合がある。このため、本実施例では、上記の比較する所定値（比較レベル）を少しグレー側に移動した位置（黒近傍レベル）としている。
【００６９】
なお、本実施例では、各セット毎に、３フレームのプレスキャン画像データから、２フレームのプレスキャン画像データを１組とした組を２組選び、組毎に、２フレームのプレスキャン画像データ間の各画素の濃度差の絶対値が所定値となる画素数をカウントし、２組のカウント値の差を演算している。しかし、４フレーム以上のプレスキャン画像データから、２組以上選び、組毎に、２フレームのプレスキャン画像データ間の各画素の濃度差の絶対値が所定値となる画素数をカウントし、２組以上の組み合わせでカウント値の差を演算するように構成してもよい。この場合は、より正確なレベルの比較が可能となるが、プレスキャン画像の取り込み時間及びヒストグラムの作成時間が増え、全体の比較時間が長くなる可能性がある。
【００７０】
次に、Ｓ１０７において、ＣＰＵ３０１は、上記Ｓ１０６で演算された各演算値と所定の閾値とを比較する。なお、ＣＰＵ３０１は、この閾値を、例えば、１セット毎に、１回目と２回目の各画素の濃度差の絶対値が所定濃度となる画素数のいずれか（図８の黒近傍の比較レベルにおけるヒストグラムI又はIIの値）の１％として算出する。即ち、この閾値を、上述の１グループ毎に、上述の最大値又は最小値の１％として算出する。
【００７１】
次に、Ｓ１０８において、ＣＰＵ３０１は、上記グループ毎の演算値のいずれかが上記閾値（例えば、グループ毎に算出される）より大きいと判定した場合（Ｓ１０８でＮｏ）、読取部１０が振動していると判断して本スキャンを行わず、Ｓ１０９に処理を進める。
【００７２】
Ｓ１０９では、ＣＰＵ３０１は、最初のセットのプレスキャンのデータのみを破棄し、Ｓ１０３に処理を戻す。そして、Ｓ１０３〜Ｓ１０４の動作が行われて新たに１セット分のデータが取得される。さらに、新たな１セット分のデータと、破棄しなかった２セット分のデータとにより、３セット分のデータとなり（Ｓ１０５でＹｅｓ）、Ｓ１０６が実行され、新たに各グループ毎の演算値が演算される。そして、各演算値とそれぞれの閾値との比較判定の処理が実行される（Ｓ１０７，Ｓ１０８）。以上のＳ１０３〜Ｓ１０９処理を、全ての演算結果が閾値内と判定される、つまり振動がある程度以内に収まったと判断されるまで繰り返す。なお、Ｓ１０９では、最初のセットのプレスキャンのデータのみを破棄する構成としているが、Ｓ１０９で全セット（３セット）のプレスキャンのデータの全てを破棄し、３セットとも再取得するように構成してもよい。
【００７３】
そして、Ｓ１０８において、ＣＰＵ３０１が、演算値の全てが閾値以内であると判定した場合（Ｓ１０８でＹｅｓ）、ＣＰＵ３０１は、振動がある程度以内に収まったと判断し、Ｓ１１０に処理を進める。
【００７４】
Ｓ１１０では、ＣＰＵ３０１は、画像読取装置１に本スキャンの実行を指示し、画像読取装置１から出力される本スキャンの画像データを取得し、外部記憶装置３１１等に記録する。そして、本フローチャートの処理を終了する。なお、本フローチャートを終了した時点で、ＣＰＵ３０１が画像読取装置１をプレスキャンモードに戻すようにしてもよい。これにより、ユーザは、プレスキャン画像を参照しながら、次の原稿をセットすることが可能となる。
【００７５】
また、Ｓ１１０の本スキャン処理の前に、再度、輝度調整（ＡＥ）処理を行うように構成してもよい。ＡＥは、プレスキャンの前にＳ１０２で行うが、Ｓ１０３〜Ｓ１０８の振動検知動作中は、輝度が急激に変化すると誤検知する可能性があるため、ＡＥは行わない。しかし、本スキャンまでの間にゆっくりと輝度が変化している場合もあるため、Ｓ１１０の本スキャンの前に再度ＡＥを行うことは有効な場合がある。
【００７６】
また、１セット目、２セット目、３セット目のプレスキャン画像の取り込みのタイミングは一定の間隔としても良いが、画像読取装置が図９のように振動していたとすると、１セット目，２セット目，３セット目の間隔が一定だと、図９上のＡ，Ｂ，Ｃのように、あまり差が検出されない場合がある。このため、本実施例では、図６には示していないが、１セット目，２セット目，３セット目の間隔を、図９上のＡ，Ｂ，Ｃ'のように、不均一にすることにより、上述のような差が検出されない場合を回避するように構成している。
【００７７】
図９は、読取部１０の振動と１セット目，２セット目，３セット目のタイミングのデータ取得タイミングを説明する図である。
【００７８】
次に、上記１セット目，２セット目，３セット目のデータ取得タイミングとは別に、図６のＳ１０３におけるプレスキャン画像（各セット内の(1)，(2)，(3)）の読み取りタイミングについて説明する。
【００７９】
図６のＳ１０３における３つのプレスキャン画像データ(1)，(2)，(3)を読み取るタイミングは、蛍光灯など点滅の周期性がある光源に対応した周期となっている。
【００８０】
例えば、１／５０秒で点滅する蛍光灯下で、１／５０秒の倍数以外の周期で画像を読み取ると、それぞれの読み取り画像の輝度が変化する。そのため、このような画像を比較してヒストグラム（画素値の差の絶対値の分布データ）を生成すると、全体のレベルが大きく変動して、誤った判断をする可能性がある。
【００８１】
そのため、本実施例では、特に日常的に光源として存在する蛍光灯にあわせて、プレスキャン画像データ(1)，(2)，(3)の取り込み周期を１／５０秒と１／６０秒又はそれぞれの倍数の値の切替式としている。この切替は、撮像画像を確認しながらユーザが手動で行ってもよいし、画像読取装置１から取得される画像データの輝度変化をＣＰＵ３０１が自動的に検知して、周期を自動的に切り替えるように構成してもよい。また、他の周期性光源に合わせて可変式としてもよく、本実施例が選択した周期以外でも、点滅する光源に合わせて、読み込み画像の輝度が変化しないような周期を設定可能な構成であればどのような構成であってもよい。
【００８２】
なお、ＣＰＵ３０１が自動的に周期を切り替える場合には、例えば蛍光灯の点滅による輝度の変化に起因する画像データの輝度の変化が、振動などによる輝度の変化より大きいことを利用する。このような方法とすることにより、従来のパターンマッチング法などと比べてより簡単に蛍光灯などの周期性光源を検知することができる。また、このような検知方法とすることにより、周期性光源の検知と振動の検知を同時に行うことも可能となる。
【００８３】
また、上記説明では、図６のＳ１０７、Ｓ１０８で用いる閾値を、１回目と２回目の各画素の濃度差の絶対値が所定濃度となる画素数（図８の黒近傍の比較レベルにおけるヒストグラムIの値）の１％として算出するものとした。しかし、上記閾値の算出方法を、原稿の種類等により変更するように構成してもよい。
【００８４】
例えば、免許証等の身分証明書をスキャンする場合に用いる第１モード、他の原稿をスキャンする場合に用いる第２モード等を設け、ユーザによる切り替え設定で切り替えるようにしてもよい。例えば、上記第１モードの閾値を、黒近傍の比較レベルにおけるヒストグラムI又はIIの値（カウント値の最大値又は最小値）の「０．５％」とし、上記第２モードの閾値を、黒近傍の比較レベルにおけるヒストグラムI又はIIの値（カウント値の最大値又は最小値）の「１％」とするようにしてもよい。
【００８５】
また、ＣＰＵ３０１が、Ｓ１０２やＳ１０３で取得したプレスキャン画像データから、読み取る原稿（被写体）の種類を判別し、該判別結果に応じて、ＣＰＵ３０１が上記モード（即ち、閾値の算出方法）を切り替えるように構成してもよい。
【００８６】
例えば、特定の原稿（ここでは、免許証として説明するがこれに限定されない）をスキャンする場合、Ａ４サイズの黒い下地の上（例えば中央付近）に免許証を置いた状態で、画像読取装置１により読み取らせるようにする。このようにすることにより、読み取られたプレスキャン画像データの濃度値の分布が特定の分布となる。この分布データを、ＣＰＵ３０１が、予め外部記憶装置に記憶されている免許証の画像データの分布データと比較して判断することにより、簡単な処理で、プレスキャン画像データから、読み取る原稿の種類を判別することが可能となる。
【００８７】
例えば、まず最初の読み取り画像において中央付近を重点的に測光して、それに基づいて輝度調整（ＡＥ）を行う。通常、一般的な原稿を撮影するとき、撮像範囲はほぼ均一な輝度であり、ＡＥを行うと画素データの総和はある一定の値となる。しかし本実施例の場合、免許証は中央付近に置かれて基本的に白色に近い色をしているので、中央部重点測光のＡＥを行うと白色に合った調整値となるが、免許証の周囲は黒い下地となっているので、結果として画素データの総和は通常よりかなり低くなる。この結果を元にＣＰＵ３０１は、読み取った原稿を免許証であると判別する。以上は黒い下地の上に免許を置いた場合で説明したが、要するに読み取り対象物と下地の輝度の差が大きければ、同様の方法で読み取る原稿の種類を判別できることになる。
【００８８】
なお、上述の閾値を固定値として設定する構成が本発明に含まれることはいうまでもない。
【実施例２】
【００８９】
上記実施例１では、読取部１０の下に置かれた原稿などの被写体のプレスキャン画像データで振動を検出する構成を示した。しかし、この振動検出方法は被写体のエッジの数にも依存する。そのため、字数の少ない原稿や単色の原稿のように、色変化に乏しい原稿を読み取る際に振動を検出することが困難となる。色変化に乏しい原稿では、振動していても１回目と２回目画像データの濃度差（上記(1)−(2)）や１回目と３回目画像データの濃度差（(1)−(3)）が非常に小さくなり、振動の検出が困難となる。
【００９０】
本実施例では、この問題を、意図的にエッジを作ることで解決する。
【００９１】
図１０は、本発明の実施例２の画像読取装置１の制御を示す図である。
【００９２】
本実施例では、図１０の１００１に示すように、図６のＳ１０３にて、画像読取装置１に脚１４を含む画像を読み取らせて取得している。この脚１４には、効率良くエッジを作るため格子状の模様１９をつけてある。
【００９３】
剛性を考えると、読取部１０及びそれに連なる系と、脚１４のばね定数はそれぞれ異なるため、読取部１０の振動時には、この格子状の模様１９がブレて読み取られることになる。このブレを実施例１で説明した方法により解析することにより、振動を検知することができる。
【００９４】
本実施例では、被写体（原稿）の種類に係わらず、上述の振動検知方法を適用することが可能となる。
【００９５】
なお、上記１９に示した模様は、格子状の模様に限られるものではなく、コントラストの高い模様であればどのような模様であってもよい。また、模様１９は、脚１４以外の、画像読取装置の撮像エリアに含まれる画像読取装置の部分であってもよい。
【００９６】
また、他の実施例として、原稿などの被写体上または近傍に、コントラストの大きい小さな物体などを置いて、それを読み取らせて振動を検出させるようにしてもよい。
【００９７】
（他の実施例）
上記図６に示した振動検知処理は、コンピュータ３側で行ってもよいし、画像読取装置１の制御部１０９で行ってもよい。
【００９８】
また、画像読取装置１及びコンピュータ３により構成されるシステムは、１つの装置として構成されていても、複数の装置として構成されていてもよい。
【００９９】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種コンピュータ読み取り可能な記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０１００】
本発明の様々な例と実施例を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【０１０１】
なお、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【０１０２】
以上説明したように、本発明は、画像読取装置１の動作を制御するコンピュータが、画像読取装置１により撮像される少なくとも３フレームのプレスキャン画像データをリアルタイムに取得処理し（Ｓ１０３）、これらのプレスキャン画像データから、２フレームのプレスキャン画像データを１組とした組を複数選び、組毎に、２フレームのプレスキャン画像データ間の各画素の濃度差の絶対値が所定値（比較レベル）となる画素数をカウント処理し（Ｓ１０４）、前記取得処理と前記カウント処理を複数セット分実行するように制御し（Ｓ１０５）、前記複数セット分のカウント値から、複数のカウント値を１グループとした少なくとも１つのグループに分け、グループ毎に、カウント値の最大値と最小値の差を演算処理し（Ｓ１０６）、各演算結果が閾値以内であるか判定処理し（Ｓ１０７，Ｓ１０８）、全演算結果が閾値以内であると判定された場合に（Ｓ１０８でＹｅｓ）、画像読取装置１に本スキャンを実行させる（Ｓ１１０）ことにより、読み取り画像を事前に確認できるエリアセンサを使用した画像読取装置１の読取部１０の振動を検知して、画像を読み取るタイミング（本スキャンのタイミング）を制御できるので、装置を大型化させることなく、また、コンピュータに大きな負荷をかけることなく、簡単に振動を検知し、読取部１０が振動によって歪んだ画像を読み取ることを減らし、ブレの少ない良好な画像の取り込むことができる。
【０１０３】
即ち、画像読取装置１自体に振動センサ等の特別な装置を追加することなく、負荷の小さい簡易な画像処理で、読取部１０の振動を検知できるので、振動によって画像にブレが生じるのを事前に防止することができる携帯性の良い画像読取装置を実現することができる。
【符号の説明】
【０１０４】
１    画像読取装置
２    インタフェースケーブル
３    コンピュータ
Ｇ    原稿
【図１】
2011109585.tif 000003
【図２】
2011109585.tif 000004
【図３】
2011109585.tif 000005
【図４】
2011109585.tif 000006
【図５】
2011109585.tif 000007
【図６】
2011109585.tif 000008
【図７】
2011109585.tif 000009
【図８】
2011109585.tif 000010
【図９】
2011109585.tif 000011
【図１０】
2011109585.tif 000012