(57)【特許請求の範囲】
【請求項１】
複数の原稿をプレスキャンするプレスキャン工程と、
前記プレスキャン工程におけるプレスキャンにより得られた画像に基づき、本スキャンの読取対象となる前記複数の原稿に対応する複数のクロップを画面上に表示する表示工程と、
前記複数のクロップに対応する前記複数の原稿のそれぞれを順次本スキャンする本スキャン工程と、
前記本スキャン工程における前記複数の原稿に対する前記本スキャンの進行状況に従って、前記表示工程において表示された複数のクロップの表示の状態を変化させるよう制御する制御工程とを有することを特徴とする画像読取方法。
【請求項２】
前記表示工程は、前記プレスキャン工程におけるプレスキャンにより得られた画像における前記複数の原稿に対応する複数の領域を、前記複数のクロップとして表示することを特徴とする請求項１に記載の画像読取方法。
【請求項３】
前記本スキャン工程の実行中に、
前記複数のクロップに対応する複数の画像の読取に対するユーザからの指示を受付ける受付工程と、
前記受付工程において受付けた指示に従って、前記本スキャン工程における前記複数の原稿に対する読取の動作の変更を行う変更工程とをさらに有することを特徴とする請求項１又は２に記載の画像読取方法。
【請求項４】
前記表示工程は、前記複数のクロップに画像の読取の順序を示す番号を表示する順序表示工程を含むことを特徴とする請求項１乃至３のいずれか１項に記載の画像読取方法。
【請求項５】
前記変更工程は、前記本スキャン工程における本スキャン中の１枚の原稿の読取をキャンセルし、それ以降の原稿の読取を全てキャンセルする工程を含むことを特徴とする請求項３に記載の画像読取方法。
【請求項６】
前記変更工程は、前記本スキャン工程における本スキャン中の１枚の原稿の読取をキャンセルし、それ以降の原稿の読取は継続する工程を含むことを特徴とする請求項３に記載の画像読取方法。
【請求項７】
前記変更工程は、前記本スキャン工程における本スキャンが未処理であり、かつ、前記受付工程において受け付けられたユーザからの指示により指定された原稿を本スキャンの対象から外す工程を含むことを特徴とする請求項３に記載の画像読取方法。
【請求項８】
前記変更工程は、前記受付工程において受付けた順序変更の指示に応じて、前記本スキャン工程における本スキャンが未処理の原稿のスキャン順序を変更する工程を含むことを特徴とする請求項３に記載の画像読取方法。
【請求項９】
前記変更工程は、前記本スキャン工程における本スキャン中の１枚の原稿とそれ以降の原稿の読取をキャンセルし、次に読取する際に、前回スキャン中であった原稿及びそれ以降に読取がされる原稿を順次読取る工程を含むことを特徴とする請求項３に記載の画像読取方法。
【請求項１０】
前記制御工程は、前記本スキャン工程における１枚の原稿に対する本スキャンの完了に応じて、前記複数のクロップの表示の状態を変化させる工程を含むことを特徴とする請求項１乃至９のいずれか１項に記載の画像読取方法。
【請求項１１】
前記本スキャン工程は、１枚の原稿の一部に対して順次本スキャンを実行し、
前記制御工程は、前記本スキャン工程における１つの原稿に対する本スキャンの進行状況に応じて、当該１つの原稿に対応するクロップの表示の状態を変化させる工程を含むことを特徴とする請求項１乃至１０のいずれか１項に記載の画像読取方法。
【請求項１２】
前記制御工程はさらに、前記進行状況に応じて、前記複数のクロップのうちの前記本スキャン工程において本スキャン中の原稿に対応するクロップと、次に本スキャンされる原稿に対応するクロップと、さらにその後に本スキャンされる原稿に対応するクロップとが区別して表示されるよう制御する工程を含むことを特徴とする請求項１乃至１１のいずれか１項に記載の画像読取方法。
【請求項１３】
前記本スキャン工程は、前記表示工程における前記複数のクロップの表示の後に受け付けられたユーザによる指示に応じて、前記本スキャンを開始することを特徴とする請求項１乃至１２のいずれか１項に記載の画像読取方法。
【請求項１４】
請求項１乃至１３のいずれか１項に記載の画像読取方法の各工程をコンピュータに実行させるプログラム。
【請求項１５】
読取装置が複数の原稿をプレスキャンするよう制御するプレスキャン制御手段と、
前記プレスキャン制御手段の制御によるプレスキャンにより得られた画像に基づき、本スキャンの読取対象となる前記複数の原稿に対応する複数のクロップを表示装置が表示するよう制御する表示制御手段と、
前記読取装置が前記複数のクロップに対応する前記複数の原稿のそれぞれを順次本スキャンするよう制御する本スキャン制御手段と、
前記本スキャン制御手段の制御による前記複数の原稿に対する前記本スキャンの進行状況に従って、前記表示制御手段の制御により表示された複数のクロップの表示の状態を変化させるよう制御する制御手段とを有することを特徴とする読取制御装置。
【請求項１６】
前記読取制御装置は、前記読取装置と接続可能な、当該読取装置の外部の装置であることを特徴とする請求項１５に記載の読取制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数枚の原稿を走査して読取る際に走査の進行状況をユーザが具体的に把握可能な画像読取方法、読取制御装置、及びプログラムに関する。
【背景技術】
【０００２】
従来、画像読取装置、或いは、その装置を接続したホストコンピュータにインストールされるスキャナドライバの多くは、原稿の読取りの進行状況を示すために、プログレスバー（進行状況表示バー）を画面に表示する。また、複数枚の原稿を読取る際には、プログレスバーを表示しているダイアログに、何枚目の読取であるかを表示する。プログレスバーを表示しているダイアログにはキャンセルボタンが有り、キャンセルボタンを押下することで、それ以降の読取が全てキャンセルされる。
【０００３】
例えば、特許文献１では、複数枚の原稿を読取る際の進行状況を、ユーザが具体的に把握できるようにする構成を開示している。ここで進行状況とは、読取完了した原稿の合計や読み取り残り枚数である。例えば、３枚の原稿を読取る場合、その中の２枚目を走査読取中には、「スキャン画像はあと残り２枚です」と表示し、２枚目の進行状況を示すプログレスバーも表示する。
【０００４】
特許文献２では、スキャナで読取動作を実行中に、読取った画像を縮小して順次モニタ画面に表示する構成を開示している。縮小表示することにより大きなサイズの画像でもモニタ画面に表示することが可能となる。また、読取られた画像を順次表示することで、読取りの進行状況を画像で把握することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−２１９０８５号公報
【特許文献２】特開平１０−１４３６４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以上のような従来例では、複数枚の原稿を原稿台に載置して読取る際に、現在何枚目なのか、あるいは残り何枚なのかを、ユーザが把握することは可能である。しかしながら、上記従来例では、現在読取中の原稿が、プレビュー画像上で読取られた原稿のどれに相当するのかを、ユーザは視覚的に捉えることができない。そのため、プログレスバーのダイアログにあるキャンセルボタンを押下しても、どの原稿の読取をキャンセルしたのかが分からないという問題があった。
【０００７】
本発明は上記従来例に鑑みてなされたもので、複数の画像原稿の読取中にその読取進行状況が視覚的に把握容易な画像読取方法、読取制御装置、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の画像読取方法は次のような工程からなる。
【０００９】
即ち、複数の原稿をプレスキャンするプレスキャン工程と、前記プレスキャン工程におけるプレスキャンにより得られた画像に基づき、本スキャンの読取対象となる前記複数の原稿に対応する複数のクロップを画面上に表示する表示工程と、前記複数のクロップに対応する前記複数の原稿のそれぞれを順次本スキャンする本スキャン工程と、前記本スキャン工程における前記複数の原稿に対する前記本スキャンの進行状況に従って、前記表示工程において表示された複数のクロップの表示の状態を変化させるよう制御する制御工程とを有することを特徴とする。
【００１０】
また本発明を別の側面から見れば、読取装置が複数の原稿をプレスキャンするよう制御するプレスキャン制御手段と、前記プレスキャン制御手段の制御によるプレスキャンにより得られた画像に基づき、本スキャンの読取対象となる前記複数の原稿に対応する複数のクロップを表示装置が表示するよう制御する表示制御手段と、前記読取装置が前記複数のクロップに対応する前記複数の原稿のそれぞれを順次本スキャンするよう制御する本スキャン制御手段と、前記本スキャン制御手段の制御による前記複数の原稿に対する前記本スキャンの進行状況に従って、前記表示制御手段の制御により表示された複数のクロップの表示の状態を変化させるよう制御する制御手段とを有することを特徴とする読取制御装置を備える。
さらに本発明をさらに別の側面から見れば、上記画像読取方法の各工程をコンピュータに実行させるためのプログラムを備える。
【発明の効果】
【００１１】
従って本発明によれば、複数の画像読取の進行状況を画面上でユーザは視覚的に容易に把握できるという効果がある。また、例えば、スキャン中の画像を把握した上でキャンセルしたり、そのキャンセル後も、それ以降の画像読取を継続させたり、さらに、読取が未処理の画像については読取の対象から外すといった読取動作の変更も可能になる。
【図面の簡単な説明】
【００１２】
【図１】本発明の代表的な画像読取システムのハードウェア構成を示す図である。
【図２】図１に示した画像読取システムのソフトウェア構成を示す図である。
【図３】、
【図４】本発明の実施例１に従う画像読取処理を示すフローチャートである。
【図５】全キャンセルの機能を実行した際の処理を示すフローチャートである。
【図６】第１のスキップ機能を実行した際の処理を示すフローチャートである。
【図７】中断機能を実行した際の処理を示すフローチャートである。
【図８】スキャナドライバのＵＩと、クロップ内の領域を用いて画像読取の進行状況を示す図である。
【図９】クロップが重なったときの画像読取の進行状況と、スキャンをスキップした場合のクロップの表示の変化を示す図である。
【図１０】本発明を適用できるクロップ枠を用いて進行状況を表現した図である。
【発明を実施するための形態】
【００１３】
以下添付図面を参照して本発明の好適な実施例について、さらに具体的かつ詳細に説明する。なお、以下の実施例で開示する構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１４】
図１は、本発明の代表的な実施例である画像読取システム（以下、システム）のハードウェア構成を示す図である。図１に示すように、このシステムは、ホストコンピュータ（以下、ホスト）１０１とこれに接続される画像読取装置１０９とから構成される。画像読取装置１０９は、プリンタ部とスキャナ部とモニタ部とから構成される多機能プリンタ（ＭＦＰ）の構成でも良いし、スキャナ単機能のフラットベッド型のスキャナ装置などでも良い。いずれにしても、これらの画像読取装置はプレスキャン可能な装置である。
【００１５】
さて、ホスト１０１は、画像読取装置１０９に操作コマンドを発行し、画像読取装置１０９から画像データを取得する。ホスト１０１は、後で説明するアプリケーションやスキャナドライバのＵＩ（ユーザインタフェース）や実行状態を表示するモニタ１０２、アプリケーションやスキャナドライバを実行するＣＰＵ１０３を備えている。さらに、ホスト１０１は、ＢＩＯＳなどの基本ソフトウェア（ＯＳ）を格納するＲＯＭ１０５、アプリケーションやスキャナドライバなどのソフトウェアやデータを一時的に記憶するＲＡＭ１０４、ハードディスクなどの補助記憶装置１０６を備えている。さらに、ホスト１０１はキーボード１０７とポインティングデバイス１０８などの入力装置を備えている。
【００１６】
図２は、図１で説明したシステムのソフトウェア構成を示す図である。ホスト１０１には、ＯＳ２０２、アプリケーション２０３、スキャナドライバ２０４が格納されている。ユーザは、アプリケーション２０３を利用してスキャナドライバ２０４を起動し、スキャナドライバ２０４が画像読取装置１０９に対して操作コマンドを発行することで、画像読取装置１０９から画像データを得る。この実施例では、図２に示されているように、スキャナドライバ２０４には、スキャン順序表示部２０５、対応付け部２０６、進行状況表示部２０７、イベント受付部２０８、イベント処理部２０９が備えられている。また、イベント処理部２０９には、全キャンセル部２１０、第１のスキップ部２１１、第２のスキップ部２１２、スキャン順序変更部２１３、中断部２１４が備えられている。
【００１７】
以下の説明では、プレビュー画像から自動あるいは手動で切り出された領域をクロップと呼ぶことにする。
【００１８】
スキャン順序表示部２０５は、各クロップのスキャン順序を示す番号を表示する機能がある。スキャン順序を示す番号は、プレビュー画面上の各クロップに隣接するように表示しても良いし、スキャナドライバ２０４のＵＩに専用のテキストボックスを用意し、そこに表示しても良い。また、各クロップに隣接するように表示した場合、クロップが重なっている場合などは、スキャン順序を示す番号が、どのクロップを指すのか分かり難いので、番号とクロップを線で結んで明示的に表示しても良い。
【００１９】
対応付け部２０６は、現在スキャンしているクロップと、プレビュー画面上のクロップを対応付ける機能がある。
【００２０】
進行状況表示部２０７は、プレビュー画面上の領域を利用するか、或いは、クロップ枠を利用して、画像原稿の読取の進行状況を表示する機能がある。
【００２１】
プレビュー画面上の領域を利用する方法を用いる場合、ユーザがスキャンの開始を指示すると、スキャナドライバ２０４が、プレビュー画面全体或いは全てのクロップ枠内の画面に対してマスク処理を行ったり、画面の輝度を反転させるなどして色変換を行う。スキャナドライバ２０４が画像データを画像読取装置から受信し始めると、スキャナドライバ２０４は、そのクロップについて現在受信している画像データのサイズと、そのクロップについて最終的に受信する画像データのサイズを比較する。そして、現在何パーセントの画像データを受け取っているかを算出する。そして、その割合だけ、クロップ内の画面の色を、色変換する前の色に戻す。後述する実施例１では、色変換として、グレーのマスク処理を行っている。このように、スキャンが終了した割合を計算し、その分だけマスク処理を解除しても良いし、スキャンが終了したラインから、１ラインずつグレーのマスク処理を解除しても良い。
【００２２】
一方、クロップ枠を利用する方法を用いる場合、現在スキャン中のクロップ枠を太字の点線で、他のクロップは細い線で表現するというように、スキャン中のクロップ枠を強調することで、ユーザは現在スキャン中のクロップを把握することができる。また、スキャン中のクロップ枠だけを強調するのではなく、既にスキャンされたクロップ枠をグレーで表示、次にスキャンされるクロップ枠を太字の線で表現するようにしても良い。このように、各クロップのスキャンの進行状況に応じて、クロップ枠の表現を変えることで、ユーザはスキャンの進行状況を把握できる。後述する実施例２では、このクロップ枠を用いた方法を例に挙げて説明している。
【００２３】
イベント受付部２０８は、各クロップに対するユーザアクションを受付る機能をもつ。後述する実施例１では、クロップ上でのクリックやダブルクリックによるポインティングデバイスのアクションを受付ているが、スキャナドライバ２０４のＵＩに専用のボタンを設け、それを押下することによって発生するイベントを受付るようにしても良い。
【００２４】
全キャンセル部２１０は、スキャン中のクロップ及びそれ以降にスキャンされるクロップを全てキャンセルする機能をもつ。全キャンセル部２１０を実行すると、スキャナドライバ２０４は、アプリケーション２０３からの画像転送要求に対してキャンセルで応答する。アプリケーション２０３は、スキャナドライバ２０４からキャンセル命令を受取ると、まだスキャンしていないクロップがあったとしても、それ以降のスキャンをスキャナドライバ２０４に要求しないことが多い。
【００２５】
そのため、全キャンセル部２１０によって、スキャナドライバ２０４がアプリケーション２０３にキャンセル命令を発行することで、それ以降のスキャンは全てキャンセルされる。仮にアプリケーション２０３が当該クロップのみのキャンセルを行い、次のクロップに対して画像転送要求を行う場合には、スキャナドライバ２０４は継続してキャンセルで応答することで全てのクロップのキャンセルをしても良い。
【００２６】
第１のスキップ部２１１は、スキャン中のクロップをキャンセルし、それ以降のスキャンは継続する機能である。上述のように、アプリケーション２０３の多くは、スキャナドライバ２０４からキャンセル命令を受け取ると、アプリケーション２０３はスキャンを終了する。そのため、第１のスキップ部２１１が実行された際に、キャンセル命令をアプリケーション２０３に発行すると、それ以降のスキャンが全てキャンセルされてしまう。
【００２７】
そこで、この実施例ではスキャンが終了した画像データから順にアプリケーション２０３に転送するのではなく、１クロップのスキャンが終了するまでは、その画像データをスキャナドライバ２０４で保持してアプリケーション２０３に画像データを転送しない。そして、第１のスキップ部２１１が実行された場合、それまでに保持していた画像データを破棄して、次のクロップのスキャンに移行する。これに対して、第１のスキップ部２１１が実行されず、スキャナドライバ２０４が１クロップの画像データを全て取得した場合は、保持した１クロップ分の画像データをアプリケーション２０３に転送する。第１のスキップ部２１１を実行したクロップは、そのクロップのスキャン順序を示す番号が消え、それ以降にスキャンされるクロップのスキャン番号が１ずつ減る。
【００２８】
第２のスキップ部２１２は、スキャン実施後に、まだ読み取りが行われていないクロップをスキャンの対象から外す機能である。ユーザは、スキャン実施後に、プレビュー画面上で、まだスキャンが開始されていないクロップを指定し、そのクロップをスキャンの対象から外すことができる。スキャナドライバ２０４は、複数のクロップについて、それぞれの読取解像度などのスキャン設定を保持し、それぞれの設定で画像読取装置に対してスキャン命令を発行する。第２のスキップ部２１２が実行されると、スキャナドライバ２０４は、第２のスキップ部２１２が実行されたクロップに関して、そのクロップのスキャン命令を画像読取装置に発行しない。第２のスキップ部２１２を実行したクロップは、そのクロップのスキャン順序を示す番号が消え、それ以降にスキャンされるクロップのスキャン番号が１ずつ減る。
【００２９】
スキャン順序変更部２１３は、スキャン開始後に、各クロップのスキャン順序を変更する機能である。具体的な順序変更の方法は、スキャナドライバ２０４の設定によって、ユーザが変更することができる。例えば、ユーザが、あるクロップに対して、スキャン順序の変更を行うと、そのクロップが、現在スキャンしているクロップの次にスキャンされるようにしても良いし、最後にスキャンされるようにしても良い。また、二つのクロップを指定して順序変更を行うと、それらの順序を交換するようにしても良い。このスキャン順序の変更は、まだスキャン動作が行われていないクロップに対してのみ可能であり、スキャン順序を示す番号も変更される。
【００３０】
中断部２１４は、スキャン中のクロップとそれ以降のスキャンをキャンセルし、次にスキャンする際に、前回スキャン中であったクロップ及びそれ以降のクロップを、１番から順序付けてスキャンする機能である。中断部２１４を実行すると、スキャナドライバ２０４は、アプリケーション２０３に対してキャンセル命令を発行し、スキャン中のクロップと、それ以降にスキャンされるクロップも全てキャンセルする。このとき、スキャナドライバ２０４は、まだアプリケーション２０３への転送が完了していないクロップを履歴として記憶しておく。
【００３１】
このように、中断部２１４によって、一度スキャンをキャンセルしたとき、スキャナドライバ２０４は終了しても終了しなくても良く、それはスキャナドライバ２０４の設定で自由に変更可能である。スキャナドライバ２０４を終了した場合には、次にスキャナドライバ２０４を起動したときに、前回のクロップの内、まだアプリケーション２０３への転送が行われていないものだけを、プレビュー画面上でクロップとして１番から順序付けて表示する。一方、前回のクロップのうち、既にアプリケーション２０３に転送が完了しているクロップについては、クロップされていない状態で表示される。スキャナドライバ２０４を終了しない場合も同様で、一度、ユーザが中断を行うと、以降のスキャン動作は終了し、その後、プレビュー画面上には、まだアプリケーション２０３への転送が完了していないクロップを１番から順序付けて表示する。そして、スキャンを開始することにより、前回のスキャンで、アプリケーション２０３への転送が完了していないクロップのみがスキャンされ、アプリケーション２０３に転送される。
【００３２】
次に、以上のようなハードウェア構成とソフトウェア構成をもつシステムにおける画像原稿の読取処理についての実施例について説明する。
【実施例１】
【００３３】
実施例１では、６コマ（コマＡ〜コマＦ）の３５ｍｍスリーブを用いて画像読取を行う場合について、図３〜図７に示すフローチャートと図８〜図９に示す表示画面とを参照して説明する。
【００３４】
ユーザは、３５ｍｍスリーブを１枚、画像読取装置１０９の原稿台に置き、アプリケーション２０３を起動し（Ｓ１０１）、対象の画像読取装置のスキャナドライバ２０４を起動する（Ｓ１０２）。ユーザがプレビューを実行すると（Ｓ１０３）、画像読取装置はプレスキャンを行い、これにより得られたプレビュー画像がプレビュー領域に表示される（Ｓ１０４）。
【００３５】
図８（ａ）はスキャナドライバ２０４のＵＩとなる表示画面である。スキャナドライバ２０４のＵＩでは、原稿の種類３０１、出力解像度３０２、出力サイズ３０３を設定し、プレビューボタン３０４を押下することでプレビューが実行され、プレビューにより得られた画像データは、プレビュー領域３０６に表示される。なお、図８（ａ）において、３０５は本スキャンを開始するための本スキャンボタン、３０７はスキャン順序を示す番号である。
【００３６】
スキャナドライバ２０４は、プレビュー画像から、Ｎ個のクロップを検出する（Ｓ１０５）。ここで例示する３５ｍｍフィルムのスリーブには６コマあるため、Ｎ＝６となる。クロップが生成されると、スキャン順序表示部２０５によりスキャン順番を示す番号が表示される（Ｓ１０６）。スキャン順序を示す番号が表示されたら、本スキャンボタン３０５を押下して、本スキャンを開始する（Ｓ１０７）。本スキャンを開始すると、全てのクロップ内の領域にグレーのマスク処理がかけられる（Ｓ１０８）。
【００３７】
図８（ｂ）は、本スキャンを実行してからすべてのクロップのスキャンが終了するまでの様子を図示したものである。Ｓ１０８の処理により、４０１に示すように全てのクロップ枠内にグレーのマスクがかけられる。４０２はコマＡのスキャンが終了し、コマＢのスキャンをしている状態である。４０３は全てのクロップのスキャンが終了した状態であり、全てのクロップのマスク処理が解除され、元のプレビュー画像に戻っている。
【００３８】
なお、ここでは、スキャナドライバ２０４がコマを検出してクロップを生成したが、ユーザが、ポインティングデバイス１０８などを用いて手動でクロップを生成しても良い。
【００３９】
次に、画像読取処理は図４に示す処理に進む。本スキャン開始により、最初は、Ｘ＝１に設定され（Ｓ２０１）、Ｘクロップ目（最初は１クロップ目）のスキャンが開始される（Ｓ２０２）。Ｘクロップ目のスキャンが終了して画像データがアプリケーションに転送されると、Ｘの値が“＋１”インクリメントされる（Ｓ２１７）。インクリメントされたＸの値がＮ＋１に等しいか否かを判断し（Ｓ２１８）、Ｘ≠Ｎ＋１である場合は次のクロップのスキャンに移行し（Ｓ２０２）、等しい場合はスキャンを終了する。
【００４０】
さて、Ｘクロップ目のスキャンが開始されると（Ｓ２０２）、スキャナドライバ２０４は、Ｘクロップ目の１ライン分をスキャンし（Ｓ２０３）、得られた１ライン分の画像データを保持する（Ｓ２０４）。１ライン分の画像データを保持すると、プレビュー画像上でグレーのマスク処理をした領域のうち、スキャンした１ライン分のマスク処理を解除する（Ｓ２０５）。ここでは、１ラインごとにマスク処理を解除するとしたが、本発明はこれによって限定されるものではない。例えば、スキャナドライバ２０４が現在受取っている画像データのサイズと、そのクロップについて最終的に受取る画像データのサイズを比較して、現在何パーセントの画像データを受取っているかを算出し、その割合だけマスク処理を解除するようにしても良い。
【００４１】
本スキャンの実行中、１ライン分のスキャンが終了した後、次の処理を行う。即ち、ユーザから全キャンセル部の選択、第１のスキップ部の選択、第２のスキップ部の選択、スキャン順序変更部の選択、中断部の選択の指示があったかどうかを調べる（Ｓ２０６、Ｓ２０７、Ｓ２０８、Ｓ２１２、Ｓ２１４）。夫々の指示があった場合は、その指示に対応する処理を行う。即ち、全キャンセル部が選択されると図５に示すフローチャートの処理を実行し、第１のスキップ部が選択されると図６に示すフローチャートの処理を実行し、中断部が選択されると図７に示すフローチャートの処理を実行する。
【００４２】
さて、第２のスキップ部が選択されると（Ｓ２０８）、スキップの対象となるＹ（Ｙ＞Ｘ）クロップ目のスキャン順序を示す番号が消え、Ｙ＋１クロップ目以降のスキャン順序を示す番号が１ずつ減る（Ｓ２０９）。そして、Ｙクロップ目のマスク処理を解除し（Ｓ２１０）、スキャンするクロップの総数Ｎを“−１”デクリメントする（Ｓ２１１）。スキャン順序変更部が選択実行されると（Ｓ２１２）、スキャン順序を示す番号が変更される（Ｓ２１３）。
【００４３】
次に、全キャンセル部が選択された場合の処理を図５に示すフローチャートを参照して説明する。全キャンセル部の機能が実行されると、保持している画像データを破棄し（Ｓ３０１）、全てのクロップのスキャン順序を示す番号を消去する（Ｓ３０２）。そして、全てのクロップのマスク処理を解除して（Ｓ３０３）、アプリケーションにキャンセル命令を発行する（Ｓ３０４）。
【００４４】
さらに、第１のスキップ部が選択された場合の処理を図６に示すフローチャートを参照して説明する。第１のスキップ部の機能が実行されると、保持している画像データを破棄し（Ｓ４０１）、スキャン中のＸクロップ目のスキャン順序を示す番号を消去する（Ｓ４０２）。そして、Ｘクロップ目のマスク処理を解除し（Ｓ４０３）、Ｘ＋１クロップ目以降のスキャン順序を示す番号を、１ずつ減らして表示する（Ｓ４０４）。このとき、スキャンするクロップの総数Ｎは、“−１”デクリメントされてＮ−１になる（Ｓ４０５）。
【００４５】
またさらに、中断部が選択された場合の処理を図７に示すフローチャートを参照して説明する。スキャンの中断が実行されると、スキャナドライバ２０４はＸ−１クロップ目までスキャンが終了していることを記憶し（Ｓ５０１）、スキャンしているＸクロップ目の画像データを破棄する（Ｓ５０２）。そして、全てのクロップのスキャン順序を示す番号を消去し（Ｓ５０３）、全てのクロップのマスク処理を解除して（Ｓ５０４）、アプリケーションにキャンセル命令を発行する（Ｓ５０５）。
【００４６】
そして、次回、スキャナドライバ２０４を起動した際に、まだアプリケーション２０３への転送が終了していないＸクロップ目を、１番から順序付けてスキャンを行う。このように、スキャナドライバ２０４を起動した際にスキャンを再開するようにしても良いし、スキャナドライバ２０４に再開ボタンを設け、それを押下することでスキャンを再開するようにしても良い。
【００４７】
全キャンセル部、第１及び第２のスキップ部、スキャン順序変更部、中断部の選択の有無を判断（Ｓ２０６、Ｓ２０７、Ｓ２０８、Ｓ２１２、Ｓ２１４）の後、スキャナドライバ２０４はＸクロップ目の全ラインのスキャン終了か否かを判断する（Ｓ２１５）。全ラインのスキャンが終了していない場合は、次のラインのスキャンに移行し（Ｓ２０３）、全ラインのスキャン終了の場合は、次のクロップがあるか否かを判断する（Ｓ２１８）。ここで、次のクロップがある場合は次のスキャンに移行し（Ｓ２０２）、無い場合はスキャンを終了する。
【００４８】
図９（ａ）はクロップが重なった場合のプレビュー画像の変化を示している。図９（ａ）において、５０１は本スキャンボタン３０５を押下直後、５０２は１枚目のスキャンが終了したときの状態、５０３は２枚目のスキャン開始前、５０４は２枚目のスキャン終了時の状態である。クロップの重なった部分は、５０２のように１枚目のスキャン終了後にはマスク処理が解除されているが、５０３のように２枚目のスキャン開始前には再度グレーのマスク処理がかけられる。このようにグレーのマスク処理を制御することで、ユーザは、クロップが重なっている場合にも、スキャンの進行状況を把握することができる。
【００４９】
ここでは、スキャナドライバ２０４が画像読取装置から画像データを受け取った部分から順にグレーのマスク処理を解除した例を説明している。スキャナドライバ２０４が当該クロップの画像データを全て受信してクロップ内の全てのマスク処理の解除後には、スキャナドライバ２０４が画像データに対して画像処理をする時間やアプリケーション２０３に画像データを転送するための時間が必要である。
【００５０】
この時間はプレビュー画像に変化が無いため、プレビュー画面上でそのクロップ内の画像を点滅表示させるなどして処理中であることをユーザに伝えても良い。また、スキャナドライバ２０４のＵＩに専用のテキストボックスを設け、そこで処理中であることを伝えても良い。さらに、画像処理を行う時間や画像データの転送時間を考慮し、当該クロップから画像データを全て受け取ってもグレーのマスク処理を全て解除せず、画像処理と転送が終わってからグレーのマスク処理を全て解除するようにしても良い。
【００５１】
以上のように実施例１では、各クロップのグレーのマスク処理が徐々に解除されることで各クロップの読取りの進行状況がわかるため、従来技術で必要としていたプログレスバーを表示しなくても良い。
【００５２】
さて、この実施例では、イベント受付部２０８で受付けた各クロップに対するユーザアクションに対して、イベントを処理するイベント処理部２０９を備えている。ここでは、一例として、スキャン中のクロップ上でのクリックにより全キャンセル部２１０或いは第１のスキップ部２１１、スキャン未処理のクロップ上でのクリックで第２のスキップ部２１２の選択実行が行えるものとする。また、スキャン未処理のクロップ上でのダブルクリックでスキャン順序変更部２１３、スキャン中のクロップ上でのトリプルクリックで中断部２１４の選択実行が行えるものとする。スキャン中のクロップ上でのクリックにより、全キャンセル部２１０と第１のスキップ部２１１のいずれを実行するかは、スキャナドライバ２０４の設定でユーザが変更可能である。尚、既にスキャンが終了しているクロップに関しては、ユーザアクションを受け付けない。
【００５３】
クロップが重なっている部分でのクリックなどによるユーザアクションは、それらのクロップのうち、現在スキャン中のクロップがあれば、そのクロップに対するユーザアクションとする。一方、現在スキャン中のクロップが無ければ、スキャン順序が最も早いクロップに対するユーザアクションとする。もし、ユーザが、任意にクロップを選択したい場合は、キーボード１０７のコントロールキーなど押下しながら、クリックなどの操作を行うことで、クロップを自由に選択してユーザアクションを起動することができる。
【００５４】
図９（ｂ）は、第１のスキップ部２１１と第２のスキップ部２１２とを実行した画像読取の進行状況を示す図である。図９（ｂ）において、６０１はコマＡをスキャンしている状態、６０２は状態６０１においてコマＡのクロップ上でクリックした場合の状態を示している。
【００５５】
スキャン中のコマＡでクリックした場合は、全キャンセル部２１０により、以降のスキャンを全てキャンセルしても良いし、第１のスキップ部２１１により、以降のスキャンを継続しても良い。ここでは、スキャナドライバ２０４の設定で、スキャン中のクロップでのクリックによって第１スキップ部を実行するようにユーザが設定しているものとする。従って、第１のスキップ部２１１の選択実行により、コマＡのスキャンがキャンセルされた後、コマＢのスキャンに移行する。このため、状態６０２で示されるように、コマＡがキャンセルされたのでコマＡのスキャン順序を示す番号は消えてコマＢからコマＦの番号が１ずつ減り、コマＡのグレーのマスク処理も解除される。
【００５６】
図９（ｂ）において、６０３は、状態６０２においてコマＣをクリックした場合の状態を示している。このとき、第２のスキップ部２１２の選択実行により、コマＣはスキャン対象から外れ、コマＣの番号が消えてコマＤからコマＦの番号が１ずつ減り、コマＣのグレーのマスク処理が解除される。
【００５７】
このように、第１のスキップ部２１１と第２のスキップ部２１２の選択実行により、本スキャンボタン３０５を押下後に、ある特定のクロップのスキャンをキャンセルして、その他は継続してスキャンすることが可能となる。例えば、フィルムスキャンでは、クロップが複数有り、解像度が高くそれぞれの読み取りに時間がかかる場合が多い。そのため、本スキャンボタン３０５を押下後に、スキャンしなくても良いクロップがあれば、そのクロップだけをスキップできることが望ましい。このスキップ機能を用いることで、似た画像のクロップが二つあれば、その１つをスキップし、他のクロップのみをスキャンすることができるし、或いは、撮影に失敗した画像等のスキャンをスキップすることができる。
【００５８】
このように実施例１によれば、従来は現在どのクロップをスキャンしているのかが分からないため、特定のクロップを指定してキャンセルすることは困難であったことが本スキャンボタンの押下後に特定のクロップを選択してキャンセルすることが可能になる。
【００５９】
以上の説明では、画像読取対象の媒体をフィルムのような透過原稿に適用して説明したが、本発明は反射原稿にも適用できる。
【００６０】
反射原稿の場合、ユーザの意図しないクロップを生成し、それをスキャンしてしまうことがある。ユーザの意図しないクロップとは、ユーザのオペレーションミスにより、プレビュー画面上でポインティングデバイス１０８を無意識にドラッグして作ってしまったクロップや、スキャナドライバ２０４の原稿検知機能で誤検知したクロップなどである。このような、ユーザの意図しないクロップ領域が大きければ、本スキャンの前にユーザが気付いて事前にスキャンの対象から外せるが、クロップ領域が小さければ、本スキャンの前に気付かない場合が多い。そのようなユーザの意図しないクロップは、本スキャンが開始してから見つかる場合もあるため、ユーザにとっては本スキャン後にもスキップできることが望ましい。
【００６１】
しかしながら、実施例１では、第２のスキップ部により、本スキャンボタンの押下後にもクロップを指定してスキップすることが可能であるため、ユーザの意図しないクロップをスキップできる。さらに実施例１では、プログレスバーを表示する必要がないため、ユーザの意図しないクロップがプログレスバーにより隠れることは無く、ユーザはそのようなクロップを見つけ易いという利点がある。
【００６２】
また、実施例１では、スキャン順序変更部２１３によって、まだスキャン未処理のクロップ上でダブルクリックすることにより、スキャン順序の変更をすることが可能である。例えば、複数のクロップにおいて、文書の原稿と写真の原稿があれば、スキャン順序の変更を行うことで、全ての文書をスキャンしてアプリケーション２０３に転送した後に、写真の原稿をスキャンしてアプリケーション２０３に転送することが可能となる。
【００６３】
また、このスキャン順序変更部２１３と中断部２１４とを用いることで、文書と写真の原稿のように、複数種類の原稿が混在している状況で、文書原稿をＯＣＲ対応アプリケーションに転送し、写真原稿を画像編集アプリケーションに転送することが可能となる。
【００６４】
この場合、ＯＣＲ対応アプリケーションからスキャナドライバ２０４を起動して、文書と写真のクロップ枠を生成し、本スキャンを開始する。本スキャン開始後、スキャン順序変更機能を利用して、まず文書の原稿からスキャンされるように順序変更を行い、全ての文書の原稿をスキャンしてＯＣＲ対応アプリケーションに転送する。ユーザは、全ての文書のスキャンと転送が終わり、１枚目の写真の原稿をスキャンしている際に、１枚目の写真のクロップ上でトリプルクリックを行う。すると、中断部２１４によって、スキャン中のクロップも含めて以降にスキャンされるクロップがキャンセルされ、スキャナドライバ２０４を終了する。
【００６５】
このとき、スキャナドライバ２０４は、まだＯＣＲアプリケーションへの転送が完了していないクロップを、履歴として記憶しておく。次に、ユーザは、画像編集アプリケーションを起動し、スキャナドライバ２０４を起動する。このとき、スキャナドライバ２０４は、前回の履歴を参照し、ＯＣＲアプリケーションへの転送が完了していないクロップを、１番から順序付けて表示する。一方、既にアプリケーションへの転送が完了しているクロップについては、プレビュー画面上にクロップとして表示されない。この状態で、本スキャンを開始することにより、画像編集アプリケーションには、全ての写真原稿がスキャンされ、その画像データが転送される。
【００６６】
以上のように実施例１に従えば、中断部２１４の機能を用いることにより、文書の原稿と写真の原稿が混在している場合にも、それぞれ別のアプリケーションに転送することが可能となる。なお、ここでは、中断部２１４によって、一旦スキャナドライバ２０４を終了し、他のアプリケーションで再度スキャナドライバ２０４を起動したが、スキャナドライバ２０４を終了せずに、同じアプリケーション２０３からスキャンを再開しても良い。
【実施例２】
【００６７】
実施例１では、クロップ枠内の領域を用いて進行状況を表現したが、ここでは、クロップ枠を用いて画像読取の進行状況を表現する例について説明する。
【００６８】
図１０は実施例２に従う画像読取の進行状況を示す図である。図１０では、現在スキャンしているクロップ枠を太字の点線７０１、次にスキャンされるクロップ枠を太線７０２で表現している。図１０では、コマＡがスキャン中の状態であり、コマＡのクロップ枠が太字の点線７０１、次にスキャンされるコマＢのクロップ枠が太線７０２になっている。このままではスキャンしているクロップの進行状況をユーザが把握できないので、実施例２では、図１０に示すようにスキャン中のクロップの進行状況を示すプログレスバー７０３を表示する。この場合、プログレスバー７０３とクロップ枠が重なると、スキャン中あるいは次にスキャンされるクロップを視覚的に把握できなくなるため、プログレスバー７０３の表示領域がプレビュー領域７０４に重ならないように制御する。
【００６９】
なお、図１０に示す例では、プログレスバー７０３を、別ダイアログで表示したが、スキャナドライバ２０４のＵＩに領域を設けて、そこでプログレスバーを表示しても良い。また、クロップ枠の一辺を、プログレスのように表示するなど、クロップ枠の表示を徐々に変化させることによって進行状況を伝えるようにしても良い。
【００７０】
このように、クロップ枠を用いて進行状況を表現する場合でも、実施例１で説明したように、クロップ上でクリックやダブルクリックなどのユーザアクションにより、全キャンセルやスキップ、順序変更、スキャンの中断をすることができる。
【００７１】
なお、以上説明した実施例では、ホストにスキャナドライバをインストールして実行する構成を例に説明したが、本発明はこれによって限定されるものではない。例えば、画像読取装置を、プリンタ部とスキャナ部とモニタ部とから構成される多機能プリンタ（ＭＦＰ）の構成とし、このＭＦＰに上述のような機能をもつスキャナドライバをインストールしても良い。この場合、そのＭＦＰの表示パネルなどでスキャンの進行状況を表現し、各操作をＭＦＰ上で行えるようにすることができる。
【００７２】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或は装置に供給し、そのシステム或は装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005665397.tif 000002
【図２】
0005665397.tif 000003
【図３】
0005665397.tif 000004
【図４】
0005665397.tif 000005
【図５】
0005665397.tif 000006
【図６】
0005665397.tif 000007
【図７】
0005665397.tif 000008
【図８】
0005665397.tif 000009
【図９】
0005665397.tif 000010
【図１０】
0005665397.tif 000011