(57)【要約】      （修正有）【課題】あらゆる種類や状態の原稿に柔軟に対応し、シワや汚れがあったり、文字等のコンテンツが薄い等の原稿であっても、適切な二値画像を得る画像処理装置、その制御方法及びプログラムを提供する。【解決手段】画像処理部は、原稿から読み取られた入力画像データの各画素におけるエッジレベルを検出してエッジレベルデータを生成しS602、S604、入力画像データの明度ごとに、該明度に対応する各画素のエッジレベルを平均したエッジレベル平均を算出しS605、明度ごとのエッジレベル平均が極大となる明度であって、所定のコンテンツ率を満たす明度を取得しS606〜S608、取得した明度を画像全体のしきい値Ｔ１、該明度に対応するエッジレベル平均をエッジレベルのしきい値Ｔ２に決定しS609、画像全体のしきい値、エッジレベルのしきい値を用いて入力画像データから二値画像データを生成するS1010〜S1012。【選択図】図１０
2020052731.tif 000002
【特許請求の範囲】
【請求項１】
入力された多値の入力画像データから二値画像データを生成する画像処理装置であって、
前記入力画像データに対し所定のエッジ検出処理を適用した際の各画素における出力値であるエッジレベルを検出してエッジレベルデータを生成するエッジレベル検出手段と、
前記入力画像データの明度ごとに、該明度に対応する各画素のエッジレベルを平均したエッジレベル平均を算出する算出手段と、
前記明度ごとのエッジレベル平均が極大となる明度であって、所定のコンテンツ率を満たす明度を取得する取得手段と、
前記取得手段が取得した明度を第１しきい値、該明度に対応するエッジレベル平均を第２しきい値に決定する決定手段と、
前記第１しきい値及び前記第２しきい値を用いて前記入力画像データから二値画像データを生成する二値化手段と、を有し、
前記二値化手段は、前記入力画像データの画素ごとに、対象画素に対応するエッジレベルデータと前記第２しきい値を比較してエッジ近傍の画素か否かを判定し、エッジ近傍でないと判定された場合は該対象画素の画像データを前記第１しきい値を用いて二値化し、エッジ近傍であると判定された場合は該対象画素の画像データを該対象画素の周囲の所定範囲内に含まれる画素の明度に基づく第３しきい値を用いて二値化する、ことを特徴とする画像処理装置。
【請求項２】
前記第３しきい値は、前記対象画素の周囲の所定範囲内に含まれる画素の明度の最大値と最小値の平均値であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記エッジレベル検出手段は、前記入力画像データの各画素におけるエッジレベルを検出し、さらに前記各画素について、その画素のエッジレベルにその画素の周囲の所定範囲内に含まれる画素のエッジレベルを加算した値を該画素のエッジレベルとして前記エッジレベルデータを生成することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記入力画像データの種別を選択することにより前記コンテンツ率を設定する設定手段を有することを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記取得手段は、前記明度ごとの前記エッジレベル平均が極大となる明度のうち、前記明度におけるコンテンツ率が前記所定のコンテンツ率を超えない最大の明度を、前記コンテンツ率を満たす明度として取得する、ことを特徴とする請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
前記取得手段は、前記明度ごとの前記エッジレベル平均が極大となる明度のうち、小さいものから順に、前記所定のコンテンツ率に対応する明度と比較し、前記コンテンツ率を満たす明度として取得する、ことを特徴とする請求項１〜５のいずれか１項に記載の画像処理装置。
【請求項７】
前記取得手段は、
前記入力画像データにおいて所定の明度よりも高い明度の画素の数を示す第１画素数と前記所定の明度よりも低い明度の画素の数を示す第２画素数を比較し、
前記第１画素数が前記第２画素数よりも多い場合、前記明度ごとの前記エッジレベル平均が極大となる明度のうち、小さいものから順に、前記コンテンツ率に対応する明度と比較し、
前記第１画素数が前記第２画素数よりも少ない場合、前記明度ごとの前記エッジレベル平均が極大となる明度のうち、大きいものから順に、前記コンテンツ率に対応する明度と比較し、
前記コンテンツ率を満たす明度として取得する、ことを特徴とする請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項８】
前記入力画像データを、該入力画像データの解像度である第１解像度から該第１解像度よりも低解像度の第２解像度に変換する変換手段を設け、
前記エッジレベル検出手段、前記算出手段、前記取得手段及び前記決定手段は、前記変換手段により変換された前記第２解像度の画像データを前記入力画像データとして処理を行い、
前記二値化手段は、前記第２解像度の画像データの画素ごとに、対象画素に対応するエッジレベルデータと前記第２しきい値を比較してエッジ近傍の画素か否かを判定し、エッジ近傍でないと判定された画素については前記第１しきい値を該対象画素のしきい値に決定し、一方、エッジ近傍と判定された画素については前記第２解像度の画像データにおける該対象画素の周囲の所定範囲内に含まれる画素の明度に基づく第３しきい値を該画素のしきい値に決定することにより前記第２解像度のしきい値データを生成し、該第２解像度のしきい値データを前記第１解像度のしきい値データに変換し、該第１解像度のしきい値データを用いて、前記第１解像度の前記入力画像データを二値化する、ことを特徴とする請求項１〜７のいずれか１項に記載の画像処理装置。
【請求項９】
前記入力画像データを、該入力画像データの解像度である第１解像度から該第１解像度よりも低解像度の第２解像度に変換する第１変換手段を設け、
前記エッジレベル検出手段、前記算出手段、前記取得手段及び前記決定手段は、前記変換手段により変換された前記第２解像度の画像データを前記入力画像データとして処理を行い、
前記エッジレベルデータを、前記第２解像度から前記第１解像度に変換する第２変換手段を設け、
前記二値化手段は、前記第１解像度の前記入力画像データの画素ごとに、対象画素に対応する前記第１解像度のエッジレベルデータと前記第２しきい値を比較してエッジ近傍の画素か否かを判定し、エッジ近傍でないと判定された画素については該対象画素の画像データを前記第１しきい値を用いて二値化し、一方、エッジ近傍と判定された画素については該対象画素の画像データを該対象画素の周囲の所定範囲内に含まれる画素の明度に基づく第３しきい値を用いて二値化する、ことを特徴とする請求項１〜７のいずれか１項に記載の画像処理装置。
【請求項１０】
原稿の第１面から生成された第１面の入力画像データと、前記原稿の第２面から生成された第２面の入力画像データを入力する入力手段と、
前記エッジレベル検出手段、前記算出手段、前記取得手段及び前記決定手段を制御し、前記第１面の入力画像データに基づいて前記第１しきい値及び第２しきい値、前記第２面の入力画像データから前記第１しきい値及び第２しきい値を決定するよう制御する制御手段と、を有し、
前記制御手段は、前記第１面の第２しきい値と、前記第２面の第２しきい値との差が所定値よりも大きい場合、前記第２しきい値が大きい方の面に対応する前記第１しきい値及び前記第２しきい値を、もう一方の面の前記第１しきい値及び前記第２しきい値とすることを特徴とする請求項１〜９のいずれか１項に記載の画像処理装置。
【請求項１１】
原稿を読み取ることにより画像データを生成する画像読取装置から、第１方向及び前記第１方向と対称な方向から原稿に光を照射して読み取る両側照射方法で生成された第１入力画像データ、前記第１方向から原稿に光を照射して読み取る片側照射方法で生成された第２入力画像データを入力する入力手段と、
前記エッジレベル検出手段、前記算出手段、前記取得手段及び前記決定手段を制御し、前記第１入力画像データに基づいて前記第１しきい値及び第２しきい値、前記第２入力画像データから前記第１しきい値及び第２しきい値を決定するよう制御する制御手段と、を有し、
前記制御手段は、前記第２入力画像データの第２しきい値が、前記第１入力画像データの第２しきい値よりも大きい場合、前記画像読取装置に対し、原稿の搬送速度を低下させるよう制御することを特徴とする請求項１〜９のいずれか１項に記載の画像処理装置。
【請求項１２】
前記第１入力画像データは原稿の第１面に基づき、前記第２入力画像データは原稿の第２面に基づくことを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記第１入力画像データ、前記第２入力画像データは、前記両側照射方法、前記片側照射方法を、１又は複数ラインごとに交互に行うことにより生成されることを特徴とする請求項１１に記載の画像処理装置。
【請求項１４】
前記第１入力画像データ、前記第２入力画像データは、前記画像読取装置に設けられた前記両側照射方法で読取りを行う第１読取部、前記片側照射方法で読み取りを行う第２読取部によりそれぞれ生成されることを特徴とする請求項１１に記載の画像処理装置。
【請求項１５】
請求項１〜１４のいずれか１項に記載の画像処理装置を有することを特徴とする画像読取装置。
【請求項１６】
入力された多値の入力画像データから二値画像データを生成する画像処理装置の制御方法であって、
前記入力画像データに対し所定のエッジ検出処理を適用した際の各画素における出力値であるエッジレベルを検出してエッジレベルデータを生成するエッジレベル検出ステップと、
前記入力画像データの明度ごとに、該明度に対応する各画素のエッジレベルを平均したエッジレベル平均を算出する算出ステップと、
前記明度ごとのエッジレベル平均が極大となる明度であって、所定のコンテンツ率を満たす明度を取得する取得ステップと、
前記取得ステップで取得した明度を第１しきい値、該明度に対応するエッジレベル平均を第２しきい値に決定する決定ステップと、
前記第１しきい値及び前記第２しきい値を用いて前記入力画像データから二値画像データを生成する二値化ステップと、を有し、
前記二値化ステップでは、前記入力画像データの画素ごとに、対象画素に対応するエッジレベルデータと前記第２しきい値を比較してエッジ近傍の画素か否かを判定し、エッジ近傍でないと判定された場合は該画素の画像データを前記第１しきい値を用いて二値化し、エッジ近傍であると判定された場合は該画素の画像データを該対象画素の周囲の所定範囲内に含まれる画素の明度に基づく第３しきい値を用いて二値化する、ことを特徴とする画像処理装置の制御方法。
【請求項１７】
コンピュータを、請求項１〜１４のいずれか１項に記載の手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿画像に基づき二値画像データを生成可能な画像処理装置、画像処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
近年、印刷物、伝票、小切手などの原稿をスキャナにより大量に読み取り電子化するケースが増えている。この際、原稿画像の二値画像データが生成されることが多い。
しかし、シワや汚れのある原稿では、シワや汚れも二値画像化されてしまう場合があった。従来のシワや汚れを除去する技術では、例えばカーボン紙等により複写された原稿などでは文字等が薄く、シワや汚れとともに文字等の画像も除去されてしまい、適切な二値画像を得ることが困難であった。
【０００３】
特許文献１では、グレースケールの入力画像から強度勾配値を算出し、画素ごとに、その画素を中心とするマトリクス内における強度勾配値の総計（ＧＳ）を算出する。さらに、ＧＳ、中心画素の強度値（Ｌｃ）、ユーザにより与えられた２つのパラメータ値（固定されたしきい値ＩＴおよびＧＴ）を用いて、二値画像を生成する。具体的には、ＧＳ≦ＧＴの場合、Ｌｃ＞ＩＴの場合には該画素をホワイトとし、Ｌｃ≦ＩＴの場合には該画素をブラックとする。また、ＧＳ＞ＧＴの場合、マトリクス内の最大値と最小値の平均値Ｌａｖｇ＜Ｌｃの場合には該画素をホワイトし、Ｌａｖｇ≧Ｌｃの場合には該画素をブラックとする。これにより、特許文献１では、ノイズに対する耐性が高く、境界部分における擬似輪郭を低減できるとされている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−２１４１６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１のパラメータ値（ＧＴ、ＩＴ）は、その段落〔００２４〕にも記載されているように、ユーザにより与えられた固定されたしきい値であり、原稿の状態にあわせてユーザが適切に設定する必要があった。このため、特許文献１では、ユーザが設定するパラメータ値によっては、適切な二値画像を得ることができなかった。このように、特許文献１の技術では、自動であらゆる状態の原稿に柔軟に対応できるものではなかった。
【０００６】
例えば、シワのある原稿とシワのない原稿、コンテンツの濃度が濃い原稿とコンテンツの濃度が薄い原稿等のあらゆる状態の原稿が混在する場合、特許文献１の技術では、期待する結果を得ることができなかった。よって、特許文献１の技術では、印刷物、伝票、小切手などの各種の原稿をスキャナにより大量に読み取って電子化するような場合には、含まれる原稿の種類、状態によっては、期待する結果を得ることができなかった。
【０００７】
本発明は、上記の課題を解決するためになされたものである。本発明は、あらゆる種類や状態の原稿に柔軟に対応し、シワや汚れがあったり、文字等のコンテンツが薄い等の原稿であっても、適切な二値画像を得ることができる仕組みを提供することである。
【課題を解決するための手段】
【０００８】
本発明は、入力された多値の入力画像データから二値画像データを生成する画像処理装置であって、前記入力画像データに対し所定のエッジ検出処理を適用した際の各画素における出力値であるエッジレベルを検出してエッジレベルデータを生成するエッジレベル検出手段と、前記入力画像データの明度ごとに、該明度に対応する各画素のエッジレベルを平均したエッジレベル平均を算出する算出手段と、前記明度ごとのエッジレベル平均が極大となる明度であって、所定のコンテンツ率を満たす明度を取得する取得手段と、前記取得手段が取得した明度を第１しきい値、該明度に対応するエッジレベル平均を第２しきい値に決定する決定手段と、前記第１しきい値及び前記第２しきい値を用いて前記入力画像データから二値画像データを生成する二値化手段と、を有し、前記二値化手段は、前記入力画像データの画素ごとに、対象画素に対応するエッジレベルデータと前記第２しきい値を比較してエッジ近傍の画素か否かを判定し、エッジ近傍でないと判定された場合は該対象画素の画像データを前記第１しきい値を用いて二値化し、エッジ近傍であると判定された場合は該対象画素の画像データを該対象画素の周囲の所定範囲内に含まれる画素の明度に基づく第３しきい値を用いて二値化する、ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、あらゆる種類や状態の原稿に柔軟に対応し、シワや汚れがあったり、文字等のコンテンツが薄い等の原稿であっても、適切な二値画像を得ることができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態を示す画像処理装置を適用可能な画像読取システムの一例を示す図。
【図２】スキャナの一実施形態を示すシートフィードスキャナの構成例を示す図。
【図３】スキャナの制御構成の一例を示すブロック図。
【図４】ＰＣの構成の一例を示すブロック図。
【図５】ＰＣで動作するアプリケーションとスキャナドライバの構成の一例を示す図。
【図６】第１実施形態の画像処理の一例を示すフローチャート。
【図７】第１実施形態の画像処理の一例を示すフローチャート。
【図８】本実施形態の周囲画素エッジレベル加算処理を説明する図。
【図９】明度ごとのエッジレベルの平均値を示すグラフの一例を示す図。
【図１０】第２実施形態の画像処理の一例を示すフローチャート。
【図１１】第２実施形態の画像処理の一例を示すフローチャート。
【図１２】第２実施形態の画像処理の一例を示すフローチャート。
【図１３】スキャナに設けられる画像処理部の構成の一例を示すブロック図。
【図１４】第４実施形態の画像処理の一例を示すフローチャート。
【図１５】第５実施形態における極大値明度取得処理の一例を示すフローチャート。
【図１６】スキャナに設けられる画像読取センサの構成を説明する図。
【図１７】第６実施形態の画像処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、発明を実施するための形態について図面を用いて説明する。
以下、画像読取装置と、この画像読取装置に接続可能な情報処理装置とを備えた画像読取システムについて説明する。
【００１２】
図１は、本発明の一実施形態を示す画像処理装置を適用可能な画像読取システムの一例を示す図である。
図１において、スキャナ100は、原稿から画像データを読取る画像読取装置である。スキャナ100は、パーソナルコンピュータ（ＰＣ）200と通信可能に接続されている。スキャナ100とＰＣ200とは、例えばＵＳＢインターフェース等を介して接続されていてもよいし、ネットワークを介して接続される構成でもよい。なお、ネットワークは有線、無線のいずれでもよい。パーソナルコンピュータ（ＰＣ）200は、スキャナ100を制御する情報処理装置である。
【００１３】
以下、図２を参照して、スキャナ100の構成及び動作について説明する。
図２は、スキャナ100の一実施形態を示すシートフィードスキャナの構成例を示す図である。本実施形態では、積載された原稿（以下「シート」という）を順次スキャンしていくシートフィードスキャナを用いて説明を行う。
【００１４】
図２に示すように、スキャナ100は、自動原稿給送装置（以下「ＡＤＦ」という）101を備える。シート積載台1にはシートが複数枚積載されており、シート積載台1は昇降自在に構成されている。シート積載台駆動モータ(不図示)は、シート積載台1を昇降させる。シート検知センサ3は、シート積載台1に積載されたシートがシート取込位置にあることを検知する。シート積載検知センサ12は、シート積載台1のシート積載面1aにシートが積載されていることを検知する。また、原稿跳ね上げ検知センサ35は、シート積載面1aに直交する方向に並ぶ複数のセンサを備え、シート積載台1に積載されているシートの跳ね上がりを検知する。例えば、原稿跳ね上げ検知センサ35は、ステイプル留め等された原稿がシート積載台1に積載されて給紙された場合などに生じる原稿の跳ね上がりを検知することができる。これにより、ステイプル留め等された原稿の給紙を中止するなどの制御が可能となる。
【００１５】
シートピックアップ部の一例としてのピックアップローラ4は、シート積載台1上のシートをシート積載台1から送り出す。ピックアップローラ駆動モータ（不図示）は、ピックアップローラ4を、シートを取り込む方向に回転させる。ピックアップローラ4は、シート取込位置、及び、シート取込位置よりも上方の退避位置に移動可能である。ピックアップローラ4は、シートを取り込む際にはシート取込位置に移動され、取り込みが終わったら退避位置に移動される。ピックアップローラ4は、後述する分離ローラ対42による分離給送が確実に行われるための補助的な役割を担っている。シート積載台1上のシートをピックアップローラ4によって分離ローラ対42のニップ部へ送り込めば、分離ローラ対42による分離給送は確実に行える。
【００１６】
分離ローラ対42において、給送ローラ6は、給送モータ（不図示）によってシートを搬送方向下流側に給送する方向（給送方向）に回転するよう駆動されている。分離ローラ7は、シートを搬送方向上流側に押し戻す方向に回転する回転力を、不図示のトルクリミッタ（スリップクラッチ）を介して、分離モータ（不図示）から常時受けている。
【００１７】
給送ローラ6と分離ローラ7との間にシートが１枚存在するときは、上述のトルクリミッタが伝達する分離ローラ7がシートを上流側に押し戻す方向の回転力の上限値より、給送ローラ6によって下流側に送られるシートと分離ローラ7との間の摩擦力によってシートが下流側に給送される方向への回転力が上回る。このため、分離ローラ7は、給送ローラ6に追従して回転する。
【００１８】
一方、給送ローラ6と分離ローラ7との間にシートが複数枚存在するときは、分離ローラ7はシートを上流側に押し戻す方向の回転をローラ軸から受け、最も上位のシート以外が下流側に搬送されないようにしている。
【００１９】
このように、給送ローラ6がシートを下流側に給送する作用と、分離ローラ7のシートを下流側に搬送されないようにする作用とによって、シートが重なって給送ローラ6と分離ローラ7との間に形成されるニップ部（給送ローラ6と分離ローラ7との接触部分）に送り込まれた場合でも、最も上のシートのみ下流側に給送され、それ以外のシートは下流側に搬送されないようになる。これにより、重なったシートが分離給送される。
【００２０】
給送ローラ6と分離ローラ7とは、一対の分離ローラ対42（シート分離部）を構成する。なお、本実施形態では、分離ローラ対42を使用しているが、分離ローラ対42の代わりに分離ローラと給送ローラのどちらか一方をベルトにした、分離ベルトローラ対を使用してもよい。また、分離ローラを分離パッドに置き換え、シートに当接することで下流側へ複数枚のシートが搬送されることを防ぐようにしてもよい。また、分離ローラ7を回転させずに分離パッドのようにシートに当接させるように使用してもよい。
【００２１】
このように構成されたピックアップローラ4、給送ローラ6、分離ローラ7などからなるシートピックアップ部によって、シート積載台1に積載されたシートが1枚ずつに分離されて、スキャナ100内部に取り込まれる。
【００２２】
また、分離されたシートが通過する位置（すなわち分離ローラ対42の下流側）に重送検知センサ30を備えることで、シート分離部によってシートが一枚ずつに分離できているかを検知することができる。
【００２３】
搬送モータ（不図示）は、分離後のシートを、画像読取センサ14、15によってシートの画像の読み取りが行われる画像読取位置まで搬送し、さらに排出位置まで搬送するため、その他のローラ（シート搬送部）を駆動する。また、搬送モータは、シートの読み取りに最適な速度や、シートの解像度等の設定に応じてシートの搬送速度を変更できるよう各ローラを駆動する。
【００２４】
ニップ隙間調整モータ（不図示）は、給送ローラ6と分離ローラ7との隙間、或いは分離ローラ7に対してシートを介して給送ローラ6が圧接する圧接力（ニップ圧）を調整する。これにより、シートの厚みに適合した隙間、或いは圧接力が調整され、シートを分離することができる。
【００２５】
レジストクラッチ（不図示）は、搬送モータの回転駆動力をレジストローラ18（シート搬送部）に伝達、又は当該伝達を遮断する。レジストローラ17、18で構成される第１レジストローラ対の回転を停止することにより、給送されるシートの先端をレジストローラ対のニップ部に突き当てて、シートの斜行を補正する。
【００２６】
レジストローラ20、21で構成される第２レジストローラ対、搬送ローラ22、23で構成される搬送ローラ対、搬送ローラ24、25で構成される搬送ローラ対、排紙ローラ26、27で構成される排紙ローラ対は、シートを搬送し、最終的に排出積載部44に対して搬送する。排紙センサ16は、搬送されたシートの通過を検知する。上ガイド板40と下ガイド板41との2つのガイド板は、分離ローラ対、レジストローラ対、各搬送ローラ対及び排紙ローラ対により搬送されるシートを案内する。
【００２７】
レジスト前センサ32は、第１レジストローラ対17、18の上流側に配設され、給送されるシートを検知する。レジスト後センサ34は、第２レジストローラ対20、21の下流側に配設され、搬送されるシートを検知する。さらに、レジスト中センサ33は、第１レジストローラ対17、18の下流側で且つ第２レジストローラ対20、21の上流側に配設され、搬送されるシートを検知する。
【００２８】
レジスト後センサ34によってシートが検知されると、制御部（後述するＣＰＵ306）によって画像読取センサ14、15に対し画像の読み取り指示が出され、搬送されるシートの画像が読み取られる。なお、画像読取センサ14、15にはそれぞれプラテンローラ14a、15aが設けられ、シートを画像読取センサ14、15に密着させながら読み取りを行うことができる。画像読取センサ14、15によって読み取られたシートの画像は、不図示のインターフェース部を介して情報処理装置などの外部装置に対して送信される。
【００２９】
図３は、スキャナ100の制御構成の一例を示すブロック図である。
Ａ／Ｄ変換部（ＡＤＣ）301a、301bは、ラインイメージセンサ（図２の画像読取センサ14、15）の出力信号に対し、増幅や黒レベルクランプなどのアナログ処理を施した後、デジタルデータ（画像データ）に変換する。画像処理部302は、ラインイメージセンサ14、15およびＡ／Ｄ変換部301a、301bなどの制御と、Ａ／Ｄ変換部301a、301bから出力された画像データへの各種の画像処理の実行を行う。画像処理部302は、内部に画像データを記憶する画像処理バッファを有する。
【００３０】
Ｉ／Ｆ304は、外部ホスト装置（ＰＣ200等）と通信するためのインターフェースである。Ｉ／Ｆ304は、信号ケーブル305を介してＰＣ等の外部ホスト装置と接続される。例えばＩ／Ｆ304は、ＵＳＢインターフェース等である。なお、Ｉ／Ｆ304は、ＵＳＢインターフェースや有線ＬＡＮインターフェースなどの有線インターフェースであってもよいし、無線ＬＡＮ、ワイヤレスＵＳＢ、ＢＬＵＥＴＯＯＴＨ（登録商標）、ＮＦＣなどの無線インターフェースであってもよい。
【００３１】
ＣＰＵ306は、スキャナ100の制御を司る制御部である。画像処理部302とＣＰＵ306とは、バス307を介して接続されている。ＣＰＵ306は、画像処理部302を介してＲＡＭ303やＲＯＭ310にアクセスする。
ＲＯＭ310は、プログラムや各種データを記憶する。
ＲＡＭ303は、ＣＰＵ306のワークメモリとして機能する。
【００３２】
駆動部309は、ピックアップローラ4、給送ローラ6、分離ローラ7等の各種負荷を駆動するためのモータ等である。モータドライバ308は、ＣＰＵ306からの指示に基づいて駆動部309を制御する制御回路である。
【００３３】
図４は、スキャナ100と接続される外部ホスト装置の一例であるパーソナルコンピュータ（ＰＣ）200の構成の一例を示すブロック図である。
ＣＰＵ406は、コンピュータプログラムに基づいてＰＣ200の各ユニットを統括的に制御する。ＣＰＵ406は、後述する図５に示すアプリケーション501やスキャナドライバ502に従って、スキャナ100を制御する。
【００３４】
ＲＯＭ401は、ファームウエアなどの制御プログラムを記憶する不揮発性の記憶ユニットである。ＲＡＭ402は、ワークエリアとして機能する揮発性の記憶ユニットである。ハードディスクドライブ（ＨＤＤ）403は、大容量の記憶ユニットである。表示装置405は、ユーザに対して各種情報を表示するための表示ユニットである。操作部407は、ポインティングデバイスやキーボードなどの入力ユニットである。通信ＩＦ404は、ＵＳＢなどの通信ユニットである。ＣＰＵ406は、通信ＩＦ404を介してスキャナ100と通信する。例えば通信ＩＦ404は、ＵＳＢインターフェース等である。なお、通信ＩＦ404は、ＵＳＢインターフェースや有線ＬＡＮインターフェースなどの有線インターフェースであってもよいし、無線ＬＡＮ、ワイヤレスＵＳＢ、ＢＬＵＥＴＯＯＴＨ（登録商標）、ＮＦＣなどの無線インターフェースであってもよい。
【００３５】
図５は、ＰＣ200で動作するアプリケーションとスキャナドライバの構成の一例を示す図である。
【００３６】
アプリケーション501およびスキャナドライバ502は、ＰＣ200にインストールされているプログラムモジュールである。すなわち、アプリケーション501およびスキャナドライバ502は、ＰＣ200のＣＰＵ406がＨＤＤ403に格納されたプログラムを必要に応じてＲＡＭ402にロードして実行することにより実現される。
【００３７】
アプリケーション501は、スキャナドライバ502と情報の入出力が可能なプログラムであり、具体的には、画像編集プログラムや、アルバムプログラム、文章編集プログラムなどが挙げられる。なおアプリケーション501は、これらに限定するものではなく、スキャナドライバ502から画像のデータを受け取るアプリケーションであればどのようなものでもよい。
【００３８】
アプリケーション501は、スキャナドライバ502を介してスキャナ100を制御したり、スキャナドライバ502から受け取った画像データに画像処理を実行したりする。よって、アプリケーション501およびＣＰＵ406は、スキャナドライバ502から画像のデータを受け取って画像処理を実行する画像処理手段として機能する。
【００３９】
アプリケーション501とスキャナドライバ502との間、および、スキャナドライバ502とスキャナ100との間は、それぞれ決められたプロトコルで通信を行う。例えば、アプリケーション501とスキャナドライバ502はＴＷＡＩＮ規格で決められたプロトコルで通信を行うものとする。このＴＷＡＩＮ規格で決められたプロトコルは、スキャナドライバ502と通信するためのドライバインターフェースであり、アプリケーションプログラムと通信するためのアプリケーションインターフェースの一例でもある。
【００４０】
スキャナドライバ502とスキャナ100との間は、ＵＳＢ(Universal Serial Bus)規格で決められたプロトコルで通信を行っているものとして説明を行う。このように、ＵＳＢ規格で決められたプロトコルは、画像読取装置と通信するためのインターフェースである。なお、これらの通信規格、プロトコルに限定するものではなく、他のプロトコルが採用されてもよい。なお、これらのプロトコルを介して、制御コマンドや画像データが、スキャナ、ドライバ間で送受信されることになる。
なお、スキャナドライバ502は、スキャナ100から入力される原稿画像（多値の入力画像データ）に対して後述する図６、図７等に示す画像処理を行って二値画像データを生成してアプリケーション501に出力する機能を有する。
【００４１】
図６、図７は、第１実施形態の画像処理の一例を示すフローチャートである。これらのフローチャートは、スキャナドライバ502内で実行される。すなわち、これらのフローチャートの処理は、ＰＣ200のＣＰＵ406がＨＤＤ403に格納されたプログラムを必要に応じてＲＡＭ402にロードして実行することにより実現される。なお、本実施形態では入力画像は８ビットグレースケール画像として説明するが、フルカラー画像であってもよい。なお、フルカラー画像が入力された場合、ＣＰＵ406は、該フルカラー画像から８ビットグレースケール画像を生成し、該８ビットグレースケール画像を入力画像として、本フローチャートの処理を実行するものとする。
【００４２】
まずS601において、ＣＰＵ406は、入力画像の解像度の解像度を下げ（例えば解像度を1/2に変更し）、低解像度画像を生成する。解像度の解像度を下げることにより、処理速度を向上させることが可能となるとともに、スパイクノイズ対策としても効果が見込める。また、解像度変換の必要が無ければ、解像度変換を行わなくても良い。例えば、入力画像の解像度が所定の解像度よりも低い場合には、スパイクノイズよりも低解像度化による文字などの潰れへの影響が大きい為、解像度を下げなくても良い。特に、入力画像の解像度に応じて解像度変換の倍率を変更することが好ましい。
【００４３】
次にS602において、ＣＰＵ406は、上記S601で生成された低解像度画像に対してエッジ検出処理（例えばソーベルフィルタを用いたエッジ検出処理）を行い、各画素におけるエッジレベルを算出して、エッジレベルデータを生成する。ここで、エッジレベルとは、エッジ検出処理を適用した画像における各画素の出力値を示しており、エッジ検出処理後の画像における出力値が大きいことが、エッジレベルが高いことに対応する。
【００４４】
次にS603において、ＣＰＵ406は、上記S601で生成された低解像度画像の明度（本実施形態では0〜255）ごとの画素数を算出する。
次にS604において、ＣＰＵ406は、上記S602でエッジレベルを算出した各画素に対して、その画素の周囲の所定範囲に含まれる画素のエッジレベル（例えば５×５画素のデータ）を加算して該加算結果を該画素の周囲画素エッジレベルとする（周囲画素エッジレベル加算処理）。このとき、ＣＰＵ４０６は、エッジレベル検出手段として機能している。以下、図８を用いて説明する。
【００４５】
図８は、本実施形態の周囲画素エッジレベル加算処理を説明する図である。
図８において、800は、エッジレベルデータの全体を示し、各矩形は各画素を示す。
801を注目画素とすると、注目画素801の周囲の画素802（図中の網掛け部分。３×３の画素データ）のエッジレベルを加算して、該加算結果を注目画素801の周囲画素エッジレベル803とする。
同様に、811を注目画素とすると、注目画素811の周囲の画素812のエッジレベルを加算して、該加算結果を注目画素811の周囲画素エッジレベル813とする。
さらに、821を注目画素とすると、注目画素821の周囲の画素822のエッジレベルを加算して、該加算結果を注目画素821の周囲画素エッジレベル823とする。
同様の処理を、エッジレベルデータ800の全画素について行い、周囲画素エッジレベルのデータ890を生成する。
なお、図８では、簡略化して３×３画素のデータを加算する例を示しているが、これに限定されるものではない。
【００４６】
次にS605において、ＣＰＵ406は、S603で算出した画素数が1個以上の上記低解像度画像での明度ごとに、該明度である各画素における周囲画素エッジレベル（上記S604で算出）を合計し、該合計値を上記S603で算出した画素数で除算して、明度ごとのエッジレベルの平均値を求める。各画素における周囲画素エッジレベルの値は、近くにエッジが多い画素ほど大きくなる。よって、エッジレベルの平均値が大きい明度が、エッジ近傍に多くある画素の明度と考えられる。逆に、エッジレベルの平均値が小さい明度は、周囲にエッジが少ない画素の明度と考えられる。
図９は、明度ごとのエッジレベルの平均値を示すグラフの一例を示す図である。
【００４７】
次にS606において、ＣＰＵ406は、上記S605で求めた明度ごとのエッジレベルの平均値において、極大値に対応する明度を求める。図９の例では複数の極大値が存在する。ここで求めた極大値のいずれかが、コンテンツ領域とそれ以外の領域との閾値に対応するものと考えられる。
【００４８】
次にS607において、ＣＰＵ406は、上記S603で算出した明度ごとの画素数に基づいて、所定のコンテンツ率に対応する明度を求める。具体的には、明度Ｘ以下の画素数が、上記低解像度画像の全体の画素数に対する所定のコンテンツ率以下となるような明度Ｘを求める。ここでは、例えば、所定のコンテンツ率＝「２０％」とする。なお、コンテンツ率とは、入力画像に占めるコンテンツ（背景以外のデータ）の割合を示している。すなわち、コンテンツ率＝「２０％」の場合には、入力画像の画素全体における２０％が文字情報などを表す画素であることを意味する。また、ある明度におけるコンテンツ率とした場合には、ある明度以下となる明度が入力画像全体に占める割合を示す。すなわち、明度「１００」のコンテンツ率とした場合には、入力画像全体の画素数に対し、明度「１００」以下となる画素数が占める割合を％表示したものを示すこととなる。
【００４９】
次にS608において、ＣＰＵ406は、上記S606で求めた極大値のうち、対応する明度が上記所定のコンテンツ率を超えない最大のものを選択し、その明度を求める。この場合、ＣＰＵ406は、上記S606で求めた極大値に対応する明度のうち、小さいものから順に、所定のコンテンツ率に対応する明度と比較し、所定のコンテンツ率を超えない最大の明度を求める。なお、所定のコンテンツ率を超えないものが存在しない場合、最初の極大値に対応する明度を選択するものとする。ここで、図９の例においては、所定のコンテンツ率＝「２０％」としたことで、明度Ｘ＝「６５」となる。これを、符号901を付して図示してある。なお、所定のコンテンツ率は読み取る原稿によって異なっても良い。図９の例では、明度「２６」に極大値「６２４．８８７４０９」、明度「５４」に極大値「４８５．５５０５８５」が存在し、所定のコンテンツ率に対応する明度が「６５」である。よって、明度「５４」がコンテンツ率「２０％」に対応する明度「６５」を超えない最大の極大値に対応する明度となる。
【００５０】
次にS609において、ＣＰＵ406は、上記S608で求めた明度を「画像全体における明度のしきい値（Ｔ１（第１しきい値））」、該明度に対応するエッジレベルの平均値を「エッジレベルの閾値（Ｔ２（第２しきい値））」と決定する。図９の例では、明度「５４」が「画像全体における明度のしきい値（Ｔ１）」、明度「５４」に対応する極大値「４８５．５５０５８５」が「エッジレベルの閾値（Ｔ２）」として決定される。
【００５１】
次にS610において、ＣＰＵ406は、上記S604で生成した周囲画素エッジレベルデータの解像度を、入力画像の解像度に合わせて上げて（例えば解像度を２倍に変更し）、高解像度エッジレベルデータを生成する。解像度を２倍にする場合、例えば、補完する画素の右上、左上、右下、左下の４画素の平均を使用して、画素を補完するものとする。なお、解像度の変更方法は、これに限定されるものではなく、どのような方法を用いてもよい。なお、エッジレベルデータを作成する際に解像度変換を行わなかった場合においては、ここで解像度変換を行う必要は無い。
【００５２】
次にS611において、ＣＰＵ406は、高解像度エッジレベルデータ、画像全体における明度のしきい値（Ｔ１）、エッジレベルの閾値（Ｔ２）を用いて、入力画像を二値化する（二値化処理）。この二値化処理の詳細は、図７に示す。
【００５３】
以下、図７を用いて、S611の二値化処理について詳細に説明する。
まずS701において、ＣＰＵ406は、入力画像から未処理の対象画素を１画素、所定の順序で選択し（以下「注目画素」という）、S702に処理を進める。
【００５４】
S702において、ＣＰＵ406は、注目画素の高解像度エッジレベルと、エッジレベルの閾値（Ｔ２）を比較することにより、注目画素がエッジ近傍部か非エッジ近傍部かを判断する。そして、注目画素の高解像度エッジレベルがエッジレベルの閾値（Ｔ２）未満と判定した場合（S702でNoの場合）、ＣＰＵ406は、注目画素が非エッジ近傍部であると判断し、S703に処理を進める。
【００５５】
S703において、ＣＰＵ406は、注目画素の明度と、画像全体における明度のしきい値（Ｔ１）を比較する。そして、注目画素の明度が画像全体における明度のしきい値（Ｔ１）未満であると判定した場合（S703でNoの場合）、ＣＰＵ406は、S704に処理を進める。
S704において、ＣＰＵ406は、注目画素を「黒」と決定し、「黒」に対応する値をＲＡＭ402の二値画像格納領域に格納し、S710に処理を進める。
【００５６】
一方、上記S703において、注目画素の明度が画像全体における明度のしきい値（Ｔ１）以上と判定した場合（S703でYesの場合）、ＣＰＵ406は、S705に処理を進める。
S705において、ＣＰＵ406は、注目画素を「白」と決定し、「白」に対応する値をＲＡＭ402の二値画像格納領域に格納し、S710に処理を進める。
【００５７】
また、上記S702において、注目画素の高解像度エッジレベルがエッジレベルの閾値（Ｔ２）以上と判定した場合（S702でYesの場合）、ＣＰＵ406は、注目画素がエッジ近傍部であると判断し、S706に処理を進める。
【００５８】
S706において、ＣＰＵ406は、注目画素の周囲の所定範囲内の画素（例えば７×７の画素）の明度を参照し、その最大値と最小値の平均値（第３しきい値）を算出する。
次にS707において、ＣＰＵ406は、注目画素の明度と上記S706で算出した平均値を比較する。そして、注目画素の明度が上記平均値以下と判定した場合（S707でNoの場合）、ＣＰＵ406は、S708に処理を進める。
S708において、ＣＰＵ406は、注目画素を「黒」と決定し、「黒」に対応する値をＲＡＭ402の二値画像格納領域に格納し、S710に処理を進める。
【００５９】
一方、S707において、ＣＰＵ406は、注目画素の明度が上記平均値より大きいと判定した場合（S707でYesの場合）、ＣＰＵ406は、S709に処理を進める。
S709において、ＣＰＵ406は、注目画素を「白」と決定し、「白」に対応する値をＲＡＭ402の二値画像格納領域に格納し、S710に処理を進める。
【００６０】
S710において、ＣＰＵ406は、入力画像の全ての画素について、上記S701〜S709の処理を行ったか否かを判定する。そして、まだ未処理の画素があると判定した場合（S710でNoの場合）、ＣＰＵ406は、S701に処理を戻し、次の画素の処理に移行する。
【００６１】
一方、上記S710において、ＣＰＵ406は、入力画像の全ての画素について処理済みと判定した場合（S710でYesの場合）、ＣＰＵ406は、S711に処理を進める。
S711において、ＣＰＵ406は、ＲＡＭ402の二値画像格納領域に格納された二値画像データを、ＨＤＤ403に保存し、本二値化処理を終了する。
【００６２】
なお、本実施形態では、所定のコンテンツ率を超えない最大の極大値と、それに対応する明度を用いてしきい値Ｔ１，Ｔ２を決定したが、所定のコンテンツ率に対応する明度にもっとも近い極大値に対応する明度を用いてしきい値Ｔ１，Ｔ２を決定することも可能である。
【００６３】
また、所定のコンテンツ率については固定値を用いてもよいし、例えば伝票、小切手、帳票等のような原稿の種類をユーザに選択させ、例えば伝票が選択された場合は２０％、小切手が選択された場合は１５％、帳票が選択された場合は２５％のように、所定のコンテンツ率を設定する設定手段を有するようにしてもよい。これらの原稿の種類ごとの所定のコンテンツ率は、ユーザが調整可能なように構成しても良い。具体的には、画像読取装置によって原稿を読み取る際の動作モードをユーザが選択することで原稿の読み取りを開始し、その際に、選択された動作モードに応じたコンテンツ率を自動的に設定しても良いし、それをユーザが調整可能に構成しても良い。また、入力画像から原稿の種別等を判別して、該判別された原稿種別に基づいて所定のコンテンツ率を決定するようにしてもよい。
【００６４】
以上の処理により、あらゆる種類や状態の原稿に柔軟に対応し、シワや汚れがあったり、文字等のコンテンツが薄い等の原稿であっても、適切な二値画像を得ることができる。また、しきい値Ｔ１，Ｔ２を生成する際に元の入力画像から解像度を下げたデータを利用することで、処理を軽減することができる。
【００６５】
〔第２実施形態〕
上記第１実施形態では、解像度を下げた状態で画像全体のしきい値（Ｔ１）とエッジレベルのしきい値（Ｔ２）を決定した後に、周囲画素エッジレベルデータを元の解像度に戻して二値化する構成について示した。第２実施形態では、解像度を下げた状態で画素ごとのしきい値を決定し、該画素ごとのしきい値を元の解像度に適用可能なように変更し、その閾値を用いて二値化する構成について説明する。この構成により、さらなる処理速度の向上等の効果が見込める。
【００６６】
図１０〜図１３は、第２実施形態の画像処理の一例を示すフローチャートである。これらのフローチャートは、スキャナドライバ502内で実行される。すなわち、これらのフローチャートの処理は、ＰＣ200のＣＰＵ406がＨＤＤ403に格納されたプログラムを必要に応じてＲＡＭ402にロードして実行することにより実現される。なお、図６、図７と同一のステップについては同一のステップ番号を付し、説明を省略する。
【００６７】
第２実施形態では、S609において、「画像全体のしきい値（Ｔ１）」及び「エッジレベルの閾値（Ｔ２）」を決定した後、ＣＰＵ406は、S1010に処理を進める。
S1010において、ＣＰＵ406は、低解像度画像の画素ごとに、二値化用のしきい値を決定する（画素ごとのしきい値決定処理）。この処理により、低解像度画像と同一解像度のしきい値データが生成される。なお、S1010の詳細は図１１に示す。このしきい値データは、低解像度画像と同じ画素数を有するしきい値画像データとして処理されても良い。
【００６８】
次にS1011において、ＣＰＵ406は、上記S1010で生成された低解像度画像の画素ごとのしきい値データの解像度を、入力画像の解像度に合わせて上げて（例えば解像度を２倍に変更し）、高解像度しきい値データを生成する。解像度を２倍にする場合、例えば、補完する画素の右上、左上、右下、左下の４画素のしきい値の平均を使用して、画素ごとのしきい値を補完するものとする。なお、解像度の変更方法は、これに限定されるものではなく、どのような方法を用いてもよい。
【００６９】
次にS1012において、ＣＰＵ406は、上記S1011で生成した高解像度しきい値データを用いて、入力画像を二値化する（二値化処理）。この二値化処理の詳細は、図１２に示す。
【００７０】
以下、図１１を用いて、S1010の画素ごとのしきい値決定処理について詳細に説明する。
まずS1101において、ＣＰＵ406は、図１０のS601で生成した低解像度画像から未処理の画素を１画素、所定の順序で選択し（以下「注目画素」という）、S1102に処理を進める。
【００７１】
S1102において、ＣＰＵ406は、注目画素の周囲画素エッジレベルと、エッジレベルの閾値（Ｔ２）を比較することにより、注目画素がエッジ近傍部か非エッジ近傍部かを判断する。そして、注目画素の周囲画素エッジレベルがエッジレベルの閾値（Ｔ２）未満と判定した場合（S1102でNoの場合）、ＣＰＵ406は、注目画素が非エッジ近傍部であると判断し、S1103に処理を進める。
S1103において、ＣＰＵ406は、注目画素の二値化用のしきい値を「画像全体における明度のしきい値（Ｔ１）」に決定し、該決定されたしきい値をＲＡＭ402の二値化用しきい値領域に格納し、S1106に処理を進める。
【００７２】
一方、上記S1102において、注目画素の周囲画素エッジレベルがエッジレベルの閾値（Ｔ２）以上であると判定した場合（S1102でYesの場合）、ＣＰＵ406は、注目画素がエッジ近傍部であると判断し、S1104に処理を進める。
【００７３】
S1104において、ＣＰＵ406は、注目画素の周囲の画素（例えば７×７の画素）の明度を参照し、その最大値と最小値の平均値を算出する。
次にS1105において、ＣＰＵ406は、注目画素の二値化用のしきい値を上記S706で算出した平均値に決定し、該決定されたしきい値をＲＡＭ402の二値化用しきい値領域に格納し、S1106に処理を進める。
【００７４】
S1106において、ＣＰＵ406は、低解像度画像の全ての画素について、上記S1101〜S1105の処理を行ったか否かを判定する。そして、まだ未処理の画素があると判定した場合（S1106でNoの場合）、ＣＰＵ406は、S1101に処理を戻し、次の画素の処理に移行する。
【００７５】
一方、上記S1106において、ＣＰＵ406は、低解像度画像の全ての画素について処理済みと判定した場合（S1106でYesの場合）、ＣＰＵ406は、本画素ごとのしきい値の決定処理を終了する。以上の処理により、低解像度画像の画素ごとのしきい値データが、ＲＡＭ402の二値化用しきい値領域に格納される。
【００７６】
以下、図１２を用いて、S1012の二値化処理について詳細に説明する。
まずS1201において、ＣＰＵ406は、入力画像から未処理の画素を１画素、所定の順序で選択し（以下「注目画素」という）、S1202に処理を進める。
【００７７】
S1202において、ＣＰＵ406は、注目画素の明度と、注目画素の高解像度しきい値データを比較する。そして、注目画素の明度が注目画素の高解像度しきい値データ以下と判定した場合（S1202でNoの場合）、ＣＰＵ406は、S1203に処理を進める。
S1203において、ＣＰＵ406は、注目画素を「黒」画素と決定し、「黒」画素に対応する値をＲＡＭ402の二値画像格納領域に格納し、S1205に処理を進める。
【００７８】
一方、上記S1202において、注目画素の明度が注目画素の高解像度しきい値データより大きいと判定した場合（S1202でYesの場合）、ＣＰＵ406は、S1204に処理を進める。
S1204において、ＣＰＵ406は、注目画素を「白」画素と決定し、「白」画素に対応する値をＲＡＭ402の二値画像格納領域に格納し、S1205に処理を進める。
【００７９】
S1205において、ＣＰＵ406は、入力画像の全ての画素について、上記S1201〜S1204の処理を行ったか否かを判定する。そして、まだ未処理の画素があると判定した場合（S1205でNoの場合）、ＣＰＵ406は、S1201に処理を戻し、次の画素の処理に移行する。
【００８０】
一方、上記S1205において、ＣＰＵ406は、入力画像の全ての画素について処理済みと判定した場合（S1205でYesの場合）、ＣＰＵ406は、S1206に処理を進める。
S1206において、ＣＰＵ406は、ＲＡＭ402の二値画像格納領域に格納された二値画像データを、ＨＤＤ403に保存し、本二値化処理を終了する。
【００８１】
以上の処理により、あらゆる種類や状態の原稿に柔軟に対応し、シワや汚れがあったり、文字等のコンテンツが薄い等の原稿であっても、適切な二値画像をより高速に取得することができる。
【００８２】
〔第３実施形態〕
上記実施形態では、ＰＣ200側で二値化処理を行ったが、スキャナ100側で二値化処理を行ってもよい。以下、その実施形態について説明する。
例えば図３に示したスキャナ100の画像処理部302及びＣＰＵ306が共同して、図６〜図７又は図１０〜図１２に示した処理を行い、二値画像データをスキャナ100からＰＣ200に出力する。なお、ＣＰＵ306の処理は、ＣＰＵ306がＲＯＭ310に格納されたプログラムを必要に応じてＲＡＭ303にロードして実行することにより実現される。
【００８３】
ここで、画像処理部302の構成について説明する。
図１３は、図３に示したスキャナ100の画像処理部302の概略構成の一例を示す図である。なお、図１３では、本実施形態に関連する部分を中心に記載し、その他については省略してある。
【００８４】
画像処理バッファ1300へは、図３に示したＡ／Ｄ変換部301から出力された画像データが順次格納される。
処理ブロック1301は、フルカラーデータの場合に、Ｒ、Ｇ、Ｂに分離した面順次のデータを点順次のデータに再構成する入力データ処理部である。
処理ブロック1302は、光源の光量分布のばらつきや、画像読み取りデバイスの受光素子のばらつき、暗出力のオフセットを補正するシェーディング補正を行う。
処理ブロック1303は、平均化処理部、入力マスキング処理部、γ補正処理部を有する。
【００８５】
処理ブロック1304は、上述した図６又は図１０のS601、S610やS1011の処理を行う解像度変換部、S602の処理を行うエッジ検出部等を有する。
処理ブロック1305は、S603の処理を行う明度ごとの画素数算出部等を有する。
処理ブロック1306は、S604の処理を行う周囲画素エッジレベル加算部、S605の処理を行うエッジレベル平均算出部等を有する。
処理ブロック1307は、図７のS1007や図１１のS1104の処理を行う周囲画素最大・最小平均算出部等を有する処理ブロックである。
【００８６】
例えば、第２実施形態の例では、ＣＰＵ306は、画像処理部302から周囲画素エッジレベルデータ、明度ごとのエッジレベル平均データ、明度ごとの画素数等のデータを取得し、画像全体における明度のしきい値（Ｔ１）やエッジレベルのしきい値（Ｔ２）を決定する。また、ＣＰＵ306は、画像処理部302から注目画素の周囲の画素の最大値と最小値の平均値等のデータを取得し、画素ごとのしきい値データを生成する。画像処理部302では、ＣＰＵ306により生成された画素ごとのしきい値データから高解像度しきい値データを生成する。さらに、ＣＰＵ306は、画像処理部302から高解像度しきい値データを取得し、入力画像の二値化を行って、Ｉ／Ｆ305を介してＰＣ200に二値画像データを出力する。
【００８７】
以上の処理により、あらゆる種類や状態の原稿に柔軟に対応し、シワや汚れがあったり、文字等のコンテンツが薄い等の原稿であっても、スキャナ100側において適切な二値画像を生成することができる。また、スキャナ100側で二値画像を生成することにより、ＰＣ200側のスキャナドライバ502の負荷を軽減することができる。
【００８８】
以上の処理は一例であり、二値化処理の一部のみをスキャナ100側で行うようにしても良い。
【００８９】
〔第４実施形態〕
本実施形態では、原稿の両面を処理する場合であって、特に原稿の片面が白紙等であった場合の課題を解決する構成について説明する。
例えば、原稿の片面が白紙等（記載されているコンテンツが極めて少ない状態を含む）であった場合、該白紙等の面から上述の実施形態の画像処理により得られたしきい値（Ｔ１，Ｔ２）は、シワや汚れなどに基づいて算出された可能性がある。このため、このしきい値（Ｔ１，Ｔ２）を用いて、その面の二値化を行うと（図６のS610〜S611又は図１０のS1010〜S1012）と、紙のシワや汚れなどが強調されてしまう場合がある。
【００９０】
よって、本実施形態では、表面に対して算出されたエッジレベルのしきい値（Ｔ２）と、裏面に対して算出されたエッジレベルのしきい値（Ｔ２）とを比較し、その差が所定値よりも大きい場合、エッジレベルのしきい値（Ｔ２）が大きい方の面のしきい値（Ｔ１，Ｔ２）を、もう一方の面のしきい値（Ｔ１，Ｔ２）としても採用するものとする。例えば、表面のしきい値（Ｔ１，Ｔ２）を白紙ページの裏面にも使用する。
これにより、例えば、原稿の片側が白紙等であった場合でも、紙のシワや汚れなどを強調しないように二値画像を生成することができる。
【００９１】
以下、図１４を用いて詳細に説明する。
図１４は、第４実施形態の画像処理の一例を示すフローチャートである。これらのフローチャートは、スキャナドライバ502内で実行される。すなわち、これらのフローチャートの処理は、ＰＣ200のＣＰＵ406がＨＤＤ403に格納されたプログラムを必要に応じてＲＡＭ402にロードして実行することにより実現される。なお、本実施形態では、ＣＰＵ406は、両面読取を指定してスキャナ100に画像読取を開始させるものとする。
【００９２】
S1401において、ＣＰＵ406は、表面の入力画像に対して、図６又は図１０のS601〜S609の処理を行って、画像全体のしきい値（Ｔ１）、エッジレベルの閾値（Ｔ２）を決定する。
またS1402において、ＣＰＵ406は、裏面の入力画像に対して、図６又は図１０のS601〜S609の処理を行って、画像全体のしきい値（Ｔ１）、エッジレベルの閾値（Ｔ２）を決定する。なお、これらの処理は説明済みのため詳細は省略する。
【００９３】
次にS1403において、ＣＰＵ406は、「表面のエッジレベルの閾値（Ｔ２）」と「裏面のエッジレベルの閾値（Ｔ２）」との差と所定値とを比較する。そして、表裏のエッジレベルの閾値（Ｔ２）の差が所定値以下と判定した場合（S1402でNoの場合）、ＣＰＵ406は、S1407に処理を進める。
【００９４】
一方、上記S1403において、表裏のエッジレベルの閾値（Ｔ２）の差が所定値より大きいと判定した場合（S1402でYesの場合）、ＣＰＵ406は、S1404に処理を進める。
【００９５】
S1404において、ＣＰＵ406は、「表面のエッジレベルの閾値（Ｔ２）」と「裏面のエッジレベルの閾値（Ｔ２）」とを比較する。そして、「表面のエッジレベルの閾値（Ｔ２）」が「裏面のエッジレベルの閾値（Ｔ２）」以上と判定した場合（S1404でYesの場合）、ＣＰＵ406は、S1405に処理を進める。
S1405において、ＣＰＵ406は、表面のしきい値（Ｔ１，Ｔ２）」を裏面にも採用し、S1407に処理を進める。
【００９６】
一方、上記S1404において、ＣＰＵ406は、「表面のエッジレベルの閾値（Ｔ２）」が「裏面のエッジレベルの閾値（Ｔ２）」より小さいと判定した場合（S1404でNoの場合）、ＣＰＵ406は、S1406に処理を進める。
S1406において、ＣＰＵ406は、裏面のしきい値（Ｔ１，Ｔ２）」を表面にも採用し、S1407に処理を進める。
【００９７】
S1407において、ＣＰＵ406は、表面及び裏面に対してそれぞれ図６のS610〜S611、又は、図１０のS1010〜S1012の処理を行って、二値画像を生成するように制御する。なお、この処理は説明済みのため詳細は省略する。
以上の処理により、例えば、原稿の片側が白紙等であった場合でも、紙のシワや汚れなどを強調しないように二値画像を生成することができる。
【００９８】
なお、上述の記載では、「表面のエッジレベルの閾値（Ｔ２）」と「裏面のエッジレベルの閾値（Ｔ２）」とを用いた制御について説明したが、表面と裏面のしきい値に限定されるものではない。例えば、「現ページ」と「前ページ」を「表面」と「裏面」の代わりに用いてもよい。
【００９９】
〔第５実施形態〕
本実施形態では、原稿の下地が黒等で、コンテンツが白等の高い明度であった場合の課題を解決する構成について説明する。
以下、本実施形態における図６又は図１０のS608の「コンテンツ率を満たす極大値に対応する明度を取得する処理」（以下「極大値明度取得処理」）について説明する。
図１５は、第５実施形態における極大値明度取得処理の一例を示すフローチャートである。これらのフローチャートは、スキャナドライバ502内で実行される。すなわち、これらのフローチャートの処理は、ＰＣ200のＣＰＵ406がＨＤＤ403に格納されたプログラムを必要に応じてＲＡＭ402にロードして実行することにより実現される。
【０１００】
S1501において、ＣＰＵ406は、入力画像（又は低解像度画像）中の黒画素と白画素の画素数を取得する。なお、黒画素、白画素の判定方法は、例えば黒画素しきい値を設け、ＣＰＵ406は、黒画素しきい値よりも小さい明度の画素を黒画素、黒画素しきい値以上の明度の画素を白画素と判定するようにする。なお、白画素数、黒画素数は、例えば画像の入力時等のタイミングで、ＣＰＵ406が予めカウントしておいてもよい。
【０１０１】
次にS1502において、ＣＰＵ406は、白画素の画素数が黒画素の画素数よりも多いか否かを判定する。そして、白画素数が黒画素数よりも多いと判定した場合（S1502でYesの場合）、ＣＰＵ406は、S1503に処理を進める。
S1503において、ＣＰＵ406は、図６又は図１０のS606で求めた極大値に対応する明度のうち、小さいものから順に、所定のコンテンツ率に対応する明度と比較し、所定のコンテンツ率を超えない最大の明度を求め、本極大値明度取得処理を終了する。
【０１０２】
一方、上記S1502において、黒画素数が白画素数よりも多いと判定した場合（S1502でNoの場合）、ＣＰＵ406は、S1504に処理を進める。
S1504において、ＣＰＵ406は、図６又は図１０のS606で求めた極大値に対応する明度のうち、大きいものから順に、所定のコンテンツ率に対応する明度と比較し、所定のコンテンツ率を下回らない最小の明度を求め、本極大値明度取得処理を終了する。
これにより、例えば、下地が黒等の原稿からでも、適切に二値画像を生成することができる。
【０１０３】
なお、画像が入力された場合に、ＣＰＵ406は、入力画像について、黒画素数と白画素数とを比較し、黒画素数が白画素数よりも多いと判定した場合、入力画像を白黒反転し、該判定画像を入力画像として以降の処理を行うようにしてもよい。また、例えばS601の前に入力画像の背景色の色判定処理を行い、黒系の背景色に白系の文字で記載されている画像であると判定した場合には、入力画像の白黒を反転するのなどしてから上記の処理を行い、終了後に入力画像の白黒を戻しても良い。
また、入力画像に対し、ユーザが黒地に白文字（明度の低い背景に明度の高いコンテンツ）の画像であることを指定可能に構成し、当該指定がなされると、S1502の判定でNoとなるようにしても良い。
【０１０４】
〔第６実施形態〕
本実施形態のスキャナ100の画像読取センサ14、15は、両側照射と片側照射の切り替えが可能である。以下、画像読取センサ14を例に説明するが、画像読取センサ15も同様の構成である。
【０１０５】
図１６は、画像読取センサ14の構成を説明する図である。
図１６（ａ）に示すように、画像読取センサ14は、ラインイメージセンサ1600を有し、さらにラインイメージセンサ1600の両側に光源1601、光源1602を有する原稿の読取部である。
図１６（ｂ）に示すように、光源1601は、光を原稿Ｓに対して原稿搬送方向の下流側且つ上方から、1631のように斜めに照射する。また、光源1602は、光を原稿Ｓに対して原稿搬送方向の上流側且つ上方から、1632のように斜めに照射する。
【０１０６】
光源1601を用いた片側照射を行う場合、図１６（ｃ）に示すように、原稿Ｓにシワ1610等がある場合、光源1601から照射される光1631により、原稿Ｓに1620のような影が現れやすい。なお、光源1601を用いて説明したが、光源1602を用いた片側照射についても同様である。
【０１０７】
これに対して、光源1601及び光源1602を用いた両側照射を行う場合、図１６（ｂ）に示すように、原稿Ｓにシワ1610等がある場合でも、光源1601及び光源1602から照射される光により原稿Ｓに影が現れにくくなる。なお、両側照射とは、ラインイメージセンサに関して対称な位置に配置される一対の光源を設けて、該一対の光源を用いて原稿に光を当てる方式をいう。
以上のように、片側照射は、両側照射の場合と比べると読取画像に影が現れやすくなる傾向がある。
【０１０８】
よって、ＣＰＵ406は、両側照射で読み取った入力画像と、片側照射で読み取った入力画像とで、それぞれエッジレベルのしきい値（Ｔ２）を求める。そして、ＣＰＵ406は、片側照射のエッジレベルのしきい値（Ｔ２）が、両面照射のエッジレベルのしきい値（Ｔ２）よりも大きい場合には、シワのある原稿と判定して、次原稿以降の原稿搬送速度を遅くする（低下させる）ように制御する。例えば、ＣＰＵ406は、スキャナ100に対して、次原稿から原稿搬送速度を遅くする指示を送信する。
これにより、シワのある原稿において発生しやすい紙詰まりや原稿の破損等を抑えることができる。
【０１０９】
例えば、表面を両側照射、裏面を片側照射で読み取り、上述のような制御を行ってもよい。
また、表面、裏面でなくとも、表面を読み取る画像読取センサ14を２つ設け、表面を両側照射、片側照射でそれぞれ読み取り、上述のような制御を行ってもよい。
また、画像読取センサ14を用いて、１ライン又は複数ラインごとに、交互に、両側照射と片側照射とを切り替えて読み取りを行い、上述のような制御を行ってもよい。
【０１１０】
以下、図１７を用いて詳細に説明する。
図１７は、第６実施形態の画像処理の一例を示すフローチャートである。これらのフローチャートは、スキャナドライバ502内で実行される。すなわち、これらのフローチャートの処理は、ＰＣ200のＣＰＵ406がＨＤＤ403に格納されたプログラムを必要に応じてＲＡＭ402にロードして実行することにより実現される。なお、本実施形態では、ＣＰＵ406は、例えば表面を両側照射での読取り、裏面を片側照射での読取りを指定してスキャナ100に画像読取を開始させるものとする。
【０１１１】
S1701において、ＣＰＵ406は、両側照射で読み取った画像（例えば表面画像）に対して、図６又は図１０のS601〜S609の処理を行って、画像全体のしきい値（Ｔ１）、エッジレベルの閾値（Ｔ２）を決定する。
またS1702において、ＣＰＵ406は、片側照射で読み取った画像（例えば裏面画像）に対して、図６又は図１０のS601〜S609の処理を行って、画像全体のしきい値（Ｔ１）、エッジレベルの閾値（Ｔ２）を決定する。
【０１１２】
次にS1703において、ＣＰＵ406は、「片側照射のエッジレベルの閾値（Ｔ２）」と「両側照射のエッジレベルの閾値（Ｔ２）」とを比較する。そして、「片側照射のエッジレベルの閾値（Ｔ２）」が「両側照射のエッジレベルの閾値（Ｔ２）」より大きいと判定した場合（S1703でYesの場合）、ＣＰＵ406は、S1704に処理を進める。
S1704において、ＣＰＵ406は、次原稿からの搬送速度を低速に設定し、S1705に処理を進める。
【０１１３】
一方、上記S1703において、「片側照射のエッジレベルの閾値（Ｔ２）」が「両側照射のエッジレベルの閾値（Ｔ２）」以下と判定した場合（S1703でNoの場合）、ＣＰＵ406は、S1705に処理を進める。
【０１１４】
S1705において、ＣＰＵ406は、図６のS610〜S611、又は、図１０のS1010〜S1012の処理を行って、二値画像を生成するように制御する。
以上の処理により、シワのある原稿において発生しやすい紙詰まりや原稿の破損等を抑えることができる。
【０１１５】
なお、上述したように、表面、裏面でなくとも、表面を読み取る画像読取センサ14を２つ設け、表面を両側照射、片側照射でそれぞれ読み取り、上述のような制御を行ってもよい。
また、画像読取センサ14を用いて、１ライン又は複数ラインごとに、交互に、両側照射と片側照射とを切り替えて読み取りを行い、上述のような制御を行ってもよい。
なお、本実施形態は原稿の片面を読み取るように指定された場合に特に有効である。すなわち、原稿画像の読み取り対象面とは異なる面に面する画像読取センサによって、読み取り対象面とは異なる両側照射、片側照射のいずれかの方法によって読み取り、エッジレベルの閾値（Ｔ２）を算出することが好ましい。
なお、１枚目の原稿にのみ、この処理を行い、２枚目以降の原稿は第１〜第５実施形態で示したような処理を行ってもよい。
【０１１６】
なお、上記第４〜６実施形態についても、第３実施形態のように、スキャナ100側で処理を行ってもよい。例えば図３に示したスキャナ100の画像処理部302及びＣＰＵ306が共同して、上記第４〜６実施形態で示した処理を行い、二値画像データをスキャナ100からＰＣ200に出力するようにしてもよい。
【０１１７】
以上示したように、各実施形態によれば、あらゆる種類や状態の原稿に柔軟に対応し、シワや汚れがあったり、文字等のコンテンツが薄い等の原稿であっても、適切な二値画像を得ることができる。
【０１１８】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【０１１９】
（その他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
【０１２０】
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【０１２１】
また、上記実施例における入力画像に対して、明るさの補正処理などを行っても良い。例えば、黒が潰れるようにガンマ補正処理を行っても良い。この補正処理を行う事で、白領域における濃度差が大きく、黒領域における濃度差が小さくなる。そうすることで、黒領域がエッジ近傍部と判定されにくく、白領域がエッジ近傍部と判定されやすくなる。この処理の結果、白地に薄い文字で記載されているものが残り易く、黒領域内の汚れ等による濃度変化は一様な黒地（ベタ）であるとして二値化された画像を出力することができる。
【０１２２】
また、上記実施例においては、図６、図７等に示す画像処理を行って二値画像データを生成する際に、グレースケール画像を用いて処理を行っていたが、これに限られない。例えば、入力画像がカラー画像であった場合に、エッジ検出など、カラー画像のままで処理可能である部分の処理をカラー画像のままで行い、二値化処理の部分にグレースケール画像を用いることなどが可能である。従って、多値の入力画像に対し、必要に応じてグレースケール画像を用いて二値化処理を実行することが可能である。
【０１２３】
なお、上記実施例においては、入力画像としてスキャナ100で読み取った原稿画像を二値化処理するものについて説明したが、本発明はこれに限られず、他の機器から送信された画像を入力画像として、本発明の二値化処理を適用しても構わない。
その場合、所定のコンテンツ率についても、例えば伝票、小切手、帳票等のような入力画像の種類をユーザに選択させたり、入力画像やそれに紐づいた情報から他の機器が判別してもよく、例えば伝票が選択された場合は２０％、小切手が選択された場合は１５％、帳票が選択された場合は２５％のように、所定のコンテンツ率を設定してもよい。これらの入力画像の種類ごとの所定のコンテンツ率は、ユーザが調整可能なように構成しても良い。
【符号の説明】
【０１２４】
100    スキャナ
200    パーソナルコンピュータ（ＰＣ）
302    画像処理部
406    ＣＰＵ
【図１】
2020052731.tif 000003
【図２】
2020052731.tif 000004
【図３】
2020052731.tif 000005
【図４】
2020052731.tif 000006
【図５】
2020052731.tif 000007
【図６】
2020052731.tif 000008
【図７】
2020052731.tif 000009
【図８】
2020052731.tif 000010
【図９】
2020052731.tif 000011
【図１０】
2020052731.tif 000012
【図１１】
2020052731.tif 000013
【図１２】
2020052731.tif 000014
【図１３】
2020052731.tif 000015
【図１４】
2020052731.tif 000016
【図１５】
2020052731.tif 000017
【図１６】
2020052731.tif 000018
【図１７】
2020052731.tif 000019