| 【発明の名称】 |
画像処理プログラムおよび画像処理装置 |
| 【発明者】 |
【氏名】久野 雅司
|
| 【要約】 |
【課題】レティネックス処理を高速に行うことができる画像処理プログラムおよび画像処理装置を提供する。
【構成】元画像について、数式1により反射率R(x,y)を算出する(S11)。次に、縮小画像を用いて求めたクリップ範囲に基づいて、R(x,y)を正規化し、正規化反射率(正規化レティネックス値)refle(x、y)を得る(S12)。この処理は、「背景技術」において数式2などを用いて説明した方法と同一である。 |
【特許請求の範囲】
【請求項1】 画像の補正処理を行う画像処理装置により実行される画像処理プログラムにおいて、 正規化を行う際の上限値および下限値を設定する正規化パラメータ設定ステップと、 元画像の各画素について、周辺平均輝度を求め、その周辺平均輝度と元画像の画素値とに基づいてレティネックス値を算出するレティネックス値算出ステップと、 そのレティネックス値形成ステップにより算出されたレティネックス値を前記正規化パラメータ設定ステップにより設定された上限値および下限値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正を行う補正ステップとを備えていることを特徴とする画像処理プログラム。 【請求項2】 前記レティネックス値算出ステップは、前記元画像から分離された輝度信号のみについてレティネックス値を算出し、 前記補正ステップは、前記レティネックス値算出ステップにより算出されたレティネックス値を前記正規化パラメータ設定ステップにより設定された正規化を行う際の上限値および下限値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正することを特徴とする請求項1記載の画像処理プログラム。 【請求項3】 前記補正ステップにより補正された画像の画素値が取る全範囲の値がとる頻度を集計し画素値が取る値の範囲を変更することにより画素値の補正を行うヒストグラム処理ステップを備えていることを特徴とする請求項1または2記載の画像処理プログラム。 【請求項4】 ヒストグラム処理により補正を行う際のパラメータを設定するヒストグラム処理パラメータ設定ステップを備え、 前記ヒストグラム処理ステップは、前記ヒストグラム処理パラメータ設定ステップにより設定されたパラメータに基づいて補正を行うことを特徴とする請求項3記載の画像処理プログラム。 【請求項5】 前記画像処理装置は、ヒストグラム処理により補正を行う際のパラメータを任意に設定するヒストグラム処理パラメータ設定操作子を備え、 前記ヒストグラム処理パラメータ設定ステップは、前記ヒストグラム処理パラメータ設定操作子によりパラメータを設定することを特徴とする請求項4記載の画像処理プログラム。 【請求項6】 前記画像処理装置は、正規化を行う際の上限値および下限値とを任意に設定する正規化パラメータ設定操作子を備え、 前記正規化パラメータ設定ステップは、前記正規化パラメータ設定操作子により正規化を行う際の上限値および下限値とを設定することを特徴とする請求項1から5のいずれかに記載の画像処理プログラム。 【請求項7】 画像の補正処理を行う画像処理装置において、 正規化を行う際の上限値および下限値とを設定する正規化パラメータ設定手段と、 元画像の各画素について、周辺平均輝度を求め、その周辺平均輝度と元画像の画素値とに基づいてレティネックス値を算出するレティネックス値算出手段と、 そのレティネックス値算出手段により算出されたレティネックス値を前記正規化パラメータ設定手段により設定された上限値および下限値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正を行う補正手段とを備えていることを特徴とする画像処理装置。 【請求項8】 前記レティネックス値算出手段は、前記元画像から分離された輝度信号のみについてレティネックス値を算出し、 前記補正手段は、前記レティネックス値算出手段により算出されたレティネックス値を前記正規化パラメータ設定手段により設定された正規化を行う際の上限値および下限値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正することを特徴とする請求項7記載の画像処理装置。 【請求項9】 前記補正手段により補正された画像の画素値が取る全範囲の値がとる頻度を集計し画素値が取る値の範囲を変更することにより画素値の補正を行うヒストグラム処理手段を備えていることを特徴とする請求項7または8記載の画像処理装置。 【請求項10】 ヒストグラム処理により補正を行う際のパラメータを設定するヒストグラム処理パラメータ設定手段を備え、 前記ヒストグラム処理手段は、前記ヒストグラム処理パラメータ設定手段により設定されたパラメータに基づいて補正を行うことを特徴とする請求項9記載の画像処理装置。 【請求項11】 ヒストグラム処理により補正を行う際のパラメータを任意に設定するヒストグラム処理パラメータ設定操作子を備え、 前記ヒストグラム処理パラメータ設定手段は、前記ヒストグラム処理パラメータ設定操作子によりパラメータを設定することを特徴とする請求項10記載の画像処理装置。 【請求項12】 正規化を行う際の上限値および下限値とを任意に設定する正規化パラメータ設定操作子を備え、 前記正規化パラメータ設定手段は、前記正規化パラメータ設定操作子により正規化を行う際の上限値および下限値とを設定することを特徴とする請求項7から9のいずれかに記載の画像処理装置。
|
【発明の詳細な説明】【技術分野】 【0001】 本発明は、画像処理プログラムおよび画像処理装置に関し、特にレティネックス処理を高速で行うことができる画像処理プログラムおよび画像処理装置に関するものである。 【背景技術】 【0002】 逆光条件下で被写体が撮像された場合、被写体部分の画像は、詳細な態様が判別困難となるほど明度やコントラストの低い不明瞭な逆光画像となる。かかる逆光画像のみならず、露光の過不足や、撮像時のぶれやぼけ、ノイズ、光量不足などによる劣悪な画像を、画像処理によって明度やコントラストを向上させて画質を改良することが行われている。かかる画像処理の1手法として、レティネックス処理(Retinex処理)が知られている。 【0003】 レティネックス処理は、高画質部分については入力画像データを保持し、主に低画質部分の画質改良を行うものである。このレティネックス処理では、ガウスフィルタにより、元の画像の各画素データを周辺画素の画素データを反映させた値に補正し、その補正された画素データの自然対数から元の画像のリファレンス成分データを算出し、元画像の画素成分で元の画像の画素データを除してイルミナンス成分データを算出する。つまり、元の画像を、リファレンス成分とイルミナンス成分との2の構成成分に分けるのである。そして、イルミナンス成分に対してガンマ補正等の明度や階調(コントラスト)を補正する処理を行った後、その補正されたイルミナンス成分と、リファレンス成分とを合成することにより、元の画像に対し逆光画像部分などの低画質部分の画質が改良された画像データを生成することができる。リファレンス成分を求めるには、反射率R(x,y)の正規化を行う。 【0004】 ここで、図7を参照して、反射率R(x,y)の正規化について説明する。反射率R(x,y)は、次式により算出される。 【0005】 【数1】
ここで、xは、横方向の座標を、yは、縦方向の座標を、I(x,y)は、座標(x,y)における強度値を、F(x,y)は、座標(x,y)のフィルタ係数を、*は、畳み込み演算(コンボリューション)をそれぞれ示し、logは、eを底とする自然対数である。 【0006】 図7は、ある静止画像について、上式により求められた反射率R(x,y)の最小値を0、最大値を255とする0から255の範囲の整数値に正規化し、各整数の出現頻度を集計したヒストグラムである。 【0007】 このヒストグラムからメディアン値Mを求め、メディアン値から大きい側へ45%の画素数を含む範囲の上限値をU、メディアン値から小さい側へ45%の画素数を含む範囲の下限値をDとする。 【0008】 UおよびDの値に対応するR(x,y)の値を、UpR、DownRとし、正規化反射率(正規化レティネックス値)refle(x,y)は、R(x,y)の値がDownR以下の場合は、0.0とし、R(x,y)の値がUpR以上の場合は、1.0とし、R(x,y)の値がDownRより大きくUpRより小さい場合は、 【0009】 【数2】
とする。 【0010】 このように処理するとrefle(x,y)は、0.0から1.0の間の値を取るように正規化される。実験によれば、こうして得られた値に、0.3を加算し、refle(x,y)の値が0.3から1.3の値を取るようにするのがよいことが判明している。 【0011】 このようにしてrefle(x,y)が求められるので、クリップされる範囲(以下、クリップ範囲と称す:UpRとDownRとの間)を求めるため、R(x,y)を全画素分記憶しなければならない。尚かつ、R(x,y)は、対数演算により求まる数値であるので、小数点を用いて記録する必要があり、浮動小数点では、4バイト、倍精度実数の場合には8バイトで画素毎に記憶するため膨大な記憶容量が必要である。 【0012】 特開2001−69525号公報(特許文献1)には、このレティネックス処理をRGBの各プレーンで独立に行った場合に、カラーバランスが崩れたり色ずれが発生するという問題点を解決するために、RGB値をYCbCrやYIQという輝度成分と色成分により構成される座標空間に変換し、輝度成分Yに対してのみレティネックス処理を施し、色成分を維持したまま、RGBに戻すという方法が開示されている。この方法を用いると輝度成分のみが調整され、色成分は調整されないのでカラーバランスが崩れたり色ずれが発生することがない。また、この方法では、輝度成分のみにレティネックス処理を行うので、RGBの各プレーンそれぞれにレティネックス処理を行う場合に比べ、計算量が少なく、高速で処理を実行することができる。 【特許文献1】特開2001−69525号公報 【発明の開示】 【発明が解決しようとする課題】 【0013】 しかしながら、特許文献1などに開示された従来のレティネックス処理では、レティネックス画像の画素値を正規化するために、周辺平均輝度を求めたり、対数変換を行うなど、演算量が多大であるとともに、レティネックス画像を一時記憶する大きな記憶容量を必要とするという問題点があった。 【0014】 本発明は、上記問題点を解決するためになされたものであり、レティネックス処理を高速で行うことができる画像処理プログラムおよび画像処理装置を提供することを目的としている。 【課題を解決するための手段】 【0015】 この目的を達成するために、請求項1記載の画像処理プログラムは、画像の補正処理を行う画像処理装置により実行されるものであり、正規化を行う際の上限値および下限値を設定する正規化パラメータ設定ステップと、元画像の各画素について、周辺平均輝度画像を求め、その周辺平均輝度画像と元画像とに基づいてレティネックス画像を形成するレティネックス画像形成ステップと、そのレティネックス画像形成ステップにより形成されたレティネックス画像を前記正規化パラメータ設定ステップにより設定された上限値および下限値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正を行う補正ステップとを備えている。 【0016】 請求項2記載の画像処理プログラムは、請求項1記載の画像処理プログラムにおいて、前記レティネックス値算出ステップは、前記元画像から分離された輝度信号のみについてレティネックス値を算出し、前記補正ステップは、前記レティネックス値算出ステップにより算出されたレティネックス値を前記正規化パラメータ設定ステップにより設定された正規化を行う際の上限値および下限値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正する。 【0017】 請求項3記載の画像処理プログラムは、請求項1または2記載の画像処理プログラムにおいて、前記補正ステップにより補正された画像の画素値が取る全範囲の値がとる頻度を集計し画素値が取る値の範囲を変更することにより画素値の補正を行うヒストグラム処理ステップを備えている。 【0018】 請求項4記載の画像処理プログラムは、請求項3記載の画像処理プログラムにおいて、ヒストグラム処理により補正を行う際のパラメータを設定するヒストグラム処理パラメータ設定ステップを備え、前記ヒストグラム処理ステップは、前記ヒストグラム処理パラメータ設定ステップにより設定されたパラメータに基づいて補正を行う。 【0019】 請求項5記載の画像処理プログラムは、請求項4記載の画像処理プログラムにおいて、前記画像処理装置は、ヒストグラム処理により補正を行う際のパラメータを任意に設定するヒストグラム処理パラメータ設定操作子を備え、前記ヒストグラム処理パラメータ設定ステップは、前記ヒストグラム処理パラメータ設定操作子によりパラメータを設定する。 【0020】 請求項6記載の画像処理プログラムは、請求項1から5のいずれかに記載の画像処理プログラムにおいて、前記画像処理装置は、正規化を行う際の上限値および下限値とを任意に設定する正規化パラメータ設定操作子を備え、前記正規化パラメータ設定ステップは、前記正規化パラメータ設定操作子により正規化を行う際の上限値および下限値とを設定する。 【0021】 請求項7記載の画像処理装置は、画像の補正処理を行うものであり、正規化を行う際の上限値および下限値とを設定する正規化パラメータ設定手段と、元画像の各画素について、周辺平均輝度画像を求め、その周辺平均輝度画像と元画像とに基づいてレティネックス画像を形成するレティネックス画像形成手段と、そのレティネックス形成手段により形成されたレティネックス画像を前記正規化パラメータ設定手段により設定された上限値および下限値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正を行う補正手段とを備えている。 【0022】 請求項8記載の画像処理装置は、請求項7記載の画像処理装置において、前記レティネックス値算出手段は、前記元画像から分離された輝度信号のみについてレティネックス値を算出し、前記補正手段は、前記レティネックス値算出手段により算出されたレティネックス値を前記正規化パラメータ設定手段により設定された正規化を行う際の上限値および下限値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正する。 【0023】 請求項9記載の画像処理装置は、請求項7または8記載の画像処理装置において、前記補正手段により補正された画像の画素値が取る全範囲の値がとる頻度を集計し画素値が取る値の範囲を変更することにより画素値の補正を行うヒストグラム処理手段を備えている。 【0024】 請求項10記載の画像処理装置は、請求項9記載の画像処理装置において、ヒストグラム処理により補正を行う際のパラメータを設定するヒストグラム処理パラメータ設定手段を備え、前記ヒストグラム処理手段は、前記ヒストグラム処理パラメータ設定手段により設定されたパラメータに基づいて補正を行う。 【0025】 請求項11記載の画像処理装置は、請求項10記載の画像処理装置において、ヒストグラム処理により補正を行う際のパラメータを任意に設定するヒストグラム処理パラメータ設定操作子を備え、前記ヒストグラム処理パラメータ設定手段は、前記ヒストグラム処理パラメータ設定操作子によりパラメータを設定する。 【0026】 請求項12記載の画像処理装置は、請求項7から11のいずれかに記載の画像処理装置において、正規化を行う際の上限値および下限値とを任意に設定する正規化パラメータ設定操作子を備え、前記正規化パラメータ設定手段は、前記正規化パラメータ設定操作子により正規化を行う際の上限値および下限値とを設定する。 【発明の効果】 【0027】 請求項1記載の画像処理プログラムによれば、正規化を行う際の上限値および下限値を設定する正規化パラメータ設定ステップと、元画像の各画素について、周辺平均輝度画像を求め、その周辺平均輝度画像と元画像とに基づいてレティネックス画像を形成するレティネックス画像形成ステップと、そのレティネックス画像形成ステップにより形成されたレティネックス画像を正規化パラメータ設定ステップにより設定された上限値および下限値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正を行う補正ステップとを備えているので、レティネックス画像を正規化するパラメータが予め分かっている場合や、使用者が任意に設定することができるような場合には、正規化するパラメータを求めるための処理が不要となり、高速でレティネックス処理を行うことができるという効果がある。 【0028】 また、上記各ステップにおいては、前のステップにおいて処理した結果を記憶していなくても高速に処理することができるので大きな記憶容量を必要としないという効果もある。 【0029】 請求項2記載の画像処理プログラムによれば、請求項1記載の画像処理プログラムの奏する効果に加え、レティネックス値算出ステップは、元画像から分離された輝度信号のみについてレティネックス値を算出し、補正ステップは、レティネックス値算出ステップにより算出されたレティネックス値を正規化パラメータ設定ステップにより設定された正規化を行う際の上限値および下限値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正するので、レティネックス処理をRGBの各画素について行う場合に比べて、高速で処理することができるとともに、色ずれが発生することを防止することができるという効果がある。 【0030】 請求項3記載の画像処理プログラムによれば、請求項1または2記載の画像処理プログラムの奏する効果に加え、補正ステップにより補正された画像の画素値が取る全範囲の値がとる頻度を集計し画素値が取る値の範囲を変更することにより画素値の補正を行うヒストグラム処理ステップを備えているので、レティネックス処理によりダイナミックレンジが小さくなったり、全体的に明るくなり過ぎた場合においても、ダイナミックレンジを大きくしたり、明るくなりすぎを補正することができるという効果がある。 【0031】 請求項4記載の画像処理プログラムによれば、請求項3記載の画像処理プログラムの奏する効果に加え、ヒストグラム処理により補正を行う際のパラメータを設定するヒストグラム処理パラメータ設定ステップを備え、ヒストグラム処理ステップは、ヒストグラム処理パラメータ設定ステップにより設定されたパラメータに基づいて補正を行うので、ヒストグラム処理におけるパラメータを予め設定することにより、元画像の各画素について順次レティネックス処理とヒストグラム処理を行うことができ、速く出力を得ることができる。レティネックス処理を行った後、そのレティネックス処理を行った全画素についてヒストグラムを作成し、ヒストグラム処理におけるパラメータを求めて、ヒストグラム処理を行うと、出力が得られるまでに、時間を要するが、予めヒストグラム処理におけるパラメータが設定されている場合は、速く出力することができる。 【0032】 請求項5記載の画像処理プログラムによれば、請求項4記載の画像処理プログラムの奏する効果に加え、画像処理装置は、ヒストグラム処理により補正を行う際のパラメータを任意に設定するヒストグラム処理パラメータ設定操作子を備え、ヒストグラム処理パラメータ設定ステップは、ヒストグラム処理パラメータ設定操作子によりパラメータを設定するので、使用者が画像を視認して適切なヒストグラム処理におけるパラメータを設定することができ、使用者が適切な判断を行える場合には、適切なヒストグラム処理が行われるとともに、速く出力を得ることができる。 【0033】 請求項6記載の画像処理プログラムによれば、請求項1から5のいずれかに記載の画像処理プログラムの奏する効果に加え、画像処理装置は、正規化を行う際の上限値および下限値とを任意に設定する正規化パラメータ設定操作子を備え、正規化パラメータ設定ステップは、正規化パラメータ設定操作子により正規化を行う際の上限値および下限値とを設定するので、使用者が適切な正規化パラメータを設定することができるとともに、高速でレティネックス処理を実行することができるという効果がある。 【0034】 請求項7記載の画像処理装置によれば、正規化を行う際の上限値および下限値とを設定する正規化パラメータ設定手段と、元画像の各画素について、周辺平均輝度画像を求め、その周辺平均輝度画像と元画像とに基づいてレティネックス画像を形成するレティネックス画像形成手段と、そのレティネックス形成手段により形成されたレティネックス画像を前記正規化パラメータ設定手段により設定された上限値および下限値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正を行う補正手段とを備えているので、レティネックス画像を正規化するパラメータが予め分かっている場合や、使用者が任意に設定することができるような場合には、正規化するパラメータを求めるための処理が不要となり、高速でレティネックス処理を行うことができるという効果がある。 【0035】 また、上記各処理においては、前の処理において処理した結果を記憶していなくても高速に処理することができるので大きな記憶容量を必要としないという効果もある。 【0036】 請求項8記載の画像処理装置によれば、請求項7記載の画像処理装置の奏する効果に加え、レティネックス値算出手段は、前記元画像から分離された輝度信号のみについてレティネックス値を算出し、前記補正手段は、前記レティネックス値算出手段により算出されたレティネックス値を前記正規化パラメータ設定手段により設定された正規化を行う際の上限値および下限値に基づいて正規化した正規化レティネックス値を求め、その正規化レティネックス値と、元画像の画素値とに基づいて補正するので、レティネックス処理をRGBの各画素について行う場合に比べて、高速で処理することができるとともに、色ずれが発生することを防止することができるという効果がある。 【0037】 請求項9記載の画像処理装置によれば、請求項7または8記載の画像処理装置の奏する効果に加え、補正手段により補正された画像の画素値が取る全範囲の値がとる頻度を集計し画素値が取る値の範囲を変更することにより画素値の補正を行うヒストグラム処理手段を備えているので、レティネックス処理によりダイナミックレンジが小さくなったり、全体的に明るくなり過ぎた場合などにおいても、ダイナミックレンジを大きくしたり、明るくなりすぎを補正することができるという効果がある。 【0038】 請求項10記載の画像処理装置によれば、請求項9記載の画像処理装置の奏する効果に加え、ヒストグラム処理により補正を行う際のパラメータを設定するヒストグラム処理パラメータ設定手段を備え、ヒストグラム処理手段は、ヒストグラム処理パラメータ設定手段により設定されたパラメータに基づいて補正を行うので、ヒストグラム処理におけるパラメータを予め設定することにより、元画像の各画素について順次レティネックス処理とヒストグラム処理を行うことができ、速く出力を得ることができる。レティネックス処理を行った後、そのレティネックス処理を行った全画素についてヒストグラムを作成し、ヒストグラム処理におけるパラメータを求めて、ヒストグラム処理を行うと、出力が得られるまでに、時間を要するが、予めヒストグラム処理におけるパラメータが設定されている場合は、速く出力することができる。 【0039】 請求項11記載の画像処理装置は、請求項10記載の画像処理装置において、ヒストグラム処理により補正を行う際のパラメータを任意に設定するヒストグラム処理パラメータ設定操作子を備え、ヒストグラム処理パラメータ設定手段は、ヒストグラム処理パラメータ設定操作子によりパラメータを設定するので、使用者が画像を視認して適切なヒストグラム処理におけるパラメータを設定することができ、使用者が適切な判断を行える場合には、適切なヒストグラム処理が行われるとともに、速く出力を得ることができる。 【0040】 請求項12記載の画像処理装置によれば、請求項7から11のいずれかに記載の画像処理装置の奏する効果に加え、正規化を行う際の上限値および下限値とを任意に設定する正規化パラメータ設定操作子を備え、正規化パラメータ設定手段は、正規化パラメータ設定操作子により正規化を行う際の上限値および下限値とを設定するので、使用者が適切な正規化パラメータを設定することができるとともに、高速でレティネックス処理を実行することができるという効果がある。 【発明を実施するための最良の形態】 【0041】 以下、本発明の好ましい第1の実施形態について添付図面を参照して説明する。図1は、本実施形態の画像処理を行う機能を有するプリンタ1の電気的な構成を示したブロック図である。本実施形態においては、プリンタ1に搭載された画像処理プログラムは、パーソナルコンピュータ(以下「PC」と称する)2や、デジタルカメラ21や、外部メディア20から入力された画像データ(原画像データなど)に対しレティネックス処理(Retinex処理)およびヒストグラム処理を実行して、画像データの逆光画像部分などの低画質領域の補正を実行するように構成されている。 【0042】 図1に示すように、プリンタ1には、CPU11、ROM12、RAM13、印刷ヘッドなどから構成され、印刷媒体(例えば、紙媒体など)への印刷(出力)を行う印刷部15、出力画像サイズなどの入力値をユーザが入力可能なユーザ操作部(例えば、テンキーなど)を有する操作パネル16とを備えている。 【0043】 また、プリンタ1は、ケーブル5を介してPC2と接続可能なインターフェイス(以下「I/F」と称する)17と、ケーブル6を介してデジタルカメラ21と接続可能なI/F18と、外部メディア20(例えば、SDメモリカード、メモリスティックなどのフラッシュメモリにより構成される)を着脱自在に装着可能な外部メディアスロット19とを備えている。これらのI/F17、18により行われる通信方法としてUSB(Universal Serial Bus)が使用される。 【0044】 よって、プリンタ1は、PC2に記憶されている画像データをケーブル5及びI/F17を介して入力することが可能であると共に、デジタルカメラ21によって撮影された画像データをケーブル6及びI/F18を介して入力することが可能である。さらに、外部メディアスロット19に装着された外部メディア20から、その外部メディア20に記憶されている画像データを入力することが可能である。 【0045】 CPU11は、プリンタ1全体を制御する演算処理装置である。ROM12は、CPU11により実行される各種制御プログラムやそのプログラムを実行する際に用いられる固定値などを記憶するものであり、レティネックス処理やヒストグラム処理などの画像の処理を行う画像処理プログラムを記憶する画像処理プログラムメモリ12aや、印刷を行うための印刷制御プログラムを記憶する印刷制御プログラムメモリ12b等が備えられている。 【0046】 RAM13は、制御プログラムがCPU11により実行される際に必要な各種レジスタ群などが記憶されるワーキングエリアや、処理中のデータを一時的に格納するテンポラリエリア等を有しランダムにアクセスできる書き換え可能なメモリであり、元画像データを記憶する元画像メモリ13aと、元画像を縮小し、縮小した画像のレティネックス処理において求められる反射率を記憶する縮小レティネックス画像メモリ13bと、ヒストグラム処理において各画素値の頻度が記憶されるヒストグラムメモリ13c等を備えている。 【0047】 元画像データメモリ13aは、PC2、デジタルカメラ21、及び外部メディア20から、それぞれ、I/F17、I/F18、及び外部メディアスロット19を介して入力した画像データを記憶するものである。なお、本実施形態では、元画像データ及び出力画像データはいずれも、RGB値から構成され、これらの各RGB値は、「0」〜「255」の範囲の値である。 【0048】 RGB値は、光の3原色である赤を表すR値と、緑を表すG値と、青を示すB値とを構成成分とする値である。光の3原色の混色により各種の色は生成されるので、入力画像の各画素の色は、R値とG値とB値との組合せ(RGB値)により1の色(色相や階調など)が示される。このRGB値の値が大きいほど、輝度(明度)は高くなる。 【0049】 縮小レティネックス画像メモリ13bは、元画像を縮小し、その縮小した画像の輝度信号のみについてレティネックス処理において求められる反射率Rs(x,y)を記憶するメモリである。元画像を縮小する方法としては、縮小する画像の画素に対応する元画像の位置に最も近い画素の値をサンプリングし、そのサンプリングした画素の値をそのまま用いる最近傍(Nearest Neighbor)法や、縮小する画像の画素に対応する元画像の位置の周囲の画素を用いて補間演算を行うバイキュービック法や、平均画素法などが知られている。画質より処理速度を優先する場合は、最近傍法が用いられ、処理速度より画質を優先する場合は、バイキュービック法や、平均画素法が用いられる。 【0050】 これらいずれかの方法により元画像が縮小され、その縮小された画像の各画素(ピクセル)について反射率が上述の数式1を用いて演算され、この縮小レティネックス画像メモリ13bに記憶される。 【0051】 ヒストグラムメモリ13cは、レティネックス処理を完了した後のヒストグラム処理において、画像のRGB値が、0〜255の各整数値を取る頻度(画素数)が集計され、その頻度を集計するためのメモリである。ヒストグラムが作成されると、そのヒストグラムに基づいて、ヒストグラム処理を行うための上限値および下限値、メディアン値などが定められる。 【0052】 次に、図2および図3を参照して、CPU11により実行される画像処理について説明する。図2および図3は、画像処理を示すフローチャートである。図2に示す処理は、いわゆる前処理と呼ばれる処理であり、この処理では、反射率Rの正規化を行うためのクリップ範囲が設定される。なお、この前処理が行われている間は、画像の出力が行われない。 【0053】 この前処理では、まず、元画像データをPC2やデジタルカメラ21から読み込み、RAM13の元画像メモリ13aに記憶する(S1)。次に、元画像を縮小して縮小画像を形成し、その縮小画像の各画素について輝度信号Yと色信号Cb,Crに変換する(S2)。 【0054】 縮小画像を形成する方法としては、最近傍法や平均画素法が用いられ、輝度信号Yおよび色信号Cb,Crは、次式により演算される。 【0055】 【数3】
演算された輝度信号および色信号をRAM13などに一時記憶し、後の処理で使用するようにしてもよいが、記憶容量を削減したい場合には、これらを記憶せずに、必要な場合、元画像から画素値を読み出して上式により演算で求めてもよい。 【0056】 次に、上式により演算された輝度信号Yについて、反射率Rs(x,y)を算出する。なお、「s」は、縮小画像についての接尾辞であり、元画像については、接尾辞を付さないものとする。反射率Rsは、縮小画像の各画素の輝度値をIs(x,y)、縮小画像用のフィルタをFs(x,y)として、次式により演算される。 【0057】 【数4】
なお、「*」は、畳み込み演算(コンボリューション)を示し、logは、eを底とする自然対数である。 【0058】 次に、上記演算により求められた反射率Rs(x,y)をRAM13の縮小レティネックス画像メモリ13bに記憶する(S4)。 【0059】 次に、Rs(x,y)を最大値および最小値と比較する(S5)。詳細には、最初の座標について求めた反射率Rs(x,y)を最大値および最小値とし、そのつぎから求めた反射率Rs(x,y)と最大値および最小値とをそれぞれ比較し、今回求めた反射率Rs(x,y)が、最大値より大きい場合は、今回求めた反射率Rs(x,y)を新たな最大値とし、今回求めた反射率Rs(x,y)が、最小値より小さい場合は、今回求めた反射率Rs(x,y)を新たな最小値とし、今回求めた反射率Rs(x,y)が、最大値より小さく、最小値より大きい場合は、最大値、最小値を変更しないという処理である。 【0060】 次に、縮小画像の全ての座標についてS3〜S5の処理を行ったか否かを判断し(S6)、まだ、未処理の座標がある場合は(S6:No)、S3の処理に戻り、全ての座標についての処理を終了した場合は(S6:Yes)、S5の処理により求めた最大値と最小値に基づいて、反射率Rs(x,y)を正規化し、ヒストグラムを形成する(S7)。 【0061】 次に、その形成されたヒストグラムからメディアン値を求め(S8)、そのメディアン値とヒストグラムとから反射率Rs(x,y)のクリップ範囲を定める(S9)。このクリップ範囲は、例えば、メディアン値より大きい値で、全標本の45%の標本が含まれる上限値をクリップ範囲の上限値とし、メディアン値より小さい値で、全標本の45%が含まれる下限値をクリップ範囲の下限値とするものである。 【0062】 以上の前処理により、元画像を縮小した縮小画像の反射率により構成される縮小レティネックス画像を形成し、その縮小レティネックス画像から、元画像の反射率を正規化する際のクリップ範囲が求められる。このことにより、クリップ範囲を求めるための演算の回数が、元画像について求める演算の回数より非常に少なくすることができ、処理速度が速くなる。また、縮小された画像のレティネックス画像を記憶するので、元画像のレティネックス画像を記憶する場合に比べ、少ない記憶容量で処理することができるという利点がある。また、縮小画像を用いて求めたクリップ範囲と、元画像を用いて求めたクリップ範囲とは、大差がない。次表は、縮小画像により求めたクリップ範囲(上限値と下限値)と元画像により求めたクリップ範囲との差異を示すものである。 【0063】 【表1】
この表が示すように、元画像により求めた最大値は、2.712、最小値は、−4.063であり、縮小画像により求めた最大値は、1.729、最小値は、−2.607である。よって、元画像により求めた最大値と縮小画像により求めた最大値との差は、0.983であり、元画像により求めた最小値と縮小画像により求めた最小値との差は、1.456であって、かなり大きな差が認められる。 【0064】 一方、元画像により求めたクリップ範囲の上限値は、0.825、下限値は、−0.822であり、縮小画像により求めた上限値は、0.742、下限値は、−0.755である。よって、元画像により求めた上限値と縮小画像により求めた上限値との差は、0.083であり、元画像により求めた下限値と縮小画像により求めた下限値との差は、0.067であって、これらの差が小さいことが分かる。 【0065】 次に、図2に示す処理により求められたクリップ範囲に基づいて行う後処理である元画像のレティネックス処理について説明する。図3は、元画像のレティネックス処理を示すフローチャートである。なお、この後処理では、元画像の各画素について処理が行われ、処理された画素値は、順次印刷部15に出力される。 【0066】 まず、元画像について、数式1により反射率R(x,y)を算出する(S11)。次に、縮小画像を用いて求めたクリップ範囲に基づいて、R(x,y)を正規化し、正規化反射率(正規化レティネックス値)refle(x,y)を得る(S12)。この処理は、「背景技術」において数式2などを用いて説明した方法と同一である。 【0067】 次に、このrefle(x,y)を用いて、次式によりレティネックス処理の出力値Out(x,y)を得る(S13)。 【0068】 【数5】
なお、γ1は、定数である。 【0069】 次に、このOut(x,y)と、色信号Cb、Crとに基づいて、RGB値に変換する(S14)。この変換は、次式により算出される。 【0070】 【数6】
以上の処理により元画像の輝度信号にレティネックス処理が施され、色信号に基づいてRGB値に戻した画素値が求められる。次に、この処理された画素値を印刷部15に出力する(S15)。 よって、前処理により、正規化を行うクリップ範囲が特定されているので、後処理では、順次各画素について処理を行い印刷部15に出力することができる。その結果、処理を開始してから、印刷が開始されるまでの時間を短縮することができる。 【0071】 次に、元画像の全画素について処理を終了したか否かを判断し(S16)、まだ処理を終了していない画素がある場合は(S16:No)、S11の処理に戻り、全ての画素について処理を終了した場合は(S16:Yes)、この後処理を終了する。 【0072】 以上、第1の実施形態について説明したように、元画像を縮小した縮小画像の輝度信号についてレティネックス処理を行い、その縮小されたレティネックス画像からクリップ範囲を求めて、そのクリップ範囲に基づいて、元画像についてレティネックス処理を行うので、レティネックス画像を記憶するメモリの記憶容量を小さくすることができるとともに、クリップ範囲を求める処理を高速で行うことができる。また、前処理において、クリップ範囲が求められ、後処理においては、前処理において求められたクリップ範囲に基づいて、順次元画像の画素についてレティネックス処理を行い、出力することができるので、処理を開始してから出力が開始されるまでの時間を短縮することができる。 【0073】 次に、第2の実施形態について説明する。レティネックス処理を行うと、ダイナミックレンジが狭くなったり、暗部が明るくなりすぎて、不自然になる場合がある。そこで、レティネックス処理を行った後、ヒストグラム処理を行うと画質を改善することができる。第2の実施形態では、レティネックス処理を行った後、ヒストグラム処理を行う。 【0074】 図4を参照してヒストグラム処理について説明する。図4(a)は、画像の一例であり、図4(b)は、その画像から形成したヒストグラムである。このヒストグラムは、画素値がとる値の全範囲の各値について、頻度(画素数)を集計したものである。カラー画像の場合には、R,G,Bの各値を8ビット、すなわち0から255までの値をとる場合には、0から255の各整数値について、その値となる画素のR,G,B値について1を加算することにより集計する。例えば、ある画素のR,G,B値が(100,200,200)である場合には、100の値に1を、200の値に2を加算するというようにして集計する。 【0075】 このようにして作成されたヒストグラムにおいて、明部と暗部とを除く割合(カット割合)が設定され、その割合から上限値Uと下限値Dとが求められる。例えば、明部と暗部とを除く割合として、それぞれ3%とした場合に、明部に含まれる画素数が全画素数の3倍(1画素につき、R,G,Bの3つの値をとる)の3%に当たる数を、最大値255から上限値Uまでに含むように上限値Uを設定し、同様に、暗部に含まれる画素数が全画素数の3倍の3%に当たる数を、最小値0から下限値Dまでに含むように下限値Dを設定する。 【0076】 このようにして、上限値Uおよび下限値Dを設定すると、画素値の最小値から下限値Dまでの範囲の値を最小値とし、上限値Uから最大値までの範囲の値を最大値とし、下限値Dから上限値Uまでの範囲の値を線形、または非線形な関数で補正する。 【0077】 即ち、入力する画素値をinput、補正した画素値をoutput、画素値が取る範囲を0から255、γ2を定数とした場合に、 inputが、下限値D以下の場合は、0、 inputが、上限値U以上の場合は、255 inputが、下限値Dより大きく上限値Uより小さい場合は、 a=(input−D)/(U−D) 【0078】 【数7】
この式でγ2=1とすると、outputは、下限値と上限値との間の値を線形に拡大することになる。 【0079】 レティネックス処理における数式5のγ1の値に応じて設定してもよい。このγ1の値を大きくすると、より明るく補正されることになり、γの値が小さいと、あまり補正されないことになる。したがって、γ1が大きい場合は、ヒストグラム処理における下限値Dの値を大きく(暗部のカット量またはカット割合を大きく)し、全体的に暗い方へ画素値を変更すると画像に締まりがでる。 【0080】 また、レティネックス処理により、逆光などの部分は、明るく補正されるが、全体的にも明るく補正され、元の画像とは、異なった印象となる。そこでレティネックス処理におけるガンマ補正とは逆のガンマ補正をヒストグラム処理によかけることにより、明るく成りすぎた部分を自然な状態に戻すことができる。 【0081】 また、レティネックス処理におけるガンマ補正(数式5)に用いた定数γ1に応じて、ヒストグラム処理におけるガンマγ2を次式により求めるようにしてもよい。すなわち、 γ2=(γ1−1.0)/A+1.0 (但し、Aは、5から20の値)とする。 【0082】 レティネックス処理前のメディアン値にレティネックス処理後のメディアン値が近づくようにγ2を設定する。 【0083】 画素値をinput、補正した画素値をoutput、画素値が取る全範囲をB、全範囲の最大値をMAX、全範囲の最小値をMIN、下端範囲の上限値をD、上端範囲の下限値をU、元画像のメディアン値をOM、前記レティネックス処理ステップにより処理された画像のメディアン値をRM、定数をαとした場合に、 inputが、下端範囲の場合は、MINとし、 inputが、上端範囲の場合は、MAXとし、 inputが、上記範囲以外の場合は、 a=(input−D)/(U−D) outputをaのγ2べき乗にBを乗じた値とし、 γ2=log(target/MAX)/log(RM/MAX) 但し、target=(OM×α+RM)/(1+α) ここで、定数αを1とした場合は、レティネックス処理前のメディアン値とレティネックス処理後のメディアン値との中間にtargetが設定され、定数αの値を1より大きくするとtargetが元画像のメディアン値に近づき、定数αの値を1より小さい値とすると元画像のメディアン値から離れるように設定される。なお、定数αは、予め所定の値に設定してもよいし、使用者が任意に設定できるようにしてもよい。 【0084】 図5は、第2の実施形態における前処理を示すフローチャートである。この前処理のうち、S1〜S9の処理については、図2に示す処理と同一であるので、その説明を省略する。 【0085】 S9の処理の次に、縮小レティネックスメモリ13bに記憶したRs(x,y)をS9の処理で求められたクリップ範囲で正規化し、refles(x,y)を数式4により求め(S21)、 次に、Outs(x,y)を次式により求める(S22)。 【0086】 【数8】
次に、このOuts(x,y)を輝度信号として、数式6によりRGB値に変換し、ヒストグラムに登録する(S23)。このヒストグラムの登録とは、RGB値それぞれが取る値は、0から255までの整数値であり、ここで得られた、R値、G値、B値の各値に対応する値の頻度に1を加算することである。加算された値は、ヒストグラムメモリ13cに記憶される。 【0087】 このS21からS23までの処理を縮小画像の全ての座標について処理を行ったか否かを判断し(S24)、まだ処理を行っていない座標が残っている場合は(S24:No)、S21の処理に戻り、全ての座標について処理を行った場合は(S24:Yes)、ヒストグラムメモリ13cに形成されたヒストグラムから、ヒストグラム処理におけるパラメータを取得する(S25)。 【0088】 以上の処理により元画像を縮小した縮小画像を用いて、レティネックス処理における正規化パラメータと、レティネックス処理の後、実行されるヒストグラム処理におけるパラメータとが取得される。 【0089】 この実施態様では、上記のように縮小画像をレティネックス処理することにより、その過程で正規化パラメータを取得し、レティネックス処理の後、ヒストグラム処理におけるパラメータを取得するものとしたが、使用者が、画像を視認することにより適切なパラーメータ値を設定することができる場合や、類似した画像により、これらのパラメータ値が定まる場合には、縮小画像を処理する必要はない。 【0090】 次に、これらのパラメータが予め設定された後の、後処理について図6を参照して説明する。図6は、後処理を示すフローチャートである。 【0091】 後処理では、まず、元画像の画素について輝度信号を求め、その輝度信号について反射率R(x,y)を数式1により算出し(S31)、クリップ範囲に基づいてR(x,y)を正規化したrefle(x,y)を求める(S32)。 【0092】 次に、Out(x,y)を数式5により算出し(S33)、算出したOut(x,y)を輝度信号として数式6によりRGB値に戻し(S34)、そのRGB値をS25で求めたパラメータに基づいてヒストグラム補正を行い(S35)、印刷部15に出力する(S36)。 【0093】 次に、元画像の全画素についての処理を終了したか否かを判断し(S37)、まだ、処理していない画素がある場合は(S37:No)、S31の処理に戻り、全画素についての処理を終了した場合は(S37:Yes)、この後処理を終了する。 【0094】 以上、説明したように第2の実施形態によれば、カラー画像の輝度についてレティネックス処理を行い、カラー画像に戻した後、ヒストグラム処理を行う。このことにより、画像のダイナミックレンジを広げ、より高画質の画像を得ることができる。ヒストグラム処理を行う場合は、レティネックス処理におけるパラメータに応じてヒストグラム処理におけるパラメータを設定することにより、より良く画質を向上させることができる。 【0095】 なお、請求項に記載の正規化パラメータ設定ステップおよび正規化パラメータ設定手段は、図2に示すフローチャートのS7〜S9の処理が該当し、レティネックス画像形成ステップおよびレティネックス画像形成ステップは、図3に示すフローチャートのS11の処理が該当し、補正ステップおよび補正手段は、図3に示すフローチャートのS13の処理が該当し、ヒストグラム処理ステップおよびヒストグラム処理手段は、図6に示すフローチャートのS35の処理が該当する。 【0096】 以上、実施形態に基づいて本発明を説明したが、本発明は上記各実施形態に何ら限定されるものでなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。 【0097】 例えば、上記実施形態では、色表現系はRGB形式としたが、RGB形式以外の他の色表現系、例えば、CMY形式などに本発明を適用してもよい。 【0098】 また、上記実施形態では、前処理において、縮小画像を用いて正規化を行う際のクリップ範囲を設定するものとしたが、ユーザが任意の値を設定する操作子を備え、その操作子を操作することにより、クリップ範囲を設定してもよい。 【0099】 その際、数値で設定するようにしてもよいし、予め複数のプリセット値を記憶し、そのプリセット値の中からいずれかを選ぶようにしてもよい。また、いくつかの画像の種類に対応してクリップ範囲を予め設定しておき、処理を行う画像が入力された場合に、いずれの画像の種類に最も類似しているかを判断し、最も類似している画像のクリップ範囲を適用するようにしてもよい。 【0100】 また、上記実施形態では、カラー元画像から輝度信号と色信号とに分離し、輝度信号についてレティネックス処理を行った後、色信号に基づいてカラー画像に戻す処理を行ったが、カラー元画像から輝度信号と色差信号とに分離し、同様の処理を行うようにしてもよい。 【0101】 また、上記実施形態では、本発明の画像処理プログラムは、プリンタ1に組み込まれたCPU11により実行されるものとしたが、パーソナルコンピュータにアプリケーションとして供給され、パーソナルコンピュータに組み込まれたCPUなどにより実行されるようにしてもよい。 【0102】 また、レティネックス処理は、SSR(シングルスケール法)であってもMSR(マルチスケール法)であってもよい。 【0103】 また、上記実施形態の画像処理では、CPU11によりレティネックス処理などを行うものとしたが、DSP(Digital Signal Processor)により行ってもよい。DSPを用いると、より高速に積和演算などの処理を実行することができる。 【図面の簡単な説明】 【0104】 【図1】本発明の実施形態の画像処理プログラムを搭載したプリンタの電気的構成を示すブロック図である。 【図2】画像処理プログラムにより行われる前処理を示すフローチャートである。 【図3】前処理に続いて実行される後処理を示すフローチャートである。 【図4】ヒストグラム処理を説明するための図であり、(a)は、画像の一例を示す画像図であり、(b)は、その画像の画素値のヒストグラムである。 【図5】第2の実施形態における前処理を示すフローチャートである。 【図6】第2の実施形態における後処理を示すフローチャートである。 【図7】正規化を行うためのクリップ範囲について説明するためのヒストグラムである。 【符号の説明】 【0105】 1 プリンタ 2 パーソナルコンピュータ 11 CPU 12 ROM 12a 画像処理プログラムメモリ 13 RAM 13a 元画像メモリ 13b レティネックス画像メモリ
|
| 【出願人】 |
【識別番号】000005267 【氏名又は名称】ブラザー工業株式会社
|
| 【出願日】 |
平成18年8月18日(2006.8.18) |
| 【代理人】 |
【識別番号】100103045 【弁理士】 【氏名又は名称】兼子 直久
【識別番号】100127605 【弁理士】 【氏名又は名称】伊藤 愛
【識別番号】100129447 【弁理士】 【氏名又は名称】橋本 努
|
| 【公開番号】 |
特開2008−48264(P2008−48264A) |
| 【公開日】 |
平成20年2月28日(2008.2.28) |
| 【出願番号】 |
特願2006−223249(P2006−223249) |
|