JP4661754B2 - 画像処理装置および画像処理プログラム - Google Patents

画像処理装置および画像処理プログラム Download PDF

Info

Publication number
JP4661754B2
JP4661754B2 JP2006269685A JP2006269685A JP4661754B2 JP 4661754 B2 JP4661754 B2 JP 4661754B2 JP 2006269685 A JP2006269685 A JP 2006269685A JP 2006269685 A JP2006269685 A JP 2006269685A JP 4661754 B2 JP4661754 B2 JP 4661754B2
Authority
JP
Japan
Prior art keywords
original image
mask
pixel
reduced image
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006269685A
Other languages
English (en)
Other versions
JP2008092199A (ja
Inventor
智彦 長谷川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2006269685A priority Critical patent/JP4661754B2/ja
Priority to US11/864,251 priority patent/US8081839B2/en
Publication of JP2008092199A publication Critical patent/JP2008092199A/ja
Application granted granted Critical
Publication of JP4661754B2 publication Critical patent/JP4661754B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Facsimile Image Signal Circuits (AREA)

Description

本発明は、画像処理装置および画像処理プログラムに関し、特にレティネックス処理を高速且つ高精度に行うことができる画像処理装置および画像処理プログラムに関するものである。
逆光条件下で被写体が撮像された場合、被写体部分の画像は、詳細な態様が判別困難となるほど明度やコントラストの低い不明瞭な逆光画像となる。かかる逆光画像のみならず、露光の過不足や、撮像時のぶれやぼけ、ノイズ、光量不足などによる劣悪な画像を、画像処理によって明度やコントラストを向上させて画質を改良することが行われている。かかる画像処理の1手法として、レティネックス処理(Retinex処理)が知られている。
レティネックス処理は、高画質部分については元画像データを保持し、主に低画質部分の画質改良を行うものである。このレティネックス処理では、ガウスフィルタにより、元の画像の各画素データを周辺画素の画素データを反映させた値に補正し、その補正された画素データの自然対数から元の画像の反射率(リフレクタンス)成分データを算出し、元画像の画素成分で元の画像の画素データを除してイルミナンス成分データを算出する。つまり、元の画像を、反射率成分とイルミナンス成分との2の構成成分に分けるのである。そして、反射率成分と元画像の輝度からイルミナンス成分を算出し、イルミナンス成分に対してガンマ補正等を用いて、イルミナンス成分の明度や階調(コントラスト)を補正する処理を行った後、その補正されたイルミナンス成分を用いて元画像の輝度を補正することで、元の画像に対し逆光画像部分などの低画質部分の画質が改良された画像データを生成することができる。反射率成分を求めるには、反射率R(x,y)の正規化を行う。
ここで、図11を参照して、反射率R(x,y)の正規化について説明する。反射率R(x,y)は、次式により算出される。
Figure 0004661754
ここで、xは、横方向の座標を、yは、縦方向の座標を、I(x,y)は、座標(x,y)における強度値を、F(x,y)は、座標(x,y)のフィルタ係数を、*は、畳み込み演算(コンボリューション)をそれぞれ示し、この畳み込み演算により周辺平均輝度(周辺平均値)が求められる。なお、logは、eを底とする自然対数である。また、畳み込み演算では、マスクを構成する複数のフィルタ係数と画像を構成する画素値とが乗算され、その積が累算される。
図11は、ある静止画像について、上式により求められた反射率R(x,y)の最小値を0、最大値を255とする0から255の範囲の整数値に正規化し、各整数の出現頻度を集計したヒストグラムである。
このヒストグラムからメディアン値Mを求め、メディアン値から大きい側へ45%の画素数を含む範囲の上限値をU、メディアン値から小さい側へ45%の画素数を含む範囲の下限値をDとする。
UおよびDの値に対応するR(x,y)の値を、UpR、DownRとpとし、正規化反射率refle(x,y)は、R(x,y)の値がDownR以下の場合は、0.0とし、R(x,y)の値がUpR以上の場合は、1.0とし、R(x,y)の値がDownRより大きくUpRより小さい場合は、
Figure 0004661754
とする。
このようにしてrefle(x,y)が求められるので、クリップされる範囲(UpRとDownRとの間)を求めるため、R(x,y)を全画素分記憶しなければならない。尚かつ、R(x,y)は、対数演算により求まる数値であるので、小数点を用いて記録する必要があり、浮動小数点では、4バイト、倍精度実数の場合には8バイトで画素毎に記憶するため膨大な記憶容量が必要である。
特開2001−69525号公報(特許文献1)には、このレティネックス処理をRGBの各プレーンで独立に行った場合に、カラーバランスが崩れたり色ずれが発生するという問題点を解決するために、RGB値をYCbCrやYIQという輝度成分と色成分により構成される座標空間に変換し、輝度成分Yに対してのみレティネックス処理を施し、色成分を維持したまま、RGBに戻すという方法が開示されている。この方法を用いると輝度成分のみが調整され、色成分は調整されないのでカラーバランスが崩れたり色ずれが発生することがない。また、この方法では、輝度成分のみにレティネックス処理を行うので、RGBの各プレーンそれぞれにレティネックス処理を行う場合に比べ、計算量が少なく、高速で処理を実行することができとともに、R(x,y)を正規化するために、RGBそれぞれについて記憶する必要がなく、輝度のみについて記憶すればよいので、必要な記憶容量は少なくなる。
また、特許3731577号(特許文献2)には、このレティネックス処理の処理速度を高速にする方法が開示されている。この方法は、元画像を平均画素法などの方法により縮小画像(解像度が低い)を形成し、その縮小画像の各画素について周辺平均輝度を求めた周辺平均輝度画像(ボケ画像)を形成し、そのボケ画像を拡大した画像と元画像からレティネックス処理画像を形成し、更に、そのレティネックス処理画像と元画像とから出力画像を形成している。
特開2001−69525号公報 特許3731577号公報
しかしながら、従来の文献に開示された処理では、元画像の全画素について、それぞれ反射率を演算して記憶し、全画素分の反射率を得た後に、その反射率を集計して正規化パラメータを決定していたから、全画素分の反射率を記憶するための膨大な記憶容量が必要という問題点があった。また、従来の処理では、全画素分の反射率を演算してから正規化パラメータを決定し、その後、反射率を正規化して得られるレティネックス値によって画素値を補正し出力していたから、処理を開始してから画素値の出力開始までの時間が長いという問題点もあった。
本発明は、上記問題点を解決するためになされたものであり、レティネックス処理を高速且つ高精度に行うことができ、メモリ使用量を節約できる画像処理装置および画像処理プログラムを提供することを目的としている。
本発明者は、上記問題点を解決するために鋭意検討した結果、元画像の反射率を演算するのに先立って、縮小画像の反射率を取得し、その縮小画像の反射率を用いて正規化パラメータを決定することを想到した。正規化パラメータを求めるために、縮小画像を用いた方が、反射率を演算すべき画素の数を低減することができるので、メモリ使用量を小さくすることができる。また、正規化パラメータを事前に決定しておくことにより、元画像について演算された反射率は、他の画素の反射率の演算終了を待たずに、正規化して直ぐに出力することができるので、画像の出力開始までの時間が短縮し、処理を高速化することができる。
このように、縮小画像から正規化パラメータを導出することにより処理を高速化する場合、縮小画像を用いて得られる正規化パラメータと、元画像を用いて得られる正規化パラメータの差が大きいと画質が劣化するおそれがあるため、これらの値の差は小さいことが望ましい。
本発明者は、さらに検討を重ねた結果、縮小画像用マスクのカバー率と、元画像用マスクのカバー率を等しくすることで、縮小画像を用いた場合でも好適な正規化パラメータ(すなわち、元画像の反射率から得た正規化パラメータにより近い値)が得られ、高精度の出力結果が得られることを知見した。
図12を参照してより詳細に説明する。図12は、縮小画像用マスクと元画像用マスクとを模式的に示す図である。上述したように、各画素について反射率を求める際には、注目画素周辺の画素の値から得られる周辺平均輝度を求めるのであるが、その際に注目画素周辺の各画素の値は、各マスクが有するフィルタ係数により重み付けされる。カバー率を等しくするとは、図12に示すように、元画像において、注目画素にマスク中央を合わせたときに元画像用マスクが覆う面積の元画像全体に対する割合と、縮小画像において、注目画素にマスク中央を合わせたときに縮小画像用マスクで覆う面積の縮小画像全体に対する割合とを等しくすることをいう。換言すれば、元画像用マスクに対する縮小画像用マスクのサイズの比率を、元画像全体に対する縮小画像全体のサイズの比率に等しくすることをいう。
例えば、画像の縮小率が1/2であって、元画像用マスクが、元画像における64(8×8)個の画素を覆うサイズを有する場合、縮小画像用マスクを、縮小画像における16(4×4)個の画素を覆うサイズとすることにより、カバー率を等しくすることができる。このようにカバー率を等しくすることにより、1つの注目画素の反射率を演算する際に参照される範囲が一致するので、縮小画像の反射率を用いた場合でも好適な正規化パラメータが得られるのである。
カバー率を等しくするためには、縮小画像形成時と同じ縮小率で元画像用マスクを縮小し、縮小画像用マスクを生成すれば良い。しかしながら、そのようにすると、縮小率が極めて大きい場合、すなわち、元画像に対して縮小画像が極めて小さい場合、縮小画像用マスクが小さくなり過ぎて、適切な演算結果を得ることができなくなるという問題点が生じる。さらにこのような問題点は、以下に記載するような場合に特に顕著となる。
図13は、従来の元画像用マスクFと、その元画像用マスクFの縦方向長さと横方向長さを、それぞれ1/8に縮小して得られる縮小用マスクFsとを模式的に示す図である。図13に示した元画像用マスクFにおいて、フィルタ係数が対応づけられた座標をグレイ色で示し、フィルタ係数が対応づけられていない座標は白色で示す。このような元画像用マスクFによれば、元画像用マスクFで覆われる画素のうち、グレイ色で示す座標に対応した画素の値にはフィルタ係数が乗算され、周辺輝度に値が反映される。一方、白色で示す座標に対応した画素の値は、フィルタ係数が乗算されず、間引かれ、周辺輝度に値が反映されない。マスクで覆う領域内の全ての画素についてフィルタ係数を乗算し、畳み込み演算を行うと計算量が膨大になるので、適度にフィルタ係数を間引くことにより、計算量を削減することが行われている。
このように、元画像においては、周辺画素の全てを反映するのではなく、注目画素周辺の一部の画素の値が周辺平均輝度に反映されるのに対し、元画像用マスクFを単に1/8に縮小した縮小画像用マスクFsでは、全ての座標にフィルタ係数を有するから、全ての周辺画素の値が周辺平均輝度に反映されることとなる。その結果、元画像から得られる反射率の分布と、縮小画像から得られる反射率の分布との違いが大きくなり、縮小画像の反射率を集計して得られるレティネクス処理における輝度を補正するための正規化パラメータが不適切な値となるのである。
また、例えば、縞模様の逆光画像(具体的に、檻の後方に光源が配置され、前記檻の前方の、かつ遠方から、前記檻を逆光撮影した画像など)にレティネックス処理を施す場合、縮小画像と元画像とにそれぞれ別のマスクを適用すると、例えば、参照画素が1画素分異なるだけで、縞を構成する画素の輝度ではなく、前記縞の画素の隣の画素の輝度が反映されてしまい、元画像から得られる反射率の分布と、縮小画像から得られる反射率の分布との違いが大きくなるという事態も考えられる。
本発明者は、上記問題点を解決するために、元画像用マスクを縮小して縮小画像用マスクを作成するのではなく、縮小画像用マスクから元画像用マスクを作成することにより、より好適な正規化パラメータ(すなわち、元画像を用いて得られる正規化パラメータにより近い値)が得られることを知見した。このようにすれば、縮小率や間引きのパターンに拘わらず、元画像用マスクと縮小画像用マスクの対応関係を保つことができるので、適切な正規化パラメータを導出することができ、縮小画像用マスクを用いたレティネックス処理においても、正確な輝度の補正が行えるのである。
上記目的を達成するために、請求項1記載の画像処理装置は、元画像を構成する各画素について前記画素の周辺平均輝度値を求め、その周辺平均輝度値に基づいて、前記元画像を構成する各画素の輝度補正を行うものであって、元画像を縮小して縮小画像を形成する縮小画像形成手段と、その縮小画像形成手段により形成された縮小画像の各画素について周辺平均輝度値を算出する際に、注目画素とその注目画素の周辺画素とに対し畳み込み演算を行うための縮小画像用マスクを、前記縮小画像用マスクが予め記憶された記憶手段から取得し、または生成することにより取得する縮小画像用マスク取得手段と、その縮小画像用マスク取得手段により取得した縮小画像用マスクを用いて、前記縮小画像の各画素について、画素の値とその画素の周辺平均輝度値とから反射率を求める縮小画像反射率取得手段と、その縮小画像反射率取得手段により求められた反射率が取る値の全範囲における各値の頻度を集計し、元画像の反射率の正規化を行う際のパラメータを設定する正規化パラメータ設定手段と、元画像の各画素について周辺平均輝度値を求める際に、注目画素とその注目画素の周辺画素とに対し畳み込み演算を行うための元画像用マスクを生成する元画像用マスク生成手段と、その元画像用マスク生成手段により生成された元画像用マスクを用いて、前記元画像の各画素について、画素の値とその画素の周辺平均輝度値とから反射率を求め、その反射率を前記正規化パラメータ設定手段により設定されたパラメータに基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素の輝度値との比に基づいて前記元画像を構成する各画素の輝度補正を行う補正手段とを備え、前記元画像用マスク生成手段は、前記縮小画像用マスク取得手段により取得された縮小画像用マスクを拡大処理することによって前記元画像用マスクを生成するものであり、前記縮小画像用マスクは、注目画素周辺の所定領域を覆うものであり、その所定領域内の位置に対応づけたフィルタ係数を有し、前記縮小画像反射率取得手段は、前記縮小画像用マスクで所定領域を覆うとき、フィルタ係数が対応づけられた位置に対応する参照画素の値にフィルタ係数を乗算することに基づいて算出される周辺平均輝度値から反射率を取得するものである。
請求項2記載の画像処理装置は、請求項1記載の画像処理装置において、前記元画像に対する前記縮小画像の縮小率を設定する縮小率設定手段を備え、前記元画像用マスク生成手段は、縮小画像用マスクの縦横比と、元画像用マスクの縦横比とが等しくなるように、前記元画像用マスクを生成するものであり、且つ、前記縮小率設定手段により設定される前記縮小率で前記縮小画像用マスクのサイズを除した値が、前記元画像用マスクのサイズと等しくなるように、前記元画像用マスクを生成することにより、元画像に対する縮小画像の縮小率に応じた元画像用マスクを生成するものである。
請求項3記載の画像処理装置は、請求項2記載の画像処理装置において、前記補正手段は、前記元画像用マスクで覆われる注目画素周辺の領域のうち、前記元画像用マスクにおいてフィルタ係数が対応付けられた位置に対応する参照画素の値にフィルタ係数を乗算することに基づいて、周辺平均輝度値を算出するものであり、前記元画像用マスク生成手段は、前記縮小画像用マスクに設定された座標のうち、フィルタ係数が設定された位置を示す座標を取得する座標取得手段と、前記座標取得手段により取得される前記座標を、前記縮小率設定手段により設定される前記縮小率で除算することにより、前記元画像用マスクにおいてフィルタ係数を設定すべき位置を示す座標を算出する座標算出手段とを備え、前記元画像用マスクにおいて、前記座標算出手段により算出された座標で示される位置に、フィルタ係数を設定するものである。
請求項4記載の画像処理プログラムは、元画像を構成する各画素について周辺平均輝度値を求め、その周辺平均輝度値に基づいて、前記元画像を構成する各画素の輝度補正を行う画像処理装置により実行されるプログラムにおいて、元画像を縮小して縮小画像を形成する縮小画像形成ステップと、その縮小画像形成ステップにより形成された縮小画像の各画素について周辺平均輝度値を算出する際に、注目画素とその注目画素の周辺画素とに対し畳み込み演算を行うための縮小画像用マスクを、前記縮小画像用マスクが予め記憶された記憶手段から取得し、または生成することにより取得する縮小画像用マスク取得ステップと、その縮小画像用マスク取得ステップにより取得した縮小画像用マスクを用いて、前記縮小画像の各画素について、画素の値とその画素の周辺平均輝度値とから反射率を求める縮小画像反射率取得ステップと、その縮小画像反射率取得ステップにより求められた反射率が取る値の全範囲における各値の頻度を集計し、元画像の反射率の正規化を行う際のパラメータを設定する正規化パラメータ設定ステップと、元画像の各画素について周辺平均輝度値を求める際に、注目画素とその注目画素の周辺画素とに対し畳み込み演算を行うための元画像用マスクを生成する元画像用マスク生成ステップと、その元画像用マスク生成ステップにより生成された元画像用マスクを用いて、前記元画像の各画素について、画素の値とその画素の周辺平均輝度値とから反射率を求め、その反射率を前記正規化パラメータ設定ステップにより設定されたパラメータに基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の輝度値との比に基づいて前記元画像を構成する各画素の輝度補正を行う補正ステップとを前記画像処理装置に実行させるものであり、前記元画像用マスク生成ステップは、前記縮小画像用マスク取得ステップにより取得された縮小画像用マスクを拡大処理することによって前記元画像用マスクを生成するものであり、前記縮小画像用マスクは、注目画素周辺の所定領域を覆うものであり、その所定領域内の位置に対応づけたフィルタ係数を有し、前記縮小画像反射率取得ステップは、前記縮小画像用マスクで所定領域を覆うとき、フィルタ係数が対応づけられた位置に対応する参照画素の値にフィルタ係数を乗算することに基づいて算出される周辺平均輝度値から反射率を取得するものである。
請求項5記載の画像処理プログラムは、請求項4記載の画像処理プログラムにおいて、前記元画像に対する前記縮小画像の縮小率を設定する縮小率設定ステップを、前記画像処理装置に実行させるものであり、前記元画像用マスク生成ステップは、縮小画像用マスクの縦横比と、元画像用マスクの縦横比とが等しくなるように、前記元画像用マスクを生成するものであり、且つ、前記縮小率設定ステップにより設定される前記縮小率で前記縮小画像用マスクのサイズを除した値が、前記元画像用マスクのサイズと等しくなるように、前記元画像用マスクを生成することにより、元画像に対する縮小画像の縮小率に応じた元画像用マスクを生成するものである。
請求項6記載の画像処理プログラムは、請求項5記載の画像処理プログラムにおいて、前記補正ステップは、前記元画像用マスクで覆われる注目画素周辺の領域のうち、前記元画像用マスクにおいてフィルタ係数が対応付けられた位置に対応する参照画素の値にフィルタ係数を乗算することに基づいて、周辺平均輝度値を算出するものであり、前記元画像用マスク生成ステップは、前記縮小画像用マスクに設定された座標のうち、フィルタ係数が設定された位置を示す座標を取得する座標取得ステップと、前記座標取得ステップにより取得される前記座標を、前記縮小率設定ステップにより設定される前記縮小率で除算することにより、前記元画像用マスクにおいてフィルタ係数を設定すべき位置を示す座標を算出する座標算出ステップとを備え、前記元画像用マスクにおいて、前記座標算出ステップにより算出された座標で示される位置に、フィルタ係数を設定するものである。
請求項1記載の画像処理装置によれば、縮小画像反射率取得手段により、前記縮小画像の各画素について、画素の値とその画素の周辺平均値とから反射率が求められ、正規化パラメータ設定手段により、その縮小画像反射率取得手段により求められた反射率が取る値の全範囲における各値の頻度が集計され、元画像の反射率の正規化を行う際のパラメータが設定されるので、 パラメータを求める際に行う畳み込み演算における演算数が少なく、処理を高速で行うことができると共に、必要なメモリ量を節約できるという効果がある。
また、元画像用マスク生成手段は、縮小画像用マスク取得手段により取得された縮小画像用マスクを拡大処理することによって、元画像用マスクを生成するので、縮小率に拘わらず、縮小画像用マスクの領域を確保し、適切なパラメータを設定することができるので、高精度の出力結果が得られるという効果がある。
請求項2記載の画像処理装置によれば、請求項1記載の画像処理装置の奏する効果に加え、前記元画像用マスク生成手段は、縮小率設定手段によって設定された、元画像に対する縮小画像の縮小率に応じて、元画像用マスクを生成するので、縮小画像マスクで覆う領域と、元画像用マスクで覆う領域とを対応づけることができ、より高精度の出力結果が得られるという効果がある。
請求項3記載の画像処理装置によれば、請求項2記載の画像処理装置の奏する効果に加え、より高精度の出力結果が得られるという効果がある。
請求項4記載の画像処理プログラムによれば、縮小画像反射率取得ステップにより、前記縮小画像の各画素について、画素の値とその画素の周辺平均値とから反射率が求められ、正規化パラメータ設定ステップにより、その縮小画像反射率取得ステップにより求められた反射率が取る値の全範囲における各値の頻度が集計され、元画像の反射率の正規化を行う際のパラメータが設定されるので、 パラメータを求める際に行う畳み込み演算における演算数が少なく、処理を高速で行うことができると共に、必要なメモリ量を節約できるという効果がある。
また、元画像用マスク生成ステップは、縮小画像用マスクステップにより取得された縮小画像用マスクを拡大処理することによって元画像用マスクを生成するので、縮小率に拘わらず、縮小画像用マスクの領域を確保し、適切なパラメータを設定することができるので、高精度の出力結果が得られるという効果がある。
請求項5記載の画像処理プログラムによれば、請求項4記載の画像処理プログラムの奏する効果に加え、前記元画像用マスク生成ステップは、縮小率設定ステップによって設定された、元画像に対する縮小画像の縮小率に応じて、元画像用マスクを生成するので、縮小画像マスクで覆う領域と、元画像用マスクで覆う領域とを対応づけることができ、より高精度の出力結果が得られるという効果がある。
請求項6記載の画像処理プログラムによれば、請求項5記載の画像処理プログラムの奏する効果に加え、より高精度の出力結果が得られるという効果がある。
以下、本発明の好ましい実施形態について添付図面を参照して説明する。図1は、本実施形態の画像処理を行う機能を有するプリンタ1の電気的な構成を示したブロック図である。本実施形態においては、プリンタ1に搭載された画像処理プログラムは、パーソナルコンピュータ(以下「PC」と称する)2や、デジタルカメラ21や、外部メディア20から入力された画像データ(元画像データ)に対しレティネックス処理(Retinex処理)などを実行して、画像データの逆光画像部分などの低画質領域の補正を実行するように構成されている。
図1に示すように、プリンタ1には、CPU11、ROM12、RAM13、印刷ヘッドなどから構成され、印刷媒体(例えば、紙媒体など)への印刷(出力)を行う印刷部15、出力画像サイズなどの入力値をユーザが入力可能なユーザ操作部(例えば、テンキーなど)を有する操作パネル16とを備えている。
また、プリンタ1は、ケーブル5を介してPC2と接続可能なインターフェイス(以下「I/F」と称する)17と、ケーブル6を介してデジタルカメラ21と接続可能なI/F18と、外部メディア20(例えば、SDメモリカード、メモリスティックなどのフラッシュメモリにより構成される)を着脱自在に装着可能な外部メディアスロット19とを備えている。これらのI/F17、18により行われる通信方法としてUSB(Universal Serial Bus)が使用される。
よって、プリンタ1は、PC2に記憶されている画像データをケーブル5及びI/F17を介して入力することが可能であると共に、デジタルカメラ21によって撮影された画像データをケーブル6及びI/F18を介して入力することが可能である。さらに、外部メディアスロット19に装着された外部メディア20から、その外部メディア20に記憶されている画像データを入力することが可能である。
CPU11は、プリンタ1全体を制御する演算処理装置である。ROM12は、CPU11により実行される各種制御プログラムやそのプログラムを実行する際に用いられる固定値などを記憶するものであり、レティネックス処理などの画像の処理を行う画像処理プログラムを記憶する画像処理プログラムメモリ12aや、印刷を行うための印刷制御プログラムを記憶する印刷制御プログラムメモリ12b、ルックアップテーブルメモリ(LUTメモリ)12c等が備えられている。
RAM13は、制御プログラムがCPU11により実行される際に必要な各種レジスタ群などが記憶されるワーキングエリアや、処理中のデータを一時的に格納するテンポラリエリア等を有しランダムにアクセスできる書き換え可能なメモリであり、元画像データを記憶する元画像メモリ13aと、元画像を縮小し、縮小した画像のレティネックス処理において求められる反射率を記憶する縮小レティネックス画像メモリ13bと、ヒストグラム処理において各画素値の頻度が記憶されるヒストグラムメモリ13cと、元画像のサイズを記憶する元画像サイズメモリ13dと、使用者などにより設定される印刷を行う際の印刷パラメータを記憶する印刷パラメータメモリ13eと、印刷パラメータなどに基づいて決定される縮小画像サイズと縮小アルゴリズムがそれぞれ記憶される縮小画像サイズメモリ13fと縮小アルゴリズムメモリ13gと、注目画素の周辺平均輝度を求める際に用いられるマスク(フィルタ)を記憶するマスクメモリ13h等を備えている。
元画像データメモリ13aは、PC2、デジタルカメラ21、及び外部メディア20から、それぞれ、I/F17、I/F18、及び外部メディアスロット19を介して入力した画像データを記憶するものである。元画像データを1ライン単位で記憶し、縮小画像を形成することができるライン数のデータを読み込むと、縮小画像を形成する。縮小アルゴリズムが、最近傍法である場合には、1ラインのデータを記憶し、バイリニア法である場合には、2ライン、バイキュービック法である場合には、3ライン、平均画素法の場合は、縮小率に応じたライン数の元画像データが記憶される。なお、本実施形態では、元画像データ及び出力画像データはいずれも、RGB値から構成され、これらの各RGB値は、8ビット(1バイト)のデータサイズにより表され、10進数では、「0」〜「255」の範囲の値をとる。
RGB値は、光の3原色である赤を表すR値と、緑を表すG値と、青を示すB値とを構成成分とする値である。光の3原色の混色により各種の色は生成されるので、元画像の各画素の色は、R値とG値とB値との組合せ(RGB値)により1の色(色相や階調など)が示される。このRGB値の値が大きいほど、輝度(明度)は高くなる。
縮小レティネックス画像メモリ13bは、元画像を縮小し、その縮小した画像の輝度信号のみについてレティネックス処理において求められる反射率Rs(x,y)を記憶するメモリである。元画像を縮小する方法としては、縮小する画像の画素に対応する元画像の位置に最も近い画素の値をサンプリングし、そのサンプリングした画素の値をそのまま用いる最近傍(Nearest Neighbor)法や、縮小する画像の画素に対応する元画像の位置の周囲の画素を用いて補間演算を行うバイリニア法、バイキュービック法や、平均画素法などが知られている。画質より処理速度を優先する場合は、最近傍法が用いられ、処理速度より画質を優先する場合は、バイキュービック法や、平均画素法が用いられる。
これらいずれかの方法により元画像が縮小され、その縮小された画像の各画素(ピクセル)について反射率が上述の数式1を用いて演算され、この縮小レティネックス画像メモリ13bに記憶される。
ヒストグラムメモリ13cは、縮小画像の各画素の反射率Rs(x,y)の頻度を集計してヒストグラムを形成するためのメモリである。ヒストグラムが作成されると、そのヒストグラムに基づいて、正規化を行うためのパラメータである上限値および下限値(クリップ範囲)が定められる。
元画像サイズメモリ13dは、元画像のサイズを記憶するもので、元画像データをPC2などから読み込む際に、元画像データに付随して読み込まれ、この元画像サイズメモリ13dに記憶される。縮小画像のサイズおよび縮小アルゴリズムを決定する際には、この元画像サイズメモリ13dに記憶された元画像サイズが参照される。
印刷パラメータメモリ13eは、印刷を行う際の印刷モードを高画質の写真モードとするか、普通画質の普通モードとするか、また、記録媒体の種類を光沢紙、インクジェット紙、普通紙のいずれにするか、また、記録媒体のサイズをA4,B5、レターなどのいずれにするかなどを使用者が設定し、その設定されたパラメータを記憶する。印刷モードが選択されると、選択された印刷モードに設定された印刷の解像度や液滴サイズなどがパラメータとして記憶され、印刷が実行される際には、これらのパラメータに従って印刷が行われる。
これらの印刷パラメータや、元画像のサイズに基づいて、縮小画像のサイズと縮小するアルゴリズムが決定され、縮小画像サイズメモリ13fと縮小アルゴリズメモリ13gにそれぞれ記憶される。主として、処理速度より画質が優先される場合は、縮小画像サイズとして大きいサイズが設定され、画質より処理速度が優先される場合は、縮小画像サイズとして小さいサイズが設定される。縮小アルゴリズムとしては、上記、最近傍法、バイリニア法、平均画素法などの中から選択される。
これらの印刷パラメータは、PC2において使用者により設定され、プリンタ1に入力されるとともに、操作パネル16に備えられる操作子によっても設定することができる。
マスクメモリ13hは、各画素の周辺平均輝度を求める際に用いられるマスク(フィルタ)を記憶するメモリであり、縮小画像用のマスクFs(図8(a)参照)と元画像用のマスクF(図8(b)参照)それぞれを記憶する。なお、本実施例では、複数種類の縮小画像用マスクが、予めROM12に格納されているものであって、必要に応じてマスクメモリ13hに読み出されるものとして説明する。一方、元画像用マスクは、縮小画像用マスクに基づいて動的に生成され、マスクメモリ13hに格納されるものである。なお、元画像用マスクの生成方法は、図9を参照して後述する。
操作パネル16には、印刷パラメータなどを表示するLCDと、印刷パラメータや画像処理に関するパラメータを設定したり、画像処理や印刷処理の実行を指示する各種操作子が備えられている。
次に、図2を参照してプリンタ1に接続されたPC2おいて設定される種々の印刷パラメータについて説明する。図2は、PC2において、印刷パラメータの設定を選択した際に表示器に表示される印刷パラメータ設定画面28である。
印刷パラメータ設定画面28には、印刷を行う記録媒体である印刷用紙を選択設定する用紙種類選択ボックス28aと、印刷用紙のサイズを選択設定する用紙サイズ設定ボックス28bと、印刷モードを設定する印刷モード設定ボックス28cと、印刷を行う部数を設定する部数設定ボックス28dなどが表示される。
用紙種類選択ボックス28aは、選択された用紙種類を表示する表示エリアと、そのエリアの右端に下方に向いた三角形が描かれたアイコンとを有し、このアイコンにマウスを操作してカーソル合わせ、クリックすると図2に示すようにプルダウンメニューが表示される。つぎに表示されたプルダウンメニューのいずれかの項目にカーソルを移動し、マウスに備えられたスイッチをクリックすると、カーソルにより指定される項目が選択される。
この実施形態では、印刷用紙の種類として、普通紙、光沢紙のいずれかを選択することができ、図2に示す例では、普通紙が選択された状態を示している。
同様に、用紙サイズ設定ボックス28bは、選択された用紙のサイズを表示するエリアと、選択を行うためのプルダウンメニューの表示を指示するアイコンとを有し、用紙のサイズとしては、A4,レター,5”×7”および4”×6”のいずれかを選択することができる。
印刷モード設定ボックス28cも同様に、選択された印刷モードを表示するエリアと、選択を行うためのプルダウンメニューの表示を指示するアイコンとを有し、印刷モードとして、写真モードと普通モードのいずれかを選択することができる。写真モードは、普通モードに比べ、高画質で印刷を行うモードであり、高解像度で印刷が行われる。例えば、写真モードの解像度は、1200×1200dpiであり、普通モードの解像度は、低解像度であって、600×600dpiである。なお、インクジェット方式のプリンタでは解像度に応じて液滴サイズや、使用されるインクの種類が異なるようにしてもよい。
印刷部数設定ボックス28dは、設定された部数を数値で表示するエリアからなり、そのエリアの右側に、数値を増加させるための上向きの三角形を表示したインクリメントアイコンと、数値を減少させるための下向きの三角形を表示したデクリメントアイコンを備え、これらのアイコンにカーソルを移動してマウスを操作することにより、印刷部数を設定することができる。
この印刷パラメータ設定画面28には、上記アイコン以外に、用紙に対する印刷の向きを設定するラジオボタンや、設定を有効にして設定画面の消去を指示するOKボタンや、設定を無効にして設定画面の消去を指示するキャンセルボタンや設定の説明画面の表示を指示するヘルプボタンが表示される。
このようにしてPC2により設定された印刷パラメータは、ケーブル5およびI/F17を介してプリンタ1に入力され、印刷パラメータメモリ13eに記憶される。
次に、図3および図4を参照してCPU11により実行される画像処理について説明する。図3および図4は、画像処理を示すフローチャートである。図3に示す処理は、前処理と呼ばれる処理であり、この処理では、元画像を縮小し、縮小した画像に基づいて反射率Rの正規化を行うためのクリップ範囲が設定される。
この前処理では、まず、元画像データに付随している元画像のサイズを示すデータを元画像サイズメモリ13dに記憶する(S1)。この画像のサイズを示すデータは、通常長方形の画像を構成する縦と横のピクセル数により表される値である。
次に、印刷パラメータメモリ13eに記憶された印刷パラメータの中から縮小画像サイズと縮小アルゴリズムを設定する際に必要なパラメータを読み出す(S2)。この、実施形態では、印刷パラメータのうち、印刷モード、用紙種類、用紙サイズが必要なパラメータである。
次に、これらのパラメータなどに基づいて縮小画像サイズと縮小アルゴリズムを決定し、決定した縮小画像サイズを縮小画像サイズメモリ13f、縮小アルゴリズムを13gにそれぞれ記憶する(S3)。この処理については、図5〜7を参照して後述する。
次に、縮小画像用マスク(フィルタFs(x,y))に基づいて元画像用マスク(F(x,y))を生成し、マスクメモリ13hに記憶する(S4)。この処理の詳細は、図8および図9を参照して後述する。
次に、縮小画像を形成する。縮小画像を形成する処理では、まず、元画像を記憶しているPC2などから、1ライン単位で読み込み、RAM13の元画像メモリ13aに記憶する(S6)。デジタルカメラなどにより形成された画像データは、JPEGなどの圧縮法により圧縮されて記憶され、長方形の画像の横方向のピクセルのライン順に記憶されている。
次に、元画像メモリ13aに記憶された画像データのライン数が、縮小画像アルゴリズムメモリ13gに記憶された縮小アルゴリズムにより縮小することができるライン数のデータが記憶されたか否かを判断し(S7)、縮小できるライン数が記憶されていない場合は(S7:No)、S4の処理に戻り、縮小できるライン数が記憶されている場合は(S7:Yes)、その縮小アルゴリズムに従って縮小画像データを形成し(S8)、その縮小画像をRAMに記憶する(S9)。縮小画像データをRAMに記憶し、次に1ライン分の元画像を読み込んで元画像メモリ13aに記憶する場合は、先に記憶したデータに上書きする。このことにより、元画像メモリ13aの記憶容量を削減することができる。
次に、元画像の全てのラインについて走査を行って縮小画像を形成したか否かを判断し(S10)、まだ、未処理のラインが残っている場合は(S10:No)、S4の処理に戻り、全ラインについて処理を終了した場合は(S10:Yes)、縮小画像の各画素について輝度信号Yと色信号Cb,Crに変換する(S11)。
輝度信号Yおよび色信号Cb,Crは、元の画素のRGB値から次式により演算される。
Figure 0004661754
輝度信号Yと色信号Cb,Crの値をそれぞれ記憶し、後の演算で使用するようにしてもよいが、記憶容量が小さい場合は、RGB値のみを記憶し、必要に応じて演算して求めるようにしてもよい。
次に、上式により演算された輝度信号Yについて、反射率Rs(x,y)を算出する。(S12)なお、「s」は、縮小画像についての接尾辞であり、元画像については、接尾辞を付さないものとする。反射率Rsは、縮小画像の各画素の輝度値をIs(x,y)、縮小画像用のフィルタをFs(x,y)として、次式により演算される。
Figure 0004661754
なお、「*」は、畳み込み演算(コンボリューション)を示し、この畳み込み演算により周辺平均輝度(周辺平均値)が求められる。なお、logは、eを底とする自然対数である。この畳み込み演算において、小数点位置は、シフト量メモリ13iに記憶された縮小画像用のシフト位置に基づいて行われる。
次に、上記演算により求められた反射率Rs(x,y)をRAM13の縮小レティネックス画像メモリ13bに記憶する(S13)。
次に、Rs(x,y)を最大値および最小値と比較する(S14)。詳細には、最初の座標について求めた反射率Rs(x,y)を最大値および最小値とし、そのつぎから求めた反射率Rs(x,y)と最大値および最小値とをそれぞれ比較し、今回求めた反射率Rs(x,y)が、最大値より大きい場合は、今回求めた反射率Rs(x,y)を新たな最大値とし、今回求めた反射率Rs(x,y)が、最小値より小さい場合は、今回求めた反射率Rs(x,y)を新たな最小値とし、今回求めた反射率Rs(x,y)が、最大値より小さく、最小値より大きい場合は、最大値、最小値を変更しないという処理である。
次に、縮小画像の全ての座標についてS12〜S14の処理を行ったか否かを判断し(S15)、まだ、未処理の座標がある場合は(S15:No)、S12の処理に戻り、全ての座標についての処理を終了した場合は(S15:Yes)、S14の処理により求めた最大値と最小値に基づいて、反射率Rs(x,y)を正規化し、ヒストグラムを形成する(S16)。
次に、その形成されたヒストグラムからメディアン値を求め(S17)、そのメディアン値とヒストグラムとから反射率Rs(x,y)のクリップされる範囲(クリップ範囲)を定める(S18)。このクリップ範囲は、例えば、メディアン値より大きい値で、全標本の45%の標本が含まれる上限値をクリップ範囲の上限値とし、メディアン値より小さい値で、全標本の45%が含まれる下限値をクリップ範囲の下限値とするものである。
以上の前処理により、元画像を縮小した縮小画像の反射率により構成される縮小レティネックス画像を形成し、その縮小レティネックス画像から、元画像の反射率を正規化する際のクリップ範囲が求められる。このことにより、クリップ範囲を求めるための演算の回数が、元画像について求める演算の回数より非常に少なくすることができ、処理速度が速くなる。また、縮小された画像のレティネックス画像を記憶するので、元画像のレティネックス画像を記憶する場合に比べ、少ない記憶容量で処理することができるという利点がある。また、縮小画像を用いて求めたクリップ範囲と、元画像を用いて求めたクリップ範囲とは、大差がない。次表は、縮小画像により求めたクリップ範囲(上限値と下限値)と元画像により求めたクリップ範囲との差異を示すものである。
Figure 0004661754
この表が示すように、元画像により求めた最大値は、2.712、最小値は、−4.063であり、縮小画像により求めた最大値は、1.729、最小値は、−2.607である。よって、元画像により求めた最大値と縮小画像により求めた最大値との差は、0.983であり、元画像により求めた最小値と縮小画像により求めた最小値との差は、1.456であって、かなり大きな差が認められる。
一方、元画像により求めたクリップ範囲の上限値は、0.825、下限値は、−0.822であり、縮小画像により求めた上限値は、0.742、下限値は、−0.755である。よって、元画像により求めた上限値と縮小画像により求めた上限値との差は、0.083であり、元画像により求めた下限値と縮小画像により求めた下限値との差は、0.067であって、これらの差が小さいことが分かる。
次に、図3に示す処理により求められたクリップ範囲に基づいて行う後処理である元画像のレティネックス処理について説明する。図4は、元画像のレティネックス処理を示すフローチャートである。なお、この後処理では、元画像の各画素について処理が行われ、処理された画素値は、順次印刷部15に出力される。
まず、元画像について、反射率R(x,y)を数式1を用いて算出する(S21)。この演算において、フィルタF(x,y)は、マスクメモリ13hに記憶された元画像用のマスクであり、この畳み込み演算における小数点位置は、シフト量メモリ13iに記憶された元画像用のシフト位置に基づいて行われる。
次に、縮小画像を用いて求めたクリップ範囲に基づいて、R(x,y)を正規化し、正規化反射率refle(x,y)を得る(S22)。
次に、このrefle(x,y)を用いて、次式により輝度についてレティネックス処理を行った画素の値Out(x,y)を得る(S23)。
Figure 0004661754
次に、このOut(x,y)と、色信号Cb、Crとに基づいて、RGB値に変換する(S24)。この変換は、次式により算出される。
Figure 0004661754
以上の処理により元画像の輝度信号にレティネックス処理が施され、色信号に基づいてRGB値に戻した画素値が求められる。次に、この処理された画素値を印刷部15に出力する(S25)。よって、前処理により、正規化を行うクリップ範囲が特定されているので、後処理では、順次各画素について処理を行い印刷部15に出力することができる。その結果、処理を開始してから、印刷が開始されるまでの時間を短縮することができる。
次に、元画像の全画素について処理を終了したか否かを判断し(S26)、まだ処理を終了していない画素がある場合は(S26:No)、S21の処理に戻り、全ての画素について処理を終了した場合は(S26:Yes)、この後処理を終了する。
次に、図5、図6および図7を参照して、S3の処理である縮小画像サイズと縮小アルゴリズムを決定する処理について説明する。元画像を縮小し、その縮小画像を用いてクリップ範囲を決定し、そのクリップ範囲に基づいて元画像の各画素について補正処理を行うので、クリップ範囲を速く決定することができるとともに、少ない記憶容量で処理することができる。しかしながら、縮小画像のサイズが小さい場合や、縮小された画像の画質の劣化が大きい場合には、適切なクリップ範囲を設定できない場合がある。また、縮小画像サイズを必要以上に大きくしたり、縮小画像の画質を必要以上に高くすれば、処理時間が長くかかり、処理速度が低下する。従って、使用者が設定する印刷パラメータなどに応じた適切な縮小画像のサイズや縮小アルゴリズムを選択する必要がある。
図5および図6は、印刷モード、用紙種類、用紙サイズ、元画像のサイズに応じて縮小画像サイズと縮小アルゴリズムを設定するためのルックアップテーブルであり、図5は、写真モード用のもの、図6は、普通モード用のものである。これらのテーブルは、ROM12のテーブルメモリ12cに記憶され、図7に示すフローチャートの処理において参照される。
図5は、印刷モードが写真モードである場合に選択されるテーブルであって、まず、用紙の種類により分類される。この実施形態では、光沢紙と普通紙の2種類で分類しているが、これら以外に、インクジェット紙などにより分類してもよい。
用紙種類の次に、用紙サイズにより分類される。用紙サイズは、用紙サイズが小さい方から順に、4”×6”、5”×7”、レター、A4の4種類に分類され、さらに、各用紙サイズについて元画像サイズにより分類される。元画像のサイズとしては、600×800、1200×1600、2400×3200(ピクセル)の3種類に分類され、それぞれのサイズについて、縮小画像サイズと縮小アルゴリズムとが設定される。
この実施形態では、縮小画像サイズは、150×200、300×400、450×600の3種類、縮小アルゴリズムは、平均画素法(ME)、バイリニア法(BL)、最近傍法(NN)の3類のいずれかが設定される。図6は、印刷モードが普通モードである場合に選択されるテーブルであって、写真モードと同様に、用紙種類、用紙サイズ、元画像サイズにより分類され、縮小画像サイズと縮小アルゴリズムとが設定される。
図7は、図3に示すフローチャートのS3の処理の詳細を示すフローチャートである。この処理では、まず印刷パラメータとして選択された印刷モードが写真モードであるか普通モードであるかを判定する(S31)。印刷モードが、写真モードである場合は、写真モード用のテーブルを選択し(S32)、印刷モードが、普通モードである場合は、写真モード用のテーブルを選択し(S33)、印刷パラメータとして設定されている用紙種類、用紙サイズ、および元画像サイズメモリ13dに記憶されている元画像サイズとから、設定されている縮小画像サイズと縮小アルゴリズムとを読み出し、縮小画像サイズメモリ13fと縮小アルゴリズムメモリ13gとにそれぞれ記憶する(S34)。
次に、図8と図9とを参照して、マスク生成処理(S4)について説明する。マスクは、注目画素の周辺の画素の周辺平均輝度を算出するためのフィルタであって、所定の大きさの領域を必要とする。しかしながら、その領域の全ての座標についてフィルタ係数を有し、畳み込み演算を行うと計算量が膨大になる。そこでフィルタ係数を間引くことにより、計算量を削減することが行われている。
図8(a)は、縮小画像用マスクFsが、領域内のいずれの座標にフィルタ係数を有するのかを示す模式図であり、図8(b)は、元画像用マスクFが、領域内のいずれの座標にフィルタ係数を有するかを示す模式図である。なお、本実施例では、縮小画像用マスクFsおよび元画像用マスクF共に、注目画素に対応させるマスク中央位置を(0,0)として、領域内の座標を定めている。また、図8では、フィルタ係数が存在する座標をグレイ色、フィルタ係数が存在しない座標を白色で示す。また、グレイ色で示した各座標については、座標(0,0)からの距離に応じて、ガウス関数を用いて、対応するフィルタ係数が決定されるが、このフィルタ係数の決定方法は公知であるため説明を省略する。
図8(a)に示す縮小画像用マスクFsは、例えば、全座標の数が81(9×9)の領域を有し、そのうち、11の座標についてフィルタ係数を有し、残りの座標70(81−11)については、フィルタ係数を有しない。この縮小画像用マスクFsによれば、マスク中央位置(0,0)を注目画素に対応させることにより、縮小画像の9画素×9画素の領域を覆うことができる。そして、注目画素を含む11個の画素の輝度については、対応するフィルタ係数を乗算することにより、周辺平均輝度に値を反映すると共に、残りの70個の画素の輝度にはフィルタ係数を乗算せず、その輝度を周辺平均輝度に反映しない。すなわち、縮小画像用マスクFsによれば、残りの70個の画素の輝度は間引いて、周辺平均輝度を演算することができる。
なお、ここで説明した縮小画像用マスクFsは一例である。本実施例では、サイズおよびフィルタ係数、間引き度(全座標に対し、フィルタ係数が対応づけられている座標の割合)が異なる複数種類の縮小画像用のマスクFsが、予めROM12に格納されているものとして説明する。そして、前処理(図3参照)のS3で決定された縮小画像サイズと、縮小アルゴリズムに応じて、最適な縮小画像用マスクFsが選択され、選択された縮小画像用マスクFsがマスクメモリ13hに読み出されて、以降の処理において用いられる。
図8(b)は、マスクメモリ13hに読み出された縮小画像マスクFsを拡大処理することによって生成される元画像用マスクFを模式的に示す図である。ここで、特許請求の範囲および本明細書における「拡大処理」とは、元画像用マスクFを、縮小画像用マスクFsからの、相似移動によって作成する処理である。相似移動とは、元画像用マスクFの縦横比と、縮小画像用マスクFsの縦横比が等しく、且つ、フィルタ係数が対応付けられた座標のうち、任意の2点間の距離の比が、元画像用マスクFと縮小画像用マスクFsとの間で常に一定となるように、元画像用マスクFを生成することをいう。まず、元画像用のマスクFのサイズは、縮小画像用マスクFsのサイズを縮小率で除した値となるように、元画像用マスクFが生成される。例えば、縮小率が1/2である場合、縮小画像用マスクFsが、縮小画像の9画素×9画素の範囲を覆うサイズを有していれば、元画像用マスクFが、元画像の18画素×18画素の範囲を覆うように、元画像用マスクFのサイズを決定する。このようにすれば、元画像用マスクのカバー率(マスクが覆う領域の画像全体に対する割合)が、縮小画像用マスクのカバー率と等しくなるので、元画像から得られる反射率の分布と、縮小画像から得られる反射率の分布が極めて近似し、縮小画像の反射率の集計結果から、好適なクリップ範囲(すなわち、元画像から得られるクリップ範囲と極めて近似するクリップ範囲)を得ることができ、高精度の出力結果を得ることができる。
さらに、図8(b)に示すように、縮小画像用マスクFsにおいてフィルタ係数が存在する座標を、縮小率で除算して座標変換し、それにより得られる座標を、元画像用マスクFにおいてフィルタ係数が存在する座標とする。例えば、縮小画像用マスクの座標が(−2,−2)であり、縮小率が1/2であれば、元画像用マスクの座標(−4,−4)にフィルタ係数が設定された元画像用マスクを生成する。このようにすれば、フィルタ係数が対応付けられた座標のうち、任意の2点間の距離の比が、縮小画像用マスクFsとの間で常に一定となる元画像用マスクFを生成することができる。特に、縮小画像の形成のアルゴリズムが最近傍法である場合は、縮小する画像の画素に対応する元画像の位置に最も近い画素の値がサンプリングされ、そのサンプリングした画素の値がそのまま縮小画像の画素の値として用いられるので、上述のように、縮小画像用マスクFsの座標を、縮小率で除算した座標を、元画像用マスクFにおける座標とすることにより、縮小画像において周辺平均輝度に反映される画素の値と、元画像において周辺平均輝度に反映される画素の値とを一致させることができ、極めて好適なクリップ範囲を得ることができる。
なお、図8(b)には、縮小画像用マスクFsの座標を縮小率で除算した座標を、そのまま元画像用マスクFの座標とする例を示したが、元画像用マスクFの座標を得るための演算式は、これに限られない。例えば、縮小画像形成のアルゴリズムが、バイリニア法、バイキュービック法、平均画素法である場合は、元画像において互いに近接する複数画素の値に基づいて、縮小画像における1の画素の値が決定されている。よって、縮小画像の参照画素の値を決定する際に元となった元画像の複数画素のいずれか1つ(縮小画像の参照画素と対応する元画像の画素)について、フィルタ係数が乗算されるように、元画像用の座標を定めることにより、極めて好適なクリップ範囲を得ることができる。
図9を参照してマスク生成処理について説明する。図9は、マスク生成処理を示すフローチャートである。なお、このマスク生成処理は、縮小画像用マスクFsに基づいて元画像用マスクFを生成する処理であるが、元とするべき縮小画像用マスクFsは、予めROM12から読み出されて、マスクメモリ13hに格納されているものとして説明する。このマスク生成処理では、まず、縮小率を読み出す(S40)。ここで、縮小率は、縮小画像の縦の長さを元画像の縦の長さで除算した値、または縮小画像の横の長さを元画像の横の長さで除算した値に相当する。
次に、元画像用マスクのマスクサイズを決定する(S41)。なお、マスクサイズとは、マスクが有する矩形領域の縦方向長さと横方向長さとであって、その所定領域に覆うことができる画素数で表される値である。元画像用マスクのマスクサイズは、縮小画像用マスクのマスクサイズの縦方向長さおよび横方向長さを、それぞれ縮小率で除算した値が決定される。
次に、マスクメモリ13hから、縮小画像マスクの参照ポイント数P、参照ポイントの座標(MXi,MYi)(0≦i≦P−1)を読み出す(S42)。なお、参照ポイントとは、フィルタ係数が存在している座標を意味する。
次に、カウント変数jを定義し、j=0とする(S43)。そして、縮小画像用マスクの参照ポイントの座標(MXj,MYj)を、読み出した縮小率で除算して、元画像用マスクにおける参照ポイントの座標(LXj,LYj)を算出する(S44)。
次に、算出した元画像用マスクの座標(LXj,LYj)に対するフィルタ係数を決定し(S45)、座標とフィルタ係数とを対応づけてマスクメモリ13hに記憶する(S46)。なお、このフィルタ係数は、ガウス関数を用いて演算により求められるが、公知の演算であるため、詳細な説明は省略する。
次に、カウント変数jに「1」を加算する(S47)。そして、カウント変数jが参照ポイント数Pより小である間(S48:No)、S44から処理を繰り返し、次の座標について、処理を行う。このようにして参照ポイント数Pだけ処理を繰り返し、j=Pとなると(S48:Yes)、マスク生成処理を終了する。
本実施例のマスク生成処理により生成された元画像用マスクによれば、縮小画像用マスクの参照ポイントの座標を、縮小率で除算した座標が、元画像用マスクにおける参照ポイントの座標としているから、縮小画像から得られる反射率の分布が、元画像から得られる反射率の分布と極めて近くなる。その結果、適切なクリップ範囲(元画像から得られるクリップ範囲と極めて近似するクリップ範囲)を、縮小画像から得ることができるのである。
なお、請求項に記載の縮小画像形成手段および縮小画像形成ステップは、図3に示すフローチャートのS8の処理が該当し、縮小画像用マスク取得手段および縮小画像用マスク取得ステップは、図9に示すフローチャートのS42の処理および図10に示すフローチャートのS141〜S149の処理が該当し、縮小画像反射率取得手段および縮小画像反射率取得ステップは、図3に示すフローチャートのS12の処理が該当し、正規化パラメータ取得手段および正規化パラメータ取得ステップは、図3に示すフローチャートのS16〜S18の処理が該当し、元画像用マスク生成手段および元画像用マスク生成ステップは、図3に示すフローチャートのS4の処理が該当し、補正手段および補正ステップは、図4に示す後処理が該当し、縮小率設定手段および縮小率設定ステップは、図7に示すS34の処理が該当する。
以上、実施形態に基づいて本発明を説明したが、本発明は上記各実施形態に何ら限定されるものでなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
例えば、上記実施形態では、縮小画像用マスクFsは予めROM12に格納されているものとして説明したが、これに替えて、縮小画像用マスクFsを動的に生成するように構成しても良い。
図10は、変形例のマスク生成処理(S4)を示すフローチャートである。なお、図10に示す変形例のマスク生成処理において、上述した実施形態のマスク生成処理(図9参照)と同一のステップについては、同一の符号を付して説明を省略する。
変形例のマスク生成処理では、まず、縮小率を読み出し(S140)、縮小画像用マスクのマスクサイズを設定する(S141)。次に、縮小画像用マスクの参照ポイント数Pを設定し(S142)、縮小画像用マスクのマスクサイズ(SX,SY)を設定する(S143)。ここで、SXは、X方向のマスク長を意味し、SYは、Y方向のマスク長を意味する。このマスクサイズ、参照ポイント数P、マスクサイズ(SX,SY)は、縮小率や、印刷パラメータなどに応じて、例えば、テーブルを参照することにより、最適な値に設定される。
次に、カウント変数kを定義して初期化する(S144)。そして、縮小画像用マスクにおいてフィルタ係数が存在する座標(MXk,MYk)を、乱数を用いて決定する(S145)。なお、縮小画像用マスクのサイズは(SX,SY)であるので、各値は以下の範囲内を取り得る。
−SX/2≦MXk≦SX/2
−SY/2≦MYk≦SY/2
そして、決定した座標(MXk,MYk)に対するフィルタ係数を決定し(S146)、座標(MXk,MYk)とフィルタ係数とを対応づけてマスクメモリ13hに記憶する(S147)。なお、このフィルタ係数は、ガウス関数を用いて演算により求められるが、公知の演算であるため、詳細な説明は省略する。
次に、カウント係数kに「1」を加算し(S148)、カウント変数kが参照ポイント数Pより小である間(S149:No)、S145から処理を繰り返す。このようにして参照ポイント数Pだけ処理を繰り返し、k=Pとなると(S149:Yes)、縮小画像用マスクFsの生成を終了し、図9のS43以下で説明したのと同様の処理で、縮小画像用マスクFsに基づいて、元画像用マスクFを生成することができる。
また、上記実施形態では、色表現系はRGB形式としたが、RGB形式以外の他の色表現系、例えば、CMY形式などに本発明を適用してもよい。
また、上記実施形態では、本発明の画像処理プログラムは、プリンタ1に組み込まれたCPU11により実行されるものとしたが、パーソナルコンピュータにアプリケーションとして供給され、パーソナルコンピュータに組み込まれたCPUなどにより実行されるようにしてもよい。
また、レティネックス処理は、SSR(シングルスケール法)であってもMSR(マルチスケール法)であってもよい。
また、上記実施形態の画像処理では、CPU11によりレティネックス処理などを行うものとしたが、DSP(Digital Signal Processor)により行ってもよい。DSPを用いると、より高速に積和演算などの処理を実行することができる。
本発明の実施形態の画像処理プログラムを搭載したプリンタの電気的構成を示すブロック図である。 印刷パラメータを設定する画面を示す図である。 画像処理プログラムにより行われる前処理を示すフロー図である。 前処理に続いて実行される後処理を示すフローチャートである。 印刷モードが写真モードである場合に参照される写真モード用テーブルである。 印刷モードが普通モードである場合に参照される普通モード用テーブルである。 テーブルを参照する処理を示すフローチャートである。 (a)は、縮小画像用マスクFsが、領域内のいずれの座標にフィルタ係数を有するのかを示す模式図であり、(b)は、元画像用マスクFが、領域内のいずれの座標にフィルタ係数を有するかを示す模式図である。 マスク生成処理を示すフローチャートである。 変形例のマスク生成処理を示すフローチャートである。 正規化を行うためのクリップ範囲について説明するためのヒストグラム図である。 縮小画像用マスクと元画像用マスクとを模式的に示す図である。 従来の元画像用マスクFと、その元画像用マスクFを1/8に縮小して得られる縮小用マスクFsとを模式的に示す図である。
符号の説明
1 プリンタ(画像処理装置)
2 パーソナルコンピュータ
11 CPU
12 ROM
12a 画像処理プログラムメモリ
13 RAM
13a 元画像メモリ
13b レティネックス画像メモリ
13h マスクメモリ
F 元画像用マスク
Fs 縮小画像用マスク

Claims (6)

  1. 元画像を構成する各画素について前記画素の周辺平均輝度値を求め、その周辺平均輝度値に基づいて、前記元画像を構成する各画素の輝度補正を行う画像処理装置において、
    元画像を縮小して縮小画像を形成する縮小画像形成手段と、
    その縮小画像形成手段により形成された縮小画像の各画素について周辺平均輝度値を算出する際に、注目画素とその注目画素の周辺画素とに対し畳み込み演算を行うための縮小画像用マスクを、前記縮小画像用マスクが予め記憶された記憶手段から取得し、または生成することにより取得する縮小画像用マスク取得手段と、
    その縮小画像用マスク取得手段により取得した縮小画像用マスクを用いて、前記縮小画像の各画素について、画素の値とその画素の周辺平均輝度値とから反射率を求める縮小画像反射率取得手段と、
    その縮小画像反射率取得手段により求められた反射率が取る値の全範囲における各値の頻度を集計し、元画像の反射率の正規化を行う際のパラメータを設定する正規化パラメータ設定手段と、
    元画像の各画素について周辺平均輝度値を求める際に、注目画素とその注目画素の周辺画素とに対し畳み込み演算を行うための元画像用マスクを生成する元画像用マスク生成手段と、
    その元画像用マスク生成手段により生成された元画像用マスクを用いて、前記元画像の各画素について、画素の値とその画素の周辺平均輝度値とから反射率を求め、その反射率を前記正規化パラメータ設定手段により設定されたパラメータに基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素の輝度値との比に基づいて前記元画像を構成する各画素の輝度補正を行う補正手段とを備え、
    前記元画像用マスク生成手段は、前記縮小画像用マスク取得手段により取得された縮小画像用マスクを拡大処理することによって前記元画像用マスクを生成するものであり、
    前記縮小画像用マスクは、注目画素周辺の所定領域を覆うものであり、その所定領域内の位置に対応づけたフィルタ係数を有し、
    前記縮小画像反射率取得手段は、前記縮小画像用マスクで所定領域を覆うとき、フィルタ係数が対応づけられた位置に対応する参照画素の値にフィルタ係数を乗算することに基づいて算出される周辺平均輝度値から反射率を取得するものであることを特徴とする画像処理装置。
  2. 前記元画像に対する前記縮小画像の縮小率を設定する縮小率設定手段を備え、
    前記元画像用マスク生成手段は、縮小画像用マスクの縦横比と、元画像用マスクの縦横比とが等しくなるように、前記元画像用マスクを生成するものであり、且つ、前記縮小率設定手段により設定される前記縮小率で前記縮小画像用マスクのサイズを除した値が、前記元画像用マスクのサイズと等しくなるように、前記元画像用マスクを生成することにより、元画像に対する縮小画像の縮小率に応じた元画像用マスクを生成するものであることを特徴とする請求項1記載の画像処理装置。
  3. 前記補正手段は、前記元画像用マスクで覆われる注目画素周辺の領域のうち、前記元画像用マスクにおいてフィルタ係数が対応付けられた位置に対応する参照画素の値にフィルタ係数を乗算することに基づいて、周辺平均輝度値を算出するものであり、
    記元画像用マスク生成手段は、
    前記縮小画像用マスクに設定された座標のうち、フィルタ係数が設定された位置を示す座標を取得する座標取得手段と、
    前記座標取得手段により取得される前記座標を、前記縮小率設定手段により設定される前記縮小率で除算することにより、前記元画像用マスクにおいてフィルタ係数を設定すべき位置を示す座標を算出する座標算出手段とを備え、
    前記元画像用マスクにおいて、前記座標算出手段により算出された座標で示される位置に、フィルタ係数を設定するものであることを特徴とする請求項2記載の画像処理装置。
  4. 元画像を構成する各画素について周辺平均輝度値を求め、その周辺平均輝度値に基づいて、前記元画像を構成する各画素の輝度補正を行う画像処理装置により実行される画像処理プログラムにおいて、
    元画像を縮小して縮小画像を形成する縮小画像形成ステップと、
    その縮小画像形成ステップにより形成された縮小画像の各画素について周辺平均輝度値を算出する際に、注目画素とその注目画素の周辺画素とに対し畳み込み演算を行うための縮小画像用マスクを、前記縮小画像用マスクが予め記憶された記憶手段から取得し、または生成することにより取得する縮小画像用マスク取得ステップと、
    その縮小画像用マスク取得ステップにより取得した縮小画像用マスクを用いて、前記縮小画像の各画素について、画素の値とその画素の周辺平均輝度値とから反射率を求める縮小画像反射率取得ステップと、
    その縮小画像反射率取得ステップにより求められた反射率が取る値の全範囲における各値の頻度を集計し、元画像の反射率の正規化を行う際のパラメータを設定する正規化パラメータ設定ステップと、
    元画像の各画素について周辺平均輝度値を求める際に、注目画素とその注目画素の周辺画素とに対し畳み込み演算を行うための元画像用マスクを生成する元画像用マスク生成ステップと、
    その元画像用マスク生成ステップにより生成された元画像用マスクを用いて、前記元画像の各画素について、画素の値とその画素の周辺平均輝度値とから反射率を求め、その反射率を前記正規化パラメータ設定ステップにより設定されたパラメータに基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の輝度値との比に基づいて前記元画像を構成する各画素の輝度補正を行う補正ステップとを前記画像処理装置に実行させるものであり、
    前記元画像用マスク生成ステップは、前記縮小画像用マスク取得ステップにより取得された縮小画像用マスクを拡大処理することによって前記元画像用マスクを生成するものであり、
    前記縮小画像用マスクは、注目画素周辺の所定領域を覆うものであり、その所定領域内の位置に対応づけたフィルタ係数を有し、
    前記縮小画像反射率取得ステップは、前記縮小画像用マスクで所定領域を覆うとき、フィルタ係数が対応づけられた位置に対応する参照画素の値にフィルタ係数を乗算することに基づいて算出される周辺平均輝度値から反射率を取得するものであることを特徴とする画像処理プログラム。
  5. 前記元画像に対する前記縮小画像の縮小率を設定する縮小率設定ステップを、前記画像処理装置に実行させるものであり、
    前記元画像用マスク生成ステップは、縮小画像用マスクの縦横比と、元画像用マスクの縦横比とが等しくなるように、前記元画像用マスクを生成するものであり、且つ、前記縮小率設定ステップにより設定される前記縮小率で前記縮小画像用マスクのサイズを除した値が、前記元画像用マスクのサイズと等しくなるように、前記元画像用マスクを生成することにより、元画像に対する縮小画像の縮小率に応じた元画像用マスクを生成するものであることを特徴とする請求項4記載の画像処理プログラム。
  6. 前記補正ステップは、前記元画像用マスクで覆われる注目画素周辺の領域のうち、前記元画像用マスクにおいてフィルタ係数が対応付けられた位置に対応する参照画素の値にフィルタ係数を乗算することに基づいて、周辺平均輝度値を算出するものであり、
    記元画像用マスク生成ステップは、
    前記縮小画像用マスクに設定された座標のうち、フィルタ係数が設定された位置を示す座標を取得する座標取得ステップと、
    前記座標取得ステップにより取得される前記座標を、前記縮小率設定ステップにより設定される前記縮小率で除算することにより、前記元画像用マスクにおいてフィルタ係数を設定すべき位置を示す座標を算出する座標算出ステップとを備え、
    前記元画像用マスクにおいて、前記座標算出ステップにより算出された座標で示される位置に、フィルタ係数を設定するものであることを特徴とする請求項5記載の画像処理プログラム。
JP2006269685A 2006-08-31 2006-09-29 画像処理装置および画像処理プログラム Expired - Fee Related JP4661754B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006269685A JP4661754B2 (ja) 2006-09-29 2006-09-29 画像処理装置および画像処理プログラム
US11/864,251 US8081839B2 (en) 2006-08-31 2007-09-28 Image processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006269685A JP4661754B2 (ja) 2006-09-29 2006-09-29 画像処理装置および画像処理プログラム

Publications (2)

Publication Number Publication Date
JP2008092199A JP2008092199A (ja) 2008-04-17
JP4661754B2 true JP4661754B2 (ja) 2011-03-30

Family

ID=39375874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006269685A Expired - Fee Related JP4661754B2 (ja) 2006-08-31 2006-09-29 画像処理装置および画像処理プログラム

Country Status (1)

Country Link
JP (1) JP4661754B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101685421B1 (ko) * 2011-05-04 2016-12-12 한화테크윈 주식회사 영상 처리 장치 및 영상 처리 장치의 마스킹 방법
JP2014053036A (ja) * 2013-11-13 2014-03-20 Canon Inc 画像処理装置、画像処理方法およびプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002281347A (ja) * 2001-03-16 2002-09-27 Fuji Photo Film Co Ltd 鑑賞用データ補正方法および装置並びに記録媒体
JP2003219182A (ja) * 2002-01-25 2003-07-31 Fuji Photo Film Co Ltd 空間フィルタリング処理方法
JP2003333331A (ja) * 2002-05-10 2003-11-21 Matsushita Electric Ind Co Ltd 画像処理方法及び画像処理装置
JP2004165840A (ja) * 2002-11-11 2004-06-10 Minolta Co Ltd 画像処理プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002281347A (ja) * 2001-03-16 2002-09-27 Fuji Photo Film Co Ltd 鑑賞用データ補正方法および装置並びに記録媒体
JP2003219182A (ja) * 2002-01-25 2003-07-31 Fuji Photo Film Co Ltd 空間フィルタリング処理方法
JP2003333331A (ja) * 2002-05-10 2003-11-21 Matsushita Electric Ind Co Ltd 画像処理方法及び画像処理装置
JP2004165840A (ja) * 2002-11-11 2004-06-10 Minolta Co Ltd 画像処理プログラム

Also Published As

Publication number Publication date
JP2008092199A (ja) 2008-04-17

Similar Documents

Publication Publication Date Title
JP4867529B2 (ja) 画像処理プログラムおよび画像処理装置
US6058248A (en) Computerized method for improving data resolution
JP2008059287A (ja) 画像処理装置および画像処理プログラム
US8081839B2 (en) Image processor
US6760489B1 (en) Apparatus and method for image data interpolation and medium on which image data interpolation program is recorded
JP2008118216A (ja) 画像処理装置および画像処理プログラム
JP4862554B2 (ja) 画像処理プログラムおよび画像処理装置
JP4997846B2 (ja) 画像処理プログラムおよび画像処理装置
JP4661754B2 (ja) 画像処理装置および画像処理プログラム
JP4353233B2 (ja) 画像処理プログラムおよび画像処理装置
JP4345027B2 (ja) 画像処理プログラムおよび画像処理装置
JP4353234B2 (ja) 画像処理プログラムおよび画像処理装置
JP4687667B2 (ja) 画像処理プログラムおよび画像処理装置
JP2008059307A (ja) 画像処理装置および画像処理プログラム
JP4708866B2 (ja) ルックアップテーブル作成装置および方法,ならびにルックアップテーブル作成プログラム
JP4345026B2 (ja) 画像処理プログラムおよび画像処理装置
JP4281786B2 (ja) 画像処理プログラムおよび画像処理装置
JP4793175B2 (ja) 画像処理プログラムおよび画像処理装置
US8437031B2 (en) Image processing device and method for reducing an original image
US8031973B2 (en) Data processing device capable of executing retinex processing at high speed
JP4793166B2 (ja) 画像処理プログラムおよび画像処理装置
JP2008060944A (ja) 画像処理装置
JP2000105820A (ja) モノト―ン変換装置、モノト―ン変換方法およびモノト―ン変換プログラムを記録した媒体
JP2008060914A (ja) 画像処理装置
JP4710761B2 (ja) 画像処理プログラムおよび画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090330

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100914

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101207

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101220

R150 Certificate of patent or registration of utility model

Ref document number: 4661754

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140114

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees