(57)【特許請求の範囲】
【請求項１】
レティネックス処理をコンピュータにより実行させる画像処理プログラムにおいて、
元画像を用いて、元画像より小さなサイズの縮小画像を形成し、前記縮小画像を用いて、縮小周辺平均輝度画像を形成する縮小周辺平均輝度画像形成ステップと、
その縮小周辺平均輝度画像形成ステップにより形成された縮小周辺平均輝度画像と、縮小画像と、に基づいて、元画像より小さなサイズの縮小レティネックス画像を、対数演算を実行することによって形成する縮小レティネックス画像形成ステップと、
その縮小レティネックス画像形成ステップにより形成された縮小レティネックス画像を拡大する拡大処理ステップと、
その拡大処理ステップにより拡大された画像情報と、元画像とに基づいて出力画像を形成する出力画像形成ステップとを備えていることを特徴とする画像処理プログラム。
【請求項２】
前記縮小周辺平均輝度画像形成ステップは、元画像から縮小画像を形成するために最近傍（Nearest  Neighbor）法により画素を抽出するサンプリングステップと、そのサンプリングステップにより抽出された画素の値とフィルタ係数との畳み込み演算を行う演算ステップとを備えていることを特徴とする請求項１記載の画像処理プログラム。
【請求項３】
前記縮小周辺平均輝度画像形成ステップは、元画像を平均画素法により縮小する画像縮小ステップと、その縮小ステップにより縮小された画像の画素とフィルタ係数との畳み込み演算を行う演算ステップとを備えていることを特徴とする請求項１記載の画像処理プログラム。
【請求項４】
前記縮小周辺平均輝度画像形成ステップは、元画像を構成する全画素について周辺平均輝度を求めるフィルタ処理ステップと、そのフィルタ処理ステップにより求められた周辺平均輝度により形成される画像を縮小する縮小ステップとを備えていることを特徴とする請求項１記載の画像処理プログラム。
【請求項５】
前記拡大処理ステップは、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素の位置の周囲に存在する縮小レティネックス画像の画素の値に基づいて値を取得することを特徴とする請求項１から４のいずれかに記載の画像処理プログラム。
【請求項６】
前記拡大処理ステップは、前記画素の位置の周囲に存在する縮小レティネックス画像の複数の画素の値に基づいて補間演算により値を求める補間演算ステップを備えていることを特徴とする請求項５記載の画像処理プログラム。
【請求項７】
前記補間演算ステップは、値を求める画素の位置の周囲に存在する縮小レティネックス画像の画素の値と、値を求める画素に対応する元画像の画素の値と前記周囲に存在する画素に対応する元画像の値との差により重み付けを行って補間演算を行うことを特徴とする請求項６記載の画像処理プログラム。
【請求項８】
前記拡大処理ステップは、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素に対応する元画像の画素の値に近い値を有し、その画素の周囲に存在する元画像の画素に対応する縮小レティネックス画像の画素の値に基づいて値を取得することを特徴とする請求項１から４のいずれかに記載の画像処理プログラム。
【請求項９】
前記拡大処理ステップは、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素に対応する元画像の画素の値と、その元画像の画素の近傍の画素の値との平均値に近い値を有し、その画素の周囲に存在する元画像の画素に対応する縮小レティネックス画像の画素の値に基づいて値を取得することを特徴とする請求項１から４のいずれかに記載の画像処理プログラム。
【請求項１０】
レティネックス処理をコンピュータにより実行させる画像処理装置において、
元画像を用いて、元画像より小さなサイズの縮小画像を形成し、前記縮小画像を用いて、縮小周辺平均輝度画像を形成する縮小周辺平均輝度画像形成手段と、
その縮小周辺平均輝度画像形成手段により形成された縮小周辺平均輝度画像と、縮小画像と、に基づいて、元画像より小さなサイズの縮小レティネックス画像を、対数演算を実行することによって形成する縮小レティネックス画像形成手段と、
その縮小レティネックス画像形成手段により形成された縮小レティネックス画像を拡大する拡大処理手段と、
その拡大処理手段により拡大された画像情報と、元画像とに基づいて出力画像を形成する出力画像形成手段とを備えていることを特徴とする画像処理装置。
【請求項１１】
前記縮小周辺平均輝度画像形成手段は、元画像から縮小画像を形成するために最近傍法により画素を抽出するサンプリング手段と、そのサンプリング手段により抽出された画素の値とフィルタ係数との畳み込み演算を行う演算手段とを備えていることを特徴とする請求項１０記載の画像処理装置。
【請求項１２】
前記縮小周辺平均輝度画像形成手段は、元画像を平均画素法により縮小する画像縮小手段と、その縮小手段により縮小された画像の画素とフィルタ係数との畳み込み演算を行う演算手段とを備えていることを特徴とする請求項１０記載の画像処理装置。
【請求項１３】
前記縮小周辺平均輝度画像形成手段は、元画像を構成する全画素について周辺平均輝度を求めるフィルタ処理手段と、そのフィルタ処理手段により求められた周辺平均輝度により形成される画像を縮小する縮小手段とを備えていることを特徴とする請求項１０記載の画像処理装置。
【請求項１４】
前記拡大処理手段は、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素の位置の周囲に存在する縮小レティネックス画像の画素の値に基づいて値を取得することを特徴とする請求項１０から１３のいずれかに記載の画像処理装置。
【請求項１５】
前記拡大処理手段は、前記画素の位置の周囲に存在する縮小レティネックス画像の複数の画素の値に基づいて補間演算により値を求める補間演算手段を備えていることを特徴とする請求項１４記載の画像処理装置。
【請求項１６】
前記補間演算手段は、値を求める画素の位置の周囲に存在する縮小レティネックス画像の画素の値と、値を求める画素に対応する元画像の画素の値と前記周囲に存在する画素に対応する元画像の値との差により重み付けを行って補間演算を行うことを特徴とする請求項１５記載の画像処理装置。
【請求項１７】
前記拡大処理手段は、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素に対応する元画像の画素の値に近い値を有し、その画素の周囲に存在する元画像の画素に対応する縮小レティネックス画像の画素の値に基づいて値を取得することを特徴とする請求項１０から１３のいずれかに記載の画像処理装置。
【請求項１８】
前記拡大処理手段は、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素に対応する元画像の画素の値と、その元画像の画素の近傍の画素の値との平均値に近い値を有し、その画素の周囲に存在する元画像の画素に対応する縮小レティネックス画像の画素の値に基づいて値を取得することを特徴とする請求項１０から１３のいずれかに記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理プログラムおよび画像処理装置に関し、特にレティネックス処理を高速化することができる画像処理プログラムおよび画像処理装置に関するものである。
【背景技術】
【０００２】
逆光条件下で被写体が撮像された場合、被写体部分の画像は、詳細な態様が判別困難となるほど明度やコントラストの低い不明瞭な逆光画像となる。かかる逆光画像のみならず、露光の過不足や、撮像時のぶれやぼけ、ノイズ、光量不足などによる劣悪な画像を、画像処理によって明度やコントラストを向上させて画質を改良することが行われている。かかる画像処理の１手法として、レティネックス処理（Ｒｅｔｉｎｅｘ処理）が知られている。
【０００３】
レティネックス処理は、高画質部分については入力画像データを保持し、主に低画質部分の画質改良を行うものである。このレティネックス処理では、ガウスフィルタにより、元の画像の各画素データを周辺画素の画素データを反映させた値に補正し、その補正された画素データの自然対数から元の画像のリファレンス成分データを算出し、元画像の画素成分で元の画像の画素データを除してイルミナンス成分データを算出する。つまり、元の画像を、リファレンス成分とイルミナンス成分との２の構成成分に分けるのである。そして、イルミナンス成分に対してガンマ補正等の明度や階調（コントラスト）を補正する処理を行った後、その補正されたイルミナンス成分と、リファレンス成分とを合成することにより、元の画像に対し逆光画像部分などの低画質部分の画質が改良された画像データを生成することができる。
【０００４】
特許３７３１５７７号（特許文献１）には、このレティネックス処理の処理速度を高速にする方法が開示されている。この方法は、図７に示すように、元画像を平均画素法などの方法により縮小画像（解像度が低い）を形成し、その縮小画像の各画素について周辺平均輝度を求めた周辺平均輝度画像（ボケ画像）を形成し、そのボケ画像を拡大した拡大ボケ画像と元画像とからレティネックス処理画像を形成し、更に、そのレティネックス処理画像と元画像とから出力画像を形成している。
【０００５】
図７において、横方向の座標をｘ、縦方向の座標をｙとし、元画像および縮小画像の画素の値（濃度値）をＩ（ｘ、ｙ）で表している。縮小画像からボケ画像を形成する場合は、フィルタの係数をＦ（ｘ，ｙ）として、畳み込み演算（コンボリューション）が行われる。次式は、その畳み込み演算を表す。
Ｆ（ｘ、ｙ）＊Ｉ（ｘ，ｙ）
また、レティネックス処理画像をＲ（ｘ，ｙ）、出力画像をＯｕｔ（ｘ，ｙ）で表している。
【特許文献１】特許３７３１５７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示された発明では、拡大したボケ画像と元画像とからレティネックス処理画像を求めるために、対数演算を多く行わなければならず、演算に時間がかかるという問題点があった。また、出力画像を形成する際には、正規化を行うためにレティネックス処理画像（Ｒ（ｘ，ｙ））を一時記憶するメモリが必要である。正規化を行うためには、レティネックス処理画像の画素が取る値の最大値および最小値を抽出し、その抽出された最大値と最小値とを範囲とする各値の画素の頻度を集計したヒストグラムを作成して上位および下位の値をクリッピングする。したがって、レティネックス処理画像を一時記憶しなければならず、そのメモリの容量が大きくなるという欠点もあった。
【０００７】
本発明は、上記問題点を解決するためになされたものであり、レティネックス処理を高速化することができる画像処理プログラムおよび画像処理装置を提供することを目的としている。
【課題を解決するための手段】
【０００８】
この目的を達成するために、請求項１記載の画像処理プログラムは、レティネックス処理をコンピュータにより実行させるものであり、元画像を用いて、元画像より小さなサイズの縮小画像を形成し、前記縮小画像を用いて、縮小周辺平均輝度画像を形成する縮小周辺平均輝度画像形成ステップと、その縮小周辺平均輝度画像形成ステップにより形成された縮小周辺平均輝度画像と、縮小画像と、に基づいて、元画像より小さなサイズの縮小レティネックス画像を、対数演算を実行することによって形成する縮小レティネックス画像形成ステップと、その縮小レティネックス画像形成ステップにより形成された縮小レティネックス画像を拡大する拡大処理ステップと、その拡大処理ステップにより拡大された画像情報と、元画像とに基づいて出力画像を形成する出力画像形成ステップとを備えている。
【０００９】
【００１０】
請求項２記載の画像処理プログラムは、請求項１記載の画像処理プログラムにおいて、前記縮小周辺平均輝度画像形成ステップは、元画像から縮小画像を形成するために最近傍（Nearest  Neighbor）法により画素を抽出するサンプリングステップと、そのサンプリングステップにより抽出された画素の値とフィルタ係数との畳み込み演算を行う演算ステップとを備えている。
【００１１】
請求項３記載の画像処理プログラムは、請求項１記載の画像処理プログラムにおいて、前記縮小周辺平均輝度画像形成ステップは、元画像を平均画素法により縮小する画像縮小ステップと、その縮小ステップにより縮小された画像の画素とフィルタ係数との畳み込み演算を行う演算ステップとを備えている。
【００１２】
請求項４記載の画像処理プログラムは、請求項１記載の画像処理プログラムにおいて、前記縮小周辺平均輝度画像形成ステップは、元画像を構成する全画素について周辺平均輝度を求めるフィルタ処理ステップと、そのフィルタ処理ステップにより求められた周辺平均輝度により形成される画像を縮小する縮小ステップとを備えている。
【００１３】
請求項５記載の画像処理プログラムは、請求項１から４のいずれかに記載の画像処理プログラムにおいて、前記拡大処理ステップは、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素の位置の周囲に存在する縮小レティネックス画像の画素の値に基づいて値を取得する。
【００１４】
請求項６記載の画像処理プログラムは、請求項５記載の画像処理プログラムにおいて、前記拡大処理ステップは、前記画素の位置の周囲に存在する縮小レティネックス画像の複数の画素の値に基づいて補間演算により値を求める補間演算ステップを備えている。
【００１５】
請求項７記載の画像処理プログラムは、請求項６記載の画像処理プログラムにおいて、前記補間演算ステップは、値を求める画素の位置の周囲に存在する縮小レティネックス画像の画素の値と、値を求める画素に対応する元画像の画素の値と前記周囲に存在する画素に対応する元画像の値との差により重み付けを行って補間演算を行う。
【００１６】
請求項８記載の画像処理プログラムは、請求項１から４のいずれかに記載の画像処理プログラムにおいて、前記拡大処理ステップは、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素に対応する元画像の画素の値に近い値を有し、その画素の周囲に存在する元画像の画素に対応する縮小レティネックス画像の画素の値に基づいて値を取得する。
【００１７】
請求項９記載の画像処理プログラムは、請求項１から４のいずれかに記載の画像処理プログラムにおいて、前記拡大処理ステップは、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素に対応する元画像の画素の値と、その元画像の画素の近傍の画素の値との平均値に近い値を有し、その画素の周囲に存在する元画像の画素に対応する縮小レティネックス画像の画素の値に基づいて値を取得する。
【００１８】
請求項１０記載の画像処理装置は、レティネックス処理をコンピュータにより実行させるものであり、元画像を用いて、元画像より小さなサイズの縮小画像を形成し、前記縮小画像を用いて、縮小周辺平均輝度画像を形成する縮小周辺平均輝度画像形成手段と、その縮小周辺平均輝度画像形成手段により形成された縮小周辺平均輝度画像と、縮小画像と、に基づいて、元画像より小さなサイズの縮小レティネックス画像を、対数演算を実行することによって形成する縮小レティネックス画像形成手段と、その縮小レティネックス画像形成手段により形成された縮小レティネックス画像を拡大する拡大処理手段と、その拡大処理手段により拡大された画像情報と、元画像とに基づいて出力画像を形成する出力画像形成手段とを備えている。
【００１９】
【００２０】
請求項１１記載の画像処理装置は、請求項１０記載の画像処理装置において、前記縮小周辺平均輝度画像形成手段は、元画像から縮小画像を形成するために最近傍法により画素を抽出するサンプリング手段と、そのサンプリング手段により抽出された画素の値とフィルタ係数との畳み込み演算を行う演算手段とを備えている。
【００２１】
請求項１２記載の画像処理装置は、請求項１０記載の画像処理装置において、前記縮小周辺平均輝度画像形成手段は、元画像を平均画素法により縮小する画像縮小手段と、その縮小手段により縮小された画像の画素とフィルタ係数との畳み込み演算を行う演算手段とを備えている。
【００２２】
請求項１３記載の画像処理装置は、請求項１０記載の画像処理装置において、前記縮小周辺平均輝度画像形成手段は、元画像を構成する全画素について周辺平均輝度を求めるフィルタ処理手段と、そのフィルタ処理手段により求められた周辺平均輝度により形成される画像を縮小する縮小手段とを備えている。
【００２３】
請求項１４記載の画像処理装置は、請求項１０から１３のいずれかに記載の画像処理装置において、前記拡大処理手段は、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素の位置の周囲に存在する縮小レティネックス画像の画素の値に基づいて値を取得する。
【００２４】
請求項１５記載の画像処理装置は、請求項１４記載の画像処理装置において、前記拡大処理手段は、前記画素の位置の周囲に存在する縮小レティネックス画像の複数の画素の値に基づいて補間演算により値を求める補間演算手段を備えている。
【００２５】
請求項１６記載の画像処理装置は、請求項１５記載の画像処理装置において、前記補間演算手段は、値を求める画素の位置の周囲に存在する縮小レティネックス画像の画素の値と、値を求める画素に対応する元画像の画素の値と前記周囲に存在する画素に対応する元画像の値との差により重み付けを行って補間演算を行う。
【００２６】
請求項１７記載の画像処理装置は、請求項１０から１３のいずれかに記載の画像処理装置において、前記拡大処理手段は、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素に対応する元画像の画素の値に近い値を有し、その画素の周囲に存在する元画像の画素に対応する縮小レティネックス画像の画素の値に基づいて値を取得する。
【００２７】
請求項１８記載の画像処理装置は、請求項１０から１３のいずれかに記載の画像処理装置において、前記拡大処理手段は、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素に対応する元画像の画素の値と、その元画像の画素の近傍の画素の値との平均値に近い値を有し、その画素の周囲に存在する元画像の画素に対応する縮小レティネックス画像の画素の値に基づいて値を取得する。
【発明の効果】
【００２８】
請求項１記載の画像処理プログラムによれば、元画像を用いて、元画像より小さなサイズの縮小画像を形成し、前記縮小画像を用いて、縮小周辺平均輝度画像を形成する縮小周辺平均輝度画像形成ステップと、その縮小周辺平均輝度画像形成ステップにより形成された周辺平均輝度画像と、縮小画像と、に基づいて、縮小レティネックス画像形成ステップにより元画像より小さなサイズの縮小レティネックス画像を、対数演算を実行することによって形成する。次に、その形成された縮小レティネックス画像を拡大処理ステップにより拡大し、その拡大された画像情報と、元画像とに基づいて出力画像形成ステップにより出力画像を形成するので、サイズが小さい周辺平均輝度画像を拡大し、その拡大された画像と元画像とからレティネックス画像を形成する処理に比べ、縮小レティネックス画像を形成する際の対数演算の回数が少なく、高速で処理を行うことができるという効果がある。また、縮小レティネックス画像は、サイズが小さいので、メモリ容量を少なくすることができるという効果もある。
【００２９】
【００３０】
請求項２記載の画像処理プログラムによれば、請求項１記載の画像処理プログラムの奏する効果に加え、縮小周辺平均輝度画像形成ステップは、元画像から最近傍法により画素を抽出するサンプリングステップと、そのサンプリングステップにより抽出された画素の値とフィルタ係数との畳み込み演算を行う演算ステップとを備えているので、縮小画像を形成するための画素の抽出が容易であるとともに、畳み込み演算で行われる積和演算の回数が少なくて済み、高速で処理することができるという効果がある。
【００３１】
請求項３記載の画像処理プログラムによれば、請求項１記載の画像処理プログラムの奏する効果に加え、縮小周辺平均輝度画像形成ステップは、元画像を平均画素法により縮小する画像縮小ステップと、その縮小ステップにより縮小された画像の画素とフィルタ係数との畳み込み演算を行う演算ステップとを備えているので、畳み込み演算において使用される画素の値は、画像を形成する全画素の値を反映したものであり、高画質の画像を得ることができるという効果がある。
【００３２】
請求項４記載の画像処理プログラムによれば、請求項１記載の画像処理プログラムの奏する効果に加え、縮小周辺平均輝度画像形成ステップは、元画像を構成する全画素について周辺平均輝度を求めるフィルタ処理ステップと、そのフィルタ処理ステップにより求められた周辺平均輝度により形成される画像を縮小する縮小ステップとを備えているので、畳み込み演算における積和演算の回数は減少しないが、より高画質の画像を得ることができるという効果がある。
【００３３】
請求項５記載の画像処理プログラムによれば、請求項１から４のいずれかに記載の画像処理プログラムの奏する効果に加え、拡大処理ステップは、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素の位置の周囲に存在する縮小レティネックス画像の画素の値に基づいて値を取得するので、処理が簡単であり、高速に処理することができるという効果がある。
【００３４】
請求項６記載の画像処理プログラムによれば、請求項５記載の画像処理プログラムの奏する効果に加え、拡大処理ステップは、画素の位置の周囲に存在する縮小レティネックス画像の複数の画素の値に基づいて補間演算により値を求める補間演算ステップを備えているので、最も近い位置の画素の値とする場合に比べ、その画素の周囲の値を反映し、より高画質の画像を得ることができるという効果がある。
【００３５】
請求項７記載の画像処理プログラムによれば、請求項６記載の画像処理プログラムの奏する効果に加え、補間演算ステップは、値を求める画素の位置の周囲に存在する縮小レティネックス画像の画素の値と、値を求める画素に対応する元画像の画素の値と周囲に存在する画素に対応する元画像の値との差により重み付けを行って補間演算を行うので、その画素に対応する元画像の画素の値とその周辺の画素の値とが反映され、より高画質の画像を得ることができるという効果がある。
【００３６】
請求項８記載の画像処理プログラムによれば、請求項１から４のいずれかに記載の画像処理プログラムの奏する効果に加え、拡大処理ステップは、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素に対応する元画像の画素の値に近い値を有し、その画素の周囲に存在する元画像の画素に対応する縮小レティネックス画像の画素の値に基づいて値を取得するので、位置的に近い縮小レティネックス画像の画素の値を採用するよりも、よりよい近似を行うことができ、より高画質の画像を得ることができるという効果がある。
【００３７】
請求項９記載の画像処理プログラムによれば、請求項１から４のいずれかに記載の画像処理プログラムの奏する効果に加え、拡大処理ステップは、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素に対応する元画像の画素の値と、その元画像の画素の近傍の画素の値との平均値に近い値を有し、その画素の周囲に存在する元画像の画素に対応する縮小レティネックス画像の画素の値に基づいて値を取得するので、求める画素の近傍の画素の値を反映し、より高画質の画像を得ることができるという効果がある。
【００３８】
請求項１０記載の画像処理装置によれば、元画像を用いて、元画像より小さなサイズの縮小画像を形成し、前記縮小画像を用いて、縮小周辺平均輝度画像を形成する縮小周辺平均輝度画像形成手段と、その縮小周辺平均輝度画像形成手段により形成された縮小周辺平均輝度画像と、縮小画像と、に基づいて、縮小レティネックス画像形成手段により元画像より小さなサイズの縮小レティネックス画像を、対数演算を実行することによって形成する。次に、その形成された縮小レティネックス画像を拡大処理手段により拡大し、その拡大された画像情報と、元画像とに基づいて出力画像形成手段により出力画像を形成するので、サイズが小さい周辺平均輝度画像を拡大し、その拡大された画像と元画像とからレティネックス画像を形成する処理に比べ、縮小レティネックス画像を形成する際の対数演算の回数が少なく、高速で処理を行うことができるという効果がある。また、縮小レティネックス画像は、サイズが小さいので、メモリ容量を少なくすることができるという効果もある。
【００３９】
【００４０】
請求項１１記載の画像処理装置によれば、請求項１０記載の画像処理装置の奏する効果に加え、縮小周辺平均輝度画像形成手段は、元画像から最近傍法により画素を抽出するサンプリング手段と、そのサンプリング手段により抽出された画素の値とフィルタ係数との畳み込み演算を行う演算手段とを備えているので、縮小画像を形成するための画素の抽出が容易であるとともに、畳み込み演算で行われる積和演算の回数が少なくて済み、高速で処理することができるという効果がある。
【００４１】
請求項１２記載の画像処理装置によれば、請求項１０記載の画像処理装置の奏する効果に加え、縮小周辺平均輝度画像形成手段は、元画像を平均画素法により縮小する画像縮小手段と、その縮小手段により縮小された画像の画素とフィルタ係数との畳み込み演算を行う演算手段とを備えているので、畳み込み演算において使用される画素の値は、画像を形成する全画素の値を反映したものであり、高画質の画像を得ることができるという効果がある。
【００４２】
請求項１３記載の画像処理装置によれば、請求項１０記載の画像処理装置の奏する効果に加え、縮小周辺平均輝度画像形成手段は、元画像を構成する全画素について周辺平均輝度を求めるフィルタ処理手段と、そのフィルタ処理手段により求められた周辺平均輝度により形成される画像を縮小する縮小手段とを備えているので、畳み込み演算における積和演算の回数は減少しないが、より高画質の画像を得ることができるという効果がある。
【００４３】
請求項１４記載の画像処理装置によれば、請求項１０から１３のいずれかに記載の画像処理装置の奏する効果に加え、拡大処理手段は、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素の位置の周囲に存在する縮小レティネックス画像の画素の値に基づいて値を取得するので、処理が簡単であり、高速に処理することができるという効果がある。
【００４４】
請求項１５記載の画像処理装置によれば、請求項１４記載の画像処理装置の奏する効果に加え、拡大処理手段は、画素の位置の周囲に存在する縮小レティネックス画像の複数の画素の値に基づいて補間演算により値を求める補間演算手段を備えているので、最も近い位置の画素の値とする場合に比べ、その画素の周囲の値を反映し、より高画質の画像を得ることができるという効果がある。
【００４５】
請求項１６記載の画像処理装置によれば、請求項１５記載の画像処理装置の奏する効果に加え、補間演算手段は、値を求める画素の位置の周囲に存在する縮小レティネックス画像の画素の値と、値を求める画素に対応する元画像の画素の値と周囲に存在する画素に対応する元画像の値との差により重み付けを行って補間演算を行うので、その画素に対応する元画像の画素の値とその周辺の画素の値とが反映され、より高画質の画像を得ることができるという効果がある。
【００４６】
請求項１７記載の画像処理装置によれば、請求項１０から１３のいずれかに記載の画像処理装置の奏する効果に加え、拡大処理手段は、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素に対応する元画像の画素の値に近い値を有し、その画素の周囲に存在する元画像の画素に対応する縮小レティネックス画像の画素の値に基づいて値を取得するので、位置的に近い縮小レティネックス画像の画素の値を採用するよりも、よりよい近似を行うことができ、より高画質の画像を得ることができるという効果がある。
【００４７】
請求項１８記載の画像処理装置によれば、請求項１０から１３のいずれかに記載の画像処理装置の奏する効果に加え、拡大処理手段は、拡大された画像を構成する画素に対応する縮小レティネックス画像の画素が存在しない場合は、その画素に対応する元画像の画素の値と、その元画像の画素の近傍の画素の値との平均値に近い値を有し、その画素の周囲に存在する元画像の画素に対応する縮小レティネックス画像の画素の値に基づいて値を取得するので、求める画素の近傍の画素の値を反映し、より高画質の画像を得ることができるという効果がある。
【発明を実施するための最良の形態】
【００４８】
以下、本発明の好ましい実施形態について添付図面を参照して説明する。図１は、本実施形態の画像処理のプログラムを搭載したプリンタ１の電気的な構成を示したブロック図である。本実施形態においては、プリンタ１に搭載された画像処理のプログラムは、パーソナルコンピュータ（以下「ＰＣ」と称する）２や、デジタルカメラ２１や、外部メディア２０から入力された画像データ（原画像データなど）に対しレティネックス処理（Ｒｅｔｉｎｅｘ処理）を実行して、画像データの逆光画像部分などの低画質領域の補正を実行するように構成されている。
【００４９】
図１に示すように、プリンタ１には、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、印刷ヘッドなどから構成され、印刷媒体（例えば、紙媒体など）への印刷（出力）を行う印刷部１５、出力画像サイズなどの入力値をユーザが入力可能なユーザ操作部（例えば、テンキーなど）を有する操作パネル１６とを備えている。
【００５０】
また、プリンタ１は、ケーブル５を介してＰＣ２と接続可能なインターフェイス（以下「Ｉ／Ｆ」と称する）１７と、ケーブル６を介してデジタルカメラ２１と接続可能なＩ／Ｆ１８と、外部メディア２０（例えば、ＳＤメモリカード、メモリスティックなどのフラッシュメモリにより構成される）を着脱自在に装着可能な外部メディアスロット１９とを備えている。近年、これらのＩ／Ｆ１７、１８により行われる通信方法としてＵＳＢ（Universal  Serial  Bus）が使用される。
【００５１】
よって、プリンタ１は、ＰＣ２に記憶されている画像データをケーブル５及びＩ／Ｆ１７を介して入力することが可能であると共に、デジタルカメラ２１によって撮影された画像データをケーブル６及びＩ／Ｆ１８を介して入力することが可能である。さらに、外部メディアスロット１９に装着された外部メディア２０から、その外部メディア２１に記憶されている画像データを入力することが可能である。
【００５２】
ＣＰＵ１１は、プリンタ１全体を制御する演算処理装置（演算装置）である。ＲＯＭ１２は、ＣＰＵ１１により実行される各種制御プログラムやそのプログラムを実行する際に用いられる固定値などを記憶するものであり、この実施形態では、レティネックス処理などの画像の処理を行う画像処理プログラムを記憶する画像処理プログラムメモリ１２ａと、その処理において使用されるガウス関数を記憶するガウス関数メモリ１２ｂ等を備えている。
【００５３】
レティネックス処理におけるフィルタ処理（マスク処理ともいう）に使用されるフィルタの係数は、ガウス関数メモリ１２ｂに記憶されたガウス関数を用いて演算により求められる。
【００５４】
ＲＡＭ１３は、ＣＰＵ１１で実行される制御プログラムに必要な各種レジスタ群などが設定されたワーキングエリアや、処理中のデータを一時的に格納するテンポラリエリア等を有しランダムにアクセスできる書き換え可能なメモリであり、元画像データを記憶する原画像メモリ１３ａと、レティネックス処理により求められる縮小レティネックス画像を記憶する縮小レティネックス画像メモリ１３ｂ等を備えている。
【００５５】
元画像データメモリ１３ａは、ＰＣ２、デジタルカメラ２１、及び外部メディア２０から、それぞれ、Ｉ／Ｆ１７、Ｉ／Ｆ１８、及び外部メディアスロット１９を介して入力した画像データを記憶するものである。なお、本実施形態では、元画像データ及び出力画像データはいずれも、ＲＧＢ値から構成され、これらのＲＧＢ値は、「０」〜「２５５」の範囲の値である。
【００５６】
尚、ＲＧＢ値は、光の３原色である赤を表すＲ値と、緑を表すＧ値と、青を示すＢ値とを構成成分とする値である。光の３原色の混色により各種の色は生成されるので、入力画像の各画素の色は、Ｒ値とＧ値とＢ値との組合せ（ＲＧＢ値）により１の色（色相や階調など）が示される。このＲＧＢ値の値が大きいほど、輝度（明度）は高くなる。
【００５７】
縮小レティネックス画像メモリ１３ｂは、レティネックス処理の途中において、平均輝度画像と、元画像とにより形成される画像を記憶するメモリである。出力画像が形成される際には、この縮小レティネックス画像の各画素の最大値および最小値が検出されて、ヒストグラムの上位および下位の値を制限するクリッピング処理などにより正規化が行われる。
【００５８】
次に図２を参照して、プリンタ１のＣＰＵ１１によって実行されるレティネックス処理について説明する。図２は、本プリンタ１で実行されるレティネックス処理の概要を模式的に示す図である。
【００５９】
まず、元画像から、縮小画像を形成する。この縮小画像を形成する方法としては、元画像を構成する画素のうち、所定の間隔で抽出（サンプリング）した画素の値（濃度値）をとる最近傍法（ニアレストネイバー法）、周囲の４つの画素の値から線形補間により値を求めるバイリニア法、周囲の１６個の画素の値から３次関数を用いて補間により値を求めるバイキュービック法、元画像の占める面積を考慮して値を平均することにより値を求める平均画素法などが知られている。このうち、最近傍法は、単に所定の位置の画素を抽出ものであるので処理が簡単であり、高速で処理することができる。一方、平均画素法は、全ての画素を用いて縮小する方法であるので、縮小された画像が最も高画質である。
【００６０】
次に、縮小された画像の各画素についての周辺平均輝度を求めた周辺平均輝度画像を求める。この処理は、ガウス関数を用いて作成されたフィルタの係数と、縮小画像の画素の値とを畳み込み演算（コンボリューション）することにより算出される。元画像を縮小した縮小画像の画素の横座標をｘ、縦座標をｙで表し、その画素の値をＩ（ｘ、ｙ）で表し、フィルタの係数を同様に、Ｆ（ｘ、ｙ）とし、畳み込み演算をＦ（ｘ，ｙ）＊Ｉ（ｘ、ｙ）として表す。
【００６１】
次に、畳み込み演算により形成された周辺平均輝度画像と、縮小画像とから縮小レティネックス画像を形成する。この演算は、レティネックス画像の画素の値をＲ（ｘ，ｙ）とし、次に示す数式１で表される。
【００６２】
【数１】
0004687667.tif 000002
この数式が示すように、この処理では、各画素について、対数変換が行われる。
【００６３】
次に、このようにして形成された縮小レティネックス画像を拡大するとともに正規化し、元画像の値を使って出力画像を形成する。この演算は、出力画像の画素の値をＯｕｔ（ｘ、ｙ）として、次に示す数式２で表される。
【００６４】
【数２】
0004687667.tif 000003
ここで、ｒｅｆｌｅ（ｘ、ｙ）は、Ｒ（ｘ、ｙ）を正規化した値である。
なお、縮小レティネックス画像を拡大する方法には、各種の方法があり、後述する。
【００６５】
次に、図３および図４を参照して、周辺平均輝度画像の形成方法について説明する。図３（ａ）は、元画像の画素を示すテーブルであって、ここでは、横１６、縦１６の画素により構成され、各画素の値Ｉには、添え字ｘを左端から右方へ向かって０，１，２・・、添え字ｙを上端から下方向かって０，１，２・・・を付加している。
【００６６】
図３（ｂ）は、フィルタの構成を示すテーブルであって、ここでは、横５、縦５の画素により構成され、各フィルタ係数Ｆは、元画像の場合と同様に添え字ｘ、ｙを付加している。これらのフィルタ係数は、ガウス関数を使用して中央部の値は大きく、中央から距離が遠くなるほど値が小さくなる値が形成される。
【００６７】
この図３（ｂ）に示すフィルタと、図３（ａ）に示す元画像を縮小した縮小画像の各画素とについて、畳み込み演算を行うことにより、周辺平均輝度画像が形成される。
【００６８】
次に、このようにして形成された周辺平均輝度画像と縮小画像とを上記数式１により演算を行うことにより、図４（ａ）に示す縮小レティネックス画像を形成する。図４（ａ）は、画像のサイズを縮小（解像度を低下）した縮小レティネックス画像を示すテーブルであり、横５、縦５の画素より構成され、各画素の値Ｑには、元画像の場合と同様に添え字ｘ、ｙを付加している。
【００６９】
図４（ａ）に示す縮小レティネックス画像を形成する方法には、上記のように、まず、元画像を縮小し、その縮小した縮小画像に対してフィルタ処理を行って縮小された周辺平均輝度画像を形成し、その縮小された周辺平均輝度画像と縮小画像とから数式１を用いて縮小レティネック画像を形成する方法と、周辺平均輝度画像を、元画像のサイズ（元の解像度）で形成し、その周辺平均輝度画像を縮小し、元画像を縮小した縮小画像とに基づいて数式１を用いて縮小レティネックス画像を形成する方法とがある。
【００７０】
元画像を縮小し、その縮小された画像にフィルタ処理を行う場合は、畳み込み演算における積和演算の回数を減少させることができるので、より高速に演算を行うことができる。また、画像を縮小する際に、平均画素法を使用すると、全ての画素の値を反映させることができるので、処理された画像の画質を高画質にすることができる。
【００７１】
また、数式１の対数演算を行う回数は、縮小しないレティネック画像を形成する場合に比べて少ないので、処理を高速化することができるとともに、一時記憶する必要があるレティネックス画像を記憶するメモリの記憶容量を削減することができる。
【００７２】
いずれの場合も、画像を縮小する方法としては、ニアレストネーバ法、バイリニア法、バイキュービック法、平均画素法などを用いることができる。縮小画像を形成した場合に、その縮小画像を記憶し、その記憶した縮小画像に基づいて周辺平均輝度画像を形成し、次に、その周辺平均輝度画像と、記憶した縮小画像とに基づいて縮小レティネックス画像を形成してもよいし、縮小画像を記憶せずに、周辺平均輝度画像を形成する場合および縮小レティネックス画像を形成する場合に縮小画像を形成するようにしてもよい。
【００７３】
次に図４（ａ）に示す縮小レティネックス画像を図４（ｂ）に示すレティネックス画像に拡大する方法について説明する。図４（ｂ）は、レティネックス画像を示すテーブルであって、ここでは、元画像と同様に、横１６、縦１６の画素により構成され、各画素の値Ｒには、元画像の場合と同様に添え字ｘ、ｙを付加している。グレーで示す画素の位置については、図４（ａ）に示す縮小レティネックス画像に対応する値が求められていることを示している。
【００７４】
縮小レティネックス画像を拡大する方法には、次に示す５つの方法がある。
（１）第１の方法
最も座標位置が近い縮小レティネックス画像の画素の値とする。
例えば、図４（ｂ）に示すレティネックス画像において、Ｒ（０，０）、Ｒ（０，１）、Ｒ（０，２）、Ｒ（１，０）、Ｒ（１，１）、Ｒ（１，２）、Ｒ（２，０）、Ｒ（２，１）、Ｒ（２，２）の値は、縮小レティネックス画像のＱ（０，０）の値とし、Ｒ（０，３）、Ｒ（０，４）、Ｒ（０，５）、Ｒ（０，６）、Ｒ（１，３）、Ｒ（１，４）、Ｒ（１，５）、Ｒ（１，６）、Ｒ（２，３）、Ｒ（２，４）、Ｒ（２，５）、Ｒ（２，６）の値は、縮小レティネックス画像のＱ（０，４）の値などとする。
【００７５】
（２）第２の方法
座標位置の周囲４つの位置の縮小レティネックス画像の値から線形補間により求める。
例えば、Ｒ（１，１）の値は、次式により求める。
【００７６】
【数３】
0004687667.tif 000004
（３）第３の方法
第３の方法については、図５を参照して説明する。図５は、元画像の一部の画素の値を示すテーブルである。求めるレティネックス画像の座標位置に対応する元画像の画素の値に最も近い元画像の画素の値に対応する縮小レティネックス画像の画素の値とする。例えば、Ｒ（１，１）を求める場合に、図５に示すようにＩ（１，１）が１９０であり、
Ｉ（０，０）＝２００、Ｉ（０，４）＝１８０、Ｉ（４，０）＝１９５，Ｉ（４，４）＝２１０であるとすれば、１９０に最も近い値である１９５の値を有するＩ（４，０）に対応する縮小レティネックス画像の画素の値であるＱ（４，０）とする。
尚、図５において、説明に使用しない画素については、その値を「−」で示している。
【００７７】
（４）第４の方法
第３の方法の変形であって、求めるレティネックス画像の座標位置に対応する元画像の画素およびその画素の近傍の画素の平均の値に最も近い元画像の画素の値に対応する縮小レティネックス画像の画素の値とする。例えば、着目する画素の左右上下に隣合う４つの画素との平均をとるものとし、（３）の場合と同様に、Ｉ（０，０）＝２００、Ｉ（０，４）＝１８０、Ｉ（４，０）＝１９５，Ｉ（４，４）＝２１０であり、Ｒ（１，１）を求める場合に、Ｉ（１，１）の値が１９０、Ｉ（０，１）の値が２００、Ｉ（１，０）の値が２１０、Ｉ（１，２）の値が２１５、Ｉ（２，１）の値が２２０であるとすると、平均値は、（１９０＋２００＋２１０＋２１５＋２２０）／５＝２０７となる。
したがって、Ｉ（０，４）＝２１０の値が最も近いのでＱ（０，４）をとる。
【００７８】
尚、ここでは、５つの画素の平均をとるものとしたが、更に対角線上の画素の値を加えて平均を取るようにしてもよい。また、これらの画素の値の最小値と最大値とを検出し、その最小値と最大値との平均値を取るようにしてもよい。
【００７９】
（５）第５の方法
第２の方法の変形であって、求める画素の近傍の４つの縮小レティネックス画像の画素の値を使用し、求める画素に対応する元画像の値と、その４つの画素の元画像の値との差を重み係数として補間演算を行う。すなわち、まず求める画素に対応する元画像の画素の値と、その近傍の４点に対応する元画像の画素の値との差の絶対値を求める。
例えば、Ｒ（１，１）は、次式により演算される。
【００８０】
【数４】
0004687667.tif 000005
ここで、
ｄｉｆｆ（０，０）＝ａｂｓ（Ｉ（０，０）−Ｉ（１，１））
ｄｉｆｆ（４，０）＝ａｂｓ（Ｉ（４，０）−Ｉ（１，１））
ｄｉｆｆ（０，４）＝ａｂｓ（Ｉ（０，４）−Ｉ（１，１））
ｄｉｆｆ（４，４）＝ａｂｓ（Ｉ（４，４）−Ｉ（１，１））
ただし、ａｂｓは、絶対値である。
次に、これらの絶対値、ｄｉｆｆ（０，０）、ｄｉｆｆ（４，０）、ｄｉｆｆ（０，４）、ｄｉｆｆ（４，４）のうちの最大値ｄｉｆｆ＿ｍａｘを求める。
【００８１】
次に、この最大値ｄｉｆｆ＿ｍａｘと、各絶対値との差を次式により求め、
ｄｉｆｍ（０，０）＝ｄｉｆｆ＿ｍａｘ−ｄｉｆｆ（０，０）
ｄｉｆｍ（４，０）＝ｄｉｆｆ＿ｍａｘ−ｄｉｆｆ（４，０）
ｄｉｆｍ（０，４）＝ｄｉｆｆ＿ｍａｘ−ｄｉｆｆ（０，４）
ｄｉｆｍ（４，４）＝ｄｉｆｆ＿ｍａｘ−ｄｉｆｆ（４，４）
これらの和である、ｄｉｆｆ＿ｓｕｍを、次式により演算する。
ｄｉｆｆ＿ｓｕｍ＝ｄｉｆｍ（０，０）＋ｄｉｆｍ（４，０）＋ｄｉｆｍ（０，４）＋
ｄｉｆｍ（４，４）
各４点の重み係数、Ｗ（０，０）、Ｗ（４，０）、Ｗ（０，４）、Ｗ（４，４）は、最大値ｄｉｆｆ＿ｍａｘと各絶対値との差を、上記和により除する次式により求められる。
Ｗ（０，０）＝ｄｉｆｍ（０，０）／ｄｉｆｆ＿ｓｕｍ
Ｗ（４，０）＝ｄｉｆｍ（４，０）／ｄｉｆｆ＿ｓｕｍ
Ｗ（０，４）＝ｄｉｆｍ（０，４）／ｄｉｆｆ＿ｓｕｍ
Ｗ（４，４）＝ｄｉｆｍ（４，４）／ｄｉｆｆ＿ｓｕｍ
この第５の方法によれば、元画像の画素の濃度値が反映されるので、より高画質の処理画像を得ることができる。
【００８２】
図６は、本発明によるレティネックス処理を行った画像を示す一例であり、図６（ａ）は、第２の方法により拡大を行った場合の画像を示す、破線Ａで示す部分に、シャギーが発生している。一方、図６（ｂ）は、第５の方法により拡大を行った場合の画像であり、図６（ａ）のようにシャギーを発生することなくレティネックス処理が行われた画像を示す。
【００８３】
以上、説明したように上記実施形態によれば、レティネックス処理を行う場合に、元画像の解像度を低下させた縮小レティネックス画像を形成し、次に、その縮小レティネックス画像を拡大するとともに、正規化を行ってレティネックス画像を形成し、さらに元画像とで出力画像を形成するので、縮小レティネック画像を形成する場合の演算を高速化することができるとともに、縮小レティネックス画像は、サイズが小さいのでメモリの記憶容量を削減することができる。よって、画像処理装置を安価に提供することができる。
【００８４】
以上、実施形態に基づいて本発明を説明したが、本発明は上記各実施形態に何ら限定されるものでなく、本発明の趣旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
【００８５】
例えば、上記実施形態では、色表現系はＲＧＢ形式としたが、ＲＧＢ形式以外の他の色表現系、例えば、Ｌａｂ形式や、Ｙｃｃ形式など、明度と色成分とが分かれている形式の場合には、明度成分（Ｌ又はＹ）に本発明を実施できるから、Ｌａｂ形式、又はＹｃｃ形式にも、本発明を適用しても良い。
【００８６】
また、上記実施形態では、ガウス関数を用いて演算によりフィルタ係数を求めるものとしたが、よく用いる画像のサイズや画質に応じて画質の劣化が少ないフィルタを予めメモリに記憶し、その記憶されたフィルタのフィルタ係数と画素の濃度値とを演算することによりフィルタ処理を行うようにしてもよい。
【００８７】
また、上記実施形態では、本発明の画像処理プログラムは、プリンタ１に組み込まれたＣＰＵ１１により実行されるものとしたが、パーソナルコンピュータにアプリケーションとして供給され、パーソナルコンピュータに組み込まれたＣＰＵなどにより実行されるようにしてもよい。
【００８８】
また、レティネックス処理は、ＳＳＲ（シングルスケール法）であってもＭＳＲ（マルチスケール法）であってもよい。
【００８９】
また、上記実施形態の画像処理では、ＣＰＵ１１によりレティネックス処理を行うものとしたが、ＤＳＰ（Digital  Signal  Processor）により行ってもよい。ＤＳＰを用いると、より高速に積和演算などの処理を実行することができる。
【図面の簡単な説明】
【００９０】
【図１】本発明の実施形態の画像処理プログラムを搭載したプリンタの電気的構成を示すブロック図である。
【図２】画像処理プログラムにより行われる処理を示すフロー図である。
【図３】（ａ）は、元画像の画素を示し、（ｂ）は、フィルタの構成を示すテーブルである。
【図４】（ａ）は、縮小レティネックス画像を、（ｂ）は、（ａ）に示す縮小レティネックス画像を拡大したレティネックス画像を示すテーブルである。
【図５】元画像の一部の画素を示すテーブルである。
【図６】本発明によるレティネックス処理を行った画像を示す一例であり、（ａ）は、第２の方法により拡大を行った場合の画像を示し、（ｂ）は、第５の方法により拡大を行った場合の画像を示す。
【図７】従来の技術におけるレティネックス処理を示すフロー図である。
【符号の説明】
【００９１】
１                        プリンタ
２                        パーソナルコンピュータ
１１                      ＣＰＵ
１２                      ＲＯＭ
１２ａ                    画像処理プログラムメモリ
１３                      ＲＡＭ
１３ｂ                    縮小レティネックス画像メモリ
【図１】
0004687667.tif 000006
【図２】
0004687667.tif 000007
【図３】
0004687667.tif 000008
【図４】
0004687667.tif 000009
【図５】
0004687667.tif 000010
【図６】
0004687667.tif 000011
【図７】
0004687667.tif 000012