(57)【要約】【課題】文字認識処理の処理結果を利用して、所定の処理を好適に行う。【解決手段】疑似中間調でのスキャンデータの作成が要求され、文字認識処理を用いた所定の処理の実行が要求されている場合に、多値のスキャンデータの作成を指示し、作成された多値のスキャンデータに基づいて文字認識処理が実行される。続いて、文字認識処理の処理結果を利用して、所定の処理が実行される。そして、文字認識処理が実行された後に、多値のスキャンデータが、疑似中間調のスキャンデータに変換される。これにより、適切な文字認識処理の実行を担保し、文字認識処理の処理結果を利用して、所定の処理を好適に行うことができる。さらに、多値のスキャンデータを、疑似中間調のスキャンデータに変換することで、ユーザの望むスキャンデータを提供することができる。【選択図】図１
2019139619.tif 000002
【特許請求の範囲】
【請求項１】
操作部と、記憶部とを備える画像処理装置のコンピュータが読み取り可能な制御プログラムであって、
前記コンピュータを、
前記操作部を介して、スキャン処理の設定値を受け付ける受付手段と、
前記受付手段が受け付けた設定値が、疑似中間調のスキャンデータの作成を要求するものであり、かつ、文字認識処理の処理結果を利用する所定の処理の実行を要求するものである場合に、多値のスキャンデータの作成を指示するスキャン指示を出力する第１指示出力手段と、
前記第１指示出力手段によるスキャン指示の出力に応じて取得した多値のスキャンデータを、前記記憶部に記憶させる記憶制御手段と、
前記記憶制御手段により記憶された多値のスキャンデータに基づいて、文字認識処理を実行する第１処理実行手段と、
前記第１処理実行手段による処理が実行された後に、前記記憶制御手段により記憶された多値のスキャンデータを、疑似中間調のスキャンデータに変換する変換手段と、
前記第１処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第２処理実行手段と、
前記受付手段が受け付けた設定値が、疑似中間調と異なる種類のスキャンデータの作成を要求するものであり、かつ、前記所定の処理の実行を要求するものである場合に、前記受付手段が受け付けた設定値に従ったスキャンデータの作成を指示するスキャン指示を出力する第２指示出力手段と、
前記第２指示出力手段によるスキャン指示の出力に応じて取得したスキャンデータに基づいて、文字認識処理を実行する第３処理実行手段と、
前記第３処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第４処理実行手段と、
前記変換手段による変換と、前記第２処理実行手段による処理の実行とが行われたスキャンデータ、又は、前記第４処理実行手段による処理の実行が行われたスキャンデータを出力するデータ出力手段と、
して機能させることを特徴とする制御プログラム。
【請求項２】
前記第１指示出力手段は、
多値のスキャンデータとして、グレースケールのスキャンデータの作成を指示することを特徴とする請求項１に記載の制御プログラム。
【請求項３】
操作部と、記憶部とを備える画像処理装置のコンピュータが読み取り可能な制御プログラムであって、
前記コンピュータを、
前記操作部を介して、スキャン処理の設定値を受け付ける受付手段と、
前記受付手段が受け付けた設定値が、予め設定された設定解像度未満のスキャンデータの作成を要求するものであり、かつ、文字認識処理の処理結果を利用する所定の処理の実行を要求するものである場合に、前記設定解像度以上のスキャンデータの作成を指示するスキャン指示を出力する第１指示出力手段と、
前記第１指示出力手段によるスキャン指示の出力に応じて取得した前記設定解像度以上のスキャンデータを、前記記憶部に記憶させる記憶制御手段と、
前記記憶制御手段により記憶された前記設定解像度以上のスキャンデータに基づいて、文字認識処理を実行する第１処理実行手段と、
前記第１処理実行手段による処理が実行された後に、前記記憶制御手段により記憶された前記設定解像度以上のスキャンデータを、前記受付手段が受け付けた設定値に従った解像度のスキャンデータに変換する変換手段と、
前記第１処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第２処理実行手段と、
前記受付手段が受け付けた設定値が、前記設定解像度以上のスキャンデータの作成を要求するものであり、かつ、前記所定の処理の実行を要求するものである場合に、前記受付手段が受け付けた設定値に従ったスキャンデータの作成を指示するスキャン指示を出力する第２指示出力手段と、
前記第２指示出力手段によるスキャン指示の出力に応じて取得したスキャンデータに基づいて、文字認識処理を実行する第３処理実行手段と、
前記第３処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第４処理実行手段と、
前記変換手段による変換と、前記第２処理実行手段による処理の実行とが行われたスキャンデータ、又は、前記第４処理実行手段による処理の実行が行われたスキャンデータを出力するデータ出力手段と、
して機能させることを特徴とする制御プログラム。
【請求項４】
前記コンピュータを、
前記第１処理実行手段による文字認識処理の処理結果として、文字の向きを取得する第１取得手段と、
前記第３処理実行手段による文字認識処理の処理結果として、文字の向きを取得する第２取得手段と、
して機能させ、
前記第２処理実行手段は、
前記第１取得手段により取得された文字向きに基づいて、スキャンデータに基づく画像を回転させる回転処理を、前記所定の処理として実行し、
前記第４処理実行手段は、
前記第２取得手段により取得された文字向きに基づいて、スキャンデータに基づく画像を回転させる回転処理を、前記所定の処理として実行することを特徴とする請求項１乃至３の何れか１項に記載の制御プログラム。
【請求項５】
前記第１指示出力手段は、
前記受付手段が受け付けた設定値が、さらに、原稿の両面のスキャン処理を要求するものである場合に、前記原稿の第１面に対して、多値のスキャンデータ又は前記設定解像度以上のスキャンデータの作成を指示するスキャン指示を出力し、前記原稿の第２面に対して、前記受付手段が受け付けた設定値に従ったスキャンデータの作成を指示するスキャン指示を出力し、
前記第１処理実行手段と前記第１取得手段と前記変換手段とは、
前記原稿の第１面のスキャンデータに対して各処理を実行し、
前記第２処理実行手段は、
前記第１取得手段により取得された文字向きに基づいて、前記原稿の第１面のスキャンデータに基づく画像と、前記原稿の第２面のスキャンデータに基づく画像とを回転させる回転処理を、前記所定の処理として実行することを特徴とする請求項４に記載の制御プログラム。
【請求項６】
操作部と、
記憶部と、
制御部と、
を備える画像処理装置であって、
前記制御部を、
前記操作部を介して、スキャン処理の設定値を受け付ける受付手段と、
前記受付手段が受け付けた設定値が、疑似中間調のスキャンデータの作成を要求するものであり、かつ、文字認識処理の処理結果を利用する所定の処理の実行を要求するものである場合に、多値のスキャンデータの作成を指示するスキャン指示を出力する第１指示出力手段と、
前記第１指示出力手段によるスキャン指示の出力に応じて取得した多値のスキャンデータを、前記記憶部に記憶させる記憶制御手段と、
前記記憶制御手段により記憶された多値のスキャンデータに基づいて、文字認識処理を実行する第１処理実行手段と、
前記第１処理実行手段による処理が実行された後に、前記記憶制御手段により記憶された多値のスキャンデータを、疑似中間調のスキャンデータに変換する変換手段と、
前記第１処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第２処理実行手段と、
前記受付手段が受け付けた設定値が、疑似中間調と異なる種類のスキャンデータの作成を要求するものであり、かつ、前記所定の処理の実行を要求するものである場合に、前記受付手段が受け付けた設定値に従ったスキャンデータの作成を指示するスキャン指示を出力する第２指示出力手段と、
前記第２指示出力手段によるスキャン指示の出力に応じて取得したスキャンデータに基づいて、文字認識処理を実行する第３処理実行手段と、
前記第３処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第４処理実行手段と、
前記変換手段による変換と、前記第２処理実行手段による処理の実行とが行われたスキャンデータ、又は、前記第４処理実行手段による処理の実行が行われたスキャンデータを出力するデータ出力手段と、
して機能させることを特徴とする画像処理装置。
【請求項７】
操作部と、
記憶部と、
制御部と、
を備える画像処理装置であって、
前記制御部を、
前記操作部を介して、スキャン処理の設定値を受け付ける受付手段と、
前記受付手段が受け付けた設定値が、予め設定された設定解像度未満のスキャンデータの作成を要求するものであり、かつ、文字認識処理の処理結果を利用する所定の処理の実行を要求するものである場合に、前記設定解像度以上のスキャンデータの作成を指示するスキャン指示を出力する第１指示出力手段と、
前記第１指示出力手段によるスキャン指示の出力に応じて取得した前記設定解像度以上のスキャンデータを、前記記憶部に記憶させる記憶制御手段と、
前記記憶制御手段により記憶された前記設定解像度以上のスキャンデータに基づいて、文字認識処理を実行する第１処理実行手段と、
前記第１処理実行手段による処理が実行された後に、前記記憶制御手段により記憶された前記設定解像度以上のスキャンデータを、前記受付手段が受け付けた設定値に従った解像度のスキャンデータに変換する変換手段と、
前記第１処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第２処理実行手段と、
前記受付手段が受け付けた設定値が、前記設定解像度以上のスキャンデータの作成を要求するものであり、かつ、前記所定の処理の実行を要求するものである場合に、前記受付手段が受け付けた設定値に従ったスキャンデータの作成を指示するスキャン指示を出力する第２指示出力手段と、
前記第２指示出力手段によるスキャン指示の出力に応じて取得したスキャンデータに基づいて、文字認識処理を実行する第３処理実行手段と、
前記第３処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第４処理実行手段と、
前記変換手段による変換と、前記第２処理実行手段による処理の実行とが行われたスキャンデータ、又は、前記第４処理実行手段による処理の実行が行われたスキャンデータを出力するデータ出力手段と、
して機能させることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字認識処理を実行可能な画像処理装置のコンピュータが読み取り可能な制御プログラム等に関する。
【背景技術】
【０００２】
スキャンデータに基づいて文字認識処理を行う技術が知られている。下記特許文献に記載の技術では、文字認識の精度を向上させるべく、プリスキャンを実行し、プリスキャンで読み取られたスキャンデータに基づいて文字認識処理が実行される。そして、プリスキャン実行後に、本スキャンを実行し、本スキャンで読み取られたスキャンデータに、出力用の画像処理が実行される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２２９４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献に記載の技術では、文字認識処理が実行される際に、必ずプリスキャンを行う必要があり、効率が悪かった。そこで、本願は、効率よく文字認識処理を行うことを課題とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、実施例に開示する制御プログラムは、操作部と、記憶部とを備える画像処理装置のコンピュータが読み取り可能な制御プログラムであって、前記コンピュータを、前記操作部を介して、スキャン処理の設定値を受け付ける受付手段と、前記受付手段が受け付けた設定値が、疑似中間調のスキャンデータの作成を要求するものであり、かつ、文字認識処理の処理結果を利用する所定の処理の実行を要求するものである場合に、多値のスキャンデータの作成を指示するスキャン指示を出力する第１指示出力手段と、前記第１指示出力手段によるスキャン指示の出力に応じて取得した多値のスキャンデータを、前記記憶部に記憶させる記憶制御手段と、前記記憶制御手段により記憶された多値のスキャンデータに基づいて、文字認識処理を実行する第１処理実行手段と、前記第１処理実行手段による処理が実行された後に、前記記憶制御手段により記憶された多値のスキャンデータを、疑似中間調のスキャンデータに変換する変換手段と、前記第１処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第２処理実行手段と、前記受付手段が受け付けた設定値が、疑似中間調と異なる種類のスキャンデータの作成を要求するものであり、かつ、前記所定の処理の実行を要求するものである場合に、前記受付手段が受け付けた設定値に従ったスキャンデータの作成を指示するスキャン指示を出力する第２指示出力手段と、前記第２指示出力手段によるスキャン指示の出力に応じて取得したスキャンデータに基づいて、文字認識処理を実行する第３処理実行手段と、前記第３処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第４処理実行手段と、前記変換手段による変換と、前記第２処理実行手段による処理の実行とが行われたスキャンデータ、又は、前記第４処理実行手段による処理の実行が行われたスキャンデータを出力するデータ出力手段と、して機能させることを特徴とする。
【０００６】
上記課題を解決するために、実施例に開示する制御プログラムは、操作部と、記憶部とを備える画像処理装置のコンピュータが読み取り可能な制御プログラムであって、前記コンピュータを、前記操作部を介して、スキャン処理の設定値を受け付ける受付手段と、前記受付手段が受け付けた設定値が、予め設定された設定解像度未満のスキャンデータの作成を要求するものであり、かつ、文字認識処理の処理結果を利用する所定の処理の実行を要求するものである場合に、前記設定解像度以上のスキャンデータの作成を指示するスキャン指示を出力する第１指示出力手段と、前記第１指示出力手段によるスキャン指示の出力に応じて取得した前記設定解像度以上のスキャンデータを、前記記憶部に記憶させる記憶制御手段と、前記記憶制御手段により記憶された前記設定解像度以上のスキャンデータに基づいて、文字認識処理を実行する第１処理実行手段と、前記第１処理実行手段による処理が実行された後に、前記記憶制御手段により記憶された前記設定解像度以上のスキャンデータを、前記受付手段が受け付けた設定値に従った解像度のスキャンデータに変換する変換手段と、前記第１処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第２処理実行手段と、前記受付手段が受け付けた設定値が、前記設定解像度以上のスキャンデータの作成を要求するものであり、かつ、前記所定の処理の実行を要求するものである場合に、前記受付手段が受け付けた設定値に従ったスキャンデータの作成を指示するスキャン指示を出力する第２指示出力手段と、前記第２指示出力手段によるスキャン指示の出力に応じて取得したスキャンデータに基づいて、文字認識処理を実行する第３処理実行手段と、前記第３処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第４処理実行手段と、前記変換手段による変換と、前記第２処理実行手段による処理の実行とが行われたスキャンデータ、又は、前記第４処理実行手段による処理の実行が行われたスキャンデータを出力するデータ出力手段と、して機能させることを特徴とする。
【０００７】
上記課題を解決するために、実施例に開示する画像処理装置は、操作部と、記憶部と、制御部と、を備える画像処理装置であって、前記制御部を、前記操作部を介して、スキャン処理の設定値を受け付ける受付手段と、前記受付手段が受け付けた設定値が、疑似中間調のスキャンデータの作成を要求するものであり、かつ、文字認識処理の処理結果を利用する所定の処理の実行を要求するものである場合に、多値のスキャンデータの作成を指示するスキャン指示を出力する第１指示出力手段と、前記第１指示出力手段によるスキャン指示の出力に応じて取得した多値のスキャンデータを、前記記憶部に記憶させる記憶制御手段と、前記記憶制御手段により記憶された多値のスキャンデータに基づいて、文字認識処理を実行する第１処理実行手段と、前記第１処理実行手段による処理が実行された後に、前記記憶制御手段により記憶された多値のスキャンデータを、疑似中間調のスキャンデータに変換する変換手段と、前記第１処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第２処理実行手段と、前記受付手段が受け付けた設定値が、疑似中間調と異なる種類のスキャンデータの作成を要求するものであり、かつ、前記所定の処理の実行を要求するものである場合に、前記受付手段が受け付けた設定値に従ったスキャンデータの作成を指示するスキャン指示を出力する第２指示出力手段と、前記第２指示出力手段によるスキャン指示の出力に応じて取得したスキャンデータに基づいて、文字認識処理を実行する第３処理実行手段と、前記第３処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第４処理実行手段と、前記変換手段による変換と、前記第２処理実行手段による処理の実行とが行われたスキャンデータ、又は、前記第４処理実行手段による処理の実行が行われたスキャンデータを出力するデータ出力手段と、して機能させることを特徴とする。
【０００８】
上記課題を解決するために、実施例に開示する画像処理装置は、操作部と、記憶部と、制御部と、を備える画像処理装置であって、前記制御部を、前記操作部を介して、スキャン処理の設定値を受け付ける受付手段と、前記受付手段が受け付けた設定値が、予め設定された設定解像度未満のスキャンデータの作成を要求するものであり、かつ、文字認識処理の処理結果を利用する所定の処理の実行を要求するものである場合に、前記設定解像度以上のスキャンデータの作成を指示するスキャン指示を出力する第１指示出力手段と、前記第１指示出力手段によるスキャン指示の出力に応じて取得した前記設定解像度以上のスキャンデータを、前記記憶部に記憶させる記憶制御手段と、前記記憶制御手段により記憶された前記設定解像度以上のスキャンデータに基づいて、文字認識処理を実行する第１処理実行手段と、前記第１処理実行手段による処理が実行された後に、前記記憶制御手段により記憶された前記設定解像度以上のスキャンデータを、前記受付手段が受け付けた設定値に従った解像度のスキャンデータに変換する変換手段と、前記第１処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第２処理実行手段と、前記受付手段が受け付けた設定値が、前記設定解像度以上のスキャンデータの作成を要求するものであり、かつ、前記所定の処理の実行を要求するものである場合に、前記受付手段が受け付けた設定値に従ったスキャンデータの作成を指示するスキャン指示を出力する第２指示出力手段と、前記第２指示出力手段によるスキャン指示の出力に応じて取得したスキャンデータに基づいて、文字認識処理を実行する第３処理実行手段と、前記第３処理実行手段による文字認識処理の処理結果を利用して、前記所定の処理を実行する第４処理実行手段と、前記変換手段による変換と、前記第２処理実行手段による処理の実行とが行われたスキャンデータ、又は、前記第４処理実行手段による処理の実行が行われたスキャンデータを出力するデータ出力手段と、して機能させることを特徴とする。
【発明の効果】
【０００９】
実施例に開示する制御プログラム及び画像処理装置において、疑似中間調でのスキャンデータの作成が要求され、文字認識処理を用いた所定の処理の実行が要求されている場合に、多値のスキャンデータの作成を指示し、作成された多値のスキャンデータに基づいて文字認識処理が実行される。続いて、文字認識処理の処理結果を利用して、所定の処理が実行される。そして、文字認識処理が実行された後に、多値のスキャンデータが、疑似中間調のスキャンデータに変換される。これにより、文字認識処理が実行される際に、プリスキャンを行うことなく、効率よく文字認識処理を行うことができる。
【００１０】
また、設定解像度Ａ未満のスキャンデータの作成が要求され、文字認識処理を用いた所定の処理の実行が要求されている場合に、少なくとも設定解像度Ａ以上である解像度Ｂのスキャンデータの作成を指示し、作成された解像度Ｂのスキャンデータに基づいて文字認識処理が実行される。続いて、文字認識処理の処理結果を利用して、所定の処理が実行される。そして、文字認識処理が実行された後に、解像度Ｂのスキャンデータが、設定解像度Ａ未満のスキャンデータに変換される。これにより、文字認識処理が実行される際に、プリスキャンを行うことなく、効率よく文字認識処理を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】スキャンシステム１のブロック図である。
【図２】スキャンシステム１の作動を示す図である。
【図３】スキャンシステム１の作動を示す図である。
【図４】スキャンシステム１の作動を示す図である。
【図５】スキャナドライバ３０のフローチャートを示す図である。
【図６】スキャナドライバ３０のフローチャートを示す図である。
【図７】スキャナドライバ３０のフローチャートを示す図である。
【図８】スキャナドライバ３０のフローチャートを示す図である。
【図９】スキャナドライバ３０のフローチャートを示す図である。
【図１０】スキャナドライバ３０のフローチャートを示す図である。
【発明を実施するための形態】
【００１２】
＜スキャンシステムの構成＞
図１に、本願に係る実施形態として例示されるスキャンシステム１のブロック図を示す。スキャンシステム１は、ＰＣ（本発明の画像処理装置の一例）１０、スキャナ５０を備える。
【００１３】
ＰＣ１０は、ＣＰＵ（コンピュータ及び制御部の一例）１２、メモリ１４、ＬＣＤ１６、入力Ｉ／Ｆ（操作部の一例）１８、ネットワークＩ／Ｆ２０を主に備えている。これらの構成要素は、バス２２を介して互いに通信可能とされている。
【００１４】
ＰＣ１０は、スキャナ５０と、ネットワークＩ／Ｆ２０及びネットワーク５２を通じて通信可能となっている。通信の方式としては、例えば、有線ＬＡＮ、ＵＳＢ、Ｗｉ−Ｆｉ（登録商標）やＢｌｕｅｔｏｏｔｈ（登録商標）を採用できる。なお、スキャナ５０は、ＰＣ１０との間で各種の情報や指示信号を送受信し、ＰＣ１０による制御に基づいて、スキャンデータを作成する。
【００１５】
ＣＰＵ１２は、メモリ１４内のスキャナドライバ（制御プログラムの一例）３０、アプリケーション３２に従って処理を実行する。スキャナドライバ３０は、スキャナ５０のデバイスドライバであり、スキャナ５０の作動を制御する。また、アプリケーション３２は、例えば、スキャナ５０により作成されたスキャンデータに対して、任意の画像処理を実行するためのプログラムであり、具体的には、Ａｄｏｂｅ  Ｐｈｏｔｏｓｈｏｐ（登録商標）などの画像編集ソフトである。ちなみに、スキャナドライバ３０及び、アプリケーション３２は、例えば、ＴＷＡＩＮ規格に従ったプログラムである。
【００１６】
なお、以下の説明では、スキャナドライバ３０等を実行するＣＰＵ１２のことを、単にプログラム名でも記載する場合がある。例えば、「スキャナドライバ３０が」という記載は、「スキャナドライバ３０を実行するＣＰＵ１２が」ということを意味する場合がある。
【００１７】
また、メモリ１４は、データ記憶領域（記憶部の一例）３４を備える。データ記憶領域３４は、スキャナドライバ３０等の実行に必要なデータなどを記憶する領域である。なお、メモリ１４は、ＲＡＭ、ＲＯＭ、フラッシュメモリ、ＨＤＤ、ＣＰＵ１２が備えるバッファなどが組み合わされて構成されている。
【００１８】
メモリ１４は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。
【００１９】
ＬＣＤ１６は、ＰＣ１０の各種機能を表示する。入力Ｉ／Ｆ１８は、キーボード，マウス等を含み、ユーザ操作を入力するためのインタフェースである。
【００２０】
＜スキャンシステムの作動＞
本明細書でのスキャンシステム１の作動の説明において、基本的に、プログラムに記述された命令に従ったＣＰＵ１２の処理を示す。すなわち、以下の説明における「判断」「抽出」「選択」「算出」「決定」「特定」「取得」「受付」「制御」「設定」等の処理は、ＣＰＵ１２の処理を表している。ＣＰＵ１２による処理は、ＯＳ３６を介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、ＣＰＵ１２が要求することなくデータを受信するという処理も、「ＣＰＵ１２がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。また、「命令」「応答」「要求」等の処理は、「命令」「応答」「要求」等を示す情報を通信することにより行われる。また、「命令」「応答」「要求」等の文言を、「命令」「応答」「要求」等を示す情報そのものという意味で記載してもよい。
【００２１】
スキャンシステム１では、通常、ＰＣ１０において、入力Ｉ／Ｆ１８を介して、スキャン処理の設定値が入力され、入力された設定値に従ったスキャン指示が、スキャナ５０に送信されることで、スキャナ５０により、ユーザの意図に従ったスキャン処理が実行される。ここで、設定されるスキャン処理の設定値として、原稿サイズに関する設定値、スキャンデータの色のスケールに関する設定値、スキャンデータの解像度に関する設定値、原稿向き自動補正に関する設定値、スキャン面に関する設定値などがある。
【００２２】
原稿サイズに関する設定値は、処理対象の原稿サイズを指定する値であり、Ａ３，Ａ４等の通常のカット紙の用紙サイズである。スキャンデータの色のスケールに関する設定値は、ビットマップ画像データにおける１ピクセルに対して設定可能な色数を示す値であり、２４ｂｉｔ（１６６７７７２１６色）のカラースケール，８ｂｉｔ（２５６色）のグレースケール，１ｂｉｔ（２色：白と黒）のモノクロスケールである。さらに、色のスケールに関する設定値として、白と黒の２色のみを用いるが，画素の数や，画素の集まり具合を制御して階調を表す疑似中間調の色スケールも採用されている。疑似中間調の色スケールの方式としては、ディザ法，濃度パターン法など、種々の方式があるが、ここでは、Ｅｒｒｏｒ  Ｄｉｆｆｕｓｉｏｎ法（以下、「ＥＤ法」と記載する）が採用されている。
【００２３】
スキャンデータの解像度に関する設定値は、スキャン処理時の読取精度を指定する値であり、３００ｄｐｉ，５００ｄｐｉ等である。原稿向き自動補正に関する設定値は、スキャンデータに基づく画像の向きを文字認識処理（以下、「ＯＣＲ処理」と記載する）により特定し、特定された画像の向きに応じて、画像の天地が正常となるように、原稿の読み取りにより形成されたスキャンデータに基づく画像の向きを自動で補正する処理（以下、「原稿向き自動補正処理」と記載する）の実行の有無を指定する値であり、ＯＮとＯＦＦとがある。また、スキャン面に関する設定値は、原稿の片面のみをスキャンするか、両面をスキャンするかを設定する値であり、両面スキャンと片面スキャンとがある。
【００２４】
そして、ユーザ操作により、入力Ｉ／Ｆ１８を介して、各種設定値が入力されると、スキャナドライバ３０が、入力された各種設定値を受け付け、受け付けた各種設定値に応じたスキャン指示を、スキャナ５０に送信する。この際、設定されたスキャン処理の設定値に応じて、原稿向き自動補正処理を適切に実行できない場合がある。
【００２５】
具体的に、まず、ユーザ設定により、色のスケールに関する設定値がカラースケールに設定され、原稿向き自動補正に関する設定値がＯＮに設定されている場合について、図２を用いて説明する。ユーザ設定により、色のスケールに関する設定値がカラースケールに設定され、原稿向き自動補正に関する設定値がＯＮに設定されると、スキャナドライバ３０は、カラースケールでのスキャン処理の実行指示をスキャナ５０に送信する。これにより、スキャナ５０は、カラースケールでのスキャン処理を実行し、カラースケールでのスキャンデータＤ１を作成する。そして、スキャナ５０は、作成したスキャンデータＤ１をＰＣ１０に送信する（Ｓ１０）。
【００２６】
なお、図では、スキャナ５０により作成されたスキャンデータＤ１を示す原稿の図柄が上下方向に１８０度引っくり返った状態で記されているが、これは、原稿が上下方向に１８０度引っくり返った状態でスキャンされたことを示している。つまり、上下方向に１８０度引っくり返った状態でスキャンされた原稿のスキャンデータＤ１が、スキャナ５０からＰＣ１０に送信されている。そして、ＰＣ１０において、スキャナドライバ３０が、スキャンデータＤ１を受信すると、そのスキャンデータＤ１をデータ記憶領域３４に記憶する。
【００２７】
次に、スキャナドライバ３０は、スキャンデータＤ１に基づいてＯＣＲ処理を実行する（Ｓ１２）。ＯＣＲ処理は、既存の技術であるため詳細は省略するが、生成したヒストグラムに基づいて画像データを２値化し、２値化した画像データに基づく画像に含まれる文字を認識するための処理である。このため、ＯＣＲ処理の実行により、スキャンデータに基づく画像に含まれる文字の向きを検知することができる。そこで、スキャナドライバ３０は、ＯＣＲ処理の処理結果に基づいて、スキャンデータに基づく画像に含まれる文字の向きに関する情報（以下、「文字向き情報」と記載する）を取得する（Ｓ１４）。
【００２８】
なお、Ｓ１２で実行されるＯＣＲ処理の対象は、カラースケールのスキャンデータであり、カラースケールのスキャンデータの１画素毎の色調は区別し易いため、カラースケールのスキャンデータを対象とするＯＣＲ処理は、好適に実行される。つまり、スキャナドライバ３０は、カラースケールのスキャンデータに基づいて、文字向き情報を適切に取得することができる。また、カラースケールのスキャンデータだけでなく、グレースケール、および、モノクロスケールのスキャンデータにおいても、１画素毎の色調は区別し易いため、スキャナドライバ３０は、ＯＣＲ処理を好適に実行し、文字向き情報を適切に取得することができる。
【００２９】
そして、スキャナドライバ３０は、文字向き情報を取得すると、取得した文字向き情報を利用して、スキャンデータに基づく画像の回転処理を実行する（Ｓ１６）。つまり、例えば、文字向き情報が、スキャンデータに基づく画像に含まれる文字の向きが正常な状態から上下方向に１８０度回転していることを示している場合に、スキャンデータに基づく画像を上下方向に１８０度回転させる処理を行う。これにより、上下方向に反転していない画像のスキャンデータが得られる。そして、スキャナドライバ３０は、上下方向に反転していない画像のスキャンデータを、アプリケーション３２に出力する（Ｓ１８）。これにより、アプリケーション３２において、正しい姿勢の画像に対して、編集処理などを行うことができる。
【００３０】
また、ユーザ設定により、色のスケールに関する設定値がＥＤ法に設定され、原稿向き自動補正に関する設定値がＯＮに設定されている場合の従来技術について、図３を用いて説明する。ユーザ設定により、色のスケールに関する設定値がＥＤ法に設定され、原稿向き自動補正に関する設定値がＯＮに設定されると、スキャナドライバ３０は、ＥＤ法でのスキャン処理の実行指示をスキャナ５０に送信する。これにより、スキャナ５０は、ＥＤ法でのスキャン処理を実行し、ＥＤ法でのスキャンデータＤ１を作成する。そして、スキャナ５０は、作成したスキャンデータＤ１をＰＣ１０に送信する（Ｓ２０）。
【００３１】
ＰＣ１０では、スキャナドライバ３０が、スキャンデータＤ１を受信し、そのスキャンデータＤ１をデータ記憶領域３４に記憶する。そして、スキャナドライバ３０は、スキャンデータＤ１に基づいてＯＣＲ処理を実行する（Ｓ２２）。ただし、Ｓ２２で実行されるＯＣＲ処理の対象は、ＥＤ法のスキャンデータであり、ＥＤ法のスキャンデータに基づく画像では、画素の数や，画素の集まり具合を制御して階調的に表されるため、１画素毎の色調が区別し難く、ＥＤ法のスキャンデータを対象とするＯＣＲ処理は、好適に実行することができない。このため、スキャナドライバ３０は、文字向き情報を取得することができず、スキャンデータに基づく画像の回転処理を行うことができない。その結果、スキャナドライバ３０は、回転処理の施していないスキャンデータ、つまり、上下方向に反転した状態の画像のスキャンデータを、アプリケーション３２に出力せざるを得ない（Ｓ２４）。
【００３２】
このようなことに鑑みて、本実施形態では、ユーザ設定により、色のスケールに関する設定値がＥＤ法に設定され、原稿向き自動補正に関する設定値がＯＮに設定されると、スキャナドライバ３０は、グレースケールでのスキャン処理の実行指示をスキャナ５０に送信する。つまり、ユーザがＥＤ法でのスキャン処理を設定しているにも拘らず、スキャナドライバ３０は、グレースケールでのスキャン処理の実行指示をスキャナ５０に送信する。これにより、スキャナ５０は、グレースケールでのスキャン処理を実行し、図４に示すように、グレースケールでのスキャンデータＤ１を作成する。そして、スキャナ５０は、作成したスキャンデータＤ１をＰＣ１０に送信する（Ｓ３０）。
【００３３】
ＰＣ１０では、スキャナドライバ３０が、スキャンデータＤ１を受信し、そのスキャンデータＤ１をデータ記憶領域３４に記憶する。そして、スキャナドライバ３０は、スキャンデータＤ１に基づいてＯＣＲ処理を実行する（Ｓ３２）。このＳ３２で実行されるＯＣＲ処理の対象は、グレースケールのスキャンデータＤ１であるため、好適にＯＣＲ処理が実行され、スキャナドライバ３０は、ＯＣＲ処理の処理結果に基づいて、文字向き情報を適切に取得する（Ｓ３４）。
【００３４】
なお、本スキャン処理において、ユーザがＥＤ法でのスキャン処理を設定しているにも拘らず、スキャナドライバ３０は、グレースケールでのスキャン処理の実行指示をスキャナ５０に送信しており、グレースケールのスキャンデータＤ１が作成されている。このため、スキャナドライバ３０は、グレースケールのスキャンデータＤ１を、ＥＤ法のスキャンデータＤ１に変換するスケール変換処理を実行する（Ｓ３６）。これにより、ユーザ指定の色のスケール、つまり、ＥＤ法のスキャンデータＤ１が生成される。
【００３５】
そして、スキャナドライバ３０は、Ｓ３４で取得した文字向き情報を利用して、Ｓ３６で作成したＥＤ法のスキャンデータに基づく画像の回転処理を実行する（Ｓ３８）。これにより、上下方向に反転していない画像のスキャンデータが得られる。そして、スキャナドライバ３０は、上下方向に反転していない画像のスキャンデータを、アプリケーション３２に出力する（Ｓ４０）。これにより、アプリケーション３２において、正しい姿勢の画像に対して、編集処理などを行うことができる。なお、回転処理が実行される前に、グレースケールのスキャンデータをＥＤ法のスキャンデータに変換することで、メモリ容量を抑制した状態で、回転処理を実行することができる。
【００３６】
このように、ユーザ設定により、色のスケールに関する設定値がＥＤ法に設定され、原稿向き自動補正に関する設定値がＯＮに設定されている場合に、スキャナドライバ３０が、グレースケールでのスキャン処理の実行指示をスキャナ５０に送信することで、適切なＯＣＲ処理の実行を担保し、原稿向き自動補正処理を好適に行うことが可能となる。また、ＯＣＲ処理が実行された後に、グレースケールのスキャンデータを、ＥＤ法のスキャンデータに変換することで、ユーザの望むスケールのスキャンデータを提供することができる。さらに言えば、スケール変換処理と回転処理との実行順を適切化することで、メモリ容量の抑制を図ることも可能となる。
【００３７】
なお、上記説明では、色のスケールに関する設定値がＥＤ法に設定されているにも拘わらず、適切なＯＣＲ処理の実行を担保するべく、スキャナドライバ３０が、グレースケールでのスキャン指示をスキャナ５０に送信しているが、カラースケールでのスキャン指示をスキャナ５０に送信することでも、同様の効果を奏することが可能である。ただし、スキャナドライバ３０は、カラースケールでのスキャン指示をスキャナ５０に送信するよりも、グレースケールでのスキャン指示をスキャナ５０に送信することで、データ記憶領域３４のメモリ容量の抑制を図ることが可能となる。なお、スキャナドライバ３０が、カラースケールでのスキャン指示をスキャナ５０に送信した場合において、スキャナドライバ３０は、スケール変換処理において、カラースケールのスキャンデータをＥＤ法のスキャンデータに変換する必要がある。
【００３８】
また、ユーザ設定により、色のスケールに関する設定値がＥＤ法に設定され、原稿向き自動補正に関する設定値がＯＮに設定されている場合において、上述したように、スキャナドライバ３０は、グレースケールでのスキャン指示の送信，ＯＣＲ処理の実行等を行うが、スキャン面に関する設定値に応じて、僅かに制御手法が変更される。
【００３９】
具体的には、スキャン面に関する設定値が片面スキャンに設定されている場合において、スキャナドライバ３０は、図４を用いて説明した制御手法に従って処理を実行する。一方、スキャン面に関する設定値が両面スキャンに設定されている場合において、スキャナドライバ３０は、原稿の一方の面に対して、グレースケールでのスキャン処理の実行指示を、原稿の他方の面に対して、設定値に従ったスケール、つまり、ＥＤ法でのスキャン処理の実行指示を、スキャナ５０に送信する。これにより、スキャナ５０は、原稿の一方の面に対して、グレースケールでのスキャン処理を実行し、原稿の他方の面に対して、ＥＤ法でのスキャン処理を実行する。そして、スキャナ５０は、原稿の一方の面のグレースケールのスキャンデータＤ１と、原稿の他方の面のＥＤ法のスキャンデータＤ１とを作成し、ＰＣ１０に送信する。
【００４０】
ＰＣ１０では、スキャナドライバ３０が、原稿の一方の面のスキャンデータＤ１と他方の面のスキャンデータＤ１とを受信し、データ記憶領域３４に記憶する。そして、スキャナドライバ３０は、原稿の一方の面のスキャンデータに対してのみＯＣＲ処理を実行する。つまり、グレースケールのスキャンデータに対してＯＣＲ処理を実行し、ＥＤ法のスキャンデータに対してＯＣＲ処理を実行しない。これにより、スキャナドライバ３０は、原稿の一方の面の画像に含まれる文字の文字向き情報を取得する。
【００４１】
続いて、スキャナドライバ３０は、原稿の一方の面のスキャンデータの色スケールを、設定値に応じた色スケールに変換する。つまり、スキャナドライバ３０は、原稿の一方の面のグレースケールのスキャンデータを、ＥＤ法のスキャンデータに変換するスケール変換処理を実行する。なお、原稿の他方の面のスキャンデータは、ユーザ設定に応じたＥＤ法のスキャンデータであるため、スケール変換処理は実行されない。
【００４２】
そして、スキャナドライバ３０は、原稿の一方の面のスキャンデータに基づいて取得された文字向き情報を利用して、原稿の一方の面のスキャンデータに基づく画像の回転処理を実行する。これにより、原稿の一方の面のスキャンデータとして、上下方向に反転していない画像のスキャンデータが得られる。また、スキャナドライバ３０は、原稿の一方の面のスキャンデータに基づいて取得された文字向き情報を利用して、原稿の他方の面のスキャンデータに基づく画像の回転処理を実行する。これは、原稿の一方の面の画像が、例えば、上下方向に１８０度反転した画像である場合に、原稿の他方の面の画像も、当然、上下方向に１８０度反転した画像となるためである。これにより、原稿の他方の面のスキャンデータとして、上下方向に反転していない画像のスキャンデータも得られる。そして、スキャナドライバ３０は、上下方向に反転していない原稿の一方の面の画像のスキャンデータと、上下方向に反転していない原稿の他方の面の画像のスキャンデータとを、アプリケーション３２に出力する。
【００４３】
このように、スキャン面に関する設定値が両面スキャンに設定されている場合において、原稿の一方の面に対してのみ、色スケールの設定値と異なるグレースケールでのスキャン指示を送信することで、原稿の他方の面に対するＯＣＲ処理及びスケール変換処理を実行することなく、原稿の両面の向きを適切に補正することが可能となる。これにより、処理時間の短縮，処理負担の軽減などを図ることが可能となる。
【００４４】
なお、ユーザ設定により、色のスケールに関する設定値が、ＥＤ法以外のもの、つまり、カラースケール，グレースケール，モノクロスケールの何れかに設定され、原稿向き自動補正に関する設定値がＯＮに設定されている場合には、上述したように、好適にＯＣＲ処理を実行し、ＯＣＲ処理の処理結果を利用して適切に回転処理を実行することができるため、図２を用いて説明したように、スキャナドライバ３０は、ユーザ設定に従った色スケールでのスキャン指示を、スキャナ５０に送信すればよい。そして、スキャナドライバ３０は、ＯＣＲ処理および、回転処理を実行すればよい。つまり、スキャナドライバ３０は、ユーザ設定に従った色スケールでのスキャン指示を、スキャナ５０に送信するため、スケール変換処理を行う必要はない。
【００４５】
また、ユーザ設定により、原稿向き自動補正に関する設定値がＯＦＦに設定されている場合には、ＯＣＲ処理は実行されないため、スキャンデータの色スケールを考慮する必要はない。このため、原稿向き自動補正に関する設定値がＯＦＦに設定されている場合において、色のスケールに関する設定値が、カラースケール，グレースケール，モノクロスケール，ＥＤ法の何れかに設定されていても、スキャナドライバ３０は、設定値に従った色スケールでのスキャン指示をスキャナ５０に送信する。そして、スキャナドライバ３０は、スキャンデータをスキャナ５０から受信すると、従来通りの処理を実行すればよい。
【００４６】
＜スキャナドライバの処理＞
上述したＰＣ１０からスキャナ５０へのスキャン指示の送信，および、スキャン指示の送信に応じて取得されたスキャンデータに対する各種処理の実行は、ＣＰＵ１２においてスキャナドライバ３０が実行されることによって行われる。以下に、図５乃至図７を用いて、スキャナドライバ３０のフローが実行される際の処理を説明する。本処理は、スキャナドライバ３０が起動し、スキャン処理の設定に関するユーザ操作が入力された後に、繰り返し実行される処理である。
【００４７】
まず、スキャナドライバ３０は、原稿向き自動補正に関する設定値がＯＮに設定されているか否かを判断する（Ｓ１００：図５参照）。この際、原稿向き自動補正に関する設定値がＯＦＦに設定されている場合（Ｓ１００：ＮＯ）に、従来処理と同じ処理が実行される（Ｓ１０２）。そして、本フローが終了する。一方、原稿向き自動補正に関する設定値がＯＮに設定されている場合（Ｓ１００：ＹＥＳ）に、スキャナドライバ３０は、色のスケールに関する設定値がＥＤ法に設定されているか否かを判断する（Ｓ１０４）。
【００４８】
この際、色のスケールに関する設定値がＥＤ法に設定されていない場合（Ｓ１０４：ＮＯ）に、スキャナドライバ３０は、色のスケールに関する設定値に従ったスキャン指示をスキャナ５０に送信する（Ｓ１０６）。次に、スキャナドライバ３０は、スキャン指示に応じてスキャン処理が実行されたスキャナ５０からスキャンデータを取得し（Ｓ１０８）、取得したスキャンデータを、データ記憶領域３４に記憶する（Ｓ１１０）。
【００４９】
続いて、スキャナドライバ３０は、データ記憶領域３４に記憶したスキャンデータに基づいてＯＣＲ処理を実行する（Ｓ１１２）。そして、スキャナドライバ３０は、ＯＣＲ処理の処理結果に基づいて、文字向き情報を取得する（Ｓ１１４）。次に、スキャナドライバ３０は、取得した文字向き情報を利用して回転処理を実行する（Ｓ１１６）。そして、スキャナドライバ３０は、回転処理を実行したスキャンデータをアプリケーション３２に出力する（Ｓ１１８）。これにより、本フローが終了する。
【００５０】
また、Ｓ１０４で色のスケールに関する設定値がＥＤ法に設定されている場合（Ｓ１０４：ＹＥＳ）に、スキャナドライバ３０は、スキャン面に関する設定値が両面スキャンに設定されているか否かを判断する（Ｓ１２０）。この際、スキャン面に関する設定値が片面スキャンに設定されている場合（Ｓ１２０：ＮＯ）に、片面スキャン処理実行サブルーチンが実行される（Ｓ１２２）。
【００５１】
片面スキャン処理実行サブルーチンでは、スキャナドライバ３０は、グレースケールでのスキャン指示をスキャナ５０に送信する（Ｓ１５０：図６参照）。次に、スキャナドライバ３０は、スキャン指示に応じてスキャン処理が実行されたスキャナ５０からスキャンデータを取得し（Ｓ１５２）、取得したスキャンデータを、データ記憶領域３４に記憶する（Ｓ１５４）。
【００５２】
続いて、スキャナドライバ３０は、データ記憶領域３４に記憶したスキャンデータに基づいてＯＣＲ処理を実行する（Ｓ１５６）。そして、スキャナドライバ３０は、ＯＣＲ処理の処理結果に基づいて、文字向き情報を取得する（Ｓ１５８）。次に、スキャナドライバ３０は、グレースケールのスキャンデータをＥＤ法のスキャンデータに変換する（Ｓ１６０）。続いて、スキャナドライバ３０は、文字向き情報を利用して回転処理を実行する（Ｓ１６２）。そして、スキャナドライバ３０は、回転処理を実行したスキャンデータをアプリケーション３２に出力する（Ｓ１６４）。これにより、片面スキャン処理実行サブルーチンが終了し、本フローも終了する。
【００５３】
また、Ｓ１２０（図５参照）でスキャン面に関する設定値が両面スキャンに設定されている場合（Ｓ１２０：ＹＥＳ）に、両面スキャン処理実行サブルーチンが実行される（Ｓ１２４）。両面スキャン処理実行サブルーチンでは、スキャナドライバ３０は、原稿の一方の面に対してグレースケールでのスキャン指示を、原稿の他方の面に対してＥＤ法でのスキャン指示をスキャナ５０に送信する（Ｓ１８０：図７参照）。次に、スキャナドライバ３０は、スキャン指示に応じてスキャン処理を実行したスキャナ５０からスキャンデータを取得し（Ｓ１８２）、取得したスキャンデータを、データ記憶領域３４に記憶する（Ｓ１８４）。
【００５４】
続いて、スキャナドライバ３０は、原稿の一方の面のスキャンデータに基づいてＯＣＲ処理を実行する（Ｓ１８６）。そして、スキャナドライバ３０は、ＯＣＲ処理の処理結果に基づいて、文字向き情報を取得する（Ｓ１８８）。次に、スキャナドライバ３０は、原稿の一方の面のグレースケールのスキャンデータをＥＤ法のスキャンデータに変換する（Ｓ１９０）。続いて、スキャナドライバ３０は、文字向き情報を利用して、原稿の一方の面のスキャンデータと他方の面のスキャンデータとに基づいて回転処理を実行する（Ｓ１９２）。そして、スキャナドライバ３０は、回転処理を実行した原稿の一方の面のスキャンデータと他方の面のスキャンデータとをアプリケーション３２に出力する（Ｓ１９４）。これにより、両面スキャン処理実行サブルーチンが終了し、本フローも終了する。
【００５５】
＜第２実施形態＞
第１実施形態のスキャンシステム１では、ＥＤ法のスキャンデータに対してＯＣＲ処理を適切に実行することができないことを考慮して、ユーザがＥＤ法でのスキャン処理を設定しているにも拘らず、グレースケールでのスキャン処理の実行指示がスキャナ５０に送信される。しかしながら、ＥＤ法のスキャンデータだけでなく、解像度の低いスキャンデータに対しても、適切にＯＣＲ処理を実行できない虞がある。これは、解像度の低いスキャンデータでは、単位面積当たりの画素数が少なく、画像が粗くなり、画像に含まれる文字を認識し難いためである。このため、第２実施形態のスキャンシステム１では、解像度の低いスキャンデータに対してＯＣＲ処理を適切に実行することができないことを考慮して、ユーザが解像度の低いスキャン処理を設定しているにも拘らず、解像度の高いスキャン処理の実行指示がスキャナ５０に送信される。
【００５６】
具体的には、ユーザ設定により、解像度に関する設定値が、予め設定された設定解像度Ａ未満に設定され、原稿向き自動補正に関する設定値がＯＮに設定されている場合に、スキャナドライバ３０は、少なくとも設定解像度Ａ以上の所定の解像度Ｂのスキャン処理の実行指示をスキャナ５０に送信する。これにより、スキャナ５０は、解像度Ｂでのスキャン処理を実行し、作成した解像度ＢのスキャンデータＤ１をＰＣ１０に送信する。
【００５７】
ＰＣ１０では、スキャナドライバ３０が、スキャンデータＤ１を受信し、そのスキャンデータＤ１をデータ記憶領域３４に記憶する。そして、スキャナドライバ３０は、スキャンデータＤ１に基づいてＯＣＲ処理を実行する。この際、スキャンデータＤ１の解像度は設定解像度Ａより大きなＢとされているため、好適にＯＣＲ処理が実行され、スキャナドライバ３０は、ＯＣＲ処理の処理結果に基づいて、文字向き情報を適切に取得する。
【００５８】
なお、本スキャン処理において、ユーザが設定解像度Ａ未満のスキャン処理を設定しているにも拘らず、スキャナドライバ３０は、解像度Ｂのスキャン処理の実行指示をスキャナ５０に送信しており、解像度ＢのスキャンデータＤ１が作成されている。このため、スキャナドライバ３０は、解像度ＢのスキャンデータＤ１を、ユーザ操作により指定されている解像度のスキャンデータＤ１に変換する解像度変換処理を実行する。これにより、ユーザ指定の解像度のスキャンデータＤ１が生成される。
【００５９】
そして、スキャナドライバ３０は、ＯＣＲ処理により取得した文字向き情報を利用して、ユーザ指定の解像度のスキャンデータに基づく画像の回転処理を実行する。これにより、上下方向に反転していない画像のスキャンデータが得られる。そして、スキャナドライバ３０は、上下方向に反転していない画像のスキャンデータを、アプリケーション３２に出力する。このように、ユーザ設定により、設定解像度Ａ未満のスキャン処理が設定され、原稿向き自動補正に関する設定値がＯＮに設定されている場合に、スキャナドライバ３０が、解像度Ｂのスキャン処理の実行指示をスキャナ５０に送信することで、適切なＯＣＲ処理の実行を担保し、原稿向き自動補正処理を好適に行うことが可能となる。また、ＯＣＲ処理が実行された後に、解像度Ｂのスキャンデータを、ユーザ指定の解像度のスキャンデータに変換することで、ユーザの望む解像度のスキャンデータを提供することができる。
【００６０】
また、ユーザ設定により、設定解像度Ａ未満のスキャン処理が設定され、原稿向き自動補正に関する設定値がＯＮに設定されている場合において、上述したように、スキャナドライバ３０は、解像度Ｂのスキャン指示の送信，ＯＣＲ処理の実行等を行うが、スキャン面に関する設定値に応じて、僅かに制御手法が変更される。
【００６１】
具体的には、スキャン面に関する設定値が片面スキャンに設定されている場合において、スキャナドライバ３０は、上記手法に従って処理を実行する。一方、スキャン面に関する設定値が両面スキャンに設定されている場合において、スキャナドライバ３０は、原稿の一方の面に対して、解像度Ｂのスキャン処理の実行指示を、原稿の他方の面に対して、設定値に従った解像度のスキャン処理の実行指示を、スキャナ５０に送信する。これにより、スキャナ５０は、原稿の一方の面に対して、解像度Ｂのスキャン処理を実行し、原稿の他方の面に対して、設定解像度Ａ未満のスキャン処理を実行する。そして、スキャナ５０は、原稿の一方の面の解像度ＢのスキャンデータＤ１と、原稿の他方の面の設定解像度Ａ未満のスキャンデータＤ１とを作成し、ＰＣ１０に送信する。
【００６２】
ＰＣ１０では、スキャナドライバ３０が、原稿の一方の面のスキャンデータＤ１と他方の面のスキャンデータＤ１とを受信し、データ記憶領域３４に記憶する。そして、スキャナドライバ３０は、原稿の一方の面のスキャンデータに対してのみＯＣＲ処理を実行する。つまり、解像度Ｂのスキャンデータに対してＯＣＲ処理を実行し、設定解像度Ａ未満のスキャンデータに対してＯＣＲ処理を実行しない。これにより、スキャナドライバ３０は、原稿の一方の面の画像に含まれる文字の文字向き情報を取得する。
【００６３】
続いて、スキャナドライバ３０は、原稿の一方の面のスキャンデータの解像度を、設定値に応じた解像度に変換する。そして、スキャナドライバ３０は、原稿の一方の面のスキャンデータに基づいて取得された文字向き情報を利用して、原稿の一方の面のスキャンデータに基づく画像の回転処理を実行する。これにより、原稿の一方の面のスキャンデータとして、上下方向に反転していない画像のスキャンデータが得られる。また、スキャナドライバ３０は、原稿の一方の面のスキャンデータに基づいて取得された文字向き情報を利用して、原稿の他方の面のスキャンデータに基づく画像の回転処理を実行する。これにより、原稿の他方の面のスキャンデータとして、上下方向に反転していない画像のスキャンデータも得られる。そして、スキャナドライバ３０は、上下方向に反転していない原稿の一方の面の画像のスキャンデータと、上下方向に反転していない原稿の他方の面の画像のスキャンデータとを、アプリケーション３２に出力する。
【００６４】
このように、スキャン面に関する設定値が両面スキャンに設定されている場合において、原稿の一方の面に対してのみ、設定値と異なる解像度のスキャン指示を送信することで、原稿の他方の面に対するＯＣＲ処理及び解像度変換処理を実行することなく、原稿の両面の向きを適切に補正することが可能となる。これにより、処理時間の短縮，処理負担の軽減などを図ることが可能となる。
【００６５】
なお、ユーザ設定により、設定解像度Ａ以上のスキャン処理が設定され、原稿向き自動補正に関する設定値がＯＮに設定されている場合には、上述したように、好適にＯＣＲ処理を実行し、ＯＣＲ処理の処理結果を利用して適切に回転処理を実行することができる。このため、スキャナドライバ３０は、ユーザ設定に従った解像度のスキャン指示を、スキャナ５０に送信すればよい。そして、スキャナドライバ３０は、ＯＣＲ処理および、回転処理を実行すればよい。つまり、スキャナドライバ３０は、ユーザ設定に従った解像度のスキャン指示を、スキャナ５０に送信するため、解像度変換処理を行う必要はない。
【００６６】
また、第２実施形態でのスキャン処理は、ＣＰＵ１２においてスキャナドライバ３０が実行されることによって行われる。以下に、図８乃至図１０を用いて、スキャナドライバ３０のフローが実行される際の処理を説明する。
【００６７】
まず、スキャナドライバ３０は、原稿向き自動補正に関する設定値がＯＮに設定されているか否かを判断する（Ｓ２００：図８参照）。この際、原稿向き自動補正に関する設定値がＯＦＦに設定されている場合（Ｓ２００：ＮＯ）に、従来処理と同じ処理が実行される（Ｓ２０２）。そして、本フローが終了する。一方、原稿向き自動補正に関する設定値がＯＮに設定されている場合（Ｓ２００：ＹＥＳ）に、スキャナドライバ３０は、設定解像度Ａ未満のスキャン処理が設定されているか否かを判断する（Ｓ２０４）。
【００６８】
この際、設定解像度Ａ未満のスキャン処理が設定されていない場合（Ｓ２０４：ＮＯ）に、スキャナドライバ３０は、設定値に従った解像度のスキャン指示をスキャナ５０に送信する（Ｓ２０６）。次に、スキャナドライバ３０は、スキャン指示に応じてスキャン処理を実行したスキャナ５０からスキャンデータを取得し（Ｓ２０８）、取得したスキャンデータを、データ記憶領域３４に記憶する（Ｓ２１０）。
【００６９】
続いて、スキャナドライバ３０は、データ記憶領域３４に記憶したスキャンデータに基づいてＯＣＲ処理を実行する（Ｓ２１２）。そして、スキャナドライバ３０は、ＯＣＲ処理の処理結果に基づいて、文字向き情報を取得する（Ｓ２１４）。次に、スキャナドライバ３０は、取得した文字向き情報を利用して回転処理を実行する（Ｓ２１６）。そして、スキャナドライバ３０は、回転処理を実行したスキャンデータをアプリケーション３２に出力する（Ｓ２１８）。これにより、本フローが終了する。
【００７０】
また、Ｓ２０４で設定解像度Ａ以上のスキャン処理が設定されている場合（Ｓ２０４：ＹＥＳ）に、スキャナドライバ３０は、スキャン面に関する設定値が両面スキャンに設定されているか否かを判断する（Ｓ２２０）。この際、スキャン面に関する設定値が片面スキャンに設定されている場合（Ｓ２２０：ＮＯ）に、片面スキャン処理実行サブルーチンが実行される（Ｓ２２２）。
【００７１】
片面スキャン処理実行サブルーチンでは、スキャナドライバ３０は、解像度Ｂのスキャン指示をスキャナ５０に送信する（Ｓ２５０：図９参照）。次に、スキャナドライバ３０は、スキャン指示に応じてスキャン処理を実行したスキャナ５０からスキャンデータを取得し（Ｓ２５２）、取得したスキャンデータを、データ記憶領域３４に記憶する（Ｓ２５４）。
【００７２】
続いて、スキャナドライバ３０は、データ記憶領域３４に記憶したスキャンデータに基づいてＯＣＲ処理を実行する（Ｓ２５６）。そして、スキャナドライバ３０は、ＯＣＲ処理の処理結果に基づいて、文字向き情報を取得する（Ｓ２５８）。次に、スキャナドライバ３０は、解像度Ｂのスキャンデータを設定値に従った解像度のスキャンデータに変換する（Ｓ２６０）。続いて、スキャナドライバ３０は、文字向き情報を利用して回転処理を実行する（Ｓ２６２）。そして、スキャナドライバ３０は、回転処理を実行したスキャンデータをアプリケーション３２に出力する（Ｓ２６４）。これにより、片面スキャン処理実行サブルーチンが終了し、本フローも終了する。
【００７３】
また、Ｓ２２０（図８参照）でスキャン面に関する設定値が両面スキャンに設定されている場合（Ｓ２２０：ＹＥＳ）に、両面スキャン処理実行サブルーチンが実行される（Ｓ２２４）。両面スキャン処理実行サブルーチンでは、スキャナドライバ３０は、原稿の一方の面に対して解像度Ｂのスキャン指示を、原稿の他方の面に対して設定値に従った解像度のスャン指示をスキャナ５０に送信する（Ｓ２８０：図１０参照）。次に、スキャナドライバ３０は、スキャン指示に応じてスキャン処理を実行したスキャナ５０からスキャンデータを取得し（Ｓ２８２）、取得したスキャンデータを、データ記憶領域３４に記憶する（Ｓ２８４）。
【００７４】
続いて、スキャナドライバ３０は、原稿の一方の面のスキャンデータに基づいてＯＣＲ処理を実行する（Ｓ２８６）。そして、スキャナドライバ３０は、ＯＣＲ処理の処理結果に基づいて、文字向き情報を取得する（Ｓ２８８）。次に、スキャナドライバ３０は、原稿の一方の面の解像度Ｂのスキャンデータを設定値に従った解像度のスキャンデータに変換する（Ｓ２９０）。続いて、スキャナドライバ３０は、文字向き情報を利用して、原稿の一方の面のスキャンデータと他方の面のスキャンデータとに基づいて回転処理を実行する（Ｓ２９２）。そして、スキャナドライバ３０は、回転処理を実行した原稿の一方の面のスキャンデータと他方の面のスキャンデータとをアプリケーション３２に出力する（Ｓ２９４）。これにより、両面スキャン処理実行サブルーチンが終了し、本フローも終了する。
【００７５】
なお、Ｓ１０６を実行するＣＰＵ１２は、第２指示出力手段の一例である。Ｓ１１２を実行するＣＰＵ１２は、第３処理実行手段の一例である。Ｓ１１６を実行するＣＰＵ１２は、第４処理実行手段の一例である。Ｓ１５４、Ｓ１８４を実行するＣＰＵ１２は、記憶制御手段の一例である。Ｓ１１８、Ｓ１６４、Ｓ１９４を実行するＣＰＵ１２は、データ出力手段の一例である。Ｓ１５６、Ｓ１８６を実行するＣＰＵ１２は、第１処理実行手段の一例である。Ｓ１５８を実行するＣＰＵ１２は、第１取得手段の一例である。Ｓ１８８を実行するＣＰＵ１２は、第２取得手段の一例である。Ｓ１６０、Ｓ１９０を実行するＣＰＵ１２は、変換手段の一例である。Ｓ１６２、Ｓ１９２を実行するＣＰＵ１２は、第２処理実行手段の一例である。Ｓ２０６を実行するＣＰＵ１２は、第２指示出力手段の一例である。Ｓ２１２を実行するＣＰＵ１２は、第３処理実行手段の一例である。Ｓ２１６を実行するＣＰＵ１２は、第４処理実行手段の一例である。Ｓ２５４、Ｓ２８４を実行するＣＰＵ１２は、記憶制御手段の一例である。Ｓ２１８、Ｓ２６４、Ｓ２９４を実行するＣＰＵ１２は、データ出力手段の一例である。Ｓ２５６、Ｓ２８６を実行するＣＰＵ１２は、第１処理実行手段の一例である。Ｓ２５８を実行するＣＰＵ１２は、第１取得手段の一例である。Ｓ２８８を実行するＣＰＵ１２は、第２取得手段の一例である。Ｓ２６０、Ｓ２９０を実行するＣＰＵ１２は、変換手段の一例である。Ｓ２６２、Ｓ２９２を実行するＣＰＵ１２は、第２処理実行手段の一例である。
【００７６】
また、本発明は、上記実施形態に限定されるものではなく、当業者の知識に基づいて種々の変更、改良を施した種々の態様で実施することが可能である。具体的には、例えば、上記実施形態では、ＰＣ１０においてスキャン処理の設定値を受け付け、ＰＣ１０がスキャナ５０にスキャン指示を出力しているが、スキャナ５０においてスキャン処理の設定値を受け付け、スキャナ５０のスキャン指示に従ってスキャナ５０がスキャン処理を実行してもよい。
【００７７】
また、上記実施形態では、ＣＰＵ１２によって図５乃至図１０に示す処理が実行される例を説明したが、これら処理は、ＣＰＵ１２に限らず、ＡＳＩＣや他の論理集積回路により実行されてもよいし、これら処理が、ＣＰＵ等やＡＳＩＣ、他の論理集積回路が協働することにより実行されてもよい。
【符号の説明】
【００７８】
１０：ＰＣ、１２：ＣＰＵ、１８：入力Ｉ／Ｆ、３０：スキャナドライバ、５０：スキャナ
【図１】
2019139619.tif 000003
【図２】
2019139619.tif 000004
【図３】
2019139619.tif 000005
【図４】
2019139619.tif 000006
【図５】
2019139619.tif 000007
【図６】
2019139619.tif 000008
【図７】
2019139619.tif 000009
【図８】
2019139619.tif 000010
【図９】
2019139619.tif 000011
【図１０】
2019139619.tif 000012