(57)【要約】      （修正有）【課題】原稿の画像を自動で抽出した場合において、抽出した画像を対象に画像処理を精度良く実行できる制御プログラム及び情報処理装置を提供する。【解決手段】スキャナドライバは、画像の読み取りに対する各種の設定であるスキャンパラメータを受け付ける。スキャナドライバは、ユーザによって原稿ふち補正処理を実行しないことを示すスキャンパラメータが設定されたとしても、原稿ふち補正を実行した補正後原稿スキャンデータ７１Ｃを作成する。そして、スキャナドライバは、補正後原稿スキャンデータ７１Ｃを用いて白地検知処理を実行することで、白紙検知処理の検知精度を向上させる。【選択図】図５
2019047252.tif 000002
【特許請求の範囲】
【請求項１】
ユーザインタフェースを備えた情報処理装置のコンピュータが読み取り可能な制御プログラムであって、
前記コンピュータを、
前記ユーザインタフェースを介して設定パラメータを受け付ける受付手段と、
前記設定パラメータに基づいて、複数の画像処理のうち、いずれの画像処理を施したスキャンデータを出力するか判断する判断手段と、
第１スキャンデータを取得する第１取得手段と、
前記第１取得手段が取得した前記第１スキャンデータを対象にクリッピング処理を実行するクリッピング処理実行手段と、して機能させ、前記クリッピング処理は、原稿の読み取りにより作成される原稿スキャンデータと、前記原稿の外縁の外側の読み取りにより作成される外側スキャンデータとを含む前記第１スキャンデータから、前記原稿スキャンデータを含み、前記外側スキャンデータを含まない第２スキャンデータを作成する処理であり、
前記コンピュータを、
前記クリッピング処理実行手段が作成した前記第２スキャンデータを対象にふち補正処理を実行するふち補正処理実行手段として機能させ、前記ふち補正処理は、前記第２スキャンデータのふちを補正した第３スキャンデータを作成する処理であり、
前記コンピュータを、
前記ふち補正処理実行手段が作成した前記第３スキャンデータを対象に、前記第３スキャンデータの特性を示す特性情報を取得する特性情報取得処理を実行する特性情報取得処理実行手段として機能させ、
前記コンピュータを、
前記クリッピング処理及び前記特性情報取得処理を施してあり、かつ、前記ふち補正処理を施していないスキャンデータを出力すると、前記判断手段が前記設定パラメータに基づいて判断した場合に、前記クリッピング処理実行手段が作成した前記第２スキャンデータを対象として、特定処理を実行する特定処理実行手段として機能させ、前記特定処理は、前記第２スキャンデータを対象とした処理であり且つ前記特性情報取得処理実行手段が取得した前記特性情報に基づいた処理であることを特徴とする制御プログラム。
【請求項２】
前記特性情報取得処理実行手段は、
前記第３スキャンデータに含まれる色要素の数を前記特性情報として取得するスケール検知処理、及び前記第３スキャンデータが白原稿に基づくスキャンデータであるか否かの情報を前記特性情報として取得する白紙検知処理のうち、少なくとも一方の処理を実行することを特徴とする請求項１に記載の制御プログラム。
【請求項３】
前記ふち補正処理実行手段は、
前記ふち補正処理として、前記第２スキャンデータの外周部分の画像であって、且つ前記外側スキャンデータと同一色の画像を検知し、検知した画像を前記原稿スキャンデータに基づく原稿色に補正する処理を実行することを特徴とする請求項１又は請求項２に記載の制御プログラム。
【請求項４】
前記特定処理実行手段は、
前記判断手段により前記クリッピング処理、前記特性情報取得処理、及び前記ふち補正処理を施したスキャンデータを出力すると判断した場合に、前記ふち補正処理実行手段が作成した前記第３スキャンデータを対象として、第２特定処理を実行し、
前記第２特定処理は、前記第３スキャンデータを対象として、前記特性情報取得処理実行手段が取得した前記特性情報に基づいた処理であることを特徴とする請求項１乃至請求項３の何れか１項に記載の制御プログラム。
【請求項５】
前記情報処理装置は、
記憶装置を備え、
前記第１取得手段は、
取得した前記第１スキャンデータを前記記憶装置に記憶させ、
前記クリッピング処理実行手段は、
前記記憶装置から前記第１スキャンデータを読み出し、読み出した前記第１スキャンデータを対象に前記第２スキャンデータを作成し、作成した前記第２スキャンデータを前記記憶装置に記憶させ、
前記ふち補正処理実行手段は、
前記記憶装置から読み出した前記第２スキャンデータを対象に前記ふち補正処理を実行し、前記第３スキャンデータを前記記憶装置に記憶させ、
前記特性情報取得処理実行手段は、
前記記憶装置から読み出した前記第３スキャンデータを対象に前記特性情報を取得することを特徴とする請求項１乃至請求項４の何れか１項に記載の制御プログラム。
【請求項６】
前記クリッピング処理実行手段は、前記クリッピング処理を実行したことに応じて、前記記憶装置から前記第１スキャンデータを削除することを特徴とする請求項５に記載の制御プログラム。
【請求項７】
前記特性情報取得処理実行手段は、前記特性情報取得処理を実行したことに応じて、前記記憶装置から前記第３スキャンデータを削除することを特徴とする請求項５又は請求項６に記載の制御プログラム。
【請求項８】
前記特性情報取得処理実行手段は、
前記第３スキャンデータが白原稿に基づくスキャンデータであるか否かの情報を前記特性情報として取得する白紙検知処理であり、
前記特定処理は、
前記第３スキャンデータが白原稿に基づくスキャンデータであることを、前記特性情報が示す場合に、白原稿に基づく前記第３スキャンデータを破棄する処理であることを特徴とする請求項１乃至請求項７の何れか１項に記載の制御プログラム。
【請求項９】
前記特定処理は、
前記第２スキャンデータを対象に、前記特性情報取得処理実行手段が取得した前記特性情報に基づいた画像処理を施した第４スキャンデータを作成する処理であり、
前記コンピュータを、
前記特定処理で作成した前記第４スキャンデータを出力する出力手段として機能させることを特徴とする請求項１乃至請求項８の何れか１項に記載の制御プログラム。
【請求項１０】
ユーザインタフェースと、
コントローラと、
を備えた情報処理装置であって、
前記コントローラは、
前記ユーザインタフェースを介して設定パラメータを受け付ける受付手段と、
前記設定パラメータに基づいて、複数の画像処理のうち、いずれの画像処理を施したスキャンデータを出力するか判断する判断手段と、
第１スキャンデータを取得する第１取得手段と、
前記第１取得手段が取得した前記第１スキャンデータを対象にクリッピング処理を実行するクリッピング処理実行手段と、を有し、前記クリッピング処理は、原稿の読み取りにより作成される原稿スキャンデータと、前記原稿の外縁の外側の読み取りにより作成される外側スキャンデータとを含む前記第１スキャンデータから、前記原稿スキャンデータを含み、前記外側スキャンデータを含まない第２スキャンデータを作成する処理であり、
前記コントローラは、
前記クリッピング処理実行手段が作成した前記第２スキャンデータを対象にふち補正処理を実行するふち補正処理実行手段を有し、前記ふち補正処理は、前記第２スキャンデータのふちを補正した第３スキャンデータを作成する処理であり、
前記コントローラは、
前記ふち補正処理実行手段が作成した前記第３スキャンデータを対象に、前記第３スキャンデータの特性を示す特性情報を取得する特性情報取得処理を実行する特性情報取得処理実行手段を有し、
前記コントローラは、
前記判断手段により前記クリッピング処理及び前記特性情報取得処理を施してあり、かつ、前記ふち補正処理を施していないスキャンデータを出力すると判断した場合に、前記クリッピング処理実行手段が作成した前記第２スキャンデータを対象として、特定処理を実行する特定処理実行手段を有し、前記特定処理は、前記第２スキャンデータを対象として、前記特性情報取得処理実行手段が取得した前記特性情報に基づいた処理であることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿から読み取ったスキャンデータを処理する制御プログラム等に関する。
【背景技術】
【０００２】
下記特許文献には、読み取る原稿のサイズを自動で検知するスキャナについて記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−２２６１７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、スキャンデータを画像処理して原稿の画像を自動で抽出すると、抽出した原稿の外周部分に不要なデータが含まれる虞がある。例えば、抽出した原稿の外周部分には、スキャナのカバーの内側の画像が入り込む場合がある。その結果、抽出した画像に対する画像処理を精度良く実行できない問題がある。そこで、原稿の画像を自動で抽出した場合において、抽出した画像を対象に画像処理を精度良く実行できることを課題とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、実施例に開示する制御プログラムは、ユーザインタフェースを備えた情報処理装置のコンピュータが読み取り可能な制御プログラムであって、前記コンピュータを、前記ユーザインタフェースを介して設定パラメータを受け付ける受付手段と、前記設定パラメータに基づいて、複数の画像処理のうち、いずれの画像処理を施したスキャンデータを出力するか判断する判断手段と、第１スキャンデータを取得する第１取得手段と、前記第１取得手段が取得した前記第１スキャンデータを対象にクリッピング処理を実行するクリッピング処理実行手段と、して機能させ、前記クリッピング処理は、原稿の読み取りにより作成される原稿スキャンデータと、前記原稿の外縁の外側の読み取りにより作成される外側スキャンデータとを含む前記第１スキャンデータから、前記原稿スキャンデータを含み、前記外側スキャンデータを含まない第２スキャンデータを作成する処理であり、前記コンピュータを、前記クリッピング処理実行手段が作成した前記第２スキャンデータを対象にふち補正処理を実行するふち補正処理実行手段として機能させ、前記ふち補正処理は、前記第２スキャンデータのふちを補正した第３スキャンデータを作成する処理であり、前記コンピュータを、前記ふち補正処理実行手段が作成した前記第３スキャンデータを対象に、前記第３スキャンデータの特性を示す特性情報を取得する特性情報取得処理を実行する特性情報取得処理実行手段として機能させ、前記コンピュータを、前記クリッピング処理及び前記特性情報取得処理を施してあり、かつ、前記ふち補正処理を施していないスキャンデータを出力すると、前記判断手段が前記設定パラメータに基づいて判断した場合に、前記クリッピング処理実行手段が作成した前記第２スキャンデータを対象として、特定処理を実行する特定処理実行手段として機能させ、前記特定処理は、前記第２スキャンデータを対象とした処理であり且つ前記特性情報取得処理実行手段が取得した前記特性情報に基づいた処理であることを特徴とする。
【発明の効果】
【０００６】
実施例に開示する制御プログラムにより、ふち補正を施した第３スキャンデータを対象に特性情報を取得し、その特性情報を用いることで、原稿の画像を自動で抽出した場合であっても、抽出した画像を対象に画像処理を精度良く実行できる。
【図面の簡単な説明】
【０００７】
【図１】スキャンシステム１のブロック図である。
【図２】画像の読み取りの作動状態を示すシーケンス図である。
【図３】画像の読み取りの作動状態を示すシーケンス図である。
【図４】画像の読み取りの処理の流れを示す図である。
【図５】白紙検知処理を実行する場合の処理の流れを示す図である。
【図６】傾いた原稿７５の画像を読み取ったスキャンデータＤ１を示す模式図である。
【図７】ふちの補正前原稿スキャンデータ７１Ｂを示す模式図である。
【図８】ふちの補正後原稿スキャンデータ７１Ｃを示す模式図である。
【図９】原稿ふち補正を実行するパラメータが設定されている場合における画像の読み取りの処理の流れを示す図である。
【図１０】スケール変換処理を実行する場合の処理の流れを示す図である。
【発明を実施するための形態】
【０００８】
＜スキャンシステムの構成＞
図１に、本願に係る実施形態として例示されるスキャンシステム１のブロック図を示す。スキャンシステム１は、ＰＣ（本発明の情報処理装置の一例）１０、スキャナ（本発明の情報処理装置の一例）５０、ルータ５６を備える。
【０００９】
ＰＣ１０は、ＣＰＵ（本発明のコンピュータ及びコントローラの一例）１２、メモリ１４、ＬＣＤ（本発明のユーザインタフェースの一例）１６、入力インタフェース（本発明のユーザインタフェースの一例）１８、ネットワークインタフェース２０を主に備えている。これらの構成要素は、バス２２を介して互いに通信可能とされている。なお、「インタフェース」は、「Ｉ／Ｆ」と記載しても良い。
【００１０】
ＣＰＵ１２は、メモリ１４内のアプリケーションプログラム２６、スキャナドライバ（本発明の制御プログラムの一例）２８、オペレーティングシステム（以下、「ＯＳ」と略す）３２に従って処理を実行する。アプリケーションプログラム２６は、例えば、スキャナ５０でスキャンされたスキャンデータＤ１に対して、公知のＯＣＲ技術で利用される文字認識処理を実行するためのプログラムであり、具体的には、Ａｄｏｂｅ  Ｐｈｏｔｏｓｈｏｐ（登録商標）などの画像編集ソフトである。
【００１１】
また、スキャナドライバ２８は、スキャナ５０のデバイスドライバであり、スキャナ５０の作動を制御する。スキャナドライバ２８は、ＤＳＭ２８Ａ、ドライバメイン処理モジュール２８Ｂ、ドライバＵＩモジュール２８Ｄ、ドライバ画像処理モジュール２８Ｅを有している。ＤＳＭ２８Ａは、データソースマネージャーであり、ＴＷＡＩＮ規格に準拠した通信を行うスキャナドライバ２８において、アプリケーションプログラム２６とのデータの入出力を行うインタフェースとして機能するプログラムである。なお、上記したスキャナドライバ２８の構成は一例であり、スキャナドライバ２８の種類等に応じて適宜変更される。例えば、スキャナドライバ２８がＴＷＡＩＮ規格以外（例えば、ＷＩＡ規格）のドライバである場合、スキャナドライバ２８は、ＤＳＭ２８Ａを備えなくとも良い。この場合、後述するＤＳＭ２８Ａが行う処理は、ＯＳ３２が代わりに実行しても良い。
【００１２】
ドライバメイン処理モジュール２８Ｂ、ドライバＵＩモジュール２８Ｄ、ドライバ画像処理モジュール２８Ｅは、スキャナドライバ２８に含まれる処理モジュールであり、各種の処理を実行する。ドライバメイン処理モジュール２８Ｂは、スキャナ５０とのデータの送受信や、スキャナ５０に対する命令を実行する。ドライバＵＩモジュール２８Ｄは、設定画面の表示等を行う。ドライバ画像処理モジュール２８Ｅは、スキャンデータＤ１に対する画像処理を実行する。
【００１３】
また、ＯＳ３２は、アプリケーションプログラム２６、スキャナドライバ２８に利用される基本的な機能を提供するプログラムである。なお、以下の説明では、アプリケーションプログラム２６等を実行するＣＰＵ１２のことを、単にプログラム名でも記載する場合がある。例えば、「アプリケーションプログラム２６が」という記載は、「アプリケーションプログラム２６を実行するＣＰＵ１２が」ということを意味する場合がある。
【００１４】
また、メモリ１４は、データ記憶領域３４を備える。データ記憶領域３４は、アプリケーションプログラム２６等の実行に必要なデータなどを記憶する領域である。なお、メモリ１４は、ＲＡＭ、ＲＯＭ、フラッシュメモリ、ＨＤＤ、ＣＰＵ１２が備えるバッファなどが組み合わされて構成されている。
【００１５】
メモリ１４は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。後述するスキャナ５０のメモリ５４についても同様である。
【００１６】
ＬＣＤ１６は、ＰＣ１０の各種機能を表示する。入力Ｉ／Ｆ１８は、キーボード，マウス等を含み、ユーザ操作を入力するためのインタフェースである。ネットワークＩ／Ｆ２０は、ルータ５６を介して、スキャナ５０のネットワークインタフェース５１に接続されている。これにより、ＰＣ１０はスキャナ５０との間で情報の送受信を行う。
【００１７】
スキャナ５０は、原稿に印刷された画像を読み取ってスキャンデータＤ１を生成する装置であり、上記したネットワークＩ／Ｆ５１の他に、ＣＰＵ５２、メモリ５４、読取インタフェース５５、入力インタフェース５７、ＬＣＤ５８等を備えている。これらの構成要素は、バス５９を介して互いに通信可能とされている。
【００１８】
ＣＰＵ５２は、メモリ５４内のプログラム６１に従って処理を実行する。メモリ５４は、ＲＡＭ、ＲＯＭなどが組み合わされて構成されている。また、メモリ５４は、データ記憶領域５４Ａを備える。データ記憶領域５４Ａは、プログラム６１の実行に必要なデータなどを記憶する領域である。
【００１９】
プログラム６１は、スキャナ５０を統括的に制御するプログラムであり、デバイスメイン処理モジュール６５、デバイス画像処理モジュール６６を有する。スキャナ５０は、ＰＣ１０によって制御され、読み取ったスキャンデータＤ１をＰＣ１０へ送信する。ＣＰＵ５２は、デバイスメイン処理モジュール６５やデバイス画像処理モジュール６６に従って、スキャンデータＤ１の生成処理やスキャンデータＤ１に対する画像処理を実行する。デバイスメイン処理モジュール６５やデバイス画像処理モジュール６６の詳細については後述する。読取Ｉ／Ｆ５５は、例えば、ＣＣＤやＣＩＳなどの画像を読み取るデバイスである。入力Ｉ／Ｆ５７は、液晶ディスプレイや各種スイッチ等を含み、ユーザ操作を入力するためのインタフェースである。ＬＣＤ５８は、スキャナ５０の各種機能を表示する。
【００２０】
＜画像の読み取りの作動シーケンス＞
次に、ユーザがＰＣ１０を操作してスキャナ５０によって画像の読み取りを行った場合のスキャンシステム１の作動シーケンスについて説明する。図２、図３は、画像読み取りの作動シーケンスの一例を示している。
【００２１】
本明細書のシーケンスチャートは、基本的に、プログラムに記述された命令に従ったＣＰＵ１２、５２の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」「設定」等の処理は、ＣＰＵ１２、５２の処理を表している。ＣＰＵ１２による処理は、ＯＳ３２を介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、ＣＰＵ１２が要求することなくデータを受信するという処理も、「ＣＰＵ１２がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「命令」「応答」「要求」等の処理は、「命令」「応答」「要求」等を示す情報を通信することにより行われる。また、「命令」「応答」「要求」等の文言を、「命令」「応答」「要求」等を示す情報そのものという意味で記載してもよい。
【００２２】
まず、ＰＣ１０の入力インタフェース１８を介した操作入力に従って、アプリケーションプログラム２６が起動する（Ｓ１０１）。アプリケーションプログラム２６は、スキャナドライバ２８のＤＳＭ２８Ａを介してドライバメイン処理モジュール２８Ｂに対しスキャナ５０との接続を命令する（Ｓ１０３，Ｓ１０５）。ドライバメイン処理モジュール２８Ｂは、ルータ５６を介してスキャナ５０への接続要求を送信する（Ｓ１０７）。
【００２３】
スキャナ５０のデバイスメイン処理モジュール６５は、ＰＣ１０のドライバメイン処理モジュール２８Ｂから接続要求を受信すると、接続を確立するための応答をする（Ｓ１０９）。これにより、ＰＣ１０とスキャナ５０との通信が確立される。ドライバメイン処理モジュール２８Ｂは、デバイスメイン処理モジュール６５との通信が確立すると、デバイスメイン処理モジュール６５に対してデバイス能力値の要求を送信する（Ｓ１１１）。
【００２４】
ここでいうデバイス能力値は、スキャナ５０で実行可能な複数の処理の各々を示す値であり、例えば、原稿サイズに関する能力値である。原稿サイズに関する情報は、スキャナ５０で読み取り可能な原稿サイズに関する情報及び、読取対象の原稿サイズをユーザ操作により指定することなく、当該原稿のサイズを自動的に検知する処理（以下、「原稿検知処理」と記載する）（本発明のクリッピング処理の一例）を実行可能であるかを示す情報である。
【００２５】
また、例えば、デバイス能力値は、スキャナが作成可能なスキャンデータの色のスケールに関する能力値を含んでよい。色のスケールは、例えば、ビットマップ画像データにおける１ピクセルに対して設定可能な色数を示す値であり、２４ｂｉｔ（１６６７７７２１６色）のカラースケール，８ｂｉｔ（２５６色）のグレースケール，１ｂｉｔ（２色：白と黒）のモノクロスケール等である。色のスケールのことを色深度ともいう。そして、色のスケールに関する能力値は、スキャナが作成するスキャンデータの色のスケールを示すパラメータとして設定可能な値を示す情報、スキャナがスキャン原稿に含まれる色数を自動的に検知する処理（以下、「スケール検知処理」と記載する）（本発明の特性情報取得処理の一例）を実行可能であるかを示す情報、及び、検知した色数に適した色のスケールを自動的に決定する処理を実行可能であるかを示す情報を含んでよい。
【００２６】
また、例えば、デバイス能力値は、白原稿の検知処理に関する能力値を含んでよい。原稿が読み取られる際に、白紙の原稿、つまり、白原稿が読み取られる場合がある。白原稿の検知処理に関する能力値は、原稿の読み取りにより作成されたスキャンデータが、白原稿のスキャンデータを含むか否かを検知する処理（以下、「白紙検知処理」と記載する）（本発明の特性情報取得処理の一例）を実行可能であるかを示す情報を含んでよい。なお、スキャナ５０は、原稿検知処理，スケール検知処理，白紙検知処理の何れも実行可能である。
【００２７】
デバイスメイン処理モジュール６５は、ドライバメイン処理モジュール２８Ｂからデバイス能力値の要求を受信すると、自身のデバイス能力値を示す値を送信する（Ｓ１１３）。ドライバメイン処理モジュール２８Ｂは、デバイスメイン処理モジュール６５からデバイス能力値を受信すると、スキャナドライバ２８のドライバＵＩモジュール２８Ｄに対して設定画面の表示を命令する（Ｓ１１５）。この設定画面は、デバイスメイン処理モジュール６５から受信したデバイス能力値に基づいて表示されるものであり、画像の読み取りにおいてスキャナ５０で実行可能な処理に対する設定を受け付けるものである。
【００２８】
具体的には、原稿検知処理を実行するか否かを指示する設定操作、及び、原稿サイズを指示する設定操作に従ってパラメータを受け付けるための設定画面が、原稿サイズに関する能力値に基づいて表示される。また、スケール検知処理を実行するか否かを指示する設定操作、及び、色のスケールを指示する設定操作に従ってパラメータを受け付けるための設定画面が、色のスケールに関する能力値に基づいて表示される。また、白紙検知処理を実行するか否かを指示する設定操作に従ってパラメータを受け付けるための設定画面が、白原稿の検知処理に関する能力値に基づいて表示される。
【００２９】
ドライバＵＩモジュール２８Ｄは、ドライバメイン処理モジュール２８Ｂからの命令に応じて、ＰＣ１０のＬＣＤ１６に設定画面を表示する（Ｓ１１７）。ドライバＵＩモジュール２８Ｄは、表示された設定画面の「ＯＫ」ボタンが操作されると、「ＯＫ」ボタンが操作されるまでの、ユーザによる、入力インタフェース１８を介した設定操作に従って、画像の読み取りにおける設定値（以下、「スキャンパラメータ」という場合がある）（本発明の設定パラメータの一例）をメモリ１４に記憶させる（本発明の受付手段の一例）。ＣＰＵ１２が設定操作に従ってパラメータをメモリ１４に記憶することを「パラメータを受け付ける」もしくは「パラメータを設定する」と記載してもよい。ＬＣＤ１６に表示された設定画面のボタンを押下する操作は、設定操作の一例である。スキャンパラメータは設定操作によって直接的に指示されるパラメータであってもよい。例えば、解像度「６００ｄｐｉ」を指示する設定操作に従って、解像度「６００ｄｐｉ」というパラメータをメモリ１４に記憶させてもよい。スキャンパラメータは、設定操作によって間接的に指示されるパラメータであってもよい。例えば、「高品質」を指示する設定操作に従って、解像度「６００ｄｐｉ」というパラメータをメモリ１４に記憶させてもよい。また、後述するように、スキャンパラメータを受け付ける方法は、ＬＣＤ１６に表示した設定画面を用いた方法に限らず、例えば、スキャンパラメータを記載した設定ファイルを読み込む方法でも良い。
【００３０】
なお、スキャンパラメータは、原稿サイズに関するパラメータとして、原稿検知処理の実行の有無を示すパラメータ，ユーザ操作により原稿サイズが設定された場合に設定された原稿サイズを示すパラメータを含む。また、スキャンパラメータは、色のスケールに関するパラメータとして、スケール検知処理の実行の有無を示すパラメータ，ユーザ操作により色のスケールが設定された場合に設定された色のスケールを示すパラメータを含む。また、スキャンパラメータは、白原稿の検知処理に関するパラメータとして、白紙検知処理の実行の有無を示すパラメータを含む。
【００３１】
そして、ドライバＵＩモジュール２８Ｄは、パラメータの受け付けを終了すると、受け付けたスキャンパラメータをドライバメイン処理モジュール２８Ｂに出力し、ドライバメイン処理モジュール２８Ｂに対してスキャンパラメータの記憶を命令する（Ｓ１２１）。ドライバメイン処理モジュール２８Ｂは、ドライバＵＩモジュール２８Ｄから受信したスキャンパラメータを、例えば、メモリ１４のデータ記憶領域３４に記憶する。
【００３２】
次に、ドライバＵＩモジュール２８Ｄは、ユーザからスキャンの開始命令を受け付ける（Ｓ１２３）。ドライバＵＩモジュール２８Ｄは、例えば、上記したＳ１１７で表示した設定画面に対して、ユーザからスキャンを開始することを示す操作を受け付けると、ドライバメイン処理モジュール２８Ｂへスキャンの開始命令を出力する（Ｓ１２５）。
【００３３】
ドライバメイン処理モジュール２８Ｂは、ドライバＵＩモジュール２８Ｄからスキャン開始命令を受け取ると、まず、上記したＳ１２１で記憶したスキャンパラメータ、即ち、設定画面において受け付けたスキャンパラメータを、デバイスメイン処理モジュール６５へ送信する（Ｓ１２７）。この際、ドライバメイン処理モジュール２８Ｂは、例えば、ユーザから受け付けたスキャンパラメータのうち、スキャナ５０側で実行する処理に係わるスキャンパラメータをデバイスメイン処理モジュール６５へ送信する。
【００３４】
次に、ドライバメイン処理モジュール２８Ｂは、デバイスメイン処理モジュール６５へスキャンの開始命令を送信する（Ｓ１２９）。デバイスメイン処理モジュール６５は、Ｓ１２９においてドライバメイン処理モジュール２８Ｂからスキャンの開始命令を受信すると、読取Ｉ／Ｆ５５を駆動して原稿の画像を読み取る処理を実行する（Ｓ１３１）。
【００３５】
デバイスメイン処理モジュール６５は、読取Ｉ／Ｆが原稿を読み取って出力したデータに基づいて作成されたスキャンデータＤ１に対する画像処理をデバイス画像処理モジュール６６へ命令する（Ｓ１３３）。デバイスメイン処理モジュール６５は、読み取ったスキャンデータＤ１と、Ｓ１２７で受信したスキャンパラメータとを、デバイス画像処理モジュール６６へ出力する（Ｓ１３３）。デバイス画像処理モジュール６６は、受け取ったスキャンパラメータに基づいてスキャンデータＤ１に対する画像処理を実行する（Ｓ１３４）。デバイス画像処理モジュール６６は、画像処理後のスキャンデータＤ１をデバイスメイン処理モジュール６５へ出力する（Ｓ１３５）。
【００３６】
デバイスメイン処理モジュール６５は、デバイス画像処理モジュール６６によって画像処理が終了したスキャンデータＤ１を、ドライバメイン処理モジュール２８Ｂへ送信する（Ｓ１３７）。デバイスメイン処理モジュール６５は、例えば、デバイス画像処理モジュール６６から１ライン分のスキャンデータＤ１を受け取ると、受け取ったスキャンデータＤ１をドライバメイン処理モジュール２８Ｂに送信する。即ち、デバイスメイン処理モジュール６５は、１ラインの画像処理が完了するごとにスキャンデータＤ１を送信する。なお、デバイスメイン処理モジュール６５は、１ラインごとにスキャンデータＤ１を送信する構成に限らない。例えば、デバイスメイン処理モジュール６５は、１枚の原稿の画像処理が終了するごとにスキャンデータＤ１を送信しても良い。あるいは、デバイスメイン処理モジュール６５は、全ての原稿の画像を読み取った後に、まとめてスキャンデータＤ１を送信しても良い。
【００３７】
また、デバイスメイン処理モジュール６５は、ドライバメイン処理モジュール２８Ｂへ送信するスキャンデータＤ１を圧縮処理し、データ量を削減しても良い。この場合、例えば、ドライバメイン処理モジュール２８Ｂは、デバイスメイン処理モジュール６５から受信した圧縮されたスキャンデータＤ１を解凍し、解凍したスキャンデータＤ１をその後の処理に用いる。
【００３８】
次に、図３に示すように、ドライバメイン処理モジュール２８Ｂは、スキャナドライバ２８のモジュールであるドライバ画像処理モジュール２８Ｅに対してスキャンデータＤ１の画像処理を命令する（Ｓ１３９）。ドライバメイン処理モジュール２８Ｂは、図２のＳ１３７でデバイスメイン処理モジュール６５から受信したスキャンデータＤ１を、ドライバ画像処理モジュール２８Ｅに出力する（Ｓ１３９）。また、ドライバメイン処理モジュール２８Ｂは、図２のＳ１２１で記憶したスキャンパラメータをドライバ画像処理モジュール２８Ｅへ出力する（Ｓ１３９）。この際、ドライバメイン処理モジュール２８Ｂは、設定画面で受け付けたスキャンパラメータのうち、ＰＣ１０側の画像処理に係わるスキャンパラメータをドライバ画像処理モジュール２８Ｅへ出力する。
【００３９】
ドライバ画像処理モジュール２８Ｅは、ドライバメイン処理モジュール２８Ｂから受け取ったスキャンパラメータに基づいてスキャンデータＤ１を画像処理し（Ｓ１４１）、処理後のスキャンデータＤ１をドライバメイン処理モジュール２８Ｂへ出力する（Ｓ１４３）。
【００４０】
一方で、アプリケーションプログラム２６は、ドライバメイン処理モジュール２８Ｂへ定期的なスキャンデータＤ１の問い合わせを実行する（Ｓ１４５）。アプリケーションプログラム２６は、例えば、図２のＳ１２５においてドライバＵＩモジュール２８Ｄからドライバメイン処理モジュール２８Ｂに対してスキャンの開始命令が出力された後、ドライバメイン処理モジュール２８Ｂへ定期的にスキャンデータＤ１を問い合わせる（Ｓ１４５）。アプリケーションプログラム２６は、Ｓ１４５において、スキャナ５０から受信したスキャンデータＤ１の転送準備が完了したか否かをドライバメイン処理モジュール２８Ｂに定期的に問い合わせる。なお、アプリケーションプログラム２６は、ドライバメイン処理モジュール２８Ｂに対して定期的な問い合わせを実行せず、ドライバメイン処理モジュール２８ＢからスキャンデータＤ１が出力されるまで待機する構成でも良い。
【００４１】
アプリケーションプログラム２６は、Ｓ１４５の問い合わせに対応する応答をドライバメイン処理モジュール２８Ｂから受け取ると（Ｓ１４７）、ドライバメイン処理モジュール２８Ｂに対してスキャンデータＤ１の出力を命令する（Ｓ１４９）。ドライバメイン処理モジュール２８Ｂは、アプリケーションプログラム２６からスキャンデータＤ１の出力命令を受け取ると、スキャンデータＤ１をアプリケーションプログラム２６へ出力する（Ｓ１５１）。
【００４２】
アプリケーションプログラム２６は、ドライバメイン処理モジュール２８Ｂから受け取ったスキャンデータＤ１に対して所定の処理を実行する（Ｓ１５７）。ここでいう所定の処理とは、例えば、ユーザから要求された処理であり、スキャンデータＤ１を印刷する処理である。あるいは、アプリケーションプログラム２６は、スキャンデータＤ１をＰＣ１０（メモリ１４）へ記憶する処理、スキャンデータＤ１をＬＣＤ１６へ表示する処理、スキャンデータＤ１の画像処理、他のアプリケーションプログラムにスキャンデータＤ１を転送する処理、サーバにスキャンデータＤ１を転送する処理などを実行しても良い。
【００４３】
アプリケーションプログラム２６は、Ｓ１５７の処理を完了させると、ＤＳＭ２８Ａを介して、ドライバメイン処理モジュール２８Ｂへ切断命令を出力する（Ｓ１５９、Ｓ１６１）。アプリケーションプログラム２６は、ＤＳＭ２８Ａを介してドライバメイン処理モジュール２８Ｂに対し、デバイスメイン処理モジュール６５（スキャナ５０）との通信の接続を切断するように命令する（Ｓ１５９、Ｓ１６１）。ドライバメイン処理モジュール２８Ｂは、アプリケーションプログラム２６からの命令に応じて、デバイスメイン処理モジュール６５との通信を切断する（Ｓ１６３）。このようにして、スキャンシステム１は、ＰＣ１０のアプリケーションプログラム２６の制御に基づいたスキャナ５０による画像の読み取り処理を終了する。
【００４４】
＜画像の読み取り処理について＞
次に、上記した作動シーケンスにおける画像の読み取り処理の一例について説明する。本実施形態のスキャンシステム１は、様々なサイズの原稿の画像を読み取ることが可能となっている。スキャンシステム１は、上記したスキャンパラメータとして、原稿サイズの自動検知を実行することを示すパラメータが設定された場合、ＰＣ１０側において原稿サイズの検知処理を実行する。スキャンシステム１は、大きさの異なる原稿について、その原稿のサイズよりも大きな画像をスキャナ５０でスキャンデータＤ１として生成し、ＰＣ１０においてそのスキャンデータＤ１から原稿の画像を切り出す処理を行う。
【００４５】
詳述すると、図４は、画像の読み取り処理の一例を示している。図４に示す例では、スキャンパラメータには、原稿サイズを自動で検知し、原稿の画像を自動で抽出することを示すパラメータが設定されている。また、スキャンパラメータには、読み取り原稿の色を自動検知することを示すパラメータが設定されている。また、スキャンパラメータには、白紙検知を実行することを示すパラメータが設定されている。また、以下の説明では、スキャナ５０の読み取り可能な原稿サイズのうち、最大のサイズがＡ４サイズであり、実際に読み取りを行う原稿のサイズがハガキサイズである場合について説明する。この場合、スキャナ５０は、Ａ４サイズよりも小さいハガキサイズの原稿を、読み取り可能な最大のサイズであるＡ４サイズの原稿として画像の読み取りを実行する。
【００４６】
まず、スキャナ５０は、図４に示すように、ハガキサイズの原稿の原稿スキャンデータ７１を、Ａ４サイズのスキャンデータＤ１として読み取る。スキャナ５０は、原稿スキャンデータ７１の外縁の外側に外側スキャンデータ７３を付加したスキャンデータＤ１を生成する。この外側スキャンデータ７３は、Ａ４サイズとして足りない部分に対応しており、例えば、スキャナ５０の原稿を読み取る読み取り台において、原稿を背面側から抑える原稿カバーを読み取った画像である。例えば、原稿カバーの内側（原稿側）には、グレー色が塗られている。この場合、スキャナ５０は、原稿の背景色であるグレー色を、原稿スキャンデータ７１の周囲の外側スキャンデータ７３として読み取り、原稿スキャンデータ７１の外周に付加する。
【００４７】
スキャナ５０は、原稿スキャンデータ７１に外側スキャンデータ７３を付加したスキャンデータＤ１を、ＰＣ１０へ送信する。この送信処理は、図２に示すＳ１３７に対応する。ＰＣ１０側では、上記したようにドライバ画像処理モジュール２８ＥによってスキャンデータＤ１に対する画像処理を行う（図３のＳ１４１）。本実施形態のスキャナ５０は、ＰＣ１０側で原稿サイズを検知する場合、即ち、外側スキャンデータ７３を原稿スキャンデータ７１に付加したスキャンデータＤ１をＰＣ１０へ送信する場合、色のスケールの最も大きい２４ｂｉｔカラーのスキャンデータＤ１をＰＣ１０へ送信する。これにより、ＰＣ１０側の原稿を検知する原稿検知処理（Ｓ２０１）において、色の識別によって外側スキャンデータ７３を容易に検知することができる。また、後述するスケール変換処理（Ｓ２０７）において、色要素の数を適切に削減して最適化することができる。換言すれば、本実施形態のスキャンシステム１では、仮に、スキャンパラメータの色のスケールの設定としてモノクロが設定された場合であっても、原稿サイズを自動検知する設定であれば、ＰＣ１０からスキャナ５０へ２４ｂｉｔカラーのスキャンデータＤ１を要求することとなる。なお、スキャナ５０からＰＣ１０へ送信するスキャンデータＤ１は、２４ｂｉｔカラーのスキャンデータＤ１に限らない。例えば、ＰＣ１０側で８ビットのグレースケールのスキャンデータＤ１に基づいて、外側スキャンデータ７３を検知可能であれば、スキャナ５０からＰＣ１０へグレースケールのスキャンデータＤ１を送信しても良い。
【００４８】
まず、ドライバ画像処理モジュール２８Ｅは、図３のＳ１４１の画像処理として、スキャンデータＤ１から原稿スキャンデータ７１を検知する原稿検知処理を実行する（図４に示すＳ２０１）。ドライバ画像処理モジュール２８Ｅは、外側スキャンデータ７３の色（例えば、グレー色）に基づいてスキャンデータＤ１の画像を処理し、スキャンデータＤ１に含まれる外側スキャンデータ７３を検知する。外側スキャンデータ７３の色は、例えば、上記した図２におけるスキャナ５０のデバイス能力値の取得処理（Ｓ１１１、Ｓ１１３）において、デバイスメイン処理モジュール６５からドライバメイン処理モジュール２８Ｂへ送信される。ドライバ画像処理モジュール２８Ｅは、例えば、この取得処理で得た外側スキャンデータ７３の色に該当し、且つスキャンデータＤ１の外周部分に配置された画像を、外側スキャンデータ７３の画像として検知する。ドライバ画像処理モジュール２８Ｅは、スキャンデータＤ１のうち検知した外側スキャンデータ７３を除く部分を、原稿スキャンデータ７１として抽出する画像処理を行う。尚、画像データを抽出する画像処理のことを、画像データを切り取る画像処理ともいう。
【００４９】
次に、ドライバ画像処理モジュール２８Ｅは、Ｓ２０１で抽出した原稿スキャンデータ７１、即ち、画像を読み取った原稿に対して、白紙原稿に基づくスキャンデータであるか否かを判断する白紙検知処理を実行する（Ｓ２０３）。ドライバ画像処理モジュール２８Ｅは、例えば、抽出した原稿スキャンデータ７１が全て白色である場合、白紙の原稿であると検知する。なお、ドライバ画像処理モジュール２８Ｅは、Ｓ２０３で白紙を検知した場合、ドライバメイン処理モジュール２８Ｂやアプリケーションプログラム２６を介してユーザへ白紙を検知したことを示す通知をしても良い（本発明の特定処理の一例）。あるいは、ドライバ画像処理モジュール２８Ｅは、Ｓ２０３で白紙を検知した場合、スキャンデータＤ１の中から白紙に該当する原稿スキャンデータ７１のみを除去し、白紙以外の原稿スキャンデータ７１を処理後のスキャンデータＤ１としてドライバメイン処理モジュール２８Ｂへ出力しても良い（本発明の特定処理の一例）。
【００５０】
次に、ドライバ画像処理モジュール２８Ｅは、Ｓ２０１で抽出した原稿スキャンデータ７１に含まれる色要素の数、即ち、色のスケールを検知する（Ｓ２０５）。色のスケールの検知方法としては、公知の画像処理方法を用いることができる。ドライバ画像処理モジュール２８Ｅは、例えば、原稿スキャンデータ７１に含まれる色要素の数に基づいて、原稿スキャンデータ７１が、２４ｂｉｔのカラー画像、８ｂｉｔのグレースケール画像、あるいはモノクロ画像のいずれの色のスケールの画像であるかを判断する。
【００５１】
次に、ドライバ画像処理モジュール２８Ｅは、Ｓ２０５で検知した色のスケールに基づいて、原稿スキャンデータ７１の色のスケールを変換するスケール変換処理を実行する（Ｓ２０７）。例えば、ドライバ画像処理モジュール２８Ｅは、Ｓ２０５において、原稿スキャンデータ７１の色のスケールがモノクロである、即ち、原稿スキャンデータ７１に白色と黒色しか含まれていないことを検知すると、Ｓ２０７においてカラーの原稿スキャンデータ７１をモノクロの原稿スキャンデータ７１Ａに変換する。これにより、スキャナ５０から受信したカラーの原稿スキャンデータ７１を最適な色のスケールに変換し色要素の数を削減することで、原稿スキャンデータ７１のデータ量を削減することができる。ドライバ画像処理モジュール２８Ｅは、色のスケールを変換した原稿スキャンデータ７１Ａを出力する。この出力処理は、上記した図３のＳ１４３の処理に対応する。従って、ドライバ画像処理モジュール２８Ｅは、色のスケールを変換した原稿スキャンデータ７１Ａを、画像処理後のスキャンデータＤ１としてドライバ画像処理モジュール２８Ｅに出力する（Ｓ１４３）。
【００５２】
ここで、スキャナ５０側で原稿サイズの検知を実行する場合について説明する。スキャナ５０は、例えば、原稿の主走査方向の長さを、読取Ｉ／Ｆ５５の画像データに基づいて検知する。また、スキャナ５０は、例えば、原稿の副走査方向の長さを、物理的な用紙センサによって検知する。原稿の主走査方向の長さのことを原稿の幅ともいう。原稿の主走査方向の長さのことを原稿の高さともいう。ここでいう物理的な用紙センサとは、例えば、ローラ型のセンサであり、画像の読み取り時に原稿の上を副走査方向へと回転しながら移動し、原稿の端部の段差に基づいて原稿の高さを検知するものである。このような用紙センサによる原稿サイズの検知では、センサの検知精度によっては数ミリ程度の誤差が生じる虞がある。これに対し、本実施形態のスキャンシステム１では、ＰＣ１０側の画像処理によって原稿サイズを検知し、原稿スキャンデータ７１を抽出することで原稿スキャンデータ７１を精度良く抽出できる。
【００５３】
また、原稿の原稿スキャンデータ７１に外側スキャンデータ７３を付加した場合、外側スキャンデータ７３を付加したスキャンデータＤ１に対して白紙検知処理（Ｓ２０３）やスケール検知処理（Ｓ２０５）を実行すると、精度良く白紙検知等を実行できない虞がある。これは、例えば、外側スキャンデータ７３としてグレー色を付加すると、仮に、原稿スキャンデータ７１が白紙であったとしても、スキャンデータＤ１には、白色を示す原稿スキャンデータ７１とグレー色を示す外側スキャンデータ７３の２色が含まれることとなる。その結果、白紙検知処理において、スキャンデータＤ１にグレー色が含まれるため、白紙であることを精度良く検知できなくなる虞がある。また、スケール検知処理において、グレー色を示すデータが原稿スキャンデータ７１に含まれると検知してしまうなど、原稿の色のスケールを精度良く検知できなくなる虞がある。これに対し、本実施形態のスキャンシステム１では、原稿検知処理（Ｓ２０１）によって外側スキャンデータ７３を取り除いた原稿スキャンデータ７１を用いて、白紙検知処理（Ｓ２０３）やスケール検知処理（Ｓ２０５）を実行する。これにより、白紙検知や色のスケールの検知の検知精度を向上することができる。
【００５４】
尚、上記した図４に示す例では、ＰＣ１０側で原稿サイズの検知や原稿スキャンデータ７１の抽出を実行したが、例えば、スキャンパラメータとして原稿サイズを設定された場合には、ＰＣ１０側で原稿検知処理を実行する必要がなくなる。この場合、白紙検知処理（Ｓ２０３）やスケール検知処理（Ｓ２０５）をスキャナ５０側で実行しても良い。これにより、ユーザによってスキャンパラメータに指定された原稿サイズに基づいて画像処理を実行し、ＰＣ１０側での不要な原稿検知処理を実行しないことで、読み取り処理の高速化を図ることができる。
【００５５】
＜原稿ふち補正処理と白紙検知処理について＞
次に、上記した作動シーケンスにおける画像の読み取り処理の一例として、ＰＣ１０側で原稿ふち補正処理を実行する場合について説明する。なお、以下の説明では、上記した図４と同様の内容についてはその説明を適宜省略する。図５は、原稿ふち補正処理を行う場合の処理手順を示している。図５に示す例では、スキャンパラメータには、原稿サイズを自動で検知し、原稿の画像を自動で抽出することを示すパラメータが設定されている。また、スキャンパラメータには、読み取り原稿の色として２４ｂｉｔカラーが設定されている。また、スキャンパラメータには、白紙検知を実行することを示すパラメータが設定されている。また、スキャンパラメータには、原稿ふち補正を実行しないことを示すパラメータが設定されている。以下の説明では、スキャナ５０の読み取り可能な原稿サイズのうち、最大のサイズがＡ４サイズであり、実際に読み取りを行う原稿サイズがハガキサイズの場合について説明する。
【００５６】
スキャナ５０は、上記した図４の場合と同様に、ハガキサイズの原稿の原稿スキャンデータ７１を、Ａ４サイズのスキャンデータＤ１として読み取る。スキャナ５０は、原稿スキャンデータ７１の外縁の外側に外側スキャンデータ７３を付加したスキャンデータＤ１を生成する。スキャナ５０は、原稿スキャンデータ７１に外側スキャンデータ７３を付加したスキャンデータＤ１（本発明の第１スキャンデータの一例）を、ＰＣ１０へ送信する（本発明の第１取得手段の一例）。ＰＣ１０側では、上記したようにドライバ画像処理モジュール２８ＥによってスキャンデータＤ１に対する画像処理を行う（図３のＳ１４１）。
【００５７】
詳述すると、まず、ドライバメイン処理モジュール２８Ｂは、例えば、スキャナ５０から受信したスキャンデータＤ１をメモリ１４のデータ記憶領域３４へ記憶する。ドライバメイン処理モジュール２８Ｂは、メモリ１４に記憶したスキャンデータＤ１を読み出してドライバ画像処理モジュール２８Ｅへ出力する。
【００５８】
ドライバ画像処理モジュール２８Ｅは、ドライバメイン処理モジュール２８Ｂから受け取ったスキャンデータＤ１を対象に、画像処理を行う（図３のＳ１４１）。ドライバ画像処理モジュール２８Ｅは、Ｓ２０９において、ドライバメイン処理モジュール２８Ｂから受け取ったスキャンデータＤ１に対して原稿検知処理、及び原稿ふち補正処理を実行する。
【００５９】
ここで、スキャン時に原稿が傾いていたり、あるいは原稿の外周の一部が破けていたりすると、Ｓ２０９で抽出した原稿スキャンデータ７１の外周部分に外側スキャンデータ７３と同じ色の画像が含まれる場合がある。図６は、一例として、傾いた原稿７５の画像を読み取った場合を示している。図６に破線で示す原稿スキャンデータ７１は、原稿７５の画像としてスキャンデータＤ１から抽出される部分を示している。原稿７５は、この原稿スキャンデータ７１として抽出される範囲に対して傾いた状態となっている。このようなスキャンデータＤ１では、原稿スキャンデータ７１として画像を切り取る範囲内に原稿７５を背面側から抑える原稿カバーの画像、即ち、外側スキャンデータ７３と同じ色の画像が入り込むこととなる。
【００６０】
図７は、原稿スキャンデータ７１を抽出した後の状態を示している。図７に示すように、原稿スキャンデータ７１の一部には、外側スキャンデータ７３と同じ色の背景スキャンデータ７７が含まれている。背景スキャンデータ７７の色は、原稿カバーの内側の色であり、例えばグレー色である。原稿ふち補正処理では、この原稿スキャンデータ７１に張り込んだ背景スキャンデータ７７を、原稿７５の色に合うように補正する。
【００６１】
詳述すると、原稿ふち補正処理では、例えば、原稿スキャンデータ７１に入り込んだ背景スキャンデータ７７を、元々の原稿７５の中で占める割合の大きい色であり、且つ、薄い色を用いて補正する。図８は、一例として、白色によって背景スキャンデータ７７を塗りつぶして原稿スキャンデータ７１を原稿ふち補正した状態を示している。図８に示す破線は、傾いた原稿７５の領域を示す仮想線である。図８に示すように、背景スキャンデータ７７を白色で塗りつぶすことで、傾いた原稿７５の外側には、外側スキャンデータ７３と同じ色の画像がなくなる。
【００６２】
以下の説明では、図７に示す原稿ふち補正前の原稿スキャンデータ７１を、補正前原稿スキャンデータ７１Ｂ（本発明の第２スキャンデータの一例）と称して説明する。また、図８に示す原稿ふち補正後の原稿スキャンデータ７１を、補正後原稿スキャンデータ７１Ｃ（本発明の第３スキャンデータの一例）と称して説明する。図５に示すように、ドライバ画像処理モジュール２８Ｅは、Ｓ２０９において、補正前原稿スキャンデータ７１Ｂ及び補正後原稿スキャンデータ７１Ｃの両方を生成する。詳述すると、ドライバ画像処理モジュール２８Ｅは、Ｓ２０９において、まず、ドライバメイン処理モジュール２８Ｂから受け取ったスキャンデータＤ１（外側スキャンデータ７３を付加された原稿スキャンデータ７１）から、補正前原稿スキャンデータ７１Ｂを抽出する処理、即ち、原稿検知処理を実行する。ドライバ画像処理モジュール２８Ｅは、抽出した補正前原稿スキャンデータ７１Ｂをメモリ１４に記憶させる。なお、ドライバ画像処理モジュール２８Ｅは、原稿検知処理を実行したことに応じて、ドライバメイン処理モジュール２８Ｂが記憶したスキャンデータＤ１をメモリ１４から削除しても良い。図５の処理において、スキャンデータＤ１は、原稿検知処理を実行した後では不要となる。このため、スキャンデータＤ１が不要となった時点でメモリ１４から削除することで、メモリ１４の記憶領域が不要に圧迫されることを抑制できる。
【００６３】
次に、ドライバ画像処理モジュール２８Ｅは、メモリ１４から補正前原稿スキャンデータ７１Ｂを読み出し、読み出した補正前原稿スキャンデータ７１Ｂを対象に、原稿ふち補正処理を実行する（Ｓ２０９）。ドライバ画像処理モジュール２８Ｅは、例えば、補正前原稿スキャンデータ７１Ｂの外周部分の一定範囲内（外縁から内側に数ミリなど）に、外側スキャンデータ７３と同色の画像、即ち、グレー色の画像があるか否かを検知する。ドライバ画像処理モジュール２８Ｅは、一定範囲内で検知したグレー色の画像、即ち、背景スキャンデータ７７（図７参照）を、所定の補正色（例えば、白色）で塗り潰す。ドライバ画像処理モジュール２８Ｅは、例えば、補正前原稿スキャンデータ７１Ｂのうち、外周部分の一定範囲を除く画像において最も広い領域を占める色であり、且つ、薄めの色を補正色として決定する。ドライバ画像処理モジュール２８Ｅは、検知したグレー色の画像を、決定した補正色によって塗りつぶし、補正後原稿スキャンデータ７１Ｃを作成する。ドライバ画像処理モジュール２８Ｅは、作成した補正後原稿スキャンデータ７１Ｃをメモリ１４に記憶する。
【００６４】
上記したように、ドライバ画像処理モジュール２８Ｅは、原稿検知処理によって作成しメモリ１４に記憶した補正前原稿スキャンデータ７１Ｂを対象に、原稿ふち補正処理を実行する（Ｓ２０９）。即ち、ドライバ画像処理モジュール２８Ｅは、原稿検知処理の結果を利用してふち補正処理を実行する。これにより、原稿ふち補正処理において、スキャンデータＤ１から補正前原稿スキャンデータ７１Ｂを改めて作成する必要がなくなり、画像処理の簡易化や高速化を図ることができる。
【００６５】
ドライバ画像処理モジュール２８Ｅは、Ｓ２０９において、補正前原稿スキャンデータ７１Ｂ及び補正後原稿スキャンデータ７１Ｃを作成した後、白紙検知処理を実行する（Ｓ２０３）。例えば、補正後原稿スキャンデータ７１Ｃの画像全体が全て白色である場合、ドライバ画像処理モジュール２８Ｅは、補正後原稿スキャンデータ７１Ｃを用いて白地検知処理を実行することで、白紙原稿である情報（本発明の特性情報の一例）を検知する。この場合、ドライバ画像処理モジュール２８Ｅは、例えば、白紙の原稿スキャンデータ７１を破棄する。
【００６６】
ここで、図５に示す例では、スキャンパラメータには、原稿ふち補正を実行しないことを示すパラメータが設定されている。例えば、ユーザは、原稿７５の外縁の近くに文字等が印刷されていると、その外縁の近くの文字等が原稿ふち補正によって塗りつぶされて消されるのを回避するため、原稿ふち補正処理を実行しないことを示す設定操作を行う場合がある。一方で、白紙検知処理において、原稿スキャンデータ７１の中に、外側スキャンデータ７３と同一色（グレー色）が含まれていると、白紙であることを精度良く検知できなくなる虞がある。そこで、本実施形態のスキャナドライバ２８では、ユーザによって原稿ふち補正処理を実行しないことを示すパラメータが設定されたとしても、原稿ふち補正を実行した補正後原稿スキャンデータ７１Ｃを作成し、補正後原稿スキャンデータ７１Ｃを用いて白地検知処理を実行する。これにより、白紙検知処理の検知精度を向上させることが可能となる。
【００６７】
例えば、ドライバ画像処理モジュール２８Ｅは、図５に示すＳ２０３において補正後原稿スキャンデータ７１Ｃを用いて白紙検知処理を実行し、補正後原稿スキャンデータ７１Ｃが白紙でないことを検知すると、補正前原稿スキャンデータ７１Ｂを出力する（Ｓ１４３）。即ち、ドライバ画像処理モジュール２８Ｅは、ユーザが望む原稿ふち補正を実行していない補正前原稿スキャンデータ７１Ｂを、出力データとして出力する。これにより、ユーザが望む補正前原稿スキャンデータ７１Ｂを出力できるとともに、白紙検知処理の検知精度を向上できる。なお、ドライバ画像処理モジュール２８Ｅは、白地検知処理を実行したことに応じて、メモリ１４に記憶した補正後原稿スキャンデータ７１Ｃを削除しても良い。これにより、補正後原稿スキャンデータ７１Ｃが不要となった時点でメモリ１４から削除することで、メモリ１４の記憶領域が不要に圧迫されることを抑制できる。
【００６８】
なお、上記した図５に示す例では、スキャンパラメータとして、原稿ふち補正を実行しないことを示すパラメータが設定されている場合について説明した。これに対し、仮に、スキャンパラメータとして、原稿ふち補正を実行することを示すパラメータが設定されている場合、即ち、ユーザが、原稿ふち補正後の補正後原稿スキャンデータ７１Ｃの出力を望む場合、ドライバ画像処理モジュール２８Ｅは、補正後原稿スキャンデータ７１Ｃを出力する。図９は、スキャンパラメータとして原稿ふち補正を実行することを示すパラメータが設定された場合を示している。図９に示すように、ドライバ画像処理モジュール２８Ｅは、補正後原稿スキャンデータ７１Ｃを対象に白紙検知処理（Ｓ２０３）を実行し、白紙原稿でなければ、補正後原稿スキャンデータ７１Ｃを出力する（Ｓ１４３）。これにより、ユーザが原稿ふち補正を望む場合に、希望する補正後原稿スキャンデータ７１Ｃを出力し、アプリケーションプログラム２６による各種処理を実行できる。
【００６９】
＜原稿ふち補正処理とスケール検知処理について＞
次に、スキャンパラメータとして、読み取り原稿の色を自動検知することを示すパラメータが設定された場合について説明する。図１０は、原稿色を自動検知する場合の一例を示している。図１０に示す例では、スキャンパラメータには、原稿サイズを自動で検知することを示すパラメータが設定されている。また、スキャンパラメータには、読み取り原稿の色を自動で検知することを示すパラメータが設定されている。また、スキャンパラメータには、白紙検知を実行しないことを示すパラメータが設定されている。また、スキャンパラメータには、原稿ふち補正を実行しないことを示すパラメータが設定されている。なお、以下の説明では、上記した図５と同様の内容についてはその説明を適宜省略する。
【００７０】
まず、スキャナ５０は、原稿スキャンデータ７１の外縁の外側に外側スキャンデータ７３を付加したスキャンデータＤ１を生成し、スキャンデータＤ１をＰＣ１０へ送信する（Ｓ１３７）。ＰＣ１０側のドライバ画像処理モジュール２８Ｅは、Ｓ２０９において、メモリ１４に記憶されたスキャンデータＤ１に対して原稿検知処理、及び原稿ふち補正処理を実行する。ドライバ画像処理モジュール２８Ｅは、原稿検知処理を実行し、スキャンデータＤ１から補正前原稿スキャンデータ７１Ｂを作成し、メモリ１４へ記憶する。また、ドライバ画像処理モジュール２８Ｅは、原稿ふち補正処理を実行し、補正前原稿スキャンデータ７１Ｂから補正後原稿スキャンデータ７１Ｃを作成し、メモリ１４へ記憶する。なお、ドライバ画像処理モジュール２８Ｅは、原稿検知処理を実行後、メモリ１４からスキャンデータＤ１を削除しても良い。
【００７１】
次に、ドライバ画像処理モジュール２８Ｅは、Ｓ２０５において、メモリ１４から読み出した補正後原稿スキャンデータ７１Ｃを対象に、スケール検知処理を実行し、補正後原稿スキャンデータ７１Ｃの色のスケールを検知する（Ｓ２０５）。ドライバ画像処理モジュール２８Ｅは、Ｓ２０５で検知した色のスケールに基づいて、補正前原稿スキャンデータ７１Ｂの色のスケールを変換するスケール変換処理を実行する（Ｓ２０７）。即ち、ドライバ画像処理モジュール２８Ｅは、スケール検知処理に補正後原稿スキャンデータ７１Ｃを用いる一方で、スケール変換処理に補正前原稿スキャンデータ７１Ｂを用いる。これは、例えば、原稿がモノクロである場合に、ドライバ画像処理モジュール２８Ｅは、原稿の外縁にグレー色の背景スキャンデータ７７が含まれる補正前原稿スキャンデータ７１Ｂを用いてスケール検知処理（Ｓ２０５）を実行すると、モノクロの原稿を８ｂｉｔのグレースケール画像の原稿と誤って判断する虞があるからである。
【００７２】
そこで、本実施形態のドライバ画像処理モジュール２８Ｅは、スケール検知処理において、原稿ふち補正後の補正後原稿スキャンデータ７１Ｃを用いることで、色のスケールの検知精度を向上できる。そして、ドライバ画像処理モジュール２８Ｅは、ユーザが望んだ原稿ふち補正を実行していない補正前原稿スキャンデータ７１Ｂに対してスケール変換処理を実行し、変換後の補正前原稿スキャンデータ７１Ｄを、出力データとして出力する（Ｓ１４３）。これにより、ユーザが望む補正前原稿スキャンデータ７１Ｄを出力できるとともに、スケール変換処理を精度よく実行できる。なお、ドライバ画像処理モジュール２８Ｅは、スケール検知処理（Ｓ２０５）を実行したことに応じて、その後の処理に不要な補正後原稿スキャンデータ７１Ｃをメモリ１４から削除しても良い。これにより、メモリ１４の記憶領域が不要に圧迫されることを抑制できる。
【００７３】
また、上記した図１０に示す例では、スキャンパラメータとして、原稿ふち補正を実行しないことを示すパラメータが設定されている場合について説明した。これに対し、仮に、スキャンパラメータとして、原稿ふち補正を実行することを示すパラメータが設定されている場合、図９の場合と同様に、ドライバ画像処理モジュール２８Ｅは、補正後原稿スキャンデータ７１Ｃを対象に各種処理を行う。具体的には、ドライバ画像処理モジュール２８Ｅは、補正後原稿スキャンデータ７１Ｃを対象に、スケール変換処理（Ｓ２０７）を実行する。そして、ドライバ画像処理モジュール２８Ｅは、色のスケールを変換した補正後原稿スキャンデータ７１Ｃを出力する。これにより、ユーザが原稿ふち補正を望む場合に、原稿ふち補正後の画像を出力し、アプリケーションプログラム２６による各種処理を実行できる。
【００７４】
因みに、メモリ１４は、記憶装置の一例である。ＬＣＤ１６、入力Ｉ／Ｆ１８は、ユーザインタフェースの一例である。ＰＣ１０は、情報処理装置の一例である。スキャンパラメータは、設定パラメータの一例である。ドライバメイン処理モジュール２８Ｂは、第１取得手段の一例である。ドライバＵＩモジュール２８Ｄは、受付手段の一例である。ドライバ画像処理モジュール２８Ｅは、判断手段、クリッピング処理実行手段、ふち補正処理実行手段、特性情報取得処理実行手段、特定処理実行手段の一例である。スキャンデータＤ１は、第１スキャンデータの一例である。補正前原稿スキャンデータ７１Ｂは、第２スキャンデータの一例である。補正後原稿スキャンデータ７１Ｃは、第３スキャンデータの一例である。
【００７５】
＜実施例の効果＞
上記した実施形態によれば、以下の効果を奏する。
【００７６】
前記特性情報取得処理実行手段は、前記第３スキャンデータに含まれる色要素の数を前記特性情報として取得するスケール検知処理、及び前記第３スキャンデータが白原稿に基づくスキャンデータであるか否かの情報を前記特性情報として取得する白紙検知処理のうち、少なくとも一方の処理を実行する。これにより、スケール検知処理や白紙検知処理を精度よく実行できる。
【００７７】
前記ふち補正処理実行手段は、前記ふち補正処理として、前記第２スキャンデータの外周部分の画像であって、且つ前記外側スキャンデータと同一色の画像を検知し、検知した画像を前記原稿スキャンデータに基づく原稿色に補正する処理を実行する。これにより、原稿の傾きなどによって第２スキャンデータに入り込んだ不要なデータをなくすことができる。
【００７８】
前記特定処理実行手段は、前記判断手段により前記クリッピング処理、前記特性情報取得処理、及び前記ふち補正処理を施したスキャンデータを出力すると判断した場合に、前記ふち補正処理実行手段が作成した前記第３スキャンデータを対象として、第２特定処理を実行し、前記第２特定処理は、前記第３スキャンデータを対象として、前記特性情報取得処理実行手段が取得した前記特性情報に基づいた処理である。これにより、ユーザの望むふち補正後のスキャンデータを出力することが可能となる。
【００７９】
前記情報処理装置は、記憶装置を備え、前記第１取得手段は、取得した前記第１スキャンデータを前記記憶装置に記憶させ、前記クリッピング処理実行手段は、前記記憶装置から前記第１スキャンデータを読み出し、読み出した前記第１スキャンデータを対象に前記第２スキャンデータを作成し、作成した前記第２スキャンデータを前記記憶装置に記憶させ、前記ふち補正処理実行手段は、前記記憶装置から読み出した前記第２スキャンデータを対象に前記ふち補正処理を実行し、前記第３スキャンデータを前記記憶装置に記憶させ、前記特性情報取得処理実行手段は、前記記憶装置から読み出した前記第３スキャンデータを対象に前記特性情報を取得する。これにより、ふち補正処理実行手段は、クリッピング処理実行手段により作成した第２スキャンデータを利用することで、処理の効率化、高速化を図ることができる。
【００８０】
前記クリッピング処理実行手段は、前記クリッピング処理を実行したことに応じて、前記記憶装置から前記第１スキャンデータを削除する。これにより、第１スキャンデータが不要となった時点で記憶装置から削除することで、記憶装置の記憶領域が不要に圧迫されることを抑制できる。
【００８１】
前記特性情報取得処理実行手段は、前記特性情報取得処理を実行したことに応じて、前記記憶装置から前記第３スキャンデータを削除する。これにより、第３スキャンデータが不要となった時点で記憶装置から削除することで、記憶装置の記憶領域が不要に圧迫されることを抑制できる。
【００８２】
前記特性情報取得処理実行手段は、前記第３スキャンデータが白原稿に基づくスキャンデータであるか否かの情報を前記特性情報として取得する白紙検知処理であり、前記特定処理は、前記第３スキャンデータが白原稿に基づくスキャンデータであることを、前記特性情報が示す場合に、白原稿に基づく前記第３スキャンデータを破棄する処理である。これにより、白原稿のスキャンデータを削除することで、不要なデータが出力等されることを抑制できる。
【００８３】
前記特定処理は、前記第２スキャンデータを対象に、前記特性情報取得処理実行手段が取得した前記特性情報に基づいた画像処理を施した第４スキャンデータを作成する処理であり、前記コンピュータを、前記特定処理で作成した前記第４スキャンデータを出力する出力手段として機能させる。これにより、ユーザの望む画像処理を施したスキャンデータを出力することができる。
【００８４】
また、本発明は、上記実施形態に限定されるものではなく、当業者の知識に基づいて種々の変更、改良を施した種々の態様で実施することが可能である。
具体的には、例えば、上記実施形態では、ＰＣ１０のスキャナドライバ２８が、原稿検知処理、白紙検知処理、スケール検知処理、スケール変換処理、原稿ふち補正処理などを実行したが、スキャナ５０のプログラム６１がこれらの処理の一部又は全部を実行しても良い。この場合、スキャナ５０は、本願の情報処理装置の一例である。また、プログラム６１は、本願の制御プログラムの一例である。
【００８５】
また、上記実施形態では、ＣＰＵ１２によってＰＣ１０側の処理が実行される例を説明したが、これに限らない。ＰＣ１０は、図５に示す原稿ふち補正処理などを、ＣＰＵ１２に限らず、ＡＳＩＣや他の論理集積回路により実行しても良いし、ＣＰＵ等やＡＳＩＣ、他の論理集積回路を協働させて実行しても良い。
また、上記実施形態では、ドライバ画像処理モジュール２８Ｅは、スキャンデータＤ１、補正前原稿スキャンデータ７１Ｂ、補正後原稿スキャンデータ７１Ｃを作成するとメモリ１４へ記憶したが、メモリ１４へ記憶しなくとも良い。
【符号の説明】
【００８６】
１０  ＰＣ、１６  ＬＣＤ、１８  入力Ｉ／Ｆ、２８  スキャナドライバ、２８Ｂ  ドライバメイン処理モジュール、２８Ｄ  ドライバＵＩモジュール、２８Ｅ  ドライバ画像処理モジュール、５０  スキャナ、６１  プログラム。
【図１】
2019047252.tif 000003
【図２】
2019047252.tif 000004
【図３】
2019047252.tif 000005
【図４】
2019047252.tif 000006
【図５】
2019047252.tif 000007
【図６】
2019047252.tif 000008
【図７】
2019047252.tif 000009
【図８】
2019047252.tif 000010
【図９】
2019047252.tif 000011
【図１０】
2019047252.tif 000012