(57)【要約】【課題】過補正を防止して、階調補正の前後で画像の印象が大きく変わり過ぎない範囲内で適切な階調補正を行う。【解決手段】第一の補正量生成部１５は、暗部領域の視認性向上に着目した補正量を生成し、第二の補正量生成部１６は、ハイライト領域の階調つぶれ抑制に着目した補正量を生成し、第三の補正量生成部１７は、補正前後で画像の印象を大きく変えないことに着目した補正量を生成し、補正量決定部１８は最終的な補正量Δを決定する。補正トーンカーブ生成部１９は最終的な補正量Δに応じて補正トーンカーブを生成し、階調補正部２０は、生成した補正トーンカーブを基に、入力画像データの各画素に対して階調補正を施す。【選択図】図１
2010062920.tif 000002
【特許請求の範囲】
【請求項１】
画像中の被写体領域を判定する被写体領域判定手段と、前記被写体領域における代表色を抽出する代表色抽出手段と、前記代表色における補正量上限を設定する補正量上限設定手段と、前記代表色における階調補正前と階調補正後の色差が、前記補正量上限を超えない範囲内で、階調補正量を決定する補正量決定手段と、前記階調補正量に応じて、前記画像の階調を補正する階調補正手段を備えることを特徴とする画像処理装置。
【請求項２】
前記画像中のハイライト領域を判定するハイライト領域判定手段と、前記ハイライト領域の色分布を判定する色分布判定手段を有し、前記ハイライト領域の色分布に応じて、前記補正量上限設定手段で設定する補正量上限を変更することを特徴とする請求項１記載の画像処理装置。
【請求項３】
前記色分布判定手段は、無彩色の分布状態と青色の分布状態の判定を含み、前記ハイライト領域に無彩色が多く分布すると判定された場合は、青色が多く分布する場合と比較して、補正量上限を小さくすることを特徴とする請求項２記載の画像処理装置。
【請求項４】
前記色分布判定手段は、更に赤色の分布状態の判定を含み、前記ハイライト領域に赤色が多く分布すると判定された場合は、青色の画素が多く分布する場合と比較して、補正量上限を小さくすることを特徴とする請求項２記載の画像処理装置。
【請求項５】
前記色分布判定手段は、輝度の分布状態の判定を含み、前記ハイライト領域に低輝度が多く分布すると判定された場合は、高輝度が多く分布する場合と比較して、補正量上限を小さくすることを特徴とする請求項２記載の画像処理装置。
【請求項６】
画像中の被写体領域を判定する被写体領域判定工程と、前記被写体領域における代表色を抽出する代表色抽出工程と、前記代表色における補正量上限を設定する補正量上限設定工程と、前記代表色における階調補正前と階調補正後の色差が、前記補正量上限を超えない範囲内で、階調補正量を決定する補正量決定工程と、前記階調補正量に応じて、前記画像の階調を補正する階調補正工程を備えることを特徴とする画像処理方法。
【請求項７】
請求項６記載の画像処理方法をコンピュータに実現させるためのプログラム。
【請求項８】
請求項６記載の画像処理方法をコンピュータに実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルカメラやフィルムスキャナ等で撮影された画像の明るさを自動補正する画像処理装置、画像処理方法、プログラムおよび記録媒体に関し、ＭＦＰ、プリンタ、デジタルカメラの付属ソフトなどに好適な技術に関する。
【背景技術】
【０００２】
デジタルカメラにより逆光状態で撮影された画像や夜間撮影された画像は、露出不足のため被写体が暗く写され、また物陰に該当する部分を含んでいる場合には、画像の一部分が暗く写されてしまう。そのような画像に対しては、自動で明るさを補正する技術が種々研究され、既に実用化されている。
【０００３】
例えば、階調補正により画像を明るく補正する際には、階調つぶれや階調飛びの発生、ノイズの増幅等の副作用が目立たない範囲内で補正することが求められる。特許文献１は、階調つぶれや色相ずれを起こすことなく適切に階調を補正する技術であり、また、特許文献２は、階調とびと階調つぶれの度合いを考慮して補正量を決定する技術である。
【０００４】
【特許文献１】特開２００２−３６９００４号公報
【特許文献２】特開平１０−１２６６１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記したような副作用が目立たない範囲内で階調を補正しても、過補正により補正の前後で画像の印象が大きく変化し、好ましくないケースがある。例えば、曇り空を背景にして緑の芝生を撮影した画像では、芝生部分をあたかも晴天の下で撮影されたかのような明るさまで補正してしまうことがあるが、このような補正について本発明者が実施した主観評価によると、殆どのユーザーが望まないことであり、適正な補正とは評価されなかった。別の例として、夕焼け空を背景に建物を（恐らく意図的に）逆光で撮影したような画像に対して、建物の細部が見えるまで明るく補正してしまうことも、ユーザーにとっては余計なことであり、これも適正な補正との評価は受けなかった。
【０００６】
本発明は上記した課題に鑑みてなされたもので、
本発明の目的は、過補正を防止して、階調補正の前後で画像の印象が大きく変わり過ぎない範囲内で適切な階調補正を行う画像処理装置、画像処理方法、プログラムおよび記録媒体を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、画像中の被写体領域を判定する被写体領域判定手段と、前記被写体領域における代表色を抽出する代表色抽出手段と、前記代表色における補正量上限を設定する補正量上限設定手段と、前記代表色における階調補正前と階調補正後の色差が、前記補正量上限を超えない範囲内で、階調補正量を決定する補正量決定手段と、前記階調補正量に応じて、前記画像の階調を補正する階調補正手段を備えることを最も主要な特徴とする。
【発明の効果】
【０００８】
請求項１、６〜８：画像中の被写体領域を判定し、被写体領域における代表色を抽出し、代表色における補正量上限を設定し、代表色における階調補正前と階調補正後の色差が、補正量上限を超えない範囲内で、階調補正量を決定して階調補正を行うため、過補正を防止して、階調補正の前後で印象が大きく変わり過ぎない範囲内で適切な階調補正を行うことができる。
【０００９】
請求項２〜５：画像中のハイライト領域を判定し、ハイライト領域の色分布を判定し、ハイライト領域の色分布に応じて、補正量上限設定手段で設定する補正量上限を変更して、代表色における階調補正前と階調補正後の色差が、補正量上限を超えない範囲内で、階調補正量を決定して階調補正を行うため、空の色や明るさに応じて特に印象を変えたくないシーンの画像でより効果的に過補正を防止して、階調補正の前後で印象が大きく変わり過ぎない範囲内で適切な階調補正を行うことができる。
【発明を実施するための最良の形態】
【００１０】
以下、発明の実施の形態について図面により詳細に説明する。
【００１１】
実施例１
図１は、本発明の実施例１の構成を示す。輝度変換部１０は、ビットマップ形式の入力画像データの各画素のＲＧＢ値を、次式で輝度Ｙに変換する。
Ｙ＝０．３０×Ｒ＋０．５９×Ｇ＋０．１１×Ｂ
ヒストグラム作成部１１は、輝度Ｙのヒストグラムを作成する。ＲＧＢが０〜２５５の各８ｂｉｔの値を持つ場合で説明すると、Ｙも０〜２５５の値を持つことになる。
【００１２】
領域抽出部１２は、作成したヒストグラムに基づき、画像内における被写体領域、暗部領域、ハイライト領域を判定するための閾値ｔｈ１，ｔｈ２を求める。図２（ａ）は、領域抽出部１２の構成を示す。ヒストグラム形状から適応的に背景と対象物を分離する二値化閾値を求める判別分析法を２回使って求める。判別分析法を簡単に説明すると、ヒストグラムの０〜二値化閾値までを一つのクラス、二値化閾値〜２５５までを一つのクラスとして、（クラス間分散／クラス内分散）が最大になる閾値を求めることで、背景と対象物がよく分離され（即ちクラス間分散が大きい）、かつ、背景内および対象物内がよくまとまっている（即ちクラス内分散が小さい）二値化閾値を求める方法である。
【００１３】
判別分析法による閾値算出部１２０では、ヒストグラム全体である、図２（ｂ）の対象範囲１に対して判別分析法を適用して二値化閾値ｔｈ１を求める。求めた閾値ｔｈ１は、被写体領域とハイライト領域を分離する閾値に該当する。判別分析法による閾値算出部１２１では、ヒストグラムの被写体領域である、図２（ｂ）の対象範囲２に対して判別分析法を適用して二値化閾値ｔｈ２を求める。求めた閾値ｔｈ２は、被写体領域を暗部領域とそれ以外に分離する閾値に該当する。ここで言う暗部とは、薄暗いレベルではなく、画像を標準的な光源やモニタ設定の条件下で目視観察して暗部に何が写っているかはっきり視認できないくらい暗いレベルの領域を意識したものである。
【００１４】
補正トーンカーブ生成部１９は、補正量決定部１８が決定した最終的な補正量Δに応じて補正トーンカーブを生成する。入力画像データや抽出した色情報等に基づき、第一の補正量生成部１５は、暗部領域の視認性向上に着目した補正量を生成し、第二の補正量生成部１６は、ハイライト領域の階調つぶれ抑制に着目した補正量を生成し、第三の補正量生成部１７は、補正前後で画像の印象を大きく変えないことに着目した補正量を生成し、補正量決定部１８は、最終的な補正量Δを決定する。
【００１５】
図３は、最終的に作成するトーンカーブ形状を示したものである。補正トーンカーブは輝度Ｙの変換テーブルとする。制御点は、始点０と終点２５５以外では、入力Ｙ＝ｔｈ１，ｔｈ２，Ｙａの３点であり、各区間内では直線形状とする。制御点ｔｈ１とｔｈ２は前述の領域抽出部１２から出力される閾値であり、制御点Ｙａは後述の第一の補正量生成部１５から出力される暗部領域内の制御点である。補正量Δは、制御点Ｙａにおける入力Ｙに対する出力Ｙの増加分を表したものである。暗部領域における０≦入力Ｙ＜Ｙａの傾きα１は、ＹａとΔにより決まる。制約条件として、暗部領域以外の被写体領域に該当するｔｈ２≦入力Ｙ＜ｔｈ１で、傾きα３を１にして階調性を保存し、Ｙａ≦入力Ｙ＜ｔｈ２は区間境界で傾きが急激に変化することを防止するため傾きα２を傾きα１とα３の中間とする。これにより、３つの制御点と補正量Δが決まれば、補正トーンカーブ全体が決まる。また、３つの制御点が決まっていれば、もう一つの情報は補正量Δでなくα４であっても、あるいは補正トーンカーブが通るどこか一点の入力と出力のデータセットであっても、上記制約条件から補正トーンカーブ全体を決定することが可能である。
【００１６】
階調補正部２０は、生成した補正トーンカーブを基に、入力画像データの各画素に対して階調補正を施す。ＲＧＢから輝度変換により輝度Ｙを算出し、算出した輝度を入力Ｙとして補正トーンカーブを参照して出力Ｙを求め、ＲＧＢの各信号に対して（出力Ｙ／入力Ｙ）を乗算したものを階調補正後のＲＧＢとする。
【００１７】
領域面積率計算部１３は、第一の補正量生成部１５で使用する暗部面積率Ｐｄと、第二の補正量生成部１６で使用するハイライト面積率Ｐｈを求めておく。
【００１８】
図４は、領域面積率計算部１３の構成を示す。図２（ｂ）のヒストグラムと閾値ｔｈ１から、ハイライト／被写体画素数計数部１３０は、被写体領域の画素数Ｎａとハイライト領域の画素数Ｎｂを計数する。被写体領域の画素数はヒストグラムにおける０≦Ｙ＜ｔｈ１の画素数を全て足し合わせることで求められ、ハイライト領域の画素数はヒストグラムにおけるｔｈ１≦Ｙ≦２５５の画素数を全て足し合わせることで求められる。同様に、ヒストグラムと閾値ｔｈ２から、暗部画素数計数部１３２は、暗部領域の画素数Ｎｃを計数する。暗部領域の画素数はヒストグラムにおける０≦Ｙ＜ｔｈ２の画素数を全て足し合わせることにより求められる。
【００１９】
ハイライト面積率計算部１３１では、画像内におけるハイライト領域の面積率Ｐｈを次式で求める。
Ｐｈ＝Ｎｂ／（Ｎａ＋Ｎｂ）
暗部面積率計算部１３３では、被写体領域における暗部領域の面積率Ｐｄを次式で求める。
Ｐｄ＝Ｎｃ／Ｎａ
画像サンプリング部３０は、画像が所定サイズよりも大きい場合には、画像を平均値でサンプリングする。第一の補正量生成部１５、第二の補正量生成部１６および被写体代表色抽出部１４では、使用する画像データの画素数が大きすぎると処理に時間がかかり、また性能面でも解像度が高すぎるとノイズの影響から正確に補正量が求められないことがあるので、画像が所定サイズよりも大きい場合には、画像を平均値でサンプリングする。例えば、長辺が６４０画素よりも大きい場合に、サンプリングを実施し、長辺の画素数が６４０の３倍の画像が入力された場合には、３×３画素毎に平均値を求めてサンプリング画像の画素値とする。
【００２０】
図５は、第一の補正量生成部１５の構成を示す。輝度変換部１５０は、サンプリング画像のＲＧＢ値を輝度値に変換し、暗部領域判定部１５１は、輝度値が閾値ｔｈ２未満であれば暗部領域の画素であると判定する。色変換部１５２はサンプリング画像データをＬａｂに変換し、クラスタリング部１５３は、暗部領域判定結果と、色変換１５２でＬａｂに変換したサンプリング画像データを入力として、クラスタリングを行う。
【００２１】
図６は、クラスタリング部１５３の構成を示す。予備クラスタリング部１５６は、色差に応じて暗部領域判定結果を、１つ以上のクラスタに分割した後、クラスタ統合部１５７では、画素数の少ないクラスタを他のクラスタに統合する。
【００２２】
図７は、予備クラスタリング部１５６の処理フローチャートである。注目画素のＬａｂを順次入力し（ステップ１５６１）、クラスタリングを行う。画像先端からスタートして初めて暗部領域の画素が入力された時点では、クラスタ数Ｎが初期化されてＮ＝０にセットされた状態であるため（ステップ１５６０）、色差による条件分岐（ステップ１５６５）で“Ｎｏ”の方に進んでクラスタ１を新規クラスタとして追加し、クラスタ数をＮ＝１に設定、クラスタ１の画素数をｎ（１）＝０に設定、クラスタ１の平均Ｌａｂに注目画素のＬａｂ値が設定される（ステップ１５６８，１５６９）。
【００２３】
その後は、順次入力される注目画素のＬａｂ値に対して、暗部領域の画素であれば（ステップ１５７０）、各クラスタの平均Ｌａｂとの色差を求め（ステップ１５６３）、その中で色差最小のクラスタ番号ｊと色差ｄＥ＿ｍｉｎの組を抽出する（ステップ１５６４）。色差による条件分岐（ステップ１５６５）で色差ｄＥ＿ｍｉｎが予め設定された閾値ｄＥ＿ｔｈ以下であれば“Ｙｅｓ”の方に進んでクラスタｊに注目画素を追加し、平均Ｌａｂを再計算する（ステップ１５６６，１５６７）。クラスタｊの画素数ｎ（ｊ）を＋１して、Ｌ＊ａ＊ｂ＊の平均値を以下の式に従い再計算する。
（再計算後の平均Ｌ）＝（（再計算前の平均Ｌ）×（ｎ（ｊ）−１）＋（注目画素のＬ））／ｎ（ｊ）
（再計算後の平均ａ）＝（（再計算前の平均ａ）×（ｎ（ｊ）−１）＋（注目画素のａ））／ｎ（ｊ）
（再計算後の平均ｂ）＝（（再計算前の平均ｂ）×（ｎ（ｊ）−１）＋（注目画素のｂ））／ｎ（ｊ）
色差による条件分岐（ステップ１５６５）で色差ｄＥ＿ｍｉｎが予め設定された閾値ｄＥ＿ｔｈより大きければ“Ｎｏ”の方に進んで新規クラスタを追加し、クラスタ数Ｎをカウントアップして新規クラスタの画素数を０に設定し、平均Ｌａｂに注目画素のＬａｂを設定する（ステップ１５６８，１５６９）。新規クラスタを追加するか否かの境界色差を表しているのがｄＥ＿ｔｈであり、暗部の何が写っているかはっきり視認できない領域を対象としていることを考慮してｄＥ＿ｔｈ＝３くらいの小さい値に設定しておくのが適当である。
【００２４】
画像後端まで到達して入力するＬａｂデータが無くなった時点で、クラスタリング終了となる。
【００２５】
予備クラスタリング部１５６で分割されたクラスタのうち、ある程度画素数が少ないクラスタはノイズ成分に反応して発生したクラスタであることが多く、いずれにしても被写体を有意な塊単位で抽出する上において不要または重要性が低いクラスタである。
【００２６】
図８は、クラスタ統合部１５７の処理フローチャートである。各クラスタを順次見ていき、クラスタの画素数が所定閾値ｎ＿ｔｈより小さいか否かを判定し（ステップ１５７５）、小さい場合は注目クラスタｉの平均Ｌａｂと他のクラスタの平均Ｌａｂとの色差を求め（ステップ１５７６）、他のクラスタ全てに対して求めた色差のうち最小のものに該当するクラスタ番号ｊを抽出し（ステップ１５７７）、クラスタｉをクラスタｊに統合する（ステップ１５７８）。クラスタｊの画素数にクラスタｉの画素数を加算し、クラスタｉの画素数を０に変更する。統合するクラスタの画素数境界である閾値ｎ＿ｔｈは、暗部領域の画素数に対して例えば１５％（１０％〜２０％程度に設定するのが適当）の画素数に相当する値を画像毎に求めて、それを閾値とする。
【００２７】
図５に戻り、判断部１５４では、クラスタ数に応じて階調補正を行うか否か判断する。クラスタ数が１であれば階調補正を行わないと判断し、クラスタ数が１以外であれば階調補正を行うと判断する。これにより、夜空を背景に花火を撮影した画像のように暗部に該当する夜空に何もオブジェクトが潜んでおらず、明るく補正する必要がない画像が入力された場合に、階調補正を行わないと判断して処理することができる。
【００２８】
図９は、第一の補正量決定部１５５の構成を示す。図５の判断部１５４が階調補正を行わないと判断した場合は、選択部１５９はΔ１ｂ＝０を選択して、Δ１＝Δ１ａを補正量として出力することにより、実質的に階調補正を無効にする。判断部１５４が階調補正を行うと判断した場合は、補正量算出部１５８が算出した補正量Δ１ｂを選択して、Δ１＝Δ１ｂを補正量として出力する。
【００２９】
図１０は、補正量算出部１５８の構成を示す。第一のクラスタ抽出部１５８０は、各クラスタの画素数を比較して画素数が最も多いクラスタとその次に多いクラスタを抽出する。２つのクラスタのうち明度が高い方をクラスタＡ、明度が低い方をクラスタＢと表記する。色差計算部１５８２では、クラスタＡとクラスタＢの補正前の平均Ｌａｂ同士の色差ｄＥ１を計算しておく。補正量生成部１５９２は補正量Δ１ｂを設定して、仮補正トーンカーブ生成部１５９１は補正量に応じた仮補正トーンカーブを作成する。階調補正部１５８５は仮補正トーンカーブを用いた階調補正を、クラスタＡの平均Ｌａｂを色変換部１７８３でＲＧＢに変換したＲＧＢ＿ａと、クラスタＢの平均Ｌａｂを同じくＲＧＢに変換したＲＧＢ＿ｂに対して行い、補正後の値を色変換部１５８６で再度Ｌａｂ信号に変換する。色差計算部１５８７では、クラスタＡとクラスタＢの補正後の平均Ｌａｂ同士の色差ｄＥ２を計算する。色差比計算部１５８８では、補正前の色差ｄＥ１と補正後の色差ｄＥ２の比率を計算して求める。
【００３０】
第二のクラスタ抽出部１５８１では、最も暗いクラスタを抽出する。最も暗いクラスタをクラスタＣと表記する。ちなみに、画像によってはクラスタＢとクラスタＣが同じクラスタを指すこともあるが、それでも構わない。階調補正部１５８５では、仮補正トーンカーブを用いた階調補正を、クラスタＣの平均Ｌａｂを色変換部１５８４でＲＧＢに変換したＲＧＢ＿ｃに対して行い、補正後の値を色変換部１５８６で再度Ｌａｂ信号に変換する。
【００３１】
暗部補正量判定部１５８９では、以下の終了条件１または終了条件２を満たせば、その時点での補正量Δ１ｂを出力して終了する。どちらの終了条件も満たさなければ、補正量生成部１５９２では、変更した補正量を発生させ、終了条件を満足するまで処理を繰り返す。
［終了条件１］クラスタＡとクラスタＢの補正前後の色差比が、色差比目標値設定部１５８３に設定された目標値Ｘｄ以上である。
［終了条件２］クラスタＣの補正後の平均Ｌが、最暗クラスタの明度上限設定部１５９３に設定された上限値Ｌｃ＿ｔｈ以上である。
【００３２】
画素数が最も大きいクラスタと次に大きいクラスタの色差が補正前のＸ倍になるように補正するということは、他の面積の狭いクラスタ同士の色差比に着目して補正するよりも視認性が向上したことが観察者に認識されやすく、非常に効果的である。また、最も暗いクラスタが明るく補正されすぎないように補正量を制限することは、暗部ノイズが目立つ副作用を防止するのに有効である。
【００３３】
図１１は、最暗クラスタの補正量制限を説明する図である。（ａ）は暗部を示し、（ｂ）は暗部を拡大した図である。ＹｃとＹｃ＿ｔｈは、最暗クラスタの補正量制限をわかりやすく表現したものであり、ＹｃがクラスタＣの補正後の輝度を表しており、Ｙｃ＿ｔｈは上限値を輝度で表している。
【００３４】
図１０の補正量生成部１５９２は、Δ１ｂ＝０を初期値として、補正量生成の要求がある度に、Δ１ｂに＋１したものを次の補正量として発生させる。仮補正トーンカーブ生成部１５９１では、ＲＧＢ＿ａを輝度変換部１５９０で輝度変換して求めた輝度Ｙａを制御点として、図１１のような補正トーンカーブを作成する。制御点ＹａはクラスタＡ（面積が大きい２つのクラスタのうち明るい方）の輝度に該当する。制御点Ｙａにおける出力がＹａ＋Δ１ｂになるように補正トーンカーブを作成し、暗部領域以外は第一の補正量生成部１５で使用されず、どのように設定してもよいので、図１１のように、Ｙａ≦入力Ｙ＜２５５は直線で結んでおけば良い。
【００３５】
色差比目標値設定部１５８３では、暗部面積率Ｐｄに応じて色差比の目標値Ｘｄ＝３．５×Ｐｄを算出する。算出式は数十枚のサンプル画像を用意してどのくらいに設定すれば、ほぼ全ての画像（少なくとも用意したサンプルの８割）で適正な明るさに補正されるかを主観評価結果から導出したものである。被写体における暗部領域の占める割合が大きいほど暗部の視認性向上を重視した方が高評価を得る傾向があり、暗部領域の占める割合が小さいほど暗部以外の被写体画質を重視した方が高評価が得られ、暗部の視認性向上に対する要求レベルが下がる傾向があった。
【００３６】
最暗クラスタの明度上限設定部１５９３では、Ｌｃ＿ｔｈが１５くらいの値（１０〜１８の間）に設定されるのが適当である。これは予め決めておいた固定値でよい。
【００３７】
図１２は、第二の補正量生成部１６の構成を示す。第二の補正量生成部では、補正トーンカーブのハイライト領域における傾きα４’を補正量として求め、出力する。
【００３８】
輝度変換部１６０４は、サンプリング画像のＲＧＢ値を輝度値に変換し、ハイライト対象領域判定部１６０５は、輝度値Ｙがｔｈ１≦Ｙ＜２５５であればハイライト対象領域の画素であると判定する。ここではＹ＝２５５の白画素をハイライト領域から除外した領域を対象領域とする。
【００３９】
傾きα４’下限設定部１６００は、ハイライト面積率Ｐｈに応じてα４’の下限値Ｚ＝１／（−１．４×Ｐｈ＋２．４）を算出し、補正量生成部１６０１は、補正量の初期値としてＺを出力する。この算出式も主観評価結果から導出したものであり、画像内におけるハイライト対象領域の占める割合が大きいほどハイライトの階調つぶれ（白に飛んでしまうことも含む）が評価を下げる要因となる傾向があり、ハイライト対象領域の占める割合が小さいほどハイライトの階調つぶれよりも被写体画質が優先される傾向があった。補正量生成部１６０１では、以降要求がある度にα４’に＋０．０３したものを次の補正量として発生させる。
【００４０】
仮補正トーンカーブ生成部１６０２では、ｔｈ１を制御点として、図１３のような補正トーンカーブを作成する。ハイライト領域であるｔｈ１≦入力Ｙ≦２５５で、傾きがα４’になるように補正トーンカーブを作成し、ハイライト領域以外は第二の補正量生成部１６で使用されず、どのように設定してもよいので、図１３のように０≦入力Ｙ＜ｔｈ１を直線で結んでおけば良い。
【００４１】
階調補正部１６０３は、作成した仮補正トーンカーブに基づき階調補正を行い、飽和画素判定部１６０６は、上記した対象領域であり、かつ、階調補正によって飽和したと判断された場合に、飽和画素であると判定する。階調補正によって飽和したかどうかは補正前後のＲＧＢ値を参照して判断する。ＲＧＢ３信号のうち補正後の値が（２５５−ｘ１）以上に飽和した信号数が、補正前に２５５に飽和している信号数よりも多ければ、階調補正によって飽和した画素であると判断する。ｘ１は飽和の判断を人の目視での判断に近づけるため、完全に２５５に飽和していないが飽和に近い画素も含めて飽和したと判定するためのパラメータであり、ｘ１＝２０くらいの値に設定しておくのが適当である。
【００４２】
飽和画素数計数部１６０７は、飽和したと判断された画素数Ｎｄを計数し、対象画素数計数部１６０８は、対象領域の画素数Ｎｅを計数する。飽和度算出部１６０９では、飽和度Ｐｗとして対象領域に対する飽和画素の割合を次式で求める。
Ｐｗ＝Ｎｄ／Ｎｅ
ハイライト補正量判定部１６１０では、飽和度が飽和度上限設定部１６１１に設定された上限値Ｘｈ以下になることを終了条件とし、終了条件を満たした時点でのα４’を補正量として出力して終了する。終了条件を満たさないうちは、補正量生成部１６０１は変更した補正量を発生させ、終了条件を満足するまで処理を繰り返す。
【００４３】
飽和度上限設定部１６１１では、Ｘｈが０．１５くらいの値（０．１〜０．２の間）に設定されるようにしておくのが適当である。予め決めておいた固定値でよい。
【００４４】
図１の被写体代表色抽出部１４では、被写体領域における代表色を抽出する。その構成例を２つ示す。
・被写体代表色抽出部１４の第１の構成例
図１４（ａ）は、被写体代表色抽出部１４の第１の構成例を示す。暗部／被写体領域判定部１４１は、サンプリング画像データの各画素値を輝度変換部１４０により求めた輝度値と閾値ｔｈ１，ｔｈ２を比較して、画像内の暗部領域および暗部領域以外の被写体領域を判定し、色変換部１４２によりＬａｂに変換した画像データおよび領域判定部１４１の領域判定結果から、暗部領域クラスタリング部１４３は、暗部領域をクラスタリングし、暗部以外の被写体領域クラスタリング部１４４は、暗部以外の被写体領域をクラスタリングする。
【００４５】
暗部領域のクラスタリング１４３は、図５の第一の補正量生成部１５におけるクラスタリング部１５３と同様であり、改めてクラスタリングしないでクラスタリング部１５３の結果を参照しても良い。暗部以外の被写体領域のクラスタリング部１４４は、そのクラスタリング方式は暗部の場合と同じものを用いて行うが、同じクラスタに属するか否かを判定する閾値であるｄＥ＿ｔｈを暗部の時よりも大きい値に設定してクラスタリングする。先に、暗部領域を対象としたクラスタリングではｄＥ＿ｔｈ＝３くらいの小さい値に設定するのが適当と述べたが、それに対して暗部領域以外の被写体領域を対象としたクラスタリングではｄＥ＿ｔｈ＝８くらいに設定するのが適当である。代表クラスタ抽出部１４５では、暗部領域および暗部領域以外の被写体領域、つまり被写体領域全体において、画素数が最も多いクラスタを一つ抽出し、そのクラスタの平均Ｌａｂを被写体の代表色Ｌａｂ＿ｄとして出力する。
・被写体代表色抽出部１４の第２の構成例
簡易的には、被写体領域における輝度の中央値をヒストグラムから求めて、中央値を元に代表色を抽出する方法もある。図１４（ｂ）は、被写体代表色抽出部１４の第２の構成例を示す。被写体中央値抽出部１４６は、ヒストグラムから図１５に示す被写体領域における中央値Ｙｍを求める。Ｙ＝０から画素数を順に加算し、被写体領域の画素数の１／２以上になった時点での輝度値がＹｍである。次に、Ｙｍに対応するＬａｂ値を求める。サンプリング画像データの中から輝度値がＹｍに等しいものを中央値判定部１４８が抽出し、ＲＧＢ毎の加算演算部１４９では、輝度値がＹｍの画素の画素値をＲＧＢ毎に加算し、画像全体のＲＧＢ毎の加算が終了したら、ＲＧＢ平均値算出部１４００はＲＧＢ毎の加算値を中央値Ｙｍの画素数で割って輝度値がＹｍの画素のＲＧＢ平均値を算出し、色変換部１４０１ではＬａｂに変換したものを被写体の代表色Ｌａｂ＿ｄとして出力する。
【００４６】
図１６（ａ）は、第三の補正量生成部１７の構成を示す。第三の補正量生成部１７では、図１６（ｂ）に示すように、被写体の代表色Ｌａｂ＿ｄに対応する輝度Ｙｄにおける補正後の値をＹｄ＋βとして増加分βを補正量として求め、出力する。
【００４７】
色変換部１７０は、代表色Ｌａｂ＿ｄをＲＧＢに変換し、階調補正部１７３では、補正量生成部１７２で生成される補正量βに応じてＲＧＢ値を階調補正し、色変換部１７４は補正後の値をＬａｂに変換する。色差計算部１７５では、代表色の補正前後の色差を計算する。
【００４８】
被写体代表色補正量判定部１７６では、代表色の補正前後の色差が代表色補正量上限設定部１７７に設定された上限値Ｘｍ以上になることを終了条件とし、終了条件を満たした時点でのβを補正量としてＹｄとセットで出力して終了する。終了条件を満たさないうちは、補正量生成部１７２は変更した補正量を発生させ、終了条件を満足するまで処理を繰り返す。
【００４９】
補正量生成部１７２は、β＝０を初期値として、補正量生成の要求がある度に、βに＋１したものを次の補正量として発生させる。
【００５０】
代表色補正量上限設定部１７７では、予め決めておいた固定値を用いる場合、Ｘｍが１５くらいの値に設定するが、この値は、画像の過補正を防止して、印象を大きく変えない上限値設定として適当である。
【００５１】
図１７は、補正量決定部１８の構成を示す。第一の補正量生成部１５で生成された補正量Δ１と、第二の補正量生成部１６で生成されたハイライトの傾きを表すα４’から算出された補正量Δ２と、第三の補正量生成部１７で生成された被写体代表色の輝度と補正量を表すＹｄとβから算出された補正量Δ３を参照して、最小値選択部１８２では、最小のものを選択して出力する（Δ＝ｍｉｎ（Δ１，Δ２，Δ３））。
【００５２】
補正量Δ２およびΔ３は、図３に示した関係を使って、ハイライトの傾きα４＝α４’に対応する制御点Ｙａにおける補正量Δ＝Δ２を算出することが可能であるし、（Ｙｄ，Ｙｄ＋β）を通る補正トーンカーブにおける補正量Δ＝Δ３を算出することも可能である。これを補正量Δ２算出部１８０および補正量Δ３算出部１８１が行う。
【００５３】
以上、本実施例によれば、画像の暗部領域の視認性向上とノイズ防止、および、ハイライト領域における階調つぶれ抑制に加えて、被写体代表値の補正量上限を設定し、補正量上限を超えない範囲内で補正量を決定して補正量に応じた階調補正を行うため、過補正を防止して元画像の印象を大きく変えすぎない範囲内で適切な明るさに階調補正することができる。
【００５４】
実施例２
図１８は、本発明の実施例２の構成を示す。撮影モードの一つとして、風景撮影に適した風景撮影モードを持っているデジタルカメラや、風景画像に適した画像補正を行うための風景優先処理モードをユーザーが選択できる画像処理装置がある。
【００５５】
本実施例では、書誌情報等も参照して、撮影モードや画像処理モードの情報を取得し、風景シーンであることが想定される画像に対して、ハイライト色抽出部４０は、ハイライト領域の色が属する色分布を判定し、色分布から分類した色分類に応じて被写体代表色の補正量上限設定値を切り替える。これにより、空の色相や明るさに応じて印象を変えたくないシーン（例えば夕焼け空をメインで撮影した画像）に対しては補正量を効果的に抑制し、より一層ユーザーが過補正と感じない範囲内で適切な補正を行う。
【００５６】
実施例２では、実施例１にハイライト色抽出部４０を追加して構成している。また、第三の補正量生成部１７’の処理が実施例１とは異なる。
【００５７】
図１９は、ハイライト色抽出部４０の構成を示す。無彩画素判定部４０１では、入力された画素値が無彩画素であるか否かを判定する。｜Ｍａｘ（Ｒ，Ｇ，Ｂ）−Ｍｉｎ（Ｒ，Ｇ，Ｂ）｜＜１５であれば無彩画素と判定し、それ以外ならば無彩画素でない（すなわち有彩度画素である）と判定する。
【００５８】
赤色相画素判定部４０２では、入力された画素値が赤色相画素であるか否かを判定する。ここでは簡易的に、Ｍａｘ（Ｒ，Ｇ，Ｂ）＝Ｒであれば赤色相画素と判定し、それ以外ならば赤色相画素でないと判定する。
【００５９】
入力されたＲＧＢの画素値を輝度変換部４０３で輝度Ｙに変換し、輝度判定部４０４では、輝度の大きさを判定する。無彩色画素に対する輝度の大小を判定するための閾値Ｙｗｔ＿ｔｈを使用して、Ｙ≧Ｙｗｔ＿ｔｈであれば明るい無彩画素候補であると判定し、Ｙ＜Ｙｗｔ＿ｔｈであれば暗い無彩画素候補であると判定する。更に青色相画素に対する輝度の大小を判定するための閾値Ｙｂｌ＿ｔｈを使用して、Ｙ≧Ｙｂｌ＿ｔｈであれば明るい青色相画素候補であると判定し、Ｙ＜Ｙｂｌ＿ｔｈであれば暗い青色相画素候補であると判定する。閾値Ｙｗｔ＿ｔｈとＹｂｌ＿ｔｈは、Ｙｗｔ＿ｔｈ＞Ｙｂｌ＿ｔｈとなるようにＹｗｔ＿ｔｈ＝２２０、Ｙｂｌ＿ｔｈ＝１６０くらいの値に設定しておくのが適当である。
【００６０】
ハイライト領域判定部４００では、画像の輝度値が閾値ｔｈ１以上であればハイライト領域の画素であると判定し、画素の属する色領域判定部４０５では、ハイライト領域の画素であると判定された画素に対してどの色領域に属するかを判定する。
すなわち、
・無彩画素で、かつ、明るい無彩画素候補であれば、明るい無彩色領域に属する画素であると判定する。
・無彩画素で、かつ、暗い無彩画素候補であれば、暗い無彩色領域に属する画素であると判定する。
・無彩画素ではなく、かつ、赤色相画素であれば、赤色領域に属する画素であると判定する。
・無彩画素ではなく、かつ、赤色相画素でもなく、かつ、明るい青色相画素候補であれば、明るい青色領域に属する画素であると判定する。
・無彩画素ではなく、かつ、赤色相画素でもなく、かつ、暗い青色相画素候補であれば、暗い青色領域に属する画素であると判定する。
本実施例では、無彩画素ではなく、かつ、赤色相画素でもない画素は、青色相の画素であるとみなして判定している。
【００６１】
色領域毎の画素数計数部４０６では、上記５つの色領域毎に属する画素の数を計数する。ハイライト色分布判定部４０７では、ハイライト領域に対して各色領域の画素が占める面積率が何パーセントであるかを算出し、色分布を判定する。
すなわち、
・赤色領域に属する画素が２０％以上あるならば、ハイライトに赤色が多く分布する画像であると判定する。
・上記色分布に該当せず、かつ、暗い無彩色領域に属する画素が２０％以上あるならば、ハイライトに暗い無彩色が多く分布する画像であると判定する。
・上記色分布に該当せず、かつ、明るい無彩色領域に属する画素が７０％以上あるならば、ハイライトに明るい無彩色が多く分布する画像であると判定する。
・上記色分布に該当せず、かつ、暗い青色領域に属する画素が５０％以上存在するならば、ハイライトに暗い青色が多く分布する画像であると判定する。
・上記色分布に該当せず、かつ、明るい青色領域に属する画素が５０％以上存在するならば、ハイライトに明るい青色が多く分布する画像であると判定する。
・上記いずれの色分布にも該当しない場合は、色分布が不明であると判定する。
【００６２】
なお、色分布判定で使用する面積率に対する各閾値は、上記では具体的な数値で示したが、これは一例であり、より人の感覚にあった色分布判定を行うためには画像を観察しながら閾値を調整した方が良い。
【００６３】
ハイライト色分類部４０８では、色分布を想定される５つの空の色に対応させて、色分類を決める。
すなわち、
・赤色が多く分布する画像であると判定された画像は、夕焼け、朝焼け空に分類する。
・暗い無彩色が多く分布する画像であると判定された画像は、暗い曇り空に分類する。
・明るい無彩色が多く分布する画像であると判定された画像は、明るい曇り空に分類する。
・暗い青色が多く分布する画像であると判定された画像は、暗い青空に分類する。
・明るい青色が多く分布する画像であると判定された画像は、明るい青空に分類する。
・色分布が不明であると判定された画像は、その他に分類する。
【００６４】
明るい曇り空と暗い曇り空を別々に分類しているのは、穏やかな白い空と雷雲のような暗い空とでは元の画像の印象が異なり、暗い曇り空の方が過補正で印象を壊してしまう危険性がより高いことを考慮したためである。明るい青空と暗い青空を別々に分類しているのは、暗い青空として朝方や夕方の日が昇りきっていない状態の空を想定しており、明るい青空よりも暗い青空の方が画像の印象を保持したい要求が高いことを考慮したためである。
【００６５】
図２０（ａ）は、実施例２における第三の補正量生成部１７’の構成を示す。実施例１（図１６（ａ））の第三の補正量生成部１７と相違する点は、代表色補正量上限設定部１７８の処理内容である。代表色補正量上限設定部１７８では、シーン情報とハイライト色分類に応じた補正量上限を設定し、補正量上限に応じた被写体代表色補正量βを決定して出力する。補正量上限の設定は、シーン情報から風景を撮影した画像であるとみなされる場合に、ハイライト色分類に応じて図２０（ｂ）のように補正量上限Ｘｍを設定する。
すなわち、
・明るい青空の補正量上限Ｌ１と明るい曇り空の補正量上限Ｌ２が、Ｌ２＜Ｌ１の関係になるようにする。
・明るい青空の補正量上限Ｌ１と暗い青空の補正量上限Ｓ１が、Ｓ１＜Ｌ１の関係になるようにする。
・明るい曇り空の補正量上限Ｌ２と暗い曇り空の補正量上限Ｓ２が、Ｓ２＜Ｌ２の関係になるようにする。
・夕焼け、朝焼け空の補正量上限Ｓ３が、（実際は暗い青空や暗い曇り空の補正量上限と同レベル、あるいは、それよりも小さい値でも良いくらいであるが）少なくとも明るい青空の補正量上限Ｌ１に対してＳ３＜Ｌ１の関係になるようにする。
・色分類がその他の場合は、デフォルト値として中間的な補正量上限を設定する。中間的な補正量上限とは、大まかに言えば、Ｌ１やＬ２より小さく、Ｓ１やＳ２より大きいくらいの値を指す。
【００６６】
以上、本実施例によれば、ハイライト領域における色分布を色相や輝度に関して判定し、色分布（に対応した色分類）に応じて輝度補正における補正量上限を変更するため、空の色や明るさに応じて特に印象を変えたくないシーンの画像で効果的に補正量を抑制することができる。
【００６７】
また、本発明は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読出されたプログラムコード自体が前述した各実施例の機能を実現することになる。プログラムコードを供給するための記憶媒体としては、例えば、ハードディスク、光ディスク、光磁気ディスク、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、コンピュータが読出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した各実施例の機能が実現される場合も含まれる。さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した各実施例の機能が実現される場合も含まれる。また、本発明の実施例の機能等を実現するためのプログラムは、ネットワークを介した通信によってサーバから提供されるものでも良い。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施例１の構成を示す。
【図２】領域抽出部の構成を示す。
【図３】本発明の補正トーンカーブの形状を示す。
【図４】領域面積率計算部の構成を示す。
【図５】第一の補正量生成部の構成を示す。
【図６】クラスタリング部の構成を示す。
【図７】予備クラスタリング部の処理フローチャートである。
【図８】クラスタ統合部の処理フローチャートである。
【図９】第一の補正量決定部の構成を示す。
【図１０】補正量算出部の構成を示す。
【図１１】最暗クラスタの補正量制限を説明する図である。
【図１２】第二の補正量生成部の構成を示す。
【図１３】仮補正トーンカーブ生成部により作成される補正トーンカーブを示す。
【図１４】被写体代表色抽出部の第１、第２の構成例を示す。
【図１５】被写体中央値抽出部の処理を説明する図である。
【図１６】第三の補正量生成部の構成を示す。
【図１７】補正量決定部の構成を示す。
【図１８】本発明の実施例２の構成を示す。
【図１９】ハイライト色抽出部の構成を示す。
【図２０】実施例２における第三の補正量生成部の構成を示す。
【符号の説明】
【００６９】
１０  輝度変換部
１１  ヒストグラム作成部
１２  領域抽出部
１３  領域面積率計算部
１４  被写体代表色抽出部
１５  第一の補正量生成部
１６  第二の補正量生成部
１７  第三の補正量生成部
１８  補正量決定部
１９  補正トーンカーブ生成部
２０  階調補正部
３０  画像サンプリング部
【図１】
2010062920.tif 000003
【図２】
2010062920.tif 000004
【図３】
2010062920.tif 000005
【図４】
2010062920.tif 000006
【図５】
2010062920.tif 000007
【図６】
2010062920.tif 000008
【図７】
2010062920.tif 000009
【図８】
2010062920.tif 000010
【図９】
2010062920.tif 000011
【図１０】
2010062920.tif 000012
【図１１】
2010062920.tif 000013
【図１２】
2010062920.tif 000014
【図１３】
2010062920.tif 000015
【図１４】
2010062920.tif 000016
【図１５】
2010062920.tif 000017
【図１６】
2010062920.tif 000018
【図１７】
2010062920.tif 000019
【図１８】
2010062920.tif 000020
【図１９】
2010062920.tif 000021
【図２０】
2010062920.tif 000022