以下、本発明の実施形態について、図面を参照しながら説明する。
図1は、本発明の一実施形態に係る画像読取装置の構成例を示すブロック図である。画像読取装置1は、例えばスキャナーやMFP(Multifunction Printer)であり、スキャン機能等を有する。
画像読取装置1は、制御部2と、読取部3と、表示部4と、入力部5と、通信部6と含む。制御部2は、画像取得部21と、第1の低解像度変換部22と、第2の低解像度変換部23と、マスク生成部24と、第1の補正部25と、第2の補正部26と、解析部27と、条件設定部28と、画像処理部29とを含む。
制御部2は、画像読取装置1の動作を統合的に制御する。制御部2は、例えば、CPU(Central Processing Unit)等の演算装置、RAM(Random Access Memory)等の揮発性の記憶装置、ROM(Read Only Memory)等の不揮発性の記憶装置、制御部2と他のユニットを接続するインターフェイス回路、これらを互いに接続するバス、などを備えるコンピューターによって実現することができる。制御部2は、画像処理回路など各種の処理回路を備えていてもよい。制御部2は、ASIC(Application Specific Integrated Circuit)などによって実現されてもよい。
上記の制御部2の機能(画像取得部21、第1の低解像度変換部22、第2の低解像度変換部23、マスク生成部24、第1の補正部25、第2の補正部26、解析部27、条件設定部28、画像処理部29)の少なくとも一部は、例えば、CPUがROMに格納された所定のプログラムをRAMに読み出して実行することによって実現することができる。当該所定のプログラムは、例えば持ち運び可能な記憶媒体から読み出して画像読取装置1にインストールしたり、ネットワーク上のサーバーからダウンロードして画像読取装置1にインストールしたりすることができる。制御部2の機能の少なくとも一部は、例えば、画像処理回路等の処理回路によって実現してもよい。制御部2の機能の少なくとも一部は、例えば、CPU及び処理回路の両方によって実現されてもよい。
読取部3は、制御部2からの指示に従って原稿から画像データを読み取り、制御部2に出力する。読取部3は、例えば、イメージセンサーを用いたスキャンエンジンであり、機械部品、センサー、モーター、駆動回路、制御回路等により構成される。本実施形態の読取部3は、例えば、カラー画像やグレイスケール画像(以下、「グレイ画像」と呼ぶ)を出力することができる。また、読取部3は、例えば、200dpi、300dpi、600dpi等の所定の解像度、あるいはユーザーによって選択された解像度の画像データを出力することができる。読取部3が使用する解像度を、以下では、読取解像度と呼ぶ。
表示部4は、制御部2の処理結果を、文字、グラフ、表、アニメーション、その他の画像として表示する。表示部4は、例えば、LCD(Liquid Crystal Display)、OLED(Organic Electroluminescence Display)などの出力装置である。
入力部5は、ユーザーの操作入力を受け付け、操作に応じた操作信号を制御部2に出力する。入力部5は、例えば、キー、タッチセンサー、タッチパネルなどの入力装置である。
通信部6は、外部装置と情報を送受信する。通信部6は、例えば、無線LAN(Local Area Network)に準拠した通信モジュールである。画像読取装置1は、通信部6に替えてあるいは加えて、有線LANに準拠した通信部を備えていてもよい。
画像取得部21は、読取解像度(例えば600dpi)の読取画像データ(カラー画像又はグレイ画像)を読取部3から取得する。なお、画像取得部21は、読取画像データから原稿に対応する領域を切り出し、この領域を読取画像データとして出力する。
以下では、画像取得部21がグレイ画像を取得する場合を中心に説明する。
第1の低解像度変換部22は、後述する第2の低解像度変換部23から出力される第2の解像度(例えば50dpi)の画像データを、第2の解像度よりも低い第1の解像度(例えば25dpi)の画像データに変換する。
第2の低解像度変換部23は、画像取得部21から出力される読取画像データを、読取解像度よりも低い第2の解像度の画像データに変換する。
マスク生成部24は、第1の低解像度変換部22から出力される第1の解像度の画像データに基づいて、当該画像データの輝度ムラ(二次光源効果による輝度ムラと原稿の姿勢による輝度ムラの両方を含む)を補正するための輝度ムラマスクを生成する。なお、輝度ムラは、二次光源効果や原稿の姿勢によって発生する画像データの階調値のムラに相当するものであり、カラー画像の場合に発生する色ムラを含むものである。
第1の補正部25は、マスク生成部24により生成された第1の解像度の輝度ムラマスクを読取解像度となるように拡大し、当該拡大した輝度ムラマスクを用いて読取画像データを補正する。
第2の補正部26は、マスク生成部24により生成された第1の解像度の輝度ムラマスクを第2の解像度となるように拡大し、当該拡大した輝度ムラマスクを用いて、第2の低解像度変換部23から出力される第2の解像度の画像データを補正する。
解析部27は、第2の補正部26から出力される第2の解像度の補正画像データを解析し、解析データを生成する。解析部27は、例えば補正画像データを構成する画素の階調値のヒストグラム(階調分布特性)を生成する。
条件設定部28は、解析部27から出力される解析データ(例えば階調値のヒストグラム)に基づいて、後述する画像処理部29により実行される画像処理(例えば、二値化処理、階調変換処理、鮮鋭化処理等)に用いられる画像処理条件(例えば、二値化閾値、階調変換用トーンカーブ、鮮鋭化処理の強度等)を設定する。
画像処理部29は、第1の補正部25から出力される読取解像度の補正画像データに対して、条件設定部28から出力される画像処理条件に基づく所定の画像処理を実行する。所定の画像処理は、例えば、二値化処理、階調変換処理、鮮鋭化処理等である。
制御部2は、複数の異なる画像処理を実行するために複数の画像処理部29を有していてもよい。この場合、条件設定部28は、各画像処理部29に使用される画像処理条件を設定すればよい。
なお、最後の画像処理を終えた画像処理部29は、読取解像度の画像処理後の画像データを、例えば、RAMやROM等の記憶部、通信部6を介して通信可能な外部の機器等に出力する。画像読取装置1が印刷部を有する場合、制御部2は、画像データを印刷部に出力して印刷させてもよい。
上述の画像読取装置1の動作例について、以下に説明する。
図2は、輝度ムラの補正処理の一例を示す図である。当該補正処理は、例えば、読取部3からの読取画像データの出力が開始されると、開始される。
画像取得部21は、読取解像度の読取画像データを読取部3から取得する。画像取得部21は、取得した読取画像データを、第2の低解像度変換部23と第1の補正部25に出力する。
第2の低解像度変換部23は、画像取得部21から出力された読取画像データを、読取解像度よりも低い第2の解像度の画像データに変換する(縮小する)。解像度変換の方法は、特に限定されないが、例えば、複数の画素を含むブロック毎に平均値を求める方法を使用することができる。また、第2の低解像度変換部23は、第2の解像度の画像データを、第1の低解像度変換部22と第2の補正部26に出力する。
画像データの特徴の解析(ヒストグラムの生成等)は、低解像度の画像データで行うことができる。また、読取画像データを低解像度に変換することで、ノイズ等の影響を少なくした画像データが得られ、正確な画像の特徴の解析が可能となる。つまり、この第2の解像度の画像データは、解析部27が当該画像データから特徴を解析するために必要な情報を含む。
第1の低解像度変換部22は、第2の低解像度変換部23から出力された第2の解像度の画像データを、第2の解像度よりも低い第1の解像度の画像データに変換する。また、第1の低解像度変換部22は、第1の解像度の画像データを、マスク生成部24に出力する。
読取画像の輝度ムラは、画像の特徴を解析する場合よりもさらに低解像度の画像データから算出することができる。つまり、第1の解像度の画像データは、マスク生成部24が輝度ムラマスクを生成するために必要な情報を含む。
マスク生成部24は、第1の低解像度変換部22から出力された第1の解像度の画像データに基づいて、当該画像データの輝度ムラ(二次光源効果による輝度ムラと原稿の姿勢による輝度ムラの両方を含む)を補正するための輝度ムラマスクを生成する。また、マスク生成部24は、生成した第1の解像度の輝度ムラマスクを、第1の補正部25と第2の補正部26に出力する。この処理については、図3を用いて後に詳述する。
第1の補正部25は、マスク生成部24から出力された第1の解像度の輝度ムラマスクを、読取解像度の輝度ムラマスクに変換する(拡大する)。解像度変換の方法は、特に限定されないが、例えば、バイリニア法(線形補完)を用いることができる。輝度ムラが発生している領域における輝度の変化は、通常緩やかであるため、線形補完を使っても比較的高い精度の輝度ムラマスクを得ることができる。従って、第1の補正部25は、より高品質な結果を得ることができる方法(例えばバイキュービック法)ではなく、バイリニア法(線形補完)を用いる。これにより、解像度変換の演算量を低減することができる。
また、第1の補正部25は、拡大した読取解像度の輝度ムラマスクを用いて、画像取得部21から出力された読取画像データを補正する。第1の補正部25は、例えば、読取画像データの各画素の階調値に、輝度ムラマスクの対応する画素位置のマスク値を掛けることで、読取画像データ全体を補正する。また、第1の補正部25は、読取解像度の補正画像データを画像処理部29に出力する。
第2の補正部26は、マスク生成部24から出力された第1の解像度の輝度ムラマスクを、第2の解像度の輝度ムラマスクに変換する(拡大する)。解像度変換の方法は、特に限定されないが、例えば、二アレストネイバー法(最近傍補完)を用いることができる。最近傍補完を使っても画像の特徴を解析する用途における充分な精度の補正を行うことができる。従って、第2の補正部26は、より高品質な結果を得ることができる方法(例えばバイキュービック法やバイリニア法)ではなく、二アレストネイバー法を用いる。これにより、解像度変換の演算量を低減することができる。
また、第2の補正部26は、拡大した第2の解像度の輝度ムラマスクを用いて、第2の低解像度変換部23から出力された第2の解像度の画像データを補正する。第2の補正部26は、例えば、画像データの各画素の階調値に、輝度ムラマスクの対応する画素位置のマスク値を掛けることで、画像データ全体を補正する。また、第2の補正部26は、第2の解像度の補正画像データを解析部27に出力する。
解析部27は、第2の補正部26から出力された第2の解像度の補正画像データを解析し、解析データを生成する。解析部27は、例えば補正画像データを構成する画素の階調値のヒストグラム(階調分布特性)を生成する。また、解析部27は、生成した解析データを、条件設定部28に出力する。
条件設定部28は、解析部27から出力された解析データに基づいて、画像処理部29により実行される所定の画像処理(例えば、二値化処理、階調変換処理、鮮鋭化処理等)に用いられる画像処理条件(例えば、二値化閾値、階調変換用トーンカーブ、鮮鋭化処理の強度等)を設定する。また、条件設定部28は、設定した画像処理条件を、画像処理部29に出力する。
画像処理部29は、第1の補正部25から出力された読取解像度の補正画像データに対して、条件設定部28から出力された画像処理条件に基づいて、所定の画像処理を実行する。また、画像処理部29は、所定の画像処理後の読取解像度の画像データを、記憶部等に出力する。
図3は、マスク生成処理の一例を示す図である。図3は、図2のマスク生成部24の詳細を示す。マスク生成部24は、フィルター演算部241と、二次光源マスク生成部242と、二次光源マスク処理部243と、最大階調値算出部244と、副走査マスク生成部245と、マスク合成部246とを含む。
フィルター演算部241は、第1の低解像度変換部22から出力された第1の解像度の画像データにおける二次光源効果の影響量を計算する。以下、二次光源効果の影響量の計算方法の一例を説明する。
図4は、二次光源効果を説明する図である。二次光源効果は、例えば、LED(Light-emitting Diode)照明等の一次光源からの光が原稿の読取個所Pの近傍で反射し、その反射光がさらに別の部材(例えば原稿台ガラスの底面)で反射して読取個所Pを照らすことにより起きる。イメージセンサーにより読み取られる読取個所Pの階調は、二次光源からの反射光に影響される。
図4に示す例の場合、二次光源効果の影響が発生する原稿上の範囲は、原稿台ガラスの厚み寸法と屈折率に基づいて求めることができる。例えば、厚み寸法=2.8mm、屈折率=1.5の場合、二次光源効果の影響が発生する範囲は、読取個所Pを中心とする半径5mmの円である。また、二次光源効果の影響の度合は、画像読取装置の読取構造固有の特性(発生範囲内の光量分布、原稿台ガラスの反射率等)に応じて決定される。従って、この特性を定義したフィルターを用いることで、二次光源効果の影響量を計算することができる。
図5は、フィルターの一例を説明する図である。フィルターは、例えば、N×Nの画像の各画素位置に対応するフィルター係数を有する。ここで、フィルターの大きさであるN×Nは、第1の解像度と二次光源効果の影響が発生する範囲の半径とによって決定される。第1の解像度が25dpi、二次光源効果の影響が発生する範囲の半径が5mmである場合、N×Nは、11×11である。フィルターの中心位置は、注目画素に対応する。各フィルター係数は、二次光源効果の影響の度合いを示している。図5の例では、フィルターの中心に向かってフィルター係数が大きくなるように設定されている。もちろん、フィルターの形状、各フィルター係数の値、注目画素の位置等は、図示した例に限られない。
フィルター演算部241は、第1の解像度の画像データを構成する各画素(注目画素)について、上述したフィルターを適用して、当該画像データと同サイズの影響量データを生成する。例えば、フィルター演算部241は、各画素(注目画素)毎に次の処理を実行する。フィルター演算部241は、フィルターが適用される画像データ上の領域内の各画素の階調値と、対応する画素位置のフィルター係数とを掛け合わせ、これらの積の総和を注目画素に対する影響量として算出する。フィルター演算部241は、上述のようにして算出した各注目画素の影響量を示す影響量データを、二次光源マスク生成部242に出力する。
図3の説明に戻る。二次光源マスク生成部242は、フィルター演算部241から出力された影響量データに基づいて、二次光源効果の影響(二次光源効果による輝度ムラ)を補正するための二次光源マスクを生成する。例えば、二次光源マスク生成部242は、影響量データを構成する各画素位置の影響量を階調反転する(例えば所定の値から影響量データに一定の係数を掛けた値を引く)ことによって、二次光源マスクを生成する。なお、影響量データおよび二次光源マスクは、第1の解像度の画像データと同じサイズである。また、二次光源マスク生成部242は、生成した二次光源マスクを、二次光源マスク処理部243とマスク合成部246に出力する。
二次光源マスク処理部243は、二次光源マスク生成部242から出力された第1の解像度の二次光源マスクを用いて、第1の低解像度変換部22から出力された第1の解像度の画像データを補正する。二次光源マスク処理部243は、例えば、画像データの各画素の階調値に、二次光源マスクの対応する画素位置のマスク値の値を掛けることで、画像データ全体を補正する。また、二次光源マスク処理部243は、第1の解像度の補正画像データを最大階調値算出部244に出力する。
最大階調値算出部244は、二次光源マスク処理部243から出力された第1の解像度の補正画像データにおける、副走査方向(原稿が搬送される方向、あるいはキャリッジが移動する方向)の階調値の変動を補正するための最大階調値を算出する。以下、副走査方向の階調値の変動の計算方法の一例を説明する。
図6は、副走査方向の輝度ムラを説明する図である。副走査方向の輝度ムラは、例えば、原稿の両端部が原稿台ガラスから浮くことによって発生する。イメージセンサーにより読み取られた原稿の画像データの両端部には、例えば影が発生する。図6(A)は、二次光源マスクが適用された後の第1の解像度の補正画像データに発生している影の例を示している。このように、原稿台ガラスに対する原稿の姿勢によって輝度ムラが発生する。
上記の現象により発生する輝度ムラは、例えば次のように補正することができる。例えば図6(B)に示すように、各ライン(主走査方向の画素列)の画素の階調値の最大値Liを求める。また、これらのラインの最大値Liのうちの最大値Lmaxを特定する。そして、ラインごとに、当該ラインの各画素の階調値に対してLmax/Liを掛ける。
最大階調値算出部244は、第1の解像度の補正画像データの各ラインについて、当該ラインの画素の階調値の最大値Liを算出する。また、最大階調値算出部244は、各ラインの最大値Liを、副走査マスク生成部245に出力する。
図3の説明に戻る。副走査マスク生成部245は、最大階調値算出部244から出力された各ライン(副走査方向の位置)の最大値Liに基づいて、副走査方向の輝度ムラ(原稿の姿勢にる輝度ムラ)を補正するための副走査マスクを生成する。例えば、副走査マスク生成部245は、各ラインの最大値Liのうちの最大値Lmaxを特定する。また、副走査マスク生成部245は、ラインごとにLmax/Liを算出し、各ラインのLmax/Liの値が並ぶ形の副走査マスクを生成する。なお、副走査マスクは、副走査方向の1列のデータ集合であり、第1解像度の画像データの副走査方向のサイズと同じである。副走査マスク生成部245は、生成した副走査マスクを、マスク合成部246に出力する。
マスク合成部246は、二次光源マスク生成部242から出力された二次光源マスクに、副走査マスク生成部245から出力された副走査マスクを合成して、第1の解像度の輝度ムラマスクを生成する。
図7は、二次光源マスクと副走査マスクの合成の例を説明する図である。二次光源マスクは、主走査方向と副走査方向を有する2次元のデータであり、第1の解像度の画像データと同じサイズである。副走査方向マスクは、副走査方向を有する1次元のデータであり、第1の解像度の画像データの副走査方向と同じサイズである。マスク合成部246は、例えば、二次光源マスクの列(副走査方向のマスク値の列)ごとに、当該列の各マスク値に、副走査マスクの対応する画素位置のマスク値を掛ける。ここで、二次光源マスクの各画素位置は、輝度ムラマスクの各画素位置に対応する。マスク合成部246は、上述のようにして算出した各マスク値の積を、対応する輝度ムラマスクの画素位置に設定する。マスク合成部246は、生成した第1の解像度の輝度ムラマスクを、第1の補正部25と第2の補正部26に出力する。
なお、本実施形態の画像読取装置1は、カラー画像(例えば、R(赤)、G(緑)、B(青))を処理することもできる。この場合、制御部2は、各色の画像データについて個別に処理を実行すればよい。ただし、各色に対して共通の副走査マスクを用いてもよい。これは、副走査方向の輝度ムラは、どの色ついても同様に発生するためである。例えば、最大階調値算出部244は、3色の第1の解像度の補正画像データを合成(例えば、平均値、重み付け加算等)し、この合成画像データに基づいて、各ラインの最大値Liを算出すればよい。また、副走査マスク生成部245は、この算出された各ラインの最大値Liに基づいて、3色共通に使用する副走査マスクを生成すればよい。マスク合成部246は、3色の二次光源マスクの各々に対して、共通の副走査マスクを合成すればよい。
以上、本発明の一実施形態について説明した。
例えば、本実施形態の画像読取装置1は、読取画像データを第1の解像度の画像データに変換し、この画像データを用いて輝度ムラマスクを生成し、拡大した輝度ムラマスクを用いて読取画像データを補正する。これにより、画像読取装置1は、解像度変換をしない場合と比べて、少ない演算量およびメモリー量で輝度ムラマスクを生成し、輝度ムラを補正することができる。また例えば、画像読取装置1は、予め設定された輝度ムラマスクを用いるのではなく、読み取りの都度輝度ムラマスクを生成する。これにより、画像読取装置1は、各読取画像データの輝度ムラの状態に応じて高精度に輝度ムラを補正することができる。また例えば、画像読取装置1は、輝度ムラマスクを生成するために、読み取りの前にプレスキャンを実行していない(2回原稿を読み取らない)。これにより、画像読取装置1は、複数の原稿を連続して読み取る場合でも、より短時間で各読取画像データの輝度ムラを補正することができる。
また例えば、画像読取装置1は、第1の解像度の画像データに基づいて二次光源マスクと副走査マスクを生成し、これらのマスクを合成することで輝度ムラマスクを生成する。これにより、画像読取装置1は、二次光源効果による輝度ムラと原稿姿勢による輝度ムラの両方を1つのマスクで補正できるので、少ない演算量およびメモリー量で輝度ムラを補正することができる。また例えば、画像読取装置1は、第1の解像度の画像データに二次光源マスクを適用した補正画像データに基づいて、副走査マスクを生成する。これにより、より正確な補正を行うことができるマスクデータを得ることができる。
また例えば、画像読取装置1は、第2の解像度の画像データを、拡大した輝度ムラマスクを用いて補正し、この補正画像データに基づいて画像処理条件を設定する。これにより、画像読取装置1は、少ない演算量およびメモリー量で画像処理条件を設定することができる。
本発明は、上述の実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様で実施することが可能である。例えば、上記の各実施形態には、下記のような変形を加えてもよい。また、実施形態及び各変形例は、適宜2つ以上を組み合わせてもよい。
例えば、画像読取装置1は、予め設定された(例えば予め記憶部に格納した)副走査マスクを用いてもよい。この副走査マスクには、例えば、画像読取装置1の読取構造に応じた値を設定すればよい。この変形例では、マスク生成部24は、二次光源マスク処理部243、最大階調値算出部244、および副走査マスク生成部245を有さなくてよい。マスク合成部246は、二次光源マスクに、記憶部から取得した副走査マスクを合成すればよい。この変形例によれば、輝度ムラマスクの生成処理の演算量を減らすことができる。副走査方向の輝度ムラは、画像読取装置1の読取構造により大きく影響されるため、読み取りの都度副走査マスクを生成しなくても、期待される精度で輝度ムラを補正することができる。なお、画像読取装置1は、例えば、入力部5又は通信部6を介して、副走査マスクを都度生成するか、所定の副走査マスクを用いるかのモード選択をユーザーから受け付けてもよい。マスク生成部24は、ユーザーの選択に対応した処理を実行すればよい。
例えば、画像読取装置1は、第2の低解像度変換部23を有さなくてもよい。この変形例では、第1の低解像度変換部22は、画像取得部21から出力された読取画像データを第1の解像度(例えば、50dpi)に変換し、第1の解像度の画像データを、マスク生成部24と第2の補正部26に出力すればよい。第2の補正部26は、第1の解像度の輝度ムラマスクを用いて、第1の解像度の画像データを補正し、解析部27に出力すればよい。解析部27および条件設定部28は、第1の解像度に対応した処理を行えばよい。この変形例に係る画像読取装置1も、少ない演算量およびメモリー量で画像処理条件を設定することができる。なお、画像読取装置1は、例えば、入力部5又は通信部6を介して、2つの低解像度変換部を用いるか、1つの低解像度変換部を用いるかのモード選択をユーザーから受け付けてもよい。制御部2は、ユーザーの選択に対応した処理を実行すればよい。
上述の実施形態で説明した画像読取装置1の構成は、その構成を理解容易にするために主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。画像読取装置1の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、1つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。また、各構成要素の処理又は機能の分担は、本発明の目的及び効果を達成できるのであれば、上述したものに限られない。例えば、二次光源マスク生成部242は、フィルター演算部241を含んでいてもよい。また例えば、副走査マスク生成部245は、最大階調値算出部244を含んでいてもよいし、二次光源マスク処理部243および最大階調値算出部244の両方を含んでいてもよい。
上述の実施形態で説明した処理単位は、画像読取装置1の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。画像読取装置1の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、1つの処理単位がさらに多くの処理を含むように分割することもできる。さらに、上記の処理順序も、図示した例に限られるものではない。
本発明は、画像読取装置としてだけでなく、画像処理方法、画像処理プログラム、画像処理プログラムを格納した記録媒体、画像読取システム等のその他の形態によっても提供することができる。