JP2016004313A - 画像処理装置および輝度調整方法 - Google Patents

画像処理装置および輝度調整方法 Download PDF

Info

Publication number
JP2016004313A
JP2016004313A JP2014122639A JP2014122639A JP2016004313A JP 2016004313 A JP2016004313 A JP 2016004313A JP 2014122639 A JP2014122639 A JP 2014122639A JP 2014122639 A JP2014122639 A JP 2014122639A JP 2016004313 A JP2016004313 A JP 2016004313A
Authority
JP
Japan
Prior art keywords
luminance value
adjustment
function
correction
value
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.)
Granted
Application number
JP2014122639A
Other languages
English (en)
Other versions
JP6326997B2 (ja
Inventor
健介 山岡
Kensuke Yamaoka
健介 山岡
将之 池辺
Masayuki Ikebe
将之 池辺
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co 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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2014122639A priority Critical patent/JP6326997B2/ja
Publication of JP2016004313A publication Critical patent/JP2016004313A/ja
Application granted granted Critical
Publication of JP6326997B2 publication Critical patent/JP6326997B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

【課題】画像全体の輝度と局所的な輝度との双方を併せて調整する。
【解決手段】所定の輝度値をもつ画素配列からなる調整前画像U1が格納手段110内に格納される。設定手段120は、オペレータの設定操作に基づいて、画像全体に適用すべきグローバルトーンカーブT[G]を設定する。設定手段140は、着目画素Piの近傍に参照領域Riを設定し、その中の画素の輝度値を参照して、着目画素Piについての個別補正関数F[Pi]を設定する。変換手段130は、グローバルトーンカーブT[G]を個別補正関数F[Pi]に基づいて補正することにより、着目画素Pi専用のローカルトーンカーブT[Pi]を定義し、着目画素Piの輝度値をローカルトーンカーブT[Pi]を用いて変換し、変換後の画素Qiの輝度値を格納手段150に格納する。各着目画素について同様の処理を行えば、格納手段150内に調整後画像U2が得られる。
【選択図】図8

Description

本発明は、デジタル画像について輝度調整を行う画像処理装置に関し、特に、特有の輝度調整方法を採用した画像処理装置に関する。
デジタル画像に対しては、コンピュータを用いた画像処理により様々な調整を施すことができる。たとえば、このような調整手法の典型例として知られているコントラスト調整は、画像の輝度を調整することにより画像全体の印象を変化させる手段として有効である。通常、画像のコントラスト調整は、入力輝度値を出力輝度値に変換するためのトーンカーブを設定することによって行われる。オペレータは、トーンカーブの形状を様々に変化させる調整操作を行うことにより、対象画像全体のコントラストを所望の形態に調整することができる。
最近のデジタルカメラは、三原色RGBの各色について、それぞれ8ビットを越える画素値(たとえば、14ビット)をもつ表現力豊かなデジタル画像を撮影できる能力を備えてきており、ダイナミックレンジの広い高品質なデジタル画像が普及してきている。一方、多くの表示機器のダイナミックレンジは、依然として、各色8ビットもしくは10ビット程度が一般的である。このため、表示時に高品質なデジタル画像のダイナミックレンジを圧縮する技術としても、輝度調整の技術は重要になってきている。
ただ、従来の一般的なコントラスト調整方法では、対象画像全体に共通のトーンカーブを適用して輝度値の変換を行うグローバル処理が行われるため、明るい部分と暗い部分とが共存した対象画像の場合、良好な輝度調整を行うことができないという問題がある。そこで、対象画像の局所的な特徴を反映して輝度調整を行う局所的な処理方法も提案されている。
たとえば、下記の特許文献1には、ダイナミックレンジを圧縮する画像処理を行う際に、人間の視覚に基づいた色独立性、色・明度の表現性を維持できるように、局所的な輝度値を参照した固有の変換式に基づく輝度補正処理を行う技術が開示されている。また、特許文献2には、自然景色画像に適したコントラスト調整方法として、画像を複数の部分領域に分割し、個々の部分領域ごとに求めた輝度値の局所ヒストグラムに基づいて輝度値の補正を行う技術が開示されている。
また、特許文献3には、個々の画素の明るさを調整する処理を高速化するために、個々の局所領域について求めた局所ヒストグラムの累積結果に基づいて明るさの変換関数を生成する技術が開示され、特許文献4には、明るさが連続する画像に対しても良好な明るさ補正を可能にするために、上限変換関数と下限変換関数とを設定し、両者間の比率を算出することにより明るさ変換を行う技術が開示されている。
特許第4036391号公報 特許第3902265号公報 特開2011−097465公報 特開2013−033446公報
上述したように、対象画像全体に共通のトーンカーブを適用するグローバル処理を基本とした輝度調整方法には、大きな明暗差がある画像に対して良好な輝度調整を行うことができないという問題がある。一方、前掲の各特許文献に開示されているような局所的な処理を行う輝度調整方法の場合、個々の局所領域に関しては所望の輝度調整が可能であっても、画像全体の輝度を併せて調整することが困難であるという問題がある。
そこで本発明は、画像全体の輝度と局所的な輝度との双方を併せて調整することが容易な輝度調整方法を提供することを目的とし、また、当該輝度調整方法を採用した画像処理装置を提供することを目的とする。
(1) 本発明の第1の態様は、与えられた画像について輝度調整を行う画像処理装置において、
それぞれ所定の輝度値をもつ画素の配列からなる調整前画像を格納する調整前画像格納手段と、
オペレータの設定操作に基づいて、入力輝度値を出力輝度値に変換するためのグローバルトーンカーブを設定するグローバルトーンカーブ設定手段と、
調整前画像を構成する個々の画素をそれぞれ着目画素として、着目画素を含むその近傍の領域にそれぞれ参照領域を設定し、各参照領域内において着目画素の周囲に位置する周囲画素の輝度値を参照して、各着目画素のそれぞれについて輝度値を変数とする個別補正関数を設定する個別補正関数設定手段と、
個々の着目画素のそれぞれについて、グローバルトーンカーブを個別補正関数に基づいて補正することによりローカルトーンカーブを定義し、当該ローカルトーンカーブを用いて、個々の着目画素の輝度値を変換する輝度値変換手段と、
輝度値変換手段によって変換された輝度値をもつ画素の配列を調整後画像として格納する調整後画像格納手段と、
を設けるようにしたものである。
(2) 本発明の第2の態様は、上述した第1の態様に係る画像処理装置において、
個別補正関数設定手段が、着目画素の輝度値が周囲画素の代表輝度値よりも小さい場合は、当該着目画素の輝度値をより小さくし、着目画素の輝度値が周囲画素の代表輝度値よりも大きい場合は、当該着目画素の輝度値をより大きくし、着目画素の輝度値が周囲画素の代表輝度値に等しい場合は、当該着目画素の輝度値をそのままとする個別補正関数を設定するようにしたものである。
(3) 本発明の第3の態様は、上述した第1の態様に係る画像処理装置において、
個別補正関数設定手段が、着目画素の輝度値が周囲画素の代表輝度値よりも小さい場合は、当該着目画素の輝度値をより大きくし、着目画素の輝度値が周囲画素の代表輝度値よりも大きい場合は、当該着目画素の輝度値をより小さくし、着目画素の輝度値が周囲画素の代表輝度値に等しい場合は、当該着目画素の輝度値をそのままとする個別補正関数を設定するようにしたものである。
(4) 本発明の第4の態様は、上述した第2または第3の態様に係る画像処理装置において、
個別補正関数設定手段が、参照領域内の周囲画素の輝度値の平均値を当該周囲画素の代表輝度値とするようにしたものである。
(5) 本発明の第5の態様は、上述した第2または第3の態様に係る画像処理装置において、
個別補正関数設定手段が、参照領域内の周囲画素の輝度値について、着目画素に距離的に近い周囲画素ほど大きな重みを付与して求めた加重平均値を当該周囲画素の代表輝度値とするようにしたものである。
(6) 本発明の第6の態様は、上述した第2〜第5の態様に係る画像処理装置において、
個別補正関数設定手段が、参照領域内の周囲画素の代表輝度値を求める際に、当該参照領域内の着目画素の輝度値を周囲画素の輝度値の1つとして取り扱うようにしたものである。
(7) 本発明の第7の態様は、上述した第1の態様に係る画像処理装置において、
個別補正関数設定手段が、参照領域内の複数の周囲画素の輝度値を複数K段階の階級に分類し、それぞれの度数を計数することによりヒストグラムを作成し、これらヒストグラムを参照して、各着目画素のそれぞれについて輝度値を補正するための個別補正関数を設定するようにしたものである。
(8) 本発明の第8の態様は、上述した第1の態様に係る画像処理装置において、
個別補正関数設定手段が、調整前画像を複数の分割領域に分けて認識し、個別補正関数を設定する際に、互いに異なる分割領域内の周囲画素については、それぞれ異なる態様で輝度値を参照して個別補正関数を設定するようにしたものである。
(9) 本発明の第9の態様は、上述した第8の態様に係る画像処理装置において、
個別補正関数設定手段が、調整前画像を、空間周波数が所定の基準以上となるテクスチャ領域と空間周波数が当該基準未満となるグラデーション領域とに分けて認識し、個別補正関数を設定する際に、テクスチャ領域に位置する周囲画素とグラデーション領域に位置する周囲画素とについて、それぞれ異なる態様で輝度値を参照して個別補正関数を設定するようにしたものである。
(10) 本発明の第10の態様は、上述した第1の態様に係る画像処理装置において、
個別補正関数設定手段が、着目画素の輝度値と各周囲画素の輝度値とを比較し、両者の差が小さい周囲画素ほど大きな重みづけをした参照を行うことにより、個別補正関数を設定するようにしたものである。
(11) 本発明の第11の態様は、上述した第1の態様に係る画像処理装置において、
グローバルトーンカーブ設定手段が、0≦Lin≦M(但し、Mは輝度値の最大値)なる条件を満たす範囲内の入力輝度値Linを横軸、0≦Lout ≦Mなる条件を満たす範囲内の出力輝度値Lout を縦軸にとって、入力輝度値Linと出力輝度値Lout との関係を示すグラフによって構成されるグローバルトーンカーブを設定する機能を有し、
個別補正関数設定手段が、0≦Lin≦Mなる条件を満たす範囲内の入力輝度値Linを横軸、所定の補正増減率Cを縦軸にとって、入力輝度値Linと補正増減率Cとの関係を示すグラフによって表現される個別補正関数を設定する機能を有し、
輝度値変換手段が、グローバルトーンカーブにおける任意の入力輝度値Linに対応する出力輝度値Lout の値を、個別補正関数における当該入力輝度値Linに対応する補正増減率Cに応じて増減する補正を行うことによりローカルトーンカーブの定義を行うようにしたものである。
(12) 本発明の第12の態様は、上述した第11の態様に係る画像処理装置において、
個別補正関数設定手段が、補正増減率Cとして、負の数値K1および正の数値K2を設定して、K1≦C≦K2なる条件を満たす範囲内の値を用いるようにしたものである。
(13) 本発明の第13の態様は、上述した第12の態様に係る画像処理装置において、
個別補正関数設定手段が、入力輝度値Linの増加に応じて補正増減率Cが単調増加し、かつ、周囲画素の輝度値を代表する代表輝度値に相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数を設定し、
輝度値変換手段が、グローバルトーンカーブにおける任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、個別補正関数における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ輝度値の最大値Mを上限として増加させる補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ0を下限として減少させる補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブの定義を行うようにしたものである。
(14) 本発明の第14の態様は、上述した第12の態様に係る画像処理装置において、
個別補正関数設定手段が、入力輝度値Linの増加に応じて補正増減率Cが単調減少し、かつ、周囲画素の輝度値を代表する代表輝度値に相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数を設定し、
輝度値変換手段が、グローバルトーンカーブにおける任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、個別補正関数における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ輝度値の最大値Mを上限として増加させる補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ0を下限として減少させる補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブの定義を行うようにしたものである。
(15) 本発明の第15の態様は、上述した第13または第14の態様に係る画像処理装置において、
個別補正関数設定手段が、K1=−1、K2=+1に設定し、補正増減率Cとして、−1≦C≦+1なる条件を満たす範囲内の値を用いて個別補正関数を設定し、
輝度値変換手段が、任意の横軸座標Lに位置するグローバルトーンカーブ上の点について、その縦軸座標をLold からLnew に修正することによりローカルトーンカーブを定義し、補正増減率Cの絶対値を|C|としたときに、C>0,Lold <Lの場合は、Lnew =Lold +(L−Lold )×|C|なる式に基づいて、C>0,Lold >Lの場合は、Lnew =Lold +(M−Lold )×|C|なる式に基づいて、C<0,Lold <Lの場合は、Lnew =Lold −Lold ×|C|なる式に基づいて、C<0,Lold >Lの場合は、Lnew =Lold −(Lold −L)×|C|なる式に基づいて、それぞれ修正を行うことにより、ローカルトーンカーブを定義するようにしたものである。
(16) 本発明の第16の態様は、上述した第12の態様に係る画像処理装置において、
グローバルトーンカーブ設定手段が、オペレータの設定操作に基づいて、グローバルトーンカーブとともに、その上方に位置する上限カーブおよび下方に位置する下限カーブを設定することにより、合計3本のカーブを設定する機能を有し、上限カーブおよび下限カーブは、グローバルトーンカーブと同様に、0≦Lin≦Mなる条件を満たす範囲内の入力輝度値Linを横軸、0≦Lout ≦Mなる条件を満たす範囲内の出力輝度値Lout を縦軸にとって、入力輝度値Linと出力輝度値Lout との関係を示すグラフによって構成されるようにし、
輝度値変換手段が、グローバルトーンカーブを上限カーブと下限カーブとの間に挟まれた領域の範囲内で補正することにより、ローカルトーンカーブを定義するようにしたものである。
(17) 本発明の第17の態様は、上述した第16の態様に係る画像処理装置において、
個別補正関数設定手段が、入力輝度値Linの増加に応じて補正増減率Cが単調増加し、かつ、周囲画素の輝度値を代表する代表輝度値に相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数を設定し、
輝度値変換手段が、グローバルトーンカーブにおける任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、個別補正関数における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ上限カーブを上限として増加させる補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ下限カーブを下限として減少させる補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブの定義を行うようにしたものである。
(18) 本発明の第18の態様は、上述した第16の態様に係る画像処理装置において、
個別補正関数設定手段が、入力輝度値Linの増加に応じて補正増減率Cが単調減少し、かつ、周囲画素の輝度値を代表する代表輝度値に相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数を設定し、
輝度値変換手段が、グローバルトーンカーブにおける任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、個別補正関数における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ上限カーブを上限として増加させる補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ下限カーブを下限として減少させる補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブの定義を行うようにしたものである。
(19) 本発明の第19の態様は、上述した第17または第18の態様に係る画像処理装置において、
個別補正関数設定手段が、K1=−1、K2=+1に設定し、補正増減率Cとして、−1≦C≦+1なる条件を満たす範囲内の値を用いて個別補正関数を設定し、
輝度値変換手段が、任意の横軸座標Lに位置するグローバルトーンカーブ上の点について、その縦軸座標をLold からLnew に修正することによりローカルトーンカーブを定義し、補正増減率Cの絶対値を|C|、横軸座標Lにおける上限カーブの輝度値をLupper、下限カーブの輝度値をLlowerとしたときに、C>0の場合は、Lnew =Lold +(Lupper−Lold )×|C|なる式に基づいて、C<0の場合は、Lnew =Lold −(Lold −Llower)×|C|なる式に基づいて、それぞれ補正を行うことにより、ローカルトーンカーブを定義するようにしたものである。
(20) 本発明の第20の態様は、上述した第12の態様に係る画像処理装置において、
グローバルトーンカーブ設定手段が、オペレータの設定操作に基づいて、グローバルトーンカーブとともに、第1制限カーブおよび第2制限カーブを設定することにより、合計3本のカーブを設定する機能を有し、第1制限カーブおよび第2制限カーブは、グローバルトーンカーブと同様に、0≦Lin≦Mなる条件を満たす範囲内の入力輝度値Linを横軸、0≦Lout ≦Mなる条件を満たす範囲内の出力輝度値Lout を縦軸にとって、入力輝度値Linと出力輝度値Lout との関係を示すグラフによって構成されるようにし、
輝度値変換手段が、第1の制限カーブを越えない範囲内で、第1の制限カーブに近づける第1の補正方向に輝度値を増減する第1の補正と、第2の制限カーブを越えない範囲内で、第2の制限カーブに近づける第2の補正方向に輝度値を増減する第2の補正と、を選択的に行うことにより、ローカルトーンカーブを定義するようにしたものである。
(21) 本発明の第21の態様は、上述した第20の態様に係る画像処理装置において、
個別補正関数設定手段が、入力輝度値Linの増加に応じて補正増減率Cが単調増加し、かつ、周囲画素の輝度値を代表する代表輝度値に相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数を設定し、
輝度値変換手段が、グローバルトーンカーブにおける任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、個別補正関数における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ第1の補正方向に向けて修正する補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ第2の補正方向に向けて修正する補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブの定義を行うようにしたものである。
(22) 本発明の第22の態様は、上述した第20の態様に係る画像処理装置において、
個別補正関数設定手段が、入力輝度値Linの増加に応じて補正増減率Cが単調減少し、かつ、周囲画素の輝度値を代表する代表輝度値に相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数を設定し、
輝度値変換手段が、グローバルトーンカーブにおける任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、個別補正関数における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ第1の補正方向に向けて修正する補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ第2の補正方向に向けて修正する補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブの定義を行うようにしたものである。
(23) 本発明の第23の態様は、上述した第21または第22の態様に係る画像処理装置において、
個別補正関数設定手段が、K1=−1、K2=+1に設定し、補正増減率Cとして、−1≦C≦+1なる条件を満たす範囲内の値を用いて個別補正関数を設定し、
輝度値変換手段が、任意の横軸座標Lに位置するグローバルトーンカーブ上の点について、その縦軸座標をLold からLnew に修正することによりローカルトーンカーブを定義し、横軸座標Lにおける第1制限カーブの輝度値をLα、第2制限カーブの輝度値をLβとしたときに、C>0の場合は、Δa=|(Lα−Lold )×C|なる式に基づいて定まる補正量Δaだけ、輝度値Lold を第1制限カーブに近づける方向に増減する補正を行い、C<0の場合は、Δb=|(Lβ−Lold)×C|なる式に基づいて定まる補正量Δbだけ、輝度値Lold を第2制限カーブに近づける方向に増減する補正を行うことにより、ローカルトーンカーブを定義するようにしたものである。
(24) 本発明の第24の態様は、上述した第12の態様に係る画像処理装置において、
個別補正関数設定手段が、
輝度値Lを横軸、調整値fを縦軸にとって、輝度値Lと調整値fとの関係を示すグラフによって表現される関数であって、輝度値Lの増加に応じて調整値fが単調増加もしくは単調減少するような局所調整関数f(L)を定義し、
輝度値Lを横軸、調整値fを縦軸にとった集計用座標系上に、参照領域内の第j番目の周囲画素(但し、j=1,2,... ,N、ここでNは参照領域内の周囲画素の総数)に対応させて第j番目の局所調整関数fj(L)のグラフを配置し、配置した第j番目のグラフ上において調整値f=0となる点の横軸座標が、対応する第j番目の周囲画素の輝度値Ljに一致するように、個々のグラフをそれぞれ所定量だけ横軸方向に個別にスライドさせるようにし、
合計N組の局所調整関数f1(L)〜fN(L)のグラフを集計した総和として総和グラフを求め、この総和グラフを用いて個別補正関数を設定するようにしたものである。
(25) 本発明の第25の態様は、上述した第24の態様に係る画像処理装置において、
個別補正関数設定手段が、着目画素の輝度値と第j番目の周囲画素の輝度値との差に基づいて、当該差が小さい周囲画素ほど大きな重みづけを行い、総和グラフを求める際に、第j番目の局所調整関数fj(L)のグラフについて、第j番目の周囲画素についての重みを考慮した集計を行うことにより、個別補正関数を設定するようにしたものである。
(26) 本発明の第26の態様は、上述した第25の態様に係る画像処理装置において、
着目画素の輝度値に対応する値が最大値をとり、輝度値Lが着目画素の輝度値から離れるに従って単調減少する値を示す重み関数W(L)を定義し、第j番目の局所調整関数fj(L)のグラフについて、第j番目の周囲画素の輝度値Ljに対応する重み関数W(L)の値Wjを重みとして用いた集計を行うことにより、個別補正関数を設定するようにしたものである。
(27) 本発明の第27の態様は、上述した第12の態様に係る画像処理装置において、
個別補正関数設定手段が、
輝度値Lを横軸、調整値fを縦軸にとって、輝度値Lと調整値fとの関係を示すグラフによって表現される関数であって、輝度値Lの増加に応じて調整値fが単調増加もしくは単調減少するような局所調整関数f(L)を定義し、
参照領域内の複数の周囲画素の輝度値を複数K段階の階級に分類し、それぞれの度数を計数することによりヒストグラムを作成し、
輝度値Lを横軸、調整値fを縦軸にとった集計用座標系上に、ヒストグラムにおける第k番目の階級(但し、k=1,2,... ,K)に対応させて第k番目の局所調整関数fk(L)のグラフを配置し、配置した第k番目のグラフ上において調整値f=0となる点の横軸座標が、対応する第k番目の階級の代表輝度値に一致するように、個々のグラフをそれぞれ所定量だけ横軸方向に個別にスライドさせるようにし、
合計K組のグラフについて、それぞれの度数に応じた重みづけを行って集計した総和として総和グラフを求め、この総和グラフを用いて個別補正関数を設定するようにしたものである。
(28) 本発明の第28の態様は、上述した第27の態様に係る画像処理装置において、
第k番目の階級の代表輝度値として、当該階級に属する範囲内の輝度値として予め設定されている所定の固定輝度値を用いるようにしたものである。
(29) 本発明の第29の態様は、上述した第27の態様に係る画像処理装置において、
第k番目の階級の代表輝度値として、当該階級に所属する周囲画素の平均輝度値を用いるようにしたものである。
(30) 本発明の第30の態様は、上述した第27〜第29の態様に係る画像処理装置において、
個別補正関数設定手段が、着目画素の輝度値と第k番目の階級の代表輝度値との差に基づいて、当該差が小さい階級ほど大きな重みづけを行い、総和グラフを求める際に、第k番目の局所調整関数fk(L)のグラフについて、第k番目の階級についての重みを考慮した集計を行うことにより、個別補正関数を設定するようにしたものである。
(31) 本発明の第31の態様は、上述した第30の態様に係る画像処理装置において、
着目画素の輝度値に対応する値が最大値をとり、輝度値Lが着目画素の輝度値から離れるに従って単調減少する値を示す重み関数W(L)を定義し、第k番目の局所調整関数fk(L)のグラフについて、第k番目の階級の代表輝度値Lrkに対応する重み関数W(L)の値Wkを重みとして用いた集計を行うことにより、個別補正関数を設定するようにしたものである。
(32) 本発明の第32の態様は、上述した第26または第31の態様に係る画像処理装置において、
着目画素の輝度値が所定の基準未満の場合に用いる重み関数W1(L)に比べて、着目画素の輝度値が所定の基準以上の場合に用いる重み関数W2(L)の方が、単調減少の割合が急峻となるようにしたものである。
(33) 本発明の第33の態様は、上述した第26または第31の態様に係る画像処理装置において、
重み関数W(L)として、着目画素の輝度値の座標にピーク点が位置するガウス分布関数を用いるようにしたものである。
(34) 本発明の第34の態様は、上述した第33の態様に係る画像処理装置において、
標準偏差σについて最大値σmaxおよび最小値σminを定め、着目画素の輝度値が周囲画素の代表輝度値以上の場合には、標準偏差σ=σminとなるガウス分布関数を、着目画素の輝度値が周囲画素の代表輝度値未満の場合には、標準偏差σが、σmax ≧σ>σminの範囲をとり、かつ、着目画素の輝度値が大きいほど小さくなるように設定されたガウス分布関数を、それぞれ重み関数W(L)として用いるようにしたものである。
(35) 本発明の第35の態様は、上述した第24〜第34の態様に係る画像処理装置において、
個別補正関数設定手段が、調整前画像を複数の分割領域に分けて認識し、個別補正関数を設定する際に、互いに異なる分割領域内の周囲画素については、それぞれ異なる局所調整関数f(L)を用いた集計を行うようにしたものである。
(36) 本発明の第36の態様は、上述した第35の態様に係る画像処理装置において、
個別補正関数設定手段が、調整前画像を、空間周波数が所定の基準以上となるテクスチャ領域と空間周波数が当該基準未満となるグラデーション領域とに分けて認識し、個別補正関数を設定する際に、テクスチャ領域用の局所調整関数ft(L)と、グラデーション領域用の局所調整関数fg(L)とを別個に設定し、テクスチャ領域に位置する周囲画素については、テクスチャ領域用の局所調整関数ft(L)を用い、グラデーション領域に位置する周囲画素については、グラデーション領域用の局所調整関数fg(L)を用いた集計を行うようにしたものである。
(37) 本発明の第37の態様は、上述した第24〜第36の態様に係る画像処理装置において、
個別補正関数設定手段が、総和グラフの縦軸を−1≦C≦+1なる条件を満たす範囲内に規格化し、横軸の0≦L≦Mなる条件を満たす部分を抽出したものを、個別補正関数として設定するようにしたものである。
(38) 本発明の第38の態様は、上述した第24〜第37の態様に係る画像処理装置において、
個別補正関数設定手段が、局所調整関数f(L)として、調整値f=0に対応するグラフ上の点を回転中心点として、グラフを180°回転させたときに同一のグラフが得られるような点対称性をもった関数を設定するようにしたものである。
(39) 本発明の第39の態様は、上述した第24〜第37の態様に係る画像処理装置において、
個別補正関数設定手段が、第j番目の局所調整関数fj(L)を、「fj(L)=(2/(1+exp(−μ・(L−Lj)/M)))−1」なるシグモイド関数、もしくは「fj(L)=−(2/(1+exp(−μ・(L−Lj)/M)))+1」なるシグモイド関数(但し、μは所定の勾配係数)を利用して定義するようにしたものである。
(40) 本発明の第40の態様は、上述した第24〜第39の態様に係る画像処理装置において、
個別補正関数設定手段が、集計用座標系上に、N組の周囲画素に対応させたN組の局所調整関数のグラフf1(L)〜fN(L)に加えて、着目画素に対応する局所調整関数のグラフを配置し、合計(N+1)組のグラフを集計した総和として総和グラフを求め、この総和グラフを用いて個別補正関数を設定するようにしたものである。
(41) 本発明の第41の態様は、上述した第1〜第40の態様に係る画像処理装置において、
輝度値変換手段が、個々の着目画素の輝度値変換に必要な部分についてのみ、ローカルトーンカーブを求める演算を行うようにしたものである。
(42) 本発明の第42の態様は、上述した第1〜第41の態様に係る画像処理装置において、
調整前画像格納手段が、横方向の画素数Sx、縦方向の画素数Syを有する矩形状の調整前画像を格納し、
個別補正関数設定手段が、予め設定されている分割数nを用いて、Sx/nもしくはSy/nなる除算を行い、着目画素を中心に含み、除算の商に近い画素数に対応する長さを一辺とする正方形領域もしくは矩形領域を、当該着目画素についての参照領域として設定するようにしたものである。
(43) 本発明の第43の態様は、上述した第1〜第42の態様に係る画像処理装置を、コンピュータにプログラムを組み込むことにより実現したものである。
(44) 本発明の第44の態様は、それぞれ所定の輝度値をもつ画素の配列からなる調整前画像について、輝度調整を行う画像の輝度調整方法において、
コンピュータが、調整前画像を構成する個々の画素をそれぞれ着目画素として抽出する着目画素抽出段階と、
コンピュータが、着目画素を含むその近傍の領域にそれぞれ参照領域を設定する参照領域設定段階と、
コンピュータが、参照領域内において着目画素の周囲に位置する周囲画素の輝度値を参照して、各着目画素のそれぞれについて輝度値を変数とする個別補正関数を設定する個別補正関数設定段階と、
コンピュータが、入力輝度値を出力輝度値に変換するための所定のグローバルトーンカーブに対して個別補正関数を用いた補正を行うことにより、個々の着目画素のそれぞれについてローカルトーンカーブを定義するローカルトーンカーブ定義段階と、
コンピュータが、ローカルトーンカーブを用いて、個々の着目画素の輝度値を変換する輝度値変換段階と、
コンピュータが、輝度値変換段階によって変換された輝度値をもつ画素の配列を調整後画像として出力する調整後画像出力段階と、
を行うようにしたものである。
(45) 本発明の第45の態様は、上述した第44の態様に係る画像の輝度調整方法において、
個別補正関数設定段階で、
輝度値Lを横軸、調整値fを縦軸にとって、輝度値Lと調整値fとの関係を示すグラフによって表現される関数であって、輝度値Lの増加に応じて調整値fが単調増加もしくは単調減少するような局所調整関数f(L)を定義し、輝度値Lを横軸、調整値fを縦軸にとった集計用座標系上に、参照領域内の第j番目の周囲画素(但し、j=1,2,... ,N、ここでNは参照領域内の周囲画素の総数)に対応させて第j番目の局所調整関数fj(L)のグラフを配置し、配置した第j番目のグラフ上において調整値f=0となる点の横軸座標が、対応する第j番目の周囲画素の輝度値Ljに一致するように、個々のグラフをそれぞれ所定量だけ横軸方向に個別にスライドさせる局所調整関数配置ステップと、
合計N組の局所調整関数f1(L)〜fN(L)のグラフを集計した総和として総和グラフを求め、この総和グラフを用いて個別補正関数を設定する局所調整関数集計ステップと、
を行うようにしたものである。
(46) 本発明の第46の態様は、上述した第45の態様に係る画像の輝度調整方法において、
局所調整関数集計ステップで、着目画素の輝度値と第j番目の周囲画素の輝度値との差に基づいて、当該差が小さい周囲画素ほど大きな重みづけを行い、総和グラフを求める際に、第j番目の局所調整関数fj(L)のグラフについて、第j番目の周囲画素についての重みを考慮した集計を行うことにより、個別補正関数を設定するようにしたものである。
(47) 本発明の第47の態様は、上述した第44の態様に係る画像の輝度調整方法において、
個別補正関数設定段階で、
輝度値Lを横軸、調整値fを縦軸にとって、輝度値Lと調整値fとの関係を示すグラフによって表現される関数であって、輝度値Lの増加に応じて調整値fが単調増加もしくは単調減少するような局所調整関数f(L)を定義し、参照領域内の複数の周囲画素の輝度値を複数K段階の階級に分類し、それぞれの度数を計数することによりヒストグラムを作成し、輝度値Lを横軸、調整値fを縦軸にとった集計用座標系上に、ヒストグラムにおける第k番目の階級(但し、k=1,2,... ,K)に対応させて第k番目の局所調整関数fk(L)のグラフを配置し、配置した第k番目のグラフ上において調整値f=0となる点の横軸座標が、対応する第k番目の階級の代表輝度値に一致するように、個々のグラフをそれぞれ所定量だけ横軸方向に個別にスライドさせる局所調整関数配置ステップと、
合計K組のグラフについて、それぞれの度数に応じた重みづけを行って集計した総和として総和グラフを求め、この総和グラフを用いて個別補正関数を設定する局所調整関数集計ステップと、
を行うようにしたものである。
(48) 本発明の第48の態様は、上述した第47の態様に係る画像の輝度調整方法において、
局所調整関数集計ステップで、着目画素の輝度値と第k番目の階級の代表輝度値との差に基づいて、当該差が小さい階級ほど大きな重みづけを行い、総和グラフを求める際に、第k番目の局所調整関数fk(L)のグラフについて、第k番目の階級についての重みを考慮した集計を行うことにより、個別補正関数を設定するようにしたものである。
(49) 本発明の第49の態様は、上述した第45〜第48の態様に係る画像の輝度調整方法において、
局所調整関数配置ステップで、調整前画像を複数の分割領域に分けて認識し、個別補正関数を設定する際に、互いに異なる分割領域内の周囲画素については、それぞれ異なる局所調整関数f(L)を配置するようにしたものである。
(50) 本発明の第50の態様は、上述した第49の態様に係る画像の輝度調整方法において、
局所調整関数配置ステップで、調整前画像を、空間周波数が所定の基準以上となるテクスチャ領域と空間周波数が当該基準未満となるグラデーション領域とに分けて認識し、テクスチャ領域用の局所調整関数ft(L)と、グラデーション領域用の局所調整関数fg(L)とを別個に設定し、テクスチャ領域に位置する周囲画素についてはテクスチャ領域用の局所調整関数ft(L)を配置し、グラデーション領域に位置する周囲画素については、グラデーション領域用の局所調整関数fg(L)を配置するようにしたものである。
(51) 本発明の第51の態様は、上述した第44〜第50の態様に係る画像の輝度調整方法を利用して、与えられたカラー画像について輝度調整を行うカラー画像処理方法において、
コンピュータが、三原色R,G,Bの各画素値をもつ画素の配列からなる調整前カラー画像を入力する調整前カラー画像入力段階と、
コンピュータが、調整前カラー画像を構成する個々の画素のもつ三原色R,G,Bの画素値を、輝度成分を示す画素値および色差成分を示す画素値に変換することにより、輝度値をもつ画素の配列からなる調整前画像を生成する調整前画像生成段階と、
コンピュータが、オペレータの設定操作に基づいて調整用パラメータを設定する調整用パラメータ設定段階と、
コンピュータが、調整用パラメータに基づいて、上述した第44〜第50の態様に係る画像の輝度調整方法を実行する輝度調整処理段階と、
コンピュータが、この輝度調整処理段階によって得られた調整後画像を構成する個々の画素のもつ輝度値および上記色差成分を示す画素値を、三原色R,G,Bの画素値に変換することにより、三原色R,G,Bの各画素値をもつ画素の配列からなる調整後カラー画像を生成する調整後カラー画像生成段階と、
を行うようにしたものである。
(52) 本発明の第52の態様は、上述した第51の態様に係るカラー画像処理方法において、
調整用パラメータ設定段階で、入力輝度値Linと出力輝度値Lout との関係を示すグラフとして、グローバルトーンカーブ、第1制限カーブ、第2制限カーブの3本のトーンカーブを設定し、
輝度調整処理段階で、グローバルトーンカーブに対して、第1制限カーブおよび第2制限カーブに基づく制限下での補正を行うことによりローカルトーンカーブの定義を行うようにしたものである。
(53) 本発明の第53の態様は、上述した第51の態様に係るカラー画像処理方法において、
調整用パラメータ設定段階で、局所調整関数f(L)を定義するためのパラメータを設定し、
輝度調整処理段階で、上述した第45〜第48の態様に係る画像の輝度調整方法を実行するようにしたものである。
(54) 本発明の第54の態様は、上述した第51の態様に係るカラー画像処理方法において、
調整用パラメータ設定段階で、重みづけを定義するためのパラメータを設定し、
輝度調整処理段階で、上述した第46または第48の態様に係る輝度調整方法を実行するようにし、局所調整関数集計ステップで、上記重みづけを定義するためのパラメータによって定義された重みを考慮した集計を行うことにより、個別補正関数を設定するようにしたものである。
(55) 本発明の第55の態様は、上述した第44〜第54の態様に係る輝度調整方法もしくはカラー画像処理方法を、コンピュータにプログラムを組み込むことにより実行するようにしたものである。
本発明によれば、個々の着目画素について、その周囲近傍に位置する周囲画素の輝度値に基づいて個別補正関数が設定され、画像全体に適用すべきグローバルトーンカーブを、当該個別補正関数に基づいて補正することにより、個々の着目画素ごとにそれぞれ固有のローカルトーンカーブが定義され、個々の着目画素の輝度値は、それぞれのローカルトーンカーブに基づいて変換される。このため、オペレータが、画像全体の輝度調整をグローバルトーンカーブの設定操作によって行うと、画像全体に対しては、当該グローバルトーンカーブを基本とした輝度調整が行われるものの、局所的には、それぞれ個別補正関数に基づく補正を反映した輝度調整が行われることになる。したがって、画像全体の輝度と局所的な輝度との双方を併せて調整することが容易な輝度調整方法を提供することが可能になり、そのような輝度調整方法を利用した画像処理装置を提供することができる。
輝度調整を行わない場合の基準トーンカーブT0を示すグラフである。 コントラストを強める輝度調整を行う場合のトーンカーブT1を示すグラフである。 コントラストを弱める輝度調整を行う場合のトーンカーブT2を示すグラフである。 任意の輝度調整を行う場合のトーンカーブT3を示すグラフである。 本発明に係る輝度調整の基本概念を示す模式図である。 本発明に用いる個別補正関数F[P]の一例を示すグラフ(図(a) )およびこの個別補正関数F[P]を用いたグローバルトーンカーブT[G]の補正方法を示すグラフ(図(b) )である。 本発明に用いる個別補正関数F[P]の別な一例を示すグラフ(図(a) )およびこの個別補正関数F[P]を用いたグローバルトーンカーブT[G]の補正方法を示すグラフ(図(b) )である。 本発明の基本的実施形態に係る画像処理装置の構成を示すブロック図である。 本発明による局所的な輝度調整の基本原理を説明する表である。 図9に示す帰結Iに基づいて局所的コントラストを強めるための輝度調整を行う基本原理を説明する図である。 図9に示す帰結IIに基づいて局所的コントラストを弱めるための輝度調整を行う基本原理を説明する図である。 単純な線形関数を個別補正関数F[P]として用いた例を示すグラフである。 累積ガウス分布関数を個別補正関数F[P]として用いた例を示すグラフである。 累積ガウス分布曲線を左右にスライドさせて個別補正関数F[P]を設定する様子を示すグラフである。 局所調整関数f(L)として用いるシグモイド関数の定義式を示す図である。 個々の周囲画素に対応する局所調整関数f(L)の総和により個別補正関数F[P]を設定する様子を示すグラフである。 本発明におけるグローバルトーンカーブT[G]の設定操作の一例を示す図である。 グローバルトーンカーブT[G],上限カーブT[upper],下限カーブT[lower]の3本のカーブを設定した例を示す図である。 図18に示す3本のカーブに基づいてローカルトーンカーブT[P]を定義する原理を示すグラフである。 グローバルトーンカーブT[G],第1の制限カーブT[α],第2の制限カーブT[β]の3本のカーブを設定した第1の例を示す図である。 グローバルトーンカーブT[G],第1の制限カーブT[α],第2の制限カーブT[β]の3本のカーブを設定した第2の例を示す図である。 グローバルトーンカーブT[G],第1の制限カーブT[α],第2の制限カーブT[β]の3本のカーブを設定した第3の例を示す図である。 グローバルトーンカーブT[G],第1の制限カーブT[α],第2の制限カーブT[β]の3本のカーブを設定した第4の例を示す図である。 ヒストグラムを用いた集計により個別補正関数F[P]を設定する第1の方法を示すグラフである。 ヒストグラムを用いた集計により個別補正関数F[P]を設定する第2の方法を示すグラフである。 ヒストグラムを用いた集計による輝度値分布範囲の変化態様の第1の例を示すグラフである。 ヒストグラムを用いた集計による輝度値分布範囲の変化態様の第2の例を示すグラフである。 一般的な画像におけるテクスチャ領域Atとグラデーション領域Agの典型例を示す図である。 テクスチャ領域At用の局所調整関数ft(L)とグラデーション領域Ag用の局所調整関数fg(L)との相違を示すグラフである。 一般的な風景画像の一例を示す図である。 図30に示す画像をテクスチャ領域Atとグラデーション領域Agとに分類した状態を示す図である。 グラデーション領域Agに対しては局所調整関数fg(L)を適用し、テクスチャ領域Atに対しては局所調整関数ft(L)を適用して個別補正関数を設定する原理を示す図である。 グラデーション領域Agについて、ヒストグラムを用いた集計により個別補正関数F[P]を設定する例を示すグラフである。 テクスチャ領域Atについて、ヒストグラムを用いた集計により個別補正関数F[P]を設定する例を示すグラフである。 本発明に係る輝度調整を行うことによりヘイローが発生した状態を示す図である。 図35に示すヘイローの実体を説明する図およびグラフである。 図35に示すヘイローの発生要因を説明する図である。 図35に示すヘイローの抑制原理を示す図およびグラフである。 図37(a) ,(b) に示す例について、黒ヘイローの具体的な要因を示すグラフである。 図37(c) ,(d) に示す例について、白ヘイローの具体的な要因を示すグラフである。 図39および図40に示す例について、黒ヘイローおよび白ヘイローの抑制策を示すグラフである。 一般的なヘイローの抑制策を示すグラフである。 図39に示す例に対して、図42に示すヘイローの抑制策を施す方法を示すグラフである。 図40に示す例に対して、図42に示すヘイローの抑制策を施す方法を示すグラフである。 ヘイローの抑制策に用いる様々なガウス分布関数を示すグラフである。 一般にシェブルール錯視として知られている人間の視覚的な認知現象を示す図である。 一般にクレイク・オブライエン効果として知られている人間の視覚的な認知現象を示す図である。 一般的な景色の画像について生じた黒ヘイローおよび白ヘイローを示す図である。 ヘイローの抑制策に用いるガウス分布関数の傾斜を左右する標準偏差σの好適な設定例を示すグラフである。 ヘイローの抑制策を伴う輝度調整処理の結果を示す図である。 本発明に係るカラー画像処理方法の基本手順を示す流れ図である。 図51の流れ図におけるステップS5の輝度調整処理の詳細な手順を示す流れ図である。 本発明に係る輝度調整の対象となる調整前画像の実例を示す図である。 図53に示す調整前画像に対して、3本のカーブを設定して具体的な輝度調整を行うことにより得られた調整後画像の第1の実例を示す図である。 図53に示す調整前画像に対して、3本のカーブを設定して具体的な輝度調整を行うことにより得られた調整後画像の第2の実例を示す図である。 図53に示す調整前画像に対して、3本のカーブを設定して具体的な輝度調整を行うことにより得られた調整後画像の第3の実例を示す図である。 図53に示す調整前画像に対して、3本のカーブを設定して具体的な輝度調整を行うことにより得られた調整後画像の第4の実例を示す図である。
以下、本発明を図示する実施形態に基づいて説明する。
<<< §1. 本発明に係る輝度調整の基本概念 >>>
はじめに、本発明に係る輝度調整の基本概念を説明する。
<1−1.トーンカーブによる輝度調整>
デジタル画像に対して明暗やコントラストの調整を行う場合、当該画像を構成する個々の画素の輝度を調整する必要がある。このような輝度調整は、通常、トーンカーブの形状を調整する操作によって行われる。輝度調整機能を有する一般的な画像処理装置の場合、ディスプレイ画面上に表示したトーンカーブを、オペレータの操作に基づいて任意の形状に変化させるインターフェイスが備わっており、オペレータは、このトーンカーブを所望の形状に変化させることにより、画像に対する所望の輝度調整を行うことができる。
トーンカーブは、入力輝度値Linを出力輝度値Lout に変換する変換関数を示すカーブであり、通常、入力輝度値Linを横軸、出力輝度値Lout を縦軸にとったグラフによって表現される。図1は、輝度調整を全く行わない場合の基準トーンカーブT0を示すグラフである。
なお、一般に、「カーブ」という文言は曲線を意味するものであるが、本願では便宜上、図1に示すような直線状のグラフT0についても「トーンカーブ」と呼ぶことにする。また、本願では、グラフに関する説明を行う際に、縦軸/横軸という文言を用いることにするが、当該呼称は、座標軸を相互に区別するための便宜上のものであり、絶対的な垂直方向や水平方向を示すものではない。したがって、たとえば、図1に示すトーンカーブを表示する際に、入力輝度値Linを縦軸、出力輝度値Lout を横軸にとったグラフを用いてもかまわない。
また、以下に述べる実施例では、画像を構成する個々の画素について、8ビットの輝度値(0〜255)が画素値として与えられている場合を例にとった説明を行うことにする。したがって、図1に示すグラフの横軸Linおよび縦軸Lout には、それぞれ0〜255の輝度値が定義されている。図示の基準トーンカーブT0は、Lout =Linを示す関数のグラフであり、当該カーブを利用して輝度調整処理を行っても、実質的には、輝度調整は全く行われないことになる。たとえば、このカーブを利用して、図に破線で示すように入力輝度値Lin=160についての変換を行えば、全く同一の出力輝度値Lout =160が得られることになる。
これに対して、図2に示すグラフは、コントラストを強める輝度調整を行う場合のトーンカーブT1を示すものである。図1に示す基準トーンカーブT0(図2では、一点鎖線で示す)が直線状のグラフであるのに対して、図2に示すトーンカーブT1はS字状の曲線グラフになっている。この例の場合、トーンカーブT1は、入力輝度値Lin=128に対応する点Oにおいて基準トーンカーブT0と交差しているため、入力輝度値Lin =128に対しては出力輝度値Lout =128が得られ変化はないが、0<Lin<128の範囲内の入力輝度値Linについては輝度値を下げる調整が行われ、128<Lin<255の範囲内の入力輝度値Linについては輝度値を上げる調整が行われる。
たとえば、図に破線で示すとおり、輝度値64をもつ画素については、輝度値を64より低いL1に下げる調整が行われ、輝度値192をもつ画素については、輝度値を192より高いL2に上げる調整が行われる。このように、画像上の暗い画素(この例では、輝度値が128未満の画素)の輝度値を下げて更に暗くし、画像上の明るい画素(この例では、輝度値が128を越える画素)の輝度値を上げて更に明るくする調整は、コントラストを強める調整効果を奏する。したがって、図2に示すようなS字状のトーンカーブT1は、コントラストを強める輝度調整を行う場合に利用される。
一方、図3に示すグラフは、コントラストを弱める輝度調整を行う場合のトーンカーブT2を示すものである(ここでも基準トーンカーブT0を一点鎖線で示す)。このトーンカーブT2も、入力輝度値Lin=128に対応する点Oにおいて基準トーンカーブT0と交差しているが、その全体形状は逆S字状の曲線グラフになっている。このため、0<Lin<128の範囲内の入力輝度値Linについては輝度値を上げる調整が行われ、128<Lin<255の範囲内の入力輝度値Linについては輝度値を下げる調整が行われる。
たとえば、図に破線で示すとおり、輝度値64をもつ画素については、輝度値を64より高いL3に上げる調整が行われ、輝度値192をもつ画素については、輝度値を192より低いL4に下げる調整が行われる。このように、画像上の暗い画素(この例では、輝度値が128未満の画素)の輝度値を上げて明るくし、画像上の明るい画素(この例では、輝度値が128を越える画素)の輝度値を下げて暗くする調整は、コントラストを弱める調整効果を奏する。したがって、図3に示すような逆S字状のトーンカーブT2は、コントラストを弱める輝度調整を行う場合に利用される。
もちろん、トーンカーブの形状は、S字状や逆S字状に限定されるものではなく、入力輝度値Linの値に対して、出力輝度値Lout の値がただ一つだけ定まる一価関数のグラフになっていれば、どのような形状のトーンカーブを設定してもかまわない。たとえば、図4は、任意の輝度調整を行う場合のトーンカーブT3を示すグラフである。このトーンカーブT3は、図示のとおり、2点O1,O2において基準トーンカーブT0と交差しており、入力輝度値Lin=L5,L6,L7という3通りの異なる輝度値に対して、出力輝度値Lout =L8という同一の輝度値が与えられる。このような複雑な形状をもったトーンカーブT3による輝度調整は、コントラストを強めるもしくは弱めるといった単純な調整ではないが、オペレータの恣意的な要求に応じた特有の調整効果を奏することになる。
一般的な画像処理装置では、オペレータがマウスなどのデバイスを操作することにより、ディスプレイ画面上でトーンカーブの形状を任意に設定することができ、対象となるデジタル画像に対して当該トーンカーブを利用した輝度調整を施すことができる。
しかしながら、このようなトーンカーブを用いた従来の一般的な輝度調整方法では、対象画像全体に共通のトーンカーブを適用したグローバル処理が行われるため、明るい部分と暗い部分とが共存した対象画像の場合、良好な輝度調整を行うことができない。たとえば、オペレータが、画像の明部に着目して良好な輝度調整を試みると暗部がより暗くなってしまう現象が生じ、逆に、画像の暗部に着目して良好な輝度調整を試みると明部が更に明るくなってしまう現象が生じやすい。
このような問題に対処するため、前掲の特許文献などには、対象画像の局所領域の特性に合わせた処理を行う技術が提案されている。これらの技術は、一般に、広ダイナミックレンジ圧縮技術(HDR:High Dynamic Range)と呼ばれており、対象画像の局所的特徴を反映した輝度調整を行うことができるため、画像全体に明暗差がある場合でも良好な画像変換が期待できる。しかしながら、これらの技術では、個々の局所領域に関しては所望の輝度調整が可能であっても、画像全体の輝度を併せて調整することが困難であるという問題がある。
本発明は、このような問題に対処することができる新たな輝度調整方法を提案するものであり、本発明によれば、画像全体の輝度と局所的な輝度との双方を併せて調整することが容易になる。すなわち、本発明に係る画像処理装置を利用すれば、オペレータは、画像全体の明るさを意図どおりに制御しつつ、画像の各部分ごとに、その特徴に応じた適切な明るさに調整することが可能になる。
<1−2.ローカルトーンカーブによる輝度値変換>
上述のとおり、トーンカーブは、入力輝度値Linを出力輝度値Lout に変換する変換関数を示すカーブであり、通常、対象画像全体に共通のトーンカーブを適用したグローバル処理が行われる。本発明に係る輝度調整の特徴は、基本的には、画像全体に共通するトーンカーブを定義しておき、局所的にこれを補正したトーンカーブを定義し、実際の輝度値変換を局所的に定義したトーンカーブを用いる点にある。
本願では、画像全体に共通するトーンカーブを「グローバルトーンカーブ」と呼び、局所的に定義したトーンカーブを「ローカルトーンカーブ」と呼ぶことにする。後述するように、ローカルトーンカーブは、グローバルトーンカーブを所定のアルゴリズムに基づいて補正することにより自動的に得られるので、本発明に係る輝度調整を実施するにあたり、オペレータはグローバルトーンカーブを設定する作業を行えば足りる。なお、ローカルトーンカーブの細かな形状は、オペレータが設定したパラメータに基づいて変わるため、オペレータはグローバルトーンカーブの設定作業により画像全体の輝度調整を行いつつ、上記パラメータの設定作業により局所的な輝度調整を行うことができる。
本発明では、対象画像を構成する1つ1つの画素ごとにそれぞれローカルトーンカーブが定義され、各画素の輝度値は、当該画素について定義されたローカルトーンカーブを用いて変換されることになる。ここで重要な点は、ある1つの画素についてのローカルトーンカーブは、グローバルトーンカーブに対して所定の補正を施すことにより得られることになるが、当該補正の内容が、当該画素の周囲に位置する画素の輝度値を参照することにより決定される点である。
図5は、本発明に係る輝度調整の基本概念を示す模式図である。以下、この図5を参照しながら、本発明の基本概念を説明する。本願では、輝度調整の対象となる画像(所定の輝度値をもつ画素の配列からなる画像)を調整前画像U1と呼び、輝度調整が施された後の画像を調整後画像U2と呼ぶことにする。図5の上段(a) に示す画素配列は、調整前画像U1の一例を示している。ここでは、説明の便宜上、縦10画素、横14画素の小さな画素配列からなる調整前画像U1を例示しているが、実際には、より大きなサイズの画素配列からなる画像を調整対象画像とするのが一般的である。
一方、図5の下段(d) に実線で示すグラフは、オペレータが設定したグローバルトーンカーブT[G]を示している(参考のため、基準トーンカーブT0を一点鎖線で示す)。このグローバルトーンカーブT[G]は、図2に示すトーンカーブT1に対応するものであり、前述したとおり、通常はコントラストを強める輝度調整を行う場合に利用される。従来の輝度調整方法では、調整前画像U1を構成する全画素について、このグローバルトーンカーブT[G]を用いた輝度変換処理を行うことになるが、本発明の輝度調整方法では、このグローバルトーンカーブT[G]に基づいて、個々の画素ごとに独立したローカルトーンカーブが作成されることになる。
本発明の輝度調整方法では、調整前画像U1を構成する個々の画素をそれぞれ着目画素として、次のような処理が行われる。まず、着目画素Pを含むその近傍の領域に参照領域R[P]を設定する。そして、この参照領域R[P]内において着目画素Pの周囲に位置する画素(以下、周囲画素と呼ぶ)の輝度値を参照して、当該着目画素Pについての個別補正関数F[P]を設定する。この個別補正関数F[P]は、後述するように、輝度値Lを変数とした補正増幅率Cの値を示す関数であり、1つ1つの画素についてそれぞれ個別に設定される。グローバルトーンカーブT[G]を、この個別補正関数F[P]に基づいて補正することにより、それぞれの画素に対応するローカルトーンカーブT[P]が得られ、着目画素Pの輝度値L[P]は、このローカルトーンカーブT[P]を用いて変換されることになる。なお、ここで、符号R[P],F[P],T[P],L[P]における[P]の部分は、それぞれの符号が特定の着目画素Pに関するものであることを示すためのものである。
上記処理を、図5を参照しながら、より具体的に説明しよう。たとえば、調整前画像U1の左上領域に位置する着目画素P11(ハッチング部分)の輝度値L[P11]は、次のような手順で変換される。まず、着目画素P11を含むその近傍の領域に参照領域R[P11]を設定する。図では、太線で囲って示す3×3の領域を参照領域R[P11]として設定した状態が示されている。この参照領域R[P11]内において、着目画素P11の周囲に位置する8個の周囲画素の輝度値を参照して、着目画素P11についての個別補正関数F[P11]を設定する。具体的な設定方法については後に詳述する。
続いて、図5の下段(d) に示されているグローバルトーンカーブT[G]を、個別補正関数F[P11]に基づいて補正することにより、図5の左中段(b) に示されているように、ローカルトーンカーブT[P11]を作成する。図5(b) において、実線で示すグローバルトーンカーブT[G]は、図5(d) に示すオペレータが設定したカーブであり、破線で示すローカルトーンカーブT[P11]が、補正によって得られたカーブである。いずれもS字状のカーブであるが、その形状は異なっている。着目画素P11の輝度値L[P11]は、このローカルトーンカーブT[P11]を用いて輝度値L[Q11]に変換されることになる。輝度値L[Q11]は、変換後の画素Q11の輝度値として与えられる。
調整前画像U1の右下領域に位置する着目画素P12(ハッチング部分)の輝度値L[P12]も同様の手順で変換される。すなわち、着目画素P12の近傍に参照領域R[P12]が設定され、その中の8個の周囲画素の輝度値を参照して、着目画素P12についての個別補正関数F[P12]を設定する。そして、図5の下段(d) に示されているグローバルトーンカーブT[G]を、個別補正関数F[P12]に基づいて補正し、図5の右中段(c) に示すローカルトーンカーブT[P12]を作成する。着目画素P12の輝度値L[P12]は、このローカルトーンカーブT[P12]を用いて輝度値L[Q12]に変換される。輝度値L[Q12]は、変換後の画素Q12の輝度値として与えられる。
図5(b) に示すローカルトーンカーブT[P11]も図5(c) に示すローカルトーンカーブT[P12]も、オペレータが設定した同一のグローバルトーンカーブT[G](図5(d) )に基づいて作成されたトーンカーブであるが、それぞれ異なる参照領域内の周囲画素を参照して得られた個別補正関数に基づく補正が行われたカーブであるため、その形状は異なっている。したがって、着目画素P11とP12の変換には、それぞれ別々のローカルトーンカーブが利用されることになる。
図5には、調整前画像U1を構成する2つの着目画素P11,P12についての輝度変換処理が示されているが、実際には、すべての画素をそれぞれ着目画素として、同様の輝度変換処理が実施されることになる。図示の例の場合、調整前画像U1は、140個の画素の集合によって構成されているので、140通りの個別補正関数F[P]に基づいて140通りのローカルトーンカーブT[P]が定義され、個々の画素の輝度変換が行われる。
なお、調整前画像U1の境界近くの着目画素については、通常サイズの参照領域を設定すると、参照領域の一部が画像の外部に食み出してしまうことになるが、その場合は、食み出した部分を無視してもよいし、画像の内部の画素を境界線に沿って折り返して、画像の外部の画素としてコピーして利用するようにしてもよい。
各着目画素の輝度変換に利用されるローカルトーンカーブT[P]は、基本的には、オペレータが設定したグローバルトーンカーブT[G]を元に作られたものなので、画像全体にわたるグローバルな輝度は、概ね、このグローバルトーンカーブT[G]に従ったものになる。ただ、局所的な視野で見ると、個々の着目画素Pの輝度変換に利用されるローカルトーンカーブT[P]は、当該着目画素Pの近傍に位置する周囲画素の輝度値に応じた補正が行われているため、局所的な輝度分布特性に応じた調整が行われることになる。かくして、本発明によれば、画像全体の輝度と局所的な輝度との双方を併せて調整することが可能になる。
<1−3.個別補正関数F[P]の実体と具体的な補正方法>
続いて、ローカルトーンカーブT[P]の定義に利用される個別補正関数F[P]の実体と、これを利用したグローバルトーンカーブT[G]の補正方法を、具体例を挙げながら説明する。
上述したように、1つの着目画素Pについての個別補正関数F[P]は、参照領域R[P]内の周囲画素の輝度値を参照して設定される関数である。図6(a) は、このような個別補正関数F[P]の一例を示すグラフであり、図6(b) は、この個別補正関数F[P]を用いたグローバルトーンカーブT[G]の補正方法を示すグラフである。図6(b) において、一点鎖線は基準トーンカーブT0、実線はグローバルトーンカーブT[G]、破線はローカルトーンカーブT[P]を示している。このローカルトーンカーブT[P]は、実線で示すグローバルトーンカーブT[G]を図6(a) に破線で示す個別補正関数F[P]を用いて補正することにより得られる。
図6(a) に示す個別補正関数F[P]は、入力輝度値Linを横軸、補正増減率Cを縦軸にとって、入力輝度値Linと補正増減率Cとの関係を示すグラフによって表現される関数である。横軸のレンジは、これまで述べてきたトーンカーブの横軸のレンジと同様に、0〜255の入力輝度値になっている。これに対して、縦軸のレンジは、−1〜+1の範囲に規格化されている。図示の例の場合、個別補正関数F[P]は、入力輝度値Linが0から255へと増加してゆくと、補正増減率Cも−1から+1へとゆるやかに単調増加する関数になっている。補正増減率Cは、グローバルトーンカーブT[G]の出力輝度値Loutの補正増減量を示すものであり、C=0は増減なし、C>0は増加、C<0は減少を示している。
ローカルトーンカーブT[P]は、グローバルトーンカーブT[G]における任意の入力輝度値Linに対応する出力輝度値Lout の値を、個別補正関数F[P]における当該入力輝度値Linに対応する補正増減率Cに応じて増減する補正を行うことにより得られる。すなわち、個別補正関数F[P]が負の値をとる領域については、グローバルトーンカーブT[G]に対する減少補正が行われ、個別補正関数F[P]が正の値をとる領域については、グローバルトーンカーブT[G]に対する増加補正が行われる。
図6(b) に示す例の場合、3つのカーブが点Oにおいて交差しており、この交点Oよりも左側の領域(個別補正関数F[P]が負の値をとる領域)については減少補正が行われ、破線のグラフT[P]が実線のグラフT[G]よりも下がっている。たとえば、入力輝度値Lin=Laに対応する各グラフ上の点として、点A1,A2,A3が示されているが、実線のグラフT[G]上の点A2は、図6(a) のグラフにおける補正指示量aに応じた値だけ下がった点A3の位置に補正される。
より具体的に説明すれば、図6(a) において、補正基準ラインξ0(C=0のライン)と補正下限ラインξβ(C=−1のライン)との間隔を最大補正指示量uaとし(この例の場合、ua=1)、入力輝度値Laに対応する補正増減率Cの絶対値|C|を補正指示量aとし、図6(b) において、点A2と下限ラインT[bottom]との間隔を最大実補正量ua′とし、点A2と点A3との間隔を実補正量a′とすれば、a/ua=a′/ua′なる関係が得られるように、点A3の位置が決定されることになる。
一方、交点Oよりも右側の領域(個別補正関数F[P]が正の値をとる領域)については増加補正が行われ、破線のグラフT[P]が実線のグラフT[G]よりも上がっている。たとえば、入力輝度値Lin=Lbに対応する各グラフ上の点として、点B1,B2,B3が示されているが、実線のグラフT[G]上の点B2は、図6(a) のグラフにおける補正指示量bに応じた値だけ上がった点B1の位置に補正される。
より具体的に説明すれば、図6(a) において、補正基準ラインξ0(C=0のライン)と補正上限ラインξα(C=+1のライン)との間隔を最大補正指示量ubとし(この例の場合、ub=1)、入力輝度値Lbに対応する補正増減率Cの絶対値|C|を補正指示量bとし、図6(b) において、点B2と上限ラインT[top]との間隔を最大実補正量ub′とし、点B1と点B2との間隔を実補正量b′とすれば、b/ub=b′/ub′なる関係が得られるように、点B1の位置が決定されることになる。
破線で示すローカルトーンカーブT[P]は、このようにして得られた補正後の点A3,B1等を連結することにより定義される。要するに、図6(a) に示す補正基準ラインξ0を図6(b) に示すグローバルトーンカーブT[G]に対応させ、図6(a) に示す補正上限ラインξαを図6(b) に示す上限ラインT[top]に対応させ、図6(a) に示す補正下限ラインξβを図6(b) に示す下限ラインT[bottom]に対応させた上で、ξ0とξαとで挟まれた空間をT[G]とT[top]で挟まれた空間に割り当て、ξ0とξβとで挟まれた空間をT[G]とT[bottom]で挟まれた空間に割り当てるような縦軸に関する線形変換を行った場合に、個別補正関数F[P]の線形変換像として得られるトーンカーブがローカルトーンカーブT[P]ということになる。
図7は、別な個別補正関数F[P]を用いたグローバルトーンカーブT[G]の補正方法を示すグラフである。図7(a) に示す個別補正関数F[P]は、入力輝度値Linが0から255へと増加してゆくと、補正増減率Cが+1から−1へとゆるやかに単調減少する関数になっている。ここでも補正増減率Cは、グローバルトーンカーブT[G]の出力輝度値Loutの補正増減量を示すものであり、C=0は増減なし、C>0は増加、C<0は減少を示す。
このような単調減少する個別補正関数F[P]を用いた場合、図7(b) に示すような補正が行われる。この図7(b) において、一点鎖線で示す基準トーンカーブT0および実線で示すグローバルトーンカーブT[G]は、図6(b) に示すものと全く同じである。ただ、異なる個別補正関数F[P]を用いた補正が行われたため、破線で示すローカルトーンカーブT[P]の形状は異なっている。すなわち、この例の場合、3つのカーブは点Oにおいて交差しており、この交点Oよりも左側の領域(個別補正関数F[P]が正の値をとる領域)については増加補正が行われ、破線のグラフT[P]が実線のグラフT[G]よりも上がっている。たとえば、入力輝度値Lin=Laに対応する各グラフ上の点として、点A1,A2,A3が示されているが、実線のグラフT[G]上の点A3は、図7(a) のグラフにおける補正指示量aに応じた値だけ上がった点A2の位置に補正される。
より具体的に説明すれば、図7(a) において、補正基準ラインξ0(C=0のライン)と補正上限ラインξα(C=+1のライン)との間隔を最大補正指示量uaとし(この例の場合、ua=1)、入力輝度値Laに対応する補正増減率Cの絶対値|C|を補正指示量aとし、図7(b) において、点A1と点A3との間隔を最大実補正量ua′とし、点A2と点A3との間隔を実補正量a′とすれば、a/ua=a′/ua′なる関係が得られるように、点A2の位置が決定されることになる。
一方、交点Oよりも右側の領域(個別補正関数F[P]が負の値をとる領域)については減少補正が行われ、破線のグラフT[P]が実線のグラフT[G]よりも下がっている。たとえば、入力輝度値Lin=Lbに対応する各グラフ上の点として、点B1,B2,B3が示されているが、実線のグラフT[G]上の点B1は、図7(a) のグラフにおける補正指示量bに応じた値だけ下がった点B2の位置に補正される。
より具体的に説明すれば、図7(a) において、補正基準ラインξ0(C=0のライン)と補正下限ラインξβ(C=−1のライン)との間隔を最大補正指示量ubとし(この例の場合、ub=1)、入力輝度値Lbに対応する補正増減率Cの絶対値|C|を補正指示量bとし、図7(b) において、点B1と点B3との間隔を最大実補正量ub′とし、点B1と点B2との間隔を実補正量b′とすれば、b/ub=b′/ub′なる関係が得られるように、点B2の位置が決定されることになる。
破線で示すローカルトーンカーブT[P]は、このようにして得られた補正後の点A2,B2等を連結することにより定義される。要するに、図7(a) に示す補正基準ラインξ0を図7(b) に示すグローバルトーンカーブT[G]に対応させ、図7(a) に示す補正上限ラインξαの左半分を図7(b) に示す基準トーンカーブT0の左半分に対応させ、図7(a) に示す補正下限ラインξβの右半分を図7(b) に示す基準トーンカーブT0の右半分に対応させた上で、ξ0とξαとで挟まれた空間をT[G]とT0で挟まれた空間に割り当て、ξ0とξβとで挟まれた空間をT[G]とT0で挟まれた空間に割り当てるような縦軸に関する線形変換を行った場合に、個別補正関数F[P]の線形変換像として得られるトーンカーブがローカルトーンカーブT[P]ということになる。
図6(b) ,図7(b) に破線で示すローカルトーンカーブT[P]は、いずれもS字状のカーブであり、画像上の暗い画素の輝度値を下げて更に暗くし、画像上の明るい画素の輝度値を上げて更に明るくする調整を行う機能を有する。したがって、グローバルな観点で捉えれば、画像全体に対して、図6(b) ,図7(b) に実線で示すグローバルトーンカーブT[G]に応じた輝度調整、すなわち、コントラストを強める調整が行われることになる。
ただ、局所的な視野で見ると、図6(a) に示すような単調増加する個別補正関数F[P]が設定された画素については、図6(b) に破線で示すように、急峻なS字形状をもったローカルトーンカーブT[P]が適用され、コントラストの強調度が高いのに対して、図7(a) に示すような単調減少する個別補正関数F[P]が設定された画素については、図7(b) に破線で示すように、緩慢なS字形状をもったローカルトーンカーブT[P]が適用され、コントラストの強調度が低くなる。このように、画像全体に対するグローバルな観点からは、オペレータが設定したグローバルトーンカーブT[G]に応じた輝度調整が行われるものの、局所的には、周囲画素の輝度値に応じた微調整が行われることになる点が本発明の重要な特徴である。
なお、図6(a) には単調増加する個別補正関数F[P]を例示し、図7(a) には単調減少する個別補正関数F[P]を例示したが、通常は、同一の画像に対して、単調増加する個別補正関数F[P]および単調減少する個別補正関数F[P]を混在させて設定することは行わず(もちろん、オペレータが望めば、そのような設定に基づいて処理を進めることも可能であるが)、いずれか一方を選択して設定するのが一般的である。
§2で詳述するとおり、この個別補正関数F[P]の細かな形状や配置(特に、補正基準ラインξ0を横切る位置)は、参照領域内の周囲画素の輝度値に応じて決定される。したがって、単調増加する個別補正関数F[P]および単調減少する個別補正関数F[P]のいずれか一方のみを用いることにしたとしても、個々の着目画素ごとに、周囲が暗いか明るいかによって、設定される個別補正関数F[P]の細かな形状や配置は異なる。本発明の輝度変換処理において、局所的な微調整が可能になる理由は、このような方法で個々の画素ごとに個別補正関数F[P]を設定するようにしたためである。
<<< §2. 基本的実施形態に係る画像処理装置 >>>
続いて、本発明の基本的実施形態に係る画像処理装置の構成および動作を説明する。
<2−1.画像処理装置の基本構成>
図8は、本発明の基本的実施形態に係る画像処理装置の構成を示すブロック図である。図示のとおり、この画像処理装置は、調整前画像格納手段110、グローバルトーンカーブ設定手段120、輝度値変換手段130、個別補正関数設定手段140、調整後画像格納手段150を備えており、与えられた調整前画像U1に対して輝度調整を行い、調整後画像U2として出力する機能を有している。実際には、これらの各構成要素は、コンピュータに専用のプログラムを組み込むことによって実現することができ、本発明に係る画像処理装置は、汎用のコンピュータに専用のプログラムを組み込むことによって構成することができる。
調整前画像格納手段110は、それぞれ所定の輝度値をもつ画素の配列からなる調整前画像U1を格納する構成要素であり、実際には、コンピュータに組み込まれたメモリ等の記憶素子の一部によって構成される。図8のブロック110内には、説明の便宜上、4×6の画素配列からなる調整前画像U1が調整前画像格納手段110に格納された状態が模式的に描かれている。ここでは、§1で述べたとおり、個々の画素には、8ビットの輝度値(0〜255)が与えられているものとする。
グローバルトーンカーブ設定手段120は、オペレータの設定操作に基づいて、入力輝度値Linを出力輝度値Lout に変換するためのグローバルトーンカーブT[G]を設定する。より具体的には、グローバルトーンカーブ設定手段120は、0≦Lin≦M(但し、Mは輝度値の最大値)なる条件を満たす範囲内の入力輝度値Linを横軸、0≦Lout ≦Mなる条件を満たす範囲内の出力輝度値Lout を縦軸にとって、入力輝度値Linと出力輝度値Lout との関係を示すグラフによって構成されるグローバルトーンカーブを設定する機能を有している。§1で述べた例は、輝度値の最大値M=255に設定した例であり、入力輝度値Linおよび出力輝度値Lout は、いずれも0〜255の範囲内で定義されている。
図8のブロック120内には、図2に示すトーンカーブT1を設定した例が描かれている。§1で述べたとおり、トーンカーブは明暗やコントラストの調整を指示するためのグラフとして広く利用されており、一般的な画像処理装置には、ディスプレイ画面上に表示したトーンカーブを、オペレータの操作に基づいて任意の形状に変化させるインターフェイスが備わっている。グローバルトーンカーブ設定手段120も、このような公知のインターフェイスをそのまま利用して構成することができるため、その具体的な内容についての説明は省略する。
個別補正関数設定手段140は、調整前画像格納手段110に格納されている調整前画像U1を構成する個々の画素をそれぞれ着目画素として、当該着目画素を含むその近傍の領域にそれぞれ参照領域を設定し、各参照領域内において着目画素の周囲に位置する周囲画素の輝度値を参照して、各着目画素のそれぞれについて輝度値を変数とする個別補正関数を設定する処理を行う。図8のブロック110内には、調整前画像U1を構成する第i番目の画素Pi(ハッチング部分)を着目画素として、当該着目画素Piを中心に含む3×3の画素配列からなる太線で囲った部分を参照領域R[Pi]に設定した例が示されている。
着目画素Piについての個別補正関数F[Pi]は、参照領域R[Pi]内の8個の周囲画素の輝度値を参照することにより決定される。具体的には、個別補正関数設定手段140は、参照領域R[Pi]内の着目画素Piを含めた9個の画素の輝度値を読み出し、これらの輝度値を利用した所定のアルゴリズムに基づく演算を行うことにより、個別補正関数F[Pi]を設定する処理を行う。図8のブロック140内には、図6(a) に示すような単調増加型の個別補正関数F[Pi]が設定された例が描かれている。
個別補正関数設定手段140は、このように第i番目の画素Piを着目画素として個別補正関数F[Pi]を設定する処理を、パラメータiをi=1,2,3,... と更新しながら繰り返し行うことになる。その結果、調整前画像U1を構成するすべての画素Pについて、それぞれ個別補正関数F[P]が定義される。
なお、実用上は、図示のとおり、個別補正関数設定手段140に対しても、オペレータの設定操作が可能になるようにしておき、個別補正関数F[P]を設定するために用いる種々のパラメータ(たとえば、図6(a) に示すような単調増加型の関数を用いるか、図7(a) に示すような単調減少型の関数を用いるかを選択するパラメータ)を任意に設定できるようにしておくのが好ましい。この個別補正関数設定手段140による個別補正関数F[P]の具体的な設定方法については、§2−4以降で詳述する。
輝度値変換手段130は、個々の着目画素Pのそれぞれについて、ローカルトーンカーブT[P]を定義し、当該ローカルトーンカーブT[P]を用いて、調整前画像格納手段110に格納されている個々の着目画素Pの輝度値を変換する処理を行う。ここで、ローカルトーンカーブT[P]は、グローバルトーンカーブ設定手段120に設定されているグローバルトーンカーブT[G]を、個別補正関数F[P]に基づいて補正することにより定義される。
図8のブロック130内には、第i番目の着目画素Piについて定義されたローカルトーンカーブT[Pi]が描かれているが、このローカルトーンカーブT[Pi]は、図6(b) に例示されたトーンカーブT[P]に相当するものである。輝度値変換手段130は、グローバルトーンカーブ設定手段120に設定されているグローバルトーンカーブT[G]に対して、個別補正関数設定手段140で設定された個別補正関数F[Pi]を用いた補正を行い、図示のようなローカルトーンカーブT[Pi]を定義する。具体的な補正方法は、既に§1−3で述べたとおりである。
続いて、輝度値変換手段130は、調整前画像格納手段110から読み出した着目画素Piの輝度値L(Pi)に対して、ローカルトーンカーブT[Pi]を適用することにより変換を行い、変換後の輝度値L(Qi)を画素Qiの輝度値として、調整後画像格納手段150に書き込む処理を行う。
調整後画像格納手段150は、こうして輝度値変換手段130によって変換された輝度値L(Qi)をもつ画素Qiの配列を調整後画像U2として格納し、必要に応じてこれを外部に出力する機能を果たす。
このような構成をもつ画像処理装置を用いれば、画像全体の輝度と局所的な輝度との双方を併せて調整することができるメリットが得られる点は、既に§1で述べたとおりである。
なお、これまでの実施例では、着目画素Pを中心とした3×3の画素配列を参照領域R[P]として設定した例を示したが、実際には、より大きなサイズの画素配列を参照領域R[P]として設定するのが好ましい。実用上は、参照領域R[P]のサイズは、調整前画像U1のサイズに応じて変化させるのが好ましい。これは、画像のサイズが大きくなれば、人間が局所として把握する領域のサイズも相対的に大きくなると考えられるからである。
そのためには、調整前画像格納手段110に、横方向の画素数Sx、縦方向の画素数Syを有する矩形状の調整前画像U1が格納されている場合、個別補正関数設定手段140が、予め設定されている分割数nを用いて、Sx/nもしくはSy/nなる除算を行い、着目画素Pを中心に含み、除算の商に近い画素数に対応する長さを一辺とする正方形領域を、当該着目画素Pについての参照領域R[P]として自動的に設定するようにすればよい。正方形領域の代わりに、除算の商に近い画素数に対応する長さをもった辺を長辺もしくは短辺とする矩形領域を参照領域R[P]として設定するようにしてもかまわない。
本願発明者が種々のサイズの調整前画像U1を用いて実験したところ、n=10程度に設定し、矩形状の画像の長辺の画素数(通常、横方向の画素数Sx)をnで除して得られる商に近い画素数に対応する長さを一辺とする正方形領域もしくは矩形領域を、参照領域R[P]として設定すると良好な結果が得られることが確認できた。たとえば、横方向の画素数Sxが1920画素の横長の画像を調整前画像U1とする場合、n=10に設定すれば、Sx/n=192となるので、一辺が192画素からなる正方形領域、もしくは、これに近い、たとえば一辺が200画素からなる正方形領域を参照領域R[P]として設定すればよい。
なお、調整前画像U1の境界(輪郭線)近くの着目画素については、設定した参照領域の一部が画像の外部に食み出してしまうことになるが、その場合は、前述したように、食み出した部分を無視してもよいし、画像の境界線部分に鏡を立て、画像内部の画素の複製を画像外部に作成して利用するようにしてもよい。
また、これまで述べてきた実施例では、調整前画像U1を構成する各画素Pについて、それぞれローカルトーンカーブT[P]を定義する、という説明を行ってきたが、実際には、輝度値変換手段130は、個々のローカルトーンカーブT[P]を輝度値の全範囲について求める演算を行う必要はなく、個々の着目画素の輝度値変換に必要な部分についてのみ、ローカルトーンカーブを求める演算を行えば足りる。
たとえば、図8のブロック130内には、第i番目の着目画素Piについて定義されたローカルトーンカーブT[Pi]が描かれているが、このローカルトーンカーブT[Pi]は、第i番目の着目画素Piの輝度値L[Pi]を変換するためにのみ用いられるカーブであるので、実際には、輝度値L[Pi]を入力輝度値Linとした場合の出力輝度値Lout を与える機能を果たせば十分である。したがって、概念的には、第i番目の着目画素Piについて、図示のようなローカルトーンカーブT[Pi]が定義されるものの、実際にローカルトーンカーブT[Pi]を求めるための演算は、着目画素Piの輝度値変換に必要な部分、すなわち、輝度値L[Pi]に対する変換を行うのに必要な部分のみについて行えばよい。
<2−2.人間の脳内で行われる視覚処理の特徴>
ここでは、本発明における局所的な輝度調整を行う上での基本方針を理解する一助となるように、人間の脳内で行われる視覚処理の特徴を簡単に述べておく。
そもそも画質についての良否は、人の感性に大きく依存し、物理的に明瞭な判断基準を設けることは困難である。しかしながら、多くの場合、直感的な第一印象が、個人個人の判断に大きな影響を与えている。この第一印象は、極めて早い反応であり、脳の高次の機能や無意識が大きく影響していると考えられる。このように画質の良否基準が人の感性に依存することを考慮すると、画質の改善には、人の眼と脳による視覚処理の仕組を考慮することが重要である。
一般に、認知心理学の分野では、人間の脳内で行われる基本的な視覚処理として、「明度対比」と「明度同化」という処理が知られている。ここで、「明度対比」とは、ゲシュタルト心理学等で述べられているように、画像から「図」の部分(注視又は注目している対象画像領域)と「地」の部分(対象画像に対する背景画像領域)とを把握し、両者の関係性から、「図」のコントラストを増して、より「図」を見やすくする処理機能ということができ、部分視に関わる機能と考えられている。一方、「明度同化」とは、コントラストを低下させて複数の画像領域を1つの画像領域と見なす全体視に関わる機能であり、「地」に関係する機能と考えられている。
人間の脳内における視覚処理は、網膜画像を入力情報として取得することにより開始される。この網膜画像は、一般のカメラで撮影された写真画像とは大きく異なり、焦点が合う画角は2度程度、色が判別できるのは20〜30度程度と言われている。すなわち、視野中心以外は焦点の合っていない画像と言える。これに対して一般の写真画像は、人が見て好ましい画像として物理的に作られている。しかも、一般の写真画像が、1回のシャッター操作によって撮影された画像であるのに対して、人間の脳内で処理される画像は、眼球運動による様々な注視点の画像を合成することにより得られる脳内イメージというべきものである。
このような理由から、写真画像と脳内イメージとの間には、大きな違いが生じることになる。たとえば、写真等に見られる黒つぶれや白飛びの現象は、このような違いに起因する最も顕著な例である。カメラ等の機器を用いて撮影を行う場合、基本的に明るさの基準を一か所に設定して撮影するので、写真画像には、明るさのダイナミックレンジの範囲外の箇所に、黒つぶれや白飛びが発生することになる。これに対して、人間の脳内では、明るさが大きく異なる画像を、それぞれ適切に対処して合成することにより、良好な脳内イメージが形成されるものと考えられる。
このように、人間の脳内で行われる視覚処理の特徴を踏まえると、局所的な輝度調整を行う際に、対比的にコントラストを増すようにするか、同化的にコントラストを減らすようにするかは、「図(対象画像)」の性質や、図に対する「地(背景画像)」の関係性によって決定されるべき問題であることがわかる。そこで、ここで述べる実施形態の場合、着目画素を「図」と把握し、周囲画素を「地」と把握することにより、周囲画素の輝度値が着目画素に対するコントラストに影響を与える要因になるものと仮定して、周囲画素の輝度値を参照して、着目画素の輝度値の補正を行うようにしているのである。
<2−3.局所的な輝度調整を行う上での基本方針>
既に述べたとおり、個別補正関数設定手段140は、参照領域R[P]内において着目画素Pの周囲に位置する周囲画素の輝度値を参照して、当該着目画素Pについての個別補正関数F[P]を設定する処理を行う。これは、着目画素Pの輝度値を調整するにあたって、基本的には、オペレータが設定したグローバルトーンカーブT[G]に従ったグローバルな調整処理を適用するものの、局所的には、周囲の輝度値に応じて若干の補正を行う、という本発明の基本概念に基づくものである。個別補正関数F[P]は、この局所的な輝度調整を行うためのパラメータとして機能する。そこで、ここでは、局所的な輝度調整を行う上での基本方針を述べておく。
なお、ここで述べる基本方針は、純然たる物理的な論理に基づくものではなく、§2−2で述べたように、人間の脳内で行われる視覚処理の特徴を踏まえたものになっている。別言すれば、個別補正関数F[P]による補正は、「人間が見た場合に、どのように見えるか」という観点に立ち、「物理的な尺度で測定した輝度値」ではなく、「人間の脳によって決定された輝度値」を想定した補正を行うことを目的としている。
図9は、本発明による局所的な輝度調整の基本原理を説明する表である。この表の第1欄には「画像」という表題のもとに、パターンAおよびパターンBという2通りのパターンについての実際の画像が表示されている。これらの画像は、人間の脳による明度対比の結果として生じる錯視を説明するために古くから利用されている画像である。いずれの画像も大小2種類の正方形を入れ子式に配置した図形の画像であるが、両者で内側正方形(グレーの部分)の内部の明るさを比較すると、実際には同じ明るさであるにもかかわらず、パターンAの内側正方形の方がパターンBの内側正方形よりも暗く見える。すなわち、「物理的な尺度で測定した輝度値」は同じであるのに、「人間の脳によって決定された輝度値」は異なる。
これら2つのパターンは、いずれも入れ子式の二重正方形構造を採っているが、その物理的な特徴の相違は、表の第2欄の「特徴」に記載したとおり、パターンAの場合は「中心部分が周囲部分よりも暗い」のに対して、パターンBの場合は「中心部分が周囲部分よりも明るい」という点である。もちろん、これらの特徴は純然たる物理的な特徴であり、また、「内側正方形の明るさは両者で同じである」という特徴も純然たる物理的な特徴である。ところが、「人間が見た場合に、どのように見えるか」という観点に立つと、上記物理的特徴に反して、「パターンAの内側正方形の方がパターンBの内側正方形よりも暗く見える」という錯視が生じることになる。
このような錯視が生じる原因は、認知心理学上、「中心部分が周囲部分よりも暗い」という特徴をもった画像を脳が処理すると、「中心部分がより暗く見える」という視覚的現象が生じ、「中心部分が周囲部分よりも明るい」という特徴をもった画像を脳が処理すると、「中心部分がより明るく見える」という視覚的現象が生じるためである(表の第3欄「視覚的現象」を参照)。このような視覚的現象が生じるのは、前述したように、人間の脳内で行われる「明度対比」により、「図(内側正方形)」のコントラストを増して、より「図」を見やすくする処理機能が働くためと考えられている。このような処理機能は、人間が進化の過程において、外敵や獲物を「図」として即座に認識するために自然に身につけてきた機能とされている。
結局、「物理的な尺度で測定した輝度値」を基準にとった議論では、「内側正方形の明るさは両者で同じである」という結論が導かれるのに対して、「人間の脳によって決定された輝度値」を基準にとった議論では、コントラストを増して、より「図」を見やすくする処理機能が働くため、「パターンAの内側正方形の方がパターンBの内側正方形よりも暗い」という結論が導かれることになる。本願発明者は、このような認知心理学上の特徴を利用すれば、人間の脳内で行われる視覚処理に適合させたコントラスト調整が可能になることを見出した。
まず第1に、パターンAに示すように「中心部分が周囲部分よりも暗いと、中心部分がより暗く見える」という視覚的現象が生じることを利用すれば、表の第4欄の「帰結I」に記載したとおり、「中心部分が周囲部分よりも暗い場合には、中心部分をより暗くするとコントラストが強まる」という視覚的現象が生じることになり、逆に、表の第5欄の「帰結II」に記載したとおり、「中心部分が周囲部分よりも暗い場合には、中心部分を明るくするとコントラストが弱まる」という視覚的現象が生じることになる。
そして第2に、パターンBに示すように「中心部分が周囲部分よりも明るいと、中心部分がより明るく見える」という視覚的現象が生じることを利用すれば、表の第4欄の「帰結I」に記載したとおり、「中心部分が周囲部分よりも明るい場合には、中心部分をより明るくするとコントラストが強まる」という視覚的現象が生じることになり、逆に、表の第5欄の「帰結II」に記載したとおり、「中心部分が周囲部分よりも明るい場合には、中心部分を暗くするとコントラストが弱まる」という視覚的現象が生じることになる。
本発明では、この帰結Iおよび帰結IIに記載した視覚的現象を利用して、局所的な輝度調整を行うことになる。いわば、物理的な輝度値に基づく輝度調整ではなく、人間の脳に合わせた輝度調整が行われることになる。以下、局所的コントラストを強める場合と、局所的コントラストを弱める場合とに分けて、本発明における局所的な輝度調整の基本原理を説明する。
<2−4.局所的コントラストを強める場合の輝度調整>
図10は、図9に示す帰結Iに基づいて局所的コントラストを強めるための輝度調整を行う基本原理を説明する図である。いま、図の中段に示すような3×3の画素配列を考える。この画素配列は、その中心に配置された着目画素Pについて設定された参照領域R[P]を示すものであり、ここでは、着目画素Pの周囲に配置された8個の周囲画素Eの輝度値に基づいて、当該着目画素Pについての個別補正関数F[P]を設定する場合を考えてみよう。
この場合、まず、着目画素Pの輝度値L[P]と周囲画素Eの輝度値とを比較する処理を行う。もっとも、比較対象となる周囲画素Eは複数個(図示の例の場合は8個)存在するので、実際に比較を行うのは、着目画素Pの輝度値L[P]と複数の周囲画素Eの代表輝度値Leということになる。複数の周囲画素Eの代表輝度値Leとしては、たとえば、平均値を用いればよい。図示の例の場合、8個の周囲画素Eの輝度値の平均値が代表輝度値Leになる。
こうして、着目画素Pの輝度値L[P]と周囲画素Eの代表輝度値Leとを比較した結果、L[P]<Leであった場合、すなわち、着目画素Pが周囲画素Eに比べて相対的に暗かった場合は、「中心部分が周囲部分よりも暗い場合には、中心部分をより暗くするとコントラストが強まる」という帰結I(図9の表の第4欄左)に基づいて、着目画素Pをより暗くすれば、コントラストを強める補正を行うことができる。そこで、図10の上段に示すグラフの左半分の領域(代表輝度値Leよりも入力輝度値Linが小さい領域)では、補正増減率Cとして負の値が設定されるよう、補正基準ラインξ0上の点P1,P2を下方に移動している。ここで、代表輝度値Leに対する隔たりが大きい点P1は、隔たりが小さい点P2よりも、下方への移動量が大きくなるように設定されている。
一方、着目画素Pの輝度値L[P]と周囲画素Eの代表輝度値Leとを比較した結果、L[P]>Leであった場合、すなわち、着目画素Pが周囲画素Eに比べて相対的に明るかった場合は、「中心部分が周囲部分よりも明るい場合には、中心部分をより明るくするとコントラストが強まる」という帰結I(図9の表の第4欄右)に基づいて、着目画素Pをより明るくすれば、コントラストを強める補正を行うことができる。そこで、図10の上段に示すグラフの右半分の領域(代表輝度値Leよりも入力輝度値Linが大きい領域)では、補正増減率Cとして正の値が設定されるよう、補正基準ラインξ0上の点P3,P4を上方に移動している。ここで、代表輝度値Leに対する隔たりが大きい点P4は、隔たりが小さい点P3よりも、上方への移動量が大きくなるように設定されている。
なお、着目画素Pの輝度値L[P]と周囲画素Eの代表輝度値Leとを比較した結果、L[P]=Leであった場合、すなわち、着目画素Pと周囲画素Eとが同じ明るさであった場合は、補正増減率Cが0になるように、基準ラインξ0上の点E0の位置はそのままにする。
このような方針により、基準ラインξ0上の各点について、代表輝度値Leよりも入力輝度値Linが小さい領域に関しては下方に移動させ、かつ、Leに対する隔たりが大きい点ほど下方への移動量が大きくなるようにし(最大移動量は、C=−1のラインに達するまで)、代表輝度値Leよりも入力輝度値Linが大きい領域に関しては上方に移動させ、かつ、Leに対する隔たりが大きい点ほど上方への移動量が大きくなるようにすれば(最大移動量は、C=+1のラインに達するまで)、移動後の各点の集合により、図に破線で示すようなグラフが得られる。
当該グラフは、横軸に入力輝度値Lin、縦軸に補正増減率Cをとったグラフであり、入力輝度値Linの増加とともに単調増加する個別補正関数F[P]のグラフに他ならない。実際、図10の上段に示す個別補正関数F[P]のグラフは、図6(a) に示す個別補正関数F[P]のグラフと全く同じものであり、このような個別補正関数F[P]を用いてグローバルトーンカーブT[G]に対する補正を行えば、図6(b) に示すようなローカルトーンカーブT[P]が得られることは既に述べたとおりである。
ここで重要な点は、図10の上段に示すように、個別補正関数F[P]のグラフと補正基準ラインξ0(C=0のライン)との交点E0の横軸座標値が、周囲画素Eの輝度値を代表する代表輝度値Leに一致している点である。別言すれば、個別補正関数F[P]のグラフ上において、代表輝度値Leに対応する点E0の縦軸座標値は、C=0になっている。図では、たまたま代表輝度値がLe=128である場合の例が示されているため、個別補正関数F[P]のグラフと補正基準ラインξ0(C=0のライン)との交点E0が、グラフの中心に位置しているが、点E0の横軸座標値は、常に周囲画素Eの代表輝度値Leに一致する。したがって、周囲画素Eが暗い場合には、点E0は図の左方に移動し、個別補正関数F[P]のグラフ全体も図の左方へとスライドする。逆に、周囲画素Eが明るい場合には、点E0は図の右方に移動し、個別補正関数F[P]のグラフ全体も図の右方へとスライドする。
個々の着目画素Pについて、このような特徴をもった個別補正関数F[P]を設定すれば、着目画素Pの輝度値L[P]が代表輝度値Leと等しい場合、すなわち、周囲と同じ明るさの場合、点E0で示されるように補正増減率はC=0になり、局所的な輝度調整は行われないことになる。ところが、着目画素Pが周囲より暗い場合や明るい場合は、図9の表の第4欄に示す帰結Iに基づく局所的な輝度調整が行われることになる。このように、特定の着目画素Pに対する局所的な輝度調整は、常に、周囲画素の代表輝度値Leと当該着目画素Pの輝度値L[P]との相対的な比較に基づいて行われる。その結果、前述したように、着目画素Pを認知心理学上の「図」、周囲画素Eを認知心理学上の「地」として、人間の脳内で特有の視覚処理が行われることを前提にすれば、着目画素Pの周辺における局所的なコントラストを強める効果が得られるのである。
このように、局所的なコントラストを強める補正を行うという前提では、着目画素Pの輝度値L[P]が周囲画素Eの代表輝度値Leよりも小さい場合は、当該着目画素Pの輝度値L[P]をより小さくし、着目画素Pの輝度値L[P]が周囲画素Eの代表輝度値Leよりも大きい場合は、当該着目画素Pの輝度値L[P]をより大きくし、着目画素Pの輝度値L[P]が周囲画素Eの代表輝度値Leに等しい場合は、当該着目画素Pの輝度値L[P]をそのままとするような機能をもった個別補正関数F[P]を設定すればよいことになる。
なお、図10の上段に示すように、個別補正関数F[P]のグラフは、入力輝度値Linの増加に応じて補正増減率Cが単調増加するという特徴も有している。その結果、代表輝度値Leに対する横軸上の隔たりが大きいほど、補正増減率Cの絶対値も大きくなり、補正量は大きくなる。このような設定は、一般的な画像に対する処理に関しては適切な設定である。
たとえば、画像上の一部に、澄みきった青空領域があった場合、この青空領域に関しては、着目画素Pの輝度値L[P]と周囲画素Eの代表輝度値Leとの隔たりは小さくなるであろう。その結果、局所的なコントラストを強める補正量はわずかになる。一般に、澄みきった青空領域に対してコントラストを強める補正を行う必要はないので、適切な輝度調整が行われたことになる。
これに対して、白地の文字盤に黒い数字が印字されている時計が含まれている時計領域を考えてみよう。この時計領域に関しては、着目画素Pの輝度値L[P]と周囲画素Eの代表輝度値Leとの隔たりは大きくなるであろう。その結果、局所的なコントラストを強める補正量も大きくなる。一般に、このような時計領域に対しては、コントラストを強める補正を行うのが好ましいので、やはり適切な輝度調整が行われたことになる。
このような点を考慮すれば、本発明において、局所的コントラストを強めるための輝度調整を行う場合には、入力輝度値Linの増加に応じて補正増減率Cが単調増加し、かつ、周囲画素の輝度値を代表する代表輝度値に相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数を設定するのが好ましいと言える。
<2−5.局所的コントラストを弱める場合の輝度調整>
上述した§2−4では、コントラストを強めることを前提とした輝度調整を述べたが、実用上は、逆にコントラストを弱める輝度調整が必要とされるケースもある。たとえば、ソフトフォーカスで撮影された写真画像では、コントラストを弱める輝度調整を施した方が、より好ましい画像になることが多い。あるいは、人物の顔写真などでは、肌の荒れを隠す目的で、コントラストを弱める輝度調整が行われることが多い。そこで、ここでは、局所的コントラストを弱める場合の輝度調整を述べる。
図11は、図9に示す帰結IIに基づいて局所的コントラストを弱めるための輝度調整を行う基本原理を説明する図である。図10に示す例と同様に、この図11においても、その中段に3×3の画素配列からなる参照領域R[P]が示されている。
ここで、着目画素Pの輝度値L[P]と周囲画素Eの代表輝度値Leとを比較した結果、L[P]<Leであった場合、すなわち、着目画素Pが周囲画素Eに比べて相対的に暗かった場合は、「中心部分が周囲部分よりも暗い場合には、中心部分を明るくするとコントラストが弱まる」という帰結II(図9の表の第5欄左)に基づいて、着目画素Pを明るくすれば、コントラストを弱める補正を行うことができる。そこで、図11の上段に示すグラフの左半分の領域(代表輝度値Leよりも入力輝度値Linが小さい領域)では、補正増減率Cとして正の値が設定されるよう、補正基準ラインξ0上の点P1,P2を上方に移動している。ここで、代表輝度値Leに対する隔たりが大きい点P1は、隔たりが小さい点P2よりも、上方への移動量が大きくなるように設定されている。
一方、着目画素Pの輝度値L[P]と周囲画素Eの代表輝度値Leとを比較した結果、L[P]>Leであった場合、すなわち、着目画素Pが周囲画素Eに比べて相対的に明るかった場合は、「中心部分が周囲部分よりも明るい場合には、中心部分を暗くするとコントラストが弱まる」という帰結II(図9の表の第5欄右)に基づいて、着目画素Pを暗くすれば、コントラストを弱める補正を行うことができる。そこで、図11の上段に示すグラフの右半分の領域(代表輝度値Leよりも入力輝度値Linが大きい領域)では、補正増減率Cとして負の値が設定されるよう、補正基準ラインξ0上の点P3,P4を下方に移動している。ここで、代表輝度値Leに対する隔たりが大きい点P4は、隔たりが小さい点P3よりも、下方への移動量が大きくなるように設定されている。
なお、着目画素Pの輝度値L[P]と周囲画素Eの代表輝度値Leとを比較した結果、L[P]=Leであった場合、すなわち、着目画素Pと周囲画素Eとが同じ明るさであった場合は、補正増減率Cが0になるように、基準ラインξ0上の点E0の位置はそのままにする。
このような方針により、基準ラインξ0上の各点について、代表輝度値Leよりも入力輝度値Linが小さい領域に関しては上方に移動させ、かつ、Leに対する隔たりが大きい点ほど上方への移動量が大きくなるようにし(最大移動量は、C=+1のラインに達するまで)、代表輝度値Leよりも入力輝度値Linが大きい領域に関しては下方に移動させ、かつ、Leに対する隔たりが大きい点ほど下方への移動量が大きくなるようにすれば(最大移動量は、C=−1のラインに達するまで)、移動後の各点の集合により、図に破線で示すようなグラフが得られる。
当該グラフは、横軸に入力輝度値Lin、縦軸に補正増減率Cをとったグラフであり、入力輝度値Linの増加とともに単調減少する個別補正関数F[P]のグラフに他ならない。実際、図11の上段に示す個別補正関数F[P]のグラフは、図7(a) に示す個別補正関数F[P]のグラフと全く同じものであり、このような個別補正関数F[P]を用いてグローバルトーンカーブT[G]に対する補正を行えば、図7(b) に示すようなローカルトーンカーブT[P]が得られることは既に述べたとおりである。
ここでも重要な点は、図11の上段に示すように、個別補正関数F[P]のグラフと補正基準ラインξ0(C=0のライン)との交点E0の横軸座標値が、周囲画素Eの輝度値を代表する代表輝度値Leに一致している点である。別言すれば、個別補正関数F[P]のグラフ上において、代表輝度値Leに対応する点E0の縦軸座標値は、C=0になっている。この図11でも、たまたま代表輝度値がLe=128である場合の例が示されているため、個別補正関数F[P]のグラフと補正基準ラインξ0(C=0のライン)との交点E0が、グラフの中心に位置しているが、点E0の横軸座標値は、常に周囲画素Eの代表輝度値Leに一致する。したがって、周囲画素Eが暗い場合には、点E0は図の左方に移動し、個別補正関数F[P]のグラフ全体も図の左方へとスライドする。逆に、周囲画素Eが明るい場合には、点E0は図の右方に移動し、個別補正関数F[P]のグラフ全体も図の右方へとスライドする。
個々の着目画素Pについて、このような特徴をもった個別補正関数F[P]を設定すれば、着目画素Pの輝度値L[P]が代表輝度値Leと等しい場合、すなわち、周囲と同じ明るさの場合、点E0で示されるように補正増減率はC=0になり、局所的な輝度調整は行われないことになる。ところが、着目画素Pが周囲より暗い場合や明るい場合は、図9の表の第5欄に示す帰結IIに基づく局所的な輝度調整が行われることになる。その結果、着目画素Pの周辺における局所的なコントラストを弱める効果が得られることになる。。
このように、局所的なコントラストを弱める補正を行うという前提では、着目画素Pの輝度値L[P]が周囲画素Eの代表輝度値Leよりも小さい場合は、当該着目画素Pの輝度値L[P]をより大きくし、着目画素Pの輝度値L[P]が周囲画素Eの代表輝度値Leよりも大きい場合は、当該着目画素Pの輝度値L[P]をより小さくし、着目画素Pの輝度値L[P]が周囲画素Eの代表輝度値Leに等しい場合は、当該着目画素Pの輝度値L[P]をそのままとするような機能をもった個別補正関数F[P]を設定すればよいことになる。
なお、図11の上段に示すように、個別補正関数F[P]のグラフは、入力輝度値Linの増加に応じて補正増減率Cが単調減少するという特徴も有している。その結果、代表輝度値Leに対する横軸上の隔たりが大きいほど、補正増減率Cの絶対値も大きくなり、補正量は大きくなる。このような設定は、やはり一般的な画像に対して局所的なコントラストを弱める処理としては適切な設定になる。したがって、本発明において、局所的コントラストを弱めるための輝度調整を行う場合には、入力輝度値Linの増加に応じて補正増減率Cが単調減少し、かつ、周囲画素の輝度値を代表する代表輝度値に相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数を設定するのが好ましいと言える。
<2−6.周囲画素Eの代表輝度値Leの算出>
これまで、図10を参照しながら、局所的コントラストを強める場合に利用する個別補正関数F[P]の設定方針を説明し、図11を参照しながら、局所的コントラストを弱める場合に利用する個別補正関数F[P]の設定方針を説明した。基本的には、前者の場合は単調増加関数、後者の場合は単調減少関数を用いることになるが、いずれの場合も、重要な点は、個別補正関数F[P]のグラフと補正基準ラインξ0(C=0のライン)との交点E0の横軸座標値を、周囲画素Eの輝度値を代表する代表輝度値Leに一致させる点である。
ここで、代表輝度値Leとしては、前述したとおり、参照領域内の複数の周囲画素Eの輝度値の平均値を用いてもよいし、着目画素Pに距離的に近い周囲画素Eほど大きな重みを付与して求めた加重平均値を当該複数の周囲画素Eの代表輝度値Leとしてもかまわない。図10および図11では、説明の便宜上、3×3の画素配列を参照領域とした例が示されているが、実際には、より大きなサイズの画素配列が参照領域として設定される。
たとえば、横方向の画素数Sxが1920画素の横長の画像を調整前画像U1とする場合、前述したように、n=10に設定して、Sx/n=192なる演算を行い、一辺が192画素程度の正方形領域を参照領域R[P]として設定すれば、良好な輝度調整結果が得られる。この場合、192×192の画素配列が1つの着目画素Pの参照領域R[P]として設定されることになる。したがって、周囲画素Eの数は、「192×192−1」という4万に近い数になるので、これらの輝度値の単純な平均値を代表輝度値Leとして用いてもよいが、着目画素Pに距離的に近い周囲画素Eほど大きな重みを付与して求めた加重平均値を代表輝度値Leとして用いてもよい。
なお、実際には、参照領域R[P]内の周囲画素Eの代表輝度値Leを求める際に、当該参照領域R[P]内の着目画素Pの輝度値を周囲画素Eの輝度値の1つとして取り扱うようにしてかまわない。たとえば、上例の場合、192×192の画素配列からなる参照領域R[P]内において、中心の着目画素Pを除いた「192×192−1」個の画素が周囲画素Eということになるが、単純な平均値として代表輝度値Leの算出を行う場合、中心の着目画素Pを1個だけ除いた演算を行うことは効率的ではない。したがって、実用上は、参照領域R[P]内の全画素(着目画素Pも含めた192×192個の画素)について集計を行うようにしてかまわない。着目画素Pの影響は、たかだか1/(192×192)程度なので、実用上は無視し得る。
<2−7.個別補正関数F[P]のグラフの形状>
本発明において個別補正関数F[P]を設定するためのポイントは、局所的コントラストを強める場合には単調増加関数、弱める場合には単調減少関数を用いる点と、個別補正関数F[P]のグラフと補正基準ラインξ0(C=0のライン)との交点E0の横軸座標値を、周囲画素Eの輝度値を代表する代表輝度値Leに一致させる点である。したがって、たとえば、図12に示すような単純な線形関数を個別補正関数F[P]として用いることもできる。
ただ、本願発明者が行った実験によれば、単純な線形関数を用いるよりも、単調増加もしくは単調減少の状態がより自然な関数を用いた方が好ましい結果が得られた。自然な増減を示す代表的な関数としては、ガウス分布関数が知られている。図13のグラフG1は、このガウス分布関数をグラフとして示したガウス分布曲線である。このガウス分布曲線G1自身は、ゆっくり増加しながらゆっくり減少する関数であるが、これを積分することにより得られる累積ガウス分布曲線G2は、図示のとおり、自然な増減を示す単調増加関数になる。もちろん、この累積ガウス分布曲線G2を左右反転すれば、単調減少関数として利用することもできる。
実用上は、図12に示すような単純な線形関数ではなく、図13に示すような累積ガウス分布曲線G2を利用して個別補正関数F[P]を設定するのが好ましい。したがって、個別補正関数F[P]を設定する際には、予め、図13に示すような累積ガウス分布曲線G2(もしくは、その左右を反転させた分布曲線)を用意しておき、縦軸を−1〜+1の範囲内に規格化して利用すればよい。もちろん、個別補正関数F[P]のグラフと補正基準ラインξ0(C=0のライン)との交点E0の横軸座標値が、周囲画素Eの輝度値を代表する代表輝度値Leに一致する、という条件を満足させる必要があるので、用意した累積ガウス分布曲線G2を横軸に沿ってスライドさせて、上記条件が満たされる位置に配置すればよい。
図14は、累積ガウス分布曲線を左右にスライドさせ、上記条件が満たされる位置に配置することにより個別補正関数F[P]を設定した状態を示すグラフである。グラフF[P]と補正基準ラインξ0との交点E0の横軸座標値は、代表輝度値Leに一致している。この例の場合、累積ガウス分布曲線を左方向にスライドさせたため、破線で示すグラフの左端部分は、入力輝度値Lin<0の領域に食み出してしまっているが、実際の個別補正関数F[P]の定義域は、0≦Lin≦255の範囲内になるので支障は生じない。一方、個別補正関数F[P]のグラフの右端部分(255に近い部分)は、補正上限ラインξα(C=+1)に一致し、飽和状態になる。
個別補正関数F[P]の横軸の範囲(定義域)は、グローバルトーンカーブT[G]の横軸の範囲に揃えるようにすればよい。たとえば、グローバルトーンカーブT[G]の横軸Linの範囲が、0≦Lin≦M(但し、Mは輝度値の最大値)なる条件を満たす範囲として設定されている場合は、個別補正関数設定手段140によって、0≦Lin≦Mなる条件を満たす範囲内の入力輝度値Linを横軸、所定の補正増減率Cを縦軸にとって、入力輝度値Linと補正増減率Cとの関係を示すグラフによって表現される個別補正関数F[P]を設定すればよい。これまで述べた実施例は、輝度値の最大値M=255とした例である。
個別補正関数F[P]をこのような方法で設定しておけば、輝度値変換手段130は、グローバルトーンカーブT[G]における任意の入力輝度値Linに対応する出力輝度値Lout の値を、個別補正関数F[P]における当該入力輝度値Linに対応する補正増減率Cに応じて増減する補正を行うことによりローカルトーンカーブT[P]の定義を行うことができる。
なお、補正増減率Cとしては、一般に、負の数値K1および正の数値K2を用いて、K1≦C≦K2なる条件を満たす範囲内の値を用いるようにすればよい。実際には、K1=−1、K2=+1に設定し、補正増減率Cとして、−1≦C≦+1なる条件を満たす範囲内の値を用いて個別補正関数F[P]を設定するのが好ましい。このように補正増減率Cが−1〜+1の範囲に規格化されていれば、輝度値変換手段130は、個別補正関数F[P]を用いてローカルトーンカーブT[P]の定義を行う演算を簡略化できる。
<<< §3. 関数f(L)の総和により関数F[P]を設定する方法 >>>
§2で述べたとおり、個別補正関数設定手段140は、個々の着目画素Pについて個別補正関数F[P]を設定する処理を行う。ここでは、§2で述べた基本方針に従いつつ、より好適な個別補正関数F[P]を設定することができる具体的な方法を説明する。
<3−1.局所調整関数f(L)の定義>
既に述べたとおり、個別補正関数設定手段140が個別補正関数F[P]を設定する際の基本的なポイントは、局所的コントラストを強める場合には単調増加関数、弱める場合には単調減少関数を用いる点と、個別補正関数F[P]のグラフと補正基準ラインξ0(C=0のライン)との交点E0の横軸座標値を、周囲画素Eの輝度値を代表する代表輝度値Leに一致させる点である。ただ、実際には、個別補正関数F[P]のグラフの細部の形状をどのように設定するかが、局所的な輝度調整の結果を左右する重要なファクターになってくる。
図12や図14に示す例の場合、単純な線形関数のグラフもしくは累積ガウス分布曲線のグラフを、点E0が代表輝度値Leの位置にくるように配置することにより個別補正関数F[P]の設定を行っている。したがって、代表輝度値Leの値が同じであれば、同じ個別補正関数F[P]が設定されることになる。しかしながら、実際には、代表輝度値Leの値が同じであっても、周囲画素Eの輝度値分布までが同じであるわけではない。
前述したように、参照領域R[P]は、実際にはかなり大きなサイズの画素配列によって構成されているため、たとえ輝度値の平均値が同じであったとしても、輝度値分布は様々である。したがって、これら多数の周囲画素の輝度値分布を考慮して、最適な個別補正関数F[P]を設定するためには、図12や図14に例示するような画一的な形状をもったグラフを点E0の位置が代表輝度値Leの位置に一致するようにスライドさせて配置するだけでは不十分である。本来は、複数の周囲画素Eの輝度値を1つ1つ考慮して、個別補正関数F[P]のグラフの細部の形状を決定すべきである。
そこで、ここで述べる実施形態では、参照領域R[P]内の1つ1つの周囲画素Eについて、それぞれ単調増加関数(もしくは単調減少関数)のグラフを配置し、これら個々のグラフを集計した総和として総和グラフを求め、この総和グラフを用いて個別補正関数F[P]を設定する、という手法を採ることにする。
たとえば、図14に示す例の場合、累積ガウス分布曲線のグラフを1つだけ、代表輝度値Leに応じた位置に配置することにより個別補正関数F[P]を設定しているが、その代わりに、累積ガウス分布曲線のグラフを周囲画素Eの数だけ用意し、これらのグラフをそれぞれ対応する周囲画素Eの輝度値に応じた位置に配置し、最後に、これら多数のグラフを集計することにより、個別補正関数F[P]を設定すればよい。
ここでは、1つ1つの周囲画素Eに対応させて配置する個々のグラフを示す関数を局所調整関数f(L)と呼ぶことにする。大文字Fを用いて表記された個別補正関数F[P]の記号[P]は、当該関数が特定の着目画素Pについて個別に設定された関数であることを示しているが、小文字fを用いて表記された局所調整関数f(L)の記号(L)は、輝度値Lを変数として定義された関数であることを示している。局所調整関数f(L)としては、輝度値Lを横軸、調整値f(総和演算の対象となる数値)を縦軸にとって、輝度値Lと調整値fとの関係を示すグラフによって表現され、輝度値Lの増加に応じて調整値fが滑らかに単調増加(もしくは単調減少)するような関数であれば、どのような関数を用いてもかまわない。
ただ、実際には、図13に示す累積ガウス分布曲線G2を示す関数が、局所調整関数f(L)として用いるのにも最適な関数と考えられる。一般に、ガウス分布関数は、自然なエネルギー分布を表す関数として知られている。したがって、風景写真などの一般的な写真画像に対して輝度変換を行う場合、累積ガウス分布曲線G2を集計することにより設定された個別補正関数F[P]を用いれば、自然界に適した輝度変換処理が期待できる。
また、累積ガウス分布曲線G2は、点対称性を有している、という点においても、局所調整関数f(L)として用いるのに適している。図13に示す例の場合、累積ガウス分布曲線G2は、点Gに関して点対称となる性質を有しており、点Gを回転中心点として、グラフを180°回転させたときに同一のグラフが得られる性質を有する。このような累積ガウス分布曲線G2を局所調整関数f(L)として配置すれば、増加補正と減少補正とのバランスがとれた補正を行うことができ、画像全体の輝度を、できるだけグローバルトーンカーブT[G]によって指定された輝度に維持する効果が期待できる。したがって、以下の実施例では、累積ガウス分布関数を局所調整関数f(L)として用いた例を代表的な例として説明することにする。
もちろん、芸術写真など、特定の作画意図をもって撮影された写真の場合、必ずしも自然界に適した輝度変換処理が最適であるとは限らないので、本発明を実施するにあたり、局所調整関数f(L)として用いる関数は、累積ガウス分布関数に限定されるものではない。
ところで、ガウス分布関数や累積ガウス分布関数は、必ずしも演算処理に適した形の関数にはなっていない。そこで、実用上は、累積ガウス分布関数を用いた演算を行う代わりに、これに近似したシグモイド関数を用いた演算を行うのが好ましい。シグモイド関数は、図15に示すように、「f(L)=(2/(1+exp(−μ・(L−Le)/M)))−1」なる式で表される関数である。ここで、Lは変数となる輝度値、Leは周囲画素の輝度値、Mは輝度値の最大値、μは所定の勾配係数である。
たとえば、図14に示す個別補正関数F[P]も、上記シグモイド関数式で近似的に表すことができる。この場合、入力輝度値Linが変数Lとなり、輝度値の最大値M=255ということになる。関数値f(L)は、L=Leのときに0になり、これは図14のグラフにおける点E0に対応する。また、L<Leのときは、f(L)<0になり、図14のグラフの点E0より左側部分に対応し、L>Leのときは、f(L)>0になり、図14のグラフの点E0より右側部分に対応する。
<3−2.個別補正関数F[P]の設定>
図16は、個々の周囲画素に対応する局所調整関数f(L)の総和により個別補正関数F[P]を設定する様子を示すグラフである。図の下段に示す画素配列は、着目画素Pについて設定された参照領域R[P]である。ここでは、説明の便宜上、7×7の画素配列として示してある(実際の参照領域R[P]は、たとえば、192×192のような、より大きな画素配列から構成される)。
図16の上段には、輝度値L(範囲0〜255)を横軸、調整値f(範囲−1〜+1)を縦軸にとった集計用座標系が示されている。この集計用座標系上に、個々の周囲画素に対応する局所調整関数f(L)が配置される。ここでは、具体的な配置例として、図の下段に示す参照領域R[P]内の周囲画素E1に対応する局所調整関数f1(L)および周囲画素E2に対応する局所調整関数f2(L)を配置した例が示されている。実際には、図示の例の場合、参照領域R[P]を構成する7×7の画素配列に含まれる48個の周囲画素Eのそれぞれについて、同じように局所調整関数f(L)が配置され、集計用座標系上には、合計48組の局所調整関数f(L)が配置されることになる。
ここに示す実施例の場合、集計用座標系上に配置される48組の局所調整関数f(L)は、いずれも同一の累積ガウス分布関数(実際には、近似的なシグモイド関数を用いて演算を行う)であるが、重要な点は、それぞれが横方向にスライドさせた所定位置に配置されている点である。
たとえば、図示する局所調整関数f1(L)は、周囲画素E1に対応する関数であるので、周囲画素E1の輝度値(この例の場合、64)に対応した位置、すなわち、グラフf1(L)と補正基準ラインξ0(調整値f=0のライン)との交点E01の横軸座標値がL=64となるような位置に配置されている。同様に、図示する局所調整関数f2(L)は、周囲画素E2に対応する関数であるので、周囲画素E2の輝度値(この例の場合、160)に対応した位置、すなわち、グラフf2(L)と補正基準ラインξ0(調整値f=0のライン)との交点E02の横軸座標値がL=160となるような位置に配置されている。
このように、集計用座標系上には、合計48組の局所調整関数f(L)が配置され、これらの縦軸方向の位置は同じであるが(すなわち、各グラフの調整値f=0に対応する点がすべて補正基準ラインξ0にのる)、これらの横軸方向の位置は、それぞれ対応する周囲画素Eの輝度値に応じて変わることになる。
こうして、集計用座標系上に合計48組の局所調整関数f(L)が配置されたら、これらを集計した総和として総和グラフを求め、この総和グラフによって示される関数を個別補正関数F[P]とすればよい。ここで、グラフの集計とは、同一の輝度値Lを変数として与えたときの各局所調整関数の関数値f(L)の和を求める演算を意味する。すなわち、周囲画素Eの番号を示すパラメータとしてjを用い、第j番目の周囲画素Ejに対応する局所調整関数をfj(L)とし、参照領域R[P]内の周囲画素Eの総数をNとすれば、着目画素Pについての個別補正関数F[P]は、図16の中段に示すように、F[P]=1/N・Σj=1〜N fj(L)なる式で定義されることになる。
上述したように、−1〜+1の範囲内に規格化された調整値fを関数値とする局所調整関数fj(L)を用いることにすれば、上記式で算出される個別補正関数F[P]の関数値(すなわち、補正増減率C)も、−1〜+1の範囲内に規格化されたものになる。もちろん、総和を求める集計後に規格化処理を行うことも可能である。この場合、局所調整関数fj(L)の関数値として定義される調整値fは、必ずしも−1〜+1の範囲内に規格化されている必要はなく、任意の数値範囲の値であってかまわない。
このように、複数N個の局所調整関数f(L)の総和として個別補正関数F[P]を定義すると、図14に示すような単純な累積ガウス分布のグラフで示される関数ではなく、より複雑な形状をもったグラフで示される個別補正関数F[P]が得られることになる。これは、複数の周囲画素Eの輝度値を1つ1つ考慮した結果であり、こうして得られた個別補正関数F[P]は、局所的な輝度調整に利用するのに最適な関数と言うことができる。
もちろん、こうして得られた複雑なグラフ形状をもつ個別補正関数F[P]も、単調増加型の関数であることに変わりはなく、また、グラフF[P]と補正基準ラインξ0(C=0のライン)との交点E0の横軸座標値が、参照領域R[P]内の周囲画素の代表輝度値Leになる点も変わりはない。もちろん、この場合の代表輝度値Leは、個々の周囲画素の輝度値に基づいて算術的な平均として求めた値ではなく、複数N個の局所調整関数f(L)の総和として個別補正関数F[P]を求めたときに、この個別補正関数F[P]が補正基準ライン(C=0のライン)を横切る横軸座標として与えられることになる。それでも、こうして与えられた代表輝度値Leが、全周囲画素の輝度値を代表する値であるという性質に変わりはない。したがって、個別補正関数F[P]としての基本的な性質は、§2で述べた基本的実施形態で用いられている個別補正関数F[P]と全く同じである。
なお、ここでは、局所的コントラストを強める場合の輝度調整を想定して、輝度値Lの増加に応じて調整値fが単調増加する局所調整関数f(L)を用いる例を述べたが、局所的コントラストを弱める場合は、輝度値Lの増加に応じて調整値fが単調減少する局所調整関数f(L)を用いるようにすればよい。具体的には、図13に示す累積ガウス分布曲線G2を左右反転させた曲線を単調減少型の局所調整関数f(L)として利用することができる。
結局、局所調整関数f(L)の総和により個別補正関数F[P]を設定する方法を採る場合は、個別補正関数設定手段140が、次のような処理を行えばよい。まず、集計用座標系に配置する局所調整関数f(L)を定義する。この局所調整関数f(L)は、輝度値Lを横軸、調整値fを縦軸にとって、輝度値Lと調整値fとの関係を示すグラフによって表現される関数であって、輝度値Lの増加に応じて調整値fが滑らかに単調増加もしくは単調減少するような関数であればよい。
ただ、実用上は、この局所調整関数f(L)として、調整値f=0に対応するグラフ上の点を回転中心点として、グラフを180°回転させたときに同一のグラフが得られるような点対称性をもった関数を用いるのが好ましい。たとえば、図16の上段に示す局所調整関数f1(L)は点E01について点対称性をもった関数であり、局所調整関数f2(L)は点E02について点対称性をもった関数である。このように、点対称性をもった局所調整関数f(L)を用いるようにすると、前述したように、増加補正と減少補正とのバランスがとれた補正を行うことができ、画像全体の輝度を、できるだけグローバルトーンカーブT[G]によって指定された輝度に維持する効果が期待できる。
続いて、図16の上段に示すように、輝度値Lを横軸、調整値fを縦軸にとった集計用座標系上に、参照領域R[P]内の第j番目の周囲画素Ej(但し、j=1,2,... ,N、ここでNは参照領域内の周囲画素の総数)に対応させて第j番目の局所調整関数fj(L)のグラフをf=0の点が補正基準ラインξ0上にくるように配置する。そして、配置した第j番目のグラフ上において調整値f=0となる点の横軸座標が、対応する第j番目の周囲画素Ejの輝度値Ljに一致するように、個々のグラフをそれぞれ所定量だけ横軸方向に個別にスライドさせるようにする。図16の上段に示す例は、2組の局所調整関数f1(L),f2(L)のグラフについて、このようなスライド処理を行った状態を示している。
最後に、こうして集計用座標系に配置された合計N組の局所調整関数f1(L)〜fN(L)のグラフを集計し、その総和として総和グラフを求め、この総和グラフを用いて個別補正関数F[P]を設定すればよい。具体的には、総和グラフの縦軸を−1≦C≦+1なる条件を満たす範囲内に規格化し、横軸の0≦L≦M(但し、Mは輝度値の最大値、これまでの実施例では、M=255)なる条件を満たす部分を抽出したものを、個別補正関数F[P]として設定すればよい。
このとき、実用上は、局所調整関数f(L)として、図15に示すようなシグモイド関数を用いて総和演算を行うようにするのが好ましい。すなわち、局所的コントラストを強める輝度調整を行う場合には、第j番目の局所調整関数fj(L)として、「fj(L)=(2/(1+exp(−μ・(L−Lj)/M)))−1」なる単調増加型のシグモイド関数を用いるようにする。ここで、Lは変数となる輝度値、Ljは第j番目の周囲画素Ejの輝度値、Mは輝度値の最大値(これまでの実施例では、M=255)、μは所定の勾配係数である。勾配係数μによって、グラフの傾斜度合を調整することができる。勾配係数μは常に固定値を用いるようにしてもよいし、オペレータが任意に設定できるパラメータにしておいてもよい。
一方、局所的コントラストを弱める輝度調整を行う場合には、第j番目の局所調整関数fj(L)として、「fj(L)=−(2/(1+exp(−μ・(L−Lj)/M)))+1」なる単調減少型のシグモイド関数を用いるようにすればよい。この単調減少型のシグモイド関数は、上述した単調増加型のシグモイド関数に−1を乗じた関数である。たとえば、図16に示す局所調整関数f1(L),f2(L)に−1を乗じると、補正基準ラインξ0を中心に上下折り返したグラフ(正負逆転させたグラフ)に対応する単調減少型の局所調整関数が得られる。
なお、このN組の局所調整関数f1(L)〜fN(L)の総和演算を行う際にも、実用上は、着目画素Pを周囲画素の1つとして取り扱う運用を行ってかまわない。たとえば、図16の下段に示す例の場合、7×7の画素配列からなる参照領域R[P]において、中心の着目画素Pを除いた48個の周囲画素について、それぞれ局所調整関数f(L)を配置して集計を行うことになる(N=48)。しかしながら、中心の着目画素Pを1個だけ除いた演算を行うことは効率的ではない。
そこで、実用上は、着目画素Pも第49番目の周囲画素として取扱い、集計用座標系上に、N組の周囲画素に対応させたN組の局所調整関数のグラフf1(L)〜fN(L)に加えて、着目画素に対応する局所調整関数のグラフを配置してスライドさせ、合計(N+1)組のグラフを集計した総和として総和グラフを求め、この総和グラフを用いて個別補正関数を設定するような運用を行うのが好ましい。実際の参照領域R[P]は、たとえば、192×192といったサイズの画素配列から構成されており、着目画素P自身を周囲画素として取り扱う運用を行ったとしても、着目画素Pの影響は、たかだか1/(192×192)程度なので、実用上は無視し得る。
<<< §4. 3本のトーンカーブを設定する実施形態 >>>
§3−1では、図8に示すグローバルトーンカーブ設定手段120が、オペレータの設定操作に基づいてグローバルトーンカーブT[G]を設定する機能を有することを述べた。そして、輝度値変換手段130が、このグローバルトーンカーブT[G]に対する補正を行うことにより、第i番目の着目画素PiについてのローカルトーンカーブT[Pi]を定義した上で、第i番目の着目画素Piの輝度値を、このローカルトーンカーブT[Pi]を用いて変換することを説明した。この場合、オペレータは、意図した輝度調整を行うために、グローバルトーンカーブ設定手段120に対して指示を与え、グローバルトーンカーブT[G]の形状を変更する操作を行うことになる。
通常、トーンカーブの形状変更は、オペレータがマウスなどのポインティングデバイスを用いて、ディスプレイ画面上に表示されたトーンカーブ上の任意の点をドラッグする操作によって行われる。したがって、グローバルトーンカーブ設定手段120には、そのような操作を受け付けるインターフェイスが用意される。図17は、このようなインターフェイスを利用したグローバルトーンカーブT[G]の設定操作の一例を示す図である。
この例の場合、グローバルトーンカーブ設定手段120は、まず、ディスプレイ画面上に、図に一点鎖線で示す基準トーンカーブT0を表示する。この基準トーンカーブT0は、入力輝度値Lin=出力輝度値Lout となる基準線を示しており、基準トーンカーブT0をそのままグローバルトーンカーブT[G]として指定した場合、実質的な輝度調整は行われないことになる。ここで、オペレータが、基準トーンカーブT0上の点Aをポインティングデバイスでドラッグして点Bまで移動させたとすると、トーンカーブは新たな点Bを通る滑らかな曲線(図の実線カーブ)に変更される。図示のように、この曲線をグローバルトーンカーブT[G]として指定すれば、当該カーブに応じた輝度調整が行われることになる。
もちろん、この実線で示すカーブ上の任意の1点をドラッグすれば、グローバルトーンカーブT[G]の形状を更に変化させることもできる。また、「コントラスト強」のようなコマンドを選択すると、図2のトーンカーブT1が自動的に表示され、「コントラスト弱」のようなコマンドを選択すると、図3のトーンカーブT2が自動的に表示されるようなインターフェイスを用意しておくことも可能である。このように、オペレータは、グローバルトーンカーブ設定手段120内に用意されたインターフェイスの機能を利用して、所望の形状をもったグローバルトーンカーブT[G]を設定することが可能であり、当該カーブにより、所望の輝度調整を指示することが可能である。
ただ、1本のトーンカーブだけを用いた指示には限界があり、必ずしもオペレータが意図したとおりの輝度調整が行われるとは限らない。そこで、ここでは、グローバルトーンカーブT[G]を含めて、合計3本のトーンカーブを設定することにより、よりきめの細かな輝度調整指示を与えることができる実施形態を説明する。
<4−1.1本のトーンカーブによる輝度調整>
1本のグローバルトーンカーブT[G]を設定して輝度調整を行う形態については、既に、§2において基本的実施形態として説明したとおりであるが、ここでは、説明の便宜上、この基本的実施形態における処理を簡単にまとめておく。
まず、コントラストを強める輝度調整を行う場合には、図10の上段に示すように、入力輝度値Linの増加に応じて補正増減率Cが単調増加し、かつ、周囲画素Eの輝度値を代表する代表輝度値Leに相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数F[P]を、個別補正関数設定手段140によって設定する。そして、輝度値変換手段130によって、グローバルトーンカーブT[G]における任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、設定した個別補正関数F[P]における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ輝度値の最大値Mを上限として増加させる補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ0を下限として減少させる補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブT[P]の定義を行うようにすればよい。
一方、コントラストを弱める輝度調整を行う場合には、図11の上段に示すように、入力輝度値Linの増加に応じて補正増減率Cが単調減少し、かつ、周囲画素Eの輝度値を代表する代表輝度値Leに相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数F[P]を、個別補正関数設定手段140によって設定する。そして、輝度値変換手段130によって、上記と同様の方法でローカルトーンカーブT[P]の定義を行うようにすればよい。
補正増減率Cとしては、一般に、負の数値K1および正の数値K2を用いて、K1≦C≦K2なる条件を満たす範囲内の値を用いるようにすればよいが、実用上は、K1=−1、K2=+1に設定し、−1≦C≦+1なる条件を満たす範囲内の補正増減率Cを用いて個別補正関数F[P]を設定するのが好ましい。図6(b) や図7(b) に例示するように、輝度値変換手段130は、任意の横軸座標Lに位置するグローバルトーンカーブT[G]上の点について、その縦軸座標を補正増減率Cに基づいてLold からLnew に修正することによりローカルトーンカーブT[P]を定義することになる。
たとえば、図6(b) の横軸座標Laに位置するグローバルトーンカーブT[G]上の点A2の縦軸座標Lold は、新たな縦軸座標Lnew に修正され、点A3の位置まで移動する。同様に、図6(b) の横軸座標Lbに位置するグローバルトーンカーブT[G]上の点B2の縦軸座標Lold は、新たな縦軸座標Lnew に修正され、点B1の位置まで移動する。一方、図7(b) の横軸座標Laに位置するグローバルトーンカーブT[G]上の点A3の縦軸座標Lold は、新たな縦軸座標Lnew に修正され、点A2の位置まで移動する。同様に、図7(b) の横軸座標Lbに位置するグローバルトーンカーブT[G]上の点B1の縦軸座標Lold は、新たな縦軸座標Lnew に修正され、点B2の位置まで移動する。
いずれの場合も、具体的な縦軸座標の修正(旧縦軸座標Lold から新縦軸座標Lnew への修正)は、0≦Lin≦Mなる条件を満たす範囲内の入力輝度値Lin、0≦Lout ≦Mなる条件を満たす範囲内の出力輝度値Lout 、−1≦C≦+1なる条件を満たす範囲内の補正増減率Cを前提とし、基準トーンカーブT0より上にある修正対象点については、カーブT0を下限とする修正を行い、基準トーンカーブT0より下にある修正対象点については、カーブT0を上限とする修正を行うという制限を課すことにすれば(もちろん、そのような制限を課さずに修正を行ってもかまわないが)、補正増減率Cの絶対値を|C|として、次のような各演算によって行うことができる。
すなわち、任意の横座標軸Lの位置における旧縦軸座標Lold を新縦軸座標Lnewに補正するという前提では、まず、C>0,Lold <Lの場合(たとえば、図7(b) の横軸座標Laのように、修正対象点A3がT0より下方に位置し、A3の縦軸座標Lold がLold <Laの場合)は、Lnew =Lold +(L−Lold )×|C|なる式に基づいて修正を行うことにより、ローカルトーンカーブT[P]を定義すればよい。また、C>0,Lold >Lの場合(たとえば、図6(b) の横軸座標Lbのように、修正対象点B2がT0より上方に位置し、B2の縦軸座標Lold がLold> Lbの場合)は、Lnew =Lold +(M−Lold )×|C|なる式に基づいて修正を行うことにより、ローカルトーンカーブT[P]を定義すればよい。
一方、C<0,Lold <Lの場合(たとえば、図6(b) の横軸座標Laのように、修正対象点A2がT0より下方に位置し、A2の縦軸座標Lold がLold <Laの場合)は、Lnew =Lold −Lold ×|C|なる式に基づいて修正を行うことにより、ローカルトーンカーブT[P]を定義すればよい。そして、C<0,Lold >Lの場合(たとえば、図7(b) の横軸座標Lbのように、修正対象点B1がT0より上方に位置し、B1の縦軸座標Lold がLold> Lbの場合)は、Lnew =Lold −(Lold −L)×|C|なる式に基づいて修正を行うことにより、ローカルトーンカーブT[P]を定義すればよい。
<4−2.上下限を含む3本のトーンカーブによる輝度調整>
続いて、グローバルトーンカーブT[G]に加えて、上限カーブT[upper]および下限カーブT[lower]を設定し、合計3本のトーンカーブを用いて輝度調整を行う変形例を説明する。この変形例では、グローバルトーンカーブ設定手段120に、オペレータの設定操作に基づいて、グローバルトーンカーブT[G]とともに、その上方に位置する上限カーブT[upper]および下方に位置する下限カーブT[lower]を設定する機能をもたせておき、合計3本のカーブが設定できるようにしておく。
ここで、上限カーブT[upper]および下限カーブT[lower]は、グローバルトーンカーブT[G]と同様に、0≦Lin≦Mなる条件を満たす範囲内の入力輝度値Linを横軸、0≦Lout ≦Mなる条件を満たす範囲内の出力輝度値Lout を縦軸にとって、入力輝度値Linと出力輝度値Lout との関係を示すグラフによって構成される(Mは、各輝度値の最大値)。
図18は、輝度値の最大値をM=255とした場合について、グローバルトーンカーブT[G](実線),上限カーブT[upper](二点鎖線),下限カーブT[lower](三点鎖線)の3本のカーブを設定した例を示す図である。ここでは、参考のため、基準トーンカーブT0(一点鎖線)を併せて表示した状態が示されている。実際には、カラーのディスプレイ画面上に、個々のカーブごとに異なる色で表示がなされるようにするのが好ましい。オペレータは、図17で説明したように、マウスなどのポインティングデバイスを用いて、ディスプレイ画面上に表示された各トーンカーブ上の任意の点をドラッグする操作によって、個々のトーンカーブの形状を任意形状に設定する操作を行うことができる。
このように、この変形例では、合計3本のトーンカーブが設定されるので、輝度値変換手段130は、この3本のトーンカーブを考慮に入れて、ローカルトーンカーブT[P]を定義する処理を行うことになる。すなわち、基本的には、個々の着目画素Pごとに、グローバルトーンカーブT[G]を個別補正関数F[P]に基づいて補正することによりローカルトーンカーブT[P]が定義されることになるが、上限カーブT[upper]は、文字通り補正範囲の上限を規定する役割を果たし、下限カーブT[lower]は、文字通り補正範囲の下限を規定する役割を果たす。したがって、輝度値変換手段130は、設定されたグローバルトーンカーブT[G]を、上限カーブT[upper]と下限カーブT[lower]との間に挟まれた領域の範囲内で補正することにより、ローカルトーンカーブT[P]を定義することになる。
図19は、図18に示す3本のカーブに基づいてローカルトーンカーブT[P]を定義する原理を示すグラフである。ここでは、図19(a) に示すような個別補正関数F[P]を用いて、図18に示すグローバルトーンカーブT[G]を、上限カーブT[upper]と下限カーブT[lower]との間に挟まれた領域の範囲内で補正する例を説明する。ここで、図19(a) に示す個別補正関数F[P]は、図6(a) に示す個別補正関数F[P]と全く同じ関数である。図19(b) は、図19(a) に示す個別補正関数F[P]を用いてグローバルトーンカーブT[G]を補正することにより定義されたローカルトーンカーブT[P]を示すグラフである。図19(b) において、一点鎖線は基準トーンカーブT0、実線はグローバルトーンカーブT[G]、二点鎖線は上限カーブT[upper]、三点鎖線は下限カーブT[lower]、破線はローカルトーンカーブT[P]を示している。
ローカルトーンカーブT[P]が、グローバルトーンカーブT[G]における任意の入力輝度値Linに対応する出力輝度値Lout の値を、個別補正関数F[P]における当該入力輝度値Linに対応する補正増減率Cに応じて増減する補正を行うことにより得られる点は、これまで述べてきた基本的実施形態と全く同じである。したがって、個別補正関数F[P]が負の値をとる領域については、グローバルトーンカーブT[G]に対する減少補正が行われ、個別補正関数F[P]が正の値をとる領域については、グローバルトーンカーブT[G]に対する増加補正が行われる。
図19(b) に示す例の場合、実線のグラフT[G]と破線のグラフT[P]とが点Oにおいて交差しているが、この点Oは、図19(a) に示す個別補正関数F[P]の補正増減率がC=0となる点(すなわち、何ら補正が行われない点)に対応している。
そして、この交点Oよりも左側の領域(個別補正関数F[P]が負の値をとる領域)については減少補正が行われ、破線のグラフT[P]が実線のグラフT[G]よりも下がっている。たとえば、入力輝度値Lin=Laに対応する各グラフ上の点として、点A1,A2,A3が示されているが、実線のグラフT[G]上の点A1は、図19(a) のグラフにおける補正指示量aに応じた値だけ下がった点A2の位置に補正される。
一方、交点Oよりも右側の領域(個別補正関数F[P]が正の値をとる領域)については増加補正が行われ、破線のグラフT[P]が実線のグラフT[G]よりも上がっている。たとえば、入力輝度値Lin=Lbに対応する各グラフ上の点として、点B1,B2,B3が示されているが、実線のグラフT[G]上の点B3は、図19(a) のグラフにおける補正指示量bに応じた値だけ上がった点B2の位置に補正される。
もっとも、このような補正は、常に、上限カーブT[upper]と下限カーブT[lower]との間に挟まれた領域の範囲内でのみ行われる。別言すれば、破線のグラフT[P]は、決して上限カーブT[upper]を越えて上方へ伸びることはなく、決して下限カーブT[lower]を越えて下方へ伸びることもない。
このような制限付き補正によりローカルトーンカーブT[P]を定義する場合、輝度値変換手段130は、グローバルトーンカーブT[G]における任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、個別補正関数F[P]における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ上限カーブT[upper]を上限として増加させる補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ下限カーブT[lower]を下限として減少させる補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブの定義を行うようにすればよい。
なお、図19(a) に示す個別補正関数F[P]は、コントラストを強める輝度調整に用いる単調増加型の関数であるが、コントラストを弱める輝度調整を行う場合には、たとえば、図7(a) に示すような単調減少型の個別補正関数F[P]を用いるようにすればよい。
どのような個別補正関数F[P]を用いた場合でも、輝度値変換手段130は、任意の横軸座標Lに位置するグローバルトーンカーブT[G]上の点について、その縦軸座標を、上限カーブT[upper]および下限カーブT[lower]を越えない範囲内で、Lold からLnew に修正することによりローカルトーンカーブT[P]を定義することになる。
具体的な縦軸座標の修正(旧縦軸座標Lold から新縦軸座標Lnew への修正)は、−1≦C≦+1なる条件を満たす範囲内の補正増減率Cを用いて設定した個別補正関数F[P]を前提とすれば、補正増減率Cの絶対値を|C|、横軸座標Lにおける上限カーブT[upper]の輝度値をLupper、下限カーブT[lower]の輝度値をLlowerとして、次のような各演算によって行うことができる。
すなわち、C>0の場合は、Lnew =Lold +(Lupper−Lold )×|C|なる式に基づいて修正を行うことにより、ローカルトーンカーブT[P]を定義すればよい。一方、C<0の場合は、Lnew =Lold −(Lold −Llower)×|C|なる式に基づいて修正を行うことにより、ローカルトーンカーブT[P]を定義すればよい。
たとえば、図19(b) の横軸座標Laに位置するグローバルトーンカーブT[G]上の点A1の縦軸座標Lold は、新たな縦軸座標Lnew に修正され、点A2の位置まで移動しているが、これは、C<0の場合として、Lnew =Lold −(Lold −Llower)×|C|なる式を適用した補正によるものである。
より具体的に説明すれば、図19(a) において、補正基準ラインξ0(C=0のライン)と補正下限ラインξβ(C=−1のライン)との間隔を最大補正指示量uaとし(この例の場合、ua=1)、入力輝度値Laに対応する補正増減率Cの絶対値|C|を補正指示量aとし、図19(b) において、グローバルトーンカーブT[G]上の点A1と下限カーブT[lower]上の点A3との間隔を最大実補正量ua′とし、グローバルトーンカーブT[G]上の点A1とローカルトーンカーブT[P]上の点A2との間隔を実補正量a′とすれば、a/ua=a′/ua′なる関係が得られるように、点A2の位置が決定されることになる。
同様に、図19(b) の横軸座標Lbに位置するグローバルトーンカーブT[G]上の点B3の縦軸座標Lold は、新たな縦軸座標Lnew に修正され、点B2の位置まで移動しているが、これは、C>0の場合として、Lnew =Lold +(Lupper−Lold )×|C|なる式を適用した補正によるものである。
より具体的に説明すれば、図19(a) において、補正基準ラインξ0(C=0のライン)と補正上限ラインξα(C=+1のライン)との間隔を最大補正指示量ubとし(この例の場合、ub=1)、入力輝度値Lbに対応する補正増減率Cの絶対値|C|を補正指示量bとし、図19(b) において、グローバルトーンカーブT[G]上の点B3と上限カーブT[upper]上の点B1との間隔を最大実補正量ub′とし、グローバルトーンカーブT[G]上の点B3とローカルトーンカーブT[P]上の点B2との間隔を実補正量b′とすれば、b/ub=b′/ub′なる関係が得られるように、点B1の位置が決定されることになる。
破線で示すローカルトーンカーブT[P]は、このようにして得られた補正後の点A2,B2等を連結することにより定義される。要するに、図19(a) に示す補正基準ラインξ0を図19(b) に示すグローバルトーンカーブT[G]に対応させ、図19(a) に示す補正上限ラインξαを図19(b) に示す上限カーブT[upper]に対応させ、図19(a) に示す補正下限ラインξβを図19(b) に示す下限カーブT[lower]に対応させた上で、ξ0とξαとで挟まれた空間をT[G]とT[upper]で挟まれた空間に割り当て、ξ0とξβとで挟まれた空間をT[G]とT[lower]で挟まれた空間に割り当てるような縦軸に関する線形変換を行った場合に、個別補正関数F[P]の線形変換像として得られるトーンカーブがローカルトーンカーブT[P]ということになる。
このように、上下限を含む3本のトーンカーブT[G],T[upper],T[lower]を設定することにより輝度調整を行う変形例では、グローバルトーンカーブT[G]に対する補正範囲を上限カーブT[upper]と下限カーブT[lower]との間に制限することができるので、局所的コントラストが無制限に補正されてしまうことを避けることができ、より自然な輝度調整を行うことが可能になる。また、グローバルトーンカーブT[G]のみを設定する基本的実施形態に比べて、オペレータは、より柔軟な方法で、より細かな指示を与えることができるようになる。
たとえば、グローバルトーンカーブT[G]は、基本的に、画像全体に適用するコントラストの強弱を決定するパラメータとしての役割を担うことになるのに対して、上限カーブT[upper]や下限カーブT[lower]は、局所的なコントラストの強弱を決定するパラメータとして利用することができる。いわば、前者がマクロ的なコントラスト調整用パラメータとして機能するのに対して、後者はミクロ的なコントラスト調整パラメータとして機能することになる。
このような特徴を利用すれば、グローバルトーンカーブT[G]を変えずに、上限カーブT[upper]や下限カーブT[lower]を変える操作を行うことにより、画像全体の明るさを維持したまま(マクロ的なコントラストを維持したまま)、たとえば、水玉模様の輪郭を強調したり、あるいは、輪郭を弱めたりする調整(ミクロ的なコントラストの調整)が可能になる。また、図1に示すような基準トーンカーブT0をそのままグローバルトーンカーブT[G]として設定した場合でも、上限カーブT[upper]や下限カーブT[lower]の設定次第で、ミクロ的なコントラスト調整を行うことが可能である。このように、ここで述べた上下限を含む3本のトーンカーブにより輝度調整を行う変形例では、より柔軟に、より自由度の高い輝度調整が可能になる。
<4−3.任意の3本のトーンカーブによる輝度調整>
§4−2で述べた変形例では、グローバルトーンカーブT[G]、上限カーブT[upper]、下限カーブT[lower]という合計3本のトーンカーブを用いて輝度調整を行っている。ここで、上限カーブT[upper]はグローバルトーンカーブT[G]を補正する上での上限を規定し、下限カーブT[lower]はグローバルトーンカーブT[G]を補正する上での下限を規定することになり、いわば上下限カーブによって、ローカルトーンカーブT[P]の外殻が定められることになる。
ここで述べる変形例は、§4−2で述べた変形例と同様に、合計3本のトーンカーブを用いて輝度調整を行うものであるが、「上限と下限とによって定められた外殻内にローカルトーンカーブT[P]を収める」という考え方ではなく、「特定の補正方向へ補正する際の最大補正量を制限する」という考え方を採用するものであり、更に自由度を高めた輝度調整を可能にするものである。
ここで述べる変形例では、グローバルトーンカーブ設定手段120に、オペレータの設定操作に基づいて、グローバルトーンカーブT[G]、第1の制限カーブT[α]、第2の制限カーブT[β]という、合計3本のカーブを設定する機能をもたせておく。§4−2で述べた変形例における3本のトーンカーブの場合、上限カーブT[upper]はグローバルトーンカーブT[G]の上方に設定され、下限カーブT[lower]はグローバルトーンカーブT[G]の下方に設定される、という制約が課されることになるが、ここで述べる変形例の場合、3本のトーンカーブの相互位置関係に、何ら制約が課されるものではない。
図20〜図23は、グローバルトーンカーブT[G]、第1の制限カーブT[α]、第2の制限カーブT[β]という3本のカーブの設定例を示す図である。これら3本のカーブは、いずれも0≦Lin≦Mなる条件を満たす範囲内の入力輝度値Linを横軸、0≦Lout ≦Mなる条件を満たす範囲内の出力輝度値Lout を縦軸にとって、入力輝度値Linと出力輝度値Lout との関係を示すグラフによって構成される(Mは、各輝度値の最大値)。
図20〜図23には、輝度値の最大値をM=255とした場合について、グローバルトーンカーブT[G](実線),第1の制限カーブT[α](二点鎖線),第2の制限カーブT[β](三点鎖線)の3本のカーブとともに、基準トーンカーブT0(一点鎖線)が示されている。実際には、カラーのディスプレイ画面上に、個々のカーブごとに異なる色で表示がなされるようにするのが好ましい。オペレータは、図17で説明したように、マウスなどのポインティングデバイスを用いて、ディスプレイ画面上に表示された各トーンカーブ上の任意の点をドラッグする操作によって、個々のトーンカーブの形状を任意形状に設定する操作を行うことができる。
図20に示す例では、グローバルトーンカーブT[G]に対して、その上方に第1の制限カーブT[α]が配置され、その下方に第2の制限カーブT[β]が配置されている。この設定は、第1の制限カーブT[α]を上限カーブT[upper]と呼び、第2の制限カーブT[β]を下限カーブT[lower]と呼べば、図18に示した上下限を含む3本のトーンカーブの設定と全く同じになる。
別言すれば、前述した§4−2の変形例(上下限を含む3本のトーンカーブにより輝度調整を行う例)は、ここで述べる変形例(任意の3本のトーンカーブにより輝度調整を行う例)の一形態と言うことができる。すなわち、ここで述べる変形例において、第1の制限カーブT[α]が常にグローバルトーンカーブT[G]の上方に配置され、第2の制限カーブT[β]が常にグローバルトーンカーブT[G]の下方に配置されるような制限を課したものが、前述した§4−2の変形例ということになり、図20の設定例は、そのような制限どおりの設定を行った例ということになる。
もちろん、ここで述べる変形例の場合、そのような制限は一切ないので、図21〜図23に示すような設定も可能になる。図21に示す例は、図20に示す例とは逆に、グローバルトーンカーブT[G]の下方に第1の制限カーブT[α]を配置し、上方に第2の制限カーブT[β]を設定した例である。また、図22に示す例は、第1の制限カーブT[α]および第2の制限カーブT[β]の双方を、グローバルトーンカーブT[G]の下方に配置した例である。
図23に示す例は、第1の制限カーブT[α]と第2の制限カーブT[β]とを交差させて8の字状のカーブが形成されるような設定を行った例である。具体的には、横軸座標が境界輝度値Loに位置する交点Oにおいて、グローバルトーンカーブT[G]、第1の制限カーブT[α]、第2の制限カーブT[β]の3本が交差しており、この交点Oよりも左側の領域(Lin<Loとなる領域)では、グローバルトーンカーブT[G]の上方に第1の制限カーブT[α]、下方に第2の制限カーブT[β]がそれぞれ配置されているのに対して、この交点Oよりも右側の領域(Lin>Loとなる領域)では、グローバルトーンカーブT[G]の下方に第1の制限カーブT[α]、上方に第2の制限カーブT[β]がそれぞれ配置されている。
このように、ここで述べる変形例の場合、3本のトーンカーブの配置に何ら制約を課す必要がないのは、前述したように「特定の補正方向へ補正する際の最大補正量を制限する」という考え方を採用しているためである。すなわち、この変形例では、輝度値変換手段130は、第1の制限カーブT[α]を越えない範囲内で、第1の制限カーブT[α]に近づける第1の補正方向Dαに輝度値を増減する第1の補正と、第2の制限カーブT[β]を越えない範囲内で、第2の制限カーブT[β]に近づける第2の補正方向Dβに輝度値を増減する第2の補正と、を選択的に行うことにより、ローカルトーンカーブT[P]を定義する処理を行う。
より具体的に説明すれば、輝度値変換手段130は、グローバルトーンカーブT[G]における任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、個別補正関数F[P]における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ第1の補正方向Dαに向けて修正する補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ第2の補正方向Dβに向けて修正する補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブT[P]の定義を行うことになる。但し、第1の補正方向Dαに向けての修正は、第1の制限カーブT[α]を越えない範囲内で行われ、第2の補正方向Dβに向けての修正は、第2の制限カーブT[β]を越えない範囲内で行われる。図20〜図23に示す矢印Dαおよび矢印Dβは、このような補正を行う場合の第1の補正方向Dαおよび第2の補正方向Dβを示すものである。
ここで述べる変形例の場合も、輝度値変換手段130は、任意の横軸座標Lに位置するグローバルトーンカーブT[G]上の点について、その縦軸座標をLold からLnew に修正することによりローカルトーンカーブT[P]を定義することになる。この場合、−1≦C≦+1なる条件を満たす範囲内の補正増減率Cを用いて設定した個別補正関数F[P]を前提とすれば、横軸座標Lにおける第1制限カーブT[α]の輝度値をLα、第2制限カーブT[β]の輝度値をLβとして、C>0の場合は、Δa=|(Lα−Lold )×C|なる式に基づいて定まる補正量Δaだけ、輝度値Lold を第1制限カーブT[α]に近づける方向に増減する補正を行い、C<0の場合は、Δb=|(Lβ−Lold)×C|なる式に基づいて定まる補正量Δbだけ、輝度値Lold を第2制限カーブT[β]に近づける方向に増減する補正を行うことにより、ローカルトーンカーブT[P]を定義すればよい。要するに、第1制限カーブT[α]は、C>0の場合の補正態様を定義する役割を果たし、第2制限カーブT[β]は、C<0の場合の補正態様を定義する役割を果たすことになる。
ここで述べた任意の3本のトーンカーブを用いる変形例は、§4−2で述べた上下限を含む3本のトーンカーブを用いる変形例の制約を取り去ったものであり、より柔軟なトーンカーブの設定が可能になり、更に自由度の高い輝度調整が可能になる。
たとえば、図19(a) に示すような単調増加型の個別補正関数F[P]を用いることを前提とすれば、第1制限カーブT[α]がグローバルトーンカーブT[G]より上方に配置されている領域では、周囲より明るいところを更に明るくして局所的コントラストを強める補正を行うことができる。ところが、同じ単調増加型の個別補正関数F[P]を用いたとしても、第1制限カーブT[α]がグローバルトーンカーブT[G]より下方に配置されている領域では、周囲より明るいところを暗くして局所的コントラストを弱める補正が行われる。したがって、この場合、単調増加型の個別補正関数F[P]を用いているにもかかわらず、これまで述べてきた基本的実施形態において、単調減少型の個別補正関数F[P]を用いた場合と同じ効果が得られることになる。
同様に、第2制限カーブT[β]に関しても、やはり図19(a) に示すような単調増加型の個別補正関数F[P]を用いることを前提とすれば、第2制限カーブT[β]がグローバルトーンカーブT[G]より下方に配置されている領域では、周囲より暗いところを更に暗くして局所的コントラストを強める補正を行うことができる。ところが、同じ単調増加型の個別補正関数F[P]を用いたとしても、第2制限カーブT[β]がグローバルトーンカーブT[G]より上方に配置されている領域では、周囲より暗いところを明るくして局所的コントラストを弱める補正が行われる。したがって、この場合も、単調増加型の個別補正関数F[P]を用いているにもかかわらず、これまで述べてきた基本的実施形態において、単調減少型の個別補正関数F[P]を用いた場合と同じ効果が得られることになる。
結局、これまで述べてきた基本的実施形態の場合、局所的コントラストを強める場合には個別補正関数F[P]として単調増加関数を用い、弱める場合には個別補正関数F[P]として単調減少関数を用いる、という原則が適用できたが、ここで述べた変形例の場合、このような原則が必ずしも適用されるわけでない。したがって、個別補正関数F[P]として、常に同一の単調増加関数を固定して用いる、という運用を採ったとしても、第1の制限カーブT[α]と第2の制限カーブT[β]の設定を変えることにより、局所的コントラストを強める補正も可能であるし、弱める補正も可能である。このように、ここで述べた変形例の場合、コントラスト調整の自由度が格段に向上することになる。
たとえば、図23に示す例のように、第1の制限カーブT[α]と第2の制限カーブT[β]とを交差させて8の字状のカーブを形成させることも可能である。このように8の字状のカーブを形成させると、局所的にコントラストが強められる部分と局所的にコントラストが弱められる部分とを混在させることができる。たとえば、単調増加型の個別補正関数F[P]を用いた場合、図23に示す交点Oに相当する輝度値Loをもつ画素については、局所的コントラストを増減するための補正は行われないことになるが、それより暗い画素については局所的コントラストを強める調整が行われ、それより明るい画素については局所的コントラストを弱める調整が行われる。このように、8の字状のカーブを形成させると、非常に複雑な輝度調整効果を生み出すことが可能になる。
そもそも画像のコントラストの良否は、人間の感性によって判断されるものであるため、明確な基準を設けることは困難であり、輝度調整の対象となる画像の性質によっても基準が大きく変わるものである。たとえば、もともと適切なコントラストをもって撮影された画像であれば調整を行うことはないであろう。しかしながら、撮影時にカメラのレンズにフレアが発生していた場合、コントラストの低い画像が得られることになり、輝度調整が必要になろう。
また、適切なコントラストであるか否かは、作者の作画意図によっても大きく異なるものである。たとえば、メリハリを求める作品画像に対しては意図的にコントラストを強めることもあれば、ソフトフォーカスで撮影した画像に対してはコントラストを弱めることもある。もちろん、作者が、芸術的な効果を狙って、意図的に奇異な画像を生み出そうとすることすらあり得る。このような観点から、ここに示した変形例により輝度調整の設定自由度を広げることは、技術的に大いに意味のあることである。
ここに示す変形例の特徴は、基準性、範囲性、連続性を確保した状態で、グローバルなコントラスト調整と局所的なコントラスト調整とを融合させた点にある。
ここで、基準性とは、たとえば、図6(a) に示す個別補正関数F[P]の補正基準ラインξ0を、図6(b) に示すグローバルトーンカーブT[G]に合致させる手法を採用することにより確保されるものであり、あくまでもオペレータが設定したグローバルトーンカーブT[G]を基準として、個々のローカルトーンカーブT[P]が得られることになるという特徴を意味する。
また、範囲性とは、グローバルなパラメータとして第1の制限カーブT[α]と第2の制限カーブT[β](あるいは、§4−2の変形例の場合は、上限カーブT[upper]と下限カーブT[lower])を設定する手法を採用することにより確保されるものであり、局所的なコントラスト補正の度合いを所定の範囲内に抑制する効果が得られることになるという特徴を意味する。
そして、連続性とは、ある程度のサイズをもった画素配列を参照領域として設定することにより確保されるものであり、隣接する着目画素について、ある程度の類似性をもった輝度調整処理が行われる効果が得られるという特徴を意味する。前述したとおり、参照領域は、たとえば、192×192の画素配列のように、ある程度のサイズをもった領域として設定されるので、ある1つの着目画素Paについての周囲画素群と、その隣に位置する着目画素Pbについての周囲画素群とは、大部分が重複していることになる。このため、着目画素Paについて定義されるローカルトーンカーブT[Pa]と、着目画素Pbについて定義されるローカルトーンカーブT[Pb]との間には、あまり大きな差が生じることはない。したがって、個々の着目画素ごとにそれぞれ異なるローカルトーンカーブが定義されるとしても、隣接する輝度値では連続性が確保され、ローカルトーンカーブの変化はなだらかなものになる。
このように、ここで述べた変形例では、基準性、範囲性、連続性を確保した状態で、グローバルなコントラスト調整と局所的なコントラスト調整との双方をバランスよく実現していることになる。
<<< §5. ヒストグラムを用いた集計を行う実施形態 >>>
§3では、図16を参照しながら、参照領域R[P]内の1つ1つの周囲画素Eについて、それぞれ局所調整関数f1(L),f2(L),… を用意し、集計用座標系上でこれらを集計して総和グラフを求め、この総和グラフにより個別補正関数F[P]を設定する手法を説明した。この手法を利用すれば、複数の周囲画素Eの輝度値を1つ1つ考慮して、個別補正関数F[P]のグラフの細部の形状を決定することができるので、より適切な局所的コントラスト調整を行うことができる。したがって、本発明は実施する上では、§3で述べた手法を採用するのが極めて好ましい。
ただ、§3で述べた手法を採用した場合、演算負担が増大するという問題がある。図16には、説明の便宜上、7×7の画素配列からなる参照領域R[P]を例示し、合計48個の周囲画素のそれぞれについて、局所調整関数f1(L),f2(L),… を配置し、これら48組の局所調整関数の総和として、個別補正関数F[P]を定義する例を示したが、実用上は、参照領域R[P]として、より大きなサイズの画素配列が設定されることになる。たとえば、192×192の画素配列を参照領域R[P]として設定した場合、4万個に近い局所調整関数f(L)を集計用座標系に配置して総和を求める演算を行う必要がある。しかも、個別補正関数F[P]は、調整前画像U1を構成する個々の画素について求めることになるので、演算負担はかなり重いものにならざるを得ない。
そこで、ここでは、§3で述べた手法を採用しつつ、その演算負担を軽減することができる簡易集計法を述べておく。この簡易集計法を用いる場合、個別補正関数設定手段140は、参照領域R[P]内の複数の周囲画素の輝度値を複数K段階の階級に分類し、それぞれの度数を計数することによりヒストグラムを作成し、これらヒストグラムを参照して、各着目画素のそれぞれについて輝度値を補正するための個別補正関数F[P]を設定する処理を行えばよい。
図24は、このヒストグラムを用いた集計により個別補正関数F[P]を設定する第1の方法を示すグラフである。図示の例は、0〜255の範囲に分布する輝度値Lを4段階の階級に分類した例である(ヒストグラムの階級の総数K=4)。§3で説明した図16に示す方法と比較すると、演算負担が大幅に軽減されていることがわかる。
すなわち、図16に示す方法の場合、図の上段に示す集計用座標系上に、合計N個(Nは、参照領域R[P]内の周囲画素の総数)の局所調整関数f1(L),f2(L),… ,fN(L)をそれぞれ所定位置に配置し、その総和を求める演算を行う必要があるのに対して、図24に示す方法の場合、上段(a) に示す集計用座標系上には、階級の総数Kに応じて、K組の局所調整関数を配置すれば足りる。図示の例は、K=4に設定した例であるので、4組の局所調整関数f1(L),f2(L),f3(L),f4(L)のみが配置されており、総和を求める集計演算は、この4組の局所調整関数に対して行えば足りる。
この図24に示す例の場合、具体的には、次のようなプロセスで個別補正関数F[P]が求められる。まず、参照領域R[P]内の複数N個の周囲画素E1〜ENのそれぞれについて輝度値を抽出し、この輝度値に応じて各周囲画素を4段階の階級に分類する。ここでは、これらの階級を、BIN1,BIN2,BIN3,BIN4と呼ぶことにする。図示の例では、輝度値Lは、0〜255の数値範囲に定義されているので、この数値範囲を4等分して、0〜63の範囲を階級BIN1とし、64〜127の範囲を階級BIN2とし、128〜191の範囲を階級BIN3とし、192〜255の範囲を階級BIN4としている。
そして、個々の階級ごとに、それぞれ所属する周囲画素の数をカウントしてヒストグラムを作成する。図24(b) は、このようにして作成されたヒストグラムであり、横軸に輝度値L、縦軸に度数V(カウントされた周囲画素の数)が示されている。具体的には、BIN1については度数V1、BIN2については度数V2、BIN3については度数V3、BIN4については度数V4という結果が示されている。ここで、V1+V2+V3+V4=N(参照領域内の周囲画素の総数)である。なお、§3でも述べたとおり、実用上は、参照領域R[P]を構成する画素配列から着目画素Pのみを除外する処理を省く便宜上、着目画素Pを周囲画素の1つとして取り扱う運用を行ってもかまわない。
一方、この図24に示す例の場合、各階級の代表輝度値として、予め定められた所定の固定輝度値を用いている。具体的には、各階級の輝度値範囲の中央値を当該階級の代表輝度値とすることにより、階級BIN1の代表輝度値を32、階級BIN2の代表輝度値を96、階級BIN3の代表輝度値を160、階級BIN4の代表輝度値を224という固定値に設定している。図24(b) の下段に白三角形で示す数値は、これらの代表輝度値である。
そこで、図24(a) に示す集計用座標系上には、各階級BIN1〜BIN4に対応させて、4組の局所調整関数f1(L)〜f4(L)を、それぞれ調整値f=0となる点の横軸座標が、対応する階級の代表輝度値に一致するように配置している。たとえば、階級BIN1に対応する局所調整関数f1(L)は、補正基準ラインξ0との交点E01の横軸座標が階級BIN1の代表輝度値32に一致する位置に配置されている。同様に、局所調整関数f2(L)は、交点E02の横軸座標が階級BIN2の代表輝度値96に一致する位置に配置され、局所調整関数f3(L)は、交点E03の横軸座標が階級BIN3の代表輝度値160に一致する位置に配置され、局所調整関数f4(L)は、交点E04の横軸座標が階級BIN4の代表輝度値224に一致する位置に配置されている。
こうして、4組の局所調整関数f1(L)〜f4(L)を所定位置に配置したら、これらのグラフを、それぞれ対応する度数に応じた重みづけを行って集計して総和グラフを求め、この総和グラフの縦軸を−1〜+1の範囲に規格化すれば、着目画素Pについての個別補正関数F[P]を得ることができる。結局、個別補正関数F[P]は、図24の中段右に示すように、F[P]=1/N・Σk=1〜K Vk・fk(L)なる式で定義されることになる。ここで、Nは、参照領域R[P]内の周囲画素の総数、kは、ヒストグラムの階級番号を示すパラメータ、Kは、ヒストグラムの階級の総数(上例の場合、K=4)、Vkは、第k番目の階級についての度数、fk(L)は、第k番目の階級に対応して配置された局所調整関数である。
結局、個別補正関数F[P]を求める際にヒストグラムを用いた簡易集計法を適用する場合には、個別補正関数設定手段140は、次のようなプロセスに従った処理を行えばよい。
まず、局所調整関数f(L)の定義を行う。この局所調整関数f(L)は、輝度値Lを横軸、調整値fを縦軸にとって、輝度値Lと調整値fとの関係を示すグラフによって表現される関数であって、輝度値Lの増加に応じて調整値fが単調増加もしくは単調減少するような関数であれば、どのような関数であってもかまわない。ただ、§3で述べたように、点対称性をもった累積ガウス関数などを用いるのが好ましく、実用上は、シグモイド関数を利用するのが好ましい。
たとえば、単調増加型のシグモイド関数を用いる場合であれば、第k番目の局所調整関数fk(L)として、「fk(L)=(2/(1+exp(−μ・(L−Lk)/M)))−1」なる関数を用いればよい。ここで、Lは変数となる輝度値、Lkは第k番目の階級について設定された代表輝度値(当該階級に属する範囲内の輝度値として予め設定されている所定の固定輝度値:上例の場合、32,96,160,224なる固定値)、Mは輝度値の最大値(上例の場合、M=255)、μは所定の勾配係数である。
続いて、参照領域R[P]内の複数N個の周囲画素(着目画素P自身を含めてもよい)の輝度値を複数K段階の階級に分類し、それぞれの度数を計数することにより、図24(b) に示すようなヒストグラムを作成する。そして、図24(a) に示すように、輝度値Lを横軸、調整値fを縦軸にとった集計用座標系上に、作成したヒストグラムにおける第k番目の階級(但し、k=1,2,... ,K)に対応させて第k番目の局所調整関数fk(L)のグラフを配置し、配置した第k番目のグラフ上において調整値f=0となる点の横軸座標が、対応する第k番目の階級BINkの代表輝度値に一致するように、個々のグラフをそれぞれ所定量だけ横軸方向に個別にスライドさせる。
最後に、これら合計K組のグラフを、それぞれの度数に応じた重みづけを行って集計し、その総和として総和グラフを求め、この総和グラフを用いて個別補正関数F[P]を設定すればよい。
局所調整関数fk(L)として、−1〜+1の範囲内に規格化された調整値fを関数値とする関数を用いることにすれば、F[P]=1/N・Σk=1〜K Vk・fk(L)なる式で定義される関数F[P]の関数値(すなわち、補正増減率C)も、−1〜+1の範囲内に規格化されたものになるので、これをそのまま個別補正関数F[P]として用いることができる。もちろん、局所調整関数fk(L)の関数値として定義される調整値fは、必ずしも−1〜+1の範囲内に規格化されている必要はなく、任意の数値範囲の値であってかまわない。この場合、必要に応じて、総和を求める集計後に規格化処理を行うようにすればよい。
結局、図24に示す簡易集計法を利用すれば、図24(b) に示すようなヒストグラムを作成し(具体的には、全N個の周囲画素について、それぞれ輝度値がどの階級に属するかを判断し、度数V1〜V4を決める処理を行えばよい)、図24(a) に示すように、予め所定位置に配置された4組の局所調整関数f1(L)〜f4(L)に、それぞれ度数V1〜V4を乗じ、総和を求める演算を行うことにより、個別補正関数F[P]を得ることができる。このため、§3で説明した方法と比較すると、演算負担が大幅に軽減されることになる。
一方、図25は、ヒストグラムを用いた集計により個別補正関数F[P]を設定する第2の方法を示すグラフである。この図25に示す例も、図24に示す例と同様に、0〜255の範囲に分布する輝度値Lを4段階の階級に分類した例である(ヒストグラムの階級の総数K=4)。
図24に示す第1の方法と図25に示す第2の方法との相違は、ヒストグラムを構成する各階級の代表輝度値の定義のしかたである。第1の方法では、第k番目の階級の代表輝度値として、当該階級に属する範囲内の輝度値として予め設定されている所定の固定輝度値(図示の例の場合は中央値)を用いていた。したがって、図24(a) に示す4組の局所調整関数f1(L)〜f4(L)の横軸方向の位置は、交点E01,E02,E03,E04の横軸座標が32,96,160,224となる位置に固定されている。
これに対して、図25に示す第2の方法では、第k番目の階級の代表輝度値として、当該階級に所属する周囲画素の平均輝度値を用いるようにしており、各代表輝度値は固定値にはならない。図25(b) の下段に黒三角形で示す値Lr1〜Lr4は、このようにして算出された各階級の代表輝度値である。たとえば、階級BIN1の代表輝度値Lr1は、階級BIN1に所属する全周囲画素の輝度値の平均値として求められる。同様に、代表輝度値Lr2は階級BIN2に所属する全周囲画素の平均輝度値であり、代表輝度値Lr3は階級BIN3に所属する全周囲画素の平均輝度値であり、代表輝度値Lr4は階級BIN4に所属する全周囲画素の平均輝度値である。
この第2の方法でも、図25(a) に示すように、集計用座標系上に、各階級BIN1〜BIN4に対応させて、4組の局所調整関数f1(L)〜f4(L)を、それぞれ調整値f=0となる点の横軸座標が、対応する階級の代表輝度値Lr1〜Lr4に一致するように配置される。たとえば、階級BIN1に対応する局所調整関数f1(L)は、補正基準ラインξ0との交点E01の横軸座標が階級BIN1の代表輝度値Lr1に一致する位置に配置されている。同様に、局所調整関数f2(L)は、交点E02の横軸座標が階級BIN2の代表輝度値Lr2に一致する位置に配置され、局所調整関数f3(L)は、交点E03の横軸座標が階級BIN3の代表輝度値Lr3に一致する位置に配置され、局所調整関数f4(L)は、交点E04の横軸座標が階級BIN4の代表輝度値Lr4に一致する位置に配置されている。
ただ、代表輝度値Lr1〜Lr4は固定値にはならず、個々の参照領域R[P]ごとに(個々の着目画素Pごとに)異なる値になる。このため、集計用座標系上に配置される4組の局所調整関数f1(L)〜f4(L)の横軸方向の位置は、個々の着目画素Pごとに異なる。
その他の点は、図24に示す第1の方法と全く同じである。すなわち、図25(a) に示すように、4組の局所調整関数f1(L)〜f4(L)を代表輝度値Lr1〜Lr4に応じた位置に配置したら、これらのグラフを、それぞれ対応する度数に応じた重みづけを行って集計して総和グラフを求め、この総和グラフの縦軸を−1〜+1の範囲に規格化すれば、着目画素Pについての個別補正関数F[P]を得ることができる。したがって、この第2の方法を採る場合でも、個別補正関数F[P]は、図25の中段右に示すように、F[P]=1/N・Σk=1〜K Vk・fk(L)なる式(図24の中段右に示す式と同じ式)で定義されることになる。
図24に示す第1の方法に比べ、図25に示す第2の方法では、代表輝度値Lr1〜Lr4を算出するための平均演算を行う必要があり、算出された代表輝度値Lr1〜Lr4に応じた位置に4組の局所調整関数f1(L)〜f4(L)を配置する必要があるので、若干、演算処理負担は増えることになる。ただ、実用上は、第2の方法を採用するのが好ましい。これは、ヒストグラム自身には、各階級に所属する輝度値の分布を示す情報が含まれていないため、図24や図25に示す例のように、ヒストグラムの階級の総数Kを比較的小さな値(図示の例では、K=4)に設定した上、代表輝度値として固定値を用いるようにすると、本来考慮すべき情報が失われてしまうためである。
これを、図26および図27に示す実例を参照しながら説明しよう。図26および図27は、いずれもヒストグラムを用いた集計による輝度値分布範囲の変化態様を示すグラフである。いずれも上段(a) のグラフは、階級分けを行う前の度数V(画素数)、下段(b) のグラフ(ヒストグラム)は、K=4に設定して、4段階の階級分けを行った後の度数V(画素数)を示している。
図26(a) および図27(a) の輝度分布の状態を見ると、いずれもある程度近似した輝度値をもつ画素群からなる画像であることがわかる。たとえば、青空などを撮影した場合、このような輝度分布をもった画像が得られる。ここで、両者の相違に着目すると、図26(a) では、輝度値Lが128〜192の範囲に分布しているのに対して、図27(a) では、輝度値Lが192の前後に分布していることがわかる。別言すれば、図26(a) の輝度分布をもつ画像に比べて、図27(a) の輝度分布をもつ画像の方が、全体的に若干明るい画像ということができる。
ここで、これらの画像について作成されたヒストグラムを比べてみると、図26(b) の場合、すべての画素が第3の階級BIN3に所属することになり、階級BIN3のみから構成されるヒストグラムになっている。これに対して、図27(b) の場合、画素は第3の階級BIN3と第4の階級BIN4とに分散され、階級BIN3と階級BIN4によって構成されるヒストグラムになっている。したがって、上段(a) に示す実際の輝度分布を比較する限り、両者の分布範囲にそれほど差がないにもかかわらず、下段(b) に示すヒストグラムを比較すると、図26の画像に比べて図27の画像の方が、より広い分布範囲をもっていると解釈されることになる。
このような現象が生じるのは、図26に示す例の場合は、実際の輝度分布が、たまたま同一の階級(第3の階級BIN3)の範囲内に収まっていたのに、図27に示す例の場合は、実際の輝度分布が、階級の境界を跨ぎ、2つの階級(第3の階級BIN3および第4の階級BIN4)に分散してしまったためである。ここで、上段(a) の輝度分布グラフを、256段階の階級を定義したヒストグラム(K=256)と考えれば、上段(a) のグラフも下段(b) のグラフも同じヒストグラムとして捉えることができ、両者の相違は、階級の総数Kということになる。
そこで、この図26および図27に示す実例について、階級の代表輝度値として、所定の固定値を設定した場合(図24に示す第1の方法に対応)と、所属する画素の平均輝度値を設定した場合(図25に示す第2の方法に対応)とを比較してみる。
まず、図26(b) の下段に白矢印で示す値160は、階級BIN3について固定値(区間の中央値)として設定された代表輝度値を示し、黒矢印で示す値Lr3は、階級BIN3について平均輝度値として設定された代表輝度値を示している。図26(a) の輝度分布を見れば、白矢印の位置と黒矢印の位置とがほぼ同じになることが理解できよう。一方、図27(b) の下段に白矢印で示す値160,224は、階級BIN3,BIN4について固定値(区間の中央値)として設定された代表輝度値を示し、黒矢印で示す値Lr3,Lr4は、階級BIN3,BIN4について平均輝度値として設定された代表輝度値を示している。図27(a) の輝度分布を見れば、黒矢印の位置がこのような偏った位置になることが理解できよう。
図26に示す例のように、実際の輝度分布が、たまたま同一の階級の範囲内にほぼ均等に収まっていた場合は、白矢印の位置と黒矢印の位置とがほぼ同じになるので、階級の代表輝度値として、所定の固定値を設定しても所属画素の平均輝度値を設定しても大差はない。ところが、図27に示す例のように、実際の輝度分布が、階級の境界を跨いで分散して同一の階級の範囲内で偏りを生じていた場合は、白矢印の位置と黒矢印の位置とに違いが生じてくる。もちろん、白矢印の位置よりも黒矢印の位置の方が、もとの輝度分布を正確に反映したものになっている。
結局、ヒストグラムの階級の総数Kを小さく設定すればするほど、演算負担は軽減されることになるが、階級の代表輝度値として所定の固定値を採用した場合、量子化誤差が生じてくることになる。このような量子化誤差の発生を避けるためには、階級の代表輝度値として、固定値ではなく所属画素の平均輝度値を採用するのが好ましい。このような理由から、実用上は、図24に示す第1の方法ではなく、図25に示す第2の方法を採るのが好ましい。
<<< §6. 画像の領域分割を行う実施形態 >>>
一般に、画像を個々の部分ごとに観察すると、輝度変化が激しい部分もあれば、輝度変化がなだらかな部分もある。たとえば、図28(a) に示す市松模様は、輝度変化が激しい画像として把握することができ、図28(b) に示すグレートーン画像は、輝度変化が緩やかな画像として把握することができる。ここでは、1枚の画像上において、図28(a) に示すように輝度変化が激しい部分をテクスチャ領域Atと呼び、図28(b) に示すように輝度変化が緩やかな部分をグラデーション領域Agと呼ぶことにする。
図28に示す例の場合、テクスチャ領域Atの平均輝度とグラデーション領域Agの平均輝度は同じであるが、両者を観察した場合の印象は著しく異なる。また、これら2つの領域を遠目で観察した場合、テクスチャ領域Atは全体がグレーで塗りつぶされた画像として観察されるのに対して、グラデーション領域Agは左側の白領域と右側の黒領域とに分かれた画像として観察されるであろう。
したがって、本発明において、参照領域R[P]内の周囲画素の輝度値を参照して個別補正関数F[P]を設定する際には、当該参照領域R[P]内の画像が、テクスチャ領域Atであるのかグラデーション領域Agであるのかを判断して、それぞれの場合に応じた適切な処理を行うのが好ましいと考えられる。ここで述べる実施形態は、このような考え方に立脚して、個別補正関数設定手段140が、個別補正関数F[P]を設定する処理を行う際に、調整前画像U1を複数の分割領域に分けて認識し、互いに異なる分割領域内の周囲画素については、それぞれ異なる態様で輝度値を参照して個別補正関数F[P]を設定するという方針を採るものである。
テクスチャ領域Atとグラデーション領域Agとの判別方法は、古くから様々な方法が提案されている。基本的には、個々の画素のもつ輝度値の二次元空間的な分布を解析し、空間周波数が高い領域をテクスチャ領域At、空間周波数が低い領域をグラデーション領域Agと認識することができる。したがって、個別補正関数設定手段140に、与えられた画像の輝度値の二次元空間的な分布を解析する機能をもたせておき、空間周波数が所定の基準以上となる領域をテクスチャ領域Atと認識させ、空間周波数が当該基準未満となる領域をグラデーション領域Agと認識させれば、任意の調整前画像U1を、テクスチャ領域Atとグラデーション領域Agとに分けて認識することが可能になる。
そこで、個別補正関数設定手段140に、テクスチャ領域Atに位置する周囲画素とグラデーション領域Agに位置する周囲画素とについて、それぞれ異なる態様で輝度値を参照して個別補正関数F[P]を設定する処理を行わせればよい。
本願発明者は、一般的には、テクスチャ領域Atについては、強い局所的コントラスト補正が行われるようにし、グラデーション領域Agについては、弱い局所的コントラスト補正が行われるようにするのが好ましいと考えている。これは次のような理由によるものである。
まず、本発明において、局所的コントラスト補正を行う目的は、オペレータが設定したグローバルトーンカーブT[G]によって画像全体に対して行われる輝度調整では十分でない局所的な微調整を行うためである。そして、この局所的な微調整は、人間の感性により合致する画像を生成するために行うべきものである。ここで、人間の感性は、その進化の過程において、より生存確率を高める方向、すなわち、「地(背景)」の中に潜む外敵や獲物を「図(認識すべき対象物)」として即座に認識する方向に養われたものと考えられる。
ここで、青空を飛ぶ鳥は認識しやすく、ジャングルに潜む動物は認識しにくいことを考えれば、青空のようなグラデーション領域Agを「地」とする場合は「図」の認識が容易であるのに、ジャングルのようなテクスチャ領域Atを「地」とする場合は「図」の認識が困難であることが理解できよう。したがって、青空のようなグラデーション領域Agを「地」とする場合は、わざわざ局所的コントラスト補正を行って「図」を認識しやすくする必要性に乏しいのに対して、ジャングルのようなテクスチャ領域Atを「地」とする場合は、「図」の認識を容易にするために、局所的コントラスト補正を行った方が好ましい、という結論を導くことができる。
このような論拠から、一般論としては、前述したとおり、テクスチャ領域Atについては、強い局所的コントラスト補正が行われるようにし、グラデーション領域Agについては、弱い局所的コントラスト補正が行われるようにするのが好ましい。
§3では、単調増加もしくは単調減少する局所調整関数f(L)を定義し、1つ1つの周囲画素について、それぞれ所定位置に局所調整関数f(L)を配置し、これらの総和により個別補正関数F[P]を設定する実施形態を述べたが、この§3の実施形態に、この§6で述べる実施形態を適用する場合は、個別補正関数設定手段140が、調整前画像U1を複数の分割領域に分けて認識し、個別補正関数F[P]を設定する際に、互いに異なる分割領域内の周囲画素については、それぞれ異なる局所調整関数f(L)を用いた集計を行うようにすればよい。
図29は、このような方針に基づいて、テクスチャ領域At用の局所調整関数ft(L)とグラデーション領域Ag用の局所調整関数fg(L)とをそれぞれ別個に定義した例である。この場合、個別補正関数設定手段140は、調整前画像U1を、空間周波数が所定の基準以上となるテクスチャ領域Atと空間周波数が当該基準未満となるグラデーション領域Agとに分けて認識し、テクスチャ領域Atに位置する周囲画素については、テクスチャ領域用の局所調整関数ft(L)を用い、グラデーション領域Agに位置する周囲画素については、グラデーション領域用の局所調整関数fg(L)を用いた集計を行うようにすればよい。
図29には、3本のグラフが示されているが、破線で示すグラフf(L)は、たとえば、図16の上段に示されている局所調整関数f1(L),f2(L)のグラフと同じものである。これに対して、実線で示すグラフft(L)は、テクスチャ領域At用の局所調整関数のグラフであり、立ち上がり部分の勾配がより急峻なカーブになっている。また、一点鎖線で示すグラフfg(L)は、グラデーション領域Ag用の局所調整関数のグラフであり、立ち上がり部分の勾配がより緩慢なカーブになっている。これは、上述したとおり、テクスチャ領域Atについては、強い局所的コントラスト補正が行われるようにし、グラデーション領域Agについては、弱い局所的コントラスト補正が行われるようにする、という基本方針を反映したものである。
なお、§3で述べたとおり、実用上は、局所調整関数f(L)として、「f(L)=(2/(1+exp(−μ・(L−Le)/M)))−1」(単調増加の場合)もしくは「f(L)=−(2/(1+exp(−μ・(L−Le)/M)))+1」(単調減少の場合)なる式で示されるシグモイド関数を用いて集計演算を行うのが好ましい。この式におけるμは勾配係数であり、係数μの値を大きくすれば、図29の局所調整関数ft(L)のように立ち上がり部分の勾配が急峻な関数を設定することができ、係数μの値を小さくすれば、図29の局所調整関数fg(L)のように立ち上がり部分の勾配が緩慢な関数を設定することができる。
続いて、前述した§3の実施形態に、この§6で述べる実施形態を適用した場合に、個別補正関数設定手段140によって行われる個別補正関数設定処理の具体的な手順を実例を示しながら説明する。
ここでは、図30に示すような一般的な風景画像が調整前画像U1として与えられた場合を考えてみる。この調整前画像U1は、調整前画像格納手段110に格納された後、個別補正関数設定手段140による解析の対象になる。
図示のとおり、この風景画像には、空部、山部、村部、湖部という各領域が含まれているが、ここでは、個別補正関数設定手段140による解析の結果、図31に示すとおり、空部と湖部はグラデーション領域Agと認識され、山部と村部はテクスチャ領域Atと認識されたものとしよう。このような領域認識は、基本的に、各部の空間周波数を検出し、検出値が基準以上となる部分をテクスチャ領域At、基準未満となる部分をグラデーション領域Agとする処理によって行えばよい。このような処理を行うための具体的な方法は公知であるため、ここでは詳しい説明は省略する。
ここでは、説明の便宜上、調整前画像U1の一部が、図32に示すように領域分割されたものとしよう。ここで、太い一点鎖線が領域の境界線を示し、当該境界線より上方の領域がグラデーション領域Agと認識され、当該境界線より下方の領域がテクスチャ領域Atと認識されたものとしよう。
前述した§3の実施形態によれば、この調整前画像U1を構成する1つ1つの画素をそれぞれ着目画素Pとして、その周囲画素の輝度値を参照することにより、個別補正関数F[P]の設定が行われる。
ここでは、まず、グラデーション領域Agに含まれる画素P11を着目画素としたときの処理を説明しよう。図には、着目画素P11を中心とする5×5の画素配列(太枠内)が参照領域R[P11]として設定された状態が示されている。この場合、参照領域R[P11]内の着目画素P11を除いた24個の周囲画素のそれぞれについて局所調整関数を定めることになるが、その際、たとえば、周囲画素E11については、図29に示すグラデーション領域用の局所調整関数fg(L)が選択される。これは、周囲画素E11がグラデーション領域Agに含まれる画素であるためである。
図示の例の場合、参照領域R[P11]内の周囲画素はすべてグラデーション領域Agに含まれる画素であるので、すべての周囲画素について、それぞれグラデーション領域用の局所調整関数fg(L)が選択されることになる。もちろん、これらの局所調整関数fg(L)は、集計用座標系上の、対応する周囲画素の輝度値に応じた位置に配置される。
図33は、§5で述べた「ヒストグラムを用いた集計を行う実施形態(第2の方法)」を適用し、ヒストグラムを用いた集計により着目画素P11についての個別補正関数F[P11]を設定する例を示すグラフである。個別補正関数設定手段140は、まず、参照領域R[P11]内の周囲画素の各輝度値を読み出して、図33(b) に示すようなヒストグラムを作成する。このとき、個々の階級ごとに、それぞれ平均輝度値を算出して代表輝度値Lr1〜Lr4とする。
続いて、図33(a) に示すように、各代表輝度値Lr1〜Lr4の位置に各交点E01〜E04がくるように、集計用座標系上に4組の局所調整関数fg1(L)〜fg4(L)を配置する。ここで配置する局所調整関数fg1(L)〜fg4(L)は、いずれもグラデーション領域用の局所調整関数fg(L)である。最後に、こうして配置された4組の局所調整関数fg1(L)〜fg4(L)に、図33(b) に示すヒストグラムで得られた度数V1〜V4を乗じ、総和を求めて規格化する演算(図33の中段右に示すF[P]=1/N・Σk=1〜K Vk・fgk(L)なる式に基づく演算)を行えば、着目画素P11についての個別補正関数F[P11]が得られる。
一方、図32において、テクスチャ領域Atに含まれる画素P12を着目画素としたときの処理は次のとおりである。まず、図示のように、着目画素P12を中心とする5×5の画素配列(太枠内)が参照領域R[P12]として設定される。そして、この参照領域R[P12]内の着目画素P12を除いた24個の周囲画素のそれぞれについて局所調整関数を定めることになるが、その際、たとえば、周囲画素E12については、図29に示すテクスチャ領域用の局所調整関数ft(L)が選択される。これは、周囲画素E12がテクスチャ領域Atに含まれる画素であるためである。
図示の例の場合、参照領域R[P12]内の周囲画素はすべてテクスチャ領域Atに含まれる画素であるので、すべての周囲画素について、それぞれテクスチャ領域用の局所調整関数ft(L)が選択されることになる。もちろん、これらの局所調整関数ft(L)は、集計用座標系上の、対応する周囲画素の輝度値に応じた位置に配置される。
図34は、§5で述べた「ヒストグラムを用いた集計を行う実施形態(第2の方法)」を適用し、ヒストグラムを用いた集計により着目画素P12についての個別補正関数F[P12]を設定する例を示すグラフである。個別補正関数設定手段140は、まず、参照領域R[P12]内の周囲画素の各輝度値を読み出して、図34(b) に示すようなヒストグラムを作成する。このとき、個々の階級ごとに、それぞれ平均輝度値を算出して代表輝度値Lr1〜Lr4とする。
続いて、図34(a) に示すように、各代表輝度値Lr1〜Lr4の位置に各交点E01〜E04がくるように、集計用座標系上に4組の局所調整関数ft1(L)〜ft4(L)を配置する。ここで配置する局所調整関数ft1(L)〜ft4(L)は、いずれもテクスチャ領域用の局所調整関数ft(L)である。最後に、こうして配置された4組の局所調整関数ft1(L)〜ft4(L)に、図34(b) に示すヒストグラムで得られた度数V1〜V4を乗じ、総和を求めて規格化する演算(図34の中段右に示すF[P]=1/N・Σk=1〜K Vk・ftk(L)なる式に基づく演算)を行えば、着目画素P12についての個別補正関数F[P12]が得られる。
図33(a) に示す4組の局所調整関数fg1(L)〜fg4(L)と、図34(a) に示す4組の局所調整関数ft1(L)〜ft4(L)とを比較すると、前者の立ち上がり部分は緩慢であるのに対して、後者の立ち上がり部分は急峻である。したがって、最終的に得られる個別補正関数F[P11]とF[P12]とを比較すると、やはり前者の立ち上がり部分は緩慢になるのに対して、後者の立ち上がり部分は急峻になる。
これは、グラデーション領域Ag内の着目画素P11に対して行われる局所的コントラスト調整の度合いに比べて、テクスチャ領域At内の着目画素P12に対して行われる局所的コントラスト調整の度合いの方が強くなることを示している。このような調整は、前述したとおり、進化の過程において人間が取得した感性に合致した調整になる。
なお、着目画素の位置によっては、グラデーション領域Agとテクスチャ領域Atとの境界線上に参照領域が設定される場合もある。たとえば、図32において、画素P13を着目画素としたときの処理では、参照領域R[P13]は、領域の境界線上に設定されることになる。この場合、周囲画素は、グラデーション領域Agとテクスチャ領域Atとに股がって混在することになる。図示の例の場合、24個の周囲画素のうちの7個はグラデーション領域Ag上の画素であり、残りの17個はテクスチャ領域At上の画素である。
このような場合でも、原則どおり、グラデーション領域Ag上の周囲画素については、グラデーション領域用の局所調整関数fg(L)を選択し、テクスチャ領域At上の周囲画素については、テクスチャ領域用の局所調整関数ft(L)を選択して、集計用座標系上に配置すればよい。したがって、図32に示す例の場合、周囲画素E13gについては、グラデーション領域用の局所調整関数fg(L)が選択され、周囲画素E13tについては、テクスチャ領域用の局所調整関数ft(L)が選択される。したがって、集計用座標系上には、2種類の局所調整関数fg(L),ft(L)が混在して配置されることになる。
なお、ヒストグラムを用いた簡易集計法を利用する場合は、グラデーション領域Ag上の周囲画素と、テクスチャ領域At上の周囲画素とについて、それぞれ度数Vの計数を別個に行い、グラデーション領域用ヒストグラムとテクスチャ領域用ヒストグラムとを作成する必要がある。集計用座標系には、グラデーション領域用ヒストグラムに基づいて図33(a) に示すような4組の局所調整関数fg1(L)〜fg4(L)が配置されるとともに、テクスチャ領域用ヒストグラムに基づいて図34(a) に示すような4組の局所調整関数ft1(L)〜ft4(L)が配置されることになる。
そして、局所調整関数fg1(L)〜fg4(L)には、グラデーション領域用ヒストグラムによって得られた度数Vg1〜Vg4を乗じ、局所調整関数ft1(L)〜ft4(L)には、テクスチャ領域用ヒストグラムによって得られた度数Vt1〜Vt4を乗じ、総和を求めて規格化する演算を行えば、着目画素P13についての個別補正関数F[P13]が得られる。
以上、調整前画像U1を、グラデーション領域Agとテクスチャ領域Atという2種類の領域に分割し、それぞれについて異なる局所調整関数を用いる例を示したが、分割領域の種類は2種類に限定されるものではなく、3種類以上の分割領域を定義し、それぞれについて異なる局所調整関数を用いるようにしてもかまわない。
たとえば、上述した例の場合、図30に示す風景画像には、空部、山部、村部、湖部という4つの領域が含まれているにもかかわらず、図31に示すように、空部と湖部とを同一のグラデーション領域Agに分類し、山部と村部とを同一のテクスチャ領域Atに分類することにより、2種類の領域に分割している。これに対して、たとえば、空部を「主グラデーション領域」、湖部を「副グラデーション領域」、村部を「主テクスチャ領域」、山部を「副テクスチャ領域」のように分類し、この4種類の領域について、それぞれ異なる局所調整関数を用いるようにすることもできる。
<<< §7. ヘイローを抑制する実施形態 >>>
従来技術として説明した広ダイナミックレンジ圧縮技術などを利用すると、輝度が急激に変化する部分に「ヘイロー(Halo:光輪の意)」と呼ばれる不自然な影が生じる現象が知られている。このヘイローが生じると、画像の輪郭部分の画質が劣化することになり問題である。
本願発明者は、本発明に係る技術を利用して輝度調整を行った場合にも、このヘイローが発生する現象を確認した。そこで、ここでは、このようなヘイローを抑制することが可能な実施形態を変形例として述べておく。
<7−1.本発明で生じるヘイローの実体とその要因>
図35は、本発明に係る輝度調整を行うことによりヘイローが発生した状態を示す図である。ここで、上段(a) は、輝度調整を行う前の調整前画像U1の実例であり、下段(b) は、本発明により、局所的コントラストを強める設定で輝度調整を行った後の調整後画像U2の実例である。下段(b) の調整後画像U2における「駐輪場の看板」の左右の輪郭近傍を注視すると、不自然な縦の帯が発生しているのが目視できるであろう。すなわち、背景部分には、不自然に明るい縦の帯(領域Hwの部分)が存在し、看板部分には、不自然に暗い縦の帯(領域Hbの部分)が存在していることがわかる。
これらの不自然な影の部分は、一般にヘイローと呼ばれている。本願では、図に示す不自然に明るい縦の帯の部分を白ヘイローHw(Halo Whiteの略)と呼び、図に示す不自然に暗い縦の帯の部分を黒ヘイローHb(Halo Blackの略)と呼ぶことにする。
図36は、これら白ヘイローHwおよび黒ヘイローHbの実体を説明する図およびグラフである。いま、図36(a) に示すように、XY平面上に白領域Awと黒領域Abとを交互に並べたストライプパターンが形成されている場合を考えてみる。ここで、黒領域Abは低い同一の輝度値L1をもった画素の集合体によって構成され、白領域Awは高い同一の輝度値L2をもった画素の集合体によって構成されているものとする。すなわち、図では便宜上、白領域Awを真っ白な領域として示し、黒領域Abをハッチング領域として示すが、実際には、白領域Awは真っ白に近い淡いグレー、黒領域Abは真っ黒に近い濃いグレーで塗りつぶされているものとする。
図36(b) は、この図36(a) に示すストライプパターンのX軸方向に関する輝度分布を示すグラフであり、縦軸は輝度値Lである。上述の説明どおり、黒領域Abは低い輝度値L1を示し、白領域Awは高い輝度値L2を示している。
図36(c) は、図36(a) に示すストライプパターンについて、ヘイローが発生した状態を示す平面図である。図示のとおり、白領域Awと黒領域Abとが接する輪郭近傍において、縦方向の帯としてヘイローが発生している。すなわち、もともと白領域Awであった部分の輪郭近傍には白ヘイローHw(図では、ドットによるハッチング領域として示す)が発生し、もともと黒領域Abであった部分の輪郭近傍には黒ヘイローHb(図では、細かい斜線ハッチング領域として示す)が発生している。
図36(d) は、この図36(c) に示すヘイローが生じたストライプパターンのX軸方向に関する輝度分布を示すグラフであり、縦軸は輝度値Lである。このグラフによって示されている輝度分布に注目すると、白ヘイローHwおよび黒ヘイローHbの実体が明確になる。
すなわち、白ヘイローHwは、白領域Awから黒領域AbへとX軸に沿って移動する際に、輝度値Lが、高い値L2から低い値L1へと変化する直前に表れる突発的な変動成分であり、輝度値Lが高い値L2から更に高い状態に一時的に変化することにより生じることになる。このため、白ヘイローHwの輝度は白領域Awの輝度よりも更に高くなり、不自然に明るい縦の帯として観察されることになる。
これに対して、黒ヘイローHbは、黒領域Abから白領域AwへとX軸に沿って移動する際に、輝度値Lが、低い値L1から高い値L2へと変化する直前に表れる突発的な変動成分であり、輝度値Lが低い値L1から更に低い状態に一時的に変化することにより生じることになる。このため、黒ヘイローHbの輝度は黒領域Abの輝度よりも更に低くなり、不自然に暗い縦の帯として観察されることになる。
図35(b) に示す例のように、本発明に係る技術を利用して輝度調整を行った場合にヘイローが発生したのは、白領域Awと黒領域Abとの境界近傍において、局所的なコントラスト調整機能が作用したためである。そこで、このヘイロー発生の詳細な要因を、図37を用いて説明しよう。図37(a) 〜(d) は、いずれも図36(a) に示すXY平面上に形成されたストライプパターンである。ここでは、このストライプパターンが調整前画像U1として与えられたときに、本発明に係る画像処理装置の個別補正関数設定手段140によって、どのような処理が行われるかを、次の4つのバリエーションについて考えてみる。
第1のバリエーションは、図37(a) に示す例のように、黒領域Ab内の着目画素P11について、当該黒領域Ab内に完全に含まれるような参照領域R[P11]が設定された場合の処理である。図では説明の便宜上、着目画素P11を黒く塗りつぶした小さな正方形で描いているが、実際には、黒領域Ab内の画素は、いずれも同一の輝度値L1をもった画素なので、参照領域R[P11]内の画素の輝度値はいずれもL1である。すなわち、着目画素P11の輝度値L[P11]は、周囲画素の代表輝度値Leに等しくなる。
したがって、着目画素P11についての個別補正関数F[P11]として、たとえば、図10の上段に示すような関数F[P]が設定されたとしても、着目画素P11の輝度値L[P11]=Leであるため(グラフの交点E0に相当)、補正増減率C=0になり、当該着目画素P11に対しては、局所的コントラストを調整するための補正は行われない。別言すれば、オペレータが設定したグローバルトーンカーブT[G]どおりのグローバルな輝度変換が行われるだけである。よって、この第1のバリエーションでは、ヘイローが発生することはない。
第2のバリエーションは、図37(b) に示す例のように、黒領域Ab内の着目画素P12について設定された参照領域R[P12]の一部分が、当該黒領域Abから食み出すような場合の処理である。この場合、参照領域R[P12]内の周囲画素は、黒領域Ab内の画素と白領域Aw内の画素との混合体になる。ここで、上述したとおり、着目画素P12の輝度値L[P12]は、黒領域Ab内の周囲画素の輝度値と等しいので、結局、周囲画素の代表輝度値Leは、着目画素P12の輝度値L[P12]よりも高くなる。なぜなら、図37(a) に示す第1のバリエーションと比較すると、図37(b) に示す第2のバリエーションの場合、参照領域R[P12]内に高い輝度値L2をもった白領域Aw内の画素が周囲画素の一部として混入してきたため、周囲画素の輝度値の平均値を押し上げる結果となるためである。
したがって、着目画素P12についての個別補正関数F[P12]として、たとえば、図10の上段に示すような関数F[P]が設定されたとすると、着目画素P12の輝度値L[P12]<Leであるため、「着目画素Pが周囲画素Eよりも暗い場合」に相当することになり、補正増減率C<0として、着目画素P12をより暗くする方向に局所的な輝度調整作用が働くことになる。その結果、着目画素P12は、黒領域Ab内の他の画素よりも暗くなる。
これが、図36(c) に示す黒ヘイローHbが発生する要因である。すなわち、黒ヘイローHbは、第2のバリエーションを生じさせるような位置にある着目画素P12を暗くする輝度調整作用に起因して生じるものであり、必然的に、黒領域Abの端部において発生する現象ということになる。
続く第3のバリエーションは、図37(c) に示す例のように、白領域Aw内の着目画素P13について設定された参照領域R[P13]の一部分が、当該白領域Awから食み出すような場合の処理である。この場合、参照領域R[P13]内の周囲画素は、白領域Aw内の画素と黒領域Ab内の画素との混合体になる。ここでも、説明の便宜上、着目画素P13を黒く塗りつぶした小さな正方形で描いているが、実際には、白領域Aw内の画素は、いずれも同一の輝度値L2をもった画素なので、参照領域R[P13]内の画素のうち、白領域Aw内の画素の輝度値は、着目画素P13の輝度値L[P13]と同じである。
結局、周囲画素の代表輝度値Leは、着目画素P13の輝度値L[P13]よりも低くなる。なぜなら、参照領域R[P13]内に低い輝度値L1をもった黒領域Ab内の画素が周囲画素の一部として混入してきたため、周囲画素の輝度値の平均値を押し下げる結果となるためである。
したがって、着目画素P13についての個別補正関数F[P13]として、たとえば、図10の上段に示すような関数F[P]が設定されたとすると、着目画素P13の輝度値L[P13]>Leであるため、「着目画素Pが周囲画素Eよりも明るい場合」に相当することになり、補正増減率C>0として、着目画素P13をより明るくする方向に局所的な輝度調整作用が働くことになる。その結果、着目画素P13は、白領域Aw内の他の画素よりも明るくなる。
これが、図36(c) に示す白ヘイローHwが発生する要因である。すなわち、白ヘイローHbは、第3のバリエーションを生じさせるような位置にある着目画素P13を明るくする輝度調整作用に起因して生じるものであり、必然的に、白領域Awの端部において発生する現象ということになる。
第4のバリエーションは、図37(d) に示す例のように、白領域Aw内の着目画素P14について、当該白領域Aw内に完全に含まれるような参照領域R[P14]が設定された場合の処理である。図では説明の便宜上、着目画素P14を黒く塗りつぶした小さな正方形で描いているが、実際には、白領域Aw内の画素は、いずれも同一の輝度値L2をもった画素なので、参照領域R[P14]内の画素の輝度値はいずれもL2である。すなわち、着目画素P14の輝度値L[P14]は、周囲画素の代表輝度値Leに等しくなる。
したがって、着目画素P14についての個別補正関数F[P14]として、たとえば、図10の上段に示すような関数F[P]が設定されたとしても、着目画素P14の輝度値L[P14]=Leであるため(グラフの交点E0に相当)、補正増減率C=0になり、当該着目画素P14に対しては、局所的コントラストを調整するための補正は行われない。別言すれば、オペレータが設定したグローバルトーンカーブT[G]どおりのグローバルな輝度変換が行われるだけである。よって、この第4のバリエーションでは、ヘイローが発生することはない。
なお、上述の説明では、図10を参照することにより、局所的コントラストを強める補正を行った場合にヘイローが発生する要因を述べたが、図11を参照すれば、局所的コントラストを弱める補正を行った場合にもヘイローが発生することが理解できよう(発生するヘイローの明暗は逆になる)。
以上、典型的なストライプパターンを例にとって、黒ヘイローHbおよび白ヘイローHwの発生要因を説明したが、一般的な画像においても、輝度が大きく変化する領域の境界付近において、同様の要因によりヘイローが発生することになる。特に、画像上にある程度の大きさをもった2つのグラデーション領域が隣接して存在しており、これら2つのグラデーション領域間の輝度変化が激しい場合にヘイローが発生しやすい。
要するに、図36(a) に示すようなストライプパターンの場合、本来は、互いに特性の違う白領域Awと黒領域Abとを別個に分けて、それぞれ別々に輝度調整を行うべきであるが、これらを混合した状態のまま輝度調整を行ったためにヘイローの発生を招いたと言うことができる。もちろん、風景のような自然画像は、図示のストライプパターンのように単純な領域によって構成されるものではないので、特性が同じ領域ごとに分け、別個に輝度調整を行うようなことは困難である。
たとえば、晴れた青空の下で木漏れ日を撮影すれば、複雑な形状をもった木の枝や葉によって、非常に複雑な自然画像が得られるであろう。しかも、空と木の枝との境界や、空と葉との境界は、必ずしも明瞭ではない。したがって、複雑な形状をもった木の枝や葉をそれぞれ個別の領域として認識し、別個に輝度調整を行うことは現実的ではない。以下に述べる本発明に係るヘイローの抑制策は、このような自然画像に対しても十分に効果を発揮することができる。
<7−2.本発明におけるヘイローの抑制原理>
上述したヘイローの発生を抑制する方法のひとつとして、たとえば、参照領域のサイズを小さくする、という方法を採ることも可能である。図37で説明した発生要因を踏まえれば、参照領域のサイズが小さくなればなるほど、図37(b) もしくは図37(c) に示すバリエーションを生じさせるような着目画素は少なくなり、黒ヘイローHbおよび白ヘイローHwの幅は狭まる。しかしながら、参照領域のサイズを小さくすると、本発明の本来の効果が損なわれることになり好ましくない。そこで以下、本発明に適用するのに効果的なヘイローの抑制対策の基本原理を説明する。
いま、図38(a) に示すように、XY平面上に黒領域Abと白領域Awとが隣接する画像が存在するものとしよう。図38(b) は、この画像についてのX軸方向に関する輝度分布を示すグラフであり、縦軸は輝度値Lである。この図38(b) において、一点鎖線で示されているグラフG10は、図38(a) に示す画像の補正前のもともとの輝度分布を示すものであり、いわゆる矩形波の形状をしたグラフになっている。
これに対して、破線で示すグラフG11(一部は太い実線で示すグラフG12に重なっている)は、局所的な輝度調整を行った補正後の輝度分布を示すものである。上述した理由により、黒領域Abと白領域Awとの境界部分において、白ヘイローHw1と黒ヘイローHb1とが発生していることがわかる。白ヘイローHw1は、グラフG11の上方部分における高さd1だけ上方に隆起した山状部分に対応するものであり、黒ヘイローHb1は、グラフG11の下方部分における深さd3だけ下方に陥没した谷状部分に対応するものである。
一方、太い実線で示すグラフG12は、ヘイロー抑制を伴う局所的な輝度調整を行った補正後の輝度分布を示すものである。ヘイロー抑制の効果により、白ヘイローHw1に対応する山状部分の高さはd1からd2に減少して白ヘイローHw2になっており、黒ヘイローHb1に対応する谷状部分の深さはd3からd4に減少して黒ヘイローHb2になっている。このように、本発明におけるヘイロー抑制とは、輝度分布グラフ上でヘイローに対応する山状部分の隆起や谷状部分の陥没の度合いを弱めることである。このヘイロー抑制により、白ヘイローHw1は白ヘイローHw2へと弱まり、黒ヘイローHb1は黒ヘイローHb2へと弱まっている。
なお、実際には、後述するように、ヘイローを完全に滅失させてしまうことは好ましくなく、実線グラフG12によって示されている白ヘイローHw2や黒ヘイローHb2のように、ある程度のヘイローが残るようにするのが好ましい。また、図示の実線グラフG12の場合、残存した白ヘイローHw2に比べて残存した黒ヘイローHb2の方が大きくなっているが、これは黒ヘイローHb1に対する抑制度合いよりも、白ヘイローHw1に対する抑制度合いを強くする運用を採ったためである。このような運用を採る理由についても、後に詳述する。
ここで述べるヘイローの抑制対策は、本発明の基本的実施形態についても適用可能であるが、ここでは説明の便宜上、§5で述べたヒストグラムを用いた簡易集計法を利用する実施形態を例にとって、ヘイローの抑制対策の基本概念を説明する。
図39(a) ,(b) は、それぞれ図37(a) ,(b) に示すバリエーションについて、黒ヘイローHbが発生する具体的な要因を示すグラフであり、図40(a) ,(b) は、それぞれ図37(c) ,(d) に示すバリエーションについて、白ヘイローHwが発生する具体的な要因を示すグラフである。
まず、図39(a) は、図37(a) に示す第1のバリエーションにおいて、着目画素P11について設定された参照領域R[P11]内の周囲画素に関して作成された輝度値のヒストグラムを示している。ここで、黒三角で示す輝度値Lr1は、階級BIN1の代表輝度値であり、実際には、黒領域Abを構成する画素の輝度値(図36(b) の輝度値L1)に相当する。図37(a) に示す第1のバリエーションの場合、参照領域R[P11]内のすべての周囲画素の輝度値がLr1であるため、階級BIN1の度数Vは、全周囲画素の数に対応した値になる。もちろん、着目画素P11の輝度値L[P11]も、この代表輝度値Lr1に一致する。
これに対して、図39(b) は、図37(b) に示す第2のバリエーションにおいて、着目画素P12について設定された参照領域R[P12]内の周囲画素に関して作成された輝度値のヒストグラムを示している。ここで、黒三角で示す輝度値Lr1,Lr4は、それぞれ階級BIN1,BIN4の代表輝度値である。上述したとおり、代表輝度値Lr1は、黒領域Abを構成する画素の輝度値(図36(b) の輝度値L1)に相当し、着目画素P12の輝度値L[P12]も、この代表輝度値Lr1に一致する。一方、代表輝度値Lr4は、白領域Awを構成する画素の輝度値(図36(b) の輝度値L2)に相当する。
図37(b) に示す第2のバリエーションの場合、参照領域R[P12]内の一部の周囲画素の輝度値はLr1であるが、他の一部の周囲画素の輝度値はLr4になる。階級BIN1および階級BIN4の度数Vは、それぞれの周囲画素の数に対応した値になる。別言すれば、階級BIN1の度数Vは、参照領域R[P12]内の黒領域Abに所属する周囲画素の数に対応した値になり、階級BIN4の度数Vは、参照領域R[P12]内の白領域Awに所属する周囲画素の数に対応した値になる。
図39(a) と図39(b) とを比較すればわかるとおり、前者のヒストグラムは、階級BIN1のみによって構成されているのに対し、後者のヒストグラムは、階級BIN1と階級BIN4とによって構成されている。しかも、階級BIN1と階級BIN4とは、輝度値Lの軸に関して最も離れた位置にある階級ということになる。図37(a) に示す着目画素P11の位置においてヘイローが発生しないのに、図37(b) に示す着目画素P12の位置において黒ヘイローHbが発生する理由は、図39(a) に示すヒストグラムには階級BIN4が存在しないのに、図39(b) に示すヒストグラムには階級BIN4が存在するためである。
結局、図37(b) に示す第2のバリエーションの場合、図39(b) に示すヒストグラムにおける階級BIN4の存在が、黒ヘイローHbの発生要因ということになる。この図39(b) に示すヒストグラムに基づいて着目画素P12に対する局所的なコントラスト調整が行われることを踏まえると、黒ヘイローHbが発生するプロセスは次のようになる。
まず、図25を参照して説明したように、集計用座標系上に各階級BINに対応させて局所調整関数f(L)が配置される。図39(b) に示すヒストグラムの場合、代表輝度値Lr1の位置に交点E01がくるように、階級BIN1に対応する局所調整関数f1(L)が配置されるとともに、代表輝度値Lr4の位置に交点E04がくるように、階級BIN4に対応する局所調整関数f4(L)が配置される。この例の場合、集計対象となる局所調整関数は、この2種類のみである。そして、それぞれの度数Vを乗じて各局所調整関数の総和が求められ、その結果として、着目画素P12についての個別補正関数F[P12]が得られる。
ここで、図39(a) に示すヒストグラム(階級BIN1のみからなるヒストグラム)に基づいて得られる個別補正関数F[P11]が、たとえば、図10の上段に示すような関数F[P]であったとすると、図39(b) に示すヒストグラムに基づいて得られる個別補正関数F[P12]は、階級BIN4の存在により、交点E0を図の右側にシフトさせた関数になることがわかる(グラフの形状も若干変化する)。
すなわち、図37(a) に示す第1のバリエーションの場合、図10の上段のグラフにおいて、着目画素P11の輝度値L[P11]が周囲画素の代表輝度値Leに一致し、この一致点が交点E0の位置を示すため、補正増減率がC=0となり、局所的なコントラスト調整が行われないのに対して、図37(b) に示す第2のバリエーションの場合、図10の上段のグラフが階級BIN4の存在により右にシフトするため、交点E0の位置も右にシフトし、着目画素P12の輝度値L[P12]に対応する補正増減率がC<0となり、着目画素P12をより暗くする局所的なコントラスト調整が行われることになる。
このようなプロセスにより、図37(b) に示す着目画素P12の位置を、より暗くする局所的な輝度調整作用が働き、その結果、着目画素P12は、黒領域Ab内の他の画素よりも暗くなり、黒ヘイローHbが発生する。
続いて、図40を参照して、白ヘイローHwが発生するプロセスを追ってみよう。図40(a) は、図37(c) に示す第3のバリエーションにおいて、着目画素P13について設定された参照領域R[P13]内の周囲画素に関して作成された輝度値のヒストグラムを示している。ここで、黒三角で示す輝度値Lr1,Lr4は、前述したとおり、階級BIN1,BIN4の代表輝度値である。代表輝度値Lr1は、黒領域Abを構成する画素の輝度値(図36(b) の輝度値L1)に相当し、代表輝度値Lr4は、白領域Awを構成する画素の輝度値(図36(b) の輝度値L2)に相当する。着目画素P13は白領域Aw内の画素であるので、その輝度値L[P13]は、代表輝度値Lr4に一致する。
図37(c) に示す第3のバリエーションの場合、参照領域R[P13]内の一部の周囲画素の輝度値はLr1であるが、他の一部の周囲画素の輝度値はLr4になる。階級BIN1および階級BIN4の度数Vは、それぞれの周囲画素の数に対応した値になる。別言すれば、階級BIN1の度数Vは、参照領域R[P13]内の黒領域Abに所属する周囲画素の数に対応した値になり、階級BIN4の度数Vは、参照領域R[P13]内の白領域Awに所属する周囲画素の数に対応した値になる。
一方、図40(b) は、図37(d) に示す第4のバリエーションにおいて、着目画素P14について設定された参照領域R[P14]内の周囲画素に関して作成された輝度値のヒストグラムを示している。ここで、黒三角で示す輝度値Lr4は、階級BIN4の代表輝度値であり、実際には、白領域Awを構成する画素の輝度値(図36(b) の輝度値L2)に相当する。図37(d) に示す第4のバリエーションの場合、参照領域R[P14]内のすべての周囲画素の輝度値がLr4であるため、階級BIN4の度数Vは、全周囲画素の数に対応した値になる。もちろん、着目画素P14の輝度値L[P14]も、この代表輝度値Lr4に一致する。
図40(a) と図40(b) とを比較すればわかるとおり、後者のヒストグラムは、階級BIN4のみによって構成されているのに対し、前者のヒストグラムは、階級BIN1と階級BIN4とによって構成されている。しかも、階級BIN1と階級BIN4とは、輝度値Lの軸に関して最も離れた位置にある階級ということになる。図37(d) に示す着目画素P14の位置においてヘイローが発生しないのに、図37(c) に示す着目画素P13の位置において白ヘイローHwが発生する理由は、図40(b) に示すヒストグラムには階級BIN1が存在しないのに、図40(a) に示すヒストグラムには階級BIN1が存在するためである。
結局、図37(c) に示す第3のバリエーションの場合、図40(a) に示すヒストグラムにおける階級BIN1の存在が、白ヘイローHwの発生要因ということになる。この図40(a) に示すヒストグラムに基づいて着目画素P13に対する局所的なコントラスト調整が行われることを踏まえると、白ヘイローHwが発生するプロセスは次のようになる。
まず、図25を参照して説明したように、集計用座標系上に各階級BINに対応させて局所調整関数f(L)が配置される。図40(a) に示すヒストグラムの場合、代表輝度値Lr1の位置に交点E01がくるように、階級BIN1に対応する局所調整関数f1(L)が配置されるとともに、代表輝度値Lr4の位置に交点E04がくるように、階級BIN4に対応する局所調整関数f4(L)が配置される。この例の場合、集計対象となる局所調整関数は、この2種類のみである。そして、それぞれの度数Vを乗じて各局所調整関数の総和が求められ、その結果として、着目画素P13についての個別補正関数F[P13]が得られる。
ここで、図40(b) に示すヒストグラム(階級BIN4のみからなるヒストグラム)に基づいて得られる個別補正関数F[P14]が、たとえば、図10の上段に示すような関数F[P]であったとすると、図40(a) に示すヒストグラムに基づいて得られる個別補正関数F[P13]は、階級BIN1の存在により、交点E0を図の左側にシフトさせた関数になることがわかる(グラフの形状も若干変化する)。
すなわち、図37(d) に示す第4のバリエーションの場合、図10の上段のグラフにおいて、着目画素P14の輝度値L[P14]が周囲画素の代表輝度値Leに一致し、この一致点が交点E0の位置を示すため、補正増減率がC=0となり、局所的なコントラスト調整が行われないのに対して、図37(c) に示す第3のバリエーションの場合、図10の上段のグラフが階級BIN1の存在により左にシフトするため、交点E0の位置も左にシフトし、着目画素P13の輝度値L[P13]に対応する補正増減率がC>0となり、着目画素P13をより明るくする局所的なコントラスト調整が行われることになる。
このようなプロセスにより、図37(c) に示す着目画素P13の位置を、より明るくする局所的な輝度調整作用が働き、その結果、着目画素P13は、白領域Aw内の他の画素よりも明るくなり、白ヘイローHwが発生する。
以上、本発明において黒ヘイローHbおよび白ヘイローHwが発生するプロセスを順を追って説明したが、このようなプロセスを踏まえると、ヘイローの要因となるヒストグラムを抑制すれば、ヘイローの発生も抑制できることがわかる。
たとえば、黒ヘイローHbの発生要因は、図39(b) のヒストグラムにおける階級BIN4の存在である。そこで、階級BIN1の影響力に比べて、階級BIN4の影響力を相対的に下げてやれば、黒ヘイローHbの発生を抑制できることがわかる。具体的には、図41(a) に示すように、階級BIN1に対する重みを大きく設定し、階級BIN4に対する重みを小さく設定し、図24に示すような集計用座標系上で各局所調整関数を集計する際に、これらの重みを考慮した集計(重みパラメータの値を各局所調整関数に乗じた上で総和を求める演算)を行って個別補正関数F[P]を設定すればよい。
一方、白ヘイローHwの発生要因は、図40(a) のヒストグラムにおける階級BIN1の存在である。そこで、階級BIN4の影響力に比べて、階級BIN1の影響力を相対的に下げてやれば、白ヘイローHwの発生を抑制できることがわかる。具体的には、図41(b) に示すように、階級BIN4に対する重みを大きく設定し、階級BIN1に対する重みを小さく設定し、図24に示すような集計用座標系上で各局所調整関数を集計する際に、これらの重みを考慮した集計(重みパラメータの値を各局所調整関数に乗じた上で総和を求める演算)を行って個別補正関数F[P]を設定すればよい。
<7−3.具体的なヘイローの抑制対策>
続いて、上述した抑制原理に基づく、具体的なヘイローの抑制対策を説明する。§5で述べたヒストグラムを用いた集計を行う実施形態の場合、BIN1〜BIN4の4つの階級が定義され、この4階級のそれぞれについてヒストグラムが作成される。上述した抑制原理によると、これら複数のヒストグラムのうち、ヘイローの発生要因となるヒストグラムの重みを、他のヒストグラムの重みよりも相対的に下げてやる処理を行う必要がある。そこで、ここでは、「ヘイローの発生要因となるヒストグラム(階級)」の実体を考えてみよう。
まず、図41(a) に示すヒストグラムの場合、前述したとおり、階級BIN4が黒ヘイローHbの発生要因である。ここで、なぜ階級BIN4が黒ヘイローHbの発生要因になるのかを考えるために、このヒストグラムの元になった図37(b) に示す第2のバリエーションに注目してみる。ここでは、着目画素P12についての個別補正関数F[P12]を設定するための作業が行われているが、この着目画素P12の輝度値L[P12]は、図41(a) のヒストグラムにおいて、階級BIN1の代表輝度値Lr1に一致する。そうすると、図41(a) に示すヒストグラムの場合、黒ヘイローHbの発生要因となる階級BIN4は、輝度軸上において、着目画素P12の輝度値L[P12]から遠い位置にある階級であることがわかる。
一方、図41(b) に示すヒストグラムの場合、前述したとおり、階級BIN1が白ヘイローHwの発生要因である。ここで、なぜ階級BIN1が白ヘイローHwの発生要因になるのかを考えるために、このヒストグラムの元になった図37(c) に示す第3のバリエーションに注目してみる。ここでは、着目画素P13についての個別補正関数F[P13]を設定するための作業が行われているが、この着目画素P13の輝度値L[P13]は、図41(b) のヒストグラムにおいて、階級BIN4の代表輝度値Lr4に一致する。そうすると、図41(b) に示すヒストグラムの場合、白ヘイローHwの発生要因となる階級BIN1は、輝度軸上において、やはり着目画素P13の輝度値L[P13]から遠い位置にある階級であることがわかる。
このような点を考慮すると、一般論としての「ヘイローの発生要因となるヒストグラム(階級)」とは、結局、輝度軸上において、着目画素Pの輝度値L[P]から遠い位置にある階級であることがわかる。したがって、ヘイローの抑制対策としては、得られたヒストグラムにおいて、着目画素Pの輝度値L[P]に近い階級については大きな重みを与え、着目画素Pの輝度値L[P]に遠い階級については小さな重みを与えた上で、各局所調整関数の総和を求める演算を行えばよいことになる。
もちろん、このような重みによる調整は相対的なものであり、一方の階級の重みが他方の階級の重みに比べて相対的に変化するような対策が施されればよい。図41では、説明の便宜上、一方の階級については「重み大」と記載して度数Vを引き上げる様子を示し、他方の階級については「重み小」と記載して度数Vを引き下げる様子を示してあるが、実際には、いずれか一方の階級について度数を調整する作業を行うようにしても問題はない。実用上は、各局所調整関数f(L)の総和を求めた後で、補正増減率Cの値が−1〜+1の範囲内になるように規格化して個別補正関数F[P]を求めるようにすれば、集計前の個々の局所調整関数f(L)の調整値fの絶対値がどのような値になっていても支障は生じない。
そこで、ここで述べるヘイローの抑制対策では、図42(a) に示すような重み関数W(L)を定義する。この重み関数W(L)は、輝度値Lを変数として所定の重みW(無名数)を定義した関数であり、図示のように、横軸に輝度値L、縦軸に重みWをとったグラフによって表現される。重み関数W(L)としては、所定の輝度値Lにおいて重みWが最大値をとり、輝度値Lが増加もしくは減少するに従って重みWの値が単調減少してゆく関数であれば、どのような関数を用いてもかまわないが、ここでは、そのような関数の典型例として、ガウス分布関数を用いることにする。図42(a) には、輝度値L[P]の位置にピーク点Zが配置されたガウス分布関数からなる重み関数W(L)が示されている。
§5で述べたヒストグラムを用いた集計を行う実施形態の場合、ある1つの着目画素Pについて参照領域R[P]を設定し、その中の周囲画素の輝度値に基づいて、図25(b) に示すようなヒストグラムが作成され、このヒストグラムに基づいて、図25(a) に示すように、4種類の局所調整関数f1(L)〜f4(L)が所定位置に配置され、ヒストグラムの度数V1〜V4を乗じて総和を求める演算が行われる。ヘイローの抑制対策を講じる場合、この総和演算を行う際に、図42(a) に示すような重み関数W(L)を用いて、ヒストグラムの度数V1〜V4に対する重みづけを行うようにすればよい。
図42(b) は、図25(b) に示すヒストグラムに、図42(a) に示す重み関数W(L)を重ねて表示したものである。グラフの横軸は共通の輝度値Lを示しているが、縦軸は重み関数W(L)による重みWkを示している。ここで、kは、ヒストグラムの階級番号を示すパラメータであり、W1〜W4は、それぞれ階級BIN1〜BIN4に対して与えられる重みの値を示している。
この図42(b) のグラフにおける重み関数W(L)の配置は、そのピーク点Zが、着目画素Pの輝度値L[P]の位置にくるようになっている。すなわち、重み関数W(L)によって示される重みWは、着目画素Pの輝度値L[P]の位置において最大となり、輝度値L[P]から遠ざかるほど、重みWはなだらかに減少してゆくことになる。これは、図41に示すように、着目画素Pの輝度値L[P]に近い階級については大きな重みを与え、着目画素Pの輝度値L[P]に遠い階級については小さな重みを与える、というヘイロー抑制対策の基本方針に合致する。
図42(b) に示す例の場合、4つの階級BIN1〜BIN4の代表輝度値は、それぞれLr1〜Lr4であるから、これら代表輝度値を変数Lとしたときの重み関数W(L)の値は、それぞれW1〜W4になる。したがって、階級BIN1については重みW1を与え、階級BIN2については重みW2を与え、階級BIN3については重みW3を与え、階級BIN4については重みW4を与えた上で、局所調整関数f1(L)〜f4(L)の集計を行えばよいことになる。具体的には、各階級BIN1〜BIN4の度数V1〜V4に、それぞれ重みW1〜W4を乗じる補正を行った上で集計を行えばよい。
図43は、図39に示す例に対して、図42に示すヘイローの抑制策を施す方法を示すグラフである。前述したとおり、図39(a) に示すヒストグラムは、図37(a) に示す着目画素P11についての個別補正関数F[P11]を設定するためのものであるが、このヒストグラムに基づく集計演算を行う際には、図43(a) に示すような重み関数W(L)を用いた重みづけが行われる。
図43(a) は、図39(a) に示すヒストグラムに、図42(a) に示す重み関数W(L)を重ねて表示したものである。横軸は共通の輝度値Lを示しているが、グラフの左側の縦軸はヒストグラムの度数Vを示し、右側の縦軸は重み関数W(L)による重みWkを示している(kは、ヒストグラムの階級番号を示すパラメータである)。ここで、重み関数W(L)は、そのピーク点Zが、着目画素P11の輝度値L[P11](すなわち、階級BIN1の代表輝度値Lr1)の位置にくるように配置されている。したがって、重み関数W(L)によって示される重みWは、着目画素P11の輝度値L[P11]の位置において最大となり、輝度値L[P11]から遠ざかるほど、重みWはなだらかに減少してゆく。
この例の場合、階級BIN1の代表輝度値Lr1に対応する重み関数W(L)の値として、重みW1が与えられる。したがって、集計演算時には、階級BIN1の度数V1に対して、重みW1が乗じられることになる。もっとも、この例では、階級BIN1のヒストグラムしか存在しないため、ヘイロー抑制策による実質的な影響は何も生じない。前述したように、着目画素P11の位置にはヘイローは発生しないので、もともとヘイロー抑制策を行う必要はない。
これに対して、図39(b) に示すヒストグラムは、図37(b) に示す着目画素P12についての個別補正関数F[P12]を設定するためのものであるが、このヒストグラムに基づく集計演算を行う際には、図43(b) に示すような重み関数W(L)を用いた重みづけが行われる。
図43(b) は、図39(b) に示すヒストグラムに、図42(a) に示す重み関数W(L)を重ねて表示したものである。やはり横軸は共通の輝度値Lを示し、グラフの左側の縦軸はヒストグラムの度数Vを示し、右側の縦軸は重み関数W(L)による重みWkを示している。また、重み関数W(L)は、そのピーク点Zが、着目画素P12の輝度値L[P12](すなわち、階級BIN1の代表輝度値Lr1)の位置にくるように配置されている。したがって、重み関数W(L)によって示される重みWは、着目画素P12の輝度値L[P12]の位置において最大となり、輝度値L[P12]から遠ざかるほど、重みWはなだらかに減少してゆく。このため、輝度値L[P12]から離れた位置にある階級BIN4についての重みWはかなり小さいものになる。
具体的には、この例の場合、階級BIN1の代表輝度値Lr1に対応する重み関数W(L)の値としては、最大値に相当する重みW1が与えられるが、階級BIN4の代表輝度値Lr4に対応する重み関数W(L)の値としては、かなり小さな重みW4が与えられることになる。そして、集計演算時には、階級BIN1の度数V1には重みW1が乗じられ、階級BIN4の度数V4には重みW4が乗じられる。その結果、最終的に得られる着目画素P12についての個別補正関数F[P12]は、階級BIN1の影響を強く受けるものの、階級BIN4の影響はほとんど受けないものになる。すなわち、図41(a) に示すような黒ヘイローHbの抑制策が働くことにより、黒ヘイローHbの発生を抑制する効果が得られる。
一方、図44は、図40に示す例に対して、図42に示すヘイローの抑制策を施す方法を示すグラフである。前述したとおり、図40(a) に示すヒストグラムは、図37(c) に示す着目画素P13についての個別補正関数F[P13]を設定するためのものであるが、このヒストグラムに基づく集計演算を行う際には、図44(a) に示すような重み関数W(L)を用いた重みづけが行われる。
図44(a) は、図40(a) に示すヒストグラムに、図42(a) に示す重み関数W(L)を重ねて表示したものである。やはり横軸は共通の輝度値Lを示し、グラフの左側の縦軸はヒストグラムの度数Vを示し、右側の縦軸は重み関数W(L)による重みWkを示している。また、重み関数W(L)は、そのピーク点Zが、着目画素P13の輝度値L[P13](すなわち、階級BIN4の代表輝度値Lr4)の位置にくるように配置されている。したがって、重み関数W(L)によって示される重みWは、着目画素P13の輝度値L[P13]の位置において最大となり、輝度値L[P13]から遠ざかるほど、重みWはなだらかに減少してゆく。このため、輝度値L[P13]から離れた位置にある階級BIN1についての重みWはかなり小さいものになる。
具体的には、この例の場合、階級BIN4の代表輝度値Lr4に対応する重み関数W(L)の値としては、最大値に相当する重みW4が与えられるが、階級BIN1の代表輝度値Lr1に対応する重み関数W(L)の値としては、かなり小さな重みW1が与えられることになる。そして、集計演算時には、階級BIN1の度数V1には重みW1が乗じられ、階級BIN4の度数V4には重みW4が乗じられる。その結果、最終的に得られる着目画素P13についての個別補正関数F[P13]は、階級BIN4の影響を強く受けるものの、階級BIN1の影響はほとんど受けないものになる。すなわち、図41(b) に示すような白ヘイローHwの抑制策が働くことにより、白ヘイローHwの発生を抑制する効果が得られる。
これに対して、図44(b) に示すヒストグラムは、図37(d) に示す着目画素P14についての個別補正関数F[P14]を設定するためのものであるが、このヒストグラムに基づく集計演算を行う際には、図44(b) に示すような重み関数W(L)を用いた重みづけが行われる。
図44(b) は、図40(b) に示すヒストグラムに、図42(a) に示す重み関数W(L)を重ねて表示したものである。やはり横軸は共通の輝度値Lを示し、グラフの左側の縦軸はヒストグラムの度数Vを示し、右側の縦軸は重み関数W(L)による重みWkを示している。また、重み関数W(L)は、そのピーク点Zが、着目画素P14の輝度値L[P14](すなわち、階級BIN4の代表輝度値Lr4)の位置にくるように配置されている。したがって、重み関数W(L)によって示される重みWは、着目画素P14の輝度値L[P14]の位置において最大となり、輝度値L[P14]から遠ざかるほど、重みWはなだらかに減少してゆく。
この例の場合、階級BIN4の代表輝度値Lr4に対応する重み関数W(L)の値として、重みW4が与えられる。したがって、集計演算時には、階級BIN4の度数V4に対して、重みW4が乗じられることになる。もっとも、この例では、階級BIN4のヒストグラムしか存在しないため、ヘイロー抑制策による実質的な影響は何も生じない。前述したように、着目画素P14の位置にはヘイローは発生しないので、もともとヘイロー抑制策を行う必要はない。
<7−4.一般論としてのヘイロー抑制対策>
ここでは、§7−3で述べた具体的なヘイローの抑制対策を踏まえて、本発明に適したヘイロー抑制対策の基本方針を一般論としてまとめておく。
まず、§5で述べたヒストグラムを用いた集計を行う実施形態の場合は、個別補正関数設定手段140が、着目画素Pの輝度値L[P]と第k番目の階級BINkの代表輝度値Lrkとの差に基づいて、当該差が小さい階級ほど大きな重みづけを行い、総和グラフを求める際に、第k番目の局所調整関数fk(L)のグラフについて、第k番目の階級BINkについての重みWkを考慮した集計を行うことにより、個別補正関数F[P]を設定する処理を行えばよい。
より具体的には、着目画素Pの輝度値L[P]に対応する値が最大値をとり、輝度値Lが当該着目画素Pの輝度値L[P]から離れるに従って単調減少する値を示す重み関数W(L)を定義し、第k番目の局所調整関数fk(L)のグラフについて、第k番目の階級BINkの代表輝度値Lrkに対応する重み関数W(L)の値Wkを重みとして用いた集計を行うことにより、個別補正関数F[P]を設定する処理を行えばよい。
もっとも、本発明に係るヘイローの抑制対策は、§5で述べたヒストグラムを用いた集計を行う実施形態への適用に限定されるものではなく、§2で述べた基本的実施形態や、§3で述べた実施形態にも適用可能である。要するに、このヘイローの抑制対策の基本概念は、個別補正関数設定手段140が、特定の着目画素Pについての個別補正関数F[P]を設定する際に、当該着目画素Pの輝度値L[P]と、当該着目画素Pについて設定された参照領域R[P]内の各周囲画素の輝度値とを比較し、両者の差が小さい周囲画素ほど大きな重みづけをした参照を行うことにより、個別補正関数F[P]を設定する点にある。
このような基本概念に従えば、たとえば、図16に示すように、集計用座標系上に、1つ1つの周囲画素のそれぞれに対応した局所調整関数f(L)を配置し、これらを集計して個別補正関数F[P]を設定する実施形態を採る場合にも、本発明に係るヘイローの抑制対策を講じることが可能である。すなわち、この図16に示す実施形態を、§5で述べたヒストグラムを用いる実施形態において、ヒストグラムの階級の総数KをK=256に設定したものと考えれば、§7−3で述べた具体的なヘイローの抑制対策と同様の方法を適用することが可能である。
この場合のヘイロー抑制対策の基本方針を一般論としてまとめると、結局、個別補正関数設定手段140が、着目画素Pの輝度値L[P]と第j番目の周囲画素Ejの輝度値Ljとの差に基づいて、当該差が小さい周囲画素ほど大きな重みづけを行い、総和グラフを求める際に、第j番目の局所調整関数fj(L)のグラフについて、第j番目の周囲画素Ejについての重みWjを考慮した集計を行うことにより、個別補正関数F[P]を設定する処理を行えばよいことになる。
より具体的には、着目画素Pの輝度値L[P]に対応する値が最大値をとり、輝度値Lが当該着目画素Pの輝度値L[P]から離れるに従って単調減少する値を示す重み関数W(L)を定義し、第j番目の局所調整関数fj(L)のグラフについて、第j番目の周囲画素Ejの輝度値Ljに対応する重み関数W(L)の値Wjを重みとして用いた集計を行うことにより、個別補正関数を設定する処理を行えばよい。
<7−5.重み関数W(L)の設定方法>
上述したヘイロー抑制対策を実施する上では、重み関数W(L)として、どのような関数を設定するかが重要である。上述の説明では、図42(a) に示すようなガウス分布関数を重み関数W(L)として用いた例を述べた。ガウス分布関数は、自然なエネルギー分布を表す関数であり、中央のピーク点Zから左右両側に裾野を広げるようになだらかに下降するカーブを描くグラフによって表現される。ただ、同じガウス分布関数であっても、係数値を変えることにより、その全体形状は変わってくる。
図45は、ヘイローの抑制策に用いる様々なガウス分布曲線を示すグラフである。ガウス分布関数の一般式は、図示のように、y=exp(−x/2σ)なる式で表現され、図示のとおり、横軸にx軸、縦軸にy軸をとったグラフを描けば、x=0の位置を中心としたなだらかなカーブが得られる。変数x=0に対応する関数値yは1になり、この点がピーク点Zということになる。上記式における標準偏差σは、グラフの形状を左右するパラメータであり、σを小さく設定するとカーブは急峻になり、σを大きく設定するとカーブはなだらかになる。図に示すガウス分布曲線g1はσを小さく設定した例であり、ガウス分布曲線g2はσを中程度に設定した例であり、ガウス分布曲線g3はσを大きく設定した例である。
ヘイローの抑制効果を強めるには、σを小さく設定した急峻なガウス分布曲線を用いればよい。そうすれば、輝度軸上において、着目画素Pの輝度値L[P]から離れるに従って、重みWの値は急激に減少するため、ヘイローの要因となる成分を著しく抑える効果が得られる。逆に、ヘイローの抑制効果を弱めるには、σを大きく設定したゆるやかなガウス分布曲線を用いればよい。図43(b) や図44(a) に示す例を参照すれば、重み関数W(L)の形状によって、ヘイローの抑制効果が大きく左右されることが容易に理解できよう。
ところで、§7−2においても述べたとおり、実際には、ヘイローを完全に滅失させてしまうことは好ましくない。また、一般的には、黒ヘイローHbに対する抑制度合いよりも、白ヘイローHwに対する抑制度合いを強くする運用を採るのが好ましい。図38(b) に太い実線で示すグラフにおいて、ヘイロー抑制対策後も、若干の白ヘイローHw2や黒ヘイローHb2が残っており、しかも、残存した白ヘイローHw2に比べて残存した黒ヘイローHb2の方が大きくなっているのは、このためである。
黒領域Abと白領域Awとの境界部分に生じるヘイローを、ある程度残しておいた方が好ましい理由は、やはり人間の脳内で特有の視覚処理が行われるためである。図46は、一般にシェブルール錯視として知られている人間の視覚的な認知現象を示す図である。この図には、段階的に濃淡(輝度)が異なる複数のストライプパターンからなる画像が表示されている。ここで、個々のストライプを構成する矩形領域は、実際には、同一の輝度からなる画素の集合体によって構成されており、本来、同じ矩形領域の内部は同じ明るさとして認識されるべきものである。ところが、人間が観察した場合、隣接する矩形領域との境界近傍部分において、明るさに微妙な違いが生じているように感じる。すなわち、脳は、個々の矩形領域を別個の物体として互いに区別して認識した方が好ましいと判断し、自発的にヘイローを発生させて輪郭を強調する処理を行っていることになる。
これは換言すれば、個々の矩形領域を別個の領域として識別するためには、境界部分において、明るさに微妙な違いが生じている方が人間にとっては好ましいのであるが、物理的には、「境界部分における明るさの微妙な違い」というものは存在しないため、人間の脳が勝手に「境界部分における明るさの微妙な違い」が生じるような補正処理を行っている、と考えることができる。要するに、人間が図46に示すようなストライプパターンを観察した場合、「境界部分における明るさの微妙な違い」が存在する方が感性に合致している、と判断していることになる。人間の脳がそのような判断を行う理由は、これまでも述べてきたとおり、進化の過程において、外敵や獲物を即座に認識する能力を身につけたためと考えられる。
一方、図47は、一般にクレイク・オブライエン効果として知られている人間の視覚的な認知現象を示す図である。図47(a) に示す画像を人間が観察すると、左右2つの矩形領域が認識でき、しかも、左側の矩形領域に比べて、右側の矩形領域の方が、若干明るいように見える。しかしながら、実際には、両者の境界部分において、若干の明るさの変動があるものの、2つの矩形領域の明るさは同じである。
図47(b) は、図47(a) に示す画像の横方向をX軸にとり、縦軸に輝度値Lをとって、その輝度分布を示したグラフである。このグラフのX軸上の各位置は、図47(a) に示す画像の横方向の各位置に対応している。図示のとおり、このグラフの形状は、ほぼ水平な直線をなしており、2つの矩形領域の境界近傍において、若干の輝度変動が存在するだけである。要するに、左側の矩形領域の右境界端は若干輝度値が低くなっており、右側の矩形領域の左境界端は若干輝度値が高くなっているが、その他の部分の輝度は均一である。
それにもかかわらず、図47(a) の画像を人間が観察すると、左側矩形領域全体に比べて、右側矩形領域全体の方が、若干明るいように感じる。この現象も、左右の矩形領域をそれぞれ異なる物体として即座に認識するために、人間が進化の過程で身につけた脳の処理機能として説明できる。図47(c) の画像は、図47(a) に示す画像の中央部分に、黒い帯を配置した画像である。この図47(c) の画像を観察する限り、左右の矩形領域の明るさは同じに感じられる。これは、中央に黒い帯を配置することにより、3つの矩形領域がそれぞれ別個の物体として即座に認識できるようになり、脳による補正を行う必要がなくなったためと考えられる。
以上、図46に示すシェブルール錯視および図47に示すクレイク・オブライエン効果を引用して、画像の境界部分に関して、脳による特有の視覚処理が行われることを示したが、このような脳による視覚処理が行われることを考慮すると、人間の感性に合致した画像を作成する上では、ヘイローを完全に滅失させてしまうことは好ましくないという結論が導かれる。
たとえば、図35(b) に示す画像には、不自然に明るい縦の帯(白ヘイローHw)や不自然に暗い縦の帯(黒ヘイローHb)が生じているが、「駐輪場の看板」という物体を即座に認識する上では、これらのヘイローは大いに役立っていることになる。したがって、外敵や獲物などの物体を即座に認識する上では、むしろヘイローが存在する画像の方が好ましいと言える。
もちろん、実際には、図35(b) に示す画像ほどヘイローが目立ってしまうと、画像として不自然さを感じるものになる。したがって、実用上は、できるだけ人間の感性に合致した画像を生成するために、不自然さが残らない程度にまでヘイローの発生を抑制するものの、ヘイローを完全に滅失させてしまうことはしない、というヘイロー対策を採るのが好ましい。
続いて、図38(b) に示す例のように、黒ヘイローHb1に対する抑制度合いよりも、白ヘイローHw1に対する抑制度合いを強くする運用を採るのが好ましい理由を説明する。図48は、図30に示した一般的な風景画像について生じた黒ヘイローHbおよび白ヘイローHwの一例を示す図である。既に述べたとおり、黒領域Abと白領域Awとが接している場合に、黒領域Abの境界端に生じるより暗い部分が黒ヘイローHbであり、白領域Awの境界端に生じるより明るい部分が白ヘイローHwである。
図48に示す風景画像の場合、明るい空部と暗い山部とが山の稜線を境界として接する画像であるため、山部の境界端に黒ヘイローHb(図では、細かい斜線ハッチング領域として示す)が発生し、空部の境界端に白ヘイローHw(図では、ドットによるハッチング領域として示す)が発生する。このようにヘイローが生じている画像を人間が観察した場合、黒ヘイローHbについてはあまり違和感が生じないが、白ヘイローHwについては大きな違和感が生じる。
これは、青空のような明るい領域に、更に明るい領域が生じるような現象が自然界では稀であるため、脳が異常事態を認識するためと考えられる。これに対して、暗い物体の縁取りがより暗い、という現象は、自然界においてそれほど稀ではないため、脳は異常事態という認識をもたないことになる。
実際、図48に示す風景画像の場合、黒ヘイローHbによって山の稜線部分が暗くなっていても、山の輪郭線として自然に受け入れられるのに対して、白ヘイローHwによって山の稜線のすぐ上の領域が白っぽく光っていたとすると、あたかも超常現象が起こっているような違和感が生じるであろう。同様に、図35(b) に示す実例画像においても、「駐車場の看板」の輪郭部分に生じた黒ヘイローHbよりも、その背後に後光が射すかのように白く光っている白ヘイローHwの方が、多くの観察者に対して大きな違和感を与えているであろう。
結局、人間の感性に合致させたヘイロー対策というものを考えると、次の2つの要点が重要であることがわかる。第1の要点は、ヘイローを完全に滅失させてしまうことは好ましくなく、ある程度のヘイローが残るようにする、という点であり、第2の要点は、黒ヘイローHbに対する抑制度合いよりも、白ヘイローHwに対する抑制度合いを強くする、という点である。したがって、実際には、図38(b) に実線グラフG12として示すように、ある程度の大きさをもった白ヘイローHw2および黒ヘイローHb2が残るようにし、かつ、白ヘイローHw2に比べて黒ヘイローHb2の方が大きくなる状態が得られるようにするのが、最適のヘイロー対策と言える。
上述したとおり、ヘイロー抑制対策には、着目画素Pの輝度値L[P]に対応する値が最大値をとり、輝度値Lが当該輝度値L[P]から離れるに従って単調減少する値を示す重み関数W(L)を用いることになるが、黒ヘイローHbに対する抑制度合いよりも、白ヘイローHwに対する抑制度合いを強くする、という要点を満たすようにするには、重み関数W(L)として、着目画素の輝度値が所定の基準未満の場合に用いる第1の重み関数W1(L)と着目画素の輝度値が所定の基準以上の場合に用いる第2の重み関数W2(L)という2通りの関数を設定するようにし、かつ、第1の重み関数W1(L)に比べて、第2の重み関数W2(L)の方が、単調減少の割合が急峻となるようにすればよい。
そうすれば、輝度値が所定の基準未満となる暗い着目画素と、輝度値が所定の基準以上となる明るい着目画素とに分けた上で、黒ヘイローHbを生じる可能性のある暗い着目画素については、ゆるやかなカーブをもった第1の重み関数W1(L)を用いたヘイロー抑制策を講じることができ、白ヘイローHwを生じる可能性のある明るい着目画素については、急峻なカーブをもった第2の重み関数W2(L)を用いたヘイロー抑制策を講じることができるので、黒ヘイローHbに対する抑制度合いよりも、白ヘイローHwに対する抑制度合いを強くすることができる。
輝度値の基準としては、たとえば、周囲画素の代表輝度値Leを用いればよい。そうすれば、図37(b) に示すように、周囲画素よりも着目画素が暗い場合には、ゆるやかなカーブをもった第1の重み関数W1(L)を用いて黒ヘイローHbに対する抑制策を講じることができ、図37(c) に示すように、周囲画素よりも着目画素が明るい場合には、急峻なカーブをもった第2の重み関数W2(L)を用いて白ヘイローHwに対する抑制策を講じることができる。
なお、実用上は、前述したように、重み関数W(L)として、図45に示すようなガウス分布関数を用意し、これを着目画素Pの輝度値L[P]の座標にピーク点Zが位置するように配置して、各周囲画素の重みWを決定するようにするのが好ましい。この場合は、ガウス分布関数を定義する式における標準偏差σを変化させることにより、分布カーブの形状を調整することができる。
図49は、ヘイローの抑制策に用いるガウス分布曲線の傾斜を左右する標準偏差σの好適な設定例を示すグラフであり、横軸は輝度値L、縦軸はガウス分布関数の標準偏差σを示している。この例では、輝度値の基準としては、上述したように、周囲画素の代表輝度値Leを用いており、着目画素Pの輝度値をL[P]としたときに、L[P]<Leの場合は、図の一点鎖線より左側のグラフによって示される標準偏差σをもつガウス分布関数からなる第1の重み関数W1(L)を利用し、L[P]≧Leの場合は、図の一点鎖線より右側のグラフによって示される標準偏差σをもつガウス分布関数からなる第2の重み関数W2(L)を利用することになる。
ここで、第1の重み関数W1(L)となるガウス分布関数の標準偏差σは、図示のとおり、着目画素Pの輝度値L[P]が0からLeまで増加したときに、最大値σmaxから最小値σminへと減少するグラフ(図の例では直線状のグラフであるが、単調減少するグラフであれば、どのようなグラフでもかまわない)によって定められる。一方、第2の重み関数W2(L)となるガウス分布関数の標準偏差σは、図示のとおり、常に最小値σminに固定されている。
要するに、標準偏差σについて最大値σmaxおよび最小値σminを定め、着目画素Pの輝度値L[P]が周囲画素の代表輝度値Le以上の場合には、標準偏差σ=σminとなるガウス分布関数を重み関数W2(L)として用いるようにし、着目画素Pの輝度値L[P]が周囲画素の代表輝度値Le未満の場合には、標準偏差σが、σmax ≧σ>σminの範囲をとり、かつ、着目画素Pの輝度値L[P]が大きいほど小さくなるように設定されたガウス分布関数を重み関数W1(L)として用いるようにすればよい。
この図49のグラフに基づいて、ガウス分布関数の標準偏差σを設定し、当該ガウス分布関数を重み関数W(L)として用い、上述したヘイローの抑制策を実施すれば、黒ヘイローHbに対する抑制度合いよりも、白ヘイローHwに対する抑制度合いを強くする、という要点を満たすようなヘイローの抑制策が可能になる。
たとえば、着目画素Pの輝度値L[P]が周囲画素の代表輝度値Leよりも小さい場合は、黒ヘイローHbが発生する可能性があるが、図49のグラフに基づいて、輝度値L[P]に対応する標準偏差σ[P]が設定され、標準偏差σ[P]をもったガウス分布関数を重み関数W(L)として用いたヘイローの抑制策が実施される。一方、着目画素Pの輝度値L[P]が周囲画素の代表輝度値Leよりも大きい場合は、白ヘイローHwが発生する可能性があるが、図49のグラフに基づいて、輝度値L[P]に対応する標準偏差σmin が設定され、標準偏差σmin をもったガウス分布関数を重み関数W(L)として用いたヘイローの抑制策が実施される。
ガウス分布関数では、標準偏差σが大きくなると分布カーブがなだらかになり、ヘイローの抑制効果は弱められ、標準偏差σが小さくなると分布カーブが急峻になり、ヘイローの抑制効果は強められる。したがって、図49のグラフに基づいて、ガウス分布関数の標準偏差σを設定すれば、黒ヘイローHbに対する抑制度合いよりも、白ヘイローHwに対する抑制度合いを強くする、という要点を満たすヘイローの抑制策が可能になり、しかも黒ヘイローHbに対する抑制度合いは、着目画素Pが暗ければ暗いほど弱められるので、人間の感性に合致した効果的なヘイロー抑制対策が可能になる。
なお、実用上は、図8に示す個別補正関数設定手段140に、オペレータの設定操作により、重み関数W(L)の形状を自由に調整することができる機能をもたせておき、オペレータが設定した重み関数W(L)を用いてヘイロー抑制処理が実行されるようにしておくのが好ましい。具体的には、たとえば、オペレータが、ヘイロー抑制パラメータhを設定できる機能を個別補正関数設定手段140に設けておき、図49に示すグラフで決定される標準偏差σに、パラメータhを乗じた値を、実際のヘイロー抑制処理に用いるガウス分布関数の標準偏差として設定すればよい。
そうすれば、オペレータは、ディスプレイ画面上に表示された調整後画像U2を逐次確認しながら、ヘイロー対策が十分か否かを判断し、必要があれば、ヘイロー抑制パラメータhの値を修正して、新たな重み関数W(L)を用いた輝度調整を行う、という試行錯誤の操作を繰り返してゆけばよい。
もちろん、図49に示すグラフ自体を、ヘイロー抑制パラメータの一部として、オペレータの調整対象にしておくことも可能である。すなわち、個別補正関数設定手段140に、オペレータの操作に基づいて図49に示すグラフを修正する機能をもたせておけば、オペレータは、図49に示すグラフ自体を任意の形状に修正することにより、ヘイロー抑制対策の強弱を調整することもできるし、黒ヘイローHbに対する抑制度合いと白ヘイローHwに対する抑制度合いとのバランスを調整することもできる。
図50(a) ,(b) は、図35(b) に示すヘイロー発生画像に対して、ヘイローの抑制策を伴う輝度調整処理を行った結果を示す図である。いずれも、上述したように、オペレータがヘイロー抑制パラメータを自由に調整できる機能をもたせた画像処理装置による輝度調整の結果を示すものである。図50(a) は、黒ヘイローHbについては抑制せずに白ヘイローHwの抑制度合いを極度に高めるような調整を行うことにより得られた調整後画像である。黒ヘイローHbについては、図35(b) と同様に目立っているが、白ヘイローHwはほとんど目立たなくなっている。このように、白ヘイローHwのみを抑制することも可能であるし、もちろん、黒ヘイローHbのみを抑制することも可能である。もっとも、この図50(a) に示す例は、画像全体のコントラストが失われる結果となり、輝度調整に失敗した例である。一方、図50(b) は、ヘイロー抑制パラメータをバランス良く調整することに成功し、良好な輝度調整に成功した例である。
<<< §8. 輝度調整方法およびカラー画像処理方法 >>>
これまで本発明を、図8のブロック図に示す構成を有する画像処理装置(輝度調整機能をもった画像処理装置)として把握し、その機能を説明してきたが、ここでは、本発明を輝度調整方法およびこれを利用したカラー画像処理方法として捉え、方法発明としての説明を行う。
<8−1.カラー画像処理方法>
図51は、本発明に係るカラー画像処理方法の基本手順を示す流れ図である。この方法は、与えられたカラー画像について、その輝度調整を行うカラー画像処理方法であり、図示のとおり、ステップS1〜S7の各手順によって構成される。これらの各手順は、ステップS7を除いて、いずれもコンピュータによって実行されるものであり、実際には、コンピュータプログラムによって記述される。
まず、ステップS1では、三原色R,G,Bの各画素値をもつ画素の配列からなる調整前カラー画像を入力する調整前カラー画像入力段階が実行される。通常、各色R,G,Bごとに、それぞれ8ビットの階調値をもったカラー画像が調整前カラー画像として取り込まれることになる。
続くステップS2では、この調整前カラー画像を構成する個々の画素のもつ三原色R,G,Bの画素値を、輝度成分を示す画素値および色差成分を示す画素値に変換することにより、輝度値をもつ画素の配列からなる調整前画像を生成する調整前画像生成段階が実行される。本発明は、それぞれ所定の輝度値をもつ画素の配列からなる調整前画像U1について輝度調整を行うことを本質的な目的としているため、調整前画像U1は、明るさを示す輝度値を画素値とする画像である必要がある。そこで、三原色R,G,Bの画素値を、輝度成分を示す画素値および色差成分を示す画素値に変換する処理を行う。
一般にカラー画像を表現する方式には様々な規格が定められており、相互に変換することが可能である。通常、ディスプレイ装置に与えるカラー画像では、1つの画素を三原色R,G,Bの画素値として表現するRGB表色系を用いた方式が利用されているが、たとえば、これを輝度成分Yと色差成分Cb,Crとを用いた方式に変換することが可能であり、必要に応じて、逆変換して再びRGB表色系に戻すことも可能である。そこで、たとえば、RGB表色系で表現された1画素の情報を、YCbCr系の表現形式に変換すれば、輝度成分Yを画素値とする調整前画像U1を生成することができる。
次のステップS3では、参照領域の大きさ算出が行われる。本発明では、調整前画像U1を構成する個々の画素をそれぞれ着目画素Pとして、この着目画素Pを含むその近傍の領域にそれぞれ参照領域R[P]を設定する必要がある。この参照領域R[P]は、所定サイズの画素配列によって構成されるが、§2−1で述べたように、調整前画像U1の横方向の画素数をSx、縦方向の画素数をSyとした場合、予め設定されている分割数nを用いて(実用上は、n=10程度が好ましい)、Sx/nもしくはSy/nなる除算を行い、その商に近い画素数に対応する長さを一辺とする正方形領域もしくは矩形領域を参照領域R[P]として自動的に設定するのが好ましい。
そこでステップS3では、ステップS2で生成された調整前画像U1のサイズを参照して、参照領域R[P]のサイズを決定する処理が行われる。たとえば、調整前画像U1として、横長矩形の画像が与えられる一般的なケースにおいて、n=10に設定した場合は、調整前画像U1の横方向の画素数をSxとして、Sx/10なる商に近い所定の画素数を一辺とする正方形状の画素配列を、参照領域R[P]として決定すればよい。
次のステップS4では、オペレータの設定操作に基づいて調整用パラメータを設定する調整用パラメータ設定段階が行われる。具体的には、ここに示す実施形態の場合、図示のとおり、3本のトーンカーブ、局所調整関数f(L)、ヘイロー抑制パラメータという3種類の調整用パラメータが設定される。
ここで、3本のトーンカーブは、図20に示すグローバルトーンカーブT[G]、第1制限カーブT[α]、第2制限カーブT[β]の3本であり、実際には、図17に例示したように、マウスなどのポインティングデバイスを用いたドラッグ操作により、入力輝度値Linと出力輝度値Lout との関係を示すグラフとして設定することができる。
なお、第1制限カーブT[α]が必ずグローバルトーンカーブT[G]の上方に設定されるように制限し、第2制限カーブT[β]が必ずグローバルトーンカーブT[G]の下方に設定されるように制限する入力方法を採用すれば、第1制限カーブT[α]は上限カーブT[upper]として機能し、第2制限カーブT[β]は下限カーブT[lower]として機能することになるので、図18に示す実施形態として運用することが可能になる。
第1制限カーブT[α]および第2制限カーブT[β]、もしくは、上限カーブT[upper]および下限カーブT[lower]が、グローバルトーンカーブT[G]に対して行う補正に対して制限を加える役割を果たすことは、既に§4−2,§4−3で述べたとおりである。
一方、ステップS4で設定される局所調整関数f(L)は、図16の上段に示すように、集計用座標系に配置される関数である。実用上は、§5で述べたヒストグラムを用いた集計を行う運用を採用し、§3−1で述べたように、局所調整関数f(L)として、図15に示すような式で表されるシグモイド関数「fk(L)=(2/(1+exp(−μ・(L−Lk)/M)))−1」(単調増加の場合)もしくは「fk(L)=−(2/(1+exp(−μ・(L−Lk)/M)))+1」(単調減少の場合)が用いられる。ステップS4では、単調増加の関数を用いるか、単調減少の関数を用いるかを選択する設定と、必要に応じて、勾配係数μの値やヒストグラムの階級の総数K(階級番号kの最大値)を指定する設定とが行われる。
そして、ステップS4で設定されるヘイロー抑制パラメータは、§7で述べたヘイローの抑制対策に利用される重みづけを定義するためのパラメータであり、具体的には、§7−5で述べたとおり、重み関数W(L)として利用されるガウス分布関数の標準偏差σの設定が行われる。より自由度の高い調整を可能にする場合は、図49に示すグラフ自体をヘイロー抑制パラメータとして設定するようにすればよい。
こうして、ステップS4において、調整用パラメータの設定が完了すると、続いて、ステップS5において、設定された調整用パラメータを用いた輝度調整処理段階が実行される。この輝度調整処理段階は、図8にブロック図として示した画像処理装置により実行される段階であり、その具体的な手順は、図52の流れ図を参照して後述する。
こうして、輝度調整処理段階が完了すると、ステップS6において、得られた調整後画像U2を構成する個々の画素のもつ輝度値Y′(元の輝度値Yを輝度調整によって修正した値)および色差成分Cb,Cr(ステップS2の変換によって得られた値)を示す画素値を、三原色の画素値R′,G′,B′に変換することにより、RGB表色系を用いた方式で表現された各画素値をもつ画素の配列からなる調整後カラー画像を生成する調整後カラー画像生成段階が実行される。なお、上述した手順では、色差成分Cb,Crについては何ら調整を施していないが、必要に応じて、輝度の増減をCb,Crにも適用し、Cb′,Cr′を生成し、Y′Cb′Cr′をR′G′B′に変換するようにしてもかまわない。一般にカラー画像に対する輝度調整の方法は、様々な手法が知られており、本願ではこれらについての詳しい説明は省略する。
こうして得られた調整後カラー画像はディスプレイ画面上に表示され、最後のステップS7において、オペレータによる良否判定に供される。オペレータが良好な画像であると判定した場合は、このカラー画像処理手順は完了するが、否定的な判定を行った場合には、再びステップS4からの処理が繰り返される。オペレータは、ステップS4において、調整用パラメータの設定を変更しては、ステップS7において結果を判定する、という作業を、納得がゆく結果が得られるまで繰り返すことになる。
<8−2.輝度調整処理方法>
続いて、図52の流れ図を参照しながら、本発明に係る輝度調整処理方法の基本手順を説明する。この基本手順は、図51の流れ図におけるステップS5において実行される手順である。したがって、図51に示すカラー画像処理方法は、図52に示す輝度調整処理方法を利用して、与えられたカラー画像について輝度調整を行う方法ということになる。
図52に示す輝度調整処理方法は、それぞれ所定の輝度値をもつ画素の配列からなる調整前画像U1について輝度調整を行う方法であり、図示のとおり、ステップS11〜S20の各手順によって構成される。これらの各手順も、すべてコンピュータによって実行されるものであり、実際には、コンピュータプログラムによって記述される。
まず、ステップS11では、着目画素を示すパラメータiが初期値i=1に設定され、続くステップS12では、調整前画像U1を構成する画素配列の中の第i番目の画素を着目画素Piとして抽出する処理が行われる。すなわち、このステップS12の処理は、調整前画像U1を構成する個々の画素をそれぞれ着目画素Piとして抽出する着目画素抽出段階の処理ということになる。
続くステップS13では、この着目画素Piを含むその近傍の領域に、参照領域R[Pi]を設定する参照領域設定段階の処理が行われる。
これに引き続いて行われるステップS14,S15の処理は、参照領域R[Pi]内において着目画素Piの周囲に位置する周囲画素の輝度値を参照して、各着目画素Piのそれぞれについて輝度値を変数とする個別補正関数F[Pi]を設定する個別補正関数設定段階の処理ということになる。
ここで、ステップS14は、局所調整関数配置ステップと呼ぶべきステップであり、次のような処理が実行される。はじめに、参照領域R[Pi]内の各周囲画素の輝度値に基づいて、それぞれの局所調整関数f(L)を集計用座標系に配置する処理が行われる。具体的には、まず、輝度値Lを横軸、調整値fを縦軸にとって、輝度値Lと調整値fとの関係を示すグラフによって表現される関数であって、輝度値Lの増加に応じて調整値fが単調増加もしくは単調減少するような局所調整関数f(L)が定義される。
そして、輝度値Lを横軸、調整値fを縦軸にとった集計用座標系上に、参照領域R[Pi]内の第j番目の周囲画素(但し、j=1,2,... ,N、ここでNは参照領域内の周囲画素の総数)に対応させて第j番目の局所調整関数fj(L)のグラフを配置し、配置した第j番目のグラフ上において調整値f=0となる点の横軸座標が、対応する第j番目の周囲画素の輝度値Ljに一致するように、個々のグラフをそれぞれ所定量だけ横軸方向に個別にスライドさせる処理が実行される。
一方、ステップS15は、局所調整関数集計ステップと呼ぶべきステップであり、合計N組の局所調整関数f1(L)〜fN(L)のグラフを集計した総和として総和グラフを求め、この総和グラフを用いて個別補正関数F[Pi]を設定する処理が行われる。
次のステップS16では、入力輝度値Linを出力輝度値Lout に変換するための所定のグローバルトーンカーブT[G](図51のステップS4で設定されたもの)に対して、ステップS15で設定された個別補正関数F[Pi]を用いた補正を行うことにより、着目画素Piについて当該着目画素Piに固有のローカルトーンカーブT[Pi]を定義するローカルトーンカーブ定義段階が行われる。このとき、グローバルトーンカーブT[G]に対する補正は、図51のステップS4で設定された第1制限カーブT[α]および第2制限カーブT[β]、もしくは、上限カーブT[upper]および下限カーブT[lower]に基づく制限下で行われる。
そして、ステップS17では、ステップS16で定義されたローカルトーンカーブT[Pi]を用いて、着目画素Piの輝度値L[Pi]を輝度値L[Qi]に変換する輝度値変換段階の処理が行われる。
以上述べたステップS12〜S17の処理は、ステップS18において、パラメータiが最大値imax (調整前画像U1に含まれる画素の総数)に達したと判断されるまで、ステップS19においてパラメータiを1ずつ更新しながら、繰り返し実行されることになる。
ステップS18において、i=imax との判断がなされると、ステップS20へと進み、ステップS17の輝度値変換段階の処理によって変換された輝度値L[Qi]をもつ画素Qiの集合からなる画素配列を調整後画像U2として出力する調整後画像出力段階の処理が実行される。
なお、§5で述べたヒストグラムを用いた簡易集計法を採用する処理を行う場合は、ステップS14(局所調整関数配置ステップ)において、輝度値Lを横軸、調整値fを縦軸にとって、輝度値Lと調整値fとの関係を示すグラフによって表現される関数であって、輝度値Lの増加に応じて調整値fが単調増加もしくは単調減少するような局所調整関数f(L)を定義する点は、これまでの説明と同じである。その後は、参照領域R[Pi]内の複数の周囲画素の輝度値を複数K段階の階級に分類し、それぞれの度数を計数することによりヒストグラムを作成する。続いて、輝度値Lを横軸、調整値fを縦軸にとった集計用座標系上に、作成したヒストグラムにおける第k番目の階級(但し、k=1,2,... ,K)に対応させて第k番目の局所調整関数fk(L)のグラフを配置し、配置した第k番目のグラフ上において調整値f=0となる点の横軸座標が、対応する第k番目の階級の代表輝度値Lrkに一致するように、個々のグラフをそれぞれ所定量だけ横軸方向に個別にスライドさせる。そして、ステップS15(局所調整関数集計ステップ)では、合計K組のグラフについて、それぞれの度数に応じた重みづけを行って集計した総和として総和グラフを求め、この総和グラフを用いて個別補正関数F[Pi]を設定するようにすればよい。
また、§6で述べた画像の領域分割を行う手法を採る場合は、ステップS14(局所調整関数配置ステップ)で、調整前画像U1を複数の分割領域に分けて認識し、個別補正関数F[Pi]を設定する際に、互いに異なる分割領域内の周囲画素については、それぞれ異なる局所調整関数f(L)を配置するようにすればよい。具体的には、調整前画像U1を、空間周波数が所定の基準以上となるテクスチャ領域Atと空間周波数が基準未満となるグラデーション領域Agとに分けて認識し、テクスチャ領域用の局所調整関数ft(L)と、グラデーション領域用の局所調整関数fg(L)とを別個に設定し、テクスチャ領域Atに位置する周囲画素についてはテクスチャ領域用の局所調整関数ft(L)を配置し、グラデーション領域Agに位置する周囲画素については、グラデーション領域用の局所調整関数fg(L)を配置するようにすればよい。
そして、§7で述べたヘイローを抑制する対策を実行する場合は、ステップS15(局所調整関数集計ステップ)で、着目画素Piの輝度値L[Pi]と第j番目の周囲画素の輝度値Ljとの差に基づいて、当該差が小さい周囲画素ほど大きな重みづけを行い、総和グラフを求める際に、第j番目の局所調整関数fj(L)のグラフについて、第j番目の周囲画素についての重みを考慮した集計を行うことにより、個別補正関数F[Pi]を設定すればよい。
このとき、更に、§5で述べたヒストグラムを用いた簡易集計法を併用する場合は、ステップS15(局所調整関数集計ステップ)で、着目画素Piの輝度値L[Pi]と第k番目の階級BINkの代表輝度値Lrkとの差に基づいて、当該差が小さい階級ほど大きな重みづけを行い、総和グラフを求める際に、第k番目の局所調整関数fk(L)のグラフについて、第k番目の階級BINkについての重みを考慮した集計を行うことにより、個別補正関数F[Pi]を設定するようにすればよい。
<<< §9. 調整後画像の実例 >>>
最後に、本発明に係る輝度調整方法を利用して、具体的な画像に対して種々の輝度調整を行うことにより得られた調整後画像U2の実例をいくつか掲載しておく。
まず、図53(a) は、基本となる調整前画像U10の実例を示す図であり、本発明に係る輝度調整方法の調整対象として用いられた元画像に相当する。図53(b) は、図53(a) に示す画像に対応するトーンカーブを示している。図53(a) に示す調整前画像U10は、まだ輝度調整を行う前の画像であるから、図53(b) には、便宜上、基準トーンカーブT0を掲載してある。この元画像は、室内から窓を背景として、テーブルに置かれた毛糸玉を撮影したものであるが、図示のとおり、室外の景色はある程度認識できるものの、室内の壁や毛糸玉の部分は黒く潰れてしまっており、細部が十分に認識できない状態になっている。
一方、図54(a) は、図51のステップS4(調整用パラメータ設定段階)において、図54(b) に示すような3本のカーブ、すなわち、グローバルトーンカーブT[G]、上限カーブT[upper]、下限カーブT[lower]を設定して、図53(a) に示す調整前画像U10に対して輝度調整を行うことにより得られた調整後画像U21である。図53(a) に示す調整前画像U10と比較すると、室外の景色の明るさをほとんど変えることなく、室内の部分を明るくすることに成功しており、室内の壁や毛糸玉の細部が認識しやすい状態になっている。
図55(a) は、図51のステップS4(調整用パラメータ設定段階)において、図55(b) に示すような3本のカーブを設定して、図53(a) に示す調整前画像U10に対して輝度調整を行うことにより得られた調整後画像U22である。図55(b) に示す3本のカーブを図54(b) に示す3本のカーブと比較すると、グローバルトーンカーブT[G]および下限カーブT[lower]は全く同じであるが、上限カーブT[upper]の形状が若干異なっている。
図55(a) の調整後画像U22を図54(a) の調整後画像U21と比較すると、画像全体の明るさは変化していないが、暗い室内部分の局所的なコントラストをより強調した輝度調整が行われていることがわかる。たとえば、籠の中央に置かれた複数色の毛糸玉に注目すると、局所的なコントラストが強調され、1本1本の毛糸の識別がより容易になっている。このように、グローバルトーンカーブT[G]を変えずに、上限カーブT[upper]もしくは下限カーブT[lower]を変えると、画像全体の明るさを維持したまま、局所的なコントラストを調整することが可能になる。
一方、図56(a) は、図51のステップS4(調整用パラメータ設定段階)において、図56(b) に示すような3本のカーブを設定して、図53(a) に示す調整前画像U10に対して輝度調整を行うことにより得られた調整後画像U23である。実は、図56(b) に示す3本のカーブは、図54(b) に示す3本のカーブと全く同じである。それにもかかわらず、図54(a) に示す調整後画像U21と図56(a) に示す調整後画像U23とに違いが生じているのは、図51のステップS4(調整用パラメータ設定段階)において、局所調整関数f(L)として異なる関数を設定したためである。
すなわち、図54(a) に示す調整後画像U21は、局所調整関数f(L)として、図10の上段に示すようなS字状のカーブを設定することにより得られた画像である。図10に示すカーブは、個別補正関数F[P]の例として示したものであるが、ほぼ同じ形状のカーブを局所調整関数f(L)として用いている。これに対して、図56(a) に示す調整後画像U23は、局所調整関数f(L)として、図11の上段に示すような逆S字状のカーブを設定することにより得られた画像である。図11に示すカーブも、個別補正関数F[P]の例として示したものであるが、やはりほぼ同じ形状のカーブを局所調整関数f(L)として用いている。
既に述べたとおり、実際には、ステップS4では、シグモイド関数を局所調整関数f(L)として設定することになる。したがって、図54(a) に示す調整後画像U21は、S字カーブを形成する単調増加型のシグモイド関数「fk(L)=(2/(1+exp(−μ・(L−Lk)/M)))−1」を局所調整関数f(L)として設定することにより得られた画像であり、図56(a) に示す調整後画像U23は、逆S字カーブを形成する単調減少型のシグモイド関数「fk(L)=−(2/(1+exp(−μ・(L−Lk)/M)))+1」を局所調整関数f(L)として設定することにより得られた画像ということになる。
図54(a) に示す調整後画像U21と図56(a) に示す調整後画像U23とを比較すると、前者では局所的なコントラストが強められているのに対して、後者では局所的なコントラストが弱められており、両者では画質が全く異なっていることがわかる。このように、ステップS4の調整用パラメータ設定段階において、3本のトーンカーブが全く同一になる設定を行ったとしても、局所調整関数f(L)の設定が異なれば、輝度調整の結果も異なってくる。
また、図20〜図23に示す例のように、3本のトーンカーブとして、グローバルトーンカーブT[G]、第1の制限カーブT[α]、第2の制限カーブT[β]を設定する実施形態を採れば、3本のカーブの相互配置に関する制限がなくなり、より自由度の高い設定を行うことができる。
たとえば、図20に示すように、グローバルトーンカーブT[G]の上方に第1の制限カーブT[α]を配置し、グローバルトーンカーブT[G]の下方に第2の制限カーブT[β]を配置した場合と、図21に示すように、グローバルトーンカーブT[G]の下方に第1の制限カーブT[α]を配置し、グローバルトーンカーブT[G]の上方に第2の制限カーブT[β]を配置した場合とでは、局所的なコントラスト調整の効果が逆転することになる。
別言すれば、局所調整関数f(L)として、単調増加型のシグモイド関数(S字状カーブの関数)を用いるか、単調減少型のシグモイド関数(逆S字状カーブの関数)を用いるかの選択によって生じる画質の相違は、第1の制限カーブT[α]と第2の制限カーブT[β]との配置を入れ替えることによっても生み出すことが可能である。
図51に示す実施形態の場合、ステップS4で設定可能な調整用パラメータは、3本のトーンカーブと、局所調整関数f(L)と、ヘイロー抑制パラメータであり、オペレータは、これらのパラメータを種々組み合わせて調整することにより、自由度の高い輝度調整を行うことができる。
図57(a) は、図51のステップS4(調整用パラメータ設定段階)において、図57(b) に示すような3本のカーブを設定して、図53(a) に示す調整前画像U10に対して輝度調整を行うことにより得られた調整後画像U24である。図57(b) に示す例は、図23に示す例と同様に、第1の制限カーブT[α]と第2の制限カーブT[β]とを点Oにおいて交差させて8の字状のカーブが形成されるように設定した例である。§4−3で述べたように、8の字状のカーブを形成させると、局所的コントラストを強める効果と弱める効果とが混在した画像を作り出すことができるので、非常に複雑な輝度調整効果を生み出すことが可能になる。
図57(a) に示す調整後画像U24も、このような複雑な輝度調整効果を施した結果である。図57(b) に示す設定の場合、グローバルトーンカーブT[G]としては、図54(b) と同じS字状カーブを設定しているため、画像全体に対してはコントラストを弱める調整が働くが、交点Oよりも左側の低輝度部分では局所的コントラストを強める調整が行われ、交点Oよりも右側の高輝度部分では局所的コントラストを弱める調整が行われることになる。
その結果、図54(a) に示す調整後画像U21と図57(a) に示す調整後画像U24とを比較すると、画像全体の明るさはほぼ同じになっているが、窓から見える室外の風景部分などに注目すれば、明るい部分の局所的なコントラストについては、前者に比べて後者の方が弱められていることがわかる。このように、図57(a) に示す調整後画像U24では、局所的にコントラストが強められる部分と局所的にコントラストが弱められる部分とが、局所的にコントラストを変化させない部分を介して融合した状態になっている。このため、暗い部分の局所的コントラストについては強める調整を行い、明るい部分の局所的コントラストについては弱める調整を行う、という複雑な輝度調整の要望に応えながら、局所的コントラスト調整に不自然な境界が生じることなく、自然調の画像が得られている。
110:調整前画像格納手段
120:グローバルトーンカーブ設定手段
130:輝度値変換手段
140:個別補正関数設定手段
150:調整後画像格納手段
A,A1〜A3:トーンカーブ上の点
Ab:黒領域
Ag:グラデーション領域
At:テクスチャ領域
Aw:白領域
a:補正指示量
a′:実補正量
B,B1〜B3:トーンカーブ上の点
BIN1〜BIN4:ヒストグラムの階級
b:補正指示量
b′:実補正量
C:補正増減率
D1〜D5:トーンカーブ上の点
Dα:第1の補正方向
Dβ:第2の補正方向
d1〜d4:ヘイローの大きさ
E,E11,E12,E13g,E13t:周囲画素
E0:グラフF[P]と補正基準ラインξ0(C=0のライン)との交点
E01〜E04:グラフf(L)と補正基準ラインξ0(f=0のライン)との交点
F[P],F[Pi],F[P11],F[P12]:個別補正関数
f:調整値
f(L),f1(L)〜f4(L),fk(L):局所調整関数
fg(L),fg1(L)〜fg4(L):グラデーション領域用の局所調整関数
ft(L),ft1(L)〜ft4(L):テクスチャ領域領域用の局所調整関数
G:回転中心点
G1:ガウス分布曲線
G2:累積ガウス分布曲線
G10:補正前の輝度分布
G11:補正後の輝度分布
G12:ヘイロー抑制を伴う補正後の輝度分布
g1〜g3:ガウス分布曲線
Hb,Hb1,Hb2:黒ヘイロー
Hw,Hw1,Hw2:白ヘイロー
i:着目画素の番号
j:周囲画素の番号
K:ヒストグラムの階級の総数
k:ヒストグラムの階級番号
K1:補正増減率Cの下限値
K2:補正増減率Cの上限値
L1〜L12,L11′,L12′:輝度値
L,La,Lb:輝度値
Le:周囲画素Eの輝度値の代表値
Lin:入力輝度値
Lout :出力輝度値
Lupper:上限カーブの輝度値
Llower:下限カーブの輝度値
Lo:境界輝度値
Lr1〜Lr4:各階級の代表輝度値(平均輝度値)
Lα:第1の制限カーブの輝度値
Lβ:第2の制限カーブの輝度値
L[P],L[P11]〜L[P14]:各着目画素の輝度値
L[Q11],L[Q12]:各補正画素の輝度値
M:輝度値の最大値
N:参照領域内の周囲画素の総数
O,O1,O2:トーンカーブ上の点
P,Pi,P11〜P14:着目画素
P1〜P4:着目画素の輝度値対応点
Q,Qi,Q11,Q12:補正画素
R,Ri,R[P],R[P11]〜R[P14]:各着目画素の参照領域
S1〜S20:流れ図の各ステップ
T0:基準トーンカーブ(無修正)
T1:コントラスト強調トーンカーブ
T2:コントラスト弱調トーンカーブ
T[G]:グローバルトーンカーブ
T[P],T[Pi],T[P11],T[P12]:ローカルトーンカーブ
T[top]:上限ライン
T[bottom]:下限ライン
T[upper]:上限カーブ
T[lower]:下限カーブ
T[α]:第1の制限カーブ
T[β]:第2の制限カーブ
U1:調整前画像
U2:調整後画像
U10:調整前画像
U21〜U24:調整後画像
ua,ub:最大補正指示量
ua′,ub′:最大実補正量
V,V1〜V4,Vk:度数(画素数)
W,Wk,W1〜W4,:重み
W(L),W1(L),W2(L):重み関数
X:画像の横方向軸
x:ガウス分布関数の変数値
Y:画像の縦方向軸
y:ガウス分布関数の関数値
Z:ガウス分布曲線のピーク点
Δa,Δb:補正量
μ:傾斜係数
ξ0:補正基準ライン(C=0もしくはf=0)
ξα:補正上限ライン(C=+1もしくはf=+1)
ξβ:補正下限ライン(C=−1もしくはf=−1)
σ,σ[P]:標準偏差
σmax:標準偏差σの最大値
σmin:標準偏差σの最小値

Claims (55)

  1. 与えられた画像について輝度調整を行う画像処理装置であって、
    それぞれ所定の輝度値をもつ画素の配列からなる調整前画像を格納する調整前画像格納手段と、
    オペレータの設定操作に基づいて、入力輝度値を出力輝度値に変換するためのグローバルトーンカーブを設定するグローバルトーンカーブ設定手段と、
    前記調整前画像を構成する個々の画素をそれぞれ着目画素として、着目画素を含むその近傍の領域にそれぞれ参照領域を設定し、各参照領域内において着目画素の周囲に位置する周囲画素の輝度値を参照して、各着目画素のそれぞれについて輝度値を変数とする個別補正関数を設定する個別補正関数設定手段と、
    個々の着目画素のそれぞれについて、前記グローバルトーンカーブを前記個別補正関数に基づいて補正することによりローカルトーンカーブを定義し、当該ローカルトーンカーブを用いて、個々の着目画素の輝度値を変換する輝度値変換手段と、
    前記輝度値変換手段によって変換された輝度値をもつ画素の配列を調整後画像として格納する調整後画像格納手段と、
    を備えることを特徴とする画像処理装置。
  2. 請求項1に記載の画像処理装置において、
    個別補正関数設定手段が、着目画素の輝度値が周囲画素の代表輝度値よりも小さい場合は、当該着目画素の輝度値をより小さくし、着目画素の輝度値が周囲画素の代表輝度値よりも大きい場合は、当該着目画素の輝度値をより大きくし、着目画素の輝度値が周囲画素の代表輝度値に等しい場合は、当該着目画素の輝度値をそのままとする個別補正関数を設定することを特徴とする画像処理装置。
  3. 請求項1に記載の画像処理装置において、
    個別補正関数設定手段が、着目画素の輝度値が周囲画素の代表輝度値よりも小さい場合は、当該着目画素の輝度値をより大きくし、着目画素の輝度値が周囲画素の代表輝度値よりも大きい場合は、当該着目画素の輝度値をより小さくし、着目画素の輝度値が周囲画素の代表輝度値に等しい場合は、当該着目画素の輝度値をそのままとする個別補正関数を設定することを特徴とする画像処理装置。
  4. 請求項2または3に記載の画像処理装置において、
    個別補正関数設定手段が、参照領域内の周囲画素の輝度値の平均値を当該周囲画素の代表輝度値とすることを特徴とする画像処理装置。
  5. 請求項2または3に記載の画像処理装置において、
    個別補正関数設定手段が、参照領域内の周囲画素の輝度値について、着目画素に距離的に近い周囲画素ほど大きな重みを付与して求めた加重平均値を当該周囲画素の代表輝度値とすることを特徴とする画像処理装置。
  6. 請求項2〜5のいずれかに記載の画像処理装置において、
    個別補正関数設定手段が、参照領域内の周囲画素の代表輝度値を求める際に、当該参照領域内の着目画素の輝度値を周囲画素の輝度値の1つとして取り扱うことを特徴とする画像処理装置。
  7. 請求項1に記載の画像処理装置において、
    個別補正関数設定手段が、参照領域内の複数の周囲画素の輝度値を複数K段階の階級に分類し、それぞれの度数を計数することによりヒストグラムを作成し、これらヒストグラムを参照して、各着目画素のそれぞれについて輝度値を補正するための個別補正関数を設定することを特徴とする画像処理装置。
  8. 請求項1に記載の画像処理装置において、
    個別補正関数設定手段が、調整前画像を複数の分割領域に分けて認識し、個別補正関数を設定する際に、互いに異なる分割領域内の周囲画素については、それぞれ異なる態様で輝度値を参照して個別補正関数を設定することを特徴とする画像処理装置。
  9. 請求項8に記載の画像処理装置において、
    個別補正関数設定手段が、調整前画像を、空間周波数が所定の基準以上となるテクスチャ領域と空間周波数が前記基準未満となるグラデーション領域とに分けて認識し、個別補正関数を設定する際に、前記テクスチャ領域に位置する周囲画素と前記グラデーション領域に位置する周囲画素とについて、それぞれ異なる態様で輝度値を参照して個別補正関数を設定することを特徴とする画像処理装置。
  10. 請求項1に記載の画像処理装置において、
    個別補正関数設定手段が、着目画素の輝度値と各周囲画素の輝度値とを比較し、両者の差が小さい周囲画素ほど大きな重みづけをした参照を行うことにより、個別補正関数を設定することを特徴とする画像処理装置。
  11. 請求項1に記載の画像処理装置において、
    グローバルトーンカーブ設定手段が、0≦Lin≦M(但し、Mは輝度値の最大値)なる条件を満たす範囲内の入力輝度値Linを横軸、0≦Lout ≦Mなる条件を満たす範囲内の出力輝度値Lout を縦軸にとって、入力輝度値Linと出力輝度値Lout との関係を示すグラフによって構成されるグローバルトーンカーブを設定する機能を有し、
    個別補正関数設定手段が、0≦Lin≦Mなる条件を満たす範囲内の入力輝度値Linを横軸、所定の補正増減率Cを縦軸にとって、入力輝度値Linと補正増減率Cとの関係を示すグラフによって表現される個別補正関数を設定する機能を有し、
    輝度値変換手段が、グローバルトーンカーブにおける任意の入力輝度値Linに対応する出力輝度値Lout の値を、前記個別補正関数における当該入力輝度値Linに対応する補正増減率Cに応じて増減する補正を行うことによりローカルトーンカーブの定義を行うことを特徴とする画像処理装置。
  12. 請求項11に記載の画像処理装置において、
    個別補正関数設定手段が、補正増減率Cとして、負の数値K1および正の数値K2を設定して、K1≦C≦K2なる条件を満たす範囲内の値を用いることを特徴とする画像処理装置。
  13. 請求項12に記載の画像処理装置において、
    個別補正関数設定手段が、入力輝度値Linの増加に応じて補正増減率Cが単調増加し、かつ、周囲画素の輝度値を代表する代表輝度値に相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数を設定し、
    輝度値変換手段が、グローバルトーンカーブにおける任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、前記個別補正関数における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ輝度値の最大値Mを上限として増加させる補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ0を下限として減少させる補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブの定義を行うことを特徴とする画像処理装置。
  14. 請求項12に記載の画像処理装置において、
    個別補正関数設定手段が、入力輝度値Linの増加に応じて補正増減率Cが単調減少し、かつ、周囲画素の輝度値を代表する代表輝度値に相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数を設定し、
    輝度値変換手段が、グローバルトーンカーブにおける任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、前記個別補正関数における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ輝度値の最大値Mを上限として増加させる補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ0を下限として減少させる補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブの定義を行うことを特徴とする画像処理装置。
  15. 請求項13または14に記載の画像処理装置において、
    個別補正関数設定手段が、K1=−1、K2=+1に設定し、補正増減率Cとして、−1≦C≦+1なる条件を満たす範囲内の値を用いて個別補正関数を設定し、
    輝度値変換手段が、任意の横軸座標Lに位置するグローバルトーンカーブ上の点について、その縦軸座標をLold からLnew に修正することによりローカルトーンカーブを定義し、補正増減率Cの絶対値を|C|としたときに、C>0,Lold <Lの場合は、Lnew =Lold +(L−Lold )×|C|なる式に基づいて、C>0,Lold >Lの場合は、Lnew =Lold +(M−Lold )×|C|なる式に基づいて、C<0,Lold <Lの場合は、Lnew =Lold −Lold ×|C|なる式に基づいて、C<0,Lold >Lの場合は、Lnew =Lold −(Lold −L)×|C|なる式に基づいて、それぞれ修正を行うことにより、ローカルトーンカーブを定義することを特徴とする画像処理装置。
  16. 請求項12に記載の画像処理装置において、
    グローバルトーンカーブ設定手段が、オペレータの設定操作に基づいて、グローバルトーンカーブとともに、その上方に位置する上限カーブおよび下方に位置する下限カーブを設定することにより、合計3本のカーブを設定する機能を有し、前記上限カーブおよび前記下限カーブは、前記グローバルトーンカーブと同様に、0≦Lin≦Mなる条件を満たす範囲内の入力輝度値Linを横軸、0≦Lout ≦Mなる条件を満たす範囲内の出力輝度値Lout を縦軸にとって、入力輝度値Linと出力輝度値Lout との関係を示すグラフによって構成されるようにし、
    輝度値変換手段が、グローバルトーンカーブを前記上限カーブと前記下限カーブとの間に挟まれた領域の範囲内で補正することにより、ローカルトーンカーブを定義することを特徴とする画像処理装置。
  17. 請求項16に記載の画像処理装置において、
    個別補正関数設定手段が、入力輝度値Linの増加に応じて補正増減率Cが単調増加し、かつ、周囲画素の輝度値を代表する代表輝度値に相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数を設定し、
    輝度値変換手段が、グローバルトーンカーブにおける任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、前記個別補正関数における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ上限カーブを上限として増加させる補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ下限カーブを下限として減少させる補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブの定義を行うことを特徴とする画像処理装置。
  18. 請求項16に記載の画像処理装置において、
    個別補正関数設定手段が、入力輝度値Linの増加に応じて補正増減率Cが単調減少し、かつ、周囲画素の輝度値を代表する代表輝度値に相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数を設定し、
    輝度値変換手段が、グローバルトーンカーブにおける任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、前記個別補正関数における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ上限カーブを上限として増加させる補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ下限カーブを下限として減少させる補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブの定義を行うことを特徴とする画像処理装置。
  19. 請求項17または18に記載の画像処理装置において、
    個別補正関数設定手段が、K1=−1、K2=+1に設定し、補正増減率Cとして、−1≦C≦+1なる条件を満たす範囲内の値を用いて個別補正関数を設定し、
    輝度値変換手段が、任意の横軸座標Lに位置するグローバルトーンカーブ上の点について、その縦軸座標をLold からLnew に修正することによりローカルトーンカーブを定義し、補正増減率Cの絶対値を|C|、横軸座標Lにおける上限カーブの輝度値をLupper、下限カーブの輝度値をLlowerとしたときに、C>0の場合は、Lnew =Lold +(Lupper−Lold )×|C|なる式に基づいて、C<0の場合は、Lnew =Lold −(Lold −Llower)×|C|なる式に基づいて、それぞれ補正を行うことにより、ローカルトーンカーブを定義することを特徴とする画像処理装置。
  20. 請求項12に記載の画像処理装置において、
    グローバルトーンカーブ設定手段が、オペレータの設定操作に基づいて、グローバルトーンカーブとともに、第1制限カーブおよび第2制限カーブを設定することにより、合計3本のカーブを設定する機能を有し、前記第1制限カーブおよび前記第2制限カーブは、前記グローバルトーンカーブと同様に、0≦Lin≦Mなる条件を満たす範囲内の入力輝度値Linを横軸、0≦Lout ≦Mなる条件を満たす範囲内の出力輝度値Lout を縦軸にとって、入力輝度値Linと出力輝度値Lout との関係を示すグラフによって構成されるようにし、
    輝度値変換手段が、前記第1の制限カーブを越えない範囲内で、前記第1の制限カーブに近づける第1の補正方向に輝度値を増減する第1の補正と、前記第2の制限カーブを越えない範囲内で、前記第2の制限カーブに近づける第2の補正方向に輝度値を増減する第2の補正と、を選択的に行うことにより、ローカルトーンカーブを定義することを特徴とする画像処理装置。
  21. 請求項20に記載の画像処理装置において、
    個別補正関数設定手段が、入力輝度値Linの増加に応じて補正増減率Cが単調増加し、かつ、周囲画素の輝度値を代表する代表輝度値に相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数を設定し、
    輝度値変換手段が、グローバルトーンカーブにおける任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、前記個別補正関数における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ第1の補正方向に向けて修正する補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ第2の補正方向に向けて修正する補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブの定義を行うことを特徴とする画像処理装置。
  22. 請求項20に記載の画像処理装置において、
    個別補正関数設定手段が、入力輝度値Linの増加に応じて補正増減率Cが単調減少し、かつ、周囲画素の輝度値を代表する代表輝度値に相当する入力輝度値Linに対応する補正増減率Cが0になるような個別補正関数を設定し、
    輝度値変換手段が、グローバルトーンカーブにおける任意の入力輝度値Linに対応する出力輝度値Lout の値に対して、前記個別補正関数における当該入力輝度値Linに対応する補正増減率Cに基づいて、C>0の場合は当該補正増減率Cの絶対値に応じた補正量だけ第1の補正方向に向けて修正する補正を行い、C<0の場合は当該補正増減率Cの絶対値に応じた補正量だけ第2の補正方向に向けて修正する補正を行い、C=0の場合は補正を行わないことによりローカルトーンカーブの定義を行うことを特徴とする画像処理装置。
  23. 請求項21または22に記載の画像処理装置において、
    個別補正関数設定手段が、K1=−1、K2=+1に設定し、補正増減率Cとして、−1≦C≦+1なる条件を満たす範囲内の値を用いて個別補正関数を設定し、
    輝度値変換手段が、任意の横軸座標Lに位置するグローバルトーンカーブ上の点について、その縦軸座標をLold からLnew に修正することによりローカルトーンカーブを定義し、横軸座標Lにおける第1制限カーブの輝度値をLα、第2制限カーブの輝度値をLβとしたときに、C>0の場合は、Δa=|(Lα−Lold )×C|なる式に基づいて定まる補正量Δaだけ、輝度値Lold を第1制限カーブに近づける方向に増減する補正を行い、C<0の場合は、Δb=|(Lβ−Lold)×C|なる式に基づいて定まる補正量Δbだけ、輝度値Lold を第2制限カーブに近づける方向に増減する補正を行うことにより、ローカルトーンカーブを定義することを特徴とする画像処理装置。
  24. 請求項12に記載の画像処理装置において、
    個別補正関数設定手段が、
    輝度値Lを横軸、調整値fを縦軸にとって、輝度値Lと調整値fとの関係を示すグラフによって表現される関数であって、輝度値Lの増加に応じて調整値fが単調増加もしくは単調減少するような局所調整関数f(L)を定義し、
    輝度値Lを横軸、調整値fを縦軸にとった集計用座標系上に、参照領域内の第j番目の周囲画素(但し、j=1,2,... ,N、ここでNは参照領域内の周囲画素の総数)に対応させて第j番目の局所調整関数fj(L)のグラフを配置し、配置した第j番目のグラフ上において調整値f=0となる点の横軸座標が、対応する第j番目の周囲画素の輝度値Ljに一致するように、個々のグラフをそれぞれ所定量だけ横軸方向に個別にスライドさせるようにし、
    合計N組の局所調整関数f1(L)〜fN(L)のグラフを集計した総和として総和グラフを求め、この総和グラフを用いて個別補正関数を設定することを特徴とする画像処理装置。
  25. 請求項24に記載の画像処理装置において、
    個別補正関数設定手段が、着目画素の輝度値と第j番目の周囲画素の輝度値との差に基づいて、当該差が小さい周囲画素ほど大きな重みづけを行い、総和グラフを求める際に、第j番目の局所調整関数fj(L)のグラフについて、第j番目の周囲画素についての重みを考慮した集計を行うことにより、個別補正関数を設定することを特徴とする画像処理装置。
  26. 請求項25に記載の画像処理装置において、
    着目画素の輝度値に対応する値が最大値をとり、輝度値Lが前記着目画素の輝度値から離れるに従って単調減少する値を示す重み関数W(L)を定義し、第j番目の局所調整関数fj(L)のグラフについて、第j番目の周囲画素の輝度値Ljに対応する前記重み関数W(L)の値Wjを重みとして用いた集計を行うことにより、個別補正関数を設定することを特徴とする画像処理装置。
  27. 請求項12に記載の画像処理装置において、
    個別補正関数設定手段が、
    輝度値Lを横軸、調整値fを縦軸にとって、輝度値Lと調整値fとの関係を示すグラフによって表現される関数であって、輝度値Lの増加に応じて調整値fが単調増加もしくは単調減少するような局所調整関数f(L)を定義し、
    参照領域内の複数の周囲画素の輝度値を複数K段階の階級に分類し、それぞれの度数を計数することによりヒストグラムを作成し、
    輝度値Lを横軸、調整値fを縦軸にとった集計用座標系上に、前記ヒストグラムにおける第k番目の階級(但し、k=1,2,... ,K)に対応させて第k番目の局所調整関数fk(L)のグラフを配置し、配置した第k番目のグラフ上において調整値f=0となる点の横軸座標が、対応する第k番目の階級の代表輝度値に一致するように、個々のグラフをそれぞれ所定量だけ横軸方向に個別にスライドさせるようにし、
    合計K組のグラフについて、それぞれの度数に応じた重みづけを行って集計した総和として総和グラフを求め、この総和グラフを用いて個別補正関数を設定することを特徴とする画像処理装置。
  28. 請求項27に記載の画像処理装置において、
    第k番目の階級の代表輝度値として、当該階級に属する範囲内の輝度値として予め設定されている所定の固定輝度値を用いることを特徴とする画像処理装置。
  29. 請求項27に記載の画像処理装置において、
    第k番目の階級の代表輝度値として、当該階級に所属する周囲画素の平均輝度値を用いることを特徴とする画像処理装置。
  30. 請求項27〜29のいずれかに記載の画像処理装置において、
    個別補正関数設定手段が、着目画素の輝度値と第k番目の階級の代表輝度値との差に基づいて、当該差が小さい階級ほど大きな重みづけを行い、総和グラフを求める際に、第k番目の局所調整関数fk(L)のグラフについて、第k番目の階級についての重みを考慮した集計を行うことにより、個別補正関数を設定することを特徴とする画像処理装置。
  31. 請求項30に記載の画像処理装置において、
    着目画素の輝度値に対応する値が最大値をとり、輝度値Lが前記着目画素の輝度値から離れるに従って単調減少する値を示す重み関数W(L)を定義し、第k番目の局所調整関数fk(L)のグラフについて、第k番目の階級の代表輝度値Lrkに対応する前記重み関数W(L)の値Wkを重みとして用いた集計を行うことにより、個別補正関数を設定することを特徴とする画像処理装置。
  32. 請求項26または31に記載の画像処理装置において、
    着目画素の輝度値が所定の基準未満の場合に用いる重み関数W1(L)に比べて、着目画素の輝度値が所定の基準以上の場合に用いる重み関数W2(L)の方が、単調減少の割合が急峻となるようにすることを特徴とする画像処理装置。
  33. 請求項26または31に記載の画像処理装置において、
    重み関数W(L)として、着目画素の輝度値の座標にピーク点が位置するガウス分布関数を用いることを特徴とする画像処理装置。
  34. 請求項33に記載の画像処理装置において、
    標準偏差σについて最大値σmaxおよび最小値σminを定め、着目画素の輝度値が周囲画素の代表輝度値以上の場合には、標準偏差σ=σminとなるガウス分布関数を、着目画素の輝度値が周囲画素の代表輝度値未満の場合には、標準偏差σが、σmax ≧σ>σminの範囲をとり、かつ、着目画素の輝度値が大きいほど小さくなるように設定されたガウス分布関数を、それぞれ重み関数W(L)として用いることを特徴とする画像処理装置。
  35. 請求項24〜34のいずれかに記載の画像処理装置において、
    個別補正関数設定手段が、調整前画像を複数の分割領域に分けて認識し、個別補正関数を設定する際に、互いに異なる分割領域内の周囲画素については、それぞれ異なる局所調整関数f(L)を用いた集計を行うことを特徴とする画像処理装置。
  36. 請求項35に記載の画像処理装置において、
    個別補正関数設定手段が、調整前画像を、空間周波数が所定の基準以上となるテクスチャ領域と空間周波数が前記基準未満となるグラデーション領域とに分けて認識し、個別補正関数を設定する際に、テクスチャ領域用の局所調整関数ft(L)と、グラデーション領域用の局所調整関数fg(L)とを別個に設定し、前記テクスチャ領域に位置する周囲画素については、前記テクスチャ領域用の局所調整関数ft(L)を用い、前記グラデーション領域に位置する周囲画素については、前記グラデーション領域用の局所調整関数fg(L)を用いた集計を行うことを特徴とする画像処理装置。
  37. 請求項24〜36のいずれかに記載の画像処理装置において、
    個別補正関数設定手段が、総和グラフの縦軸を−1≦C≦+1なる条件を満たす範囲内に規格化し、横軸の0≦L≦Mなる条件を満たす部分を抽出したものを、個別補正関数として設定することを特徴とする画像処理装置。
  38. 請求項24〜37のいずれかに記載の画像処理装置において、
    個別補正関数設定手段が、局所調整関数f(L)として、調整値f=0に対応するグラフ上の点を回転中心点として、グラフを180°回転させたときに同一のグラフが得られるような点対称性をもった関数を設定することを特徴とする画像処理装置。
  39. 請求項24〜37のいずれかに記載の画像処理装置において、
    個別補正関数設定手段が、第j番目の局所調整関数fj(L)を、「fj(L)=(2/(1+exp(−μ・(L−Lj)/M)))−1」なるシグモイド関数、もしくは「fj(L)=−(2/(1+exp(−μ・(L−Lj)/M)))+1」なるシグモイド関数(但し、μは所定の勾配係数)を利用して定義することを特徴とする画像処理装置。
  40. 請求項24〜39のいずれかに記載の画像処理装置において、
    個別補正関数設定手段が、集計用座標系上に、N組の周囲画素に対応させたN組の局所調整関数のグラフf1(L)〜fN(L)に加えて、着目画素に対応する局所調整関数のグラフを配置し、合計(N+1)組のグラフを集計した総和として総和グラフを求め、この総和グラフを用いて個別補正関数を設定することを特徴とする画像処理装置。
  41. 請求項1〜40のいずれかに記載の画像処理装置において、
    輝度値変換手段が、個々の着目画素の輝度値変換に必要な部分についてのみ、ローカルトーンカーブを求める演算を行うことを特徴とする画像処理装置。
  42. 請求項1〜41のいずれかに記載の画像処理装置において、
    調整前画像格納手段が、横方向の画素数Sx、縦方向の画素数Syを有する矩形状の調整前画像を格納し、
    個別補正関数設定手段が、予め設定されている分割数nを用いて、Sx/nもしくはSy/nなる除算を行い、着目画素を中心に含み、前記除算の商に近い画素数に対応する長さを一辺とする正方形領域もしくは矩形領域を、当該着目画素についての参照領域として設定することを特徴とする画像処理装置。
  43. 請求項1〜42のいずれかに記載の画像処理装置としてコンピュータを機能させるプログラム。
  44. それぞれ所定の輝度値をもつ画素の配列からなる調整前画像について、輝度調整を行う輝度調整方法であって、
    コンピュータが、前記調整前画像を構成する個々の画素をそれぞれ着目画素として抽出する着目画素抽出段階と、
    コンピュータが、前記着目画素を含むその近傍の領域にそれぞれ参照領域を設定する参照領域設定段階と、
    コンピュータが、前記参照領域内において前記着目画素の周囲に位置する周囲画素の輝度値を参照して、各着目画素のそれぞれについて輝度値を変数とする個別補正関数を設定する個別補正関数設定段階と、
    コンピュータが、入力輝度値を出力輝度値に変換するための所定のグローバルトーンカーブに対して前記個別補正関数を用いた補正を行うことにより、個々の着目画素のそれぞれについてローカルトーンカーブを定義するローカルトーンカーブ定義段階と、
    コンピュータが、前記ローカルトーンカーブを用いて、個々の着目画素の輝度値を変換する輝度値変換段階と、
    コンピュータが、前記輝度値変換段階によって変換された輝度値をもつ画素の配列を調整後画像として出力する調整後画像出力段階と、
    を有することを特徴とする画像の輝度調整方法。
  45. 請求項44に記載の輝度調整方法において、
    個別補正関数設定段階で、
    輝度値Lを横軸、調整値fを縦軸にとって、輝度値Lと調整値fとの関係を示すグラフによって表現される関数であって、輝度値Lの増加に応じて調整値fが単調増加もしくは単調減少するような局所調整関数f(L)を定義し、輝度値Lを横軸、調整値fを縦軸にとった集計用座標系上に、参照領域内の第j番目の周囲画素(但し、j=1,2,... ,N、ここでNは参照領域内の周囲画素の総数)に対応させて第j番目の局所調整関数fj(L)のグラフを配置し、配置した第j番目のグラフ上において調整値f=0となる点の横軸座標が、対応する第j番目の周囲画素の輝度値Ljに一致するように、個々のグラフをそれぞれ所定量だけ横軸方向に個別にスライドさせる局所調整関数配置ステップと、
    合計N組の局所調整関数f1(L)〜fN(L)のグラフを集計した総和として総和グラフを求め、この総和グラフを用いて個別補正関数を設定する局所調整関数集計ステップと、
    を行うことを特徴とする画像の輝度調整方法。
  46. 請求項45に記載の輝度調整方法において、
    局所調整関数集計ステップで、着目画素の輝度値と第j番目の周囲画素の輝度値との差に基づいて、当該差が小さい周囲画素ほど大きな重みづけを行い、総和グラフを求める際に、第j番目の局所調整関数fj(L)のグラフについて、第j番目の周囲画素についての重みを考慮した集計を行うことにより、個別補正関数を設定することを特徴とする画像の輝度調整方法。
  47. 請求項44に記載の輝度調整方法において、
    個別補正関数設定段階で、
    輝度値Lを横軸、調整値fを縦軸にとって、輝度値Lと調整値fとの関係を示すグラフによって表現される関数であって、輝度値Lの増加に応じて調整値fが単調増加もしくは単調減少するような局所調整関数f(L)を定義し、参照領域内の複数の周囲画素の輝度値を複数K段階の階級に分類し、それぞれの度数を計数することによりヒストグラムを作成し、輝度値Lを横軸、調整値fを縦軸にとった集計用座標系上に、前記ヒストグラムにおける第k番目の階級(但し、k=1,2,... ,K)に対応させて第k番目の局所調整関数fk(L)のグラフを配置し、配置した第k番目のグラフ上において調整値f=0となる点の横軸座標が、対応する第k番目の階級の代表輝度値に一致するように、個々のグラフをそれぞれ所定量だけ横軸方向に個別にスライドさせる局所調整関数配置ステップと、
    合計K組のグラフについて、それぞれの度数に応じた重みづけを行って集計した総和として総和グラフを求め、この総和グラフを用いて個別補正関数を設定する局所調整関数集計ステップと、
    を行うことを特徴とする画像の輝度調整方法。
  48. 請求項47に記載の輝度調整方法において、
    局所調整関数集計ステップで、着目画素の輝度値と第k番目の階級の代表輝度値との差に基づいて、当該差が小さい階級ほど大きな重みづけを行い、総和グラフを求める際に、第k番目の局所調整関数fk(L)のグラフについて、第k番目の階級についての重みを考慮した集計を行うことにより、個別補正関数を設定することを特徴とする画像の輝度調整方法。
  49. 請求項45〜48のいずれかに記載の輝度調整方法において、
    局所調整関数配置ステップで、調整前画像を複数の分割領域に分けて認識し、個別補正関数を設定する際に、互いに異なる分割領域内の周囲画素については、それぞれ異なる局所調整関数f(L)を配置することを特徴とする画像の輝度調整方法。
  50. 請求項49に記載の輝度調整方法において、
    局所調整関数配置ステップで、調整前画像を、空間周波数が所定の基準以上となるテクスチャ領域と空間周波数が前記基準未満となるグラデーション領域とに分けて認識し、テクスチャ領域用の局所調整関数ft(L)と、グラデーション領域用の局所調整関数fg(L)とを別個に設定し、前記テクスチャ領域に位置する周囲画素については前記テクスチャ領域用の局所調整関数ft(L)を配置し、前記グラデーション領域に位置する周囲画素については、前記グラデーション領域用の局所調整関数fg(L)を配置することを特徴とする画像の輝度調整方法。
  51. 請求項44〜50のいずれかに記載の輝度調整方法を利用して、与えられたカラー画像について輝度調整を行うカラー画像処理方法であって、
    コンピュータが、三原色R,G,Bの各画素値をもつ画素の配列からなる調整前カラー画像を入力する調整前カラー画像入力段階と、
    コンピュータが、前記調整前カラー画像を構成する個々の画素のもつ三原色R,G,Bの画素値を、輝度成分を示す画素値および色差成分を示す画素値に変換することにより、輝度値をもつ画素の配列からなる調整前画像を生成する調整前画像生成段階と、
    コンピュータが、オペレータの設定操作に基づいて調整用パラメータを設定する調整用パラメータ設定段階と、
    コンピュータが、前記調整用パラメータに基づいて、前記輝度調整方法を実行する輝度調整処理段階と、
    コンピュータが、前記輝度調整処理段階によって得られた調整後画像を構成する個々の画素のもつ輝度値および前記色差成分を示す画素値を、三原色R,G,Bの画素値に変換することにより、三原色R,G,Bの各画素値をもつ画素の配列からなる調整後カラー画像を生成する調整後カラー画像生成段階と、
    を有することを特徴とするカラー画像処理方法。
  52. 請求項51に記載のカラー画像処理方法において、
    調整用パラメータ設定段階で、入力輝度値Linと出力輝度値Lout との関係を示すグラフとして、グローバルトーンカーブ、第1制限カーブ、第2制限カーブの3本のトーンカーブを設定し、
    輝度調整処理段階で、前記グローバルトーンカーブに対して、前記第1制限カーブおよび前記第2制限カーブに基づく制限下での補正を行うことによりローカルトーンカーブの定義を行うことを特徴とするカラー画像処理方法。
  53. 請求項51に記載のカラー画像処理方法において、
    調整用パラメータ設定段階で、局所調整関数f(L)を定義するためのパラメータを設定し、
    輝度調整処理段階で、請求項45〜48のいずれかに記載の輝度調整方法を実行することを特徴とするカラー画像処理方法。
  54. 請求項51に記載のカラー画像処理方法において、
    調整用パラメータ設定段階で、重みづけを定義するためのパラメータを設定し、
    輝度調整処理段階で、請求項46または48に記載の輝度調整方法を実行するようにし、局所調整関数集計ステップで、前記重みづけを定義するためのパラメータによって定義された重みを考慮した集計を行うことにより、個別補正関数を設定することを特徴とするカラー画像処理方法。
  55. 請求項44〜54のいずれかに記載の画像の輝度調整方法もしくはカラー画像処理方法をコンピュータに実行させるプログラム。
JP2014122639A 2014-06-13 2014-06-13 画像処理装置および輝度調整方法 Active JP6326997B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014122639A JP6326997B2 (ja) 2014-06-13 2014-06-13 画像処理装置および輝度調整方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014122639A JP6326997B2 (ja) 2014-06-13 2014-06-13 画像処理装置および輝度調整方法

Publications (2)

Publication Number Publication Date
JP2016004313A true JP2016004313A (ja) 2016-01-12
JP6326997B2 JP6326997B2 (ja) 2018-05-23

Family

ID=55223579

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014122639A Active JP6326997B2 (ja) 2014-06-13 2014-06-13 画像処理装置および輝度調整方法

Country Status (1)

Country Link
JP (1) JP6326997B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017174296A (ja) * 2016-03-25 2017-09-28 隆夫 西谷 画像処理装置および画像処理方法
WO2019193807A1 (ja) * 2018-04-06 2019-10-10 ソニー株式会社 画像処理装置、画像処理方法及び記録媒体
JP2020133329A (ja) * 2019-02-22 2020-08-31 株式会社ミツバ 情報表示体、及び、車両の情報取得システム
WO2021020627A1 (ko) * 2019-07-31 2021-02-04 엘지전자 주식회사 디스플레이 장치 및 그의 동작 방법
CN113808004A (zh) * 2020-06-11 2021-12-17 丰田自动车株式会社 图像变换装置、图像变换方法以及图像变换用计算机程序
WO2023068655A1 (en) * 2021-10-22 2023-04-27 Samsung Electronics Co., Ltd. System and method for learning tone curves for local image enhancement
CN118096629A (zh) * 2024-04-23 2024-05-28 四川新视创伟超高清科技有限公司 大场景图像优化方法及其优化系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009071768A (ja) * 2007-09-18 2009-04-02 Olympus Corp 画像信号処理装置および撮像装置
JP2010034848A (ja) * 2008-07-29 2010-02-12 Nikon Corp 画像処理プログラム、画像処理装置、および画像処理方法
WO2012017946A1 (ja) * 2010-08-04 2012-02-09 日本電気株式会社 画像処理方法、画像処理装置及び画像処理プログラム
JP2012032641A (ja) * 2010-07-30 2012-02-16 Toshiba Corp 画像表示装置
US20120093433A1 (en) * 2010-10-19 2012-04-19 Shalini Gupta Dynamic Adjustment of Noise Filter Strengths for use with Dynamic Range Enhancement of Images

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009071768A (ja) * 2007-09-18 2009-04-02 Olympus Corp 画像信号処理装置および撮像装置
JP2010034848A (ja) * 2008-07-29 2010-02-12 Nikon Corp 画像処理プログラム、画像処理装置、および画像処理方法
JP2012032641A (ja) * 2010-07-30 2012-02-16 Toshiba Corp 画像表示装置
WO2012017946A1 (ja) * 2010-08-04 2012-02-09 日本電気株式会社 画像処理方法、画像処理装置及び画像処理プログラム
US20120093433A1 (en) * 2010-10-19 2012-04-19 Shalini Gupta Dynamic Adjustment of Noise Filter Strengths for use with Dynamic Range Enhancement of Images

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017174296A (ja) * 2016-03-25 2017-09-28 隆夫 西谷 画像処理装置および画像処理方法
WO2019193807A1 (ja) * 2018-04-06 2019-10-10 ソニー株式会社 画像処理装置、画像処理方法及び記録媒体
JP7188440B2 (ja) 2018-04-06 2022-12-13 ソニーグループ株式会社 画像処理装置、画像処理方法及び記録媒体
JPWO2019193807A1 (ja) * 2018-04-06 2021-04-30 ソニー株式会社 画像処理装置、画像処理方法及び記録媒体
US11354790B2 (en) 2018-04-06 2022-06-07 Sony Corporation Image processing apparatus, image processing method, and recording medium
JP2020133329A (ja) * 2019-02-22 2020-08-31 株式会社ミツバ 情報表示体、及び、車両の情報取得システム
KR20210158384A (ko) * 2019-07-31 2021-12-30 엘지전자 주식회사 디스플레이 장치 및 그의 동작 방법
WO2021020627A1 (ko) * 2019-07-31 2021-02-04 엘지전자 주식회사 디스플레이 장치 및 그의 동작 방법
KR102584198B1 (ko) * 2019-07-31 2023-10-04 엘지전자 주식회사 디스플레이 장치 및 그의 동작 방법
US12008741B2 (en) 2019-07-31 2024-06-11 Lg Electronics Inc. Display device and operation method thereof
CN113808004A (zh) * 2020-06-11 2021-12-17 丰田自动车株式会社 图像变换装置、图像变换方法以及图像变换用计算机程序
CN113808004B (zh) * 2020-06-11 2023-09-29 丰田自动车株式会社 图像变换装置、图像变换方法以及图像变换用计算机程序
WO2023068655A1 (en) * 2021-10-22 2023-04-27 Samsung Electronics Co., Ltd. System and method for learning tone curves for local image enhancement
CN118096629A (zh) * 2024-04-23 2024-05-28 四川新视创伟超高清科技有限公司 大场景图像优化方法及其优化系统

Also Published As

Publication number Publication date
JP6326997B2 (ja) 2018-05-23

Similar Documents

Publication Publication Date Title
JP6326997B2 (ja) 画像処理装置および輝度調整方法
US9934562B2 (en) Method for dynamic range editing
CN105122302B (zh) 无重影高动态范围图像的产生
US6148113A (en) System for stimulating the depth of field of an image in two dimensional space and method of operation
US8644638B2 (en) Automatic localized adjustment of image shadows and highlights
US20180350043A1 (en) Shallow Depth Of Field Rendering
CN106447638A (zh) 一种美颜处理方法及装置
JP2001126075A (ja) 画像処理方法および装置並びに記録媒体
JP2008160474A (ja) 画像処理装置およびその方法
CN107369133A (zh) 一种人脸图像美化方法和装置
JP2000134486A (ja) 画像処理装置及び画像処理方法及び記憶媒体
CN107408401B (zh) 用于图像的简化调整的用户滑块
US9299149B2 (en) Image enhancement using modulation strength map and modulation kernel
Meylan et al. Color image enhancement using a Retinex-based adaptive filter
US7664322B1 (en) Feature-based color adjustment
US20200364913A1 (en) User guided segmentation network
Akai et al. A single backlit image enhancement method for improvement of visibility of dark part
Han et al. Locally adaptive contrast enhancement using convolutional neural network
JP2020135653A (ja) 映像補正装置及びそのプログラム
JP2009050035A (ja) 画像処理方法、画像処理システムおよび画像処理プログラム
CN111047517B (zh) 肤色调节方法及装置、可读存储介质
KR102606373B1 (ko) 영상에서 검출되는 얼굴의 랜드마크를 조절하기 위한 방법 및 장치
JP2005094452A (ja) 画像処理方法、画像処理システムおよび画像処理プログラム
Supraja et al. LIME: Low-Light Image Enhancement via Illumination Map Estimation
CN111047520B (zh) 图像处理装置、图像处理方法以及记录介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170425

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: 20180320

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180402

R150 Certificate of patent or registration of utility model

Ref document number: 6326997

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150