(57)【要約】【課題】スキャナでの読み取り画像を所定の間隔で確認可能にすること。すなわち、スキャナで画像を読み取りつつ、読み取り画像をユーザが画像を確認しやすい時間に亘って表示可能にすること。【解決手段】画像読取装置3が原稿を搬送しながら該原稿から画像を読み取り、情報処理装置4のキャプチャーアプリケーション422が、画像保存スレッドにより、画像読取装置3で読み取られた画像を外部記憶装置44に順次保存させる。また、キャプチャーアプリケーション422が、画像表示コントロールスレッドにより、画像保存スレッドとは非同期で、画像保存スレッドで保存された画像を出力装置45に表示させるとともに、画像の表示間隔を制御する(ステップS305〜ステップS305)。【選択図】図８
2019169841.tif 000002
【特許請求の範囲】
【請求項１】
原稿を搬送しながら該原稿から画像データを読み取る読取手段と、
前記読取手段で読み取られた画像データを記憶手段に保存させる保存処理を行う第１制御手段と、
前記保存処理とは非同期で、前記保存処理により前記記憶手段に保存された画像データに対応する画像を表示手段に表示するとともに、前記表示手段への表示間隔を制御する表示間隔を制御する表示処理を行う第２制御手段と
を備えることを特徴とする画像読取システム。
【請求項２】
前記読取手段は、複数の原稿を順次搬送しながら該原稿から画像データを順次読み取り、
前記第１制御手段は、前記保存処理において、前記読取手段で順次読み取られた画像データをページ単位で記憶手段に順次保存させ、
前記第２制御手段は、前記表示処理において、前記保存処理により前記記憶手段に順次保存された画像データに基づく画像を保存順に表示手段に順次表示させるとともに、該順次表示する画像の表示間隔を制御することを特徴とする請求項１に記載の画像読取システム。
【請求項３】
前記第２制御手段は、予め決められている表示間隔に基づいて、前記表示手段への表示間隔を制御することを特徴とする請求項１又は２に記載の画像読取システム。
【請求項４】
前記表示間隔の設定をユーザから受け付ける設定手段を有し、
前記第２制御手段は、前記設定手段で設定された表示間隔に基づいて、前記表示手段への表示間隔を制御することを特徴とする請求項１又は２に記載の画像読取システム。
【請求項５】
前記設定手段は、前記読取手段により読み取りの途中で、前記表示間隔を変更可能であり、
前記第２制御手段は、前記設定手段により前記表示間隔が変更された場合、該変更された表示間隔に基づいて、前記表示手段への表示間隔を制御することを特徴とする請求項４に記載の画像読取システム。
【請求項６】
前記第２制御手段は、前記記憶手段に画像データが保存される間隔に基づいて、前記表示手段への表示間隔を制御することを特徴とする請求項１又は２のいずれか１項に記載の画像読取システム。
【請求項７】
前記第２制御手段は、前記表示間隔に基づき、一定の間隔で前記画像を表示しており、
前記第２制御手段による一定の間隔で画像を表示する第１の表示状態から、第２の表示状態へ切り替えるための指示手段を有することを特徴とする請求項１〜６のいずれか１項に記載の画像読取システム。
【請求項８】
前記画像の表示を省略する第１指示をユーザから受け付けるための第１指示手段を有し、
前記第２制御手段は、前記第１指示手段から前記第１指示を受け付けた場合、該第１指示を受け付けた以降、前記画像の表示を省略することを特徴とする請求項１〜７のいずれか１項に記載の画像読取システム。
【請求項９】
前記画像の表示を一時停止する第２指示を受け付けるための第２指示手段を有し、
前記第２制御手段は、前記第２指示手段から前記第２指示を受け付けた場合、該第２指示を受け付けた時点で表示されている画像のまま前記画像の表示を停止することを特徴とする請求項１〜８のいずれか１項に記載の画像読取システム。
【請求項１０】
前記第２指示手段によって前記画像の表示を一時停止された状態において、該一時停止された状態で表示されている画像よりも前に表示されていた画像に表示を戻す第３指示を受け付けるための第３指示手段を有し、
前記第２制御手段は、前記第３指示手段から前記第３指示を受け付けた場合、該第３指示に対応する画像に表示を戻すことを特徴とする請求項９に記載の画像読取システム。
【請求項１１】
前記第２指示手段によって前記画像の表示を一時停止された状態において、該一時停止された状態で表示されている画像よりも後に前記記憶手段に保存された画像に表示を進める第４指示を受け付けるための第４指示手段を有し、
前記第２制御手段は、前記第４指示手段から前記第４指示を受け付けた場合、該第４指示に対応する画像に表示を進めることを特徴とする請求項９又は１０に記載の画像読取システム。
【請求項１２】
前記一時停止された状態から再び前記表示間隔で画像を表示する状態に遷移させる第５指示を受け付けるための第５指示手段を有し、
前記第２制御手段は、前記第５指示手段から前記第５指示を受け付けた場合、前記一時停止された状態となる前よりも大きい表示間隔となるように、前記表示間隔を制御することを特徴とする請求項９〜１１のいずれか１項に記載の画像読取システム。
【請求項１３】
前記第２制御手段は、前記読取手段で読み取られた画像データの一部の領域を拡大表示することを特徴とする請求項１〜１２のいずれか１項に記載の画像読取システム。
【請求項１４】
前記一部の領域は、前記読取手段で読み取られた画像データに含まれる所定のオブジェクト画像を含む領域であることを特徴とする請求項１３に記載の画像読取システム。
【請求項１５】
前記第２制御手段は、前記所定のオブジェクトの解析し、該解析した結果を表示することを特徴とする請求項１４に記載の画像読取システム。
【請求項１６】
前記所定のオブジェクトは、バーコードであることを特徴とする請求項１５に記載の画像読取システム。
【請求項１７】
前記読取手段を有する画像読取装置と、
前記記憶手段、前記第１制御手段、前記表示手段及び前記第２制御手段と、を有する情報処理装置を有し、
前記画像読取装置で読み取られた画像データが前記情報処理装置に転送されることを特徴とする請求項１〜１６のいずれか１項に記載の画像読取システム。
【請求項１８】
前記読取手段、前記記憶手段、前記第１制御手段、前記表示手段及び前記第２制御手段と、を有する画像読取装置であることを特徴とする請求項１〜１６のいずれか１項に記載の画像読取システム。
【請求項１９】
原稿を搬送しながら該原稿から画像データを読み取る読取手段と、前記読取手段で読み取られた画像データを記憶可能な記憶手段と、前記記憶手段に保存された画像データに基づく画像を表示可能な表示手段とを有する画像読取システムの制御方法であって、
前記読取手段で読み取られた画像データを記憶手段に保存させる保存処理を行う第１制御ステップと、
前記保存処理とは非同期で、前記保存処理により前記記憶手段に保存された画像データに対応する画像を表示手段に表示するとともに、前記表示手段への表示間隔を制御する表示処理を行う第２制御ステップと、
を有することを特徴とする画像読取システムの制御方法。
【請求項２０】
コンピュータを、請求項１〜１８に記載の第１制御手段及び第２制御手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿のスキャン中に読み取った画像を表示する画像読取システムの制御に関する。
【背景技術】
【０００２】
原稿を搬送してその画像を読み取るシートフィード型スキャナが知られている。このシートフィード型スキャナは、特に大量の原稿を読み取るのに用いられることが多いため、短時間で読み取れるように原稿を高速で搬送し且つ表面と裏面を1度の搬送で読み取れる両面スキャナが多い（特許文献１）。
【０００３】
一方、スキャナが接続されるパーソナルコンピュータ（以下「PC」）には、読み取った画像を保存して表示するキャプチャーアプリケーションがインストールされている。オペレータはキャプチャーアプリケーションを使って、スキャン実行の指示や、表示される画像を見て正しくスキャンできたかどうかを確認する。
【０００４】
このようなキャプチャーアプリケーションは、オペレータからスキャン指示を受けたら、スキャナに画像を要求して、画像をスキャナから転送されたタイミングでファイルに保存し且つ画面に表示し、そして次の画像を要求する。このように、キャプチャーアプリケーションは、スキャナから転送された画像に対するファイルへの保存と表示を同期して処理するようなスキャンシーケンスになっているのが一般的である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−２１０３６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
この場合、原稿の表面だけをスキャンする片面スキャンであれば、1原稿につき読み取り画像が1面で、次の原稿を読み取るまでの時間があるので、それぞれの画像をある程度の時間をかけて表示できるが、表示される時間は原稿の搬送速度や画像の保存速度に依存することとなり、ユーザが画像を確認することが困難な場合があった。
【課題を解決するための手段】
【０００７】
本発明は上記を鑑み、原稿を搬送しながら該原稿から画像データを読み取る読取手段と、前記読取手段で読み取られた画像データを記憶手段に保存させる保存処理を行う第１制御手段と、前記保存処理とは非同期で、前記保存処理により前記記憶手段に保存された画像データに対応する画像を表示手段に表示するとともに、前記表示手段への表示間隔を制御する表示間隔を制御する表示処理を行う第２制御手段とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、読み取り画像を所定の間隔で確認することが可能となる。すなわち、スキャナで画像を読み取りつつ、読み取り画像をユーザが画像を確認しやすい時間に亘って表示させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態を示す画像表示システム全体の概略図。
【図２】本実施形態の画像読取装置の構成の一例を示す概略図。
【図３】本実施形態の画像読取装置の構成の一例を示す断面図。
【図４】本実施形態の画像読取装置の構成の一例を示す平面図。
【図５】原稿搬送路上の表面読取ユニットと裏面読取ユニットの配置を例示する図。
【図６】第１実施形態の画像読取装置で読み取った画像の情報処理装置のキャプチャーアプリケーションによるファイル保存と表示処理の一例を示すフローチャート。
【図７】第１実施形態の画像保存スレッドの処理の一例を示すフローチャート。
【図８】第１実施形態の画像表示コントロールスレッドの処理の一例を示すフローチャート。
【図９】第１実施形態の画像表示画面管理スレッドの処理の一例を示すフローチャート。
【図１０】ユーザＩ／Ｆ部としての出力装置に表示される読取設定画面の一例を示す図。
【図１１】第１実施形態のスキャン画像表示画面の一例を示す図。
【図１２】両面スキャン時の表示タイミングを示す図。
【図１３】第２実施形態において読み取った画像のファイル保存と表示を非同期に処理するシーケンスの概要を示す図。
【図１４】第２実施形態のスキャン前画面の一例を示す図。
【図１５】第２実施形態のスキャン中状態の一例を示す図。
【図１６】第２実施形態の表示一時停止状態の一例を示す図。
【図１７】第２実施形態のスキャン後状態の一例を示す図。
【図１８】第２実施形態のメインスレッドの画像表示処理を例示するフローチャート。
【図１９】第２実施形態のメインスレッドの全体処理を例示するフローチャート。
【図２０】第２実施形態のスキャンスレッドの処理の一例を示すフローチャート。
【図２１】第２実施形態のスキャン開始時の処理の一例を示すフローチャート。
【図２２】第２実施形態のスキャン停止時の処理の一例を示すフローチャート。
【図２３】第２実施形態のスキャン終了時の処理の一例を示すフローチャート。
【図２４】第２実施形態の表示再開時の処理の一例を示すフローチャート。
【図２５】第２実施形態の表示一時停止時の処理の一例を示すフローチャート。
【図２６】第２実施形態の次ページの表示処理の一例を示すフローチャート。
【図２７】前ページ表示の処理を示すフローチャート。
【図２８】第２実施形態における管理テーブルの一例を示す図。
【発明を実施するための形態】
【００１０】
〔第１実施形態〕
図１は、本発明の一実施形態を示す画像表示システム全体の概略図である。
＜画像表示システムの構成＞
図１に示すように、本実施形態の画像読取システムでは、画像読取装置3と、情報処理装置4とが通信可能に接続されている。
画像読取装置3は、複数の原稿を順次搬送しながら該原稿から画像データを順次読み取るシートフィード型スキャナである。
【００１１】
＜情報処理装置4の構成＞
情報処理装置4は、CPU40、ROM41、RAM42、転送部43を備え、さらに外部記憶装置44、出力装置45、入力装置46が接続されている。
【００１２】
CPU40は、ROM41や外部記憶装置44に格納されたプログラムに従って情報処理装置4全体を制御する。ROM41には、各種プログラムやデータが格納されている。RAM42は、CPU40の作業領域等として用いられる。RAM42は、例えば画像読取装置3から転送されてきた読み取り画像を一時的に記憶する。転送部43は、画像読取装置3の転送部3eと接続され、画像読取装置3から転送されてきた読み取り画像を受信する。
【００１３】
外部記憶装置44には、スキャナドライバ441、キャプチャーアプリケーション442、及びOS（オペレーティングシステム）440といったプログラムが格納されている。なお、外部記憶装置44は、画像読取装置3で読み取られ転送されてくる画像データを記憶可能である。
【００１４】
スキャナドライバ441は、画像読取装置3を制御するためのプログラムである。キャプチャーアプリケーション442は、画像読取装置3で複数の原稿から順次読み取られた画像データをページ単位で外部記憶装置44に順次保存させる保存処理が可能である。また、キャプチャーアプリケーション442は、前記保存処理とは非同期で、前記順次保存された画像データに基づく画像を出力装置45に保存順に順次表示させる。出力装置45は、外部記憶装置44に保存された画像データに基づく画像を表示可能なディスプレイ等である。入力装置46はキーボードやマウスあるいはタッチパネル等で構成される。
なお、画像読取装置3の構成については図２を用いて説明する。
【００１５】
＜画像読取装置3の構成＞
図２は、画像読取装置3の構成の一例を示す概略図である。
図３は、画像読取装置3の構成の一例を示す断面図である。
図４は、画像読取装置3の構成の一例を示す平面図である。
【００１６】
図２に示す通り、画像読取装置3は、RAM3a、ROM3b、CPU3c、モータ3d、画像処理回路3f、表面読取ユニット2e、裏面読取ユニット2f、操作部3g及び転送部3eを備えている。
RAM3aは、CPU3cの作業領域、読み取り画像を操作部3gに表示する場合の表示用のメモリ、読み取り画像を情報処理装置4に転送する場合のバッファメモリ等として用いられる。RAM3aは、例えば、原稿の表面を読み取る表面読取ユニット2e、裏面を読み取る裏面読取ユニット2fで読み取った画像等を一時的に記憶しておく。なお、上述した表示用のメモリやバッファメモリをRAM3aとは別に備えていてもよい。
CPU3cは、ROM3b等に格納されたプログラムに従って画像読取装置3全体を制御する。
【００１７】
図３に示す通り、表面読取ユニット2eは、原稿の表面を読み取り、裏面読取ユニット2fは、原稿の裏面を読み取るように、原稿搬送路方向に対してずらして対向するように配置されている。画像処理回路3fは、読み取りユニット2e，2fから読み取られた画像にガンマ補正やエッジ強調などの周知の画像処理を行う。モータ3dは、図５に示すような、原稿を搬送するためのローラ（後述する2a、2b、2c、2d等）を駆動する。
【００１８】
転送部3eは、情報処理装置4とデータのやりとりを行う回路であり、読み取り画像は、この転送部3eによって情報処理装置4へ出力される。
操作部3gは、画像読取装置3を操作するための操作部であり、図４に示すように、タッチパネル付きディスプレイ3h、電源ボタン3i等を有する。
【００１９】
図５は、原稿搬送路上の表面読取ユニット2eと裏面読取ユニット2fの配置を例示する図である。
図５において、矢印の方向から搬送された原稿は、表面読取ユニット2eにより表面の画像が読み取られ、裏面読取ユニット2fにより裏面の画像が読み取られる。表面読取ユニット2eと裏面読取ユニット2fは、互いの照射光が影響を与えないような位置に、原稿搬送路方向に対してずらして配置されている。画像読取の開始は、原稿搬送路上に配置された用紙検知センサ2gの信号がオンしてから所定の時間経過したタイミングである。また、読取の終了も、用紙検知センサ2gの信号がオフしてから所定の時間経過したタイミングである。本実施例では表面読取ユニット2eの方が原稿搬送路上の上流に配置しているため、裏面読取ユニット2fよりも先に読み取りを開始して、先に読み取りを終了する。但し、同時に読取を開始、終了するように制御しても良い。
【００２０】
以下、画像読取装置3が読み取った画像をキャプチャーアプリケーション442がファイルに保存する処理と画面に表示する処理を行うシーケンスの概要について図６に従って説明する。
図６は、第１実施形態において画像読取装置3で読み取った画像の情報処理装置4のキャプチャーアプリケーション442によるファイル保存と表示処理の一例を示すフローチャートである。図６及び図７〜図９に示すフローチャートの処理は、情報処理装置4のCPU40が外部記憶装置44に格納されるキャプチャーアプリケーション442のプログラムをRAM42にロードして実行することにより実現される。
【００２１】
図１０は、ユーザＩ／Ｆ部としての出力装置45に表示される読取設定画面の一例を示す図である。この画面は、例えばキャプチャーアプリケーション442を起動することにより表示される。
ユーザは、読取設定画面2100から画像読取装置3に対して読取設定を行って原稿読み取りの開始を指示することができる。読取設定画面2100には、スキャンサイズ設定ボタン2101（自動・A4・A5・・・等を設定できる）、スキャン解像度設定ボタン2102（300dpi・400dpi・600dpiを設定できる）、スキャンモード設定ボタン2103（両面・片面）、スキャンカラーモード設定ボタン2104（カラー・グレー・白黒）、スキャン画像の保存設定ボタン2105（例えば形式はPNG・JPG・PDF等を設定でき、保存ファイルの名前を設定することができる）、スキャン中にスキャンした画像を表示する画像表示間隔設定ボタン2106（0から1分まで「0.01」秒単位で指定することができる）、スキャン開始ボタン2107等が設けられている。
読取設定画面2100のスキャン開始ボタン2107が押された時に、CPU40は、図１０のスキャン設定2101〜2104までのスキャン設定値を取得し、スキャンドライバ441を通じて画像読取装置３に読み取り設定値を送信し、読み取り開始を指示する。さらに、CPU40は、スキャン画像の保存設定ボタン2105及び画像表示間隔設定ボタン2106等の設定値を取得し、キャプチャーアプリケーション442を起動して、後述する図１１に示す画面を出力装置45に表示し、図６のフローチャートの処理を開始する。
【００２２】
ステップS101において、CPU40は、RAM42や外部記憶装置44等に格納される、上述した読取設定画面2100の画像表示間隔設定部2106によって設定された画像を表示する間隔の設定値に基づき、画面にスキャン画像を表示する間隔（画像表示間隔）を表すグローバル変数g_displayTimeを初期化する。
なお、後述する図１１に示すキャプチャーアプリケーション442の画面には、読み取った画像を表示するための画像表示領域7b、ユーザが画像表示間隔を指定するための指定部7a等が設けられている。ユーザは、指定部7aから画像表示間隔を0から１分まで「0.01」秒単位で指定することができる。上述した画像表示間隔設定部2106及び指定部7aは、画像表示間隔を数値入力する構成でもよいし、選択肢から選択可能な構成でもよい。また、高速、中速、低速等から選択可能にし、高速、中速又は低速に対応する値が指定される構成でもよい。なお、ユーザからの画像表示間隔の指定がない場合、CPU40は、外部記憶装置44に格納されているデフォルト値でg_displayTimeを初期化する。また、画像表示間隔は、ユーザにより任意のタイミングで指定変更可能（スキャンの途中でも指定可能）である。また、ユーザにより指定された画像表示間隔でデフォルト値が変更されるように構成してもよい。さらに、ユーザ毎にデフォルト値を設けてもよい。
【００２３】
次にステップS102において、CPU40は、後述する「画像保存スレッド」が外部記憶装置44等に保存した画像ファイルの数をカウントするグローバル変数g_currentSaveIMGCountを「0」に初期化する。
【００２４】
次にステップS103において、CPU40は、後述する「画像保存スレッド」がスキャンした画像を全て保存したか否かを表すグローバル変数g_isSaveIMGEndを「false」に初期化する。g_isSaveIMGEndが「false」の場合にはスキャンした画像の保存がまだ終了しないことを意味し、「true」の場合にはスキャンした画像を全て保存したことを意味する。
【００２５】
次にステップS104において、CPU40は、「画像保存スレッド」を作成する。詳細は後述するが、画像保存スレッドは、画像処理装置3から転送される画像を、例えば黒枠消しなどの所定の処理を行った後、JPEGなどの所定のファイル形式でファイルに保存する。画像保存スレッドは、この処理を可能な限り高速で繰り返し行い、全ての画像を保存したらスレッドを終了する。
【００２６】
またステップS105において、CPU40は、「画像表示コントロールスレッド」を作成する。詳細は後述するが、画像表示コントロールスレッドは、後述する「画像表示画面管理スレッド」に画像を表示する画面にユーザが指定した間隔で画像を表示することを指示するスレッドである。また、画像表示コントロールスレッドは、「画像表示画面管理スレッド」から画像を表示する間隔の変更が指定された場合、指定された表示間隔を反映しコントロールする。画像表示コントロールスレッドは、全ての画像について「画像表示画面管理スレッド」に表示の指示を行ったらスレッドを終了する。
【００２７】
さらにステップS106において、CPU40は、「画像表示画面管理スレッド」を作成する。詳細は後述するが、画像表示画面管理スレッドは、「画像表示コントロールスレッド」からの画像を表示する指示に従って画面に画像を表示する。また、画像表示画面管理スレッドは、画像表示する画面から画像を表示する間隔の変更が指定された場合、指定された値に表示間隔を変更し、画像表示コントロールスレッドに対して変更を指定する。画像表示画面管理スレッドは、「画像表示コントロールスレッド」から画像表示指示の完了を通知されたら、スレッドを終了する。
【００２８】
次にステップS107において、CPU40は、画像保存スレッドの終了を確認する。画像保存スレッドがまだ終了していないと判定した場合（ステップS107でNoの場合）、CPU40は、ステップS107の処理を繰り返す。
一方、画像保存スレッドが終了したと判定した場合（ステップS107でYesの場合）、CPU40は、ステップS108に処理を進める。
【００２９】
ステップS108において、CPU40は、画像表示コントロールスレッドの終了を確認する。画像表示コントロールスレッドがまだ終了していないと判定した場合（ステップS108でNoの場合）、CPU40は、ステップS108の処理を繰り返す。
一方、画像表示コントロールスレッドが終了したと判定した場合（ステップS108でYesの場合）、CPU40は、ステップS109に処理を進める。
【００３０】
ステップS109において、CPU40は、画像表示画面管理スレッドの終了を確認する。画像表示画面管理スレッドがまだ終了していないと判定した場合（ステップS109でNoの場合）、CPU40は、ステップS108の処理を繰り返す。
一方、画像表示画面管理スレッドが終了したと判定した場合（ステップS109でYesの場合）、CPU40は、本フローチャートの処理を終了する。
【００３１】
なお、上述した各グローバル変数g_displayTime、g_currentSaveIMGCount及びg_isSaveIMGEndは、後述する画像保存スレッド、画像表示コントロールスレッド、画像表示画面管理スレッドからデータをセットしたりゲットしたりすることができる変数である。また、スレッド同士は、メッセージを利用し、命令を通知することができる。
【００３２】
＜画像保存スレッドの説明＞
以下、画像保存スレッドの詳細処理について図７に従って説明する。
図７は、第１実施形態において画像保存スレッドの処理の一例を示すフローチャートである。
【００３３】
ステップS201において、CPU40は、画像処理装置3に原稿があるかないかを確認する。原稿があると判定した場合（ステップS201でYesの場合）、CPU40はS202に処理を進める。一方、原稿がないと判定した場合（ステップS201でNoの場合）、CPU40はS205に処理を進める。
【００３４】
ステップS202において、CPU40は、画像処理装置3から画像を取得する。次いでステップS203において、CPU40は、上記ステップS202で取得した画像処理装置3から転送された画像を保存する。例えば、本実施例では、図２１の読取設定画面2100で読取面を「両面」、ファイルの保存先を「c:\Temp」、ファイル名を「4桁のスキャンカウンタ値」、ファイル形式を「Jpeg」にそれぞれ指定していた場合、CPU40は、ファイル名「c:\Temp\0001F.jpg」として表面画像データを保存し、ファイル名「c:\Temp\0001B.jpg」として裏面画像データを保存する。
【００３５】
次にステップS204において、CPU40は、上記ステップS203で保存した画像ファイルの数をカウントするグローバル変数g_currentSaveIMGCountをインクリメントし、ステップS201に処理を戻す。
【００３６】
ステップS205において、CPU40は、スキャンした画像を全て保存したか否かを表すグローバル変数g_isSaveIMGEndに「true」をセットし、画像保存スレッドを終了する。
【００３７】
＜画像表示コントロールスレッドの説明＞
以下、画像表示コントロールスレッドの詳細処理について図８に従って説明する。
図８は、第１実施形態において画像表示コントロールスレッドの処理の一例を示すフローチャートである。
【００３８】
ステップS301において、CPU40は、「画像表示画面管理スレッド」に表示画像を通知した画像をカウントする変数currentSendShowIMGを「0」に初期化する。
【００３９】
次にステップS302において、CPU40は、表示画像を通知した画像カウントする変数currentSendShowIMGと保存した画像ファイルの数をカウントするグローバル変数g_currentSaveIMGCountを比較する。currentSendShowIMG ＜ currentSaveIMGCountと判定した場合（ステップS302でNoの場合）、CPU40は、ステップS303に処理を進める。
【００４０】
ステップS303において、CPU40は、「画像表示画面管理スレッド」に画像の表示を通知する。
次にステップS304において、CPU40は、表示画像を通知した画像をカウントする変数currentSendShowIMGをインクリメントする。
次にステップS305において、CPU40は、スキャン画像を表示する間隔を表すグローバル変数g_displayTime時間を待ち、ステップS302に処理を戻す。
【００４１】
また上記ステップS302において、CPU40が、currentSendShowIMG ≧ currentSaveIMGCountと判定した場合（ステップS302でYesの場合）、ステップS306に処理を進める。
ステップS306において、CPU40は、スキャンした画像を全て保存したか否かを表すグローバル変数g_isSaveIMGEndが「true」であるかを確認する。g_isSaveIMGEndが「false」であると判定した場合（ステップS306でNoの場合）、CPU40は、ステップS302に処理を戻す。
【００４２】
一方、g_isSaveIMGEndが「true」であると判定した場合（ステップS306でYesの場合）、CPU40は、ステップS307に処理を進める。
ステップS307において、CPU40は、後述する画像表示画面管理スレッドに画像表示の完了を通知し、画像表示コントロールスレッドの処理を終了する。
【００４３】
＜画像表示画面管理スレッドの説明＞
以下、画像表示画面管理スレッドの詳細処理について図９、図１１を用いて説明する。
図９は、第１実施形態において画像表示画面管理スレッドの処理の一例を示すフローチャートである。
図１１は、第１実施形態においてスキャン画像を表示中の画面（スキャン画像表示画面）の一例を示す図であり、CPU40の制御により出力装置45に表示された状態を示している。
【００４４】
ステップS401において、CPU40は、「画像表示コントロールスレッド」から画像を表示する通知があったか確認する。通知があったと判定した場合（ステップS401でYesの場合）、CPU40は、ステップS402に処理を進める。一方、通知がないと判定した場合（ステップS401でNoの場合）、CPU40は、ステップS403に処理を進める。
【００４５】
ステップS402において、CPU40は、「画像表示コントロールスレッド」から表示を通知された画像を、図１１の画像表示領域7bに表示する。この際、CPU40は、ファイルの保存先（例えば「c:\Temp」）に所定の規則に基づくファイル名で順次保存されるファイル（例えばファイル名が「4桁のスキャンカウンタ値」、ファイル形式が「Jpeg」）のうち、未表示のファイルのうち一番古いファイルを、表示通知に対応するファイルとする。また、画像表示画面管理スレッドに不図示のカウンタを設け、表示通知がある毎に該カウンタをカウントアップし、該カウンタ値に基づいて表示通知に対応するファイルを特定する構成でもよい。また、「画像表示コントロールスレッド」でカウントアップされるcurrentSendShowIMGをグローバル変数とし、currentSendShowIMGの値に基づいて表示通知に対応するファイルを特定する構成でもよい。
ステップS402の処理の後、CPU40は、ステップS403に処理を進める。
【００４６】
ステップS403において、CPU40は、図１１の画像表示間隔部7aから、画像表示間隔の変更の指示があったか否かを確認する。画像表示間隔の変更の指示がないと判定した場合（ステップS403でNoの場合）、CPU40は、ステップS405に処理を進める。なお、画像表示間隔の変更は、図１０の読取設定画面2100で行ってもよい。また、画像表示間隔の変更は、上述のスキャン途中以外に、上述したように、スキャン開始前に変更することが可能である。
【００４７】
一方、画像表示間隔の変更の指示があったと判定した場合（ステップS403でYesの場合）、CPU40は、ステップS404に処理を進める。
ステップS404において、CPU40は、画面にスキャン画像を表示する間隔を表すグローバル変数g_displayTimeを、指示された値に変更し、ステップS405に処理を進める。
【００４８】
ステップS405において、CPU40は、「画像表示コントロールスレッド」から画像表示の完了が通知されたか否かを確認する。画像表示の完了が通知されていないと判定した場合（ステップS405でNoの場合）、CPU40は、ステップS401に処理を戻す。
一方、画像表示の完了が通知されたと判定した場合（ステップS405でYesの場合）、CPU40は、画像表示画面管理スレッド終了する。
【００４９】
以下、図１２を参照して、本実施形態の効果について説明する。
図１２は、両面スキャン時の表示タイミングを示す図である。
従来のキャプチャーアプリケーションは、スキャナから転送された画像に対するファイルへの保存と表示を同期して処理するようなシーケンスになっていた。このため、従来では、画像が表示される間隔が、スキャナから転送された画像の保存間隔に依存していた。例えば両面スキャンの場合、図１２（ａ）に示すように、表面画像が表示されてから裏面画像が表示されまでの時間が非常に短く、ユーザはスキャンした画像が正しいかどうかを確認することが困難であった。
これに対して、本実施形態では、図１２（ｂ）に示すように、画像が表示される間隔を、ユーザの所望の間隔に設定できるため、ユーザはスキャンした画像が正しいかどうかをユーザの所望のペースで確認することができる。なお、本実施形態における画像表示間隔を所望の間隔（一定の間隔）に設定された表示状態は第１の表示状態の一例である。
【００５０】
以上のように、第１実施形態の画像表示システムによれば、高速で読み取りを行うスキャナ（例えば原稿を高速で搬送し且つ表面と裏面を1度の搬送で読み取る両面スキャナ）を用いて複数の原稿の読み取りを行う場合でも、スキャナで画像を読み取りつつ、読み取った画像をユーザの所望の間隔で順次表示させて確認することが可能となる。もしくは、表面と裏面とで表示間隔を同等にすることができるため確認が容易となる。
【００５１】
なお、上記実施形態では、読み取り画像全体をキャプチャーアプリケーション442で表示させる構成について説明したが、画像の一部の領域を拡大表示してユーザに確認させるように構成してもよい。例えば、ユーザにより指定された領域を拡大表示するように構成してもよい。また、画像内に含まれる所定のオブジェクト画像（例えばバーコード画像）を検索して該画像を含む領域を拡大表示するように構成してもよい。この構成の場合、「画像保存スレッド」がステップS202で表示用の画像を生成しておく構成でもよいし、「画像表示画面管理スレッド」がステップS402で表示用の画像を生成して表示する構成でもよい。さらに、バーコード等を含む領域を拡大表示させる場合、バーコード等を解析し、その解析結果も表示するようにしてもよい。この構成により、高速で読み取り可能なスキャナを用いる場合でも、スキャナで画像を読み取りつつ、読み取った画像の一部の領域又は所定のオブジェクトを含む領域を１画像ずつユーザの所望の表示間隔で順次拡大表示させて確認することが可能となる。
【００５２】
また、図１１に示したスキャン画像表示画面に不図示の表示スキップ（省略）ボタンを設け、この表示スキップボタンが押下された場合、例えば、画像表示画面管理スレッドが、それ以降の画像表示を行わないように制御する、又は、スレッドを終了するように構成してもよい。また、スキップボタンが押下された場合、画像表示コントロールスレッドが、「画像表示画面管理スレッド」に、画像表示の通知を行わない、又は、画像表示の完了の通知を行うようにしてもよい。このような構成により、スキャナで画像を読み取りつつ、読み取った画像を１画像ずつユーザの所望の表示間隔で順次表示させて確認し、ユーザの必要に応じて表示を省略することが可能となる。
【００５３】
また、表面画像を保存してから裏面画像を保存するまでの間隔と、裏面画像を保存してから表面画像を保存するまでの間隔を平均して、該平均した間隔で画像の表示間隔を変更するように構成してもよい。すなわち、外部記憶装置44に順次画像データが保存される間隔の平均値に画像の表示間隔を変更するようにしてもよい。例えば、画像表示画面管理スレッドは、スキャン開始時にはデフォルトの表示間隔を設定し、その後、順次表示する画像の保存時間の間隔を平均して、該平均値を用いて表示間隔を変更するようにしてもよい。また、例えば、画像表示画面管理スレッドは、「画像表示コントロールスレッド」からの画像表示指示を受け取った間隔を平均して、該平均値を用いて表示間隔を変更するようにしてもよい。このような構成により、スキャナで画像を読み取りつつ、読み取った画像を１画像ずつ所定の表示間隔で順次表示させて確認し、ユーザの必要に応じて表示を省略することが可能となる。なお、平均値に限らず、デフォルトの表示間隔で表示しながら表示間隔を変更するように構成しても良い。
【００５４】
また、複数のモードを設け、画像表示画面管理スレッドが、設定された表示モードに応じて表示間隔を制御する構成でもよい。例えば、ユーザ指定の表示間隔で画像表示するモード、上述の平均した間隔を用いるモード、開始から第１枚数までは第１表示間隔で表示し、第２枚数から第３枚数までは第２表示間隔（第１表示間隔より短い）で表示し、第３枚数より後には第３表示間隔（第２表示間隔より短い）で表示するモード等を設けてもよい。さらに、上述の指定領域を拡大表示するモード、所定のオブジェクトを含む領域を拡大表示するモード等を設け、上記表示間隔のモードと組み合わせ可能にしてもよい。この構成により、スキャナで画像を読み取りつつ、読み取った画像を１画像ずつ指定モードに応じた表示間隔で順次表示させて確認することが可能となる。
【００５５】
また、上記説明では、１度に表示する画像を1画像にした例を挙げているが、例えば両面スキャンの場合2画像（表面画像と裏面画像）を同時に表示する、といったように複数の画像を１度に表示しても構わない。本実施形態では、画像の表示間隔をユーザが変更できるので、２画像を同時に表示する構成でも、詳細に読取画像を確認することが可能となる。
【００５６】
なお、画像読取装置３にキャプチャーアプリケーション442と同様のキャプチャーアプリケーションを実装してもよい。例えば、画像読取装置3のCPU3cがROM3bに格納された上述のキャプチャーアプリケーションを読み出して実行することにより、画像読取装置3で読み取った画像を上述と同様の制御により操作部3gに順次表示するようにしてもよい。
【００５７】
〔第２実施形態〕
以下、第２実施形態について説明するが、第１実施形態と同一の構成については省略し、異なる構成のみを説明する。
図１３は、第２実施形態において、画像読取装置3が読み取った画像をキャプチャーアプリケーション442がファイルに保存する処理と画面に表示する処理とを非同期に行うシーケンスの概要を示す図である。まず図１３を用いて、このシーケンスの概要について説明する。
【００５８】
第２実施形態のキャプチャーアプリケーション442には、2つのスレッドが存在する。「スレッド1」は自身が起動したメインスレッドであり、オペレータからの指示の受付や画像の表示を行う。「スレッド2」はスキャンスレッドであり、オペレータからのスキャン指示を受け付けたメインスレッドによって生成されたスレッドである。
【００５９】
スキャンスレッドでは、スキャナから転送される画像を、例えば黒枠消しなどの所定の処理を行った後、JPEGなどの所定のファイル形式でファイルに保存する。スキャンスレッドでは、この処理を可能な限り高速で繰り返し行い、全ての画像を読み取ったらスレッドを終了する。
一方、メインスレッドでは、スキャンスレッドが画像をファイルに保存するタイミングとは無関係に、メインスレッドの所定のタイミングでファイルに保存された画像を読み出して表示する。
このように読み取った画像をファイルに保存する処理と表示する処理とを別々のスレッドで行うことで非同期を実現している。
【００６０】
ここで上記スレッド2に相当する、本実施例のキャプチャーアプリケーション442のスキャンスレッドのシーケンスについて、図２０のフローチャートと図２８を用いて説明する。
図２０は、第２実施形態におけるスキャンスレッドの処理の一例を示すフローチャートである。なお、図１８、図１９及び図２０〜図２７に示すフローチャートの処理は、情報処理装置4のCPU40が外部記憶装置44に格納されるキャプチャーアプリケーション442のプログラムをRAM42にロードして実行することにより実現される。
図２８は、第２実施形態における管理テーブルの一例を示す図である。
【００６１】
本実施形態では、スキャンスレッドが生成されてから消滅するまでを「スキャン中」と定義する。スキャン中であることを示すスキャン中フラグ（bScan_f）変数を用意して、スキャン中フラグ（bScan_f）をスキャンスレッドの開始直後に「TRUE」、終了直前に「FALSE」にしている。これにより、上記スレッド1に相当する、後述するメインスレッドは、このスキャン中フラグ（bScan_f）を確認することでスキャン中か否かを判断できる。
【００６２】
図２０のステップS700において、CPU40は、スキャン中フラグ（bScan_f）を「TRUE」にする。
次にステップS705において、CPU40は、画像読取装置3により読み取られた画像をファイルに保存した数をカウントするスキャンカウンタ（Scan_Counter）を「0」、そのスキャンカウンタ値とファイル名をセットにしてリストで記憶しておく管理テーブル（File_List）を空に初期化する。なお、スキャン中フラグ（bScan_f）、スキャンカウンタ（Scan_Counter）、管理テーブル（File_List）は、他のスレッドから参照、更新可能なものである。
【００６３】
ところで、後述する「メインスレッド」は、オペレータからのスキャン停止の指示を受け付けることができる。キャプチャーアプリケーション442は、メインスレッドで、このスキャン停止の指示をスキャン停止フラグ（bScanStop_f）変数に格納している。スキャンスレッドがスキャン中に、このスキャン停止フラグ（bScanStop_f）を参照することでスキャンを停止することができる。
【００６４】
次にステップS710において、CPU40は、スキャン停止が指示されているかどうかを確認する。スキャン停止が指示されていないと判定した場合（ステップS710でNoの場合）、CPU40は、ステップS720に処理を進める。
ステップS720において、CPU40は、読み取っていない次画像があるかどうかを確認する。読み取っていない次画像があると判定した場合（ステップS720でYesの場合）、CPU40は、ステップS730に処理を進める。
ステップS730において、CPU40は、画像を取得してファイルに保存し、ステップS740に処理を進める。
ステップS740において、CPU40は、スキャンカウンタ（Scan_Counter）をインクリメントし、ステップS750に処理を進める。
【００６５】
ステップS750において、CPU40は、ステップS740でインクリメントしたスキャンカウンタ値とステップS730で作成したファイル名をセットにして管理テーブル（File_List）に追加する。
例えば、本実施形態では、不図示のスキャン設定で読取面を「両面」、ファイルの保存先を「c:\temp」、ファイル名を「4桁のスキャンカウンタ値」、ファイル形式を「Jpeg」にそれぞれ指定して、原稿5枚をスキャンするものとする。キャプチャーアプリケーション442は、上記スキャン設定でスキャンをすると、最初に読み取った画像を、スキャンカウント値「1」、ファイル名「c:\Temp\0001.jpg」として、管理テーブル（File_List）に追加して管理する。
【００６６】
そして以下、2番目に読み取った画像：スキャンカウント値「2」、ファイル名「c:\Temp\0002.jpg」、3番目に読み取った画像：スキャンカウント値「3」、ファイル名「c:\Temp\0003.jpg」、4番目に読み取った画像：スキャンカウント値「4」、ファイル名「c:\Temp\0004.jpg」、・・・、10番目に読み取った画像：スキャンカウント値「10」、ファイル名「c:\Temp\0010.jpg」のように、読み取った順に、順次管理テーブル（File_List）に追加して、読み取った順番とファイル名を管理していく。
【００６７】
このようにして管理テーブル（File_List）は、スキャン中に随時追加され、スキャンが終了したときに、読み取った全ての画像が管理される。スキャン後の管理テーブル（File_List）の具体例を図２８に示す。この管理テーブル（File_List）は、後述するメインスレッドの画像表示時に使用される。
【００６８】
なお、上記ステップS750の処理の後、CPU40は、ステップS710に処理を戻す。
上記ステップS710において、スキャン停止が指示されていると判定した場合（ステップS710でYesの場合）、CPU40は、ステップS760に処理を進める。
また上記ステップS720において、次画像が存在しないと判定した場合（ステップS720でNoの場合）、CPU40は、ステップS760に処理を進める。
ステップS760において、CPU40は、スキャン中フラグを「FALSE」にし、スキャンスレッドを終了する。
【００６９】
以上説明した通り、スキャンスレッドは、画像表示を意識することなく、画像読取装置3が読み取った画像を順次ファイルに保存して、管理テーブル（File_List）を作成している。以上が、読み取った画像をファイルに保存するスキャンスレッドのシーケンスについての説明である。
【００７０】
以下、第２実施形態のキャプチャーアプリケーション442のメインスレッドのシーケンスについて説明する。
図１８は、第２実施形態におけるキャプチャーアプリケーション442のメインスレッドの処理のうち画像表示部分の処理を例示するフローチャートである。
図１９は、第２実施形態におけるキャプチャーアプリケーション442のメインスレッドの全体の処理を例示するフローチャートである。
【００７１】
まず、キャプチャーアプリケーション442のメインスレッドのシーケンスのうち、スキャンした画像を順次表示するシーケンスを、図１８のフローチャートに従って説明する。
キャプチャーアプリケーション442は、前述したスキャン中フラグ（bScan_f）、スキャンカウンタ（Scan_Counter）、管理テーブル（File_List）、スキャン停止フラグ（bScanStop_f）のほかに、表示している画像を示す表示カウンタ（Disp_Counter）と、スキャン中に画像表示を一時的に停止するかどうかを記憶するための表示停止フラグ（bDispStop_f）変数を用意している。なお、表示カウンタ（Disp_Counter）、表示停止フラグ（bDispStop_f）も、他のスレッドから参照、更新可能なものである。
【００７２】
本実施形態では、上述した図１０に示した読取設定画面2100のスキャン開始ボタン2107が押下されると、情報処理装置4のCPU40は、図１０のスキャン設定2101〜2104までのスキャン設定値を取得し、スキャンドライバ441を通じて画像読取装置３に読み取り設定値を送信する。さらに、CPU40は、スキャン画像の保存設定ボタン2105及び画像表示間隔設定ボタン2106等の設定値を取得し、キャプチャーアプリケーション442を起動して、後述する図１４に示す画面を出力装置45に表示し、図１８及び図１９に示すメインスレッドの処理を開始する。
【００７３】
図１８のステップS600において、CPU40は、上記の各変数（bScan_f、Scan_Counter、Disp_Counter、bScanStop_f、bDispStop_f、File_List等）の初期化を行い、それぞれに以下の初期値を設定する。
・スキャン中フラグ（bScan_f）に「FALSE」を設定する。
・スキャンカウンタ（Scan_Counter）に「0」に設定する。
・表示カウンタ（Disp_Counter）に「0」に設定する。
・スキャン停止フラグ（bScanStop_f）に「FALSE」に設定する。
・表示停止フラグ（bDispStop_f）に「FALSE」に設定する。
・管理テーブル（File_List）を「空」にする。
【００７４】
後述する図１４に示すキャプチャーアプリケーション442の画面には、スキャン開始を指示するためのスキャン開始ボタン5aと読み取った画像を表示するための画像表示領域5bが備えられている。
ステップS601において、CPU40は、スキャン開始が指示されたか否かを判定する。CPU40は、スキャン開始ボタン5a押下を検知した場合にスキャン開始が指示されたと判定するものとする。
【００７５】
上記ステップS601において、CPU40は、スキャン開始が指示されていないと判定した場合（ステップS601でNoの場合）、そのままステップS640に処理を進める。
一方、CPU40が、スキャン開始ボタン5aが押下されたことを検知した場合、スキャン開始が指示されたと判定し（ステップS601でYesと判定し）、ステップS607に処理を進める。
【００７６】
ステップS607において、CPU40は、後述する図２１に示すスキャン開始時の処理を実行する。スキャン開始時の処理についての詳細は後述するが、主な処理は、スキャンスレッドの生成と、表示カウンタ（Disp_Counter）を「0」に初期化することである。このスキャン開始時の処理によって、スキャンスレッドが生成され、スキャンが開始される。
図２０で説明したように、スキャンスレッドでは、スキャンカウンタ（Scan_Counter）を「0」に、管理テーブル（File_List）を「空」に初期化後、スキャンを開始して、読み取った画像をファイルに保存する。そしてそのたびに、スキャンカウンタ（Scan_Counter）と管理テーブル（File_List）を更新する。
【００７７】
CPU40は、スキャン開始時の処理（ステップS607）を実行した後、ステップS640に処理を進める。
ステップS640において、CPU40は、読み取った最後の画像を表示しているか否かを確認する。最後の画像を表示しているかどうかは、表示カウンタ（Disp_Counter）がスキャンカウンタ（Scan_Counter）より小さいかどうかで判定する。スキャンカウンタ（Scan_Counter）はスキャンスレッドで更新されるのに対して、表示カウンタ（Disp_Counter）はメインスレッドで画像を表示したときに更新される。ステップS607の処理を終えた時点でスキャンが開始されており、例えば、現時点で読み取った2つの画像をファイルに保存していたとすると、スキャンカウンタ（Scan_Counter）は「2」になっている。これに対して、メインスレッドではまだ画像を表示していなければ、表示カウンタ（Disp_Counter）は初期値「0」のままになっている。このように、表示カウンタ（Disp_Counter）がスキャンカウンタ（Scan_Counter）より小さければ、読み取った最後の画像を表示していないと判断できる。またCPU40は、キャプチャーアプリケーション442の起動直後の場合、スキャンカウンタ（Scan_Counter）と表示カウンタ（Disp_Counter）がともに「0」になるので、最終画像を表示していると判断（ステップS640でYes）する。
【００７８】
上記ステップS640において、読み取った最後の画像を表示していないと判定した場合（ステップS640でNoの場合）、CPU40は、ステップS643に処理を進める。
ステップS643において、CPU40は、次ページの表示処理を行う。読み取った画像の表示は、この次ページの表示処理（ステップS643）によって更新される。
【００７９】
ここで図２６を用いて、次ページの表示処理（ステップS643）について説明する。
図２６は、第２実施形態における次ページの表示処理の一例を示すフローチャートである。
まずステップS1300において、CPU40は、読み取った最後の画像を表示しているか否かを判定する。最後の画像を表示していると判定した場合（ステップS1300でYesの場合）、CPU40は、そのまま本フローチャートの処理を終了する。
【００８０】
一方、読み取った最後の画像を表示していないと判定した場合（ステップS1300でNoの場合）、CPU40は、ステップS1301に処理を進める。
ステップS1301において、CPU40は、表示カウンタ（Disp_Counter）をインクリメントし、ステップS1302に処理を進める。
【００８１】
ステップS1302において、CPU40は、表示カウンタ（Disp_Counter）に対応する画像を表示する。表示カウンタ（Disp_Counter）に対応する画像は、管理テーブル（File_List）から保存先のファイル名を特定して、そのファイルを読み込むことで取得できる。表示対象となるファイル名は表示カウンタ（Disp_Counter）の値と一致するスキャンカウンタ（Scan_Counter）の値に対応したファイル名となる。例えば、表示カウンタ（Disp_Counter）が「1」の場合、これに対応するスキャンカウンタ（Scan_Counter）の値が「1」となり、ファイル名「C:\Temp\0001.jpg」が表示対象の画像ファイルに該当する。CPU40は、表示対象の画像ファイルを外部記憶装置44からRAM42に読み込み、JPEG圧縮データを非圧縮データに展開するなど必要な処理をして、画像表示領域5bに画像を表示する。
ステップS1302の処理の後、CPU40は、本フローチャートの処理を終了する。
以上、次ページの表示処理（ステップS643）の説明を終了する。
【００８２】
以下、図１８のフローチャートの説明に戻る。
上記次ページの表示処理（ステップS643）の後、CPU40は、ステップS650に処理を進める。
また、上記ステップS640において、読み取った最後の画像を表示していると判定した場合（ステップS640でYesの場合）、CPU40は、ステップS650に処理を進める。
【００８３】
ステップS650において、CPU40は、スキャン中であるか否かを判定する。スキャン中フラグ（bScan_f）が「TRUE」の場合、CPU40は、スキャン中であると判定し（ステップS650でYesと判定し）、ステップS601に処理を戻し、上述の処理を繰り返し行うように制御する。
一方、スキャン中フラグ（bScan_f）が「FALSE」の場合、CPU40は、スキャン中でないと判定し（ステップS650でNoと判定し）、ステップS660に処理を進める。
【００８４】
ステップS660において、CPU40は、キャプチャーアプリケーション442の終了か否かを判定する。CPU40は、オペレータによる不図示の終了ボタンの押下を検知した場合、キャプチャーアプリケーション442の終了と判定する。キャプチャーアプリケーション442の終了でないと判定した場合（ステップS660でNoの場合）、CPU40は、ステップS601に処理を戻す。
一方、キャプチャーアプリケーション442の終了と判定した場合（ステップS660でYesの場合）、CPU40は、メインスレッドを終了する。この場合、CPU40は、最後の画像を表示していなくてもメインスレッドを終了する。
以上、メインスレッドのシーケンスのうち、スキャンした画像を順次表示するシーケンスについて説明した。
【００８５】
次に、スキャンした画像を順次表示するシーケンスに加え、スキャン中に画像表示を一時停止するシーケンス、及び表示一時停止中に次ページ又は前ページの画像を表示するシーケンスを含んだ、メインスレッド全体のシーケンスについて、図１９、図２１〜図２７のフローチャートに従って説明する。
【００８６】
そのまえに、キャプチャーアプリケーション442の状態遷移について、図１４〜図１７の画面遷移図に従って説明する。
図１４〜図１７は、キャプチャーアプリケーション442の画面の一例を示す図である。
図１４〜図１７に示すように、キャプチャーアプリケーション442は、スキャン開始／停止を指示するためのスキャン開始／停止ボタン5aと、スキャンした画像を表示する画像表示領域5bと、画像表示を一時停止／再開する表示一時停止／再開ボタン5c、次のページを表示する次ページボタン5d、前のページを表示する前ページボタン5eを備えており、「スキャン前状態」、「スキャン中状態」、「表示一時停止状態」、「スキャン後状態」がある。
【００８７】
図１４に、キャプチャーアプリケーション442の起動直後の「スキャン前状態」の画面（以下「スキャン前画面」）を示す。オペレータがキャプチャーアプリケーション442を起動したときに表示されるスキャン前画面では、スキャン開始前なのでスキャン開始／停止ボタン5aの名称が「スキャン開始」と表示される。また、スキャン前画面では、画像を表示していないので、一時停止ボタン5c、次ページボタン5d、前ページボタン5eが無効になっている。このスキャン前状態は、オペレータがスキャン開始／停止ボタン5aを押下するのを待っている状態である。
【００８８】
図１５に「スキャン中状態」の画面（以下「スキャン中画面」）を示す。オペレータがスキャン前画面においてスキャン開始／停止ボタン5aを押下すると、「スキャン中状態」に遷移する。スキャン中画面では、スキャン開始／停止ボタン5aの名称が「スキャン停止」と表示され、オペレータがスキャン停止を指示するためのボタンになる。そして画像表示領域5bに読み取った画像が、前述したシーケンスに従って表示される。「スキャン中状態」では、随時画像表示しており、この表示を一時停止するために表示一時停止／再開ボタン5cを有効にする。オペレータは表示一時停止／再開ボタン5cを押下することで表示の更新を一時停止できる。また「スキャン中状態」では、オペレータによって次ページ、前ページに移動できない構成になっている。このように、スキャン開始／停止ボタン5aを指示手段として、第１の画像表示状態から第２の画像表示状態（一時停止）に切り替えることができる。
【００８９】
図１６に「表示一時停止状態」の画面（以下「表示一時停止画面」）を示す。オペレータがスキャン中画面で表示一時停止／再開ボタン5cを押下すると「表示一時停止状態」に遷移する。表示一時停止画面では、表示一時停止／再開ボタン5cを押下したときに表示している画像で一時停止する。そしてオペレータが次ページボタン5d、または前ページボタン5eを押下したタイミングで押下されたボタンに該当する画像を表示する。
【００９０】
図１７に「スキャン後状態」の画面（以下「スキャン後画面」）を示す。キャプチャーアプリケーション442は、スキャンした全ての画像を保存してスキャンが終了するか、あるいはスキャン中画面でスキャン開始／停止ボタン5aが押下されるとスキャンを停止して「スキャン後状態」に遷移する。スキャン後画面では、スキャン開始／停止ボタン5aの名称を「スキャン開始」に戻し、表示一時停止／再開ボタン5cを無効にする。またスキャン後画面では、読み取った全ての画像を表示できるように、次ページボタン5dと前ページボタン5eを有効にする。
【００９１】
以下、図１９を用いて、メインスレッド全体のシーケンスについて説明する。
キャプチャーアプリケーション442がオペレータによって起動されると、CPU40は、ステップS600において、メインスレッドにおいて、各変数の初期化を行う。この処理は、図１８のステップS600と同じ処理のため詳細な説明は省略する。
【００９２】
そして、CPU40は、以下の判定を含んだ処理を、キャプチャーアプリケーション442が終了するまで繰り返すように制御する。
ステップS605：スキャン開始／停止ボタン5aが押下されたか？
ステップS610：表示一時停止／再開ボタン5cが押下されたか？
ステップS620：次ページボタン5dが押下されたか？
ステップS630：前ページボタン5eが押下されたか？
ステップS640：読み取った最後の画像を表示しているか？ 
【００９３】
まずステップS605の「スキャン開始／停止ボタン5aが押下されたか？」の判定に基づく処理について説明する。
CPU40は、オペレータによりスキャン開始／停止ボタン5aが押下されたと判定した場合（ステップS605でYesの場合）、ステップS606に処理を進める。
【００９４】
ステップS606において、CPU40は、スキャン中か否かを判定する。スキャン中フラグ（bScan_f）が「FALSE」の場合、CPU40は、スキャン中でないと判定し（ステップS606でNoと判定し）、ステップS607に処理を進める。
ステップS607において、CPU40は、後述する図２１に示すスキャン開始時の処理を行い、前述した図１５に示すスキャン中状態に遷移し、ステップS610に処理を進める。
【００９５】
一方、スキャン中フラグ（bScan_f）が「TRUE」の場合、CPU40は、スキャン中と判定し（ステップS606でYesと判定し）、ステップS608に処理を進める。
ステップS608において、CPU40は、後述する図２２に示すスキャン停止時の処理を行い、前述した図１７に示すスキャン後状態に遷移し、ステップS610に処理を進める。
【００９６】
ここで、ステップS607のスキャン開始時の処理について図２１のフローチャートに従って説明する。
図２１は、第２実施形態におけるスキャン開始時の処理の一例を示すフローチャートである。
【００９７】
ステップS800において、CPU40は、スキャン中か否かを判定する。スキャン中フラグ（bScan_f）が「TRUE」の場合、CPU40は、スキャン中であると判定し（ステップS800でYesと判定し）、スキャン開始時の処理を終了する。
【００９８】
一方、スキャン中フラグ（bScan_f）が「FALSE」の場合、CPU40は、スキャン中でないと判定し（ステップS800でNoと判定し）、ステップS801に処理を進める。
【００９９】
ステップS801において、CPU40は、表示カウンタ（Disp_Counter）を「0」で初期化する。
またステップS802において、CPU40は、表示停止フラグ（bDispStop_f）を「FALSE」で初期化する。
またステップS803において、CPU40は、スキャン停止フラグ（bScanStop_f）を「FALSE」で初期化する。
【０１００】
次にステップS804において、CPU40は、スキャンスレッドを生成する。
次にステップS805において、CPU40は、前述したスキャン中画面（図１５）への画面ボタンの更新を行い、スキャン開始時の処理を終了する。
このスキャン開始時の処理において、スキャンスレッドが生成されて、スキャンが開始される。
【０１０１】
次に、図１９のステップS608のスキャン停止時の処理について図２２のフローチャートに従って説明する。
図２２は、第２実施形態におけるスキャン停止時の処理の一例を示すフローチャートである。
【０１０２】
ステップS900において、CPU40は、スキャン中か否かを判定する。スキャン中フラグ（bScan_f）が「FALSE」の場合、CPU40は、スキャン中でないと判定し（ステップS900でNoと判定し）、スキャン停止時の処理を終了する。
【０１０３】
一方、スキャン中フラグ（bScan_f）が「TRUE」の場合、CPU40は、スキャン中であると判定し（ステップS900でYesと判定し）、ステップS901に処理を進める。
ステップS900において、CPU40は、スキャン停止フラグ（bScanStop_f）を「TRUE」に設定する。前述したように、スキャンスレッドは、スキャン停止フラグ（bScanStop_f）をスキャン中に参照していて、「TRUE」になるとスキャンを停止する構成になっている。したがって、スキャン停止フラグ（bScanStop_f）を「TRUE」することでスキャンが停止する。
【０１０４】
次にステップS902において、CPU40は、スキャン中か否かを判定する。スキャン中フラグ（bScan_f）が「TRUE」の場合、CPU40は、スキャン中であると判定し（ステップS902でYesと判定し）、ステップS902の処理を戻す。すなわちスキャンが終了するまで待機する。
一方、スキャン中フラグ（bScan_f）が「FALSE」の場合、CPU40は、スキャン中でない（スキャンが終了した）と判定し（ステップS902でNoと判定し）、S903に処理を進める。
【０１０５】
ステップS903において、CPU40は、スキャン停止フラグ（bScanStop_f）を「FALSE」に戻す。
次にステップS904において、CPU40は、図１７に示すスキャン後画面への画面ボタンの更新を行い、スキャン停止時の処理を終了する。画面ボタンの更新は、画面全体を更新することで行っても良い。これは他の画面ボタンの更新時においても同様であるが、説明を省略する。
以上、図１９のステップS605の「スキャン開始／停止ボタン5aが押下されたか？」の判定に基づく処理についての説明をした。
【０１０６】
以下、図１９のフローチャートの説明に戻る。
CPU40は、オペレータによりスキャン開始／停止ボタン5aが押下されていないと判定した場合（ステップS605でNoの場合）、ステップS610に処理を進める。
次に、図１９のステップS610の「表示一時停止／再開ボタン5cが押下されたか？」の判定に基づく処理について説明する。
CPU40は、オペレータにより表示一時停止／再開ボタン5cが押下されたと判定した場合（ステップS610でYesの場合）、ステップS611に処理を進める。
【０１０７】
ステップS611において、CPU40は、スキャン中か否かを判定する。スキャン中フラグ（bScan_f）が「FALSE」の場合、CPU40は、スキャン中でないと判定し（ステップS611でNoと判定し）、ステップS620に処理を進める。
一方、スキャン中フラグ（bScan_f）が「TRUE」の場合、CPU40は、スキャン中と判定し（ステップS611でYesと判定し）、ステップS612に処理を進める。
【０１０８】
ステップS612において、CPU40は、表示一時停止中か否かを判定する。表示停止フラグ（bDispStop_f）が「FALSE」の場合、CPU40は、表示一時停止中でないと判定し（ステップS612でNoと判定し）、ステップS614に処理を進める。
ステップS614において、CPU40は、表示一時停止の処理を行い、ステップS620に処理を進める。
【０１０９】
一方、表示停止フラグ（bDispStop_f）が「TRUE」の場合、CPU40は、すでに表示一時停止中であると判定し（ステップS612でYesと判定し）、ステップS613に処理を進める。
ステップS613において、CPU40は、表示再開時の処理を行い、ステップS620に処理を進める。
【０１１０】
ここで、ステップS614の表示一時停止時の処理について図２５のフローチャートに従って説明する。
図２５は、第２実施形態における表示一時停止時の処理の一例を示すフローチャートである。
【０１１１】
ステップS1200において、CPU40は、表示停止フラグ（bDispStop_f）を「TRUE」に設定する。
次にステップS1201において、CPU40は、図１６に示す表示一時停止状態に遷移して、表示一時停止画面のためのボタン更新を行い、表示一時停止時の処理を終了する。なお、表示一時停止状態に遷移したキャプチャーアプリケーション442は、画像表示の更新を停止して、オペレータからのページ送り指示を待つ。なお、その間は同じ画像を表示したままになる。
【０１１２】
次に、ステップS613の表示再開時の処理について図２４のフローチャートに従って説明する。
図２４は、第２実施形態における表示再開時の処理の一例を示すフローチャートである。
【０１１３】
ステップS1100において、CPU40は、表示停止フラグ（bDispStop_f）を「FALSE」に設定する。
次にステップS1101において、CPU40は、現時点での読み取った最後の画像を表示するために、表示カウンタ（Disp_Counter）をスキャンカウンタ（Scan_Counter）の値に設定する。
次にステップS1102において、CPU40は、表示カウンタ（Disp_Counter）に対応する画像ファイルを管理テーブル（File_List）から取得して、ファイルから画像を読み込み、所定の手順に従って画像を表示する。なお、上記ステップS1101をスキップし、表示カウンタ（Disp_Counter）を変更することなく、そのままステップS1102に処理を進めて、画像の表示を再開するようにしてもよい。また、表示再開時から所定時間の間（又は所定枚数の画像を表示する間）は、上述の表示間隔の値を小さい値（例えば1/2）に変更し、画像の表示間隔を短くし、その後、表示間隔を元の値に戻すように制御してもよい。
【０１１４】
次にステップS1103において、CPU40は、図１５に示すスキャン中状態に遷移して、スキャン中画面のためのボタン更新を行う。もしこの時点でスキャンが終了していた場合は、CPU40は、図１７に示すスキャン後状態に遷移して、スキャン後画面のためのボタン更新を行う。
ステップS1103の処理の後、CPU40は、表示再開時の処理を終了する。
以上、ステップS610の「表示一時停止／再開ボタン5cが押下されたか？」の判定に基づく処理について説明した。
【０１１５】
以下、図１９のフローチャートの説明に戻る。
CPU40は、オペレータにより表示一時停止／再開ボタン5cが押下されていないと判定した場合（ステップS610でNoの場合）、ステップS620に処理を進める。
次にステップS620の「次ページボタン5dが押下されたか？」の判定に基づく処理について説明する。
【０１１６】
本実施例では、次ページボタン5dが有効になるのは、図１６に示す表示一時停止状態の画面と、図１７に示すスキャン後状態の画面であるとするが、常に次ページボタン5dが有効になっていてもよい。
CPU40は、オペレータにより次ページボタン5dが押下されたと判定した場合（ステップS620でYesの場合）、ステップS621に処理を進める。
【０１１７】
ステップS621において、CPU40は、スキャン中か否かを判定する。スキャン中フラグ（bScan_f）が「FALSE」の場合、CPU40は、スキャン中でないと判定し（ステップS621でNoと判定し）、ステップS623に処理を進める。
ステップS623において、CPU40は、図２６に示した次ページの表示処理を行い、ステップS630に処理を進める。
【０１１８】
一方、スキャン中フラグ（bScan_f）が「TRUE」の場合、CPU40は、スキャン中であると判定し（ステップS621でYesと判定し）、ステップS622に処理を進める。
ステップS622において、CPU40は、表示一時停止中か否かを判定する。表示停止フラグ（bDispStop_f）が「TRUE」の場合、CPU40は、表示一時停止中であると判定し（ステップS622でYesと判定し）、ステップS623に処理を進める。
【０１１９】
一方、表示停止フラグ（bDispStop_f）が「FALSE」の場合、CPU40は、表示一時停止中でないと判定し（ステップS622でNoと判定し）、ステップS630に処理を進める。
以上、ステップS620の「次ページボタン5dが押下されたか？」の判定に基づく処理について説明した。
【０１２０】
CPU40は、オペレータにより次ページボタン5dが押下されていないと判定した場合（ステップS620でNoの場合）、ステップS630に処理を進める。
次にステップS630の「前ページボタン5eが押下されたか？」の判定に基づく処理について説明する。
【０１２１】
前ページボタン5eが有効になるのは、図１６に示す表示一時停止状態の画面と、図１７に示すスキャン後状態の画面である。
CPU40は、オペレータにより前ページボタン5eが押下されたと判定した場合（ステップS630でYesの場合）、ステップS631に処理を進める。
【０１２２】
ステップS631において、CPU40は、スキャン中か否かを判定する。スキャン中フラグ（bScan_f）が「FALSE」の場合、CPU40は、スキャン中でないと判定し（ステップS631でNoと判定し）、ステップS633に処理を進める。
ステップS633において、CPU40は、後述する図２７に示す次ページの表示処理を行い、ステップS640に処理を進める。
【０１２３】
一方、スキャン中フラグ（bScan_f）が「TRUE」の場合、CPU40は、スキャン中であると判定し（ステップS631でYesと判定し）、ステップS632に処理を進める。
ステップS632において、CPU40は、表示一時停止中か否かを判定する。表示停止フラグ（bDispStop_f）が「TRUE」の場合、CPU40は、表示一時停止中であると判定し（ステップS632でYesと判定し）、ステップS633に処理を進める。
【０１２４】
一方、表示停止フラグ（bDispStop_f）が「FALSE」の場合、CPU40は、表示一時停止中でないと判定し（ステップS632でNoと判定し）、ステップS640に処理を進める。
【０１２５】
ここで、前ページの表示処理について図２７のフローチャートに従って説明する。
図２７は、第２実施形態における前ページの表示処理の一例を示すフローチャートである。
【０１２６】
まずステップS1400において、CPU40は、読み取った先頭の画像を表示しているか否かを判定する。先頭の画像を表示していると判定した場合（ステップS1400でYesの場合）、CPU40は、そのまま本フローチャートの処理を終了する。
【０１２７】
一方、先頭の画像を表示していないと判定した場合（ステップS1400でNoの場合）、CPU40は、ステップS1401に処理を進める。
ステップS1401において、CPU40は、表示カウンタ（Disp_Counter）をデクリメントし、ステップS1402に処理を進める。
【０１２８】
ステップS1402において、CPU40は、表示カウンタ（Disp_Counter）に対応する画像を表示する。表示カウンタ（Disp_Counter）に対応する画像は、管理テーブル（File_List）から保存先のファイル名を特定して、そのファイルを読み込むことで取得できる。表示対象となるファイル名は表示カウンタ（Disp_Counter）の値と一致するスキャンカウンタ（Scan_Counter）の値に対応したファイル名となる。
ステップS1402の処理の後、CPU40は、本フローチャートの処理を終了する。
以上、ステップS630の「前ページボタン5eが押下されたか？」の判定に基づく処理について説明した。
【０１２９】
以下、図１９のフローチャートの説明に戻る。
CPU40は、オペレータにより前ページボタン5eが押下されていないと判定した場合（ステップS630でNoの場合）、ステップS640に処理を進める。
次にステップS640の「最終画像を表示しているか？」の判定に基づく処理について説明する。
【０１３０】
ステップS640において、CPU40は、読み取った最後の画像を表示しているか否かを判定する。最後の画像を表示していないと判定した場合（ステップS640でNoの場合）、CPU40は、ステップS642に処理を進める。なお、第１実施形態と同様に設定された表示間隔で画像表示を行う場合、最後の画像を表示していないと判定した場合（ステップS640でNoの場合）、CPU40は、設定された表示間隔経過していた場合には、ステップS643に遷移し、そうでない場合（ステップS640でYesの場合）にはステップS650に遷移するようにしても良い。
【０１３１】
ステップS642において、CPU40は、表示一時停止中か否かを判定する。表示停止フラグ（bDispStop_f）が「TRUE」の場合、CPU40は、すでに表示一時停止中であると判定し（ステップS642でYesと判定し）、ステップS650に処理を進める。
【０１３２】
一方、表示停止フラグ（bDispStop_f）が「FALSE」の場合、CPU40は、表示一時停止中でないと判定し（ステップS642でNoと判定し）、ステップS643に処理を進める。
ステップS643において、CPU40は、図２６に示した次ページの表示処理を行い、ステップS650に処理を進める。
以上、ステップS640の「読み取った最後の画像を表示しているか？」の判定に基づく処理について説明した。
【０１３３】
以下、図１９のフローチャートの説明に戻る。
上記ステップS640において、CPU40は、読み取った最後の画像を表示していると判定した場合（ステップS640でYesの場合）、CPU40は、ステップS650に処理を進める。
【０１３４】
ステップS650において、CPU40は、スキャン中であるか否かを判定する。スキャン中フラグ（bScan_f）が「TRUE」の場合、CPU40は、スキャン中であると判定し（ステップS650でYesと判定し）、ステップS605に処理を戻し、上述の処理を繰り返し行うように制御する。
一方、スキャン中フラグ（bScan_f）が「FALSE」の場合、CPU40は、スキャン中でないと判定し（ステップS650でNoと判定し）、ステップS651に処理を進める。
ステップS651において、CPU40は、後述する図２３に示すスキャン終了時の処理を行い、図１７に示すスキャン後状態に遷移する。
【０１３５】
ここで、スキャン終了時の処理について図２３のフローチャートに従って説明する。
図２３は、第２実施形態におけるスキャン終了時の処理の一例を示すフローチャートである。
まずステップS1000において、CPU40は、スキャン停止フラグ（bScanStop_f）を「FALSE」に設定する。
次にステップS1001において、CPU40は、図１７に示すスキャン後状態の画面のためのボタン更新を行い、スキャン終了時の処理を終了する。
【０１３６】
以下、図１９のフローチャートの説明に戻る。
スキャン終了時の処理をしたら、CPU40は、ステップS660において、キャプチャーアプリケーション442の終了か否かを判定する。CPU40は、オペレータによる不図示の終了ボタンの押下を検知した場合、キャプチャーアプリケーション442の終了と判定する。キャプチャーアプリケーション442の終了でないと判定した場合（ステップS660でNoの場合）、CPU40は、ステップS605に処理を戻す。
【０１３７】
一方、キャプチャーアプリケーション442の終了と判定した場合（ステップS660でYesの場合）、CPU40は、メインスレッドを終了する。この場合、CPU40は、最後の画像を表示していなくてもメインスレッドを終了する。
【０１３８】
以上のように、第２実施形態の画像表示システムによれば、高速で読み取り可能なスキャナ（例えば原稿を高速で搬送し且つ表面と裏面を1度の搬送で読み取る両面スキャナ）を用いる場合でも、スキャナで順次読み取られる画像を自動で表示しつつ、読取画像の表示の一時停止や前ページの表示等を可能にし、任意の画像を任意の時間だけ表示できるようにすることができる。これにより、ユーザは、例えスキャン中であったとしても、スキャン画像に不正な画像が含まれるか等を、時間をかけて細かく確認できる。
【０１３９】
なお、上記説明では、１度に表示する画像を1画像にした例を挙げているが、例えば両面スキャンの場合2画像（表面画像と裏面画像）を同時に表示する、といったように原稿シート単位で表示しても構わない。本実施形態では、画像の表示を一時停止したり、前ページの表示に戻したりすることができるため、２画像を同時に表示する構成でも、詳細に読取画像を確認することが可能となる。
【０１４０】
また、図１４〜図１７の画面に「倍速」ボタン、「スロー」ボタンを設けてもよい。ここでは、CPU40が、次ページ表示の処理において、ステップS1302の「表示カウンタに対応する画像を表示する」処理の後に、表示間隔に対応する時間待機して画像の表示間隔を制御しているものとして説明する。この場合、「倍速」ボタンが押下された場合には、CPU40は、上述の表示間隔の値を小さい値（例えば1/2）に変更し、画像の表示間隔を短くするように制御する。また、「スロー」ボタンが押下された場合には、CPU40は、上述の表示間隔の値を大きい値（例えば2倍）に変更し、画像の表示間隔を長くするように制御する。さらに、表示一時停止／再開ボタン5cが押下されて一時停止された後に再度、表示一時停止／再開ボタン5cが押下されて表示が再開された場合には、CPU40は、一時停止する前の表示間隔の値を大きい値（例えば1.5倍や2倍）に自動で変更し、画像の表示間隔を長くするようにしてもよい。これにより、ユーザは読取画像を詳細に確認することができる。
また、第１実施形態のように、基本となる表示間隔をユーザが設定可能に構成してもよい。
【０１４１】
さらに、図１４〜図１７の画面にスキップボタンを設け、このスキップボタンが押下された場合、例えば、メインスレッドが、それ以降の画像表示を行わないように制御する、又は、スレッドを終了するように構成してもよい。この構成により、スキャナで画像を読み取りつつ、読み取った画像を１画像ずつユーザの所望の表示間隔で順次表示させて確認し、ユーザの必要に応じて表示を省略することが可能となる。
【０１４２】
また、上記実施形態では、読取画像全体をキャプチャーアプリケーション442で表示させる構成について説明したが、画像の一部の領域を拡大表示させて確認させるように構成してもよい。例えば、ユーザにより指定された領域を拡大表示させるように構成してもよい。また、画像内に含まれる所定のオブジェクト画像（例えばバーコード画像）を検索して該画像を含む領域を拡大表示させるように構成してもよい。この構成の場合、「スキャンスレッド」がステップS720で表示用の画像を生成しておく構成でもよいし、「メインスレッド」が表示用の画像を生成して表示する構成でもよい。さらに、バーコード等を含む領域を拡大表示させる場合、バーコード等を解析し、その解析結果も表示するようにしてもよい。この構成により、高速で読み取り可能なスキャナを用いる場合でも、スキャナで画像を読み取りつつ、読み取った画像の一部の領域又は所定のオブジェクトを含む領域を１画像ずつユーザの所望の表示間隔で順次拡大表示させて確認することが可能となる。
【０１４３】
なお、画像読取装置３にキャプチャーアプリケーション442と同様のキャプチャーアプリケーションを実装してもよい。例えば、画像読取装置3のCPU3cがROM3bに格納された上述のキャプチャーアプリケーションを読み出して実行することにより、画像読取装置3で読み取った画像を上述と同様の制御により操作部3gに順次表示するようにしてもよい。
【０１４４】
以上のように、各実施形態によれば、高速で原稿の読み取りを行うスキャナを用いて複数枚の原稿を読み取る場合でも、スキャナで画像を読み取りつつ、読み取り画像をユーザの所望のペースで確認することが可能となる。すなわち、スキャナで画像を読み取りつつ、読み取り画像をユーザの所望の間隔で順次表示させて確認することができる。また、画像表示の一時停止等を可能にし、任意の画像を任意の時間だけ表示させることができる。したがって、スキャン中であったとしても、読み取り画像を十分に確認することが可能となる。
【０１４５】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【０１４６】
（その他の実施例）
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路（例えば、ASIC）によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１４７】
3    画像読取装置
4    情報処理装置
40    CPU
41    ROM
42    RAM
44    外部記憶装置
45    出力装置
46    入力装置
441    スキャナドライバ
442    キャプチャーアプリケーション
【図１】
2019169841.tif 000003
【図２】
2019169841.tif 000004
【図３】
2019169841.tif 000005
【図４】
2019169841.tif 000006
【図５】
2019169841.tif 000007
【図６】
2019169841.tif 000008
【図７】
2019169841.tif 000009
【図８】
2019169841.tif 000010
【図９】
2019169841.tif 000011
【図１０】
2019169841.tif 000012
【図１１】
2019169841.tif 000013
【図１２】
2019169841.tif 000014
【図１３】
2019169841.tif 000015
【図１４】
2019169841.tif 000016
【図１５】
2019169841.tif 000017
【図１６】
2019169841.tif 000018
【図１７】
2019169841.tif 000019
【図１８】
2019169841.tif 000020
【図１９】
2019169841.tif 000021
【図２０】
2019169841.tif 000022
【図２１】
2019169841.tif 000023
【図２２】
2019169841.tif 000024
【図２３】
2019169841.tif 000025
【図２４】
2019169841.tif 000026
【図２５】
2019169841.tif 000027
【図２６】
2019169841.tif 000028
【図２７】
2019169841.tif 000029
【図２８】
2019169841.tif 000030