(57)【特許請求の範囲】
【請求項１】
入力した画像を、予め決められた条件に従って複数の被写体領域に分割する分割手段と、
前記分割した各被写体領域の輝度の分布に基づいて、前記画像の輝度を複数の輝度領域に分割し、前記複数の被写体領域のうち、前記分割した各輝度領域に対応する１つの被写体領域の代表輝度値に基づいて、前記輝度領域ごとに第１のゲインを算出する算出手段と、
前記複数の被写体領域のうち、前記輝度領域ごとに、対応する前記１つの被写体領域の輝度の分布と、当該輝度領域以外の少なくとも１つの輝度領域に対応する少なくとも１つの別の被写体領域の輝度の分布とに基づいて、前記第１のゲインを補正して、前記輝度領域ごとに第２のゲインを求める補正手段と、
前記第２のゲインを用いて、前記画像の輝度を変換する変換手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記算出手段は、前記第１のゲインとして、前記分割した各輝度領域に対応する前記１つの被写体領域の代表輝度値を予め決められた輝度に変換するゲインを算出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記複数の輝度領域は、前記複数の被写体領域のうち、最も低い代表輝度値を有する被写体領域に対応する低輝度領域を含み、
前記補正手段は、前記別の被写体領域に含まれる画像信号のうち、前記低輝度領域の輝度を有する画像信号の割合に基づいて、前記第１のゲインを補正し、
前記割合が予め決められた閾値よりも高い場合に、該閾値以下の場合よりも前記第１のゲインを小さくすることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記補正手段は、更に、前記低輝度領域に対応する前記１つの被写体領域の輝度と、前記別の被写体領域の輝度との差に基づいて、前記第１のゲインを補正し、
前記差が予め決められた閾値よりも大きい場合に、該閾値以下の場合よりも、前記第２のゲインの下限を小さくすることをすることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記複数の輝度領域は、前記複数の被写体領域のうち、最も高い代表輝度値を有する被写体領域に対応する高輝度領域を含み、
前記補正手段は、前記別の被写体領域に含まれる画像信号のうち、前記高輝度領域の輝度を有する画像信号の割合に基づいて、前記第１のゲインを補正し、
前記割合が予め決められた閾値よりも高い場合に、該閾値以下の場合よりも前記第１のゲインを大きくすることを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記補正手段は、更に、前記高輝度領域に対応する前記１つの被写体領域の輝度と、前記別の被写体領域の輝度との差に基づいて、前記第１のゲインを補正し、
前記差が予め決められた閾値よりも大きい場合に、該閾値以下の場合よりも、前記第２のゲインの上限を大きくすることをすることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記被写体領域は、少なくとも人物領域、背景領域、空領域を含むことを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記補正手段は、更に、前記複数の被写体領域の優先度を決定し、該優先度に基づいて、前記第２のゲインを求めることを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記補正手段は、前記複数の被写体領域それぞれの面積に基づいて前記優先度を決定することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
分割手段が、入力した画像を、予め決められた条件に従って複数の被写体領域に分割する分割工程と、
算出手段が、前記分割した各被写体領域の輝度の分布に基づいて、前記画像の輝度を複数の輝度領域に分割する分割工程と、
前記算出手段が、前記複数の被写体領域のうち、前記分割した各輝度領域に対応する１つの被写体領域の代表輝度値に基づいて、前記輝度領域ごとに第１のゲインを算出する算出工程と、
補正手段が、前記複数の被写体領域のうち、前記輝度領域ごとに、対応する前記１つの被写体領域の輝度の分布と、当該輝度領域以外の少なくとも１つの輝度領域に対応する少なくとも１つの別の被写体領域の輝度の分布とに基づいて、前記第１のゲインを補正して、前記輝度領域ごとに第２のゲインを求める補正工程と、
変換手段が、前記第２のゲインを用いて、前記画像の輝度を変換する変換工程と
を有することを特徴とする画像処理方法。
【請求項１１】
コンピュータを、請求項１乃至９のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び方法に関し、階調特性を制御する画像処理装置及び方法に関する。
【背景技術】
【０００２】
従来より、入力画像に対し、入力輝度に応じて局所的に異なるゲインをかけることで、階調特性を制御するデジタル覆い焼き処理が提案されている。この覆い焼き処理は、例えば、撮影する主要被写体の明るさが背景の明るさと比較して著しく暗いような、いわゆる逆光シーンにおいて適用することができる。逆光シーンでは、画像全体の明るさを適切にするように制御すると、一般的には主要被写体が暗く撮影される。従って、覆い焼き処理により、暗部に比較的大きなゲインがかかるように設定した輝度別ゲインを用いることによって、暗く撮影された主要被写体が適切な明るさとなるように制御する。
【０００３】
特許文献１では、入力画像を複数の区域に区分し、区域毎に階調変換特性を求めて処理を行うと共に、区分した区域の中から主となる領域を選出し、選出した主となる区域に関しては、階調変換特性を算出する際に高精度の処理を行うことが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２９５５８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載された技術では、各区域においては適切な階調処理を行うことができるが、区域間の関係が考慮されておらず、全体として見た場合に不自然な印象の画像が生成される懸念がある。
【０００６】
本発明は上記問題点を鑑みてなされたものであり、階調補正を行う際に、不自然な画像となることを抑制することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の画像処理装置は、入力した画像を、予め決められた条件に従って複数の被写体領域に分割する分割手段と、前記分割した各被写体領域の輝度の分布に基づいて、前記画像の輝度を複数の輝度領域に分割し、前記複数の被写体領域のうち、前記分割した各輝度領域に対応する１つの被写体領域の代表輝度値に基づいて、前記輝度領域ごとに第１のゲインを算出する算出手段と、前記複数の被写体領域のうち、前記輝度領域ごとに、対応する前記１つの被写体領域の輝度の分布と、当該輝度領域以外の少なくとも１つの輝度領域に対応する少なくとも１つの別の被写体領域の輝度の分布とに基づいて、前記第１のゲインを補正して、前記輝度領域ごとに第２のゲインを求める補正手段と、前記第２のゲインを用いて、前記画像の輝度を変換する変換手段とを有する。
【発明の効果】
【０００８】
本発明によれば、階調補正を行う際に、不自然な画像となることを抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態における画像処理装置の構成を示すブロック図。
【図２】逆光シーンの一例を示す図。
【図３】本実施形態における領域毎情報取得部による情報取得処理を示すフローチャート。
【図４】本実施形態における領域判定処理を説明するための図。
【図５】本実施形態における各被写体領域の輝度ヒストグラムの一例を示す図。
【図６】本実施形態における階調変換特性生成部による階調変換特性の生成処理を示すフローチャート。
【図７】本実施形態における輝度の区間分割の概念を示す図。
【図８】本実施形態における輝度の境界の算出方法を示す図。
【図９】本実施形態におけるGAIN_HUMAN、GAIN_BACK、GAIN_SKYの算出手順を示す図。
【図１０】本実施形態におけるゲイン量調整処理を示すフローチャート。
【図１１】本実施形態における人物領域及び背景領域の出力Bv値の差Bv_HUMAN_OUT−Bv_BACK_OUTとゲイン調整係数の最小値k_low_minとの関係を示す図。
【図１２】本実施形態における背景領域の輝度ヒストグラムにおける低輝度領域と高輝度領域を示す図。
【図１３】本実施形態における低輝度画素率RATIO_LOWとゲイン調整量k_lowとの関係を示す図。
【図１４】本実施形態における背景領域及び空領域の出力Bv値の差Bv_BACK_OUT−Bv_SKY_OUTとゲイン調整係数の最小値k_hi_maxとの関係を示す図。
【図１５】本実施形態における高輝度画素率RATIO_HIとゲイン調整量k_hiとの関係を示す図。
【図１６】ゲイン量の調整を行う理由を説明するための図。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明を実施するための形態を詳細に説明する。
【００１１】
図１は、本発明の実施形態における画像処理装置の構成を示すブロック図である。図１において、撮像部１０１では、処理対象となる画像を撮影する。本実施形態では、後述するように画像の輝度に応じたゲインをかけることで、高輝度部の飽和を抑制しつつ、低輝度部の被写体を明るくして出力する。従って、画像の撮影露出は適正露出よりもアンダーであることが望ましい。なお、本実施形態においては、画像の露出の決め方は特に限定されず、どのような手法を用いてもよい。画像の露出の決め方の例としては、撮影露出を適正露出から予め設定した段差分アンダーとする手法や、ライブビュー時の画像の輝度分布から、高輝度部が飽和しないような撮影露出を設定する手法等が挙げられる。なお、本実施形態では処理対象となる画像を撮像部１０１により撮影する場合について説明するが、処理対象となる画像を、通信や記憶媒体等を介して外部から入力するようにしてもよい。
【００１２】
信号処理部１０２では、撮像部１０１により撮影された画像に対し、所定の信号処理を施す。ここで、所定の信号処理の一例としては、撮像素子の欠陥画素補正や周辺光量落ち補正、及びノイズリダクション処理などが挙げられる。
【００１３】
領域毎情報算出部１０３は、信号処理部１０２において所定の信号処理が施された画像を複数の被写体領域に分割し、被写体領域毎の情報を取得する。本実施形態においては、被写体領域毎の情報として、各領域の代表輝度値、輝度ヒストグラム、および階調変換特性を決定する際の優先度を取得する。なお、領域毎情報算出部１０３における被写体領域毎の情報取得処理については、詳細に後述する。
【００１４】
階調変換特性生成部１０４は、領域毎情報算出部１０３から得られた被写体領域毎の情報に基づいて、階調変換特性を決定する。ここでは階調変換特性として、処理対象の画像に乗じるゲインを輝度別に決定する。なお、階調変換特性生成部１０４における階調変換特性の生成処理については、詳細に後述する。
【００１５】
階調変換処理部１０５では、階調変換特性生成部１０４において生成された輝度別のゲインを用いて、信号処理部１０２において処理された画像の画像信号に対し、階調変換処理（ゲイン処理）を行う。なお、ここで行われる階調変換処理は特に限定されるものではなく、輝度別のゲインと画像の輝度値に基づいて、画像の各画素値に適切なゲインを乗じることで、出力画像を生成する処理であれば良い。
【００１６】
最後に、階調変換処理部１０５において生成された出力画像が、画像表示部１０６及び画像記録部１０７に送られ、画像の表示及び記録が行われる。
【００１７】
次に、領域毎情報算出部１０３及び階調変換特性生成部１０４で行われる処理について説明する。本実施形態では、領域毎情報算出部１０３及び階調変換特性生成部１０４による処理結果を用いて階調変換処理を行うが、階調変換処理を行う画像として、図２に示すような逆光シーンを一例にとって説明する。図２に示すように、逆光シーンでは、主要被写体２０１の明るさに対し、背景が著しく明るい。
【００１８】
まず、領域毎情報算出部１０３における被写体領域毎の情報取得処理について、図３のフローチャートを参照しながら説明する。Ｓ３０１において、処理対象の画像を予め決められた条件に従って複数の被写体領域に分割する。図２に示す例では、被写体領域として、人物領域、背景領域、空領域に分割するものとするが、画像の内容に応じて変えれば良い。この処理において、領域毎情報算出部１０３はまず、図４（ａ）に示すように、所定の大きさのブロックBlock[i][j]に分割する。そして、各ブロックBlock[i][j]が、人物領域、背景領域、空領域のいずれに含まれるかを判定する、領域判定処理を行う。なお、領域判定処理の手法は問わないが、例えば、各ブロックBlock[i][j]の代表輝度値や代表色情報などに基づいて領域判定処理を行うことができる。また、ブロックBlock[i][j]の大きさに関しても特に限定はせず、例えば画素単位で領域判定処理を行ってもよい。
【００１９】
そして、ブロックBlock[i][j]毎に人物領域、背景領域、空領域のいずれに含まれるかを判定すると、判定結果に応じて、例えば、図４（ｂ）に示すように０〜３を割り当てる。ここでは、ブロックBlock[i][j]の判定結果、空だった場合は０を、背景だった場合は１を、人物だった場合は２を、いずれの領域でもない（該当なし）場合には３を割り当てる。ここで、該当なしとは、たとえば各領域の境界部分など、領域の判別が困難な部分を指す。そして、同じ値が割り当てられたブロックをまとめることで、被写体領域に分割することができる。つまり、０が割り当てられたブロックをまとめて空領域、１が割り当てられたブロックをまとめて背景領域、２が割り当てられたブロックをまとめて人物領域とする。なお、本実施形態では、３が割り当てられたブロックは用いない。
【００２０】
次に、Ｓ３０２において、被写体領域毎に代表輝度値を算出する。代表輝度値は、各被写体領域に属する各ブロックの平均輝度値の重みづけ平均値である。具体的には、空領域、背景領域、人物領域のそれぞれの代表輝度値をそれぞれY_SKY、Y_BACK、Y_HUMANとすると、それぞれの値を以下の式（１）から（３）により算出する。
Y_SKY = Σ( W_SKY[i][j] × Block_Y[i][j] )/ ΣW_SKY[i][j]
（Block_id[i][j]=0のブロックのみ）      …（１）
Y_BACK = Σ( W_BACK[i][j] × Block_Y[i][j] )/ ΣW_BACK[i][j]
（Block_id[i][j]=1のブロックのみ）      …（２）
Y_HUMAN = Σ( W_HUMAN[i][j] × Block_Y[i][j] )/ ΣW_HUMAN[i][j]
（Block_id[i][j]=2のブロックのみ）      …（３）
ここで、Block_Y[i][j]は各ブロックの平均輝度値、W_SKY[i][j]、W_BACK[i][j]、W_HUMAN[i][j]は各ブロックに対する重み係数である。なお、重み係数は任意に設定可能とする。
【００２１】
被写体領域毎に重みを別々に設定可能とする理由は以下の通りである。まず、単一の被写体領域である人物や空領域では、代表輝度値は領域内に含まれる各ブロックの平均輝度値の平均値でよいと考えられるため、重みは全ブロックにわたり同一でよい。一方、背景領域には草木や建物など様々な輝度値の被写体が存在するため、撮影者の意図した被写体を反映した正確な代表輝度値を算出する必要がある。一般的に撮影者の意図した被写体は、画像中央部にあることが多いため、背景領域に対しては、例えば、画像中央部の重みを相対的に大きく設定する。このように、各被写体領域に対し、代表輝度値を算出する際の考え方が異なる場合があるため、本実施形態では重み係数を各被写体領域に対して別々に設定可能としている。
【００２２】
次に、Ｓ３０３において、各被写体領域の輝度ヒストグラムを生成する。ここでは、各被写体領域に属する各ブロックの平均輝度値のヒストグラムを生成する。図５は生成された輝度ヒストグラムの一例を示す図であり、図５（ａ）は人物領域の輝度ヒストグラム、図５（ｂ）は背景領域の輝度ヒストグラム、図５（ｃ）は空領域の輝度ヒストグラムを示している。
【００２３】
次に、Ｓ３０４において、各被写体領域に対し、階調変換特性を生成する際の優先度を決定する。ここで、優先度を設定する理由は、本実施形態で行う階調変換処理では、同じ特性の輝度別ゲインを画像全域に対して用いるため、全ての被写体領域に対して、必ずしも所望のゲインを乗じるのではないからである。従って、階調変換特性の生成に当たり、所望のゲインをかける領域の優先度を予め設定しておく必要がある。
【００２４】
優先度の具体的な決め方に関しては、本件では特に限定しないが、例えば、各被写体領域の面積に所定の係数を乗じた値を評価値とし、この評価値から優先度を決定するという手法が挙げられる。その他、代表輝度値が最も小さい領域の優先度を一番高くするといった手法も挙げられる。本実施形態で想定する図２に示す逆光シーンでは、低輝度領域には人物が、高輝度領域には空が、中輝度領域には背景が偏在していることを仮定しており、本実施形態においては、最も優先度の高い領域を背景領域とする。
【００２５】
以上説明した処理により、領域毎情報算出部１０３の出力として、各被写体領域の代表輝度値と輝度ヒストグラム、及び階調変換特性を生成する際の優先度が得られる。
【００２６】
次に、階調変換特性生成部１０４における階調変換特性の生成処理について、図６のフローチャートを参照しながら説明する。階調変換特性生成部１０４では、領域毎情報算出部１０３から得られた各被写体領域の情報を基に、階調変換特性を決定する。ここで、階調変換特性の決定とは、処理対象の画像に乗じる輝度別のゲインを決定することである。
【００２７】
まず、Ｓ５０１において、領域毎情報算出部１０３から得られた各被写体領域の輝度ヒストグラムに基づいて輝度を区間分割し、Ｓ５０２において、輝度の区間毎のゲインを算出する。前述のように、本実施形態で対象とする典型的な逆光シーンでは、図５に示すように、被写体領域毎に輝度の分布が偏る傾向がある。人物領域の輝度は図５（ａ）に示すように低輝度領域に、空領域の輝度は図５（ｃ）に示すように高輝度領域に偏っていることが分かる。そこで、被写体領域毎の情報から、図７に示すように、各被写体領域に対応する輝度の区間を算出し、それぞれの区間に応じた階調変換処理の特性、すなわち画像に乗じるゲインを決定する。
【００２８】
Ｓ５０１の具体的な処理は、図７に示す、輝度の境界となる輝度Y0及びY1を算出することである。算出方法の一例を図８に示す。図８（ａ）に示すように、人物領域の輝度ヒストグラムを、輝度が小さい順に順次累積していき、累積度数が領域面積N_humanに対し所定の割合TH_RATIO_HUMANに達したときの輝度値をY0とする。また、図８（ｂ）に示すように、空領域の輝度ヒストグラムを、輝度が高い順に順次累積していき、累積度数が領域面積N_skyに対し所定の割合TH_RATIO_SKYに達したときの輝度値をY1とする。このようにして求めた境界の輝度Y0及びY1により、輝度を図７に示すように区分する。すなわち、輝度０〜Y0の領域を、人物の輝度が多く偏在する低輝度領域、輝度Y1〜２N−１の領域を、空の輝度が多く偏在する高輝度領域として区分する。そして、低輝度領域及び高輝度領域以外の輝度Y0〜Y1の領域を、背景の輝度が多く偏在する中輝度領域として区分する。
【００２９】
次に、Ｓ５０２において、出力される画像の輝度が撮影者の印象に近づくように、区分された各輝度領域の輝度に乗じるゲインを決定する。
【００３０】
まず、各被写体領域を適正な明るさで出力するときの露光量（以下、「適正Bv値」と呼ぶ。）を算出する。各被写体領域の適正Bv値は、各被写体領域の代表輝度値が、予め設定された目標輝度値となる場合のBv値である。処理対象の画像の撮影時の露光量をBv_CAPTUREとすると、各被写体領域の適正Bv値は、図９に示すように、Bv_CAPTUREを基準として、各被写体領域の代表輝度値から以下のようにして算出することができる。
Bv_SKY = Bv_CAPTURE + ΔBv_SKY      …（４）
Bv_BACK = Bv_CAPTURE + ΔBv_BACK      …（５）
Bv_HUMAN = Bv_CAPTURE + ΔBv_HUMAN      …（６）
ここで、
ΔBv_SKY = log2( Y_SKY_TARGET / Y_SKY )      …（７）
ΔBv_BACK = log2( Y_BACK_TARGET / Y_BACK )      …（８）
ΔBv_HUMAN = log2( Y_HUMAN_TARGET / Y_HUMAN )      …（９）
なお、Bv_SKY、Bv_BACK、Bv_HUMANは各被写体領域の適正Bv値であり、ΔBv_SKY、ΔBv_BACK、ΔBv_HUMANはBv_CAPTUREから各被写体領域の適正Bv値までの差分量である。また、Y_SKY_TARGET、Y_BACK_TARGET、Y_HUMAN_TARGETは、各被写体領域の目標輝度値、Y_SKY、Y_BACK、Y_HUMANは、各被写体領域の輝度値である。
【００３１】
ここで、各被写体領域を適正Bv値で得られる明るさで出力すると、画像全体の見た目が不自然になる。従って、見た目が自然となるような露光量（以下、「出力Bv値」と呼ぶ。）を算出し、各被写体領域の出力輝度が、各出力Bv値相当の明るさとなるようにゲインを設定する。出力Bv値は、各被写体領域の適正Bv値と撮影時の露光量との差分量ΔBvを、基準とする露光量に対して所定の比率で圧縮することで算出する。図９に示す例では、出力Bv値の基準を背景領域の出力Bv値とし、所定の比率を1/2としている。式としては、以下のように表わされる。
Bv_SKY_OUT = ( Bv_SKY + Bv_BACK )/2      …（１０）
Bv_BACK_OUT = Bv_BACK      …（１１）
Bv_HUMAN_OUT = ( Bv_HUMAN + Bv_BACK )/2      …（１２）
ここで、Bv_SKY_OUT、Bv_BACK_OUT、Bv_HUMAN_OUTは各被写体領域の出力Bv値である。
【００３２】
各被写体領域に乗じるゲインは、図９に示すように、Bv_CAPTUREから出力Bv値を引いた差分から算出する。式としては、以下のように表わされる。
GAIN_SKY = 2^(Bv_CAPTURE - Bv_SKY_OUT)      …(１３）
GAIN_BACK = 2^(Bv_CAPTURE - Bv_BACK_OUT)      …（１４）
GAIN_HUMAN = 2^(Bv_CAPTURE - Bv_HUMAN_OUT)      …（１５）
ここで、GAIN_SKY、GAIN_BACK、GAIN_HUMANは、各被写体領域に乗じるゲインである。
【００３３】
次に、Ｓ５０３において、ゲイン量の調整を行う。ここで、ゲイン量の調整を行う理由を図１６を用いて説明する。図１６（ａ）に示すように、逆光シーンの背景領域に人物領域と同様の輝度値を持った画素が多く分布している場合を想定する。図１６（ｂ）に示すような特性を有するゲインを用いた場合、背景領域内に存在する、人物領域と同程度の低い輝度を有する領域に対し、人物領域に乗じるゲインがかかることで、低輝度領域の輝度値が大きくなる。これにより、図１６（ｃ）に示すように、背景領域の暗部が浮いたような不自然な画像が生成されてしまう。これは、階調変換処理を一律の輝度別ゲインを用いて実現していることに起因しており、明るく出力したい人物領域と、明るく出力したくない背景領域の暗部の輝度レベルがほぼ同等の場合、これらの２領域を輝度値から区別できないことが原因である。
【００３４】
逆に、特に背景に対し空が非常に明るい場合には、空が白飛びしないように、高輝度領域のゲイン量を抑制し、階調を圧縮する。しかしながら、背景領域に、高輝度領域と同等の輝度を持った画素が多く分布している場合は、空領域と同様に輝度が圧縮され、コントラストが失われた出力画像となってしまう。
【００３５】
Ｓ５０３では、上記のような現象を緩和するために、ゲイン量の調整を行う。なお、上記のような現象が顕著となるのは、背景領域に低輝度及び、または高輝度の画素が多く分布し、且つ低輝度領域に乗じるゲイン量が大きい場合及び、または高輝度領域の階調圧縮量が大きい場合である。このような場合は、人物領域に乗じるゲイン量を小さくし、空領域に乗じるゲイン量を大きくする調整を行う。すなわち、所望としている効果を落とす方向の調整を行う。しかしながら、常にこのような調整を行うと、出力画像において期待している効果が得られない場合がある。従って、シーンに応じて適応的な制御を行うことが必要である。
【００３６】
図１０は、Ｓ５０３で行われるゲイン量調整処理を示すフローチャートである。図１０に示すように、Ｓ５０３で行うゲイン調整処理には、低輝度側処理と高輝度側処理がある。Ｓ８０１〜Ｓ８０４で行う処理が低輝度側処理で、Ｓ８０５〜Ｓ８０８で行う処理が高輝度側処理である。まず、Ｓ８０１において、人物領域及び背景領域の出力Bv値の差Bv_HUMAN_OUT−Bv_BACK_OUTから、ゲイン調整係数の最小値k_low_min（下限）を求める。
【００３７】
図１１は、人物領域と背景領域の出力Bv値の差Bv_HUMAN_OUT−Bv_BACK_OUTとゲイン調整係数の最小値k_low_minとの関係を示すグラフである。図１１から分かるように、ゲイン調整係数の最小値k_low_minは、人物領域と背景領域の出力Bv値の差が大きいほど小さい値を取る。この理由としては、出力Bv値の差が大きいほど逆光度合いが大きく、人物領域に乗じるゲインが大きくなるので、図１６で説明した現象が顕著に起こり易く、ゲイン量を抑制した方が良い可能性があるからである。なお、図１１に示す例では、出力Bv値の差Bv_HUMAN_OUT−Bv_BACK_OUTが閾値TH1_dBv_lowよりも小さい場合、ゲインの調整を行わないようにすると共に、閾値TH2_dBv_lowよりも大きい場合、ゲイン調整係数の最小値k_low_minをminに固定する。
【００３８】
次に、Ｓ８０２において、背景領域の輝度ヒストグラムから、低輝度画素率RATIO_LOWを算出する。低輝度画素率は、背景領域の全画素数に対し、輝度値が輝度Y0以下の低輝度領域に属する画素数の比率である。図１２は、低輝度領域と、後述する高輝度領域を示す図である。図１２で示される低輝度領域に属する画素は、人物領域の画素値の輝度レベルとおおよそ同一であり、輝度別ゲイン処理によって人物領域と同じ値のゲインがかかる。従って、低輝度画素率RATIO_LOWが大きいほど、図１６で説明した現象が顕著になると考えられる。
【００３９】
次に、Ｓ８０３において、低輝度画素率RATIO_LOWから最終的なゲイン調整量k_lowを求める。図１３は、低輝度画素率RATIO_LOWとゲイン調整量k_lowとの関係を示すグラフである。上述したように、低輝度画素率RATIO_LOWが大きいほど、ゲイン調整量k_lowの値を小さくする。なお、図１３に示す例では、低輝度画素率RATIO_LOWが閾値TH1_ratio_lowよりも小さい場合、ゲインの調整を行わないようにする。これは、背景領域における低輝度の画素が少ない場合、図１６で説明した現象の影響が少ないと考えられるからである。また、低輝度画素率RATIO_LOWが閾値TH2_ratio_lowよりも大きい場合には、ゲイン調整量k_lowをゲイン調整係数の最小値k_low_minに固定する。即ち、低輝度画素率RATIO_LOWが閾値TH1_ratio_lowまたは閾値TH2_ratio_lowよりも大きい場合、閾値TH1_ratio_low以下の場合よりもゲイン調整係数を小さくする。
【００４０】
ただし、図１１に示した通り、出力Bv値の差Bv_HUMAN_OUT−Bv_BACK_OUTに応じてゲイン調整係数の最小値k_low_minは１からminの間を取る。従って、例えば、出力Bv値の差Bv_HUMAN_OUT−Bv_BACK_OUTの差が小さく、ゲイン調整係数の最小値k_low_minが１の場合には、低輝度画素率RATIO_LOWによらず、ゲイン調整量k_lowは１となり、ゲインの調整は行われないことになる。
【００４１】
次に、Ｓ８０４において、低輝度領域（人物領域）に乗じるゲインGAIN_HUMANを、以下の式（１６）により再計算する。
GAIN_HUMAN = GAIN_HUMAN * k_low      …（１６）
【００４２】
以上が、ゲイン量調整の低輝度側処理の内容である。続いて、高輝度側処理の説明を行う。
【００４３】
まず、Ｓ８０５において、背景領域及び空領域の出力Bv値の差Bv_BACK_OUT−Bv_SKY_OUTから、ゲイン調整係数の最大値k_hi_max（上限）を算出する。図１４は、背景領域及び空領域の出力Bv値の差Bv_BACK_OUT−Bv_SKY_OUTとゲイン調整係数の最大値k_hi_maxとの関係を示すグラフである。図１４から分かるように、ゲイン調整係数の最大値k_hi_maxは、背景領域と空領域の出力Bv値の差が大きいほど大きい値を取る。この理由としては、出力Bv値の差が大きいほど高輝度領域の階調圧縮度合が大きく、空領域に乗じるゲインが小さくなるので、図６で説明した現象が顕著になり易く、ゲイン量を大きくした方が良い可能性があるからである。なお、図１４に示す例では、出力Bv値の差Bv_BACK_OUT−Bv_SKY_OUTが閾値TH1_dBv_hiよりも小さい場合、ゲインの調整を行わないようにすると共に、閾値TH2_dBv_hiよりも大きい場合、ゲイン調整係数の最大値k_hi_maxをmaxに固定する。
【００４４】
次に、Ｓ８０６において、背景領域の輝度ヒストグラムから、高輝度画素率RATIO_HIを算出する。高輝度画素率は、背景領域の全画素数に対し、輝度値が輝度Y1以上の高輝度領域に属する画素数の比率である。図１２で示される高輝度領域に属する画素は、空領域の画素値の輝度レベルとおおよそ同一であり、輝度別ゲイン処理によって空領域と同じ値のゲインがかかる。従って、高輝度画素率RATIO_HIが大きいほど、図１６で説明した現象が顕著になると考えられる。
【００４５】
次に、Ｓ８０７において、高輝度画素率RATIO_HIから最終的なゲイン調整量k_hiを求める。図１５は、高輝度画素率RATIO_HIとゲイン調整量k_hiとの関係を示すグラフである。上述した考察より、RATIO_HIが大きいほど、k_hiの値を大きくする。なお、図１５に示す例では、高輝度画素率RATIO_HIが閾値TH1_ratio_hiよりも小さい場合、ゲインの調整を行わないようにする。これは、背景領域における高輝度の画素が少ない場合、図１６で説明した現象の影響が少ないと考えられるからである。また、高輝度画素率RATIO_HIが閾値TH2_ratio_hiよりも大きい場合には、ゲイン調整量k_hiをゲイン調整係数の最大値k_hi_maxに固定する。即ち、高輝度画素率RATIO_HIが閾値TH1_ratio_hiまたは閾値TH2_ratio_hiよりも大きい場合、閾値TH1_ratio_hi以下の場合よりもゲイン調整係数を大きくする。
【００４６】
ただし、図１４に示した通り、出力Bv値の差Bv_BACK_OUT−Bv_SKY_OUTに応じてゲイン調整係数の最大値k_hi_maxは１からmaxの間を取る。従って、例えば、出力Bv値の差Bv_BACK_OUT−Bv_SKY_OUTの差が小さく、ゲイン調整係数の最大値k_hi_maxが１の場合には、高輝度画素率RATIO_HIによらず、ゲイン調整量k_hiは１となり、ゲインの調整は行われないことになる。
【００４７】
次に、Ｓ８０８において、高輝度領域（空領域）に乗じるゲインGAIN_SKYを、以下の式（１７）により再計算する。
GAIN_SKY = GAIN_SKY * k_hi      …（１７）
【００４８】
上記処理によって、図１６で説明した現象を低減するように、低輝度領域に乗じるゲインGAIN_HUMAN及び、高輝度領域に乗じるゲインGAIN_SKYの値が再調整される。
【００４９】
上述したゲイン量調整処理後、図５に戻り、続くＳ５０４において、階調変換特性を生成する。ここで、階調変換特性とは輝度別ゲイン特性のことである。各輝度区間において、上述したようにして調整されたゲインGAIN_HUMAN、GAIN_BACK、GAIN_SKYを用いた場合、各輝度区間の境界部において、階調反転やトーンジャンプが起きる可能性がある。そのため、そのような問題が生じないようなゲイン特性を生成する。ゲイン特性の生成に関しては、本実施形態では特に限定しないが、例えば、適切なゲインをかけたい被写体領域の優先度や、各被写体領域の出力Bv値の関係から、処理対象の画像に適切なゲイン特性を決定する。
【００５０】
上記処理により、階調変換特性生成部１０４の出力として、処理対象の画像に対し適応的に生成された輝度別ゲイン特性が生成される。
【００５１】
以上説明したように、本実施形態によれば、各被写体領域の輝度差だけでなく、中間輝度領域の輝度分布を考慮して、低輝度領域及び高輝度領域のゲイン量を決定する。これにより、背景部分の暗部が不自然に浮き上がったり、明部が過剰に階調圧縮され、コントラストが低下した不自然な出力画像になることを抑制することができる。
【００５２】
なお、上記の実施形態では、最も優先度の高い領域を背景領域とする場合を説明したが、最も優先度の高い領域が人物領域であっても空領域であっても構わない。例えば、最も優先度の高い領域が人物領域の場合には、図１０に示す低輝度側処理に変えて中間輝度側処理として人物領域と背景領域との比較を行い、高輝度側処理として人物領域と空領域との比較を行えばよい。
【００５３】
また、分割された被写体領域が人物領域、背景領域、空領域の３つの被写体領域を含まずに、例えば、人物領域と空領域というように２つの被写体領域のみであっても構わない。その場合、図１０に示す２つの処理に相当する処理のうち一方のみを行うようにすればよい。
【００５４】
＜他の実施形態＞
なお、本発明は、複数の機器（例えばホストコンピュータ、インターフェイス機器、スキャナ、ビデオカメラなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００５５】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００５６】
１０１：撮像部、１０２：信号処理部、１０３：領域毎情報取得部、１０４：階調変換特性生成部、１０５：階調変換処理部、１０６：画像表示部、１０７：画像記録部
【図１】
0006397261.tif 000002
【図２】
0006397261.tif 000003
【図３】
0006397261.tif 000004
【図４】
0006397261.tif 000005
【図５】
0006397261.tif 000006
【図６】
0006397261.tif 000007
【図７】
0006397261.tif 000008
【図８】
0006397261.tif 000009
【図９】
0006397261.tif 000010
【図１０】
0006397261.tif 000011
【図１１】
0006397261.tif 000012
【図１２】
0006397261.tif 000013
【図１３】
0006397261.tif 000014
【図１４】
0006397261.tif 000015
【図１５】
0006397261.tif 000016
【図１６】
0006397261.tif 000017