画像読取システム、コンピュータプログラムおよび情報処理装置
【課題】種類の異なる複数の画像読取装置を使用する際に、ドライバの切り替えに必要となる切り替え時間を短縮する。
【解決手段】情報処理装置は、第1の画像読取装置を制御するための第1のドライバと、第2の画像読取装置を制御するための第2のドライバと、アプリケーションプログラムとを備えている。第1のドライバは、自身をアプリケーションプログラムと見せかけるためのアプリケーションインタフェースを備えている。第1のドライバはアプリケーションプログラムから受信した第2の画像読取装置を制御するための情報を第2のドライバへ転送する。第2のドライバは転送されてきた情報にしたがって2の画像読取装置を制御する。
【解決手段】情報処理装置は、第1の画像読取装置を制御するための第1のドライバと、第2の画像読取装置を制御するための第2のドライバと、アプリケーションプログラムとを備えている。第1のドライバは、自身をアプリケーションプログラムと見せかけるためのアプリケーションインタフェースを備えている。第1のドライバはアプリケーションプログラムから受信した第2の画像読取装置を制御するための情報を第2のドライバへ転送する。第2のドライバは転送されてきた情報にしたがって2の画像読取装置を制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、原稿の画像情報を読取る画像読取装置、画像読取方法を実行するためのプログラムに関する。
【背景技術】
【0002】
一般に、画像読取装置(以下スキャナ)には、シートフィード機能を有するシートフィードスキャナと、フラットベッドスキャナと、シートフィード機能とフラットベッド機能が一体になったスキャナ(以下複合スキャナ)との3種類が存在する。これらは用途に応じて使い分けられている。例えば大量に文書をスキャンしたいときは、シートフィードスキャナが適している。本をスキャンしたいときはフラットベッドスキャナが適している。そして、複合スキャナはその両方の用途を兼ね備えている。
【0003】
複合スキャナはシートフィード機能とフラットベッド機能が一体になっているため各種の用途に使用可能であるが、複合スキャナのサイズは一般的に大きく、可搬性に乏しい。よって、可搬性も望んでいるユーザーにとって、複合スキャナは不向きであろう。そこで、可搬性を望むユーザーはフラットベッドスキャナとシートフィードスキャナとをそれぞれ購入し、用途に応じてこれらを使い分けている。また、これらのスキャナは比較的に小さいため、使わないときはスキャナを机上から片付けることができる。
【0004】
ところで、スキャナは一般的にUSB(ユニバーサル・シリアル・バス)などの接続インターフェースを介してパーソナルコンピュータ(PC)と接続されて使用される。スキャナは、スキャナドライバと呼ばれる、アプリケーションとスキャナの仲介を行うプログラムモジュールによって制御される。スキャナが読取った画像は、スキャナドライバを介してアプリケーションプログラム(以下アプリケーション)に渡され、アプリケーションがその画像を表示したり、保存したりする。
【0005】
フラットベッドスキャナとシートフィードスキャナを購入した場合、ユーザーはフラットベッドスキャナ用ドライバ(以下フラットベッドドライバ)とシートフィードスキャナ用ドライバ(以下シートフィードドライバ)をそれぞれPCにインストールしなければならない。さらに、ユーザーは、アプリケーションを実行している最中に、使用するスキャナに対応したスキャナドライバを選択しなければならない。スキャナドライバが選択されると、アプリケーションは、これまで選択されていたスキャナドライバをメモリからアンロードし、新しく選択されたスキャナドライバをメモリにロードし、ロードしたスキャナドライバを通じてスキャナを初期化する必要がある。これらの処理は一般的に時間がかかる処理である。そのため、ユーザーは使用するスキャナを切り替えるたびに、ストレスを感じてしまうかもしれない。
【0006】
この課題を解決するために、特許文献1では、シートフィードスキャナにプラテンスキャナ(フラットベッドスキャナ)を接続できる構成にし、フラットベッドスキャナが読取った画像は、シートフィードスキャナ内で画像処理される。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−234864号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、特許文献1に記載されているスキャナシステムでは、シートフィードスキャナとフラットベッドスキャナとは専用のプラテンインタフェースによって接続されており、シートフィードスキャナがフラットベッドスキャナを制御する構成を採用している。すなわち、フラットベッドスキャナは、シートフィードスキャナがなければ機能しない構成となっている。つまり、フラットベッドスキャナは、シートフィードスキャナに完全に依存している(特許文献1、段落0031)。また、スキャナドライバは、シートフィードスキャナのみについて必要とされるものと推測される。なぜなら、フラットベッドスキャナは読取った画像の情報をシートフィードスキャナに渡し、シートフィードスキャナがその情報を画像のデータに変換するからである(特許文献1、段落0035)。このように、特許文献1に記載されたシステムでは、単一のスキャナドライバのみを用意すればよいものの、シートフィードスキャナは、フラットベッドスキャナの制御機能を備えている必要があり、両者を接続するための専用のインターフェースも必要となってしまう。また、フラットベッドスキャナを単体でPCに接続して使用することもできない。
【0009】
そこで、本発明は、このような課題および他の課題のうち、少なくとも1つを解決することを目的とする。本発明では、例えば、種類の異なる複数の画像読取装置を使用する際に、ドライバの切り替えに必要となる切り替え時間を短縮することを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
【課題を解決するための手段】
【0010】
本発明の画像読取システムは、例えば、
それぞれ種類の異なる複数の画像読取装置と、
前記複数の画像読取装置が並列または直列に接続可能な情報処理装置と
を備え、
前記情報処理装置は、
前記複数の画像読取装置のうち第1の画像読取装置を制御するための第1のドライバと、
前記複数の画像読取装置のうち前記第1の画像読取装置とは種類の異なる第2の画像読取装置を制御するための第2のドライバと、
前記第1のドライバまたは前記第2のドライバから画像のデータを受け取るアプリケーションプログラムと
を備え、
前記アプリケーションプログラムは、前記第1のドライバまたは前記第2のドライバと通信するための第1のドライバインターフェースを備え、
前記第1のドライバおよび前記第2のドライバはそれぞれ、前記アプリケーションプログラムと通信するためのアプリケーションインタフェースを備え、
前記第1のドライバは、前記第2のドライバが備えるアプリケーションインタフェースと通信するための第2のドライバインターフェースをさらに備え、
前記情報処理装置は、前記第1の画像読取装置により画像を読取る際には前記第1のドライバを介して前記第1の画像読取装置を制御し、前記第2の画像読取装置により画像を読取る際には前記第1のドライバおよび前記第2のドライバを介して前記第2の画像読取装置を制御することを特徴とする。
【発明の効果】
【0011】
本発明では、種類の異なる複数の画像読取装置を使用する際に、ドライバの切り替えに必要となる切り替え時間を短縮することができる。具体的には、第1の画像読取装置を第1のドライバにより制御し、第2の画像読取装置を第1のドライバを介して第2のドライバにより制御できるようにしたため、第1のドライバのアンロードや再ロードは不要となる。よって、ドライバの切り替えに必要となる切り替え時間を短縮することができる。
【図面の簡単な説明】
【0012】
【図1】実施形態に係るシートフィードスキャナの構成を示す図。
【図2】実施形態に係るフラットベッドスキャナの構成を示す図。
【図3A】シートフィードスキャナの電気回路の概略構成を示すブロック図。
【図3B】フラットベッドスキャナの電気回路の概略構成を示すブロック図。
【図3C】実施形態に係るPCの電気回路の概略構成を示すブロック図。
【図4】PC上のアプリケーションとスキャナドライバの構成を示す図。
【図5】シートフィードスキャナとフラットベッドスキャナがPCへ同時に接続されたときの図。
【図6】PCに複数のスキャナドライバの構成を示す図。
【図7】アプリケーションによって実行されるフラットベッドドライバのロード処理を示したフローチャート図。
【図8】フラットベッドドライバが表示するユーザーインターフェース図。
【図9】白紙検知機能のON/OFFを設定するための設定ダイアログ図。
【図10】自動読取方法の一例を示したフローチャート図。
【図11】PCに接続された3台以上のスキャナを使用するための共通のユーザーインターフェースの一例を示した図。
【図12】スキャナ選択用ダイアログの一例を示した図。
【図13】ユーザーインターフェースの他の例を示した図。
【図14】画像処理部の搭載位置を説明するためのす図。
【発明を実施するための形態】
【0013】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【0014】
以下では、それぞれ種類(例えば、読取り形式等)の異なる複数の画像読取装置と、これらの画像読取装置が並列または直列に接続可能な情報処理装置とを備えた画像読取システムについて説明する。
【0015】
なお、画像読取システムには、2種類以上の画像読取装置が少なくとも2台あればよい。すなわち、第1の読取り形式の画像読取装置が1台で、第1の読取り形式の画像読取装置が2台であってもよい。
【0016】
また、情報処理装置に対する画像読取装置の接続形態も各画像読取装置が独立かつ並列(パラレル)に情報処理装置へ接続されていてもよいし、すべての画像読取装置が直列(シーケンシャル)に接続されていてもよい。あるいは、並列接続形態と直列接続形態とが混在していてもよい。
【0017】
本実施形態では、画像読取装置を制御する制御プログラムのうちある画像読取装置のドライバが他の画像読取装置のドライバにとってはまるでアプリケーションプログラムであるかのように振舞うことに特徴があるからである。
【0018】
図1は、実施形態に係るシートフィードスキャナ1の構成を示す図である。シートフィードスキャナ1は、第1の画像読取装置とは種類の異なる第2の画像読取装置の一例である。
【0019】
なお、シートフィードスキャナは、シートスルー型スキャナと呼ばれることもある。スキャンが開始されると、シートフィードスキャナ1は原稿検知センサ9を用いて原稿Dが存在するか否かを判定する。
【0020】
原稿Dが存在していれば、ラインイメージセンサ5が白色の対向部材7を読取り、シートフィードスキャナ1はシェーディング補正用の補正データを生成する。生成された補正データは画素ごとにメモリに記憶される。
【0021】
ピックアップローラ2と給送ローラ3とがシートフィードスキャナ1内に原稿Dの束を取り込む。分離ローラ4は束を1枚ずつの原稿に分離する。第1ローラ対8aは、分離された原稿Dを副走査方向(原稿搬送方向)に搬送し、ラインイメージセンサ5は、原稿Dの上面に形成されている画像を主走査方向(原稿搬送方向と直交する方向)に沿って読取る。
【0022】
シートフィードスキャナ1は、メモリから読み出した補正用のデータを用いて読取った画像にシェーディング補正を実行する。画像が読取られた後、原稿Dは、第2ローラ対8bによって装置外部へ排出される。
【0023】
なお、本実施形態では、シートの搬送路を略水平としたシートフィードスキャナ1を例示したが、勿論これに限定されず、例えば、給紙部と排紙部とを上下に配置し、給紙部からU字形状等にカーブした搬送路を介して排紙部に排出するUターンパス型スキャナであってもよい。
【0024】
図2は、実施形態に係るフラットベッドスキャナ10の構成を示す図である。フラットベッドスキャナ10は、第1の画像読取装置の一例である。
【0025】
操作者はフラットベッドカバー14を開け、ガラス面11に原稿Dを載置する。スキャンが開始されると、フラットベッドスキャナ10は、ラインイメージセンサ12で白色の対向部材15を読取り、シェーディング補正用の補正データを生成する。生成された補正データは画素ごとにメモリに記憶される。
【0026】
ラインイメージセンサ12は、移動ユニット13によって副走査方向に移動しながら、原稿Dの下面に形成されている画像を主走査方向に沿って読取る。また、フラットベッドスキャナ10は、メモリから補正データを読み出して、画像にシェーディング補正を実行する。スキャン終了後、ラインイメージセンサ12は移動ユニット13によって元の位置に復帰する。
【0027】
図3Aは、シートフィードスキャナ1の電気回路の概略構成を示すブロック図である。
【0028】
A/D変換部21は、ラインイメージセンサ5の出力信号を、増幅や黒レベルクランプなどのアナログ処理を施した後、デジタルデータ(画像データ)に変換する。
【0029】
画像処理部22は、ラインイメージセンサ5およびA/D変換部21などの制御と、A/D変換部21から出力された画像データに各種の画像処理(シェーディング補正等)を実行する。
【0030】
画像メモリ23は、画像データを記憶する。インターフェース部24は、外部ホスト装置(PCまたは他のスキャナ装置)と通信するためのインターフェースである。
【0031】
インターフェース部24は、信号ケーブル25を介してPC等の外部ホスト装置と接続されている。なお、インターフェース部24は、無線LAN、ワイヤレスUSB、ブルートゥースなどの無線インターフェースであってもよい。また、インターフェース部24は、USBインターフェース、有線LANインターフェースなど、有線インターフェースであってもよい。ここでは、説明をわかりやすくするために、インターフェース部24は、USBハブ機能を備えたUSBインターフェースであるものと仮定する。
【0032】
CPU26は、シートフィードスキャナ1の制御を司る制御部である。画像処理部22とCPU26とは、バス27を介して接続されている。CPU26は画像処理部22を介して画像メモリ23にアクセスする。
【0033】
駆動部29は、ピックアップローラ2、給送ローラ3、分離ローラ4、ローラ対8a、8bを駆動するためのモータである。モータドライバ28は、CPU26からの指示に基づいて駆動部29を制御する制御回路である。
【0034】
図3Bは、フラットベッドスキャナ10の電気回路の概略構成を示すブロック図である。
【0035】
A/D変換部31は、ラインイメージセンサ12の出力信号を、増幅や黒レベルクランプなどのアナログ処理を施した後、デジタルデータ(画像データ)に変換する。
【0036】
画像処理部32は、ラインイメージセンサ12およびA/D変換部31などの制御と、A/D変換部31から出力された画像データに各種の画像処理(シェーディング補正等)を実行する。
【0037】
画像メモリ33は、画像データを記憶する。インターフェース部34は、外部ホスト装置(PCまたは他のスキャナ装置)と通信するためのインターフェースである。
【0038】
インターフェース部34は、信号ケーブル35を介してPC等の外部ホスト装置と接続されている。なお、インターフェース部34は、無線LAN、ワイヤレスUSB、ブルートゥースなどの無線インターフェースであってもよい。
【0039】
また、インターフェース部34は、USBインターフェース、有線LANインターフェースなど、有線インターフェースであってもよい。ここでは、説明をわかりやすくするために、インターフェース部34は、USBハブ機能を備えたUSBインターフェースであるものと仮定する。
【0040】
CPU36は、フラットベッドスキャナ10の制御を司る制御部である。画像処理部32とCPU36とは、バス37を介して接続されている。CPU36は画像処理部32を介して画像メモリ33にアクセスする。
【0041】
駆動部39は、移動ユニット13を駆動するためのモータである。モータドライバ38は、CPU36からの指示に基づいて駆動部39を制御する制御回路である。
【0042】
図3Cは、実施形態に係るPC40の電気回路の概略構成を示すブロック図である。
【0043】
CPU46は、コンピュータプログラムに基づいて、コンピュータの各ユニットを統括的に制御する制御ユニットである。CPU46は、アプリケーションプログラムやスキャナドライバにしたがって、シートフィードスキャナ1やフラットベッドスキャナ10を制御する。
【0044】
ROM41は、ファームウエアなどの制御プログラムを記憶する不揮発性の記憶ユニットである。RAM42は、ワークエリアとして機能する揮発性の記憶ユニットである。ハードディスクドライブ(HDD)43は、大容量の記憶ユニットである。
【0045】
表示装置45は、ユーザーに対して各種情報を表示するための表示ユニットである。操作部47は、ポインティングデバイスやキーボードなどの入力ユニットである。
【0046】
通信インターフェース44は、ネットワーク通信カードなどの通信ユニットである。CPU46は、通信インターフェース44を介してシートフィードスキャナ1やフラットベッドスキャナ10と通信する。
【0047】
図4は、PC40上のアプリケーションとスキャナドライバの構成を示す図である。ここでは、シートフィードスキャナ1とフラットベッドスキャナ10とのうちいずれか一方のみが単独でPC40に接続されているものと仮定する。
【0048】
ユーザーは、スキャナを購入すると、アプリケーション48とスキャナドライバ49をPCのHDD43にインストールする。アプリケーション48は、画像編集プログラムや、アルバムプログラム、文章編集プログラムなどである。
【0049】
なお、アプリケーション48は、第1のドライバまたは第2のドライバと情報の入出力が可能なプログラムであり、具体的には、第1のドライバまたは第2のドライバから画像のデータを受け取るアプリケーションプログラムの一例である。
【0050】
インストールされたアプリケーション48は、スキャナドライバ49を介してスキャナ1、10を制御したり、スキャナドライバ49から受け取った画像データに画像処理を実行したりする。よって、アプリケーション48およびCPU46は、第1の制御手段または第2の制御手段から画像のデータを受け取って画像処理を実行する画像処理手段として機能する。
【0051】
アプリケーション48とスキャナドライバ19との間、スキャナドライバ49とスキャナ1,10との間は、それぞれ決められたプロトコルで通信している。本実施形態では、アプリケーション48とスキャナドライバ49はTwain規格で決められたプロトコルで通信を行うものとする。このTwain規格で決められたプロトコルは、第1のドライバまたは第2のドライバと通信するための第1のドライバインターフェースであり、アプリケーションプログラムと通信するためのアプリケーションインタフェースの一例でもある。
【0052】
また、Twain規格で決められたプロトコルは、画像処理手段が第1の制御手段または第2の制御手段と通信するための第1のインターフェースであり、第1の制御手段が画像処理手段と通信するための第2のインターフェースであり、第1の制御手段が第2の制御手段と通信するための第3のインターフェースであり、そして第2の制御手段が画像処理手段と通信するための第4のインターフェースの一例である。スキャナドライバ49とスキャナ1、10との間では、SCSI規格で決められたプロトコルで通信を行っているものと仮定する。このように、SCSI規格で決められたプロトコルは、画像読取装置と通信するためのインターフェースである。SCSI規格で決められたプロトコルは、しかし、本発明では、これらの以外のプロトコルが採用されてもよい。なお、これらのプロトコルを介して、制御コマンドや画像データとが、スキャナ、ドライバおよびアプリケーション間で送受信されることになる。
【0053】
図5は、シートフィードスキャナ1とフラットベッドスキャナ10がPC40へ同時に接続されたときの図である。
【0054】
図5(A)では、PC40にシートフィードスキャナ1とフラットベッドスキャナ10が並列に接続されている。図5(B)では、フラットベッドスキャナ10のインターフェース部34がハブ機能を備えており、PC40→フラットベッドスキャナ10→シートフィードスキャナ1と数珠繋ぎに(シーケンシャルに)接続されている。どちらの接続状態であっても、PC40のCPU26は2つのスキャナが接続されているものとして認識する。インターフェース部34がUSBハブを内蔵していると考えれば、本実施形態を理解しやすいであろう。
【0055】
図6は、PC40に複数のスキャナドライバの構成を示す図である。従来は、図6(A)に示すように、スキャナドライバとスキャナとは1対1で設けられていた。そのため、シートフィードドライバ49aとフラットベッドドライバ49bとは完全に独立しており、両者が連携することはなかった。なお、ユーザーは、シートフィードドライバ49aとフラットベッドドライバ49bとをPC40にそれぞれインストールし、使用するスキャナに応じて、スキャナドライバをアプリケーション48で切り替えなければならなかった。スキャナの切り替え時に、アプリケーション48は、切り替え前のスキャナドライバのアンロードと、切り替え後のスキャナドライバのロードおよびスキャナの初期化処理を実行する。よって、この処理時間は比較的に長い時間であった。本実施形態によれば、詳細は後述するが、第1のドライバと第2のドライバとの連携により、上述したスキャナドライバのロードおよびスキャナの初期化等の煩雑な処理が不要となるため、図6(A)のような接続においても、シートフィードスキャナとフラットベッドスキャナとの読取動作の制御における処理時間を短縮化することができる。
【0056】
ここで、シートフィードドライバ49aおよびCPU46は、第2の画像読取装置を制御するための第2の制御手段として機能する。フラットベッドドライバ49bおよびCPU46は、第1の画像読取装置を制御するための第1の制御手段として機能する。
【0057】
図6(B)は、本実施形態のスキャナドライバの構成を示している。フラットベッドドライバ49bは、第1の画像読取装置を制御するための第1のドライバの一例である。
【0058】
シートフィードドライバ49aは、第2の画像読取装置を制御するための第2のドライバの一例である。CPU46は、アプリケーション48を起動すると、まずフラットベッドドライバ49bをRAM42へロードする。
【0059】
さらに、CPU46は、フラットベッドドライバ49bにしたがって、シートフィードドライバ49aをRAM42へロードする。シートフィードドライバ49aにとって、フラットベッドドライバ49bは、あたかもアプリケーション48と同じ役割を担う。つまり、フラットベッドドライバ49bは、シートフィードドライバ49aに対してはアプリケーション48として振舞うよう、シートフィードドライバ49aと通信するためのインターフェースを内包している。
【0060】
このインターフェースは、上述したTwain規格で決められたプロトコルであり、第1のドライバが、第2のドライバが備えるアプリケーションインタフェースと通信するための第2のドライバインターフェースの一例である。
【0061】
なお、シートフィードスキャナ1とフラットベッドスキャナ10との切り替え(選択)は、アプリケーション48から起動されるフラットベッドドライバ49bの設定画面において実行される。
【0062】
アプリケーションプログラム48は、第1の画像読取装置(フラットベッドスキャナ10)が読取った画像のデータを、第1のドライバ(フラットベッドドライバ49b)を介して受け取る。
【0063】
また、アプリケーションプログラム48は、第2の画像読取装置(シートフィードスキャナ1)が読取った画像のデータを、第1のドライバおよび第2のドライバ(シートフィードドライバ49a)を介して受け取るように構成されている。
【0064】
以上のように、フラットベッドドライバ49bとシートフィードドライバ49aの両方ともがアプリケーション48が実行されている間は常にRAM42へロードされている。
【0065】
よって、アプリケーション48の起動時にフラットベッドドライバ49bとシートフィードドライバ49aとが1度だけRAM42にロードされるだけで、アプリケーション48の実行中は、フラットベッドドライバ49bとシートフィードドライバ49aのアンロードやリロードは発生しない。したがって、本実施形態によれば、スキャナの切り替え速度は、従来例と比較して格段に速いといえる。
【0066】
図7は、アプリケーション48によって実行されるフラットベッドドライバ49aのロード処理を示したフローチャートである。ステップS701で、PC40のCPU46は、操作部47からのアプリケーション48の起動指示を受信すると、HDD43に記憶されているアプリケーション48をRAM42へロードする。これにより、アプリケーション48が起動する。
【0067】
S702で、CPU46は、アプリケーション48にしたがって、フラットベッドドライバ49bをRAM42へロードする。このように、第1の画像読取装置と第2の画像読取装置との両方が情報処理装置に接続されているときにアプリケーションプログラムが起動されると、アプリケーションプログラム(CPU46)は、第1のドライバを情報処理装置のメモリへとロードする。
【0068】
S703で、CPU46は、フラットベッドドライバ49bにしたがって、シートフィードドライバ49aがインストールされているかどうかを判定する。このように、CPU46は、第2のドライバが情報処理装置にインストールされているかどうかを判定する判定手段として機能する。
【0069】
例えば、CPU46は、フラットベッドドライバ49bが対応しているシートフィードドライバのリストを参照し、当該リストに掲載されているシートフィードドライバをHDD43から検索する。あるいは、当該シートフィードドライバをOS(オペレーティングシステム)が管理しているレジストリから検索する。シートフィードドライバが検索により発見されれば、シートフィードドライバはインストール済みである。この場合は、S704に進む。なお、シートフィードドライバがインストールされていなければ、CPU46は、シートフィードドライバのロード処理を終了する。
【0070】
S704で、CPU46は、シートフィードスキャナ1がPC40と接続されているかどうかを判定する。シートフィードスキャナ1がPC40と接続されていれば、S705に進む。なお、シートフィードスキャナ1が接続されていなければ、CPU46は、シートフィードドライバのロード処理を終了する。よって、CPU46は、第2のドライバが情報処理装置にインストールされていないときは第2のドライバのロードを実行しないロード手段として機能する。
【0071】
S705で、CPU46は、フラットベッドドライバ49bにしたがってHDD43からシートフィードドライバ49aを読出し、RAM42へロードする。このように、第1のドライバは第2のドライバを情報処理装置のメモリへとロードする。すなわち、CPU46は、第2のドライバが情報処理装置にインストールされているときは第2のドライバを情報処理装置のメモリへロードするロード手段として機能する。なお、CPU46は、アプリケーション48にしたがってフラットベッドドライバ49bをアンロードしたときに、シートフィードドライバ49aもアンロードする。
【0072】
図8は、フラットベッドドライバが表示するユーザーインターフェースの一例を示した図である。ユーザーインターフェース51はフラットベッドスキャナ10のみがPC40に接続されているときにアプリケーション48によって呼び出されて表示装置45に表示されるユーザーインターフェースである。
【0073】
すなわち、ユーザーインターフェース51はフラットベッドドライバ49bのユーザーインターフェースである。ユーザーインターフェース51では、カラーモード、読取サイズおよび解像度を設定できる。
【0074】
CPU46は、スキャンボタン54の押し下げを検出すると、スキャンの開始をスキャナドライバに指示する。Closeボタン55の押し下げを検出すると、CPU46は、ユーザーインターフェースを閉じる。
【0075】
ユーザーインターフェース52はシートフィードスキャナ1のみがPC40に接続されているときにアプリケーション48によって呼び出されて表示装置45に表示されるユーザーインターフェースである。すなわち、ユーザーインターフェース52はシートフィードドライバ49aのユーザーインターフェースである。なお、ユーザーインターフェース52には、特殊機能ボタン56が追加されている。
【0076】
シートフィードスキャナ1は、フラットベッドスキャナ10に比べて単位時間あたりに大量の原稿をスキャンできる。そのため、原稿束の中には、ユーザーが誤って白紙原稿を混ぜてしまう場合がある。そういった白紙原稿を見つけ、画像化しない機能(白紙検知機能)をシートフィードスキャナ1は持っている。本実施形態では、CPU46が特殊機能ボタン56の押し下げを検出すると、白紙検知機能のON/OFFを設定するための設定ダイアログ57を表示装置45に表示する。
【0077】
図9は、白紙検知機能のON/OFFを設定するための設定ダイアログ57を示した図である。この設定の初期値はOFFである。
【0078】
図8の説明に戻る。ユーザーインターフェース53はフラットベッドスキャナ10とシートフィードスキャナ1との両方がPC40に接続されているときに表示されるユーザーインターフェースである。
【0079】
CPU46は、S705でシートフィードドライバ49aのロードに成功すると、フラットベッドドライバ49bにしたがってユーザーインターフェース53を表示装置45に表示する。
【0080】
シートフィードドライバ49aのロードに失敗したときは、ユーザーインターフェース51が表示される。ユーザーインターフェース51と比較すると、ユーザーインターフェース53では、読取方法(読取りに使用する画像読取装置)の設定項目が追加されている。
【0081】
よって、ユーザーは、読取方法の設置項目においてフラットベッドスキャナ10とシートフィードスキャナ1とを切り替えて使用できる。このように、CPU46や表示装置45は、第1の画像読取装置と第2の画像読取装置とのどちらを選択するかを操作者に問い合せるためのユーザーインターフェースを表示する表示手段として機能する。
【0082】
ユーザーが設定したカラーモード、解像度、サイズなどの設定情報の保存は、フラットベッドドライバ49b(CPU46)が行う。そのため、ユーザーがアプリケーション48でシートフィードドライバ49aを直接選択した場合、ユーザーインターフェース53で設定されたカラーモード、解像度、サイズの内容は、シートフィードドライバ49aには適用されない。
【0083】
つまり、ユーザーがアプリケーション48で直接的にシートフィードドライバ49aを使用するときは、ユーザーインターフェース53で設定された設定情報が復元されない。設定情報は、PC40内の所定の場所(例:レジストリファイル)に保存される。レジストリファイル自身は、HDD43に記憶される。
【0084】
上述した白紙検知機能については、フラットベッドドライバ49bがシートフィードドライバ49aをロードするときに初期化処理を実行するので、OFFとなる。
【0085】
解像度の選択項目としてはフラットベッドドライバ49bとシートフィードドライバ49aとの両方がサポートしている解像度のみが表示される。フラットベッドドライバ49b(CPU46)は、シートフィードドライバ49aがサポートしている解像度をシートフィードドライバ49aから取得し、その中から、フラットベッドドライバ49bもサポートしている解像度のみを抽出する。
【0086】
このようにして、ユーザーインターフェース53上で選択可能な解像度が決定される。サイズ、カラーモードに関しても同様の抽出処理が実行されてもよい。これにより、シートフィードドライバ49aとフラットベッドドライバ49bとが共通して採用しているサイズ、カラーモードだけを抽出して、ユーザーインターフェース53に反映させることができる。
【0087】
このように、CPU46は、第1の画像読取装置が対応している機能と第2の画像読取装置が対応している機能とを比較し、第1の画像読取装置と第2の画像読取装置とに共通している機能を抽出する手段として機能する。また、CPU46および表示装置45は、抽出された機能の設定項目をユーザーインターフェースに表示する表示手段として機能する。
【0088】
図10は、自動読取方法の一例を示したフローチャートである。図8に示したユーザーインターフェース53は、読取方法の選択項目として「自動」を有している。ユーザーが読取方法(自動)を選択したこと、および、スキャンボタン54を押し下げたことを検出すると、CPU46は、スキャンを開始する。
【0089】
S1001で、CPU46は、シートフィードスキャナ1に原稿が載置されているかどうかを判定する。例えば、CPU46は、フラットベッドドライバ49bを介してシートフィードドライバ49aにシートフィードスキャナ1に原稿が載置されているかどうかを問い合せる。
【0090】
シートフィードドライバ49a(CPU46)は、原稿検知センサ9の検知情報を取得し、原稿の有無をフラットベッドドライバ49bに伝える。原稿がシートフィードスキャナ1の原稿台に載置されていれば、S1002に進む。
【0091】
S1002で、CPU46は、フラットベッドドライバ49bを介してシートフィードドライバ49aにスキャン開始コマンドを送信する。なお、ユーザーインターフェース53において、フラットベッドスキャナ10が選択されたときは、CPU46は、画像の読取開始コマンドをフラットベッドスキャナ10(第1の画像読取装置)に送信する第1の送信手段として機能する。
【0092】
シートフィードドライバ49aは、スキャン開始コマンドを受信すると、シートフィードスキャナ1のCPU26にスキャン開始コマンドを転送する。このように、CPU46は、ユーザーインターフェース53を通じてシートフィードスキャナ1(第2の画像読取装置)が選択されると、スキャン開始コマンド(画像の読取開始コマンド)を第2の画像読取装置に送信する第2の送信手段として機能する。
【0093】
シートフィードスキャナ1のCPU26は、スキャン開始コマンドを受信すると、スキャン処理を開始する。CPU26は、ラインイメージセンサ5および画像処理部22を制御して画像データを生成し、シートフィードドライバ49aへ画像データを転送する。シートフィードドライバ49aは、画像データをフラットベッドドライバ49bに転送する。
【0094】
このように、シートフィードドライバ49aは、第2の画像読取装置から転送されてきた画像のデータを第1のドライバへ受け渡す手段としてCPU46を機能させている。さらに、フラットベッドドライバ49bは画像データをアプリケーション48に転送する。よって、フラットベッドドライバ49bは、第2のドライバから受け渡された画像のデータをアプリケーションプログラムへ受け渡す手段としてCPU46を機能させている。
【0095】
一方、シートフィードスキャナ1に原稿が載置されていなければ、S1003に進む。S1003でCPU46は、フラットベッドドライバ49bにスキャン開始コマンドを送信する。
【0096】
フラットベッドドライバ49bは、スキャン開始コマンドを受信すると、フラットベッドスキャナ10のCPU36にスキャン開始コマンドを転送する。フラットベッドスキャナ10のCPU36は、スキャン開始コマンドを受信すると、スキャン処理を開始する。
【0097】
CPU36は、ラインイメージセンサ12および画像処理部32を制御して画像データを生成し、フラットベッドドライバ49bへ画像データを転送する。フラットベッドドライバ49bは、画像データをアプリケーション48に転送する。
【0098】
なお、白紙検知機能がONに設定されている場合、フラットベッドドライバ49bまたはシートフィードドライバ49a白紙検知機能は、原稿画像内を調べ、白紙かどうかを判定する。白紙であれば画像データを破棄する。例えば、CPU46または画像処理部22、32は、画像を2値画像へ変換する。次に2値画像変換した画像内の黒画素数を数え、その数が画像全体の2割以下のときに、原稿画像を白紙と判定する。
【0099】
次にPC40から、シートフィードスキャナ1にフラットベッドスキャナ10を介して、どのようにしてコマンドがやり取りされるかについてさらに詳細に説明する。本実施形態では、フラットベッドスキャナ10はUSBハブを備えている。そのため、図5(B)が示すように、PC40とシートフィードスキャナ1との間にフラットベッドスキャナ10が介在していても、PC40から直接的にシートフィードスキャナ1にコマンドを送信することができる。つまりPC40のCPU46にとって、図5(A)の接続形態も図5(B)の接続形態もUSBレベルにおいて違いはないからである。このように、シートフィードスキャナ1とフラットベッドスキャナ10とはスキャナ読取処理に関して独立している。
【0100】
すなわち、シートフィードスキャナ1にとってフラットベッドスキャナ10はPC40への信号とPC40からの信号との中継点に過ぎない。フラットベッドスキャナ10のCPU36や画像処理部32も、シートフィードスキャナ1の信号の中継に関与しない。これは、シートフィードドライバ49aがフラットベッドドライバ49bに依存していることと比較すると、対照的といえよう。
【0101】
次に、フラットベッドドライバ49bがCPU46と協働して実行するコマンド解析処理について説明する。
【0102】
シートフィードスキャナ1とフラットベッドスキャナ10とが同時にPC40に接続されている状態でアプリケーション48からシートフィードドライバ49aにコマンドを送るときは、フラットベッドドライバ49bを経由する。
【0103】
そのため、フラットベッドドライバ49bは、アプリケーション48からのコマンドを解析し、解析結果にしたがってフラットベッドスキャナ10とシートフィードスキャナ1の制御を行う。
【0104】
フラットベッドスキャナ10とシートフィードスキャナ1のどちらを制御するかは、ユーザーインターフェース53の設定に依存している。ユーザーインターフェース53において読取方法として「フラットベッド」が選択されているときは、フラットベッドドライバ49bはアプリケーション48からのコマンドを受信し、フラットベッドスキャナ10を制御する。
【0105】
また、読取方法として「フィーダー」が選択されているときは、フラットベッドドライバ49bは、アプリケーション48からのコマンドをシートフィードドライバ49aにそのまま転送する。
【0106】
シートフィードドライバ49aは、フラットベッドドライバ49bを介してアプリケーション48からのコマンドを受信し、シートフィードスキャナ1を制御する。
【0107】
読取方法として「自動」が選択されているときは、原稿がシートフィードスキャナ1にセットされているかどうかに応じて、一方のスキャナ装置を選択する。コマンドの送受信方法は、選択されたスキャナ装置に応じた送受信方法が選択されることになる。
【0108】
次に、スキャン画像(画像データ)がスキャナからスキャナドライバを介してアプリケーション48に渡るまでの処理について説明する。読取方法として「フラットベッド」が選択されているときは、フラットベッドドライバ49bが、フラットベッドスキャナ10を制御し、画像を取得し、アプリケーション48にスキャン画像を渡す。また、読取方法として「フィーダー」が選択されているときは、フラットベッドドライバ49bが、シートフィードドライバ49aから画像を取得し、そのままアプリケーション48に渡す。
【0109】
以上、本実施形態によれば、シートフィードスキャナ1とフラットベッドスキャナ10とが同時にPC40に接続されているときは、ユーザーは、フラットベッドドライバ49bを介して2つのスキャナを使用することができる。よって、ユーザーは、一度、アプリケーション48においてフラットベッドドライバ49bを選択すれば、使用するスキャナを切り替えるためにドライバの再選択は必要がない。
【0110】
すなわち、従来必要であったフラットベッドドライバ49bのアンロードとシートフィードドライバ49aのロードは省略できる。これは、アプリケーション48の起動時にフラットベッドドライバ49bがシートフィードドライバ49aをRAM42へすでにロードしているためである。よって、スキャナドライバの切り替えに伴って必要であったアンロードおよびロードに伴う処理時間が不要となる。頻繁にシートフィードスキャナ1とフラットベッドスキャナ10とを切り替えるような使用環境では、本実施形態の効果は高い。
【0111】
また、フラットベッドドライバ49bは、アプリケーションプログラムとしてシートフィードドライバ49aと通信するためのプロトコル(例:Twain)に対応しているため、シートフィードドライバ49aにとってはフラットベッドドライバ49bがアプリケーションとして見える。
【0112】
よって、フラットベッドスキャナ10をすでに所有しているユーザーが新しくシートフィードスキャナ1を追加購入しても、フラットベッドドライバ49bを介してフラットベッドスキャナ10と新しいシートフィードスキャナ1との両方を使うことができる。
【0113】
また、メーカーにとっては、フラットベッドドライバ49bを新製品のシートフィードスキャナ1に対応させるためのバージョンアップを行う必要はない。フラットベッドドライバ49bは、シートフィードドライバ49aと通信するためのプロトコルをすでに備えているからである。
【0114】
本実施形態では、フラットベッドドライバ49bを介してシートフィードドライバ49aを使用したが、シートフィードドライバ49aを介してフラットベッドドライバ49bを使用できるように構成してもよい。この場合は、上述の説明において、フラットベッドドライバ49bとシートフィードドライバ49aとを読み替えるとともに、フラットベッドスキャナ10とシートフィードスキャナ1とを読み替えればよい。
【0115】
図11は、PC40に接続された3台以上のスキャナを使用するための共通のユーザーインターフェース1101の一例を示した図である。PC40に接続できるスキャナの台数は3台以上であってもよい。
【0116】
この場合のユーザーインターフェース1101に、スキャナを選択するためのコンボボックスが追加されることになる。コンボボックスには、選択可能なスキャナの名称が列挙されることになる。なお、図11に示したユーザーインターフェース1101は、1台のフラットベッドスキャナと、4つのシートフィードスキャナとが接続されているときのユーザーインターフェースの一例である。
【0117】
図12は、スキャナ選択用ダイアログの一例を示した図である。上述したコンボボックスに代えて、図12に示したスキャナ選択用ダイアログ1201が採用されてもよい。ユーザーがスキャナ選択用ダイアログ1201から所望の一つを選択すると、選択されたスキャナに対応したスキャナドライバがRAM42へロードされる。RAM42へのスキャナドライバのロードは1度限りでよいことは上述した通りである。
【0118】
読取方法として「自動」が選択されているときは、CPU46は、スキャナドライバを通じて、PC40に接続されているすべてのシートフィードスキャナの原稿台を調査し、原稿が載置されているシートフィードスキャナのみにスキャン開始コマンドを送信するようにしてもよい。
【0119】
図13は、ユーザーインターフェースの他の例を示した図である。上記の実施形態では、フラットベッドドライバ49bが、フラットベッドスキャナ10とシートフィードスキャナ1とで共通にサポートしている機能についての選択項目のみをユーザーインターフェースに表示している。
【0120】
図13が示すように、ユーザーインターフェース1301には、両者に共通でない選択項目が表示されてもよい。例えば、フラットベッドスキャナ10が解像度1200dpiをサポートしており、シートフィードスキャナ1ではこれをサポートしていないものとする。
【0121】
さらに、シートフィードスキャナ1は白紙検知機能をサポートおり、フラットベッドスキャナ10もこれをサポートしているものと仮定する。この場合、読取方法として「フィーダー」が選択されると、CPU46は、解像度1200dpiはグレーアウト表示に切り替えることで、解像度1200dpiを無効としてもよい。
【0122】
このように、CPU46は、抽出されなかった機能の設定項目をユーザーインターフェースで操作不可能となるように表示装置45に表示する手段として機能する。一方、フラットベッドが選択されると、CPU46は、解像度1200dpiについてグレーアウト表示から有効表示に切り替える。
【0123】
よって、CPU46は、ユーザーインターフェースを通じて選択されたどの画像読取装置が選択されたかを判別する判別手段と、ユーザーインターフェースを通じて選択された画像読取装置が備える機能に応じてユーザーインターフェースにおける操作可能項目を変更する変更手段として機能する。
【0124】
上述したように、ユーザーが特殊機能ボタン56を押すと、CPU46は、図9に示した設定ダイアログ57を表示する。設定ダイアログ57は、フラットベッドドライバ49bがシートフィードドライバ49aの設定ダイアログを呼び出して表示装置45に表示したものである。
【0125】
よって、CPU46は、ユーザーが読取方法をフィーダーに設定したときに特殊機能ボタン56を選択可能なように表示する。一方、そうでないときは、CPU46は、特殊機能ボタン56を無効とすべく、グレーアウト表示に切り替える。
【0126】
本実施形態では、フラットベッドスキャナ10にシートフィードスキャナ1を接続し、フラットベッドドライバ49bでシートフィードドライバ49aを制御するものと仮定して説明した。しかし、シートフィードスキャナ1にフラットベッドスキャナ10を接続し、シートフィードドライバ49aでフラットベッドドライバ49bを制御してもよい。また、スキャナの組み合わせは、フラットベッドスキャナ10、シートフィードスキャナ1に限定されるものではない。すなわち、種類の異なる複数の画像読取装置をPC40に接続するときも本実施形態に係る発明を適用できる。
【0127】
図14は、画像処理部の搭載位置を説明するためのす図である。上記の実施形態では、図14(A)が示すように、フラットベッドスキャナ10とシートフィードスキャナ1とがそれぞれ画像処理部を備えており、画像処理部は共通化されてはいない。しかし、図14(B)が示すように、フラットベッドドライバ49bとシートフィードドライバ49aとのそれぞれが画像処理部を備えてもよい。
【0128】
以上説明したように、本実施形態によれば、第1の画像読取装置を第1のドライバにより制御し、第2の画像読取装置を第1のドライバを介して第2のドライバにより制御できるようにしたため、第1のドライバをアンロードしたり、再ロードしたりする時間を省略できる。よって、ドライバの切り替えに必要となる切り替え時間を短縮することができる。
【0129】
例えば、読取り形式の異なる複数の画像読取装置がPC(情報処理装置)に接続されているときにアプリケーションプログラム48が起動されると、アプリケーションプログラム48は第1のドライバを情報処理装置のメモリへとロードする。さらに、第1のドライバは第2のドライバを情報処理装置のメモリへとロードする。よって、ユーザーインターフェース53などにおいて使用すべきスキャナを切り替えたとしても、ドライバのアンロード、ロードおよび初期化処理は発生しない。すなわち、スキャナドライバの切り替えに必要となる切り替え時間を従来よりも短縮できる。
【0130】
また、第2の画像読取装置が読取った画像のデータを第1のドライバおよび第2のドライバを介してアプリケーションプログラムが受け取るように、第1のドライバを構成したことで、第2の画像読取装置用の第2のドライバについては変更することなく、本発明を適用できる。
【0131】
すなわち、第2のドライバについての更新やバージョンアップの手間を省くことができる。また、第2のドライバがインストールされていれば当該第2のドライバをメモリにロードし、第2のドライバがインストールされていなければ当該第2のドライバをロードしないように第1のドライバを構成している。すなわち、第2のドライバのロード処理はアプリケーションプログラムではなく第1のドライバが担当している。
【0132】
また、第1のドライバが提供するユーザーインターフェース上で画像読取装置を切り替えるようにしているため、画像読取装置の切り替えに伴うドライバのアンロード、ロードおよび初期化処理は必要がない。なお、第2の画像読取装置が選択されたときは第1のドライバがアプリケーションプログラムのように振舞って第2のドライバへコマンドを渡す。それ故、第2のドライバは、本発明を適用する上での特別な更新や改変は必要がない。
【0133】
また、第1のドライバのユーザーインターフェースでは、第1の画像読取装置と第2の画像読取装置とで共通している機能についてその設定項目が設けられている。よって、どの画像読取装置が選択されても、読取り処理に反映することが不可能な設定を操作者が行ってしまうことを防止できる。
【0134】
なお、共通していない設定項目については、ユーザーインターフェースから消去してしまったり、操作不可能なようにグレーアウト表示したりしてもよい。グレーアウト表示された設定項目は、操作者により選択されなかった他の画像読取装置では設定可能な項目であることを操作者に示唆することができる。
【0135】
また、ユーザーインターフェースを通じて選択された画像読取装置が備える機能に応じて、ユーザーインターフェースにおける操作可能な設定項目を変更してもよい。この場合は、複数の画像読取装置に共通しているものだけでなく、選択された画像読取装置で設定可能な設定項目をすべて表示することができる。よって、操作者は選択した画像読取装置が備えるすべての機能を使用することができる。
【0136】
さらに、シートスルー型スキャナのドライバと通信可能なフラットベッド型スキャナのドライバを用いることにより、例えば、情報処理装置(PC)からの読取指示信号をシートスルー型スキャナに伝達することができる。逆に、情報処理装置は、シートスルー型スキャナでの読取画像をシートスルー型スキャナのドライバからフラットベッド型スキャナのドライバを経由して取得することができる。これにより、フラットベッド型スキャナを情報処理装置と既存のシートスルー型スキャナとの間に接続することが可能となる。すなわち、フラットベッドスキャナに複数の接続部を設けるだけで、情報処理装置にフラットベッド型スキャナを接続すると共にフラットベッド型スキャナに既存のシートスルー型スキャナを接続することができる。
【0137】
その結果、ユーザーは、フラットベッド型スキャナを導入するだけで、情報処理装置の操作に基づいて、フラットベッド型スキャナとシートスルー型スキャナとを1つのスキャナユニットとして容易に使い分けすることができる。また、シートスルー型スキャナを保有するユーザーは、既存のシートスルー型スキャナを改良(改造)することなく、フラットベッド型スキャナを追加利用することができる。
【0138】
なお、上述した本実施形態では、異なる種類の画像読取装置に基づいて説明したが、ここでいう異なる種類の画像読取装置とは、読み取り形式に限定されず、例えば、略同一の読み取り形式の読取装置であってもよいし、読取の原稿サイズ(A4以下の対応機種と、A3以下の対応機種等)が違う装置、スペック(性能)違いの装置、あるいは型式違いの装置等を含み、上述した実施形態に限定されるものではない。
【符号の説明】
【0139】
1…シートフィードスキャナ
2…ピックアップローラ
3…搬送ローラ
4…分離ローラ
5…ラインイメージセンサ
7…対向面
8a…第1ローラ対
8b…第1ローラ対
9…原稿検知センサ
10…フラットベッドスキャナ10
11…ガラス
12…ラインイメージセンサ
13…移動ユニット
14…スキャナカバー
15…対向面
21…A/D変換部
22…画像処理部
23…メモリ
24…インターフェース部
25…信号ケーブル
26…CPU
27…バス
28…モータドライバ
29…駆動部
40…PC
48…アプリケーション
49…スキャナドライバ
51…ユーザーインターフェース
52…ユーザーインターフェース
53…ユーザーインターフェース
【技術分野】
【0001】
本発明は、原稿の画像情報を読取る画像読取装置、画像読取方法を実行するためのプログラムに関する。
【背景技術】
【0002】
一般に、画像読取装置(以下スキャナ)には、シートフィード機能を有するシートフィードスキャナと、フラットベッドスキャナと、シートフィード機能とフラットベッド機能が一体になったスキャナ(以下複合スキャナ)との3種類が存在する。これらは用途に応じて使い分けられている。例えば大量に文書をスキャンしたいときは、シートフィードスキャナが適している。本をスキャンしたいときはフラットベッドスキャナが適している。そして、複合スキャナはその両方の用途を兼ね備えている。
【0003】
複合スキャナはシートフィード機能とフラットベッド機能が一体になっているため各種の用途に使用可能であるが、複合スキャナのサイズは一般的に大きく、可搬性に乏しい。よって、可搬性も望んでいるユーザーにとって、複合スキャナは不向きであろう。そこで、可搬性を望むユーザーはフラットベッドスキャナとシートフィードスキャナとをそれぞれ購入し、用途に応じてこれらを使い分けている。また、これらのスキャナは比較的に小さいため、使わないときはスキャナを机上から片付けることができる。
【0004】
ところで、スキャナは一般的にUSB(ユニバーサル・シリアル・バス)などの接続インターフェースを介してパーソナルコンピュータ(PC)と接続されて使用される。スキャナは、スキャナドライバと呼ばれる、アプリケーションとスキャナの仲介を行うプログラムモジュールによって制御される。スキャナが読取った画像は、スキャナドライバを介してアプリケーションプログラム(以下アプリケーション)に渡され、アプリケーションがその画像を表示したり、保存したりする。
【0005】
フラットベッドスキャナとシートフィードスキャナを購入した場合、ユーザーはフラットベッドスキャナ用ドライバ(以下フラットベッドドライバ)とシートフィードスキャナ用ドライバ(以下シートフィードドライバ)をそれぞれPCにインストールしなければならない。さらに、ユーザーは、アプリケーションを実行している最中に、使用するスキャナに対応したスキャナドライバを選択しなければならない。スキャナドライバが選択されると、アプリケーションは、これまで選択されていたスキャナドライバをメモリからアンロードし、新しく選択されたスキャナドライバをメモリにロードし、ロードしたスキャナドライバを通じてスキャナを初期化する必要がある。これらの処理は一般的に時間がかかる処理である。そのため、ユーザーは使用するスキャナを切り替えるたびに、ストレスを感じてしまうかもしれない。
【0006】
この課題を解決するために、特許文献1では、シートフィードスキャナにプラテンスキャナ(フラットベッドスキャナ)を接続できる構成にし、フラットベッドスキャナが読取った画像は、シートフィードスキャナ内で画像処理される。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−234864号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、特許文献1に記載されているスキャナシステムでは、シートフィードスキャナとフラットベッドスキャナとは専用のプラテンインタフェースによって接続されており、シートフィードスキャナがフラットベッドスキャナを制御する構成を採用している。すなわち、フラットベッドスキャナは、シートフィードスキャナがなければ機能しない構成となっている。つまり、フラットベッドスキャナは、シートフィードスキャナに完全に依存している(特許文献1、段落0031)。また、スキャナドライバは、シートフィードスキャナのみについて必要とされるものと推測される。なぜなら、フラットベッドスキャナは読取った画像の情報をシートフィードスキャナに渡し、シートフィードスキャナがその情報を画像のデータに変換するからである(特許文献1、段落0035)。このように、特許文献1に記載されたシステムでは、単一のスキャナドライバのみを用意すればよいものの、シートフィードスキャナは、フラットベッドスキャナの制御機能を備えている必要があり、両者を接続するための専用のインターフェースも必要となってしまう。また、フラットベッドスキャナを単体でPCに接続して使用することもできない。
【0009】
そこで、本発明は、このような課題および他の課題のうち、少なくとも1つを解決することを目的とする。本発明では、例えば、種類の異なる複数の画像読取装置を使用する際に、ドライバの切り替えに必要となる切り替え時間を短縮することを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
【課題を解決するための手段】
【0010】
本発明の画像読取システムは、例えば、
それぞれ種類の異なる複数の画像読取装置と、
前記複数の画像読取装置が並列または直列に接続可能な情報処理装置と
を備え、
前記情報処理装置は、
前記複数の画像読取装置のうち第1の画像読取装置を制御するための第1のドライバと、
前記複数の画像読取装置のうち前記第1の画像読取装置とは種類の異なる第2の画像読取装置を制御するための第2のドライバと、
前記第1のドライバまたは前記第2のドライバから画像のデータを受け取るアプリケーションプログラムと
を備え、
前記アプリケーションプログラムは、前記第1のドライバまたは前記第2のドライバと通信するための第1のドライバインターフェースを備え、
前記第1のドライバおよび前記第2のドライバはそれぞれ、前記アプリケーションプログラムと通信するためのアプリケーションインタフェースを備え、
前記第1のドライバは、前記第2のドライバが備えるアプリケーションインタフェースと通信するための第2のドライバインターフェースをさらに備え、
前記情報処理装置は、前記第1の画像読取装置により画像を読取る際には前記第1のドライバを介して前記第1の画像読取装置を制御し、前記第2の画像読取装置により画像を読取る際には前記第1のドライバおよび前記第2のドライバを介して前記第2の画像読取装置を制御することを特徴とする。
【発明の効果】
【0011】
本発明では、種類の異なる複数の画像読取装置を使用する際に、ドライバの切り替えに必要となる切り替え時間を短縮することができる。具体的には、第1の画像読取装置を第1のドライバにより制御し、第2の画像読取装置を第1のドライバを介して第2のドライバにより制御できるようにしたため、第1のドライバのアンロードや再ロードは不要となる。よって、ドライバの切り替えに必要となる切り替え時間を短縮することができる。
【図面の簡単な説明】
【0012】
【図1】実施形態に係るシートフィードスキャナの構成を示す図。
【図2】実施形態に係るフラットベッドスキャナの構成を示す図。
【図3A】シートフィードスキャナの電気回路の概略構成を示すブロック図。
【図3B】フラットベッドスキャナの電気回路の概略構成を示すブロック図。
【図3C】実施形態に係るPCの電気回路の概略構成を示すブロック図。
【図4】PC上のアプリケーションとスキャナドライバの構成を示す図。
【図5】シートフィードスキャナとフラットベッドスキャナがPCへ同時に接続されたときの図。
【図6】PCに複数のスキャナドライバの構成を示す図。
【図7】アプリケーションによって実行されるフラットベッドドライバのロード処理を示したフローチャート図。
【図8】フラットベッドドライバが表示するユーザーインターフェース図。
【図9】白紙検知機能のON/OFFを設定するための設定ダイアログ図。
【図10】自動読取方法の一例を示したフローチャート図。
【図11】PCに接続された3台以上のスキャナを使用するための共通のユーザーインターフェースの一例を示した図。
【図12】スキャナ選択用ダイアログの一例を示した図。
【図13】ユーザーインターフェースの他の例を示した図。
【図14】画像処理部の搭載位置を説明するためのす図。
【発明を実施するための形態】
【0013】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【0014】
以下では、それぞれ種類(例えば、読取り形式等)の異なる複数の画像読取装置と、これらの画像読取装置が並列または直列に接続可能な情報処理装置とを備えた画像読取システムについて説明する。
【0015】
なお、画像読取システムには、2種類以上の画像読取装置が少なくとも2台あればよい。すなわち、第1の読取り形式の画像読取装置が1台で、第1の読取り形式の画像読取装置が2台であってもよい。
【0016】
また、情報処理装置に対する画像読取装置の接続形態も各画像読取装置が独立かつ並列(パラレル)に情報処理装置へ接続されていてもよいし、すべての画像読取装置が直列(シーケンシャル)に接続されていてもよい。あるいは、並列接続形態と直列接続形態とが混在していてもよい。
【0017】
本実施形態では、画像読取装置を制御する制御プログラムのうちある画像読取装置のドライバが他の画像読取装置のドライバにとってはまるでアプリケーションプログラムであるかのように振舞うことに特徴があるからである。
【0018】
図1は、実施形態に係るシートフィードスキャナ1の構成を示す図である。シートフィードスキャナ1は、第1の画像読取装置とは種類の異なる第2の画像読取装置の一例である。
【0019】
なお、シートフィードスキャナは、シートスルー型スキャナと呼ばれることもある。スキャンが開始されると、シートフィードスキャナ1は原稿検知センサ9を用いて原稿Dが存在するか否かを判定する。
【0020】
原稿Dが存在していれば、ラインイメージセンサ5が白色の対向部材7を読取り、シートフィードスキャナ1はシェーディング補正用の補正データを生成する。生成された補正データは画素ごとにメモリに記憶される。
【0021】
ピックアップローラ2と給送ローラ3とがシートフィードスキャナ1内に原稿Dの束を取り込む。分離ローラ4は束を1枚ずつの原稿に分離する。第1ローラ対8aは、分離された原稿Dを副走査方向(原稿搬送方向)に搬送し、ラインイメージセンサ5は、原稿Dの上面に形成されている画像を主走査方向(原稿搬送方向と直交する方向)に沿って読取る。
【0022】
シートフィードスキャナ1は、メモリから読み出した補正用のデータを用いて読取った画像にシェーディング補正を実行する。画像が読取られた後、原稿Dは、第2ローラ対8bによって装置外部へ排出される。
【0023】
なお、本実施形態では、シートの搬送路を略水平としたシートフィードスキャナ1を例示したが、勿論これに限定されず、例えば、給紙部と排紙部とを上下に配置し、給紙部からU字形状等にカーブした搬送路を介して排紙部に排出するUターンパス型スキャナであってもよい。
【0024】
図2は、実施形態に係るフラットベッドスキャナ10の構成を示す図である。フラットベッドスキャナ10は、第1の画像読取装置の一例である。
【0025】
操作者はフラットベッドカバー14を開け、ガラス面11に原稿Dを載置する。スキャンが開始されると、フラットベッドスキャナ10は、ラインイメージセンサ12で白色の対向部材15を読取り、シェーディング補正用の補正データを生成する。生成された補正データは画素ごとにメモリに記憶される。
【0026】
ラインイメージセンサ12は、移動ユニット13によって副走査方向に移動しながら、原稿Dの下面に形成されている画像を主走査方向に沿って読取る。また、フラットベッドスキャナ10は、メモリから補正データを読み出して、画像にシェーディング補正を実行する。スキャン終了後、ラインイメージセンサ12は移動ユニット13によって元の位置に復帰する。
【0027】
図3Aは、シートフィードスキャナ1の電気回路の概略構成を示すブロック図である。
【0028】
A/D変換部21は、ラインイメージセンサ5の出力信号を、増幅や黒レベルクランプなどのアナログ処理を施した後、デジタルデータ(画像データ)に変換する。
【0029】
画像処理部22は、ラインイメージセンサ5およびA/D変換部21などの制御と、A/D変換部21から出力された画像データに各種の画像処理(シェーディング補正等)を実行する。
【0030】
画像メモリ23は、画像データを記憶する。インターフェース部24は、外部ホスト装置(PCまたは他のスキャナ装置)と通信するためのインターフェースである。
【0031】
インターフェース部24は、信号ケーブル25を介してPC等の外部ホスト装置と接続されている。なお、インターフェース部24は、無線LAN、ワイヤレスUSB、ブルートゥースなどの無線インターフェースであってもよい。また、インターフェース部24は、USBインターフェース、有線LANインターフェースなど、有線インターフェースであってもよい。ここでは、説明をわかりやすくするために、インターフェース部24は、USBハブ機能を備えたUSBインターフェースであるものと仮定する。
【0032】
CPU26は、シートフィードスキャナ1の制御を司る制御部である。画像処理部22とCPU26とは、バス27を介して接続されている。CPU26は画像処理部22を介して画像メモリ23にアクセスする。
【0033】
駆動部29は、ピックアップローラ2、給送ローラ3、分離ローラ4、ローラ対8a、8bを駆動するためのモータである。モータドライバ28は、CPU26からの指示に基づいて駆動部29を制御する制御回路である。
【0034】
図3Bは、フラットベッドスキャナ10の電気回路の概略構成を示すブロック図である。
【0035】
A/D変換部31は、ラインイメージセンサ12の出力信号を、増幅や黒レベルクランプなどのアナログ処理を施した後、デジタルデータ(画像データ)に変換する。
【0036】
画像処理部32は、ラインイメージセンサ12およびA/D変換部31などの制御と、A/D変換部31から出力された画像データに各種の画像処理(シェーディング補正等)を実行する。
【0037】
画像メモリ33は、画像データを記憶する。インターフェース部34は、外部ホスト装置(PCまたは他のスキャナ装置)と通信するためのインターフェースである。
【0038】
インターフェース部34は、信号ケーブル35を介してPC等の外部ホスト装置と接続されている。なお、インターフェース部34は、無線LAN、ワイヤレスUSB、ブルートゥースなどの無線インターフェースであってもよい。
【0039】
また、インターフェース部34は、USBインターフェース、有線LANインターフェースなど、有線インターフェースであってもよい。ここでは、説明をわかりやすくするために、インターフェース部34は、USBハブ機能を備えたUSBインターフェースであるものと仮定する。
【0040】
CPU36は、フラットベッドスキャナ10の制御を司る制御部である。画像処理部32とCPU36とは、バス37を介して接続されている。CPU36は画像処理部32を介して画像メモリ33にアクセスする。
【0041】
駆動部39は、移動ユニット13を駆動するためのモータである。モータドライバ38は、CPU36からの指示に基づいて駆動部39を制御する制御回路である。
【0042】
図3Cは、実施形態に係るPC40の電気回路の概略構成を示すブロック図である。
【0043】
CPU46は、コンピュータプログラムに基づいて、コンピュータの各ユニットを統括的に制御する制御ユニットである。CPU46は、アプリケーションプログラムやスキャナドライバにしたがって、シートフィードスキャナ1やフラットベッドスキャナ10を制御する。
【0044】
ROM41は、ファームウエアなどの制御プログラムを記憶する不揮発性の記憶ユニットである。RAM42は、ワークエリアとして機能する揮発性の記憶ユニットである。ハードディスクドライブ(HDD)43は、大容量の記憶ユニットである。
【0045】
表示装置45は、ユーザーに対して各種情報を表示するための表示ユニットである。操作部47は、ポインティングデバイスやキーボードなどの入力ユニットである。
【0046】
通信インターフェース44は、ネットワーク通信カードなどの通信ユニットである。CPU46は、通信インターフェース44を介してシートフィードスキャナ1やフラットベッドスキャナ10と通信する。
【0047】
図4は、PC40上のアプリケーションとスキャナドライバの構成を示す図である。ここでは、シートフィードスキャナ1とフラットベッドスキャナ10とのうちいずれか一方のみが単独でPC40に接続されているものと仮定する。
【0048】
ユーザーは、スキャナを購入すると、アプリケーション48とスキャナドライバ49をPCのHDD43にインストールする。アプリケーション48は、画像編集プログラムや、アルバムプログラム、文章編集プログラムなどである。
【0049】
なお、アプリケーション48は、第1のドライバまたは第2のドライバと情報の入出力が可能なプログラムであり、具体的には、第1のドライバまたは第2のドライバから画像のデータを受け取るアプリケーションプログラムの一例である。
【0050】
インストールされたアプリケーション48は、スキャナドライバ49を介してスキャナ1、10を制御したり、スキャナドライバ49から受け取った画像データに画像処理を実行したりする。よって、アプリケーション48およびCPU46は、第1の制御手段または第2の制御手段から画像のデータを受け取って画像処理を実行する画像処理手段として機能する。
【0051】
アプリケーション48とスキャナドライバ19との間、スキャナドライバ49とスキャナ1,10との間は、それぞれ決められたプロトコルで通信している。本実施形態では、アプリケーション48とスキャナドライバ49はTwain規格で決められたプロトコルで通信を行うものとする。このTwain規格で決められたプロトコルは、第1のドライバまたは第2のドライバと通信するための第1のドライバインターフェースであり、アプリケーションプログラムと通信するためのアプリケーションインタフェースの一例でもある。
【0052】
また、Twain規格で決められたプロトコルは、画像処理手段が第1の制御手段または第2の制御手段と通信するための第1のインターフェースであり、第1の制御手段が画像処理手段と通信するための第2のインターフェースであり、第1の制御手段が第2の制御手段と通信するための第3のインターフェースであり、そして第2の制御手段が画像処理手段と通信するための第4のインターフェースの一例である。スキャナドライバ49とスキャナ1、10との間では、SCSI規格で決められたプロトコルで通信を行っているものと仮定する。このように、SCSI規格で決められたプロトコルは、画像読取装置と通信するためのインターフェースである。SCSI規格で決められたプロトコルは、しかし、本発明では、これらの以外のプロトコルが採用されてもよい。なお、これらのプロトコルを介して、制御コマンドや画像データとが、スキャナ、ドライバおよびアプリケーション間で送受信されることになる。
【0053】
図5は、シートフィードスキャナ1とフラットベッドスキャナ10がPC40へ同時に接続されたときの図である。
【0054】
図5(A)では、PC40にシートフィードスキャナ1とフラットベッドスキャナ10が並列に接続されている。図5(B)では、フラットベッドスキャナ10のインターフェース部34がハブ機能を備えており、PC40→フラットベッドスキャナ10→シートフィードスキャナ1と数珠繋ぎに(シーケンシャルに)接続されている。どちらの接続状態であっても、PC40のCPU26は2つのスキャナが接続されているものとして認識する。インターフェース部34がUSBハブを内蔵していると考えれば、本実施形態を理解しやすいであろう。
【0055】
図6は、PC40に複数のスキャナドライバの構成を示す図である。従来は、図6(A)に示すように、スキャナドライバとスキャナとは1対1で設けられていた。そのため、シートフィードドライバ49aとフラットベッドドライバ49bとは完全に独立しており、両者が連携することはなかった。なお、ユーザーは、シートフィードドライバ49aとフラットベッドドライバ49bとをPC40にそれぞれインストールし、使用するスキャナに応じて、スキャナドライバをアプリケーション48で切り替えなければならなかった。スキャナの切り替え時に、アプリケーション48は、切り替え前のスキャナドライバのアンロードと、切り替え後のスキャナドライバのロードおよびスキャナの初期化処理を実行する。よって、この処理時間は比較的に長い時間であった。本実施形態によれば、詳細は後述するが、第1のドライバと第2のドライバとの連携により、上述したスキャナドライバのロードおよびスキャナの初期化等の煩雑な処理が不要となるため、図6(A)のような接続においても、シートフィードスキャナとフラットベッドスキャナとの読取動作の制御における処理時間を短縮化することができる。
【0056】
ここで、シートフィードドライバ49aおよびCPU46は、第2の画像読取装置を制御するための第2の制御手段として機能する。フラットベッドドライバ49bおよびCPU46は、第1の画像読取装置を制御するための第1の制御手段として機能する。
【0057】
図6(B)は、本実施形態のスキャナドライバの構成を示している。フラットベッドドライバ49bは、第1の画像読取装置を制御するための第1のドライバの一例である。
【0058】
シートフィードドライバ49aは、第2の画像読取装置を制御するための第2のドライバの一例である。CPU46は、アプリケーション48を起動すると、まずフラットベッドドライバ49bをRAM42へロードする。
【0059】
さらに、CPU46は、フラットベッドドライバ49bにしたがって、シートフィードドライバ49aをRAM42へロードする。シートフィードドライバ49aにとって、フラットベッドドライバ49bは、あたかもアプリケーション48と同じ役割を担う。つまり、フラットベッドドライバ49bは、シートフィードドライバ49aに対してはアプリケーション48として振舞うよう、シートフィードドライバ49aと通信するためのインターフェースを内包している。
【0060】
このインターフェースは、上述したTwain規格で決められたプロトコルであり、第1のドライバが、第2のドライバが備えるアプリケーションインタフェースと通信するための第2のドライバインターフェースの一例である。
【0061】
なお、シートフィードスキャナ1とフラットベッドスキャナ10との切り替え(選択)は、アプリケーション48から起動されるフラットベッドドライバ49bの設定画面において実行される。
【0062】
アプリケーションプログラム48は、第1の画像読取装置(フラットベッドスキャナ10)が読取った画像のデータを、第1のドライバ(フラットベッドドライバ49b)を介して受け取る。
【0063】
また、アプリケーションプログラム48は、第2の画像読取装置(シートフィードスキャナ1)が読取った画像のデータを、第1のドライバおよび第2のドライバ(シートフィードドライバ49a)を介して受け取るように構成されている。
【0064】
以上のように、フラットベッドドライバ49bとシートフィードドライバ49aの両方ともがアプリケーション48が実行されている間は常にRAM42へロードされている。
【0065】
よって、アプリケーション48の起動時にフラットベッドドライバ49bとシートフィードドライバ49aとが1度だけRAM42にロードされるだけで、アプリケーション48の実行中は、フラットベッドドライバ49bとシートフィードドライバ49aのアンロードやリロードは発生しない。したがって、本実施形態によれば、スキャナの切り替え速度は、従来例と比較して格段に速いといえる。
【0066】
図7は、アプリケーション48によって実行されるフラットベッドドライバ49aのロード処理を示したフローチャートである。ステップS701で、PC40のCPU46は、操作部47からのアプリケーション48の起動指示を受信すると、HDD43に記憶されているアプリケーション48をRAM42へロードする。これにより、アプリケーション48が起動する。
【0067】
S702で、CPU46は、アプリケーション48にしたがって、フラットベッドドライバ49bをRAM42へロードする。このように、第1の画像読取装置と第2の画像読取装置との両方が情報処理装置に接続されているときにアプリケーションプログラムが起動されると、アプリケーションプログラム(CPU46)は、第1のドライバを情報処理装置のメモリへとロードする。
【0068】
S703で、CPU46は、フラットベッドドライバ49bにしたがって、シートフィードドライバ49aがインストールされているかどうかを判定する。このように、CPU46は、第2のドライバが情報処理装置にインストールされているかどうかを判定する判定手段として機能する。
【0069】
例えば、CPU46は、フラットベッドドライバ49bが対応しているシートフィードドライバのリストを参照し、当該リストに掲載されているシートフィードドライバをHDD43から検索する。あるいは、当該シートフィードドライバをOS(オペレーティングシステム)が管理しているレジストリから検索する。シートフィードドライバが検索により発見されれば、シートフィードドライバはインストール済みである。この場合は、S704に進む。なお、シートフィードドライバがインストールされていなければ、CPU46は、シートフィードドライバのロード処理を終了する。
【0070】
S704で、CPU46は、シートフィードスキャナ1がPC40と接続されているかどうかを判定する。シートフィードスキャナ1がPC40と接続されていれば、S705に進む。なお、シートフィードスキャナ1が接続されていなければ、CPU46は、シートフィードドライバのロード処理を終了する。よって、CPU46は、第2のドライバが情報処理装置にインストールされていないときは第2のドライバのロードを実行しないロード手段として機能する。
【0071】
S705で、CPU46は、フラットベッドドライバ49bにしたがってHDD43からシートフィードドライバ49aを読出し、RAM42へロードする。このように、第1のドライバは第2のドライバを情報処理装置のメモリへとロードする。すなわち、CPU46は、第2のドライバが情報処理装置にインストールされているときは第2のドライバを情報処理装置のメモリへロードするロード手段として機能する。なお、CPU46は、アプリケーション48にしたがってフラットベッドドライバ49bをアンロードしたときに、シートフィードドライバ49aもアンロードする。
【0072】
図8は、フラットベッドドライバが表示するユーザーインターフェースの一例を示した図である。ユーザーインターフェース51はフラットベッドスキャナ10のみがPC40に接続されているときにアプリケーション48によって呼び出されて表示装置45に表示されるユーザーインターフェースである。
【0073】
すなわち、ユーザーインターフェース51はフラットベッドドライバ49bのユーザーインターフェースである。ユーザーインターフェース51では、カラーモード、読取サイズおよび解像度を設定できる。
【0074】
CPU46は、スキャンボタン54の押し下げを検出すると、スキャンの開始をスキャナドライバに指示する。Closeボタン55の押し下げを検出すると、CPU46は、ユーザーインターフェースを閉じる。
【0075】
ユーザーインターフェース52はシートフィードスキャナ1のみがPC40に接続されているときにアプリケーション48によって呼び出されて表示装置45に表示されるユーザーインターフェースである。すなわち、ユーザーインターフェース52はシートフィードドライバ49aのユーザーインターフェースである。なお、ユーザーインターフェース52には、特殊機能ボタン56が追加されている。
【0076】
シートフィードスキャナ1は、フラットベッドスキャナ10に比べて単位時間あたりに大量の原稿をスキャンできる。そのため、原稿束の中には、ユーザーが誤って白紙原稿を混ぜてしまう場合がある。そういった白紙原稿を見つけ、画像化しない機能(白紙検知機能)をシートフィードスキャナ1は持っている。本実施形態では、CPU46が特殊機能ボタン56の押し下げを検出すると、白紙検知機能のON/OFFを設定するための設定ダイアログ57を表示装置45に表示する。
【0077】
図9は、白紙検知機能のON/OFFを設定するための設定ダイアログ57を示した図である。この設定の初期値はOFFである。
【0078】
図8の説明に戻る。ユーザーインターフェース53はフラットベッドスキャナ10とシートフィードスキャナ1との両方がPC40に接続されているときに表示されるユーザーインターフェースである。
【0079】
CPU46は、S705でシートフィードドライバ49aのロードに成功すると、フラットベッドドライバ49bにしたがってユーザーインターフェース53を表示装置45に表示する。
【0080】
シートフィードドライバ49aのロードに失敗したときは、ユーザーインターフェース51が表示される。ユーザーインターフェース51と比較すると、ユーザーインターフェース53では、読取方法(読取りに使用する画像読取装置)の設定項目が追加されている。
【0081】
よって、ユーザーは、読取方法の設置項目においてフラットベッドスキャナ10とシートフィードスキャナ1とを切り替えて使用できる。このように、CPU46や表示装置45は、第1の画像読取装置と第2の画像読取装置とのどちらを選択するかを操作者に問い合せるためのユーザーインターフェースを表示する表示手段として機能する。
【0082】
ユーザーが設定したカラーモード、解像度、サイズなどの設定情報の保存は、フラットベッドドライバ49b(CPU46)が行う。そのため、ユーザーがアプリケーション48でシートフィードドライバ49aを直接選択した場合、ユーザーインターフェース53で設定されたカラーモード、解像度、サイズの内容は、シートフィードドライバ49aには適用されない。
【0083】
つまり、ユーザーがアプリケーション48で直接的にシートフィードドライバ49aを使用するときは、ユーザーインターフェース53で設定された設定情報が復元されない。設定情報は、PC40内の所定の場所(例:レジストリファイル)に保存される。レジストリファイル自身は、HDD43に記憶される。
【0084】
上述した白紙検知機能については、フラットベッドドライバ49bがシートフィードドライバ49aをロードするときに初期化処理を実行するので、OFFとなる。
【0085】
解像度の選択項目としてはフラットベッドドライバ49bとシートフィードドライバ49aとの両方がサポートしている解像度のみが表示される。フラットベッドドライバ49b(CPU46)は、シートフィードドライバ49aがサポートしている解像度をシートフィードドライバ49aから取得し、その中から、フラットベッドドライバ49bもサポートしている解像度のみを抽出する。
【0086】
このようにして、ユーザーインターフェース53上で選択可能な解像度が決定される。サイズ、カラーモードに関しても同様の抽出処理が実行されてもよい。これにより、シートフィードドライバ49aとフラットベッドドライバ49bとが共通して採用しているサイズ、カラーモードだけを抽出して、ユーザーインターフェース53に反映させることができる。
【0087】
このように、CPU46は、第1の画像読取装置が対応している機能と第2の画像読取装置が対応している機能とを比較し、第1の画像読取装置と第2の画像読取装置とに共通している機能を抽出する手段として機能する。また、CPU46および表示装置45は、抽出された機能の設定項目をユーザーインターフェースに表示する表示手段として機能する。
【0088】
図10は、自動読取方法の一例を示したフローチャートである。図8に示したユーザーインターフェース53は、読取方法の選択項目として「自動」を有している。ユーザーが読取方法(自動)を選択したこと、および、スキャンボタン54を押し下げたことを検出すると、CPU46は、スキャンを開始する。
【0089】
S1001で、CPU46は、シートフィードスキャナ1に原稿が載置されているかどうかを判定する。例えば、CPU46は、フラットベッドドライバ49bを介してシートフィードドライバ49aにシートフィードスキャナ1に原稿が載置されているかどうかを問い合せる。
【0090】
シートフィードドライバ49a(CPU46)は、原稿検知センサ9の検知情報を取得し、原稿の有無をフラットベッドドライバ49bに伝える。原稿がシートフィードスキャナ1の原稿台に載置されていれば、S1002に進む。
【0091】
S1002で、CPU46は、フラットベッドドライバ49bを介してシートフィードドライバ49aにスキャン開始コマンドを送信する。なお、ユーザーインターフェース53において、フラットベッドスキャナ10が選択されたときは、CPU46は、画像の読取開始コマンドをフラットベッドスキャナ10(第1の画像読取装置)に送信する第1の送信手段として機能する。
【0092】
シートフィードドライバ49aは、スキャン開始コマンドを受信すると、シートフィードスキャナ1のCPU26にスキャン開始コマンドを転送する。このように、CPU46は、ユーザーインターフェース53を通じてシートフィードスキャナ1(第2の画像読取装置)が選択されると、スキャン開始コマンド(画像の読取開始コマンド)を第2の画像読取装置に送信する第2の送信手段として機能する。
【0093】
シートフィードスキャナ1のCPU26は、スキャン開始コマンドを受信すると、スキャン処理を開始する。CPU26は、ラインイメージセンサ5および画像処理部22を制御して画像データを生成し、シートフィードドライバ49aへ画像データを転送する。シートフィードドライバ49aは、画像データをフラットベッドドライバ49bに転送する。
【0094】
このように、シートフィードドライバ49aは、第2の画像読取装置から転送されてきた画像のデータを第1のドライバへ受け渡す手段としてCPU46を機能させている。さらに、フラットベッドドライバ49bは画像データをアプリケーション48に転送する。よって、フラットベッドドライバ49bは、第2のドライバから受け渡された画像のデータをアプリケーションプログラムへ受け渡す手段としてCPU46を機能させている。
【0095】
一方、シートフィードスキャナ1に原稿が載置されていなければ、S1003に進む。S1003でCPU46は、フラットベッドドライバ49bにスキャン開始コマンドを送信する。
【0096】
フラットベッドドライバ49bは、スキャン開始コマンドを受信すると、フラットベッドスキャナ10のCPU36にスキャン開始コマンドを転送する。フラットベッドスキャナ10のCPU36は、スキャン開始コマンドを受信すると、スキャン処理を開始する。
【0097】
CPU36は、ラインイメージセンサ12および画像処理部32を制御して画像データを生成し、フラットベッドドライバ49bへ画像データを転送する。フラットベッドドライバ49bは、画像データをアプリケーション48に転送する。
【0098】
なお、白紙検知機能がONに設定されている場合、フラットベッドドライバ49bまたはシートフィードドライバ49a白紙検知機能は、原稿画像内を調べ、白紙かどうかを判定する。白紙であれば画像データを破棄する。例えば、CPU46または画像処理部22、32は、画像を2値画像へ変換する。次に2値画像変換した画像内の黒画素数を数え、その数が画像全体の2割以下のときに、原稿画像を白紙と判定する。
【0099】
次にPC40から、シートフィードスキャナ1にフラットベッドスキャナ10を介して、どのようにしてコマンドがやり取りされるかについてさらに詳細に説明する。本実施形態では、フラットベッドスキャナ10はUSBハブを備えている。そのため、図5(B)が示すように、PC40とシートフィードスキャナ1との間にフラットベッドスキャナ10が介在していても、PC40から直接的にシートフィードスキャナ1にコマンドを送信することができる。つまりPC40のCPU46にとって、図5(A)の接続形態も図5(B)の接続形態もUSBレベルにおいて違いはないからである。このように、シートフィードスキャナ1とフラットベッドスキャナ10とはスキャナ読取処理に関して独立している。
【0100】
すなわち、シートフィードスキャナ1にとってフラットベッドスキャナ10はPC40への信号とPC40からの信号との中継点に過ぎない。フラットベッドスキャナ10のCPU36や画像処理部32も、シートフィードスキャナ1の信号の中継に関与しない。これは、シートフィードドライバ49aがフラットベッドドライバ49bに依存していることと比較すると、対照的といえよう。
【0101】
次に、フラットベッドドライバ49bがCPU46と協働して実行するコマンド解析処理について説明する。
【0102】
シートフィードスキャナ1とフラットベッドスキャナ10とが同時にPC40に接続されている状態でアプリケーション48からシートフィードドライバ49aにコマンドを送るときは、フラットベッドドライバ49bを経由する。
【0103】
そのため、フラットベッドドライバ49bは、アプリケーション48からのコマンドを解析し、解析結果にしたがってフラットベッドスキャナ10とシートフィードスキャナ1の制御を行う。
【0104】
フラットベッドスキャナ10とシートフィードスキャナ1のどちらを制御するかは、ユーザーインターフェース53の設定に依存している。ユーザーインターフェース53において読取方法として「フラットベッド」が選択されているときは、フラットベッドドライバ49bはアプリケーション48からのコマンドを受信し、フラットベッドスキャナ10を制御する。
【0105】
また、読取方法として「フィーダー」が選択されているときは、フラットベッドドライバ49bは、アプリケーション48からのコマンドをシートフィードドライバ49aにそのまま転送する。
【0106】
シートフィードドライバ49aは、フラットベッドドライバ49bを介してアプリケーション48からのコマンドを受信し、シートフィードスキャナ1を制御する。
【0107】
読取方法として「自動」が選択されているときは、原稿がシートフィードスキャナ1にセットされているかどうかに応じて、一方のスキャナ装置を選択する。コマンドの送受信方法は、選択されたスキャナ装置に応じた送受信方法が選択されることになる。
【0108】
次に、スキャン画像(画像データ)がスキャナからスキャナドライバを介してアプリケーション48に渡るまでの処理について説明する。読取方法として「フラットベッド」が選択されているときは、フラットベッドドライバ49bが、フラットベッドスキャナ10を制御し、画像を取得し、アプリケーション48にスキャン画像を渡す。また、読取方法として「フィーダー」が選択されているときは、フラットベッドドライバ49bが、シートフィードドライバ49aから画像を取得し、そのままアプリケーション48に渡す。
【0109】
以上、本実施形態によれば、シートフィードスキャナ1とフラットベッドスキャナ10とが同時にPC40に接続されているときは、ユーザーは、フラットベッドドライバ49bを介して2つのスキャナを使用することができる。よって、ユーザーは、一度、アプリケーション48においてフラットベッドドライバ49bを選択すれば、使用するスキャナを切り替えるためにドライバの再選択は必要がない。
【0110】
すなわち、従来必要であったフラットベッドドライバ49bのアンロードとシートフィードドライバ49aのロードは省略できる。これは、アプリケーション48の起動時にフラットベッドドライバ49bがシートフィードドライバ49aをRAM42へすでにロードしているためである。よって、スキャナドライバの切り替えに伴って必要であったアンロードおよびロードに伴う処理時間が不要となる。頻繁にシートフィードスキャナ1とフラットベッドスキャナ10とを切り替えるような使用環境では、本実施形態の効果は高い。
【0111】
また、フラットベッドドライバ49bは、アプリケーションプログラムとしてシートフィードドライバ49aと通信するためのプロトコル(例:Twain)に対応しているため、シートフィードドライバ49aにとってはフラットベッドドライバ49bがアプリケーションとして見える。
【0112】
よって、フラットベッドスキャナ10をすでに所有しているユーザーが新しくシートフィードスキャナ1を追加購入しても、フラットベッドドライバ49bを介してフラットベッドスキャナ10と新しいシートフィードスキャナ1との両方を使うことができる。
【0113】
また、メーカーにとっては、フラットベッドドライバ49bを新製品のシートフィードスキャナ1に対応させるためのバージョンアップを行う必要はない。フラットベッドドライバ49bは、シートフィードドライバ49aと通信するためのプロトコルをすでに備えているからである。
【0114】
本実施形態では、フラットベッドドライバ49bを介してシートフィードドライバ49aを使用したが、シートフィードドライバ49aを介してフラットベッドドライバ49bを使用できるように構成してもよい。この場合は、上述の説明において、フラットベッドドライバ49bとシートフィードドライバ49aとを読み替えるとともに、フラットベッドスキャナ10とシートフィードスキャナ1とを読み替えればよい。
【0115】
図11は、PC40に接続された3台以上のスキャナを使用するための共通のユーザーインターフェース1101の一例を示した図である。PC40に接続できるスキャナの台数は3台以上であってもよい。
【0116】
この場合のユーザーインターフェース1101に、スキャナを選択するためのコンボボックスが追加されることになる。コンボボックスには、選択可能なスキャナの名称が列挙されることになる。なお、図11に示したユーザーインターフェース1101は、1台のフラットベッドスキャナと、4つのシートフィードスキャナとが接続されているときのユーザーインターフェースの一例である。
【0117】
図12は、スキャナ選択用ダイアログの一例を示した図である。上述したコンボボックスに代えて、図12に示したスキャナ選択用ダイアログ1201が採用されてもよい。ユーザーがスキャナ選択用ダイアログ1201から所望の一つを選択すると、選択されたスキャナに対応したスキャナドライバがRAM42へロードされる。RAM42へのスキャナドライバのロードは1度限りでよいことは上述した通りである。
【0118】
読取方法として「自動」が選択されているときは、CPU46は、スキャナドライバを通じて、PC40に接続されているすべてのシートフィードスキャナの原稿台を調査し、原稿が載置されているシートフィードスキャナのみにスキャン開始コマンドを送信するようにしてもよい。
【0119】
図13は、ユーザーインターフェースの他の例を示した図である。上記の実施形態では、フラットベッドドライバ49bが、フラットベッドスキャナ10とシートフィードスキャナ1とで共通にサポートしている機能についての選択項目のみをユーザーインターフェースに表示している。
【0120】
図13が示すように、ユーザーインターフェース1301には、両者に共通でない選択項目が表示されてもよい。例えば、フラットベッドスキャナ10が解像度1200dpiをサポートしており、シートフィードスキャナ1ではこれをサポートしていないものとする。
【0121】
さらに、シートフィードスキャナ1は白紙検知機能をサポートおり、フラットベッドスキャナ10もこれをサポートしているものと仮定する。この場合、読取方法として「フィーダー」が選択されると、CPU46は、解像度1200dpiはグレーアウト表示に切り替えることで、解像度1200dpiを無効としてもよい。
【0122】
このように、CPU46は、抽出されなかった機能の設定項目をユーザーインターフェースで操作不可能となるように表示装置45に表示する手段として機能する。一方、フラットベッドが選択されると、CPU46は、解像度1200dpiについてグレーアウト表示から有効表示に切り替える。
【0123】
よって、CPU46は、ユーザーインターフェースを通じて選択されたどの画像読取装置が選択されたかを判別する判別手段と、ユーザーインターフェースを通じて選択された画像読取装置が備える機能に応じてユーザーインターフェースにおける操作可能項目を変更する変更手段として機能する。
【0124】
上述したように、ユーザーが特殊機能ボタン56を押すと、CPU46は、図9に示した設定ダイアログ57を表示する。設定ダイアログ57は、フラットベッドドライバ49bがシートフィードドライバ49aの設定ダイアログを呼び出して表示装置45に表示したものである。
【0125】
よって、CPU46は、ユーザーが読取方法をフィーダーに設定したときに特殊機能ボタン56を選択可能なように表示する。一方、そうでないときは、CPU46は、特殊機能ボタン56を無効とすべく、グレーアウト表示に切り替える。
【0126】
本実施形態では、フラットベッドスキャナ10にシートフィードスキャナ1を接続し、フラットベッドドライバ49bでシートフィードドライバ49aを制御するものと仮定して説明した。しかし、シートフィードスキャナ1にフラットベッドスキャナ10を接続し、シートフィードドライバ49aでフラットベッドドライバ49bを制御してもよい。また、スキャナの組み合わせは、フラットベッドスキャナ10、シートフィードスキャナ1に限定されるものではない。すなわち、種類の異なる複数の画像読取装置をPC40に接続するときも本実施形態に係る発明を適用できる。
【0127】
図14は、画像処理部の搭載位置を説明するためのす図である。上記の実施形態では、図14(A)が示すように、フラットベッドスキャナ10とシートフィードスキャナ1とがそれぞれ画像処理部を備えており、画像処理部は共通化されてはいない。しかし、図14(B)が示すように、フラットベッドドライバ49bとシートフィードドライバ49aとのそれぞれが画像処理部を備えてもよい。
【0128】
以上説明したように、本実施形態によれば、第1の画像読取装置を第1のドライバにより制御し、第2の画像読取装置を第1のドライバを介して第2のドライバにより制御できるようにしたため、第1のドライバをアンロードしたり、再ロードしたりする時間を省略できる。よって、ドライバの切り替えに必要となる切り替え時間を短縮することができる。
【0129】
例えば、読取り形式の異なる複数の画像読取装置がPC(情報処理装置)に接続されているときにアプリケーションプログラム48が起動されると、アプリケーションプログラム48は第1のドライバを情報処理装置のメモリへとロードする。さらに、第1のドライバは第2のドライバを情報処理装置のメモリへとロードする。よって、ユーザーインターフェース53などにおいて使用すべきスキャナを切り替えたとしても、ドライバのアンロード、ロードおよび初期化処理は発生しない。すなわち、スキャナドライバの切り替えに必要となる切り替え時間を従来よりも短縮できる。
【0130】
また、第2の画像読取装置が読取った画像のデータを第1のドライバおよび第2のドライバを介してアプリケーションプログラムが受け取るように、第1のドライバを構成したことで、第2の画像読取装置用の第2のドライバについては変更することなく、本発明を適用できる。
【0131】
すなわち、第2のドライバについての更新やバージョンアップの手間を省くことができる。また、第2のドライバがインストールされていれば当該第2のドライバをメモリにロードし、第2のドライバがインストールされていなければ当該第2のドライバをロードしないように第1のドライバを構成している。すなわち、第2のドライバのロード処理はアプリケーションプログラムではなく第1のドライバが担当している。
【0132】
また、第1のドライバが提供するユーザーインターフェース上で画像読取装置を切り替えるようにしているため、画像読取装置の切り替えに伴うドライバのアンロード、ロードおよび初期化処理は必要がない。なお、第2の画像読取装置が選択されたときは第1のドライバがアプリケーションプログラムのように振舞って第2のドライバへコマンドを渡す。それ故、第2のドライバは、本発明を適用する上での特別な更新や改変は必要がない。
【0133】
また、第1のドライバのユーザーインターフェースでは、第1の画像読取装置と第2の画像読取装置とで共通している機能についてその設定項目が設けられている。よって、どの画像読取装置が選択されても、読取り処理に反映することが不可能な設定を操作者が行ってしまうことを防止できる。
【0134】
なお、共通していない設定項目については、ユーザーインターフェースから消去してしまったり、操作不可能なようにグレーアウト表示したりしてもよい。グレーアウト表示された設定項目は、操作者により選択されなかった他の画像読取装置では設定可能な項目であることを操作者に示唆することができる。
【0135】
また、ユーザーインターフェースを通じて選択された画像読取装置が備える機能に応じて、ユーザーインターフェースにおける操作可能な設定項目を変更してもよい。この場合は、複数の画像読取装置に共通しているものだけでなく、選択された画像読取装置で設定可能な設定項目をすべて表示することができる。よって、操作者は選択した画像読取装置が備えるすべての機能を使用することができる。
【0136】
さらに、シートスルー型スキャナのドライバと通信可能なフラットベッド型スキャナのドライバを用いることにより、例えば、情報処理装置(PC)からの読取指示信号をシートスルー型スキャナに伝達することができる。逆に、情報処理装置は、シートスルー型スキャナでの読取画像をシートスルー型スキャナのドライバからフラットベッド型スキャナのドライバを経由して取得することができる。これにより、フラットベッド型スキャナを情報処理装置と既存のシートスルー型スキャナとの間に接続することが可能となる。すなわち、フラットベッドスキャナに複数の接続部を設けるだけで、情報処理装置にフラットベッド型スキャナを接続すると共にフラットベッド型スキャナに既存のシートスルー型スキャナを接続することができる。
【0137】
その結果、ユーザーは、フラットベッド型スキャナを導入するだけで、情報処理装置の操作に基づいて、フラットベッド型スキャナとシートスルー型スキャナとを1つのスキャナユニットとして容易に使い分けすることができる。また、シートスルー型スキャナを保有するユーザーは、既存のシートスルー型スキャナを改良(改造)することなく、フラットベッド型スキャナを追加利用することができる。
【0138】
なお、上述した本実施形態では、異なる種類の画像読取装置に基づいて説明したが、ここでいう異なる種類の画像読取装置とは、読み取り形式に限定されず、例えば、略同一の読み取り形式の読取装置であってもよいし、読取の原稿サイズ(A4以下の対応機種と、A3以下の対応機種等)が違う装置、スペック(性能)違いの装置、あるいは型式違いの装置等を含み、上述した実施形態に限定されるものではない。
【符号の説明】
【0139】
1…シートフィードスキャナ
2…ピックアップローラ
3…搬送ローラ
4…分離ローラ
5…ラインイメージセンサ
7…対向面
8a…第1ローラ対
8b…第1ローラ対
9…原稿検知センサ
10…フラットベッドスキャナ10
11…ガラス
12…ラインイメージセンサ
13…移動ユニット
14…スキャナカバー
15…対向面
21…A/D変換部
22…画像処理部
23…メモリ
24…インターフェース部
25…信号ケーブル
26…CPU
27…バス
28…モータドライバ
29…駆動部
40…PC
48…アプリケーション
49…スキャナドライバ
51…ユーザーインターフェース
52…ユーザーインターフェース
53…ユーザーインターフェース
【特許請求の範囲】
【請求項1】
画像読取システムであって、
それぞれ種類の異なる複数の画像読取装置と、
前記複数の画像読取装置が並列または直列に接続可能な情報処理装置と
を備え、
前記情報処理装置は、
前記複数の画像読取装置のうち第1の画像読取装置を制御するための第1のドライバと、
前記複数の画像読取装置のうち前記第1の画像読取装置とは種類の異なる第2の画像読取装置を制御するための第2のドライバと、
前記第1のドライバまたは前記第2のドライバから画像のデータを受け取るアプリケーションプログラムと
を備え、
前記アプリケーションプログラムは、前記第1のドライバまたは前記第2のドライバと通信するための第1のドライバインターフェースを備え、
前記第1のドライバおよび前記第2のドライバはそれぞれ、前記アプリケーションプログラムと通信するためのアプリケーションインタフェースを備え、
前記第1のドライバは、前記第2のドライバが備えるアプリケーションインタフェースと通信するための第2のドライバインターフェースをさらに備え、
前記情報処理装置は、前記第1の画像読取装置により画像を読取る際には前記第1のドライバを介して前記第1の画像読取装置を制御し、前記第2の画像読取装置により画像を読取る際には前記第1のドライバおよび前記第2のドライバを介して前記第2の画像読取装置を制御することを特徴とする画像読取システム。
【請求項2】
前記アプリケーションプログラムは、前記第1の画像読取装置が読取った画像のデータを、前記第1のドライバを介して受け取り、前記第2の画像読取装置が読取った画像のデータを、前記第1のドライバおよび前記第2のドライバを介して受け取るように構成されていることを特徴とする請求項1に記載の画像読取システム。
【請求項3】
前記第1の画像読取装置と前記第2の画像読取装置との両方が前記情報処理装置に接続されているときに前記アプリケーションプログラムが起動されると、前記アプリケーションプログラムは、前記第1のドライバを前記情報処理装置のメモリへとロードするように構成されており、前記第1のドライバは、前記第2のドライバを前記情報処理装置のメモリへとロードするように構成されていることを特徴とする請求項1または2に記載の画像読取システム。
【請求項4】
前記第1のドライバは、前記情報処理装置を、
前記第2のドライバが前記情報処理装置にインストールされているかどうかを判定する判定手段と、
前記第2のドライバが前記情報処理装置にインストールされているときは前記第2のドライバを前記情報処理装置へロードし、前記第2のドライバが前記情報処理装置にインストールされていないときは前記第2のドライバのロードを実行しないロード手段として機能させることを特徴とする請求項3に記載の画像読取システム。
【請求項5】
前記第1のドライバは、前記情報処理装置を、
前記第1の画像読取装置と前記第2の画像読取装置とのどちらを選択するかを操作者に問い合せるためのユーザーインターフェースを表示する表示手段と、
前記ユーザーインターフェースを通じて前記第1の画像読取装置が選択されると、画像の読取開始コマンドを前記第1の画像読取装置に送信する第1の送信手段と、
前記ユーザーインターフェースを通じて前記第2の画像読取装置が選択されると、画像の読取開始コマンドを前記第2の画像読取装置に送信する第2の送信手段として機能させることを特徴とする請求項3または4に記載の画像読取システム。
【請求項6】
前記第1のドライバは、前記情報処理装置を、
前記第1の画像読取装置が対応している機能と前記第2の画像読取装置が対応している機能とを比較し、前記第1の画像読取装置と前記第2の画像読取装置とに共通している機能を抽出する手段として機能させ、
前記表示手段は、前記抽出された機能の設定項目を前記ユーザーインターフェースに表示することを特徴とする請求項5に記載の画像読取システム。
【請求項7】
前記表示手段は、前記抽出されなかった機能の設定項目を前記ユーザーインターフェースで操作不可能となるように表示することを特徴とする請求項6に記載の画像読取システム。
【請求項8】
前記第1のドライバは、前記情報処理装置を、
前記ユーザーインターフェースを通じて選択されたどの画像読取装置が選択されたかを判別する判別手段と、
前記ユーザーインターフェースを通じて選択された画像読取装置が備える機能に応じて前記ユーザーインターフェースにおける操作可能項目を変更する変更手段として機能させることを特徴とする請求項5に記載の画像読取システム。
【請求項9】
前記第2のドライバは、前記情報処理装置を
前記第2の画像読取装置から転送されてきた画像のデータを前記第1のドライバへ受け渡す手段として機能させ、
前記第1のドライバは、前記情報処理装置を
前記第2のドライバから受け渡された画像のデータを前記アプリケーションプログラムへ受け渡す手段として機能させることを特徴とする請求項2に記載の画像読取システム。
【請求項10】
画像読取システムであって、
それぞれ種類の異なる複数の画像読取装置と、
前記複数の画像読取装置が並列または直列に接続可能な情報処理装置と
を備え、
前記情報処理装置は、
前記複数の画像読取装置のうち第1の画像読取装置を制御するための第1の制御手段と、
前記複数の画像読取装置のうち前記第1の画像読取装置とは種類の異なる第2の画像読取装置を制御するための第2の制御手段と、
前記第1の制御手段または前記第2の制御手段から画像のデータを受け取って画像処理を実行する画像処理手段と
を備え、
前記画像処理手段は、前記第1の制御手段または前記第2の制御手段と通信するための第1のインターフェースを備え、
前記第1の制御手段は、前記画像処理手段と通信するための第2のインターフェースと、前記第2の制御手段と通信するための第3のインターフェースとを備え、
前記第2の制御手段は、前記画像処理手段と通信するための第4のインターフェースを備え、
前記画像処理手段が備える第1のインターフェースは前記第1の制御手段が備える第2のインターフェースと接続され、前記第1の制御手段が備える第3のインターフェースは前記第2の制御手段が備える第4のインターフェースと接続されることで、前記画像処理手段は、前記第1の画像読取装置が読取った画像のデータを前記第1の制御手段を介して受け取り、前記第2の画像読取装置が読取った画像のデータを前記第1の制御手段および前記第2の制御手段を介して受け取ることを特徴とする画像読取システム。
【請求項11】
請求項1ないし10のいずれか1項に記載された画像読取システムにおいて使用される前記第1のドライバであるコンピュータプログラムであって、
前記コンピュータプログラムは、前記情報処理装置を、
前記アプリケーションプログラムと通信するための前記アプリケーションインタフェースと、
前記第2のドライバが備えるアプリケーションインタフェースと通信するための前記第2のドライバインターフェースと
前記第1の画像読取装置が読取った画像のデータを前記アプリケーションプログラムへ渡すとともに、前記第2の画像読取装置が読取った画像のデータを、前記第2のドライバを介して受け取って前記アプリケーションへ渡す手段
として機能させることを特徴とするコンピュータプログラム。
【請求項12】
情報処理装置が接続される第1の画像読取装置と、前記第1の画像読取装置に接続されるとともに前記第1の画像読取装置とは種類が異なる第2の画像読取装置とを備え、
前記情報処理装置は、前記第1の画像読取装置を制御する第1のドライバと前記第2の画像読取装置を制御する第2のドライバとを含む制御プログラムの実行に基づいて、前記第2の画像読取装置への読取指示信号を前記第1のドライバから前記第2のドライバを経由して伝達することを特徴とする画像読取システム。
【請求項13】
前記情報処理装置は、前記第2の画像読取装置で読取られる読取画像を前記第2のドライバから前記第1のドライバを経由して取得することを特徴とする請求項12に記載の画像読取システム。
【請求項14】
前記制御プログラムは、前記第1のドライバと、前記第2のドライバとに対して情報の入出力を行うためのアプリケーションプログラムを含むことを特徴とする請求項12又は13に記載の画像読取システム。
【請求項15】
複数の画像読取装置が接続可能であると共に、前記複数の画像読取装置のうち第1の画像読取装置を制御する第1のドライバと、前記複数の画像読取装置のうち前記第1の画像読取装置とは異なる第2の画像読取装置を制御する第2のドライバと、前記第1のドライバまたは前記第2のドライバとの間で情報の入出力を行うアプリケーションプログラムとを備えており、
前記アプリケーションプログラムの起動に伴って、前記第1のドライバ及び前記第2のドライバのそれぞれを起動することを特徴とする情報処理装置。
【請求項1】
画像読取システムであって、
それぞれ種類の異なる複数の画像読取装置と、
前記複数の画像読取装置が並列または直列に接続可能な情報処理装置と
を備え、
前記情報処理装置は、
前記複数の画像読取装置のうち第1の画像読取装置を制御するための第1のドライバと、
前記複数の画像読取装置のうち前記第1の画像読取装置とは種類の異なる第2の画像読取装置を制御するための第2のドライバと、
前記第1のドライバまたは前記第2のドライバから画像のデータを受け取るアプリケーションプログラムと
を備え、
前記アプリケーションプログラムは、前記第1のドライバまたは前記第2のドライバと通信するための第1のドライバインターフェースを備え、
前記第1のドライバおよび前記第2のドライバはそれぞれ、前記アプリケーションプログラムと通信するためのアプリケーションインタフェースを備え、
前記第1のドライバは、前記第2のドライバが備えるアプリケーションインタフェースと通信するための第2のドライバインターフェースをさらに備え、
前記情報処理装置は、前記第1の画像読取装置により画像を読取る際には前記第1のドライバを介して前記第1の画像読取装置を制御し、前記第2の画像読取装置により画像を読取る際には前記第1のドライバおよび前記第2のドライバを介して前記第2の画像読取装置を制御することを特徴とする画像読取システム。
【請求項2】
前記アプリケーションプログラムは、前記第1の画像読取装置が読取った画像のデータを、前記第1のドライバを介して受け取り、前記第2の画像読取装置が読取った画像のデータを、前記第1のドライバおよび前記第2のドライバを介して受け取るように構成されていることを特徴とする請求項1に記載の画像読取システム。
【請求項3】
前記第1の画像読取装置と前記第2の画像読取装置との両方が前記情報処理装置に接続されているときに前記アプリケーションプログラムが起動されると、前記アプリケーションプログラムは、前記第1のドライバを前記情報処理装置のメモリへとロードするように構成されており、前記第1のドライバは、前記第2のドライバを前記情報処理装置のメモリへとロードするように構成されていることを特徴とする請求項1または2に記載の画像読取システム。
【請求項4】
前記第1のドライバは、前記情報処理装置を、
前記第2のドライバが前記情報処理装置にインストールされているかどうかを判定する判定手段と、
前記第2のドライバが前記情報処理装置にインストールされているときは前記第2のドライバを前記情報処理装置へロードし、前記第2のドライバが前記情報処理装置にインストールされていないときは前記第2のドライバのロードを実行しないロード手段として機能させることを特徴とする請求項3に記載の画像読取システム。
【請求項5】
前記第1のドライバは、前記情報処理装置を、
前記第1の画像読取装置と前記第2の画像読取装置とのどちらを選択するかを操作者に問い合せるためのユーザーインターフェースを表示する表示手段と、
前記ユーザーインターフェースを通じて前記第1の画像読取装置が選択されると、画像の読取開始コマンドを前記第1の画像読取装置に送信する第1の送信手段と、
前記ユーザーインターフェースを通じて前記第2の画像読取装置が選択されると、画像の読取開始コマンドを前記第2の画像読取装置に送信する第2の送信手段として機能させることを特徴とする請求項3または4に記載の画像読取システム。
【請求項6】
前記第1のドライバは、前記情報処理装置を、
前記第1の画像読取装置が対応している機能と前記第2の画像読取装置が対応している機能とを比較し、前記第1の画像読取装置と前記第2の画像読取装置とに共通している機能を抽出する手段として機能させ、
前記表示手段は、前記抽出された機能の設定項目を前記ユーザーインターフェースに表示することを特徴とする請求項5に記載の画像読取システム。
【請求項7】
前記表示手段は、前記抽出されなかった機能の設定項目を前記ユーザーインターフェースで操作不可能となるように表示することを特徴とする請求項6に記載の画像読取システム。
【請求項8】
前記第1のドライバは、前記情報処理装置を、
前記ユーザーインターフェースを通じて選択されたどの画像読取装置が選択されたかを判別する判別手段と、
前記ユーザーインターフェースを通じて選択された画像読取装置が備える機能に応じて前記ユーザーインターフェースにおける操作可能項目を変更する変更手段として機能させることを特徴とする請求項5に記載の画像読取システム。
【請求項9】
前記第2のドライバは、前記情報処理装置を
前記第2の画像読取装置から転送されてきた画像のデータを前記第1のドライバへ受け渡す手段として機能させ、
前記第1のドライバは、前記情報処理装置を
前記第2のドライバから受け渡された画像のデータを前記アプリケーションプログラムへ受け渡す手段として機能させることを特徴とする請求項2に記載の画像読取システム。
【請求項10】
画像読取システムであって、
それぞれ種類の異なる複数の画像読取装置と、
前記複数の画像読取装置が並列または直列に接続可能な情報処理装置と
を備え、
前記情報処理装置は、
前記複数の画像読取装置のうち第1の画像読取装置を制御するための第1の制御手段と、
前記複数の画像読取装置のうち前記第1の画像読取装置とは種類の異なる第2の画像読取装置を制御するための第2の制御手段と、
前記第1の制御手段または前記第2の制御手段から画像のデータを受け取って画像処理を実行する画像処理手段と
を備え、
前記画像処理手段は、前記第1の制御手段または前記第2の制御手段と通信するための第1のインターフェースを備え、
前記第1の制御手段は、前記画像処理手段と通信するための第2のインターフェースと、前記第2の制御手段と通信するための第3のインターフェースとを備え、
前記第2の制御手段は、前記画像処理手段と通信するための第4のインターフェースを備え、
前記画像処理手段が備える第1のインターフェースは前記第1の制御手段が備える第2のインターフェースと接続され、前記第1の制御手段が備える第3のインターフェースは前記第2の制御手段が備える第4のインターフェースと接続されることで、前記画像処理手段は、前記第1の画像読取装置が読取った画像のデータを前記第1の制御手段を介して受け取り、前記第2の画像読取装置が読取った画像のデータを前記第1の制御手段および前記第2の制御手段を介して受け取ることを特徴とする画像読取システム。
【請求項11】
請求項1ないし10のいずれか1項に記載された画像読取システムにおいて使用される前記第1のドライバであるコンピュータプログラムであって、
前記コンピュータプログラムは、前記情報処理装置を、
前記アプリケーションプログラムと通信するための前記アプリケーションインタフェースと、
前記第2のドライバが備えるアプリケーションインタフェースと通信するための前記第2のドライバインターフェースと
前記第1の画像読取装置が読取った画像のデータを前記アプリケーションプログラムへ渡すとともに、前記第2の画像読取装置が読取った画像のデータを、前記第2のドライバを介して受け取って前記アプリケーションへ渡す手段
として機能させることを特徴とするコンピュータプログラム。
【請求項12】
情報処理装置が接続される第1の画像読取装置と、前記第1の画像読取装置に接続されるとともに前記第1の画像読取装置とは種類が異なる第2の画像読取装置とを備え、
前記情報処理装置は、前記第1の画像読取装置を制御する第1のドライバと前記第2の画像読取装置を制御する第2のドライバとを含む制御プログラムの実行に基づいて、前記第2の画像読取装置への読取指示信号を前記第1のドライバから前記第2のドライバを経由して伝達することを特徴とする画像読取システム。
【請求項13】
前記情報処理装置は、前記第2の画像読取装置で読取られる読取画像を前記第2のドライバから前記第1のドライバを経由して取得することを特徴とする請求項12に記載の画像読取システム。
【請求項14】
前記制御プログラムは、前記第1のドライバと、前記第2のドライバとに対して情報の入出力を行うためのアプリケーションプログラムを含むことを特徴とする請求項12又は13に記載の画像読取システム。
【請求項15】
複数の画像読取装置が接続可能であると共に、前記複数の画像読取装置のうち第1の画像読取装置を制御する第1のドライバと、前記複数の画像読取装置のうち前記第1の画像読取装置とは異なる第2の画像読取装置を制御する第2のドライバと、前記第1のドライバまたは前記第2のドライバとの間で情報の入出力を行うアプリケーションプログラムとを備えており、
前記アプリケーションプログラムの起動に伴って、前記第1のドライバ及び前記第2のドライバのそれぞれを起動することを特徴とする情報処理装置。
【図1】
【図2】
【図3A】
【図3B】
【図3C】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3A】
【図3B】
【図3C】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2013−12238(P2013−12238A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2012−203469(P2012−203469)
【出願日】平成24年9月14日(2012.9.14)
【分割の表示】特願2009−190395(P2009−190395)の分割
【原出願日】平成21年8月19日(2009.8.19)
【出願人】(000104652)キヤノン電子株式会社 (876)
【Fターム(参考)】
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願日】平成24年9月14日(2012.9.14)
【分割の表示】特願2009−190395(P2009−190395)の分割
【原出願日】平成21年8月19日(2009.8.19)
【出願人】(000104652)キヤノン電子株式会社 (876)
【Fターム(参考)】
[ Back to top ]