IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン電子株式会社の特許一覧

特許7149047画像処理装置、画像処理装置の制御方法、及びプログラム
<>
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図1
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図2
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図3
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図4
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図5
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図6
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図7
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図8
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図9
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図10
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図11
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図12
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図13
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図14
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図15
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図16
  • 特許-画像処理装置、画像処理装置の制御方法、及びプログラム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-28
(45)【発行日】2022-10-06
(54)【発明の名称】画像処理装置、画像処理装置の制御方法、及びプログラム
(51)【国際特許分類】
   G06T 5/00 20060101AFI20220929BHJP
   H04N 1/387 20060101ALI20220929BHJP
【FI】
G06T5/00 740
H04N1/387 101
【請求項の数】 17
(21)【出願番号】P 2018181420
(22)【出願日】2018-09-27
(65)【公開番号】P2020052731
(43)【公開日】2020-04-02
【審査請求日】2021-09-07
(73)【特許権者】
【識別番号】000104652
【氏名又は名称】キヤノン電子株式会社
(74)【代理人】
【識別番号】110002767
【氏名又は名称】特許業務法人ひのき国際特許事務所
(72)【発明者】
【氏名】丸尾 優
【審査官】松永 隆志
(56)【参考文献】
【文献】特開2010-232795(JP,A)
【文献】特開平08-214162(JP,A)
【文献】特開2014-216715(JP,A)
【文献】特開2013-037658(JP,A)
【文献】特開2001-251507(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00-19/20
H04N 1/00-1/64
(57)【特許請求の範囲】
【請求項1】
入力された多値の入力画像データから二値画像データを生成する画像処理装置であって、
前記入力画像データに対し所定のエッジ検出処理を適用した際の各画素における出力値であるエッジレベルを検出してエッジレベルデータを生成するエッジレベル検出手段と、
前記入力画像データの明度ごとに、該明度に対応する各画素のエッジレベルを平均したエッジレベル平均を算出する算出手段と、
前記明度ごとのエッジレベル平均が極大となる明度であって、所定のコンテンツ率を満たす明度を取得する取得手段と、
前記取得手段が取得した明度を第1しきい値、該明度に対応するエッジレベル平均を第2しきい値に決定する決定手段と、
前記第1しきい値及び前記第2しきい値を用いて前記入力画像データから二値画像データを生成する二値化手段と、を有し、
前記二値化手段は、前記入力画像データの画素ごとに、対象画素に対応するエッジレベルデータと前記第2しきい値を比較してエッジ近傍の画素か否かを判定し、エッジ近傍でないと判定された場合は該対象画素の画像データを前記第1しきい値を用いて二値化し、エッジ近傍であると判定された場合は該対象画素の画像データを該対象画素の周囲の所定範囲内に含まれる画素の明度に基づく第3しきい値を用いて二値化する、ことを特徴とする画像処理装置。
【請求項2】
前記第3しきい値は、前記対象画素の周囲の所定範囲内に含まれる画素の明度の最大値と最小値の平均値であることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記エッジレベル検出手段は、前記入力画像データの各画素におけるエッジレベルを検出し、さらに前記各画素について、その画素のエッジレベルにその画素の周囲の所定範囲内に含まれる画素のエッジレベルを加算した値を該画素のエッジレベルとして前記エッジレベルデータを生成することを特徴とする請求項1又は2に記載の画像処理装置。
【請求項4】
前記入力画像データの種別を選択することにより前記コンテンツ率を設定する設定手段を有することを特徴とする請求項1~3のいずれか1項に記載の画像処理装置。
【請求項5】
前記取得手段は、前記明度ごとの前記エッジレベル平均が極大となる明度のうち、前記明度におけるコンテンツ率が前記所定のコンテンツ率を超えない最大の明度を、前記コンテンツ率を満たす明度として取得する、ことを特徴とする請求項1~4のいずれか1項に記載の画像処理装置。
【請求項6】
前記取得手段は、前記明度ごとの前記エッジレベル平均が極大となる明度のうち、小さいものから順に、前記所定のコンテンツ率に対応する明度と比較し、前記コンテンツ率を満たす明度として取得する、ことを特徴とする請求項1~5のいずれか1項に記載の画像処理装置。
【請求項7】
前記取得手段は、
前記入力画像データにおいて所定の明度よりも高い明度の画素の数を示す第1画素数と前記所定の明度よりも低い明度の画素の数を示す第2画素数を比較し、
前記第1画素数が前記第2画素数よりも多い場合、前記明度ごとの前記エッジレベル平均が極大となる明度のうち、小さいものから順に、前記コンテンツ率に対応する明度と比較し、
前記第1画素数が前記第2画素数よりも少ない場合、前記明度ごとの前記エッジレベル平均が極大となる明度のうち、大きいものから順に、前記コンテンツ率に対応する明度と比較し、
前記コンテンツ率を満たす明度として取得する、ことを特徴とする請求項1~4のいずれか1項に記載の画像処理装置。
【請求項8】
前記入力画像データを、該入力画像データの解像度である第1解像度から該第1解像度よりも低解像度の第2解像度に変換する変換手段を設け、
前記エッジレベル検出手段、前記算出手段、前記取得手段及び前記決定手段は、前記変換手段により変換された前記第2解像度の画像データを前記入力画像データとして処理を行い、
前記二値化手段は、前記第2解像度の画像データの画素ごとに、対象画素に対応するエッジレベルデータと前記第2しきい値を比較してエッジ近傍の画素か否かを判定し、エッジ近傍でないと判定された画素については前記第1しきい値を該対象画素のしきい値に決定し、一方、エッジ近傍と判定された画素については前記第2解像度の画像データにおける該対象画素の周囲の所定範囲内に含まれる画素の明度に基づく第3しきい値を該画素のしきい値に決定することにより前記第2解像度のしきい値データを生成し、該第2解像度のしきい値データを前記第1解像度のしきい値データに変換し、該第1解像度のしきい値データを用いて、前記第1解像度の前記入力画像データを二値化する、ことを特徴とする請求項1~7のいずれか1項に記載の画像処理装置。
【請求項9】
前記入力画像データを、該入力画像データの解像度である第1解像度から該第1解像度よりも低解像度の第2解像度に変換する第1変換手段を設け、
前記エッジレベル検出手段、前記算出手段、前記取得手段及び前記決定手段は、前記変換手段により変換された前記第2解像度の画像データを前記入力画像データとして処理を行い、
前記エッジレベルデータを、前記第2解像度から前記第1解像度に変換する第2変換手段を設け、
前記二値化手段は、前記第1解像度の前記入力画像データの画素ごとに、対象画素に対応する前記第1解像度のエッジレベルデータと前記第2しきい値を比較してエッジ近傍の画素か否かを判定し、エッジ近傍でないと判定された画素については該対象画素の画像データを前記第1しきい値を用いて二値化し、一方、エッジ近傍と判定された画素については該対象画素の画像データを該対象画素の周囲の所定範囲内に含まれる画素の明度に基づく第3しきい値を用いて二値化する、ことを特徴とする請求項1~7のいずれか1項に記載の画像処理装置。
【請求項10】
原稿の第1面から生成された第1面の入力画像データと、前記原稿の第2面から生成された第2面の入力画像データを入力する入力手段と、
前記エッジレベル検出手段、前記算出手段、前記取得手段及び前記決定手段を制御し、前記第1面の入力画像データに基づいて前記第1しきい値及び第2しきい値、前記第2面の入力画像データから前記第1しきい値及び第2しきい値を決定するよう制御する制御手段と、を有し、
前記制御手段は、前記第1面の第2しきい値と、前記第2面の第2しきい値との差が所定値よりも大きい場合、前記第2しきい値が大きい方の面に対応する前記第1しきい値及び前記第2しきい値を、もう一方の面の前記第1しきい値及び前記第2しきい値とすることを特徴とする請求項1~9のいずれか1項に記載の画像処理装置。
【請求項11】
原稿を読み取ることにより画像データを生成する画像読取装置から、第1方向及び前記第1方向と対称な方向から原稿に光を照射して読み取る両側照射方法で生成された第1入力画像データ、前記第1方向から原稿に光を照射して読み取る片側照射方法で生成された第2入力画像データを入力する入力手段と、
前記エッジレベル検出手段、前記算出手段、前記取得手段及び前記決定手段を制御し、前記第1入力画像データに基づいて前記第1しきい値及び第2しきい値、前記第2入力画像データから前記第1しきい値及び第2しきい値を決定するよう制御する制御手段と、を有し、
前記制御手段は、前記第2入力画像データの第2しきい値が、前記第1入力画像データの第2しきい値よりも大きい場合、前記画像読取装置に対し、原稿の搬送速度を低下させるよう制御することを特徴とする請求項1~9のいずれか1項に記載の画像処理装置。
【請求項12】
前記第1入力画像データは原稿の第1面に基づき、前記第2入力画像データは原稿の第2面に基づくことを特徴とする請求項11に記載の画像処理装置。
【請求項13】
前記第1入力画像データ、前記第2入力画像データは、前記両側照射方法、前記片側照射方法を、1又は複数ラインごとに交互に行うことにより生成されることを特徴とする請求項11に記載の画像処理装置。
【請求項14】
前記第1入力画像データ、前記第2入力画像データは、前記画像読取装置に設けられた前記両側照射方法で読取りを行う第1読取部、前記片側照射方法で読み取りを行う第2読取部によりそれぞれ生成されることを特徴とする請求項11に記載の画像処理装置。
【請求項15】
請求項1~14のいずれか1項に記載の画像処理装置を有することを特徴とする画像読取装置。
【請求項16】
入力された多値の入力画像データから二値画像データを生成する画像処理装置の制御方法であって、
前記入力画像データに対し所定のエッジ検出処理を適用した際の各画素における出力値であるエッジレベルを検出してエッジレベルデータを生成するエッジレベル検出ステップと、
前記入力画像データの明度ごとに、該明度に対応する各画素のエッジレベルを平均したエッジレベル平均を算出する算出ステップと、
前記明度ごとのエッジレベル平均が極大となる明度であって、所定のコンテンツ率を満たす明度を取得する取得ステップと、
前記取得ステップで取得した明度を第1しきい値、該明度に対応するエッジレベル平均を第2しきい値に決定する決定ステップと、
前記第1しきい値及び前記第2しきい値を用いて前記入力画像データから二値画像データを生成する二値化ステップと、を有し、
前記二値化ステップでは、前記入力画像データの画素ごとに、対象画素に対応するエッジレベルデータと前記第2しきい値を比較してエッジ近傍の画素か否かを判定し、エッジ近傍でないと判定された場合は該画素の画像データを前記第1しきい値を用いて二値化し、エッジ近傍であると判定された場合は該画素の画像データを該対象画素の周囲の所定範囲内に含まれる画素の明度に基づく第3しきい値を用いて二値化する、ことを特徴とする画像処理装置の制御方法。
【請求項17】
コンピュータを、請求項1~14のいずれか1項に記載の手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、原稿画像に基づき二値画像データを生成可能な画像処理装置、画像処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【0002】
近年、印刷物、伝票、小切手などの原稿をスキャナにより大量に読み取り電子化するケースが増えている。この際、原稿画像の二値画像データが生成されることが多い。
しかし、シワや汚れのある原稿では、シワや汚れも二値画像化されてしまう場合があった。従来のシワや汚れを除去する技術では、例えばカーボン紙等により複写された原稿などでは文字等が薄く、シワや汚れとともに文字等の画像も除去されてしまい、適切な二値画像を得ることが困難であった。
【0003】
特許文献1では、グレースケールの入力画像から強度勾配値を算出し、画素ごとに、その画素を中心とするマトリクス内における強度勾配値の総計(GS)を算出する。さらに、GS、中心画素の強度値(Lc)、ユーザにより与えられた2つのパラメータ値(固定されたしきい値ITおよびGT)を用いて、二値画像を生成する。具体的には、GS≦GTの場合、Lc>ITの場合には該画素をホワイトとし、Lc≦ITの場合には該画素をブラックとする。また、GS>GTの場合、マトリクス内の最大値と最小値の平均値Lavg<Lcの場合には該画素をホワイトし、Lavg≧Lcの場合には該画素をブラックとする。これにより、特許文献1では、ノイズに対する耐性が高く、境界部分における擬似輪郭を低減できるとされている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開平8-214162号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、特許文献1のパラメータ値(GT、IT)は、その段落〔0024〕にも記載されているように、ユーザにより与えられた固定されたしきい値であり、原稿の状態にあわせてユーザが適切に設定する必要があった。このため、特許文献1では、ユーザが設定するパラメータ値によっては、適切な二値画像を得ることができなかった。このように、特許文献1の技術では、自動であらゆる状態の原稿に柔軟に対応できるものではなかった。
【0006】
例えば、シワのある原稿とシワのない原稿、コンテンツの濃度が濃い原稿とコンテンツの濃度が薄い原稿等のあらゆる状態の原稿が混在する場合、特許文献1の技術では、期待する結果を得ることができなかった。よって、特許文献1の技術では、印刷物、伝票、小切手などの各種の原稿をスキャナにより大量に読み取って電子化するような場合には、含まれる原稿の種類、状態によっては、期待する結果を得ることができなかった。
【0007】
本発明は、上記の課題を解決するためになされたものである。本発明は、あらゆる種類や状態の原稿に柔軟に対応し、シワや汚れがあったり、文字等のコンテンツが薄い等の原稿であっても、適切な二値画像を得ることができる仕組みを提供することである。
【課題を解決するための手段】
【0008】
本発明は、入力された多値の入力画像データから二値画像データを生成する画像処理装置であって、前記入力画像データに対し所定のエッジ検出処理を適用した際の各画素における出力値であるエッジレベルを検出してエッジレベルデータを生成するエッジレベル検出手段と、前記入力画像データの明度ごとに、該明度に対応する各画素のエッジレベルを平均したエッジレベル平均を算出する算出手段と、前記明度ごとのエッジレベル平均が極大となる明度であって、所定のコンテンツ率を満たす明度を取得する取得手段と、前記取得手段が取得した明度を第1しきい値、該明度に対応するエッジレベル平均を第2しきい値に決定する決定手段と、前記第1しきい値及び前記第2しきい値を用いて前記入力画像データから二値画像データを生成する二値化手段と、を有し、前記二値化手段は、前記入力画像データの画素ごとに、対象画素に対応するエッジレベルデータと前記第2しきい値を比較してエッジ近傍の画素か否かを判定し、エッジ近傍でないと判定された場合は該対象画素の画像データを前記第1しきい値を用いて二値化し、エッジ近傍であると判定された場合は該対象画素の画像データを該対象画素の周囲の所定範囲内に含まれる画素の明度に基づく第3しきい値を用いて二値化する、ことを特徴とする。
【発明の効果】
【0009】
本発明によれば、あらゆる種類や状態の原稿に柔軟に対応し、シワや汚れがあったり、文字等のコンテンツが薄い等の原稿であっても、適切な二値画像を得ることができる。
【図面の簡単な説明】
【0010】
図1】本実施形態を示す画像処理装置を適用可能な画像読取システムの一例を示す図。
図2】スキャナの一実施形態を示すシートフィードスキャナの構成例を示す図。
図3】スキャナの制御構成の一例を示すブロック図。
図4】PCの構成の一例を示すブロック図。
図5】PCで動作するアプリケーションとスキャナドライバの構成の一例を示す図。
図6】第1実施形態の画像処理の一例を示すフローチャート。
図7】第1実施形態の画像処理の一例を示すフローチャート。
図8】本実施形態の周囲画素エッジレベル加算処理を説明する図。
図9】明度ごとのエッジレベルの平均値を示すグラフの一例を示す図。
図10】第2実施形態の画像処理の一例を示すフローチャート。
図11】第2実施形態の画像処理の一例を示すフローチャート。
図12】第2実施形態の画像処理の一例を示すフローチャート。
図13】スキャナに設けられる画像処理部の構成の一例を示すブロック図。
図14】第4実施形態の画像処理の一例を示すフローチャート。
図15】第5実施形態における極大値明度取得処理の一例を示すフローチャート。
図16】スキャナに設けられる画像読取センサの構成を説明する図。
図17】第6実施形態の画像処理の一例を示すフローチャート。
【発明を実施するための形態】
【0011】
以下、発明を実施するための形態について図面を用いて説明する。
以下、画像読取装置と、この画像読取装置に接続可能な情報処理装置とを備えた画像読取システムについて説明する。
【0012】
図1は、本発明の一実施形態を示す画像処理装置を適用可能な画像読取システムの一例を示す図である。
図1において、スキャナ100は、原稿から画像データを読取る画像読取装置である。スキャナ100は、パーソナルコンピュータ(PC)200と通信可能に接続されている。スキャナ100とPC200とは、例えばUSBインターフェース等を介して接続されていてもよいし、ネットワークを介して接続される構成でもよい。なお、ネットワークは有線、無線のいずれでもよい。パーソナルコンピュータ(PC)200は、スキャナ100を制御する情報処理装置である。
【0013】
以下、図2を参照して、スキャナ100の構成及び動作について説明する。
図2は、スキャナ100の一実施形態を示すシートフィードスキャナの構成例を示す図である。本実施形態では、積載された原稿(以下「シート」という)を順次スキャンしていくシートフィードスキャナを用いて説明を行う。
【0014】
図2に示すように、スキャナ100は、自動原稿給送装置(以下「ADF」という)101を備える。シート積載台1にはシートが複数枚積載されており、シート積載台1は昇降自在に構成されている。シート積載台駆動モータ(不図示)は、シート積載台1を昇降させる。シート検知センサ3は、シート積載台1に積載されたシートがシート取込位置にあることを検知する。シート積載検知センサ12は、シート積載台1のシート積載面1aにシートが積載されていることを検知する。また、原稿跳ね上げ検知センサ35は、シート積載面1aに直交する方向に並ぶ複数のセンサを備え、シート積載台1に積載されているシートの跳ね上がりを検知する。例えば、原稿跳ね上げ検知センサ35は、ステイプル留め等された原稿がシート積載台1に積載されて給紙された場合などに生じる原稿の跳ね上がりを検知することができる。これにより、ステイプル留め等された原稿の給紙を中止するなどの制御が可能となる。
【0015】
シートピックアップ部の一例としてのピックアップローラ4は、シート積載台1上のシートをシート積載台1から送り出す。ピックアップローラ駆動モータ(不図示)は、ピックアップローラ4を、シートを取り込む方向に回転させる。ピックアップローラ4は、シート取込位置、及び、シート取込位置よりも上方の退避位置に移動可能である。ピックアップローラ4は、シートを取り込む際にはシート取込位置に移動され、取り込みが終わったら退避位置に移動される。ピックアップローラ4は、後述する分離ローラ対42による分離給送が確実に行われるための補助的な役割を担っている。シート積載台1上のシートをピックアップローラ4によって分離ローラ対42のニップ部へ送り込めば、分離ローラ対42による分離給送は確実に行える。
【0016】
分離ローラ対42において、給送ローラ6は、給送モータ(不図示)によってシートを搬送方向下流側に給送する方向(給送方向)に回転するよう駆動されている。分離ローラ7は、シートを搬送方向上流側に押し戻す方向に回転する回転力を、不図示のトルクリミッタ(スリップクラッチ)を介して、分離モータ(不図示)から常時受けている。
【0017】
給送ローラ6と分離ローラ7との間にシートが1枚存在するときは、上述のトルクリミッタが伝達する分離ローラ7がシートを上流側に押し戻す方向の回転力の上限値より、給送ローラ6によって下流側に送られるシートと分離ローラ7との間の摩擦力によってシートが下流側に給送される方向への回転力が上回る。このため、分離ローラ7は、給送ローラ6に追従して回転する。
【0018】
一方、給送ローラ6と分離ローラ7との間にシートが複数枚存在するときは、分離ローラ7はシートを上流側に押し戻す方向の回転をローラ軸から受け、最も上位のシート以外が下流側に搬送されないようにしている。
【0019】
このように、給送ローラ6がシートを下流側に給送する作用と、分離ローラ7のシートを下流側に搬送されないようにする作用とによって、シートが重なって給送ローラ6と分離ローラ7との間に形成されるニップ部(給送ローラ6と分離ローラ7との接触部分)に送り込まれた場合でも、最も上のシートのみ下流側に給送され、それ以外のシートは下流側に搬送されないようになる。これにより、重なったシートが分離給送される。
【0020】
給送ローラ6と分離ローラ7とは、一対の分離ローラ対42(シート分離部)を構成する。なお、本実施形態では、分離ローラ対42を使用しているが、分離ローラ対42の代わりに分離ローラと給送ローラのどちらか一方をベルトにした、分離ベルトローラ対を使用してもよい。また、分離ローラを分離パッドに置き換え、シートに当接することで下流側へ複数枚のシートが搬送されることを防ぐようにしてもよい。また、分離ローラ7を回転させずに分離パッドのようにシートに当接させるように使用してもよい。
【0021】
このように構成されたピックアップローラ4、給送ローラ6、分離ローラ7などからなるシートピックアップ部によって、シート積載台1に積載されたシートが1枚ずつに分離されて、スキャナ100内部に取り込まれる。
【0022】
また、分離されたシートが通過する位置(すなわち分離ローラ対42の下流側)に重送検知センサ30を備えることで、シート分離部によってシートが一枚ずつに分離できているかを検知することができる。
【0023】
搬送モータ(不図示)は、分離後のシートを、画像読取センサ14、15によってシートの画像の読み取りが行われる画像読取位置まで搬送し、さらに排出位置まで搬送するため、その他のローラ(シート搬送部)を駆動する。また、搬送モータは、シートの読み取りに最適な速度や、シートの解像度等の設定に応じてシートの搬送速度を変更できるよう各ローラを駆動する。
【0024】
ニップ隙間調整モータ(不図示)は、給送ローラ6と分離ローラ7との隙間、或いは分離ローラ7に対してシートを介して給送ローラ6が圧接する圧接力(ニップ圧)を調整する。これにより、シートの厚みに適合した隙間、或いは圧接力が調整され、シートを分離することができる。
【0025】
レジストクラッチ(不図示)は、搬送モータの回転駆動力をレジストローラ18(シート搬送部)に伝達、又は当該伝達を遮断する。レジストローラ17、18で構成される第1レジストローラ対の回転を停止することにより、給送されるシートの先端をレジストローラ対のニップ部に突き当てて、シートの斜行を補正する。
【0026】
レジストローラ20、21で構成される第2レジストローラ対、搬送ローラ22、23で構成される搬送ローラ対、搬送ローラ24、25で構成される搬送ローラ対、排紙ローラ26、27で構成される排紙ローラ対は、シートを搬送し、最終的に排出積載部44に対して搬送する。排紙センサ16は、搬送されたシートの通過を検知する。上ガイド板40と下ガイド板41との2つのガイド板は、分離ローラ対、レジストローラ対、各搬送ローラ対及び排紙ローラ対により搬送されるシートを案内する。
【0027】
レジスト前センサ32は、第1レジストローラ対17、18の上流側に配設され、給送されるシートを検知する。レジスト後センサ34は、第2レジストローラ対20、21の下流側に配設され、搬送されるシートを検知する。さらに、レジスト中センサ33は、第1レジストローラ対17、18の下流側で且つ第2レジストローラ対20、21の上流側に配設され、搬送されるシートを検知する。
【0028】
レジスト後センサ34によってシートが検知されると、制御部(後述するCPU306)によって画像読取センサ14、15に対し画像の読み取り指示が出され、搬送されるシートの画像が読み取られる。なお、画像読取センサ14、15にはそれぞれプラテンローラ14a、15aが設けられ、シートを画像読取センサ14、15に密着させながら読み取りを行うことができる。画像読取センサ14、15によって読み取られたシートの画像は、不図示のインターフェース部を介して情報処理装置などの外部装置に対して送信される。
【0029】
図3は、スキャナ100の制御構成の一例を示すブロック図である。
A/D変換部(ADC)301a、301bは、ラインイメージセンサ(図2の画像読取センサ14、15)の出力信号に対し、増幅や黒レベルクランプなどのアナログ処理を施した後、デジタルデータ(画像データ)に変換する。画像処理部302は、ラインイメージセンサ14、15およびA/D変換部301a、301bなどの制御と、A/D変換部301a、301bから出力された画像データへの各種の画像処理の実行を行う。画像処理部302は、内部に画像データを記憶する画像処理バッファを有する。
【0030】
I/F304は、外部ホスト装置(PC200等)と通信するためのインターフェースである。I/F304は、信号ケーブル305を介してPC等の外部ホスト装置と接続される。例えばI/F304は、USBインターフェース等である。なお、I/F304は、USBインターフェースや有線LANインターフェースなどの有線インターフェースであってもよいし、無線LAN、ワイヤレスUSB、BLUETOOTH(登録商標)、NFCなどの無線インターフェースであってもよい。
【0031】
CPU306は、スキャナ100の制御を司る制御部である。画像処理部302とCPU306とは、バス307を介して接続されている。CPU306は、画像処理部302を介してRAM303やROM310にアクセスする。
ROM310は、プログラムや各種データを記憶する。
RAM303は、CPU306のワークメモリとして機能する。
【0032】
駆動部309は、ピックアップローラ4、給送ローラ6、分離ローラ7等の各種負荷を駆動するためのモータ等である。モータドライバ308は、CPU306からの指示に基づいて駆動部309を制御する制御回路である。
【0033】
図4は、スキャナ100と接続される外部ホスト装置の一例であるパーソナルコンピュータ(PC)200の構成の一例を示すブロック図である。
CPU406は、コンピュータプログラムに基づいてPC200の各ユニットを統括的に制御する。CPU406は、後述する図5に示すアプリケーション501やスキャナドライバ502に従って、スキャナ100を制御する。
【0034】
ROM401は、ファームウエアなどの制御プログラムを記憶する不揮発性の記憶ユニットである。RAM402は、ワークエリアとして機能する揮発性の記憶ユニットである。ハードディスクドライブ(HDD)403は、大容量の記憶ユニットである。表示装置405は、ユーザに対して各種情報を表示するための表示ユニットである。操作部407は、ポインティングデバイスやキーボードなどの入力ユニットである。通信IF404は、USBなどの通信ユニットである。CPU406は、通信IF404を介してスキャナ100と通信する。例えば通信IF404は、USBインターフェース等である。なお、通信IF404は、USBインターフェースや有線LANインターフェースなどの有線インターフェースであってもよいし、無線LAN、ワイヤレスUSB、BLUETOOTH(登録商標)、NFCなどの無線インターフェースであってもよい。
【0035】
図5は、PC200で動作するアプリケーションとスキャナドライバの構成の一例を示す図である。
【0036】
アプリケーション501およびスキャナドライバ502は、PC200にインストールされているプログラムモジュールである。すなわち、アプリケーション501およびスキャナドライバ502は、PC200のCPU406がHDD403に格納されたプログラムを必要に応じてRAM402にロードして実行することにより実現される。
【0037】
アプリケーション501は、スキャナドライバ502と情報の入出力が可能なプログラムであり、具体的には、画像編集プログラムや、アルバムプログラム、文章編集プログラムなどが挙げられる。なおアプリケーション501は、これらに限定するものではなく、スキャナドライバ502から画像のデータを受け取るアプリケーションであればどのようなものでもよい。
【0038】
アプリケーション501は、スキャナドライバ502を介してスキャナ100を制御したり、スキャナドライバ502から受け取った画像データに画像処理を実行したりする。よって、アプリケーション501およびCPU406は、スキャナドライバ502から画像のデータを受け取って画像処理を実行する画像処理手段として機能する。
【0039】
アプリケーション501とスキャナドライバ502との間、および、スキャナドライバ502とスキャナ100との間は、それぞれ決められたプロトコルで通信を行う。例えば、アプリケーション501とスキャナドライバ502はTWAIN規格で決められたプロトコルで通信を行うものとする。このTWAIN規格で決められたプロトコルは、スキャナドライバ502と通信するためのドライバインターフェースであり、アプリケーションプログラムと通信するためのアプリケーションインターフェースの一例でもある。
【0040】
スキャナドライバ502とスキャナ100との間は、USB(Universal Serial Bus)規格で決められたプロトコルで通信を行っているものとして説明を行う。このように、USB規格で決められたプロトコルは、画像読取装置と通信するためのインターフェースである。なお、これらの通信規格、プロトコルに限定するものではなく、他のプロトコルが採用されてもよい。なお、これらのプロトコルを介して、制御コマンドや画像データが、スキャナ、ドライバ間で送受信されることになる。
なお、スキャナドライバ502は、スキャナ100から入力される原稿画像(多値の入力画像データ)に対して後述する図6図7等に示す画像処理を行って二値画像データを生成してアプリケーション501に出力する機能を有する。
【0041】
図6図7は、第1実施形態の画像処理の一例を示すフローチャートである。これらのフローチャートは、スキャナドライバ502内で実行される。すなわち、これらのフローチャートの処理は、PC200のCPU406がHDD403に格納されたプログラムを必要に応じてRAM402にロードして実行することにより実現される。なお、本実施形態では入力画像は8ビットグレースケール画像として説明するが、フルカラー画像であってもよい。なお、フルカラー画像が入力された場合、CPU406は、該フルカラー画像から8ビットグレースケール画像を生成し、該8ビットグレースケール画像を入力画像として、本フローチャートの処理を実行するものとする。
【0042】
まずS601において、CPU406は、入力画像の解像度の解像度を下げ(例えば解像度を1/2に変更し)、低解像度画像を生成する。解像度の解像度を下げることにより、処理速度を向上させることが可能となるとともに、スパイクノイズ対策としても効果が見込める。また、解像度変換の必要が無ければ、解像度変換を行わなくても良い。例えば、入力画像の解像度が所定の解像度よりも低い場合には、スパイクノイズよりも低解像度化による文字などの潰れへの影響が大きい為、解像度を下げなくても良い。特に、入力画像の解像度に応じて解像度変換の倍率を変更することが好ましい。
【0043】
次にS602において、CPU406は、上記S601で生成された低解像度画像に対してエッジ検出処理(例えばソーベルフィルタを用いたエッジ検出処理)を行い、各画素におけるエッジレベルを算出して、エッジレベルデータを生成する。ここで、エッジレベルとは、エッジ検出処理を適用した画像における各画素の出力値を示しており、エッジ検出処理後の画像における出力値が大きいことが、エッジレベルが高いことに対応する。
【0044】
次にS603において、CPU406は、上記S601で生成された低解像度画像の明度(本実施形態では0~255)ごとの画素数を算出する。
次にS604において、CPU406は、上記S602でエッジレベルを算出した各画素に対して、その画素の周囲の所定範囲に含まれる画素のエッジレベル(例えば5×5画素のデータ)を加算して該加算結果を該画素の周囲画素エッジレベルとする(周囲画素エッジレベル加算処理)。このとき、CPU406は、エッジレベル検出手段として機能している。以下、図8を用いて説明する。
【0045】
図8は、本実施形態の周囲画素エッジレベル加算処理を説明する図である。
図8において、800は、エッジレベルデータの全体を示し、各矩形は各画素を示す。
801を注目画素とすると、注目画素801の周囲の画素802(図中の網掛け部分。3×3の画素データ)のエッジレベルを加算して、該加算結果を注目画素801の周囲画素エッジレベル803とする。
同様に、811を注目画素とすると、注目画素811の周囲の画素812のエッジレベルを加算して、該加算結果を注目画素811の周囲画素エッジレベル813とする。
さらに、821を注目画素とすると、注目画素821の周囲の画素822のエッジレベルを加算して、該加算結果を注目画素821の周囲画素エッジレベル823とする。
同様の処理を、エッジレベルデータ800の全画素について行い、周囲画素エッジレベルのデータ890を生成する。
なお、図8では、簡略化して3×3画素のデータを加算する例を示しているが、これに限定されるものではない。
【0046】
次にS605において、CPU406は、S603で算出した画素数が1個以上の上記低解像度画像での明度ごとに、該明度である各画素における周囲画素エッジレベル(上記S604で算出)を合計し、該合計値を上記S603で算出した画素数で除算して、明度ごとのエッジレベルの平均値を求める。各画素における周囲画素エッジレベルの値は、近くにエッジが多い画素ほど大きくなる。よって、エッジレベルの平均値が大きい明度が、エッジ近傍に多くある画素の明度と考えられる。逆に、エッジレベルの平均値が小さい明度は、周囲にエッジが少ない画素の明度と考えられる。
図9は、明度ごとのエッジレベルの平均値を示すグラフの一例を示す図である。
【0047】
次にS606において、CPU406は、上記S605で求めた明度ごとのエッジレベルの平均値において、極大値に対応する明度を求める。図9の例では複数の極大値が存在する。ここで求めた極大値のいずれかが、コンテンツ領域とそれ以外の領域との閾値に対応するものと考えられる。
【0048】
次にS607において、CPU406は、上記S603で算出した明度ごとの画素数に基づいて、所定のコンテンツ率に対応する明度を求める。具体的には、明度X以下の画素数が、上記低解像度画像の全体の画素数に対する所定のコンテンツ率以下となるような明度Xを求める。ここでは、例えば、所定のコンテンツ率=「20%」とする。なお、コンテンツ率とは、入力画像に占めるコンテンツ(背景以外のデータ)の割合を示している。すなわち、コンテンツ率=「20%」の場合には、入力画像の画素全体における20%が文字情報などを表す画素であることを意味する。また、ある明度におけるコンテンツ率とした場合には、ある明度以下となる明度が入力画像全体に占める割合を示す。すなわち、明度「100」のコンテンツ率とした場合には、入力画像全体の画素数に対し、明度「100」以下となる画素数が占める割合を%表示したものを示すこととなる。
【0049】
次にS608において、CPU406は、上記S606で求めた極大値のうち、対応する明度が上記所定のコンテンツ率を超えない最大のものを選択し、その明度を求める。この場合、CPU406は、上記S606で求めた極大値に対応する明度のうち、小さいものから順に、所定のコンテンツ率に対応する明度と比較し、所定のコンテンツ率を超えない最大の明度を求める。なお、所定のコンテンツ率を超えないものが存在しない場合、最初の極大値に対応する明度を選択するものとする。ここで、図9の例においては、所定のコンテンツ率=「20%」としたことで、明度X=「65」となる。これを、符号901を付して図示してある。なお、所定のコンテンツ率は読み取る原稿によって異なっても良い。図9の例では、明度「26」に極大値「624.887409」、明度「54」に極大値「485.550585」が存在し、所定のコンテンツ率に対応する明度が「65」である。よって、明度「54」がコンテンツ率「20%」に対応する明度「65」を超えない最大の極大値に対応する明度となる。
【0050】
次にS609において、CPU406は、上記S608で求めた明度を「画像全体における明度のしきい値(T1(第1しきい値))」、該明度に対応するエッジレベルの平均値を「エッジレベルの閾値(T2(第2しきい値))」と決定する。図9の例では、明度「54」が「画像全体における明度のしきい値(T1)」、明度「54」に対応する極大値「485.550585」が「エッジレベルの閾値(T2)」として決定される。
【0051】
次にS610において、CPU406は、上記S604で生成した周囲画素エッジレベルデータの解像度を、入力画像の解像度に合わせて上げて(例えば解像度を2倍に変更し)、高解像度エッジレベルデータを生成する。解像度を2倍にする場合、例えば、補完する画素の右上、左上、右下、左下の4画素の平均を使用して、画素を補完するものとする。なお、解像度の変更方法は、これに限定されるものではなく、どのような方法を用いてもよい。なお、エッジレベルデータを作成する際に解像度変換を行わなかった場合においては、ここで解像度変換を行う必要は無い。
【0052】
次にS611において、CPU406は、高解像度エッジレベルデータ、画像全体における明度のしきい値(T1)、エッジレベルの閾値(T2)を用いて、入力画像を二値化する(二値化処理)。この二値化処理の詳細は、図7に示す。
【0053】
以下、図7を用いて、S611の二値化処理について詳細に説明する。
まずS701において、CPU406は、入力画像から未処理の対象画素を1画素、所定の順序で選択し(以下「注目画素」という)、S702に処理を進める。
【0054】
S702において、CPU406は、注目画素の高解像度エッジレベルと、エッジレベルの閾値(T2)を比較することにより、注目画素がエッジ近傍部か非エッジ近傍部かを判断する。そして、注目画素の高解像度エッジレベルがエッジレベルの閾値(T2)未満と判定した場合(S702でNoの場合)、CPU406は、注目画素が非エッジ近傍部であると判断し、S703に処理を進める。
【0055】
S703において、CPU406は、注目画素の明度と、画像全体における明度のしきい値(T1)を比較する。そして、注目画素の明度が画像全体における明度のしきい値(T1)未満であると判定した場合(S703でNoの場合)、CPU406は、S704に処理を進める。
S704において、CPU406は、注目画素を「黒」と決定し、「黒」に対応する値をRAM402の二値画像格納領域に格納し、S710に処理を進める。
【0056】
一方、上記S703において、注目画素の明度が画像全体における明度のしきい値(T1)以上と判定した場合(S703でYesの場合)、CPU406は、S705に処理を進める。
S705において、CPU406は、注目画素を「白」と決定し、「白」に対応する値をRAM402の二値画像格納領域に格納し、S710に処理を進める。
【0057】
また、上記S702において、注目画素の高解像度エッジレベルがエッジレベルの閾値(T2)以上と判定した場合(S702でYesの場合)、CPU406は、注目画素がエッジ近傍部であると判断し、S706に処理を進める。
【0058】
S706において、CPU406は、注目画素の周囲の所定範囲内の画素(例えば7×7の画素)の明度を参照し、その最大値と最小値の平均値(第3しきい値)を算出する。
次にS707において、CPU406は、注目画素の明度と上記S706で算出した平均値を比較する。そして、注目画素の明度が上記平均値以下と判定した場合(S707でNoの場合)、CPU406は、S708に処理を進める。
S708において、CPU406は、注目画素を「黒」と決定し、「黒」に対応する値をRAM402の二値画像格納領域に格納し、S710に処理を進める。
【0059】
一方、S707において、CPU406は、注目画素の明度が上記平均値より大きいと判定した場合(S707でYesの場合)、CPU406は、S709に処理を進める。
S709において、CPU406は、注目画素を「白」と決定し、「白」に対応する値をRAM402の二値画像格納領域に格納し、S710に処理を進める。
【0060】
S710において、CPU406は、入力画像の全ての画素について、上記S701~S709の処理を行ったか否かを判定する。そして、まだ未処理の画素があると判定した場合(S710でNoの場合)、CPU406は、S701に処理を戻し、次の画素の処理に移行する。
【0061】
一方、上記S710において、CPU406は、入力画像の全ての画素について処理済みと判定した場合(S710でYesの場合)、CPU406は、S711に処理を進める。
S711において、CPU406は、RAM402の二値画像格納領域に格納された二値画像データを、HDD403に保存し、本二値化処理を終了する。
【0062】
なお、本実施形態では、所定のコンテンツ率を超えない最大の極大値と、それに対応する明度を用いてしきい値T1,T2を決定したが、所定のコンテンツ率に対応する明度にもっとも近い極大値に対応する明度を用いてしきい値T1,T2を決定することも可能である。
【0063】
また、所定のコンテンツ率については固定値を用いてもよいし、例えば伝票、小切手、帳票等のような原稿の種類をユーザに選択させ、例えば伝票が選択された場合は20%、小切手が選択された場合は15%、帳票が選択された場合は25%のように、所定のコンテンツ率を設定する設定手段を有するようにしてもよい。これらの原稿の種類ごとの所定のコンテンツ率は、ユーザが調整可能なように構成しても良い。具体的には、画像読取装置によって原稿を読み取る際の動作モードをユーザが選択することで原稿の読み取りを開始し、その際に、選択された動作モードに応じたコンテンツ率を自動的に設定しても良いし、それをユーザが調整可能に構成しても良い。また、入力画像から原稿の種別等を判別して、該判別された原稿種別に基づいて所定のコンテンツ率を決定するようにしてもよい。
【0064】
以上の処理により、あらゆる種類や状態の原稿に柔軟に対応し、シワや汚れがあったり、文字等のコンテンツが薄い等の原稿であっても、適切な二値画像を得ることができる。また、しきい値T1,T2を生成する際に元の入力画像から解像度を下げたデータを利用することで、処理を軽減することができる。
【0065】
〔第2実施形態〕
上記第1実施形態では、解像度を下げた状態で画像全体のしきい値(T1)とエッジレベルのしきい値(T2)を決定した後に、周囲画素エッジレベルデータを元の解像度に戻して二値化する構成について示した。第2実施形態では、解像度を下げた状態で画素ごとのしきい値を決定し、該画素ごとのしきい値を元の解像度に適用可能なように変更し、その閾値を用いて二値化する構成について説明する。この構成により、さらなる処理速度の向上等の効果が見込める。
【0066】
図10図13は、第2実施形態の画像処理の一例を示すフローチャートである。これらのフローチャートは、スキャナドライバ502内で実行される。すなわち、これらのフローチャートの処理は、PC200のCPU406がHDD403に格納されたプログラムを必要に応じてRAM402にロードして実行することにより実現される。なお、図6図7と同一のステップについては同一のステップ番号を付し、説明を省略する。
【0067】
第2実施形態では、S609において、「画像全体のしきい値(T1)」及び「エッジレベルの閾値(T2)」を決定した後、CPU406は、S1010に処理を進める。
S1010において、CPU406は、低解像度画像の画素ごとに、二値化用のしきい値を決定する(画素ごとのしきい値決定処理)。この処理により、低解像度画像と同一解像度のしきい値データが生成される。なお、S1010の詳細は図11に示す。このしきい値データは、低解像度画像と同じ画素数を有するしきい値画像データとして処理されても良い。
【0068】
次にS1011において、CPU406は、上記S1010で生成された低解像度画像の画素ごとのしきい値データの解像度を、入力画像の解像度に合わせて上げて(例えば解像度を2倍に変更し)、高解像度しきい値データを生成する。解像度を2倍にする場合、例えば、補完する画素の右上、左上、右下、左下の4画素のしきい値の平均を使用して、画素ごとのしきい値を補完するものとする。なお、解像度の変更方法は、これに限定されるものではなく、どのような方法を用いてもよい。
【0069】
次にS1012において、CPU406は、上記S1011で生成した高解像度しきい値データを用いて、入力画像を二値化する(二値化処理)。この二値化処理の詳細は、図12に示す。
【0070】
以下、図11を用いて、S1010の画素ごとのしきい値決定処理について詳細に説明する。
まずS1101において、CPU406は、図10のS601で生成した低解像度画像から未処理の画素を1画素、所定の順序で選択し(以下「注目画素」という)、S1102に処理を進める。
【0071】
S1102において、CPU406は、注目画素の周囲画素エッジレベルと、エッジレベルの閾値(T2)を比較することにより、注目画素がエッジ近傍部か非エッジ近傍部かを判断する。そして、注目画素の周囲画素エッジレベルがエッジレベルの閾値(T2)未満と判定した場合(S1102でNoの場合)、CPU406は、注目画素が非エッジ近傍部であると判断し、S1103に処理を進める。
S1103において、CPU406は、注目画素の二値化用のしきい値を「画像全体における明度のしきい値(T1)」に決定し、該決定されたしきい値をRAM402の二値化用しきい値領域に格納し、S1106に処理を進める。
【0072】
一方、上記S1102において、注目画素の周囲画素エッジレベルがエッジレベルの閾値(T2)以上であると判定した場合(S1102でYesの場合)、CPU406は、注目画素がエッジ近傍部であると判断し、S1104に処理を進める。
【0073】
S1104において、CPU406は、注目画素の周囲の画素(例えば7×7の画素)の明度を参照し、その最大値と最小値の平均値を算出する。
次にS1105において、CPU406は、注目画素の二値化用のしきい値を上記S706で算出した平均値に決定し、該決定されたしきい値をRAM402の二値化用しきい値領域に格納し、S1106に処理を進める。
【0074】
S1106において、CPU406は、低解像度画像の全ての画素について、上記S1101~S1105の処理を行ったか否かを判定する。そして、まだ未処理の画素があると判定した場合(S1106でNoの場合)、CPU406は、S1101に処理を戻し、次の画素の処理に移行する。
【0075】
一方、上記S1106において、CPU406は、低解像度画像の全ての画素について処理済みと判定した場合(S1106でYesの場合)、CPU406は、本画素ごとのしきい値の決定処理を終了する。以上の処理により、低解像度画像の画素ごとのしきい値データが、RAM402の二値化用しきい値領域に格納される。
【0076】
以下、図12を用いて、S1012の二値化処理について詳細に説明する。
まずS1201において、CPU406は、入力画像から未処理の画素を1画素、所定の順序で選択し(以下「注目画素」という)、S1202に処理を進める。
【0077】
S1202において、CPU406は、注目画素の明度と、注目画素の高解像度しきい値データを比較する。そして、注目画素の明度が注目画素の高解像度しきい値データ以下と判定した場合(S1202でNoの場合)、CPU406は、S1203に処理を進める。
S1203において、CPU406は、注目画素を「黒」画素と決定し、「黒」画素に対応する値をRAM402の二値画像格納領域に格納し、S1205に処理を進める。
【0078】
一方、上記S1202において、注目画素の明度が注目画素の高解像度しきい値データより大きいと判定した場合(S1202でYesの場合)、CPU406は、S1204に処理を進める。
S1204において、CPU406は、注目画素を「白」画素と決定し、「白」画素に対応する値をRAM402の二値画像格納領域に格納し、S1205に処理を進める。
【0079】
S1205において、CPU406は、入力画像の全ての画素について、上記S1201~S1204の処理を行ったか否かを判定する。そして、まだ未処理の画素があると判定した場合(S1205でNoの場合)、CPU406は、S1201に処理を戻し、次の画素の処理に移行する。
【0080】
一方、上記S1205において、CPU406は、入力画像の全ての画素について処理済みと判定した場合(S1205でYesの場合)、CPU406は、S1206に処理を進める。
S1206において、CPU406は、RAM402の二値画像格納領域に格納された二値画像データを、HDD403に保存し、本二値化処理を終了する。
【0081】
以上の処理により、あらゆる種類や状態の原稿に柔軟に対応し、シワや汚れがあったり、文字等のコンテンツが薄い等の原稿であっても、適切な二値画像をより高速に取得することができる。
【0082】
〔第3実施形態〕
上記実施形態では、PC200側で二値化処理を行ったが、スキャナ100側で二値化処理を行ってもよい。以下、その実施形態について説明する。
例えば図3に示したスキャナ100の画像処理部302及びCPU306が共同して、図6図7又は図10図12に示した処理を行い、二値画像データをスキャナ100からPC200に出力する。なお、CPU306の処理は、CPU306がROM310に格納されたプログラムを必要に応じてRAM303にロードして実行することにより実現される。
【0083】
ここで、画像処理部302の構成について説明する。
図13は、図3に示したスキャナ100の画像処理部302の概略構成の一例を示す図である。なお、図13では、本実施形態に関連する部分を中心に記載し、その他については省略してある。
【0084】
画像処理バッファ1300へは、図3に示したA/D変換部301から出力された画像データが順次格納される。
処理ブロック1301は、フルカラーデータの場合に、R、G、Bに分離した面順次のデータを点順次のデータに再構成する入力データ処理部である。
処理ブロック1302は、光源の光量分布のばらつきや、画像読み取りデバイスの受光素子のばらつき、暗出力のオフセットを補正するシェーディング補正を行う。
処理ブロック1303は、平均化処理部、入力マスキング処理部、γ補正処理部を有する。
【0085】
処理ブロック1304は、上述した図6又は図10のS601、S610やS1011の処理を行う解像度変換部、S602の処理を行うエッジ検出部等を有する。
処理ブロック1305は、S603の処理を行う明度ごとの画素数算出部等を有する。
処理ブロック1306は、S604の処理を行う周囲画素エッジレベル加算部、S605の処理を行うエッジレベル平均算出部等を有する。
処理ブロック1307は、図7のS1007や図11のS1104の処理を行う周囲画素最大・最小平均算出部等を有する処理ブロックである。
【0086】
例えば、第2実施形態の例では、CPU306は、画像処理部302から周囲画素エッジレベルデータ、明度ごとのエッジレベル平均データ、明度ごとの画素数等のデータを取得し、画像全体における明度のしきい値(T1)やエッジレベルのしきい値(T2)を決定する。また、CPU306は、画像処理部302から注目画素の周囲の画素の最大値と最小値の平均値等のデータを取得し、画素ごとのしきい値データを生成する。画像処理部302では、CPU306により生成された画素ごとのしきい値データから高解像度しきい値データを生成する。さらに、CPU306は、画像処理部302から高解像度しきい値データを取得し、入力画像の二値化を行って、I/F305を介してPC200に二値画像データを出力する。
【0087】
以上の処理により、あらゆる種類や状態の原稿に柔軟に対応し、シワや汚れがあったり、文字等のコンテンツが薄い等の原稿であっても、スキャナ100側において適切な二値画像を生成することができる。また、スキャナ100側で二値画像を生成することにより、PC200側のスキャナドライバ502の負荷を軽減することができる。
【0088】
以上の処理は一例であり、二値化処理の一部のみをスキャナ100側で行うようにしても良い。
【0089】
〔第4実施形態〕
本実施形態では、原稿の両面を処理する場合であって、特に原稿の片面が白紙等であった場合の課題を解決する構成について説明する。
例えば、原稿の片面が白紙等(記載されているコンテンツが極めて少ない状態を含む)であった場合、該白紙等の面から上述の実施形態の画像処理により得られたしきい値(T1,T2)は、シワや汚れなどに基づいて算出された可能性がある。このため、このしきい値(T1,T2)を用いて、その面の二値化を行うと(図6のS610~S611又は図10のS1010~S1012)と、紙のシワや汚れなどが強調されてしまう場合がある。
【0090】
よって、本実施形態では、表面に対して算出されたエッジレベルのしきい値(T2)と、裏面に対して算出されたエッジレベルのしきい値(T2)とを比較し、その差が所定値よりも大きい場合、エッジレベルのしきい値(T2)が大きい方の面のしきい値(T1,T2)を、もう一方の面のしきい値(T1,T2)としても採用するものとする。例えば、表面のしきい値(T1,T2)を白紙ページの裏面にも使用する。
これにより、例えば、原稿の片側が白紙等であった場合でも、紙のシワや汚れなどを強調しないように二値画像を生成することができる。
【0091】
以下、図14を用いて詳細に説明する。
図14は、第4実施形態の画像処理の一例を示すフローチャートである。これらのフローチャートは、スキャナドライバ502内で実行される。すなわち、これらのフローチャートの処理は、PC200のCPU406がHDD403に格納されたプログラムを必要に応じてRAM402にロードして実行することにより実現される。なお、本実施形態では、CPU406は、両面読取を指定してスキャナ100に画像読取を開始させるものとする。
【0092】
S1401において、CPU406は、表面の入力画像に対して、図6又は図10のS601~S609の処理を行って、画像全体のしきい値(T1)、エッジレベルの閾値(T2)を決定する。
またS1402において、CPU406は、裏面の入力画像に対して、図6又は図10のS601~S609の処理を行って、画像全体のしきい値(T1)、エッジレベルの閾値(T2)を決定する。なお、これらの処理は説明済みのため詳細は省略する。
【0093】
次にS1403において、CPU406は、「表面のエッジレベルの閾値(T2)」と「裏面のエッジレベルの閾値(T2)」との差と所定値とを比較する。そして、表裏のエッジレベルの閾値(T2)の差が所定値以下と判定した場合(S1402でNoの場合)、CPU406は、S1407に処理を進める。
【0094】
一方、上記S1403において、表裏のエッジレベルの閾値(T2)の差が所定値より大きいと判定した場合(S1402でYesの場合)、CPU406は、S1404に処理を進める。
【0095】
S1404において、CPU406は、「表面のエッジレベルの閾値(T2)」と「裏面のエッジレベルの閾値(T2)」とを比較する。そして、「表面のエッジレベルの閾値(T2)」が「裏面のエッジレベルの閾値(T2)」以上と判定した場合(S1404でYesの場合)、CPU406は、S1405に処理を進める。
S1405において、CPU406は、表面のしきい値(T1,T2)」を裏面にも採用し、S1407に処理を進める。
【0096】
一方、上記S1404において、CPU406は、「表面のエッジレベルの閾値(T2)」が「裏面のエッジレベルの閾値(T2)」より小さいと判定した場合(S1404でNoの場合)、CPU406は、S1406に処理を進める。
S1406において、CPU406は、裏面のしきい値(T1,T2)」を表面にも採用し、S1407に処理を進める。
【0097】
S1407において、CPU406は、表面及び裏面に対してそれぞれ図6のS610~S611、又は、図10のS1010~S1012の処理を行って、二値画像を生成するように制御する。なお、この処理は説明済みのため詳細は省略する。
以上の処理により、例えば、原稿の片側が白紙等であった場合でも、紙のシワや汚れなどを強調しないように二値画像を生成することができる。
【0098】
なお、上述の記載では、「表面のエッジレベルの閾値(T2)」と「裏面のエッジレベルの閾値(T2)」とを用いた制御について説明したが、表面と裏面のしきい値に限定されるものではない。例えば、「現ページ」と「前ページ」を「表面」と「裏面」の代わりに用いてもよい。
【0099】
〔第5実施形態〕
本実施形態では、原稿の下地が黒等で、コンテンツが白等の高い明度であった場合の課題を解決する構成について説明する。
以下、本実施形態における図6又は図10のS608の「コンテンツ率を満たす極大値に対応する明度を取得する処理」(以下「極大値明度取得処理」)について説明する。
図15は、第5実施形態における極大値明度取得処理の一例を示すフローチャートである。これらのフローチャートは、スキャナドライバ502内で実行される。すなわち、これらのフローチャートの処理は、PC200のCPU406がHDD403に格納されたプログラムを必要に応じてRAM402にロードして実行することにより実現される。
【0100】
S1501において、CPU406は、入力画像(又は低解像度画像)中の黒画素と白画素の画素数を取得する。なお、黒画素、白画素の判定方法は、例えば黒画素しきい値を設け、CPU406は、黒画素しきい値よりも小さい明度の画素を黒画素、黒画素しきい値以上の明度の画素を白画素と判定するようにする。なお、白画素数、黒画素数は、例えば画像の入力時等のタイミングで、CPU406が予めカウントしておいてもよい。
【0101】
次にS1502において、CPU406は、白画素の画素数が黒画素の画素数よりも多いか否かを判定する。そして、白画素数が黒画素数よりも多いと判定した場合(S1502でYesの場合)、CPU406は、S1503に処理を進める。
S1503において、CPU406は、図6又は図10のS606で求めた極大値に対応する明度のうち、小さいものから順に、所定のコンテンツ率に対応する明度と比較し、所定のコンテンツ率を超えない最大の明度を求め、本極大値明度取得処理を終了する。
【0102】
一方、上記S1502において、黒画素数が白画素数よりも多いと判定した場合(S1502でNoの場合)、CPU406は、S1504に処理を進める。
S1504において、CPU406は、図6又は図10のS606で求めた極大値に対応する明度のうち、大きいものから順に、所定のコンテンツ率に対応する明度と比較し、所定のコンテンツ率を下回らない最小の明度を求め、本極大値明度取得処理を終了する。
これにより、例えば、下地が黒等の原稿からでも、適切に二値画像を生成することができる。
【0103】
なお、画像が入力された場合に、CPU406は、入力画像について、黒画素数と白画素数とを比較し、黒画素数が白画素数よりも多いと判定した場合、入力画像を白黒反転し、該判定画像を入力画像として以降の処理を行うようにしてもよい。また、例えばS601の前に入力画像の背景色の色判定処理を行い、黒系の背景色に白系の文字で記載されている画像であると判定した場合には、入力画像の白黒を反転するのなどしてから上記の処理を行い、終了後に入力画像の白黒を戻しても良い。
また、入力画像に対し、ユーザが黒地に白文字(明度の低い背景に明度の高いコンテンツ)の画像であることを指定可能に構成し、当該指定がなされると、S1502の判定でNoとなるようにしても良い。
【0104】
〔第6実施形態〕
本実施形態のスキャナ100の画像読取センサ14、15は、両側照射と片側照射の切り替えが可能である。以下、画像読取センサ14を例に説明するが、画像読取センサ15も同様の構成である。
【0105】
図16は、画像読取センサ14の構成を説明する図である。
図16(a)に示すように、画像読取センサ14は、ラインイメージセンサ1600を有し、さらにラインイメージセンサ1600の両側に光源1601、光源1602を有する原稿の読取部である。
図16(b)に示すように、光源1601は、光を原稿Sに対して原稿搬送方向の下流側且つ上方から、1631のように斜めに照射する。また、光源1602は、光を原稿Sに対して原稿搬送方向の上流側且つ上方から、1632のように斜めに照射する。
【0106】
光源1601を用いた片側照射を行う場合、図16(c)に示すように、原稿Sにシワ1610等がある場合、光源1601から照射される光1631により、原稿Sに1620のような影が現れやすい。なお、光源1601を用いて説明したが、光源1602を用いた片側照射についても同様である。
【0107】
これに対して、光源1601及び光源1602を用いた両側照射を行う場合、図16(b)に示すように、原稿Sにシワ1610等がある場合でも、光源1601及び光源1602から照射される光により原稿Sに影が現れにくくなる。なお、両側照射とは、ラインイメージセンサに関して対称な位置に配置される一対の光源を設けて、該一対の光源を用いて原稿に光を当てる方式をいう。
以上のように、片側照射は、両側照射の場合と比べると読取画像に影が現れやすくなる傾向がある。
【0108】
よって、CPU406は、両側照射で読み取った入力画像と、片側照射で読み取った入力画像とで、それぞれエッジレベルのしきい値(T2)を求める。そして、CPU406は、片側照射のエッジレベルのしきい値(T2)が、両面照射のエッジレベルのしきい値(T2)よりも大きい場合には、シワのある原稿と判定して、次原稿以降の原稿搬送速度を遅くする(低下させる)ように制御する。例えば、CPU406は、スキャナ100に対して、次原稿から原稿搬送速度を遅くする指示を送信する。
これにより、シワのある原稿において発生しやすい紙詰まりや原稿の破損等を抑えることができる。
【0109】
例えば、表面を両側照射、裏面を片側照射で読み取り、上述のような制御を行ってもよい。
また、表面、裏面でなくとも、表面を読み取る画像読取センサ14を2つ設け、表面を両側照射、片側照射でそれぞれ読み取り、上述のような制御を行ってもよい。
また、画像読取センサ14を用いて、1ライン又は複数ラインごとに、交互に、両側照射と片側照射とを切り替えて読み取りを行い、上述のような制御を行ってもよい。
【0110】
以下、図17を用いて詳細に説明する。
図17は、第6実施形態の画像処理の一例を示すフローチャートである。これらのフローチャートは、スキャナドライバ502内で実行される。すなわち、これらのフローチャートの処理は、PC200のCPU406がHDD403に格納されたプログラムを必要に応じてRAM402にロードして実行することにより実現される。なお、本実施形態では、CPU406は、例えば表面を両側照射での読取り、裏面を片側照射での読取りを指定してスキャナ100に画像読取を開始させるものとする。
【0111】
S1701において、CPU406は、両側照射で読み取った画像(例えば表面画像)に対して、図6又は図10のS601~S609の処理を行って、画像全体のしきい値(T1)、エッジレベルの閾値(T2)を決定する。
またS1702において、CPU406は、片側照射で読み取った画像(例えば裏面画像)に対して、図6又は図10のS601~S609の処理を行って、画像全体のしきい値(T1)、エッジレベルの閾値(T2)を決定する。
【0112】
次にS1703において、CPU406は、「片側照射のエッジレベルの閾値(T2)」と「両側照射のエッジレベルの閾値(T2)」とを比較する。そして、「片側照射のエッジレベルの閾値(T2)」が「両側照射のエッジレベルの閾値(T2)」より大きいと判定した場合(S1703でYesの場合)、CPU406は、S1704に処理を進める。
S1704において、CPU406は、次原稿からの搬送速度を低速に設定し、S1705に処理を進める。
【0113】
一方、上記S1703において、「片側照射のエッジレベルの閾値(T2)」が「両側照射のエッジレベルの閾値(T2)」以下と判定した場合(S1703でNoの場合)、CPU406は、S1705に処理を進める。
【0114】
S1705において、CPU406は、図6のS610~S611、又は、図10のS1010~S1012の処理を行って、二値画像を生成するように制御する。
以上の処理により、シワのある原稿において発生しやすい紙詰まりや原稿の破損等を抑えることができる。
【0115】
なお、上述したように、表面、裏面でなくとも、表面を読み取る画像読取センサ14を2つ設け、表面を両側照射、片側照射でそれぞれ読み取り、上述のような制御を行ってもよい。
また、画像読取センサ14を用いて、1ライン又は複数ラインごとに、交互に、両側照射と片側照射とを切り替えて読み取りを行い、上述のような制御を行ってもよい。
なお、本実施形態は原稿の片面を読み取るように指定された場合に特に有効である。すなわち、原稿画像の読み取り対象面とは異なる面に面する画像読取センサによって、読み取り対象面とは異なる両側照射、片側照射のいずれかの方法によって読み取り、エッジレベルの閾値(T2)を算出することが好ましい。
なお、1枚目の原稿にのみ、この処理を行い、2枚目以降の原稿は第1~第5実施形態で示したような処理を行ってもよい。
【0116】
なお、上記第4~6実施形態についても、第3実施形態のように、スキャナ100側で処理を行ってもよい。例えば図3に示したスキャナ100の画像処理部302及びCPU306が共同して、上記第4~6実施形態で示した処理を行い、二値画像データをスキャナ100からPC200に出力するようにしてもよい。
【0117】
以上示したように、各実施形態によれば、あらゆる種類や状態の原稿に柔軟に対応し、シワや汚れがあったり、文字等のコンテンツが薄い等の原稿であっても、適切な二値画像を得ることができる。
【0118】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【0119】
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
【0120】
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【0121】
また、上記実施例における入力画像に対して、明るさの補正処理などを行っても良い。例えば、黒が潰れるようにガンマ補正処理を行っても良い。この補正処理を行う事で、白領域における濃度差が大きく、黒領域における濃度差が小さくなる。そうすることで、黒領域がエッジ近傍部と判定されにくく、白領域がエッジ近傍部と判定されやすくなる。この処理の結果、白地に薄い文字で記載されているものが残り易く、黒領域内の汚れ等による濃度変化は一様な黒地(ベタ)であるとして二値化された画像を出力することができる。
【0122】
また、上記実施例においては、図6図7等に示す画像処理を行って二値画像データを生成する際に、グレースケール画像を用いて処理を行っていたが、これに限られない。例えば、入力画像がカラー画像であった場合に、エッジ検出など、カラー画像のままで処理可能である部分の処理をカラー画像のままで行い、二値化処理の部分にグレースケール画像を用いることなどが可能である。従って、多値の入力画像に対し、必要に応じてグレースケール画像を用いて二値化処理を実行することが可能である。
【0123】
なお、上記実施例においては、入力画像としてスキャナ100で読み取った原稿画像を二値化処理するものについて説明したが、本発明はこれに限られず、他の機器から送信された画像を入力画像として、本発明の二値化処理を適用しても構わない。
その場合、所定のコンテンツ率についても、例えば伝票、小切手、帳票等のような入力画像の種類をユーザに選択させたり、入力画像やそれに紐づいた情報から他の機器が判別してもよく、例えば伝票が選択された場合は20%、小切手が選択された場合は15%、帳票が選択された場合は25%のように、所定のコンテンツ率を設定してもよい。これらの入力画像の種類ごとの所定のコンテンツ率は、ユーザが調整可能なように構成しても良い。
【符号の説明】
【0124】
100 スキャナ
200 パーソナルコンピュータ(PC)
302 画像処理部
406 CPU
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17