この発明は,補正後の画像彩度または画像色相を考慮した画像の明るさ補正処理を実現することを目的とする。
この発明はさらに,補正後の画像硬調(または軟調)を考慮した画像の明るさ補正処理を実現することを目的とする。
この発明は,画像データの明るさ補正に用いられる輝度変換曲線(輝度変換関数)を作成する装置および方法を提供する。輝度変換曲線作成装置および方法によって作成される輝度変換曲線に基づいて,画像データの明るさ(輝度)が補正される。この明細書において,画像の明るさを表すデータとして輝度値を用いる。輝度値は濃度値に一意に変換することができるので,この発明において,輝度値は濃度値と読み替えることもできる。
輝度変換曲線作成装置および方法によって作成される輝度変換曲線は,入力される画像データによって表される画像を構成する画素がそれぞれ持つ輝度値(入力輝度値)に対応する出力輝度値(補正後の輝度値)を,輝度値(たとえば,0〜255までの256段階の輝度値)のそれぞれに対応して規定したものであり,コンピュータ装置におけるメモリ上の構成から言えば,ルックアップテーブルによって規定される。作成される輝度変換曲線は,横軸を入力輝度値,縦軸を出力輝度値(変換後の輝度値)としたグラフ上に表すことができる。この発明による輝度変換曲線作成装置は,ルックアップテーブルの作成装置,濃度変換曲線または階調曲線の作成装置と言うこともできる。
第1の発明による輝度変換曲線作成装置は,与えられる画像データによって表される画像中に含まれる特定画像について,上記特定画像の代表輝度値と,上記特定画像の明輝度値および暗輝度値を規定するダイナミックレンジを算出する特定画像輝度値算出手段,上記代表輝度値の輝度補正後の目標代表輝度値と,上記明輝度値の輝度補正後の目標明輝度値および上記暗輝度値の輝度補正後の目標暗輝度値を規定する目標ダイナミックレンジを設定する目標輝度値設定手段,上記特定画像輝度値算出手段によって算出された代表輝度値およびダイナミックレンジと,上記目標輝度値設定手段によって設定された目標代表輝度値および目標ダイナミックレンジに基づいて,入力輝度値に対する出力輝度値を規定する輝度変換曲線を算出する輝度変換曲線算出手段,上記輝度変換曲線算出手段によって算出された輝度変換曲線に基づいて,上記与えられる画像データを輝度補正した場合の上記特定画像の予想彩度を算出する特定画像彩度予想手段,上記特定画像彩度予想手段によって算出された輝度補正後の特定画像の予想彩度が,上記目標輝度値設定手段によって設定された目標代表輝度値に基づいて算出される上限彩度を超える場合に,上記目標ダイナミックレンジのレンジ幅を狭めるレンジ幅縮小手段,レンジ幅縮小手段によって狭められたレンジ幅を持つように,上記目標ダイナミックレンジを修正する目標ダイナミックレンジ修正手段,ならびに上記目標ダイナミックレンジ修正手段によって修正された目標ダイナミックレンジを用いて,上記輝度変換曲線を修正する輝度変換曲線修正手段を備えたことを特徴とする。
第1の発明による輝度変換曲線作成方法は,与えられる画像データによって表される画像中に含まれる特定画像について,上記特定画像の代表輝度値と,上記特定画像の明輝度値および暗輝度値を規定するダイナミックレンジを算出し,上記代表輝度値の輝度補正後の目標代表輝度値と,上記明輝度値の輝度補正後の目標明輝度値および上記暗輝度値の輝度補正後の目標暗輝度値を規定する目標ダイナミックレンジを設定し,算出した代表輝度値およびダイナミックレンジと,設定された目標代表輝度値および目標ダイナミックレンジに基づいて,入力輝度値に対する出力輝度値を規定する輝度変換曲線を算出し,算出した輝度変換曲線に基づいて,上記与えられる画像データを輝度補正した場合の上記特定画像の予想彩度を算出し,算出した輝度補正後の特定画像の予想彩度が,設定した目標代表輝度値に基づいて算出される上限彩度を超える場合に,上記目標ダイナミックレンジのレンジ幅を狭め,狭められたレンジ幅を持つように,上記目標ダイナミックレンジを修正し,修正した目標ダイナミックレンジを用いて,上記輝度変換曲線を修正することを特徴とする。
第1の発明は,上述の輝度変換曲線作成方法をコンピュータに実行させる(コンピュータを,上記輝度変換曲線作成装置として機能させる)プログラムも提供している。
与えられる画像データ(フイルムから読取られた画像データ,ディジタル・カメラによって得られた画像データ,ネットワークを通じて受信した画像データ等)によって表される画像には特定画像が含まれているとする。特定画像は,明るさ補正(輝度補正)を施すべき画像中の主要な被写体像部分であり,たとえば,人物の顔画像部分である。特定画像は,その形状,構造,特定画像に含まれる特徴的な要素の特徴量,特定画像に含まれるべき色,その他の情報に基づいて,与えられる画像データによって表される画像から区画(検出,抽出)することができる。
この発明による輝度変換曲線作成装置は,まず,与えられる画像データから得られる特定画像に関する複数の輝度値と,設定される複数の目標輝度値とを用いて,画像データの輝度補正処理のための輝度変換曲線を作成する。そして,作成された輝度変換曲線に基づいて輝度補正処理が行われたとすれば,好ましい処理結果を得ることができないと判断された場合に,作成された輝度変換曲線を修正する処理を行う。
輝度変換曲線は,与えられる画像データに基づいて得られる複数の輝度値を,設定される複数の輝度値に変換するものである。
与えられる画像データに基づいて得られる複数の輝度値は,与えられる画像データによって表される画像中に含まれる上記特定画像の代表輝度値,ならびに上記特定画像の明輝度値および暗輝度値を含む。代表輝度値としては,特定画像を構成する画素の輝度値の平均値,中央値または最頻値を用いることができる。特定画像を構成する画素の輝度値のうち最も値の大きい輝度値を明輝度値,特定画像を構成する画素の輝度値のうち最も値の小さい輝度値を暗輝度値とすることができる。暗輝度値および明輝度値によって規定される輝度レンジが,特定画像についてのダイナミックレンジである。
特定画像の輝度値についてのヒストグラムを用いて,ヒストグラムにおける最大輝度値から所定割合の面積を占める輝度値を特定画像における明輝度値とし,ヒストグラムにおける最低輝度値から所定割合の面積を占める輝度値を特定画像における暗輝度値としてもよい。
算出された特定画像の代表輝度値,明輝度値および暗輝度値のそれぞれに対応する目標輝度値(輝度補正後における上記代表輝度値に対応する目標代表輝度値,輝度補正後における上記明輝度値に対応する目標明輝度値,および輝度補正後における上記暗輝度値に対応する目標暗輝度値)が設定される。目標暗輝度値および目標明輝度値によって規定される輝度レンジが目標ダイナミックレンジである。
目標代表輝度値,ならびに目標明輝度値および目標暗輝度値(目標ダイナミックレンジ)は,ユーザが設定してもよいし,いずれか1または複数の目標輝度値を設定(入力)し,残りの目標輝度値は自動的に算出するようにしてもよい。
たとえば,上記代表輝度値に対応する目標代表輝度値と,上記明輝度値に対応する目標明輝度値および上記暗輝度値に対応する目標暗輝度値間のダイナミックレンジのレンジ幅(以下,第1のレンジ幅という)が入力(設定)される(入力手段が備えられる)。入力された目標代表輝度値および第1のレンジ幅と,画像データに基づいて算出された特定画像の代表輝度値,明輝度値および暗輝度値とに基づいて,上記明輝度値に対応する目標明輝度値と上記暗輝度値に対応する目標暗輝度値(すなわち,目標ダイナミックレンジ)が算出される。
他の実施態様では,上記代表輝度値に対応する目標代表輝度値と,上記目標代表輝度値および上記明輝度値に対応する目標明輝度値間のダイナミックレンジのレンジ幅(以下,第2のレンジ幅という)が入力(設定)される(入力手段が備えられる)。入力された目標代表輝度値および第2のレンジ幅と,画像データに基づいて算出された特定画像の代表輝度値,明輝度値および暗輝度値に基づいて,上記明輝度値に対応する目標明輝度値と上記暗輝度値に対応する目標暗輝度値(すなわち,目標ダイナミックレンジ)が算出される。
さらに他の実施態様では,上記代表輝度値に対応する目標代表輝度値と,目標代表輝度値および上記暗輝度値に対応する目標暗輝度値間のダイナミックレンジのレンジ幅(以下,第3のレンジ幅という)が入力(設定)される(入力手段がさらに備えられる)。入力された目標代表輝度値および第3のレンジ幅と,画像データに基づいて算出された特定画像の代表輝度値,明輝度値および暗輝度値に基づいて,上記明輝度値に対応する目標明輝度値および上記暗輝度値に対応する目標暗輝度値(すなわち,目標ダイナミックレンジ)が算出される。
上記3つの実施態様のいずれにおいても,上記ダイナミックレンジのレンジ幅に対する代表輝度値および暗輝度値間のレンジ幅の比率と,上記目標ダイナミックレンジのレンジ幅に対する上記目標代表輝度値および上記目標暗輝度値間のレンジ幅の比率が一致し,かつ上記ダイナミックレンジのレンジ幅に対する代表輝度値および明輝度値間のレンジ幅の比率と,上記目標ダイナミックレンジのレンジ幅に対する上記目標代表輝度値および上記目標明輝度値間のレンジ幅の比率が一致するように,上記目標明輝度値および上記目標暗輝度値を算出するとよい。与えられる画像データによって表される画像中に含まれる特定画像の明るさの変動を,輝度補正後において維持することができる。
与えられた画像データに基づいて算出された代表輝度値およびダイナミックレンジと,設定された目標代表輝度値および目標ダイナミックレンジに基づいて,入力輝度値に対する出力輝度値を規定する輝度変換曲線が算出される。
一実施態様では,画像データに基づいて得られる複数の輝度値(代表輝度値,明輝度値および暗輝度値)と,そのそれぞれに対応する複数の目標輝度値(目標代表輝度値,目標明輝度値および目標暗輝度値)との対応関係に基づいて,上記複数の輝度値以外の輝度値に対応する目標輝度値のそれぞれが,画像データに基づいて得られる複数の輝度値およびその複数の輝度値以外の輝度値と,これらの輝度値に対応する目標輝度値との対応関係を曲線で表した場合に滑らかな曲線となるような補間によって,輝度変換曲線が算出される。
たとえば,輝度値が8ビットのデータによって表されるとすると,輝度値は0〜255の256レベルで表すことができる。補間によって,256レベルの輝度値のうち,画像データに基づいて算出された複数の輝度値(代表輝度値,明輝度値および暗輝度値)以外の輝度値のそれぞれに対応する目標輝度値が算出される。画像データに基づいて得られる複数の輝度値およびそれ以外の輝度値と,これらの輝度値に対応する目標輝度値との関係を曲線で表した場合に滑らかな曲線となるような補間処理には,スプライン補間法,ニアレスト・ネイバー法,リニア法,キュービック法等を利用することができる。
輝度補正後の特定画像を含む画像の硬調(または軟調)は,作成される輝度変換曲線の傾きに応じたものになる。輝度変換曲線の傾きが大きいと,画像の暗い部分はより暗く,画像の明るい部分はより明るくなるので,補正後の画像はめりはりが効いた画像になる(硬調)。逆に輝度変換曲線の傾きが小さいと,画像の暗い部分と明るい部分との明るさの差が小さくなるので,ぼんやりした印象の画像になる(軟調)。輝度補正後の特定画像における硬調(軟調)(特定画像に対応する輝度範囲における輝度変換曲線の傾き)は,上述の第1〜第3のレンジ幅によって変更することができる。すなわち,第1〜3のレンジ幅として大きい幅(範囲)が設定されると,目標明輝度と目標暗輝度の輝度差が大きくなり,特定画像に対応する輝度範囲における輝度変換曲線の傾きが大きくなるので,輝度補正後の特定画像は硬調になる。逆に,第1〜3のレンジ幅として小さい範囲が設定されると,目標明輝度と目標暗輝度の輝度差が小さくなり,特定画像に対応する輝度範囲における輝度変換曲線の傾きが小さくなるので,輝度補正後の特定画像は軟調になる。目標ダイナミックレンジ(第1〜第3のレンジ幅)の設定によって,ユーザの好みに応じた硬調(または軟調)の輝度補正後の特定画像を得ることができる。目標ダイナミックレンジが設定されるとともに,代表輝度値の補正値(目標代表輝度値)も設定されるので,補正後の特定画像は,ユーザの好みに応じた硬調(または軟調)を持つとともに,ユーザの好みに応じた明るさ(輝度値)を持つものになる。
輝度変換曲線の算出の処理に用いられるパラメータは,上述のように,処理対象の画像データから得られる輝度値(代表輝度値,明輝度値および暗輝度値(ダイナミックレンジ))と,ユーザによって設定される(またはユーザの設定に基づいて算出される)目標代表輝度値,目標明輝度値および目標暗輝度値(目標ダイナミックレンジ)である。輝度変換曲線は,基本的に,処理対象の画像データによって表される画像中に含まれる特定画像の明るさを,ユーザの所望の明るさに補正するためのものであるから,画像データに基づいて輝度値を算出し,かつユーザが希望する輝度補正後の輝度値を入力(設定)することは必要である。
ここで,輝度補正処理を,補正前および補正後の輝度値のみに着目して輝度補正処理が行われると,輝度補正後の特定画像の彩度が,輝度補正前の特定画像の彩度に比較して高くなることがある。特に,特定画像の輝度値がもともと高いものであった場合(輝度補正前の特定画像が明るい場合である)に,さらに特定画像を明るくするように目標代表輝度値が設定され,その設定にもとづいて得られる輝度変換曲線にしたがって画像データが輝度補正されると,輝度補正後の特定画像の彩度が高くなりすぎた印象を持つものになることがある。
そこで,第1の発明による輝度変換曲線作成装置は,輝度変換後の特定画像の彩度に着目して,所定の場合に,作成された輝度変換曲線を修正する処理を行う。
算出された輝度変換曲線に基づいて,上記与えられる画像データを輝度補正した場合の上記特定画像の予想彩度が算出される。たとえば,特定画像部分の平均RGB値を算出し,上記輝度変換曲線を用いて,輝度補正処理後の平均RGB値(以下,補正後平均RGB値という)を算出する。算出した補正後平均RGB値にもとづいて予想彩度が求められる。算出した補正後平均RGB値のうちの最大値(R値,G値またはB値のいずれか)から最小値(R値,G値またはB値のいずれか)を減算した値を,輝度補正後の特定画像の(近似的)予想彩度としてもよい。
算出された輝度補正後の特定画像の予想彩度が,設定された目標代表輝度値に基づいて算出される上限彩度を超えるかどうかが判断される。
上限彩度は,ユーザによって設定される目標代表輝度値にもとづいて算出される。好ましくは,目標代表輝度値が比較的小さい場合(たとえば,256レベルのうちの180以下の場合)には上限彩度は比較的大きい値とされ,目標代表輝度値が比較的高いもの(たとえば180を超える輝度値)であれば,輝度値の大きさに応じて上限彩度は次第に低い値とされる。
輝度補正後の特定画像の予想彩度が上限彩度を超える場合,上記目標ダイナミックレンジのレンジ幅が狭められ,狭められたレンジ幅を持つように上記目標ダイナミックレンジが修正される。目標ダイナミックレンジを狭める(目標明輝度値を小さくし,かつ目標暗輝度値を大きくすることを意味する)ことによって,輝度補正後の特定画像の彩度を抑制することができるからである。
上記レンジ幅縮小手段は,一実施態様では,上記目標ダイナミックレンジのレンジ幅に,上記特定画像の彩度を上記上限彩度で除算した値を乗算することにより,上記目標ダイナミックレンジのレンジ幅を狭めるものである。
修正された目標ダイナミックレンジが用いられて,上記輝度変換曲線が修正される。
第1の発明によると,輝度補正後の特定画像の予想彩度が上限彩度を超える場合には,輝度補正後の特定画像の彩度が抑制されるように輝度変換曲線が修正されるので,輝度補正後の画像中の特定画像の彩度を,単に,輝度値に着目して輝度補正した場合に比べて良好なものにすることができる。
一実施態様では,上記目標ダイナミックレンジ修正手段は,上記目標暗輝度値および上記目標明輝度値を修正することにより,修正後の目標ダイナミックレンジが,上記レンジ幅縮小手段によって狭められたレンジ幅をもつようにするものであり,上記目標ダイナミックレンジのレンジ幅に対する目標代表輝度値および目標暗輝度値間のレンジ幅の比率と,修正後の目標ダイナミックレンジのレンジ幅に対する上記目標代表輝度値および修正後の目標暗輝度値間のレンジ幅の比率が一致し,かつ上記目標ダイナミックレンジのレンジ幅に対する目標代表輝度値および目標明輝度値間のレンジ幅の比率と,修正後の目標ダイナミックレンジのレンジ幅に対する上記目標代表輝度値および修正後の目標明輝度値間のレンジ幅の比率が一致するように,上記目標明輝度値および上記目標暗輝度値を修正するものである。与えられる画像データによって表される画像中に含まれる特定画像の明るさの変動を,修正後の輝度変換曲線を用いた輝度補正後においても維持することができる。
この発明は,次の輝度変換曲線作成装置,方法およびプログラムも提供する。装置について言及すれば,この発明による輝度変換曲線作成装置は,与えられる画像データによって表される画像中に含まれる特定画像から得られる輝度値と,上記輝度値の輝度変換後の目標輝度値を含むパラメータとに基づいて,入力輝度値に対する出力輝度値を規定する輝度変換曲線を算出する輝度変換曲線算出手段,上記輝度変換曲線算出手段によって算出された輝度変換曲線に基づいて,上記与えられる画像データを輝度変換した場合の上記特定画像の予想色情報を算出する予想色情報算出手段,および上記予想色情報算出手段によって算出された予想色情報が,上記パラメータに基づいて算出される許容範囲(上限値および下限値の間の範囲)から外れる場合に,上記予想色情報が上記許容範囲に入るように上記輝度変換曲線を修正する修正手段を備えたことを特徴とする。ここで,色情報には,彩度および色相が含まれる。輝度変換曲線に基づいて輝度変換した場合の特定画像の色情報(彩度または色相)が許容範囲から外れてしまうことが予想される場合に,許容範囲に収まるように輝度変換曲線が修正される。輝度変換後の特定画像の色情報が,輝度変換前の特定画像の色情報から大きく外れてしまうことが防止される。上述した目標ダイナミックレンジのレンジ幅を狭めるまたは広げることによって,上記予想色情報が上記許容範囲に入るように,上記輝度変換曲線を修正することができる。
第2の発明による輝度変換曲線作成装置は,与えられる画像データによって表される画像中に含まれる特定画像について,上記特定画像の代表輝度値と,上記特定画像の明輝度値および暗輝度値を規定するダイナミックレンジを算出する特定画像輝度値算出手段,上記代表輝度値の輝度補正後の目標代表輝度値と,上記明輝度値の輝度補正後の目標明輝度値および上記暗輝度値の輝度補正後の目標暗輝度値を規定する目標ダイナミックレンジを設定する目標輝度値設定手段,上記特定画像輝度値算出手段によって算出された代表輝度値およびダイナミックレンジと,上記目標輝度値設定手段によって設定された目標代表輝度値および目標ダイナミックレンジに基づいて,入力輝度値に対する出力輝度値を規定する輝度変換曲線を算出する輝度変換曲線算出手段,上記輝度変換曲線算出手段によって算出された輝度変換曲線における,上記特定画像の明輝度値を超える部分についてのカーブが下凸カーブである場合に,上記目標ダイナミックレンジのレンジ幅を広げるレンジ幅拡大手段,上記レンジ幅拡大手段によって広げられたレンジ幅を持つように,上記目標ダイナミックレンジを修正する目標ダイナミックレンジ修正手段,ならびに上記目標ダイナミックレンジ修正手段によって修正された目標ダイナミックレンジを用いて,上記輝度変換曲線を修正する輝度変換曲線修正手段を備えたことを特徴とする。
第2の発明による輝度変換曲線作成方法は,与えられる画像データによって表される画像中に含まれる特定画像について,上記特定画像の代表輝度値と,上記特定画像の明輝度値および暗輝度値を規定するダイナミックレンジを算出し,上記代表輝度値の輝度補正後の目標代表輝度値と,上記明輝度値の輝度補正後の目標明輝度値および上記暗輝度値の輝度補正後の目標暗輝度値を規定する目標ダイナミックレンジを設定し,算出した代表輝度値およびダイナミックレンジと,設定した目標代表輝度値および目標ダイナミックレンジに基づいて,入力輝度値に対する出力輝度値を規定する輝度変換曲線を算出し,算出した輝度変換曲線における,上記特定画像の明輝度値を超える部分についてのカーブが下凸カーブである場合に,上記目標ダイナミックレンジのレンジ幅を広げ,広げたレンジ幅を持つように,上記目標ダイナミックレンジを修正し,修正した目標ダイナミックレンジを用いて,上記輝度変換曲線を修正することを特徴とする。
第2の発明も,上述の輝度変換曲線作成方法をコンピュータに実行させる(コンピュータを,上記輝度変換曲線作成装置として機能させる)プログラムを提供している。
第2の発明においても,与えられる画像データにもとづいて算出される代表輝度値およびダイナミックレンジと,ユーザによって設定される特定画像の代表輝度値の補正値(目標代表輝度値)および目標ダイナミックレンジにもとづいて,輝度変換曲線が算出される。
第2の発明においては,作成された輝度変換曲線そのものが評価される。
第2の発明において評価される輝度変換曲線の部分は,上記特定画像の明輝度値を超える輝度値に対応する部分である。たとえば,ユーザによって設定される目標ダイナミックレンジが,画像データから得られるダイナミックレンジのレンジ幅よりも極端に小さく設定されると,上記特定画像の明輝度値を超える輝度値に対応する部分のカーブが,下凸カーブになることがある。
第2の発明によると,輝度変換曲線における,上記特定画像の明輝度値を超える輝度値に対応する部分のカーブが下凸カーブである場合には,上記目標ダイナミックレンジのレンジ幅が広げられ,広げられたレンジ幅を持つように上記目標ダイナミックレンジが修正される。修正された目標ダイナミックレンジにしたがって輝度変換曲線を修正することによって,上記特定画像の明輝度値を超える輝度値に対応する部分のカーブの傾きを小さくすることができる。輝度補正後の画像(特定画像の明るさよりも明るい画像部分)が極端に硬調に補正されてしまうのを防止することができる。
第2の発明においても,入力装置から入力される目標代表輝度値と,入力装置から入力される上述した第1,第2または第3のレンジ幅とに基づいて,上記ダイナミックレンジのレンジ幅に対する代表輝度値および暗輝度値間のレンジ幅の比率と,上記目標ダイナミックレンジのレンジ幅に対する上記目標代表輝度値および上記目標暗輝度値間のレンジ幅の比率が一致し,かつ上記ダイナミックレンジのレンジ幅に対する代表輝度値および明輝度値間のレンジ幅の比率と,上記目標ダイナミックレンジのレンジ幅に対する上記目標代表輝度値および上記目標明輝度値間のレンジ幅の比率が一致するように,上記目標明輝度値および上記目標暗輝度値を算出し,入力された目標代表輝度値と,算出された目標明輝度値および算出された目標暗輝度値を規定する目標ダイナミックレンジを,上記目標輝度値設定手段において設定するのが好ましい。また,上記目標明輝度値および上記目標暗輝度値を修正することにより,修正後の目標ダイナミックレンジが上記レンジ幅拡大手段によって広げられたレンジ幅をもつようにし,上記目標ダイナミックレンジのレンジ幅に対する目標代表輝度値および暗輝度値間のレンジ幅の比率と,修正後の目標ダイナミックレンジのレンジ幅に対する上記目標代表輝度値および修正後の目標暗輝度値間のレンジ幅の比率が一致し,かつ上記目標ダイナミックレンジのレンジ幅に対する目標代表輝度値および目標明輝度値間のレンジ幅の比率と,修正後の目標ダイナミックレンジのレンジ幅に対する上記目標代表輝度値および修正後の目標明輝度値間のレンジ幅の比率が一致するように,目標明輝度値および上記目標暗輝度値を,上記目標ダイナミックレンジ修正手段において修正するのが好ましい。
一実施態様では,輝度変換曲線における上記特定画像の明輝度値を超える部分についてのカーブが,下凸カーブを持つことにならないように,目標明輝度値がより大きい値に修正される。修正後の目標ダイナミックレンジが上記レンジ幅拡大手段によって広げられたレンジ幅をもつようにし,上記目標ダイナミックレンジのレンジ幅に対する目標代表輝度値および暗輝度値間のレンジ幅の比率と,修正後の目標ダイナミックレンジのレンジ幅に対する上記目標代表輝度値および修正後の目標暗輝度値間のレンジ幅の比率が一致し,かつ上記目標ダイナミックレンジのレンジ幅に対する目標代表輝度値および目標明輝度値間のレンジ幅の比率と,修正後の目標ダイナミックレンジのレンジ幅に対する上記目標代表輝度値および修正後の目標明輝度値間のレンジ幅の比率が一致するようにすることによって,目標明輝度値がより大きい値に修正されると,修正された目標ダイナミックレンジのレンジ幅を,修正前の目標ダイナミックレンジよりも大きくすることができる。
上述した第1の発明および第2の発明による輝度変換曲線作成装置,方法およびプログラムは,次のように包括的に規定することができる。装置について言及すれば,この発明による輝度変換曲線作成装置は,与えられる画像データによって表される画像中に含まれる特定画像について,上記特定画像の代表輝度値と,上記特定画像の明輝度値および暗輝度値を規定するダイナミックレンジを算出する特定画像輝度値算出手段,上記代表輝度値の輝度補正後の目標代表輝度値と,上記明輝度値の輝度補正後の目標明輝度値および上記暗輝度値の輝度補正後の目標暗輝度値を規定する目標ダイナミックレンジを設定する目標輝度値設定手段,上記特定画像輝度値算出手段によって算出された代表輝度値およびダイナミックレンジと,上記目標輝度値設定手段によって設定された目標代表輝度値および目標ダイナミックレンジに基づいて,入力輝度値に対する出力輝度値を規定する輝度変換曲線を算出する輝度変換曲線算出手段,上記輝度変換曲線算出手段によって算出された輝度変換曲線を,直接的または間接的に評価する評価手段,上記評価手段による上記輝度変換曲線の評価に基づいて,上記目標ダイナミックレンジのレンジ幅を修正するレンジ幅修正手段,上記レンジ幅修正手段によって修正されたレンジ幅を持つように,上記目標ダイナミックレンジを修正する目標ダイナミックレンジ修正手段,ならびに上記目標ダイナミックレンジ修正手段によって修正された目標ダイナミックレンジを用いて,上記輝度変換曲線を修正する輝度変換曲線修正手段を備えたことを特徴とする。輝度変換曲線の直接的な評価には,輝度変換曲線自体の評価(傾き,下凸など)を含む。輝度変換曲線の間接的な評価には,輝度変換曲線に基づいて得られる値(たとえば,彩度,色相)にもとづく評価を含む。
この発明によるさらなる特徴は,以下の説明において明らかにする。
図1は,ディジタルプリントシステムの全体構成を示すブロック図である。ディジタルプリントシステムは,画像補正装置1と,画像補正装置1に接続された周辺機器(入力装置2,表示装置3,記憶装置4およびプリンタ5)とによって構成される。図2は,ディジタルプリントシステムの中核的な装置である画像補正装置1の詳細な電気的構成を示すブロック図である。図2において,図1に示す周辺機器のうち,表示装置3およびプリンタ5の図示は省略されている。
画像補正装置1は,与えられた画像データによって表される画像中に含まれる人物の顔を表す部分(以下,顔画像部分という)の画素ごとの明るさ(輝度値)(0〜255の256の輝度値のうちのいずれか)を,ユーザの指示に応じた明るさ(輝度値)(0〜255の256の輝度値のうちのいずれか)に補正する装置である。
画像補正装置1に接続された入力装置2(キーボード,マウス等)は,画像補正処理のための複数のパラメータ(後述する)等の入力に用いられる。表示装置3の表示画面には,入力装置2から入力されるパラメータの設定のための画面,補正前および補正後の画像データによって画像等が表示される。記憶装置(ハードディスク,メモリ・カード,CD−ROM等)4には画像データが記憶されており,記憶装置4から読み出された画像データに対して,画像補正装置1において画像補正処理が行われる。プリンタ5は,補正後の画像データによって表される画像を,印画紙等にプリントする。
画像補正装置1は,顔領域区画回路11,輝度変換関数算出回路12,目標ダイナミックレンジ修正回路13,輝度変換関数修正回路14および画像補正回路15を備えている。
画像補正装置1に接続された記憶装置4から読出された画像データに対して,画像補正回路15において画像補正(輝度変換)が行われる。画像補正回路15において行われる画像補正処理は,入力輝度値と出力輝度値(補正値)の対応関係を規定した輝度変換関数(ルックアップテーブル)にしたがう。輝度変換関数は輝度変換関数算出回路12において算出される。
後述するように,所定の場合には,輝度変換関数算出回路12において算出された輝度変換関数は,輝度変換関数修正回路14において修正される。この場合には,画像補正回路15において行われる画像補正処理は,輝度変換関数修正回路14において修正された修正後の輝度変換関数にしたがって行われる。輝度変換関数算出回路12において算出される輝度変換関数と,輝度変換関数修正回路14において修正された後の輝度変換関数とを区別するために,輝度変換関数算出回路12において算出される輝度変換関数を,以下「標準輝度変換関数」と呼び,輝度変換関数修正回路14において修正された後の輝度変換関数を「適用輝度変換関数」と呼ぶ。
上述したように,輝度変換関数は,所定の場合に,輝度変換関数修正回路14において修正される。標準輝度変換関数を修正すべきであるかどうか,修正する場合にはどのように標準輝度変換関数を修正するのかを決定するのが,目標ダイナミックレンジ修正回路13である。
この明細書において,「ダイナミックレンジ」と「ダイナミックレンジのレンジ幅」(ダイナミックレンジ幅またはレンジ幅と呼ぶこともある)とは明確に区別される。「ダイナミックレンジ」は2つの輝度値(最大輝度値および最小輝度値)を表すデータによって規定される。2つの輝度値(最大輝度値および最小輝度値)によって2つの輝度値間の幅(すなわち,ダイナミックレンジのレンジ幅)も特定される。他方,「ダイナミックレンジのレンジ幅」は,ダイナミックレンジの幅を表すにとどまり,最大輝度値および最小輝度値までは表さない。
以下,画像補正装置1に含まれる顔領域区画回路11,輝度変換関数算出回路12,目標ダイナミックレンジ修正回路13,輝度変換関数修正回路14および画像補正回路15のそれぞれの処理について説明する。
この実施例において,画像データの輝度補正のための標準輝度変換関数(または適用輝度変換関数)(上述したように,標準輝度変換関数は所定の条件の下に修正されて適用輝度変換関数が生成される)は,記憶装置4から読出された画像データ(以下,オリジナル画像データと呼ぶ)によって表される画像(以下,オリジナル画像という)中に含まれる顔画像部分に着目して算出される。すなわち,画像補正装置1は,オリジナル画像中の顔画像部分の明るさを所望の明るさに補正(輝度変換)するための標準輝度変換関数(適用輝度変換関数)を算出する。オリジナル画像中の顔画像部分の明るさを所望の明るさに補正するための標準輝度変換関数(適用輝度変換関数)を算出するために,画像補正装置1は顔領域区画回路11を備えている。補正処理対象の画像データによって表されるオリジナル画像には,人物の顔を表す画像部分(顔画像部分)が含まれているものとする。
顔画像が含まれているオリジナル画像を表すオリジナル画像データが,記憶装置4から読出され,顔領域区画回路11に与えられる。
顔領域区画回路11は,オリジナル画像中に含まれる顔画像部分を,その他の画像部分と区画する(顔画像部分を検出する,境界を画定する)回路である。オリジナル画像中に含まれる顔画像部分を区画する処理には,従来または新規の種々の区画(検出)手法を用いることができる。たとえば,画像の形状,画像の濃度等についてのパターンマッチングを利用して顔画像部分が区画される。あらかじめ用意されたパターンをオリジナル画像上で走査し,マッチングスコアを算出する。所定値以上のマッチングスコアを得られた領域が,顔画像部分と判定される。
もちろん,ユーザが,入力装置2(マウス等)を用いて,オリジナル画像中の顔画像部分をその他の画像部分と区画するようにしてもよい(マニュアルによる顔領域区画)。この場合には,顔領域区画回路11は,画像補正装置1に必ずしも必要とされない。
顔領域区画回路11は,オリジナル画像中に含まれる顔画像部分を表す画像データ(以下,顔画像データという)を出力する。顔領域区画回路11から出力された顔画像データは,輝度変換関数算出回路12および目標ダイナミックレンジ修正回路13のそれぞれに与えられる。
輝度変換関数算出回路12の処理について説明する。図3は,輝度変換関数算出回路12の処理の流れを示すフローチャートである。
輝度変換関数算出回路12には,上述したように,顔領域区画回路11から出力された顔画像データが与えられる。さらに,輝度変換関数算出回路12には,顔画像部分についての目標平均輝度値Ytarget_aveと,目標ダイナミックレンジ幅(目標DR幅)が与えられる(ステップ21)。
顔画像部分についての目標平均輝度値Ytarget_aveは,後述するように,顔画像部分から得られる平均輝度値Yaveの輝度変換後の輝度値(目標輝度値,補正値,出力輝度値)である。
目標ダイナミックレンジ幅(目標DR幅)は,後述の説明によって明らかになるように,顔画像部分についての目標ダイナミックレンジのレンジ幅(目標明輝度値および目標暗輝度値間のレンジ幅)である。
目標平均輝度値Ytarget_aveおよび目標ダイナミックレンジ幅(目標DR幅)は,ユーザによって入力装置2および表示装置3が用いられて設定される。図4は,目標平均輝度値Ytarget_aveおよび目標ダイナミックレンジ幅(目標DR幅)の設定のための画面の一例を示している。スライドバーaがマウスによって操作されて目標平均輝度値Ytarget_aveが設定される。スライドバーbがマウスによって操作されて目標ダイナミックレンジ幅(目標DR幅)が設定される。
目標ダイナミックレンジ幅(目標DR幅)は,輝度補正後の顔画像部分の硬調(又は軟調)に関連する。目標ダイナミックレンジ幅として大きな値(幅)が設定されると,輝度補正後の顔画像部分は硬調に補正される。目標ダイナミックレンジ幅として小さな値が設定されると,輝度補正後の顔画像部分は軟調に補正される。
輝度変換関数算出回路12は,顔画像データに基づいて,顔画像部分の明輝度値Yhl,暗輝度値Ysdおよび平均輝度値Yaveを算出する(ステップ22)。
顔画像部分の明輝度値Yhlは,顔画像部分を構成する画素ごとの輝度値のうち最も大きい輝度値である。顔画像部分の暗輝度値Ysdは,顔画像部分を構成する画素ごとの輝度値のうち最も小さい輝度値である。
顔画像部分の明輝度値Yhlおよび暗輝度値Ysdとして,上述のように,顔画像部分を構成する画素ごとの輝度値のうちの最も大きい値および最も小さい値を採用することもできるが,オリジナル画像によってはノイズ等の影響によって特異な(正確でない)輝度値が存在することがある。特異な(正確でない)輝度値が,顔画像部分の明輝度値Yhlおよび暗輝度値Ysdとされてしまうことを避けるために,顔画像部分を構成する画素ごとの輝度値を用いてヒストグラムを作成し,このヒストグラムにおいて,最も大きい輝度値から1%の面積を占める輝度値を明輝度値Yhl,最も小さい輝度値から1%を占める輝度値を暗輝度値Ysd)として算出してもよい(図5参照)。特異な(正確でない)輝度値を持つ画素が存在していても,その画素に基づいて顔画像部分の明輝度値Yhlまたは暗輝度値Ysdが決定されてしまうのを避けることができる。
顔画像部分の平均輝度値Yaveは,顔画像部分を構成する画素ごとの輝度値の平均値である。次に示す式1によって,平均輝度値Yaveが算出される。
Yave=(ΣYi)/n ・・・式1
ここでYiは顔画像部分を構成する画素ごとの輝度値を,nは顔画像部分の画素数を,それぞれ表す。
平均値に代えて,中央値または最頻値を,平均輝度値Yaveとしてもよい。
顔画像部分の明輝度値Yhl,暗輝度値Ysdおよび平均輝度値Yaveが算出された後,目標ダイナミックレンジ(目標DR)の算出に進む(ステップ23)。上述したように,「ダイナミックレンジ」とは,2つの輝度値(最大輝度値および最小輝度値)を表すデータを意味する。2つの輝度値(最大輝度値および最小輝度値)によって,2つの輝度値間の幅(ダイナミックレンジのレンジ幅)も特定される。目標ダイナミックレンジ(目標DR)の算出処理は,換言すれば,顔画像部分の目標明輝度値Ytarget_hlおよび目標暗輝度値Ytarget_sdの算出を意味する。
図6を参照しつつ,顔画像部分の目標ダイナミックレンジ(目標DR)の算出処理(顔画像部分の目標明輝度値Ytarget_hlおよび目標暗輝度値Ytarget_sdの算出処理)について説明する。図6は,入力輝度値を横軸とし,出力輝度値を縦軸とした輝度変換についての座標図である。
目標ダイナミックレンジ(目標DR)を規定する輝度値のうちの一つである目標明輝度値Ytarget_hlは,次に示す式2によって算出される。
目標明輝度値Ytarget_hl=目標平均輝度値Ytarget_ave+目標明輝度値および目標平 均輝度値間のダイナミックレンジのレンジ幅(目標DRhl幅)
・・・式2
ここで,式2に用いられる目標明輝度値および目標平均輝度値間のダイナミックレンジのレンジ幅(目標DRhl幅)は,顔画像部分の明輝度値Yhlと暗輝度値Ysdの輝度差(図6において,符号Cで示す)に対する顔画像部分の明輝度値Yhlと平均輝度値Yaveの輝度差(図6において,符号Bで示す)の比率を,ユーザによって設定された目標ダイナミックレンジのレンジ幅(目標DR幅)に対して当てはめて得られる値(輝度レンジ幅)である。
式2に示すように,入力された顔画像部分の目標平均輝度値Ytarget_aveに,目標明輝度値および目標平均輝度値間のダイナミックレンジのレンジ幅(目標DRhl幅)を加算した値が,顔画像部分の目標明輝度値Ytarget_hlとされる。
目標暗輝度値Ytarget_sdは,次に示す式3によって算出される。
目標暗輝度値Ytarget_sd=目標平均輝度値Ytarget_ave−目標平均輝度値および目標 暗輝度値間のダイナミックレンジのレンジ幅(目標DRsd幅)
・・・式3
ここで,式3に用いられる目標平均輝度値および目標暗輝度値間のダイナミックレンジ幅(目標DRsd幅)は,顔画像部分の明輝度値Yhlと暗輝度値Ysdの輝度差(図6において,符号Cで示す)に対する顔画像部分の平均輝度値Yaveと暗輝度値Ysdの輝度差(図6において,符号Aで示す)の比率を,ユーザによって設定された目標ダイナミックレンジのレンジ幅(目標DR幅)に対して当てはめて得られる値(輝度レンジ幅)である。
式3に示すように,入力された顔画像部分の目標平均輝度値Ytarget_aveから,目標平均輝度値および目標暗輝度値間のダイナミックレンジのレンジ幅(目標DRsd幅)を減算した値が,顔画像部分の目標暗輝度値Ytarget_sdとされる。
式2および式3によって,目標明輝度値Ytarget_hlおよび目標暗輝度値Ytarget_sdが算出される。すなわち,顔画像部分の目標ダイナミックレンジ(目標DR)が得られる(ステップ23)。目標ダイナミックレンジ(目標DR)のレンジ幅は,ユーザによって設定された目標ダイナミックレンジ幅(目標DR幅)を持つものになる。
上述の処理では,オリジナル画像中に含まれる顔画像部分を表す画像データに基づいて算出される明輝度値Yhl,暗輝度値Ysdおよび平均輝度値Yaveと,ユーザによって設定された顔画像部分の目標平均輝度値Ytarget_aveおよび目標ダイナミックレンジのレンジ幅(目標DR幅)とに基づいて,目標明輝度値Ytarget_hlおよび目標暗輝度値Ytarget_sd(目標ダイナミックレンジ)を算出しているが,目標ダイナミックレンジのレンジ幅(目標DR幅)をユーザによって入力(設定)させることに代えて,目標明輝度値および目標平均輝度値間のレンジ幅(目標DRhl幅)または目標平均輝度値および目標暗輝度値間のレンジ幅(目標DRsd幅)を,ユーザによって入力(設定)させるようにしても,目標明輝度値Ytarget_hlおよび目標暗輝度値Ytarget_sd(目標ダイナミックレンジ)を算出することができるのは言うまでもない。
ここまでの処理によって,0〜255の256レベルの入力輝度値のうち,5つの入力輝度値(0,Ysd,Yave,Yhlおよび255 )のそれぞれに対応する5つの出力輝度値(補正値)(0,Ytarget_sd,Ytarget_ave,Ytarget_hlおよび255)が決定される(図6参照)。
上述した5つの入力輝度値(0,Ysd,Yave,Yhlおよび255 )以外の他の入力輝度値のそれぞれに対応する出力輝度値は,補間処理によって算出される。この補間処理には,スプライン補間法,ニアレスト・ネイバー法,リニア法,キュービック法等を利用することができる。図7は,3次のスプライン補間法によって,図6に示す5つの点(5つの入力輝度値と出力輝度値の対応関係)を補間することによって算出される標準輝度変換関数を示す(ステップ24)。
補間処理に用いる5つの点として,上述のように,(入力輝度値,出力輝度値)=(0,0),(暗輝度値(Ysd),目標暗輝度値(Ytarget_hl)),(平均輝度値(Yave),目標平均輝度値(Ytarget_ave)),(明輝度値(Yhl),目標明輝度値(Ytarget_hl))および(255,255)を用いてもよいし(図6および図7参照),(入力輝度値,出力輝度値)=(0,0)に代えて,(入力輝度値,出力輝度値)=(画像全体の暗輝度値(Ysd_all),0)を,(入力輝度値,出力輝度値)=(255,255)に代えて,(入力輝度値,出力輝度値)=(画像全体の明輝度値(Yhl_all),255)を用いてもよい。たとえば,オリジナル画像全体についての輝度値のヒストグラムを算出して,このヒストグラムにおいて最も大きい輝度値から0.3%の面積を占める輝度値を画像全体の暗輝度値(Ysd_all)とし,最も小さい輝度値から1%の面積を占める輝度値を画像全体の明輝度値(Yhl_all)とする。(入力輝度値,出力輝度値)=(0,0)に代えて(画像全体の暗輝度値(Ysd_all),0)を用い,かつ(入力輝度値,出力輝度値)=(255,255)に代えて(画像全体の明輝度値(Yhl_all),255)を用いて得られる標準輝度変換関数を,図8に示す。
オリジナル画像中に含まれる顔画像部分を表す画像データに基づいて算出される明輝度値Yhl,暗輝度値Ysdおよび平均輝度値Yaveと,ユーザによって設定された顔画像部分の目標平均輝度値Ytarget_aveおよび目標ダイナミックレンジのレンジ幅(目標DR幅)とに基づいて算出される標準輝度変換関数を用いてオリジナル画像データを輝度補正すると,次のような問題が生じることがある。
(1)輝度変換後の顔画像部分の彩度が,輝度変換前の顔画像部分の彩度と比較して高くなりすぎることがある。
たとえば,図9に示すように,顔画像部分の目標平均輝度値Ytarget_aveとして,比較的高い輝度値が入力された場合である。この場合,目標ダイナミックレンジ(目標明輝度値Ytarget_hlおよび目標暗輝度値Ytarget_sd)も比較的高い輝度値とされる。輝度値が高いと画像の彩度も大きくなる。このため,顔画像部分の目標平均輝度値Ytarget_aveとして比較的高い輝度値が入力されると,輝度変換後のオリジナル画像中の顔画像部分の彩度が高くなり,オリジナル画像とかけ離れた印象を持つことがある。
ユーザによって設定される2つのパラメータ(目標平均輝度値Ytarget_aveおよび目標ダイナミックレンジ幅(目標DR幅))のうち,目標ダイナミックレンジ幅については,ユーザが設定した値(幅)を修正しても,大幅な修正でなければユーザの要望(要求)から大きく外れることはない。しかしながら,目標平均輝度値Ytarget_aveについては,ユーザが設定した値を変更すると,ユーザの要望(要求)を満たさない輝度変換後の画像が得られてしまう可能性がある。
ユーザによって設定された顔画像部分の目標平均輝度値Ytarget_aveが高い場合に,ユーザによって入力された顔画像部分の目標平均輝度値Ytarget_aveを変更(修正)することなく,かつ輝度変換後の顔画像部分の彩度が大きくなってしまうことを防止するためには,目標ダイナミックレンジのレンジ幅をより小さい幅に修正(変更)することが考えられる。
目標ダイナミックレンジ修正回路13は,第1に,ユーザによって設定される顔画像部分の目標平均輝度値Ytarget_aveおよび目標ダイナミックレンジ幅(目標DR幅)に基づいて算出される標準輝度変換関数に基づいてオリジナル画像データを輝度変換したとすると,輝度変換後のオリジナル画像中の顔画像部分の彩度が高くなってしまうような場合に,目標ダイナミックレンジのレンジ幅(目標DR幅)を狭める処理(以下,目標ダイナミックレンジのレンジ幅の縮小処理という)を行う(詳細は後述する)。
(2)顔画像部分の明輝度値Yhlを超える輝度値を持つオリジナル画像中の画像部分のコントラストが高くなりすぎることがある。
たとえば,ユーザによって入力される目標ダイナミックレンジのレンジ幅(目標DR幅)が小さい(狭い)場合である。図10を参照して,ユーザによって設定される目標ダイナミックレンジのレンジ幅(目標DR幅)が狭い場合,入力輝度値が顔画像部分の明輝度値Yhlを超える入力輝度値に対応する標準輝度変換関数の傾き(図10において,符号Aで示す範囲の傾き)が非常に大きくなってしまう。すなわち,顔画像部分の明輝度値Yhlを超える輝度値を持つオリジナル画像の部分が極端に硬調になってしまうので,その部分がオリジナル画像とかけ離れた印象になってしまう。
ユーザによって入力された顔画像部分の目標平均輝度値Ytarget_aveを修正することなく,顔画像部分の明輝度値Yhlを超える輝度値を持つ画像部分が硬調に補正されてしまうのを防止するためには,目標ダイナミックレンジのレンジ幅(目標DR幅)を広げることが考えられる。
目標ダイナミックレンジ修正回路13は,第2に,顔画像部分の明輝度値Yhlを超える入力輝度値に対応する標準輝度変換関数の傾きが大きい場合に,その部分の輝度変換関数の傾きが小さくなるように,目標ダイナミックレンジのレンジ幅(目標DR幅)を広げる処理(以下,目標ダイナミックレンジのレンジ幅の拡大処理という)を行う(詳細は後述する)。
以下,上述した目標ダイナミックレンジのレンジ幅の縮小処理,および目標ダイナミックレンジのレンジ幅の拡大処理(いずれも,目標ダイナミックレンジ修正回路13における処理である)について説明する。
図11は,彩度に基づく目標ダイナミックレンジのレンジ幅(目標DR幅)の縮小処理の流れを示すフローチャートである。
上述したように,目標ダイナミックレンジのレンジ幅(目標DR幅)を狭めるかどうかは,顔画像部分の彩度に基づいて決定される。
まず,ユーザによって設定される顔画像部分の目標平均輝度値Yave_targetに基づいて,顔画像部分の上限彩度Smaxが算出される(ステップ31)。
図12は,顔画像部分の目標平均輝度値Ytarget_aveと,顔画像部分の上限彩度Smaxとの関係を示すグラフである。図12に示すグラフを表すデータ(目標平均輝度値Ytarget_aveと上限彩度Smaxとの関係を規定するデータ)は,目標ダイナミックレンジ修正回路13にあらかじめ記憶されている。
図12に示すように,上限彩度Smaxは,目標平均輝度値Ytarget_aveが180のときを基準レベルとして,基準レベルよりも低い場合には比較的大きい一定値をとり,基準レベル以上であれば,目標平均輝度値Ytarget_aveが大きくなるほど小さくなる。目標平均輝度値Ytarget_aveが最大値(255)のとき,上限彩度Smaxは0になる。
目標平均輝度値Ytarget_aveに応じて算出される上限彩度Smaxは,次に説明するように,輝度変換処理後における顔画像部分の彩度(予想彩度)Sfaceと比較される。輝度変換処理後における顔画像部分の彩度Sfaceは,次のようにして算出される(ステップ32〜34)。
まず,顔画像部分の平均RGB値が算出される(ステップ32)。顔画像部分の平均RGB値は,顔画像データを構成する各画素のR値,G値およびB値の平均をとった値である。
次に,標準輝度変換関数が用いられて,顔画像部分の平均RGB値が変換される(ステップ33)。輝度変換関数を用いてオリジナル画像データを輝度変換した場合における,顔画像部分の輝度変換後の平均RGB値が算出される(以下,変換後平均RGB値という)。
顔画像部分を構成するすべての画素のRGB値について標準輝度変換関数を用いて変換処理を行ったのちに,RGBのそれぞれについての平均値を算出するようにしてもよい。
変換後平均RGB値に基づいて,顔画像部分の輝度変換後の彩度(予想彩度)Sfaceが算出される(ステップ34)。顔画像部分の輝度変換後の彩度Sfaceは,変換後平均RGB値に基づいて算出される。変換後平均RGB値のうちの最大値(R値,G値またはB値のいずれか)から最小値(R値,G値またはB値のいずれか)を減算することにより,近似的に顔画像部分の輝度変換後の彩度Sfaceを算出してもよい。
顔画像部分の上限彩度Smaxと,顔画像部分の輝度変換後の彩度Sfaceとが比較される(ステップ35)。
顔画像部分の輝度変換後の彩度Sfaceが上限彩度Smax以下の場合(ステップ35でNO),目標ダイナミックレンジのレンジ幅(目標DR幅)を狭める必要はないと判断される。この場合には,目標ダイナミックレンジ修正回路13は特段の処理を行わない。
他方,顔画像部分の輝度変換後の彩度Sfaceが,上限彩度Smaxを超えている場合(ステップ35でYES),標準輝度変換関数をそのまま用いてオリジナル画像を輝度変換すると,輝度変換後のオリジナル画像中の顔画像部分の彩度Sfaceは,上限彩度Smaxを超えることになる。
顔画像部分の輝度変換後の彩度Sfaceが,上限彩度Smaxを超えている場合(ステップ35でYES),目標ダイナミックレンジ修正回路13は,目標ダイナミックレンジのレンジ幅(目標DR幅)に,Smax/Sfaceを乗算した値を,新たな目標ダイナミックレンジのレンジ幅(以下,制限目標DR幅という)として算出する(ステップ36)。SfaceはSmaxよりも大きな値であるので,算出される制限目標DR幅は,目標ダイナミックレンジのレンジ幅(目標DR幅)を狭めたものになる。
制限目標DR幅に基づいて,目標ダイナミックレンジが修正される(ステップ37)。図13は目標ダイナミックレンジ(目標DR)の修正処理(ステップ36の処理)を模式的に示すものである。
制限目標DR幅が算出されると,目標ダイナミックレンジ修正回路13は,目標ダイナミックレンジのレンジ幅(目標DR幅)を,算出された制限目標DR幅に狭める処理を行う。このとき,目標ダイナミックレンジ修正回路13は,修正後の目標ダイナミックレンジ(目標DR)が制限目標DR幅を持ち,かつ修正の前後において,目標平均輝度値Ytarget_aveおよび目標明輝度値Ytarget_hl間のレンジ幅(図13において符号a,cで示す)と目標平均輝度値Ytarget_aveおよび目標暗輝度値Ytarget_sd間のレンジ幅(図13において符号b,dで示す)との比が維持されるように,新たな目標明輝度値Ytarget_hlおよび目標暗輝度値Ytarget_sdを算出する(a:b=c:d)。目標平均輝度値Ytarget_aveについては,修正処理の前後において変化しない。
このように,標準輝度変換関数に基づいて輝度変換したとすれば,顔画像部分の彩度が大きくなり過ぎることが予想される場合には,目標ダイナミックレンジのレンジ幅が狭くされて,新たな目標明輝度値Ytarget_hlおよび目標暗輝度値Ytarget_sdが算出される。
図2を参照して,目標ダイナミックレンジ修正回路13において算出された修正後の目標ダイナミックレンジ(新たな目標明輝度値Ytarget_hlおよび新たな目標暗輝度値Ytarget_sd)は,目標ダイナミックレンジ修正回路13から輝度変換関数修正回路14に与えられる。輝度変換関数修正回路14において,新たな目標明輝度値Ytarget_hlおよび新たな目標暗輝度値Ytarget_sdが用いられて,輝度変換関数算出回路12において算出された標準輝度変換関数が修正される(適用輝度変換関数の生成)。画像補正回路15は,輝度変換関数修正回路14において修正された輝度変換関数(適用輝度変換関数)を用いて,記憶装置4から読み出された画像データに対して輝度補正処理を施す。輝度補正された画像データが画像補正回路15(画像補正装置1)から出力される。標準輝度変換関数を用いて輝度補正処理を施す場合に比べて,補正後の画像データによって表される画像中の顔画像部分の彩度を抑制することができる。また,ユーザによって設定される目標平均輝度値Ytarget_aveについては修正されないので,適用輝度変換関数にもとづく輝度補正処理において,ユーザの画像の明るさに関する要望はそのまま満たされる。
適用輝度変換関数を用いて得られる顔画像部分の彩度を算出し,算出された彩度が上述の上限彩度Smaxを未だ超えている場合には,さらに目標ダイナミックレンジのレンジ幅をさらに狭めて再度適用輝度変換関数を求めるようにしてもよい。また,上述した例では,修正の前後において,目標平均輝度値Ytarget_aveおよび目標明輝度値Ytarget_hl間のレンジ幅(図13において符号a,c)と目標平均輝度値Ytarget_aveおよび目標暗輝度値Ytarget_sd間のレンジ幅(図13において符号b,d)との比が維持されるように,新たな目標明輝度値Ytarget_hlおよび目標暗輝度値Ytarget_sdを算出しているが(a:b=c:d),制限目標DR幅を満たすことになるように,新たな目標明輝度値Ytarget_hlまたは新たな目標暗輝度値Ytarget_sdのいずれかのみ算出するようにしてもよい(図13の符号cまたはdのいずれかのみの修正)。
上限彩度Smaxに加えて下限彩度Sminも算出し,顔画像部分の輝度変換後の彩度Sfaceが,上限彩度Smaxおよび下限彩度Sminの間に入るように,目標DRを修正してもよい。図14および図15を参照して,上限彩度および下限彩度を利用した目標DRの修正処理(適用輝度変換関数の算出処理)を説明する。図14において,図13に示すフローチャートと同じ処理には同一の符号を付し,重複説明を省略する。
ユーザによって設定される顔画像部分の目標平均輝度値Yave_targetに基づいて,顔画像部分の上限彩度Supに加えて,下限彩度Sminが算出される(ステップ31A)。図15を参照して,下限彩度Sminも,上限彩度Smaxと同様,目標平均輝度値Ytarget_aveと下限彩度Sminとの関係を規定するデータによって決定される。
顔画像部分の輝度変換後の彩度Sfaceが,上限彩度Smaxと下限彩度Sminとの間の値であるかどうかが判断される(ステップ35A)。
顔画像部分の輝度変換後の彩度Sfaceが上限彩度Smaxと下限彩度Sminの間の値である場合(ステップ35AでYES),目標ダイナミックレンジ修正回路13は特段の処理を行わない。
上述したように,顔画像部分の輝度変換後の彩度Sfaceが上限彩度Smaxを超えている場合(ステップ35AでSface>Smax),目標ダイナミックレンジのレンジ幅(目標DR幅)を狭めた制限目標DR幅が算出される(ステップ36)。算出された制限目標DR幅を持つ修正後の目標ダイナミックレンジ(新たな目標明輝度値Ytarget_hlおよび新たな目標暗輝度値Ytarget_sd)が算出される(ステップ37)。修正後の目標ダイナミックレンジにしたがって,標準輝度変換関数が修正される(適用輝度変換関数の生成)。
他方,顔画像部分の輝度変換後の彩度Sfaceが下限彩度Sminを下回っている場合(ステップ35AでSmin>Sface),目標ダイナミックレンジ修正回路13は,目標ダイナミックレンジのレンジ幅(目標DR幅)に,Smin/Sfaceを乗算した値を,新たな目標ダイナミックレンジのレンジ幅(制限目標DR幅)として算出する(ステップ38)。SminはSfaceよりも大きな値であるので,算出される制限目標DR幅は,目標ダイナミックレンジのレンジ幅(目標DR幅)を広げたものになる。算出された制限目標DR幅を持つ修正後の目標ダイナミックレンジ(新たな目標明輝度値Ytarget_hlおよび新たな目標暗輝度値Ytarget_sd)が算出される(ステップ39)。修正後の目標ダイナミックレンジにしたがって,標準輝度変換関数が修正される(適用輝度変換関数の生成)。
適用輝度変換関数を用いて得られる顔画像部分の彩度を算出し,算出された彩度が上述の上限彩度Smaxを未だ超えている,または下限彩度Sminを未だ下回っている場合には,さらに目標ダイナミックレンジのレンジ幅をさらに狭めて,または広げて,再度適用輝度変換関数を求めるようにしてもよい。
彩度に代えて,色相に基づいて,目標ダイナミックレンジのレンジ幅を縮小または拡大するようにしてもよい。この場合には,上限彩度に代えて上限色相が,下限彩度に代えて下限色相がそれぞれ規定される。そして,輝度変換後の顔画像部分の予想色相が,上限色相および下限色相の範囲に入るかどうかが判断される。予想色相が上限色相および下限色相の範囲に入っていない場合,予想色相が上限色相および下限色相の範囲に入るように,目標ダイナミックレンジのレンジ幅が狭められ,または広げられて,適用輝度変換関数が算出される。たとえば,輝度変換前の顔画像部分の彩度がθであるとすると,上限色相および下限色相の範囲はθ±αとされる。この範囲内に予想色相が入っているかどうかが判断される。
次に,輝度値に基づく目標ダイナミックレンジのレンジ幅の拡大処理について説明する。図16は,目標ダイナミックレンジのレンジ幅の拡大処理の流れを示すフローチャートである。フローチャートの説明において,適宜,図17(平均輝度値Yave以上の入力輝度値と,それに対応する出力輝度値との関係図)を参照する。
はじめに,(入力輝度値,出力輝度値)=(顔平均輝度値Yave,目標平均輝度値Ytarget_ave)(図17において△で示す)と,(入力輝度値,出力輝度値)=(255,255)(図17において□で示す)とを結ぶ直線に基づいて,顔画像部分の明輝度値Yhlに対応する出力輝度値が算出される(符号C参照)。符号Cによって規定される出力輝度値を,以下,限界輝度値と呼ぶ(ステップ41)。
限界輝度値よりも小さい出力輝度値が,顔画像部分の明輝度値Yhlに対応する出力輝度値(補正後の輝度値)とされると,図17において一点鎖線で示すように,顔画像部分の明輝度値Yhlを超える輝度値において輝度変換関数の傾きが大きくなる。すなわち,図17において一点鎖線で示す曲線に基づいて輝度変換処理が行われたとすると,明輝度値Yhlを超える輝度値を持つオリジナル画像中の画像部分が硬調に変換されてしまう。
他方,限界輝度値以上の出力輝度値が,顔画像部分の明輝度値Yhlに対応する出力輝度値(補正後の輝度値)とされると,図17において二点鎖線で示すように,顔画像部分の明輝度値Yhlを超える輝度値において輝度変換曲線の傾きが大きくなることはない。すなわち,輝度変換処理が行われても,明輝度値Yhlを超える輝度値を持つオリジナル画像中の画像部分が硬調に変換されてしまうことはない。
そこで,目標ダイナミックレンジ修正回路13は,顔画像部分の目標明輝度値Ytarget_hlと限界輝度値とを比較し,顔画像部分の目標明輝度値Ytarget_hlが限界輝度値よりも小さい場合(すなわち,図17において符号Aで示すような場合)には,顔画像部分の目標明輝度値Ytarget_hlを,限界輝度値に合わせる処理を行う(ステップ42でYES,ステップ43)。他方,標準輝度変換曲線において顔画像部分の目標明輝度値Ytarget_hlが限界輝度値以上である場合(すなわち,図17において符号Bで示すような場合)には,目標ダイナミックレンジ修正回路13は,特段の処理を行わない。
顔画像部分の目標明輝度値Ytarget_hlを限界輝度値に合わせる処理が行われた場合,目標ダイナミックレンジが修正される(ステップ44)。図18は,目標ダイナミックレンジ(目標DR)の修正処理(ステップ44の処理)を模式的に示すものである。
顔画像部分の目標明輝度値Ytarget_hlを限界輝度値に合わせる処理が行われた場合,目標ダイナミックレンジ修正回路13は,限界輝度値を顔画像部分の新たな目標明輝度値Ytarget_hlとするとともに,かつ修正の前後において,目標平均輝度値Ytarget_aveおよび目標明輝度値Ytarget_hl間のレンジ幅(図18において,符号e,gで示す)と,目標平均輝度値Ytarget_aveおよび目標暗輝度値Ytarget_sd間のレンジ幅(図18において,符号f,hで示す)との比が維持されるように,顔画像部分についての新たな目標暗輝度値Ytarget_sdを算出する(e:f=g:h)。目標平均輝度値Ytarget_aveについては,処理の前後において変化させない。なお,目標暗輝度値Ytarget_sdは修正しないようにしてもよい(図18の符号gのみの修正)。
このように,標準輝度変換関数に基づいて輝度変換したとすると,顔画像部分の明輝度値を超える輝度値を持つ画像部分が硬調になってしまうことが予想される場合には,目標ダイナミックレンジのレンジ幅を広げるように,新たな目標明輝度値Ytarget_hlおよび新たな目標暗輝度値Ytarget_sdが算出される。新たな目標明輝度値Ytarget_hlおよび新たな目標暗輝度値Ytarget_sdが用いられて,輝度変換関数修正回路14において標準輝度変換関数が修正され(適用輝度変換関数の生成),適用輝度変換関数に基づいて,画像補正回路15において,オリジナル画像データが輝度変換される。標準輝度変換関数を用いて輝度変換処理を施す場合に比べて,補正後の画像データによって表される画像中の顔画像部分の明るさを超える明るさを持つ部分が硬調に変換されてしまうのが防止される。また,ユーザによって設定される目標平均輝度値Ytarget_aveについては修正されないので,適用輝度変換関数にもとづく輝度補正処理において,ユーザの画像の明るさに関する要望はそのまま満たされる。
このように,画像補正装置1では,標準輝度変換関数に基づいて輝度変換が行われるとすれば,輝度変換後の顔画像部分の彩度が,ユーザによって入力される目標平均輝度値Ytarget_aveに基づいて得られる上限彩度Smaxよりも大きくなってしまう場合には目標ダイナミックレンジのレンジ幅が狭められ,狭められた目標ダイナミックレンジのレンジ幅にしたがって標準輝度変換関数が修正される。輝度補正後の顔画像部分の彩度が極端に高められた印象を持つ補正後の画像が得られてしまうことが防止される。上限彩度Smaxと下限彩度Sminの間の範囲(または上限色相と下限色相の間の範囲)に,輝度変換後の顔画像部分の彩度(または色相)を確実に入らせることもできる。また,顔画像部分の明輝度値Yhlを超える輝度値を持つオリジナル画像中の部分が硬調に変換されてしまう場合には,目標ダイナミックレンジのレンジ幅が広げられ,広げられた目標ダイナミックレンジのレンジ幅にしたがって標準輝度変換関数が修正される。輝度補正後のオリジナル画像中の明るい画像部分の印象が,オリジナル画像の印象とかけ離れてしまうことが防止される。また,目標ダイナミックレンジのレンジ幅が狭められた場合,または広げられた場合のいずれの場合であっても,修正された標準輝度変換関数(適用輝度変換関数)において,オリジナル画像から得られる顔画像部分の平均輝度値Yaveに対する輝度変換後の輝度値は,入力装置2から入力された目標平均輝度値Ytarget_aveに合わせられる。適用輝度変換関数によって輝度補正された補正後の画像が,ユーザの画像の明るさに関する要望から外れることはない。
上述した実施例では,目標平均輝度値Ytarget_aveおよび目標ダイナミックレンジ幅(目標DR幅)は,ユーザによって入力装置2および表示装置3が用いられて設定されるが,あらかじめ標準的な目標平均輝度値Ytarget_aveおよび目標ダイナミックレンジ幅(目標DR幅)の組を記憶装置4に記憶させておき,必要に応じてユーザに修正させるようにしてもよい。
また,複数の人種(コーカソイド,モンゴロイドおよびネグロイド)のそれぞれに対応する目標平均輝度値Ytarget_aveおよび目標ダイナミックレンジ幅(目標DR幅)の組を記憶装置4に記憶させておき,顔画像部分を表すデータに基づいて人種を判別して,判別された人種に対応する目標平均輝度値Ytarget_aveおよび目標ダイナミックレンジ幅(目標DR幅)の組を記憶装置4から読み出して利用してもよい。顔画像部分を表すデータに基づく人種判別処理は,たとえば,次の文献に記載の技術を採用することができる。人種判別処理は,輝度変換関数算出回路12に行わせてもよいし,別途画像補正装置1に設けられる他の回路(たとえば,人種判別回路(図示略))に行わせてもよい。
S.Hosoi, E.Takikawa and M.Kawade, “Ethnicity Estimation with Facial Images” , IEEE Conf. on Automatic Face and Gesture Recognition, pp.195-200, 2004
さらに,オリジナル画像中に複数の顔画像が含まれており,複数の顔画像が顔領域区画回路11において区画された(検出された)場合には,上述した平均輝度値Yaveとして,最も面積の大きい顔画像についての平均輝度値を採用してもよく,オリジナル画像中の中央に位置する,または中央に最も近い顔画像についての平均輝度値を採用してもよい。もっとも確信度の高い顔画像についての平均輝度値,目標平均輝度値Ytarget_aveに最も近いまたは最も遠い平均輝度値を採用してもよい。人種(モンゴロイド,コーカソイド,ネグロイドなど)ごとに目標平均輝度値target_aveを用意しておき,あらかじめ指定された人種についての目標平均輝度値target_aveに最も近い平均輝度値を採用してもよい。すべての顔画像部分を用いて平均輝度値Yaveを算出してもよい。
上述した実施例では,画像補正装置1の処理をハードウェア回路による処理で実現した場合を説明したが,ハードウェア回路の処理の一部または全部をプログラムによって実現するようにしてもよい。