画像処理装置、画像処理方法、プログラムおよび記録媒体
【課題】画像全体で見て適切な明るさへ階調補正できるように、明るさに応じた少なくとも3つの領域を狙い通りに精度良く判定する。
【解決手段】閾値決定部12は、入力画像のヒストグラムを分析して、入力画像が暗画像でない場合、ヒストグラムの谷位置に該当する第1の閾値と、第1の閾値よりも暗い部分のヒストグラムを分析して、ヒストグラムの谷位置に該当する第2の閾値を決定し、領域判定部40は、第1、第2の閾値に基づき入力画像を明るさに応じたハイライト領域、暗部領域、暗部領域以外の被写体領域に分割する領域判定を行い、階調補正テーブル作成部19は第1、第2の閾値を折点とする折れ線形状の階調補正テーブルを作成する。
【解決手段】閾値決定部12は、入力画像のヒストグラムを分析して、入力画像が暗画像でない場合、ヒストグラムの谷位置に該当する第1の閾値と、第1の閾値よりも暗い部分のヒストグラムを分析して、ヒストグラムの谷位置に該当する第2の閾値を決定し、領域判定部40は、第1、第2の閾値に基づき入力画像を明るさに応じたハイライト領域、暗部領域、暗部領域以外の被写体領域に分割する領域判定を行い、階調補正テーブル作成部19は第1、第2の閾値を折点とする折れ線形状の階調補正テーブルを作成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デジタルカメラやフィルムスキャナ等で撮影された画像に対して階調補正を施す画像処理装置、画像処理方法、プログラムおよび記録媒体に関し、MFP、プリンタ、デジタルカメラの付属ソフトなどに好適な技術に関する。
【背景技術】
【0002】
デジタルカメラにより逆光状態で撮影された画像や夜間撮影された画像は、露出不足のため被写体が暗く写され、また物陰に該当する部分を含んでいる場合には、画像の一部分が暗く写されてしまう。そのような画像に対しては、自動で明るさを補正する技術が種々研究され、既に実用化されている。
【0003】
例えば、特許文献1は、輝度ヒストグラムの高輝度側と低輝度側で2つのピークがある逆光画像を想定し、輝度ヒストグラムの谷位置に該当する境界値を求め、境界値より低輝度側の重心が目標補正値になるように明るく補正する技術であり、また低輝度側の重心を目標補正値に補正すると同時に、境界値より高輝度側の重心位置により階調補正量を制限するようにした技術も開示されている。階調補正は、低輝度側や高輝度側の重心が各々の目標補正値(高輝度側は階調補正量を制限するための目標補正値)になるように作成した補正テーブルに従って行い、補正テーブルは、低輝度側や高輝度側の重心を折点とする折れ線形状で作成される。
【0004】
特許文献2は、主要被写体領域を抽出し、主要被写体領域の中央値の関数として階調補正量を算出し、一方で主要被写体が属さない明度域(主要被写体よりも明るい明度域)を制御領域として階調補正量を制御することにより、過補正を防止する技術であり、主要被写体領域の輝度ヒストグラムの中央値Aと最大値Cを折点とする折れ線形状の輝度補正カーブを作成し、AとCの間の傾きを1にすることで主要被写体領域の階調性を損なわないようにしている。
【0005】
ところで、特許文献1の技術では、重心に該当する輝度は最適な補正目標値に補正されるが、画像全体で見て最適な補正が行えるとは限らない。例えば、画像暗部に存在し、目視での識別が困難な複数の被写体オブジェクトが、補正によって十分に識別できるようになる保証はない。また、高輝度側の重心を使って補正量を制限できるが、これも重心の輝度値だけで制限するので、画像全体で見て制限が不十分になる可能性や、必要以上に補正量を制限してしまう可能性がある。特許文献2の技術も同様に、輝度ヒストグラムの中央値の関数として階調補正量を算出しているので、中央値に該当する輝度では最適であっても画像全体で見て最適な補正が行えるとは限らない。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明者は先に、画像の暗部領域を抽出して暗部領域を色差に応じてクラスタリングし、クラスタ数が1の場合は明るさ補正を行わず、クラスタ数が1より大きい場合はクラスタ間色差等に基づいて補正量を決定して明るさ補正することにより、暗部領域に物体が潜んでいる画像に限り、暗部領域の視認性が向上するように階調補正する技術(特願2008−180337号)や、画像中の被写体領域を判定して被写体領域における代表色を抽出し、代表色における補正量上限を設定して代表色における階調補正前後の色差が補正量上限を超えない範囲内で補正量を決定して階調補正する技術(特願2008−227086号)を提案した。
【0007】
またハイライト領域の飽和度に基づき補正量を制限する技術も提案し、実施例では、両発明を組み合わせて輝度ヒストグラムから暗部領域、被写体領域、ハイライト領域を抽出し、各領域の閾値を折点とした折れ線形状の階調補正テーブル(補正トーンカーブ)を生成して階調補正を行う例を示した。この実施例では、特許文献1、2のように1〜2点の輝度値に対する補正目標値に基づいて階調補正テーブルを作成する手法とは相違し、暗部領域の視認性向上とノイズ防止、およびハイライト領域における階調つぶれ抑制、および、被写体領域に対して画像の印象を変えすぎないように考慮した補正量設定を行い、画像全体でバランスの取れた最適な明るさに階調を補正することができるが、画像全体でバランスの取れた最適な明るさに階調補正するためには、明るさに応じた少なくとも3つの領域を判定することが必要となる。
【0008】
本発明は上記した課題に鑑みてなされたもので、
本発明の第一の目的は、画像全体で見て適切な明るさへ階調補正できるように、明るさに応じた少なくとも3つの領域を狙い通りに精度良く判定し、更には、輝度ヒストグラムが極端に偏っている全体的に暗い画像に対しても、画像全体で見て適切な明るさへ階調補正できるように、明るさに応じた少なくとも3つの領域を狙い通り精度良く判定する画像処理装置、画像処理方法、プログラムおよび記録媒体を提供することにある。
【0009】
また、従来技術1では、重心を折れ線形状の階調補正テーブルの折点としているが、重心は頻度の高い輝度であることが多いので、頻度の高い輝度部分で、階調性が一様でなく不自然な感じに補正され、また従来技術2も輝度の中央値を折点としているため、同様に不自然に補正されてしまう。
【0010】
そこで、折れ線形状ではなく、曲線形状の階調補正テーブルを用いることで、上記した問題を解消することができるが、補正量を反映した曲線形状の階調補正テーブルを作成すると計算量が多くなったり、あるいは補正量を細かく制御するのが難しいことなどから、必ずしも実用的な手法とはいえず、実際には、折れ線形状の階調補正テーブルが使用されている場合が多い。
【0011】
本発明の第二の目的は、ヒストグラムの谷位置に該当する第一の閾値と第二の閾値に基づき、明るさに応じた少なくとも3つの領域を判定し、第一の閾値と第二の閾値を領域判定だけでなく、折れ線形状の階調補正テーブルを作成する際に折点として使用することにより、画像処理による不自然な階調性の劣化を防止した画像処理装置、画像処理方法、プログラムおよび記録媒体を提供することにある。
【課題を解決するための手段】
【0012】
本発明は、入力画像のヒストグラムを作成するヒストグラム作成手段と、前記ヒストグラムを分析して、ヒストグラムの谷位置に該当する第一の閾値を決定する第一の閾値決定手段と、前記入力画像が全体的に暗い画像であるか否かを判定する暗画像判定手段と、前記暗画像判定手段の判定結果に応じて前記ヒストグラムの所定範囲を分析して、ヒストグラムの谷位置に該当する第二の閾値を決定する第二の閾値決定手段と、前記暗画像判定手段の判定結果に基づいて前記第一の閾値を修正する閾値修正手段と、前記第一の閾値または修正された第一の閾値および前記第二の閾値に基づいて、前記入力画像を明るさに応じた少なくとも3つの領域に分割する領域判定を行う領域判定手段と、前記領域判定手段の判定結果に基づいて、前記入力画像に対して画像処理を行う画像処理手段とを備えることを最も主要な特徴とする。
【発明の効果】
【0013】
本発明によれば、画像全体で見て適切な明るさへ階調補正できるように、明るさに応じた少なくとも3つの領域を狙い通りに精度良く判定することができ、さらには、輝度ヒストグラムが極端に偏っている全体的に暗い画像に対しても、画像全体で見て適切な明るさへ階調補正できるように、明るさに応じた少なくとも3つの領域を狙い通りに精度良く判定することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の実施例1の構成を示す。
【図2】ヒストグラム例と、画像を領域判定した結果の一例を示す。
【図3】閾値決定部の構成を示す。
【図4】入力画像が暗画像でない場合の分析範囲1、分析範囲2、決定される閾値を示す。
【図5】入力画像が暗画像である場合の分析範囲1、分析範囲2、決定される閾値を示す。
【図6】本発明により作成される補正テーブルの形状を示す。
【図7】領域面積率計算部の構成を示す。
【図8】第一の補正量生成部の構成を示す。
【図9】クラスタリング部の構成を示す。
【図10】予備クラスタリング部の処理フローチャートである。
【図11】クラスタ統合部の処理フローチャートである。
【図12】クラスタリング結果の例を示す。
【図13】クラスタリング結果の他の例を示す。
【図14】第1の補正量決定部の構成を示す。
【図15】補正量算出部の構成を示す。
【図16】最暗クラスタの補正量制限を説明する図である。
【図17】第二の補正量生成部の構成を示す。
【図18】仮補正テーブル作成部により作成される補正テーブルを示す。
【図19】被写体代表色抽出部の構成を示す。
【図20】第三の補正量生成部の構成を示す。
【図21】補正量決定部の構成を示す。
【図22】本発明の実施例2の構成を示す。
【図23】実施例2における第一の補正量生成部の構成を示す。
【図24】実施例2における第二の補正量生成部の構成を示す。
【発明を実施するための形態】
【0015】
以下、発明の実施の形態について図面により詳細に説明する。
【実施例1】
【0016】
図1は、本発明の実施例1の構成を示す。輝度変換部10は、ビットマップ形式の入力画像データの各画素のRGB値を、次式で輝度Yに変換する。
Y=0.30×R+0.59×G+0.11×B
ヒストグラム作成部11は、輝度Yのヒストグラムを作成する。RGBが0〜255の各8bitの値を持つ場合で説明すると、Yも0〜255の値を持つことになる。
【0017】
閾値決定部12は、作成したヒストグラムに基づき、画像内における被写体領域、暗部領域、ハイライト領域を判定するための閾値th1,th2を求める。図2(a)は、ヒストグラムの例を示す。閾値th1はハイライト領域と被写体領域の境界に該当する閾値、閾値th2は被写体領域内における暗部領域とその他の領域の境界に該当する閾値である。図2(b)は、画像を領域判定した結果の一例を示す。上空部分がハイライト領域、被写体である建築物の影領域であって、何が写っているか視認困難な部分が暗部領域、それ以外の被写体部分が暗部領域以外の被写体領域として領域判定されている。閾値決定部12では、このような領域判定を行うための閾値th1,th2を決定する。
【0018】
図3(a)は、閾値決定部12の構成を示す。図3(a)の120が第一の閾値決定部、121が第二の閾値決定部に該当する。ヒストグラム形状から適応的に背景と対象物を分離する二値化閾値を求める判別分析法を2回使用して閾値を決定する。
【0019】
図3(b)は、判別分析法を説明する図である。簡単に説明すると、ヒストグラムの入力の最小値st〜閾値Tまでを一つのクラス、閾値T〜入力の最大値enまでを一つのクラスとして、判別分析法の評価値である(クラス間分散/クラス内分散)が最大になる閾値Tを求めることで、背景と対象物がよく分離され(即ちクラス間分散が大きい)、かつ、背景内および対象物内がよくまとまっている(即ちクラス内分散が小さい)二値化閾値を求める方法である。
【0020】
判別分析法を用いることにより、分析範囲内における(局所的ではなく大局的な)谷位置を探すことができる。なお、判別分析法は、谷位置に該当する閾値を探すための手段として適切であるため、本実施例では判別分析法を使用した例を提示するが、判別分析法に近い精度で画像に対して適応的に谷位置を探すことができる方法であれば他の方法でも構わない。
【0021】
判別分析法1201では、ヒストグラムの入力値の最小値から最大値までを分析範囲として(分析範囲1)判別分析法を適用し、二値化閾値TH1を求める。
【0022】
暗画像判定部122では、閾値TH1を予め設定した閾値と比較することにより、入力画像が全体的に暗い画像であるか否かを判定する。ヒストグラムの入力輝度値が0〜255である場合、暗画像判定の閾値は50くらいの値に設定するのが経験上妥当である。
【0023】
TH1<50の場合は、全体的に暗い画像(暗画像)であると判定し、TH1≧50の場合は、全体的に暗い画像ではないと判定する。なお、ここではTH1を使って判定する例を示したが、暗画像を判定する他の手法として、例えば、ヒストグラムを暗い側から加算して、全体の10%に該当する入力輝度値を求め、全体の10%に該当する入力輝度値が予め設定した閾値よりも暗い側にあれば暗画像であると判定しても良い。
【0024】
分析範囲2の設定部1211では、暗画像でない場合は、ヒストグラムの入力値のうち最小値から閾値TH1までの暗い側を分析範囲2として設定し、暗画像である場合は、ヒストグラムの入力値のうち閾値TH1から最大値までの明るい側を分析範囲2として設定する。
【0025】
判別分析法1212では、設定した分析範囲2に対して判別分析法を適用し、閾値TH2を求める。閾値修正部1202は、暗画像である場合に、閾値TH1をTH1よりも明るい値TH1’に修正する。修正方法に関しては後述する。暗画像でない場合はTH1’=TH1として修正は行わない。
【0026】
3値化閾値決定部123では、暗画像でない場合は、th1=TH1’(=TH1)、th2=TH2として閾値th1,th2を決定し、暗画像である場合は、th1=TH2、th2=TH1’として閾値th1,th2を決定する。
【0027】
図4は、入力画像が暗画像でない場合の例であり、(a)はヒストグラム、(b)は分析範囲1に対するクラス間分散とクラス内分散、(c)は分析範囲1に対する判別分析法の評価値のグラフである。(b)と(c)の横軸は判別分析法の閾値Tである。分析範囲1と分析範囲2、および、決定される閾値は図示したとおりである。TH1よりも暗い側を分析範囲2として設定し、TH2を求めている。
【0028】
図5は、入力画像が暗画像である場合の例であり、(a)はヒストグラム、(b)は分析範囲1に対するクラス間分散とクラス内分散、(c)は分析範囲1に対する判別分析法の評価値のグラフである。分析範囲1と分析範囲2、および、決定される閾値は図示したとおりである。TH1よりも明るい側を分析範囲2として設定し、TH2を求めている。
【0029】
暗画像の場合、ハイライト側に山がないヒストグラム形状になっているため、第一の閾値決定部120で決定する谷位置に該当する閾値が、本来暗部領域として判定したい領域内における谷位置に設定されてしまう(そのためTH1が50未満の明らかに本来の暗部領域内であるはずの値になる)。これに対して暗画像か否かを区別せずに暗画像でない画像と同様の処理を行ってしまうと、次に決定される閾値TH2はTH1よりも更に暗い値に設定されてしまい、本来の暗部領域内で閾値th1,th2が決定され狙い通りの領域判定ができない。
【0030】
そこで、暗画像である場合には、分析範囲2をTH1よりも明るい側に設定してTH2が本来の暗部領域内の値でなく、それよりも明るい値に設定されるようにしている。その場合、TH1とTH2の大小関係が暗画像でない場合とは逆になるので、3値化閾値決定部123では、TH1とTH2の対応関係を逆転させてTH2の方をハイライト領域と被写体領域の境界に該当する閾値th1としている。
【0031】
また、閾値TH1も前述の通り、本来の暗部領域内で設定されてしまっているので、閾値修正部1202では、ヒストグラム形状から見て、本来の暗部領域とその他の領域の境界付近と判断されるTH1’へ修正している。
【0032】
閾値修正部1202におけるTH1’の求め方について説明する。図5の例では、本来暗部領域以外の画素はごく僅かで殆どが暗部領域の画素なので、図5(a)のヒストグラムでは、画素が集中している暗い側の輝度と、山が存在しない明るい側の輝度との境界付近(ヒストグラムの立下り位置)にTH1’を設定し直したい。図5(a)のヒストグラムと図5(c)の判別分析法の評価値を見比べると、ヒストグラムの立ち下がり位置は(c)のグラフをハイライト側から見ていった時に最初に出現する評価値の変曲点と対応している。図5の例だけでなく、他の暗画像のヒストグラムおよび判別分析法の評価値でも同じ対応関係が成り立つ。
【0033】
そこで、ハイライト側に最初に出現する変曲点の位置を求めて、閾値TH1の修正後の閾値TH1’とする。(c)の変曲点は、閾値TH1と分析範囲1の最大値の位置における評価値グラフを直線で結び(図5(c)のAとB結んだ点線)、TH1よりも明るい範囲内でAとB結んだ点線と評価値グラフの実線との距離が最大になる入力輝度値を見つけてそれをTH1’とすることで求める。
【0034】
画像サンプリング部30は、画像が所定サイズよりも大きい場合には、画像を平均値でサンプリングする。使用する画像データの画素数が大きすぎると処理に時間がかかり、また性能面でも解像度が高すぎるとノイズの影響から階調補正のための補正量が正確に求められないことがあるので、画像が所定サイズよりも大きい場合には、画像を平均値でサンプリングする。例えば、長辺が640画素よりも大きい場合に、サンプリングを実施し、長辺の画素数が640の3倍の画像が入力された場合には、3×3画素毎に平均値を求めてサンプリング画像の画素値とする。
【0035】
領域判定部40は、サンプリング画像の各画素が暗部領域に属するか否か、ハイライト領域に属するか否かを、閾値th1,th2に基づき判定する。サンプリング画像のRGB値から輝度Yを求め、輝度Yを閾値th1,th2と比較する。
・Y<th2、かつ、Max(R,G,B)−Min(R,G,B)<50ならば、暗部領域の画素であると判定する。
・Y≧th1ならば、ハイライト領域の画素であると判定する。
【0036】
暗部領域の画素の判定条件に、Max(R,G,B)−Min(R,G,B)<50を加えているのは、彩度が比較的高く、視認可能な領域を暗部から除外して判定するためである。暗部領域とハイライト領域を判定することにより、どちらにも属さない画素は暗部領域以外の被写体領域に属する画素であることが自明であるので、図2(b)のように画像を明るさに応じた3つの領域に分割する領域判定を行っていることになる。領域判定結果は2ビットで表し、最初の1ビットが暗部領域の画素であるか否かを表し、次の2ビットがハイライト領域の画素であるかを表すものとする。
【0037】
階調補正テーブル生成部19は、補正量決定部18が決定した最終的な補正量Δに応じて階調補正テーブルを生成する。入力画像データや抽出した色情報等に基づき、第一の補正量生成部15は、暗部領域の視認性向上に着目した補正量を生成し、第二の補正量生成部16は、ハイライト領域の階調つぶれ抑制に着目した補正量を生成し、第三の補正量生成部17は、補正前後で画像の印象を大きく変えないことに着目した補正量を生成し、補正量決定18は、最終的な補正量Δを決定する。
【0038】
図6は、最終的に作成する補正テーブルの形状を示したものである。補正テーブルは輝度Yの変換テーブルとする。制御点は、始点0と終点255以外では、入力Y=th1,th2,Yaの3点であり、各区間内では直線形状とする。制御点th1とth2は前述の閾値決定部12から出力される閾値であり、制御点Yaは後述の第一の補正量生成部15から出力される暗部領域内の制御点である。補正量Δは、制御点Yaにおける入力Yに対する出力Yの増加分を表したものである。暗部領域における0≦入力Y<Yaの傾きα1は、YaとΔにより決まる。制約条件として、暗部領域以外の被写体領域に該当するth2≦入力Y<th1で、傾きα3を1にして階調性を保存し、Ya≦入力Y<th2は区間境界で傾きが急激に変化することを防止するため傾きα2を傾きα1とα3の中間とする。これにより、3つの制御点と補正量Δが決まれば、補正テーブル全体が決まる。また、3つの制御点が決まっていれば、もう一つの情報は補正量Δでなくα4であっても、あるいは補正テーブルが通るどこか一点の入力と出力のデータセットであっても、上記制約条件から補正テーブル全体を決定することが可能である。
【0039】
階調補正部20は、生成した補正テーブルを基に、入力画像データの各画素に対して階調補正を施す。RGBから輝度変換により輝度Yを算出し、算出した輝度Yを入力として補正テーブルを参照して出力Yを求め、RGBの各信号に対して(出力Y/入力Y)を乗算したものを階調補正後のRGBとする。
【0040】
領域面積率計算部13は、第一の補正量生成部15で使用する暗部面積率Pdと、第二の補正量生成部16で使用するハイライト面積率Phを求めておく。
【0041】
図7は、領域面積率計算部13の構成を示す。図2(a)のヒストグラムと閾値th1から、ハイライト/被写体画素数計数部130は、被写体領域の画素数Naとハイライト領域の画素数Nbを計数する。被写体領域の画素数はヒストグラムにおける0≦Y<th1の画素数を全て足し合わせることで求められ、ハイライト領域の画素数はヒストグラムにおけるth1≦Y≦255の画素数を全て足し合わせることで求められる。同様に、ヒストグラムと閾値th2から、暗部画素数計数部132は、暗部領域の画素数Ncを計数する。暗部領域の画素数はヒストグラムにおける0≦Y<th2の画素数を全て足し合わせることにより求められる。
【0042】
ハイライト面積率計算部131では、画像内におけるハイライト領域の面積率Phを次式で求める。
Ph=Nb/(Na+Nb)
暗部面積率計算部133では、被写体領域における暗部領域の面積率Pdを次式で求める。
Pd=Nc/Na
【0043】
図8は、第一の補正量生成部15の構成を示す。クラスタリング部153は、領域判定結果から暗部領域の画素であるか否かの情報を取得し、色変換部152でLabに変換したサンプリング画像データを入力として、クラスタリングを行う。
【0044】
図9は、クラスタリング部153の構成を示す。予備クラスタリング部156は、色差に応じて暗部領域判定結果を、1つ以上のクラスタに分割した後、クラスタ統合部157では、画素数の少ないクラスタを他のクラスタに統合する。
【0045】
図10は、予備クラスタリング部156の処理フローチャートである。注目画素のLabを順次入力し(ステップ1561)、クラスタリングを行う。画像先端からスタートして初めて暗部領域の画素が入力された時点では、クラスタ数Nが初期化されてN=0にセットされた状態であるため(ステップ1560)、色差による条件分岐(ステップ1565)で“No”の方に進んでクラスタ1を新規クラスタとして追加し、クラスタ数をN=1に設定、クラスタ1の画素数をn(1)=0に設定、クラスタ1の平均Labに注目画素のLab値が設定される(ステップ1568,1569)。
【0046】
その後は、順次入力される注目画素のLab値に対して、暗部領域の画素であれば(ステップ1570)、各クラスタの平均Labとの色差を求め(ステップ1563)、その中で色差最小のクラスタ番号jと色差dE_minの組を抽出する(ステップ1564)。色差による条件分岐(ステップ1565)で色差dE_minが予め設定された閾値dE_th以下であれば“Yes”の方に進んでクラスタjに注目画素を追加し、平均Labを再計算する(ステップ1566,1567)。クラスタjの画素数n(j)を+1して、L*a*b*の平均値を以下の式に従い再計算する。
(再計算後の平均L)=((再計算前の平均L)×(n(j)−1)+(注目画素のL))/n(j)
(再計算後の平均a)=((再計算前の平均a)×(n(j)−1)+(注目画素のa))/n(j)
(再計算後の平均b)=((再計算前の平均b)×(n(j)−1)+(注目画素のb))/n(j)
色差による条件分岐(ステップ1565)で色差dE_minが予め設定された閾値dE_thより大きければ“No”の方に進んで新規クラスタを追加し、クラスタ数Nをカウントアップして新規クラスタの画素数を0に設定し、平均Labに注目画素のLabを設定する(ステップ1568,1569)。新規クラスタを追加するか否かの境界色差を表しているのがdE_thであり、暗部の何が写っているかはっきり視認できない領域を対象としていることを考慮してdE_th=3くらいの小さい値に設定しておくのが適当である。画像後端まで到達して入力するLabデータが無くなった時点で、クラスタリング終了となる。
【0047】
予備クラスタリング部156で分割されたクラスタのうち、ある程度画素数が少ないクラスタはノイズ成分に反応して発生したクラスタであることが多く、いずれにしても被写体を有意な塊単位で抽出する際に、不要または重要性が低いクラスタである。
【0048】
図11は、クラスタ統合部157の処理フローチャートである。各クラスタを順次見ていき、クラスタの画素数が所定閾値n_thより小さいか否かを判定し(ステップ1575)、小さい場合は注目クラスタiの平均Labと他のクラスタの平均Labとの色差を求め(ステップ1576)、他のクラスタ全てに対して求めた色差のうち最小のものに該当するクラスタ番号jを抽出し(ステップ1577)、クラスタiをクラスタjに統合する(ステップ1578)。クラスタjの画素数にクラスタiの画素数を加算し、クラスタiの画素数を0に変更する。統合するクラスタの画素数境界である閾値n_thは、暗部領域の画素数に対して例えば15%(10%〜20%程度に設定するのが適当)の画素数に相当する値を画像毎に求めて、それを閾値とする。
【0049】
図8に戻り、判断部154は、クラスタ数に応じて階調補正を行うか否か判断する。図12、図13(a)、(c)はクラスタリング結果の例である。図12(a)は、夜空を背景に花火を撮影した画像であり、暗部領域をクラスタリングした結果、暗部は全て一つのクラスタ(クラスタ1)になり、クラスタ数は1である。図12(b)は、夜間にライトアップされた建築物を撮影した画像であり、暗部領域をクラスタリングした結果、背景と建物が別々のクラスタに分割され、クラスタ数は2である。図13(a)は、人物を逆光で撮影した画像であり、暗部は5つのクラスタに分割されている。図13(b)は花を撮影した画像であり、葉が重なり合って影になった暗部領域が存在する画像である。これをクラスタリングした結果が図13(c)であり、影に隠れた葉と葉脈が概ね別クラスタに分割され、クラスタ数は2である。
【0050】
判断部154では、クラスタ数が1であれば階調補正を行わないと判断し、クラスタ数が1以外であれば階調補正を行うと判断する。これにより、夜空を背景に花火を撮影した画像のように暗部に該当する夜空に何もオブジェクトが潜んでおらず、明るく補正する必要がない画像が入力された場合に、階調補正を行わないと判断して処理することができる。
【0051】
図14は、第1の補正量決定部155の構成を示す。判断部154が階調補正を行わないと判断した場合は、選択部159はΔ1b=0を選択して、Δ1=Δ1aを補正量として出力することにより、実質的に階調補正を無効にする。判断部154が階調補正を行うと判断した場合は、補正量算出部158が算出した補正量Δ1bを選択して、Δ1=Δ1bを補正量として出力する。
【0052】
図15は、補正量算出部158の構成を示す。第一のクラスタ抽出1580は、各クラスタの画素数を比較して画素数が最も多いクラスタとその次に多いクラスタを抽出する。2つのクラスタのうち明度が高い方をクラスタA、明度が低い方をクラスタBと表記する。色差計算部1582では、クラスタAとクラスタBの補正前の平均Lab同士の色差dE1を計算しておく。補正量生成部1592は補正量Δ1bを設定して、仮補正テーブル生成部1591は補正量に応じた仮補正テーブルを作成する。階調補正部1585は仮補正テーブルを用いた階調補正を、クラスタAの平均Labを色変換部1584でRGBに変換したRGB_aと、クラスタBの平均Labを同じくRGBに変換したRGB_bに対して行い、補正後の値を色変換部1586で再度Lab信号に変換する。色差計算部1587では、クラスタAとクラスタBの補正後の平均Lab同士の色差dE2を計算する。色差比計算部1588では、補正前の色差dE1と補正後の色差dE2の比率を計算して求める。
【0053】
第二のクラスタ抽出部1581では、最も暗いクラスタを抽出する。最も暗いクラスタをクラスタCと表記する。ちなみに、画像によってはクラスタBとクラスタCが同じクラスタを指すこともあるが、それでも構わない。階調補正部1585では、仮補正テーブルを用いた階調補正を、クラスタCの平均Labを色変換部1584でRGBに変換したRGB_cに対して行い、補正後の値を色変換部1586で再度Lab信号に変換する。
【0054】
暗部補正量判定部1589では、以下の終了条件1または終了条件2を満たせば、その時点での補正量Δ1bを出力して終了する。どちらの終了条件も満たさなければ、補正量生成部1592では、変更した補正量を発生させ、終了条件を満足するまで処理を繰り返す。
[終了条件1]クラスタAとクラスタBの補正前後の色差比が、色差比目標値設定部1583に設定された目標値Xd以上である。
[終了条件2]クラスタCの補正後の平均Lが、最暗クラスタの明度上限設定部1590に設定された上限値Lc_th以上である。
【0055】
画素数が最も大きいクラスタと次に大きいクラスタの色差が補正前のX倍になるように補正するということは、他の面積の狭いクラスタ同士の色差比に着目して補正するよりも視認性が向上したことが観察者に認識されやすく、非常に効果的である。また、最も暗いクラスタが明るく補正されすぎないように補正量を制限することは、暗部ノイズが目立つ副作用を防止するのに有効である。
【0056】
図16は、最暗クラスタの補正量制限を説明する図である。(a)は暗部を示し、(b)は暗部を拡大した図である。YcとYc_thは、最暗クラスタの補正量制限をわかりやすく表現したものであり、YcがクラスタCの補正後の輝度を表しており、Yc_thは上限値を輝度で表している。
【0057】
図15の補正量生成部1592は、Δ1b=0を初期値として、補正量生成の要求がある度に、Δ1bに+1したものを次の補正量として発生させる。仮補正テーブル生成部1591では、RGB_aを輝度変換して求めた輝度Yaを制御点として、図16のような補正テーブルを作成する。制御点YaはクラスタA(面積が大きい2つのクラスタのうち明るい方)の輝度に該当する。制御点Yaにおける出力がYa+Δ1bになるように補正テーブルを作成し、暗部領域以外は第一の補正量生成部15で使用されず、どのように設定してもよいので、図16のように、Ya≦入力Y<255は直線で結んでおけば良い。
【0058】
色差比目標値設定部1583では、暗部面積率Pdに応じて色差比の目標値Xd=3.5×Pdを算出する。算出式は数十枚のサンプル画像を用意してどのくらいに設定すれば、ほぼ全ての画像(少なくとも用意したサンプルの8割)で適正な明るさに補正されるかを主観評価結果から導出したものである。被写体における暗部領域の占める割合が大きいほど暗部の視認性向上を重視した方が高評価を得る傾向があり、暗部領域の占める割合が小さいほど暗部以外の被写体画質を重視した方が高評価が得られ、暗部の視認性向上に対する要求レベルが下がる傾向があった。
【0059】
最暗クラスタの明度上限設定部1590では、Lc_thが15くらいの値(10〜18の間)に設定されるのが適当である。これは予め決めておいた固定値でよい。
【0060】
図17は、第二の補正量生成部16の構成を示す。第二の補正量生成部では、補正テーブルのハイライト領域における傾きα4’を補正量として求め、出力する。
【0061】
ハイライト対象領域判定部1605では、領域判定結果からハイライト領域の画素であるか否かの情報を取得し、サンプリング画像のRGB値が全て255であるか否かを判定して、RGB値が全て255である画素(白画素)を除外したハイライト領域を対象領域とする。
【0062】
傾きα4’下限設定部1600は、ハイライト面積率Phに応じてα4’の下限値Z=1/(−1.4×Ph+2.4)を算出し、補正量生成部1601は、補正量の初期値としてZを出力する。この算出式も主観評価結果から導出したものであり、画像内におけるハイライト対象領域の占める割合が大きいほどハイライトの階調つぶれ(白に飛んでしまうことも含む)が評価を下げる要因となる傾向があり、ハイライト対象領域の占める割合が小さいほどハイライトの階調つぶれよりも被写体画質が優先される傾向があった。補正量生成部1601では、以降要求がある度にα4’に+0.03したものを次の補正量として発生させる。
【0063】
仮補正テーブル生成部1602では、th1を制御点として、図18のような補正テーブルを作成する。ハイライト領域であるth1≦入力Y≦255で、傾きがα4’になるように補正テーブルを作成し、ハイライト領域以外は第二の補正量生成部16で使用されず、どのように設定してもよいので、図18のように0≦入力Y<th1を直線で結んでおけば良い。
【0064】
階調補正部1603は、作成した仮補正テーブルに基づき階調補正を行い、飽和画素判定部1606は、上記した対象領域であり、かつ、階調補正によって飽和したと判断された場合に、飽和画素であると判定する。階調補正によって飽和したかどうかは補正前後のRGB値を参照して判断する。RGBの3信号のうち補正後の値が(255−x1)以上に飽和した信号数が、補正前に255に飽和している信号数よりも多ければ、階調補正によって飽和した画素であると判断する。x1は飽和の判断を人の目視での判断に近づけるため、完全に255に飽和していないが飽和に近い画素も含めて飽和したと判定するためのパラメータであり、x1=20くらいの値に設定しておくのが適当である。
【0065】
飽和画素数計数部1607は、飽和したと判断された画素数Ndを計数し、対象画素数計数部1608は、対象領域の画素数Neを計数する。飽和度算出部1609では、飽和度Pwとして対象領域に対する飽和画素の割合を次式で求める。
Pw=Nd/Ne
【0066】
ハイライト補正量判定部1610では、飽和度が飽和度上限設定部1611に設定された上限値Xh以下になることを終了条件とし、終了条件を満たした時点でのα4’を補正量として出力して終了する。終了条件を満たさないうちは、補正量生成部1601は変更した補正量を発生させ、終了条件を満足するまで処理を繰り返す。
【0067】
飽和度上限設定部1611では、Xhが0.15くらいの値(0.1〜0.2の間)に設定しておくのが適当である。予め決めておいた固定値でよい。
【0068】
図19(a)は、被写体代表色抽出部14の構成を示す。被写体中央値抽出部146は、ヒストグラムから図19(b)に示す被写体領域における中央値Ymを求める。Y=0から画素数を順に加算し、被写体領域の画素数の1/2以上になった時点での輝度値がYmである。次に、Ymに対応するLab値を求める。サンプリング画像データの中から輝度値がYmに等しいものを中央値判定部148が抽出し、RGB毎の加算演算部149では、輝度値がYmの画素の画素値をRGB毎に加算し、画像全体のRGB毎の加算が終了したら、RGB平均値算出部1400はRGB毎の加算値を中央値Ymの画素数で割って輝度値がYmの画素のRGB平均値を算出し、色変換部1401ではLabに変換したものを被写体の代表色Lab_dとして出力する。
【0069】
図20(a)は、第三の補正量生成部17の構成を示す。第三の補正量生成部では、図20(b)に示すように、被写体の代表色Lab_dに対応する輝度Ydにおける補正後の値をYd+βとして増加分βを補正量として求め、出力する。
【0070】
色変換部170は、代表色Lab_dをRGBに変換し、階調補正部173では、補正量生成部172で生成される補正量βに応じてRGB値を階調補正し、色変換部174は補正後の値をLabに変換する。色差計算部175では、代表色の補正前後の色差を計算する。
【0071】
被写体代表色補正量判定部176では、代表色の補正前後の色差が代表色補正量閾値設定部177に設定された閾値Xm以上になることを終了条件とし、終了条件を満たした時点でのβを補正量としてYdとセットで出力して終了する。終了条件を満たさないうちは、補正量生成部172は変更した補正量を発生させ、終了条件を満足するまで処理を繰り返す。
【0072】
補正量生成部172は、β=0を初期値として、補正量生成の要求がある度に、βに+1したものを次の補正量として発生させる。
【0073】
代表色補正量閾値設定部177では、予め決めておいた固定値を用いる場合、Xmが15くらいの値に設定するが、この値は、画像の過補正を防止して、印象を大きく変えない上限値(閾値)設定として適当である。
【0074】
図21は、補正量決定部18の構成を示す。補正量Δ2算出部180では、図6に示した関係を使って、ハイライトの傾きがα4’である場合の補正量Δを求め、それをΔ2として出力する。補正量Δ3算出部181では、図6に示した関係を使って、補正テーブルが入力Yd、出力Yd+βの点を通る場合の補正量Δを求め、それをΔ3として出力する。ここで、Δ2およびΔ3の算出には、図6より制御点Ya,th1,th2のデータが必要であるので、補正量Δ2算出部180および補正量Δ3算出部181にYa,th1,th2を入力している。第一の補正量生成部15で生成された補正量Δ1と、補正量Δ2算出部180で生成された補正量Δ2と、補正量Δ3算出部181で生成された補正量Δ3を参照して、最小値選択部182では、最小のものを選択して出力する(Δ=min(Δ1,Δ2,Δ3))。
【0075】
以上、本実施例によれば、分析範囲を変えて判別分析法を2度適用し、ヒストグラムの谷位置を閾値として決定することにより、明るさに応じた領域判定のための閾値決定を適切に行うことができる。暗画像であるか否かを判定し、2回目の判別分析法(第二の閾値決定)の分析範囲を暗画像でない場合はTH1よりも暗い側、暗画像である場合にはTH1よりも明るい側に設定していることにより、いずれの場合も狙い通りの閾値設定を行うことができる。また、領域判定のための2つの閾値を折点とする折れ線形状の階調補正テーブルを作成し、折れ線形状の階調補正テーブルを使用して階調補正を行うため、画像処理による不自然な階調性劣化を防ぐことができる。
【0076】
本発明によれば、入力画像のヒストグラムを作成し、前記ヒストグラムを分析して、ヒストグラムの谷位置に該当する第一の閾値を決定し、入力画像が全体的に暗い画像でない場合には、前記ヒストグラムのうち第一の閾値よりも暗い部分のヒストグラムを分析して、ヒストグラムの谷位置に該当する第二の閾値を決定し、第一の閾値および第二の閾値に基づき、入力画像を明るさに応じた少なくとも3つの領域に分割する領域判定を行い、領域判定の判定結果に基づき、入力画像に対して画像処理を行うため、入力画像を少なくとも暗部領域とハイライト領域とその他の領域の領域に分割し、各領域の特徴に基づいて適切な画像処理パラメータ(例えば階調補正テーブル)を設定し、好適な画像処理を行うことがきる。
【0077】
また、本発明によれば、入力画像が全体的に暗い画像である場合には、第二の閾値決定手段は、前記ヒストグラムのうち第一の閾値よりも明るい部分のヒストグラムを分析して、ヒストグラムの谷位置に該当する第二の閾値を決定するため、入力画像が暗画像である場合も、領域判定のための閾値決定を狙い通りに行うことができる。
【0078】
また、本発明によれば、入力画像が全体的に暗い画像である場合には、第一の閾値を明るい値に修正するため、本来は暗部領域である領域内に設定されてしまった第一の閾値を適切な値に設定し直すことができ、入力画像が暗画像である場合も、領域判定のための閾値決定を狙い通りに行うことができる。
【0079】
さらに、本発明によれば、前記第一の閾値または明るい値に修正された第一の閾値および前記第二の閾値を折点とする折れ線形状の階調補正テーブルを作成し、前記階調補正テーブルに従って入力画像の階調を補正するため、画像処理による不自然な階調性劣化を防ぐことができる。
【実施例2】
【0080】
実施例1では、領域判定部40が明るさに応じて画像をハイライト領域と暗部領域とその他(暗部領域以外の被写体領域)の3つに分割する領域判定を行い、領域判定結果を第一の補正量生成部15と第二の補正量生成部16が参照する例を示したが、第一の補正量生成部15が参照するのは暗部領域か否かの情報のみであるし、第二の補正量生成部16が参照するのはハイライト領域か否かの情報のみであり、必ずしも1つの処理ブロックで全ての領域判定を完了させて領域判定結果を後段の処理ブロックに渡す必要はない。
【0081】
図22は、本発明の実施例2の構成を示す。本実施例では、予め全ての領域判定を完了させて後段に渡すのではなく、領域判定に必要な閾値を渡して第一の補正量生成部15の内部で暗部領域であるか否かの判定を行い、第二の補正量生成部16の内部でハイライト領域であるか否かの判定を行う。
【0082】
図23は、実施例2における第一の補正量生成部15の構成を示す。サンプリング画像のRGB値を輝度変換部150で輝度値Yに変換し、暗部領域判定部151では、Y<th2、かつ、Max(R,G,B)−Min(R,G,B)<50ならば、暗部領域の画素であると判定する。クラスタリング部153は、暗部領域判定結果と、色変換部152でLabに変換したサンプリング画像データを入力として、クラスタリングを行う。
【0083】
図24は、実施例2における第二の補正量生成部16の構成を示す。サンプリング画像のRGB値を輝度変換部1604で輝度値に変換し、ハイライト対象領域判定部1605では、th1≦Y<255であればハイライト対象領域の画素であると判定する。ここではY=255である画素(白画素)をハイライト領域から除外した領域を対象領域とする。後の処理は実施例1と同様である。
【0084】
本実施例では、実施例1とは異なり、1つの処理ブロックで全ての領域判定が完了しているわけではなく、第一の補正量生成部15の内部における暗部領域判定部151と第二の補正量生成部16の内部におけるハイライト対象領域判定部1605に分散して暗部領域か否か、ハイライト領域か否かの領域判定を行っているが、結果として得られる領域判定結果は、実質的には実施例1と同じであり、階調補正量および補正画像も実施例1と同じものが得られる。つまり、領域判定の処理ブロックが分散していても、全体としてみて、明るさに応じて画像を実質的に3つに分割する領域判定を行い、各領域の画像特徴に基づいて補正量を生成し、明るさに応じて画像を3つに領域分割する領域判定部を実質的に有していると言える。領域判定結果ではなく、閾値th1,th2を各補正量生成部15、16に渡すことにより、画像全体の領域判定結果を保持するための記憶領域が不要になり、低コストで実現することが出来るメリットがある。
【0085】
以上、本実施例によれば、領域判定の処理ブロックを分散させて実装することにより、画像全体の領域判定結果を保持するための記憶領域が不要になり、低コストで実現できる。
【0086】
本発明は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(CPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読出されたプログラムコード自体が前述した各実施例の機能を実現することになる。プログラムコードを供給するための記憶媒体としては、例えば、ハードディスク、光ディスク、光磁気ディスク、不揮発性のメモリカード、ROMなどを用いることができる。また、コンピュータが読出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した各実施例の機能が実現される場合も含まれる。さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した各実施例の機能が実現される場合も含まれる。また、本発明の実施例の機能等を実現するためのプログラムは、ネットワークを介した通信によってサーバから提供されるものでも良い。
【符号の説明】
【0087】
10 輝度変換部
11 ヒストグラム作成部
12 閾値決定部
13 領域面積率計算部
14 被写体代表色抽出部
15 第一の補正量生成部
16 第二の補正量生成部
17 第三の補正量生成部
18 補正量決定部
19 階調補正テーブル作成部
20 階調補正部
30 画像サンプリング部
40 領域判定部
【先行技術文献】
【特許文献】
【0088】
【特許文献1】特開2003−69825号公報
【特許文献2】特開2003−69822号公報
【技術分野】
【0001】
本発明は、デジタルカメラやフィルムスキャナ等で撮影された画像に対して階調補正を施す画像処理装置、画像処理方法、プログラムおよび記録媒体に関し、MFP、プリンタ、デジタルカメラの付属ソフトなどに好適な技術に関する。
【背景技術】
【0002】
デジタルカメラにより逆光状態で撮影された画像や夜間撮影された画像は、露出不足のため被写体が暗く写され、また物陰に該当する部分を含んでいる場合には、画像の一部分が暗く写されてしまう。そのような画像に対しては、自動で明るさを補正する技術が種々研究され、既に実用化されている。
【0003】
例えば、特許文献1は、輝度ヒストグラムの高輝度側と低輝度側で2つのピークがある逆光画像を想定し、輝度ヒストグラムの谷位置に該当する境界値を求め、境界値より低輝度側の重心が目標補正値になるように明るく補正する技術であり、また低輝度側の重心を目標補正値に補正すると同時に、境界値より高輝度側の重心位置により階調補正量を制限するようにした技術も開示されている。階調補正は、低輝度側や高輝度側の重心が各々の目標補正値(高輝度側は階調補正量を制限するための目標補正値)になるように作成した補正テーブルに従って行い、補正テーブルは、低輝度側や高輝度側の重心を折点とする折れ線形状で作成される。
【0004】
特許文献2は、主要被写体領域を抽出し、主要被写体領域の中央値の関数として階調補正量を算出し、一方で主要被写体が属さない明度域(主要被写体よりも明るい明度域)を制御領域として階調補正量を制御することにより、過補正を防止する技術であり、主要被写体領域の輝度ヒストグラムの中央値Aと最大値Cを折点とする折れ線形状の輝度補正カーブを作成し、AとCの間の傾きを1にすることで主要被写体領域の階調性を損なわないようにしている。
【0005】
ところで、特許文献1の技術では、重心に該当する輝度は最適な補正目標値に補正されるが、画像全体で見て最適な補正が行えるとは限らない。例えば、画像暗部に存在し、目視での識別が困難な複数の被写体オブジェクトが、補正によって十分に識別できるようになる保証はない。また、高輝度側の重心を使って補正量を制限できるが、これも重心の輝度値だけで制限するので、画像全体で見て制限が不十分になる可能性や、必要以上に補正量を制限してしまう可能性がある。特許文献2の技術も同様に、輝度ヒストグラムの中央値の関数として階調補正量を算出しているので、中央値に該当する輝度では最適であっても画像全体で見て最適な補正が行えるとは限らない。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明者は先に、画像の暗部領域を抽出して暗部領域を色差に応じてクラスタリングし、クラスタ数が1の場合は明るさ補正を行わず、クラスタ数が1より大きい場合はクラスタ間色差等に基づいて補正量を決定して明るさ補正することにより、暗部領域に物体が潜んでいる画像に限り、暗部領域の視認性が向上するように階調補正する技術(特願2008−180337号)や、画像中の被写体領域を判定して被写体領域における代表色を抽出し、代表色における補正量上限を設定して代表色における階調補正前後の色差が補正量上限を超えない範囲内で補正量を決定して階調補正する技術(特願2008−227086号)を提案した。
【0007】
またハイライト領域の飽和度に基づき補正量を制限する技術も提案し、実施例では、両発明を組み合わせて輝度ヒストグラムから暗部領域、被写体領域、ハイライト領域を抽出し、各領域の閾値を折点とした折れ線形状の階調補正テーブル(補正トーンカーブ)を生成して階調補正を行う例を示した。この実施例では、特許文献1、2のように1〜2点の輝度値に対する補正目標値に基づいて階調補正テーブルを作成する手法とは相違し、暗部領域の視認性向上とノイズ防止、およびハイライト領域における階調つぶれ抑制、および、被写体領域に対して画像の印象を変えすぎないように考慮した補正量設定を行い、画像全体でバランスの取れた最適な明るさに階調を補正することができるが、画像全体でバランスの取れた最適な明るさに階調補正するためには、明るさに応じた少なくとも3つの領域を判定することが必要となる。
【0008】
本発明は上記した課題に鑑みてなされたもので、
本発明の第一の目的は、画像全体で見て適切な明るさへ階調補正できるように、明るさに応じた少なくとも3つの領域を狙い通りに精度良く判定し、更には、輝度ヒストグラムが極端に偏っている全体的に暗い画像に対しても、画像全体で見て適切な明るさへ階調補正できるように、明るさに応じた少なくとも3つの領域を狙い通り精度良く判定する画像処理装置、画像処理方法、プログラムおよび記録媒体を提供することにある。
【0009】
また、従来技術1では、重心を折れ線形状の階調補正テーブルの折点としているが、重心は頻度の高い輝度であることが多いので、頻度の高い輝度部分で、階調性が一様でなく不自然な感じに補正され、また従来技術2も輝度の中央値を折点としているため、同様に不自然に補正されてしまう。
【0010】
そこで、折れ線形状ではなく、曲線形状の階調補正テーブルを用いることで、上記した問題を解消することができるが、補正量を反映した曲線形状の階調補正テーブルを作成すると計算量が多くなったり、あるいは補正量を細かく制御するのが難しいことなどから、必ずしも実用的な手法とはいえず、実際には、折れ線形状の階調補正テーブルが使用されている場合が多い。
【0011】
本発明の第二の目的は、ヒストグラムの谷位置に該当する第一の閾値と第二の閾値に基づき、明るさに応じた少なくとも3つの領域を判定し、第一の閾値と第二の閾値を領域判定だけでなく、折れ線形状の階調補正テーブルを作成する際に折点として使用することにより、画像処理による不自然な階調性の劣化を防止した画像処理装置、画像処理方法、プログラムおよび記録媒体を提供することにある。
【課題を解決するための手段】
【0012】
本発明は、入力画像のヒストグラムを作成するヒストグラム作成手段と、前記ヒストグラムを分析して、ヒストグラムの谷位置に該当する第一の閾値を決定する第一の閾値決定手段と、前記入力画像が全体的に暗い画像であるか否かを判定する暗画像判定手段と、前記暗画像判定手段の判定結果に応じて前記ヒストグラムの所定範囲を分析して、ヒストグラムの谷位置に該当する第二の閾値を決定する第二の閾値決定手段と、前記暗画像判定手段の判定結果に基づいて前記第一の閾値を修正する閾値修正手段と、前記第一の閾値または修正された第一の閾値および前記第二の閾値に基づいて、前記入力画像を明るさに応じた少なくとも3つの領域に分割する領域判定を行う領域判定手段と、前記領域判定手段の判定結果に基づいて、前記入力画像に対して画像処理を行う画像処理手段とを備えることを最も主要な特徴とする。
【発明の効果】
【0013】
本発明によれば、画像全体で見て適切な明るさへ階調補正できるように、明るさに応じた少なくとも3つの領域を狙い通りに精度良く判定することができ、さらには、輝度ヒストグラムが極端に偏っている全体的に暗い画像に対しても、画像全体で見て適切な明るさへ階調補正できるように、明るさに応じた少なくとも3つの領域を狙い通りに精度良く判定することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の実施例1の構成を示す。
【図2】ヒストグラム例と、画像を領域判定した結果の一例を示す。
【図3】閾値決定部の構成を示す。
【図4】入力画像が暗画像でない場合の分析範囲1、分析範囲2、決定される閾値を示す。
【図5】入力画像が暗画像である場合の分析範囲1、分析範囲2、決定される閾値を示す。
【図6】本発明により作成される補正テーブルの形状を示す。
【図7】領域面積率計算部の構成を示す。
【図8】第一の補正量生成部の構成を示す。
【図9】クラスタリング部の構成を示す。
【図10】予備クラスタリング部の処理フローチャートである。
【図11】クラスタ統合部の処理フローチャートである。
【図12】クラスタリング結果の例を示す。
【図13】クラスタリング結果の他の例を示す。
【図14】第1の補正量決定部の構成を示す。
【図15】補正量算出部の構成を示す。
【図16】最暗クラスタの補正量制限を説明する図である。
【図17】第二の補正量生成部の構成を示す。
【図18】仮補正テーブル作成部により作成される補正テーブルを示す。
【図19】被写体代表色抽出部の構成を示す。
【図20】第三の補正量生成部の構成を示す。
【図21】補正量決定部の構成を示す。
【図22】本発明の実施例2の構成を示す。
【図23】実施例2における第一の補正量生成部の構成を示す。
【図24】実施例2における第二の補正量生成部の構成を示す。
【発明を実施するための形態】
【0015】
以下、発明の実施の形態について図面により詳細に説明する。
【実施例1】
【0016】
図1は、本発明の実施例1の構成を示す。輝度変換部10は、ビットマップ形式の入力画像データの各画素のRGB値を、次式で輝度Yに変換する。
Y=0.30×R+0.59×G+0.11×B
ヒストグラム作成部11は、輝度Yのヒストグラムを作成する。RGBが0〜255の各8bitの値を持つ場合で説明すると、Yも0〜255の値を持つことになる。
【0017】
閾値決定部12は、作成したヒストグラムに基づき、画像内における被写体領域、暗部領域、ハイライト領域を判定するための閾値th1,th2を求める。図2(a)は、ヒストグラムの例を示す。閾値th1はハイライト領域と被写体領域の境界に該当する閾値、閾値th2は被写体領域内における暗部領域とその他の領域の境界に該当する閾値である。図2(b)は、画像を領域判定した結果の一例を示す。上空部分がハイライト領域、被写体である建築物の影領域であって、何が写っているか視認困難な部分が暗部領域、それ以外の被写体部分が暗部領域以外の被写体領域として領域判定されている。閾値決定部12では、このような領域判定を行うための閾値th1,th2を決定する。
【0018】
図3(a)は、閾値決定部12の構成を示す。図3(a)の120が第一の閾値決定部、121が第二の閾値決定部に該当する。ヒストグラム形状から適応的に背景と対象物を分離する二値化閾値を求める判別分析法を2回使用して閾値を決定する。
【0019】
図3(b)は、判別分析法を説明する図である。簡単に説明すると、ヒストグラムの入力の最小値st〜閾値Tまでを一つのクラス、閾値T〜入力の最大値enまでを一つのクラスとして、判別分析法の評価値である(クラス間分散/クラス内分散)が最大になる閾値Tを求めることで、背景と対象物がよく分離され(即ちクラス間分散が大きい)、かつ、背景内および対象物内がよくまとまっている(即ちクラス内分散が小さい)二値化閾値を求める方法である。
【0020】
判別分析法を用いることにより、分析範囲内における(局所的ではなく大局的な)谷位置を探すことができる。なお、判別分析法は、谷位置に該当する閾値を探すための手段として適切であるため、本実施例では判別分析法を使用した例を提示するが、判別分析法に近い精度で画像に対して適応的に谷位置を探すことができる方法であれば他の方法でも構わない。
【0021】
判別分析法1201では、ヒストグラムの入力値の最小値から最大値までを分析範囲として(分析範囲1)判別分析法を適用し、二値化閾値TH1を求める。
【0022】
暗画像判定部122では、閾値TH1を予め設定した閾値と比較することにより、入力画像が全体的に暗い画像であるか否かを判定する。ヒストグラムの入力輝度値が0〜255である場合、暗画像判定の閾値は50くらいの値に設定するのが経験上妥当である。
【0023】
TH1<50の場合は、全体的に暗い画像(暗画像)であると判定し、TH1≧50の場合は、全体的に暗い画像ではないと判定する。なお、ここではTH1を使って判定する例を示したが、暗画像を判定する他の手法として、例えば、ヒストグラムを暗い側から加算して、全体の10%に該当する入力輝度値を求め、全体の10%に該当する入力輝度値が予め設定した閾値よりも暗い側にあれば暗画像であると判定しても良い。
【0024】
分析範囲2の設定部1211では、暗画像でない場合は、ヒストグラムの入力値のうち最小値から閾値TH1までの暗い側を分析範囲2として設定し、暗画像である場合は、ヒストグラムの入力値のうち閾値TH1から最大値までの明るい側を分析範囲2として設定する。
【0025】
判別分析法1212では、設定した分析範囲2に対して判別分析法を適用し、閾値TH2を求める。閾値修正部1202は、暗画像である場合に、閾値TH1をTH1よりも明るい値TH1’に修正する。修正方法に関しては後述する。暗画像でない場合はTH1’=TH1として修正は行わない。
【0026】
3値化閾値決定部123では、暗画像でない場合は、th1=TH1’(=TH1)、th2=TH2として閾値th1,th2を決定し、暗画像である場合は、th1=TH2、th2=TH1’として閾値th1,th2を決定する。
【0027】
図4は、入力画像が暗画像でない場合の例であり、(a)はヒストグラム、(b)は分析範囲1に対するクラス間分散とクラス内分散、(c)は分析範囲1に対する判別分析法の評価値のグラフである。(b)と(c)の横軸は判別分析法の閾値Tである。分析範囲1と分析範囲2、および、決定される閾値は図示したとおりである。TH1よりも暗い側を分析範囲2として設定し、TH2を求めている。
【0028】
図5は、入力画像が暗画像である場合の例であり、(a)はヒストグラム、(b)は分析範囲1に対するクラス間分散とクラス内分散、(c)は分析範囲1に対する判別分析法の評価値のグラフである。分析範囲1と分析範囲2、および、決定される閾値は図示したとおりである。TH1よりも明るい側を分析範囲2として設定し、TH2を求めている。
【0029】
暗画像の場合、ハイライト側に山がないヒストグラム形状になっているため、第一の閾値決定部120で決定する谷位置に該当する閾値が、本来暗部領域として判定したい領域内における谷位置に設定されてしまう(そのためTH1が50未満の明らかに本来の暗部領域内であるはずの値になる)。これに対して暗画像か否かを区別せずに暗画像でない画像と同様の処理を行ってしまうと、次に決定される閾値TH2はTH1よりも更に暗い値に設定されてしまい、本来の暗部領域内で閾値th1,th2が決定され狙い通りの領域判定ができない。
【0030】
そこで、暗画像である場合には、分析範囲2をTH1よりも明るい側に設定してTH2が本来の暗部領域内の値でなく、それよりも明るい値に設定されるようにしている。その場合、TH1とTH2の大小関係が暗画像でない場合とは逆になるので、3値化閾値決定部123では、TH1とTH2の対応関係を逆転させてTH2の方をハイライト領域と被写体領域の境界に該当する閾値th1としている。
【0031】
また、閾値TH1も前述の通り、本来の暗部領域内で設定されてしまっているので、閾値修正部1202では、ヒストグラム形状から見て、本来の暗部領域とその他の領域の境界付近と判断されるTH1’へ修正している。
【0032】
閾値修正部1202におけるTH1’の求め方について説明する。図5の例では、本来暗部領域以外の画素はごく僅かで殆どが暗部領域の画素なので、図5(a)のヒストグラムでは、画素が集中している暗い側の輝度と、山が存在しない明るい側の輝度との境界付近(ヒストグラムの立下り位置)にTH1’を設定し直したい。図5(a)のヒストグラムと図5(c)の判別分析法の評価値を見比べると、ヒストグラムの立ち下がり位置は(c)のグラフをハイライト側から見ていった時に最初に出現する評価値の変曲点と対応している。図5の例だけでなく、他の暗画像のヒストグラムおよび判別分析法の評価値でも同じ対応関係が成り立つ。
【0033】
そこで、ハイライト側に最初に出現する変曲点の位置を求めて、閾値TH1の修正後の閾値TH1’とする。(c)の変曲点は、閾値TH1と分析範囲1の最大値の位置における評価値グラフを直線で結び(図5(c)のAとB結んだ点線)、TH1よりも明るい範囲内でAとB結んだ点線と評価値グラフの実線との距離が最大になる入力輝度値を見つけてそれをTH1’とすることで求める。
【0034】
画像サンプリング部30は、画像が所定サイズよりも大きい場合には、画像を平均値でサンプリングする。使用する画像データの画素数が大きすぎると処理に時間がかかり、また性能面でも解像度が高すぎるとノイズの影響から階調補正のための補正量が正確に求められないことがあるので、画像が所定サイズよりも大きい場合には、画像を平均値でサンプリングする。例えば、長辺が640画素よりも大きい場合に、サンプリングを実施し、長辺の画素数が640の3倍の画像が入力された場合には、3×3画素毎に平均値を求めてサンプリング画像の画素値とする。
【0035】
領域判定部40は、サンプリング画像の各画素が暗部領域に属するか否か、ハイライト領域に属するか否かを、閾値th1,th2に基づき判定する。サンプリング画像のRGB値から輝度Yを求め、輝度Yを閾値th1,th2と比較する。
・Y<th2、かつ、Max(R,G,B)−Min(R,G,B)<50ならば、暗部領域の画素であると判定する。
・Y≧th1ならば、ハイライト領域の画素であると判定する。
【0036】
暗部領域の画素の判定条件に、Max(R,G,B)−Min(R,G,B)<50を加えているのは、彩度が比較的高く、視認可能な領域を暗部から除外して判定するためである。暗部領域とハイライト領域を判定することにより、どちらにも属さない画素は暗部領域以外の被写体領域に属する画素であることが自明であるので、図2(b)のように画像を明るさに応じた3つの領域に分割する領域判定を行っていることになる。領域判定結果は2ビットで表し、最初の1ビットが暗部領域の画素であるか否かを表し、次の2ビットがハイライト領域の画素であるかを表すものとする。
【0037】
階調補正テーブル生成部19は、補正量決定部18が決定した最終的な補正量Δに応じて階調補正テーブルを生成する。入力画像データや抽出した色情報等に基づき、第一の補正量生成部15は、暗部領域の視認性向上に着目した補正量を生成し、第二の補正量生成部16は、ハイライト領域の階調つぶれ抑制に着目した補正量を生成し、第三の補正量生成部17は、補正前後で画像の印象を大きく変えないことに着目した補正量を生成し、補正量決定18は、最終的な補正量Δを決定する。
【0038】
図6は、最終的に作成する補正テーブルの形状を示したものである。補正テーブルは輝度Yの変換テーブルとする。制御点は、始点0と終点255以外では、入力Y=th1,th2,Yaの3点であり、各区間内では直線形状とする。制御点th1とth2は前述の閾値決定部12から出力される閾値であり、制御点Yaは後述の第一の補正量生成部15から出力される暗部領域内の制御点である。補正量Δは、制御点Yaにおける入力Yに対する出力Yの増加分を表したものである。暗部領域における0≦入力Y<Yaの傾きα1は、YaとΔにより決まる。制約条件として、暗部領域以外の被写体領域に該当するth2≦入力Y<th1で、傾きα3を1にして階調性を保存し、Ya≦入力Y<th2は区間境界で傾きが急激に変化することを防止するため傾きα2を傾きα1とα3の中間とする。これにより、3つの制御点と補正量Δが決まれば、補正テーブル全体が決まる。また、3つの制御点が決まっていれば、もう一つの情報は補正量Δでなくα4であっても、あるいは補正テーブルが通るどこか一点の入力と出力のデータセットであっても、上記制約条件から補正テーブル全体を決定することが可能である。
【0039】
階調補正部20は、生成した補正テーブルを基に、入力画像データの各画素に対して階調補正を施す。RGBから輝度変換により輝度Yを算出し、算出した輝度Yを入力として補正テーブルを参照して出力Yを求め、RGBの各信号に対して(出力Y/入力Y)を乗算したものを階調補正後のRGBとする。
【0040】
領域面積率計算部13は、第一の補正量生成部15で使用する暗部面積率Pdと、第二の補正量生成部16で使用するハイライト面積率Phを求めておく。
【0041】
図7は、領域面積率計算部13の構成を示す。図2(a)のヒストグラムと閾値th1から、ハイライト/被写体画素数計数部130は、被写体領域の画素数Naとハイライト領域の画素数Nbを計数する。被写体領域の画素数はヒストグラムにおける0≦Y<th1の画素数を全て足し合わせることで求められ、ハイライト領域の画素数はヒストグラムにおけるth1≦Y≦255の画素数を全て足し合わせることで求められる。同様に、ヒストグラムと閾値th2から、暗部画素数計数部132は、暗部領域の画素数Ncを計数する。暗部領域の画素数はヒストグラムにおける0≦Y<th2の画素数を全て足し合わせることにより求められる。
【0042】
ハイライト面積率計算部131では、画像内におけるハイライト領域の面積率Phを次式で求める。
Ph=Nb/(Na+Nb)
暗部面積率計算部133では、被写体領域における暗部領域の面積率Pdを次式で求める。
Pd=Nc/Na
【0043】
図8は、第一の補正量生成部15の構成を示す。クラスタリング部153は、領域判定結果から暗部領域の画素であるか否かの情報を取得し、色変換部152でLabに変換したサンプリング画像データを入力として、クラスタリングを行う。
【0044】
図9は、クラスタリング部153の構成を示す。予備クラスタリング部156は、色差に応じて暗部領域判定結果を、1つ以上のクラスタに分割した後、クラスタ統合部157では、画素数の少ないクラスタを他のクラスタに統合する。
【0045】
図10は、予備クラスタリング部156の処理フローチャートである。注目画素のLabを順次入力し(ステップ1561)、クラスタリングを行う。画像先端からスタートして初めて暗部領域の画素が入力された時点では、クラスタ数Nが初期化されてN=0にセットされた状態であるため(ステップ1560)、色差による条件分岐(ステップ1565)で“No”の方に進んでクラスタ1を新規クラスタとして追加し、クラスタ数をN=1に設定、クラスタ1の画素数をn(1)=0に設定、クラスタ1の平均Labに注目画素のLab値が設定される(ステップ1568,1569)。
【0046】
その後は、順次入力される注目画素のLab値に対して、暗部領域の画素であれば(ステップ1570)、各クラスタの平均Labとの色差を求め(ステップ1563)、その中で色差最小のクラスタ番号jと色差dE_minの組を抽出する(ステップ1564)。色差による条件分岐(ステップ1565)で色差dE_minが予め設定された閾値dE_th以下であれば“Yes”の方に進んでクラスタjに注目画素を追加し、平均Labを再計算する(ステップ1566,1567)。クラスタjの画素数n(j)を+1して、L*a*b*の平均値を以下の式に従い再計算する。
(再計算後の平均L)=((再計算前の平均L)×(n(j)−1)+(注目画素のL))/n(j)
(再計算後の平均a)=((再計算前の平均a)×(n(j)−1)+(注目画素のa))/n(j)
(再計算後の平均b)=((再計算前の平均b)×(n(j)−1)+(注目画素のb))/n(j)
色差による条件分岐(ステップ1565)で色差dE_minが予め設定された閾値dE_thより大きければ“No”の方に進んで新規クラスタを追加し、クラスタ数Nをカウントアップして新規クラスタの画素数を0に設定し、平均Labに注目画素のLabを設定する(ステップ1568,1569)。新規クラスタを追加するか否かの境界色差を表しているのがdE_thであり、暗部の何が写っているかはっきり視認できない領域を対象としていることを考慮してdE_th=3くらいの小さい値に設定しておくのが適当である。画像後端まで到達して入力するLabデータが無くなった時点で、クラスタリング終了となる。
【0047】
予備クラスタリング部156で分割されたクラスタのうち、ある程度画素数が少ないクラスタはノイズ成分に反応して発生したクラスタであることが多く、いずれにしても被写体を有意な塊単位で抽出する際に、不要または重要性が低いクラスタである。
【0048】
図11は、クラスタ統合部157の処理フローチャートである。各クラスタを順次見ていき、クラスタの画素数が所定閾値n_thより小さいか否かを判定し(ステップ1575)、小さい場合は注目クラスタiの平均Labと他のクラスタの平均Labとの色差を求め(ステップ1576)、他のクラスタ全てに対して求めた色差のうち最小のものに該当するクラスタ番号jを抽出し(ステップ1577)、クラスタiをクラスタjに統合する(ステップ1578)。クラスタjの画素数にクラスタiの画素数を加算し、クラスタiの画素数を0に変更する。統合するクラスタの画素数境界である閾値n_thは、暗部領域の画素数に対して例えば15%(10%〜20%程度に設定するのが適当)の画素数に相当する値を画像毎に求めて、それを閾値とする。
【0049】
図8に戻り、判断部154は、クラスタ数に応じて階調補正を行うか否か判断する。図12、図13(a)、(c)はクラスタリング結果の例である。図12(a)は、夜空を背景に花火を撮影した画像であり、暗部領域をクラスタリングした結果、暗部は全て一つのクラスタ(クラスタ1)になり、クラスタ数は1である。図12(b)は、夜間にライトアップされた建築物を撮影した画像であり、暗部領域をクラスタリングした結果、背景と建物が別々のクラスタに分割され、クラスタ数は2である。図13(a)は、人物を逆光で撮影した画像であり、暗部は5つのクラスタに分割されている。図13(b)は花を撮影した画像であり、葉が重なり合って影になった暗部領域が存在する画像である。これをクラスタリングした結果が図13(c)であり、影に隠れた葉と葉脈が概ね別クラスタに分割され、クラスタ数は2である。
【0050】
判断部154では、クラスタ数が1であれば階調補正を行わないと判断し、クラスタ数が1以外であれば階調補正を行うと判断する。これにより、夜空を背景に花火を撮影した画像のように暗部に該当する夜空に何もオブジェクトが潜んでおらず、明るく補正する必要がない画像が入力された場合に、階調補正を行わないと判断して処理することができる。
【0051】
図14は、第1の補正量決定部155の構成を示す。判断部154が階調補正を行わないと判断した場合は、選択部159はΔ1b=0を選択して、Δ1=Δ1aを補正量として出力することにより、実質的に階調補正を無効にする。判断部154が階調補正を行うと判断した場合は、補正量算出部158が算出した補正量Δ1bを選択して、Δ1=Δ1bを補正量として出力する。
【0052】
図15は、補正量算出部158の構成を示す。第一のクラスタ抽出1580は、各クラスタの画素数を比較して画素数が最も多いクラスタとその次に多いクラスタを抽出する。2つのクラスタのうち明度が高い方をクラスタA、明度が低い方をクラスタBと表記する。色差計算部1582では、クラスタAとクラスタBの補正前の平均Lab同士の色差dE1を計算しておく。補正量生成部1592は補正量Δ1bを設定して、仮補正テーブル生成部1591は補正量に応じた仮補正テーブルを作成する。階調補正部1585は仮補正テーブルを用いた階調補正を、クラスタAの平均Labを色変換部1584でRGBに変換したRGB_aと、クラスタBの平均Labを同じくRGBに変換したRGB_bに対して行い、補正後の値を色変換部1586で再度Lab信号に変換する。色差計算部1587では、クラスタAとクラスタBの補正後の平均Lab同士の色差dE2を計算する。色差比計算部1588では、補正前の色差dE1と補正後の色差dE2の比率を計算して求める。
【0053】
第二のクラスタ抽出部1581では、最も暗いクラスタを抽出する。最も暗いクラスタをクラスタCと表記する。ちなみに、画像によってはクラスタBとクラスタCが同じクラスタを指すこともあるが、それでも構わない。階調補正部1585では、仮補正テーブルを用いた階調補正を、クラスタCの平均Labを色変換部1584でRGBに変換したRGB_cに対して行い、補正後の値を色変換部1586で再度Lab信号に変換する。
【0054】
暗部補正量判定部1589では、以下の終了条件1または終了条件2を満たせば、その時点での補正量Δ1bを出力して終了する。どちらの終了条件も満たさなければ、補正量生成部1592では、変更した補正量を発生させ、終了条件を満足するまで処理を繰り返す。
[終了条件1]クラスタAとクラスタBの補正前後の色差比が、色差比目標値設定部1583に設定された目標値Xd以上である。
[終了条件2]クラスタCの補正後の平均Lが、最暗クラスタの明度上限設定部1590に設定された上限値Lc_th以上である。
【0055】
画素数が最も大きいクラスタと次に大きいクラスタの色差が補正前のX倍になるように補正するということは、他の面積の狭いクラスタ同士の色差比に着目して補正するよりも視認性が向上したことが観察者に認識されやすく、非常に効果的である。また、最も暗いクラスタが明るく補正されすぎないように補正量を制限することは、暗部ノイズが目立つ副作用を防止するのに有効である。
【0056】
図16は、最暗クラスタの補正量制限を説明する図である。(a)は暗部を示し、(b)は暗部を拡大した図である。YcとYc_thは、最暗クラスタの補正量制限をわかりやすく表現したものであり、YcがクラスタCの補正後の輝度を表しており、Yc_thは上限値を輝度で表している。
【0057】
図15の補正量生成部1592は、Δ1b=0を初期値として、補正量生成の要求がある度に、Δ1bに+1したものを次の補正量として発生させる。仮補正テーブル生成部1591では、RGB_aを輝度変換して求めた輝度Yaを制御点として、図16のような補正テーブルを作成する。制御点YaはクラスタA(面積が大きい2つのクラスタのうち明るい方)の輝度に該当する。制御点Yaにおける出力がYa+Δ1bになるように補正テーブルを作成し、暗部領域以外は第一の補正量生成部15で使用されず、どのように設定してもよいので、図16のように、Ya≦入力Y<255は直線で結んでおけば良い。
【0058】
色差比目標値設定部1583では、暗部面積率Pdに応じて色差比の目標値Xd=3.5×Pdを算出する。算出式は数十枚のサンプル画像を用意してどのくらいに設定すれば、ほぼ全ての画像(少なくとも用意したサンプルの8割)で適正な明るさに補正されるかを主観評価結果から導出したものである。被写体における暗部領域の占める割合が大きいほど暗部の視認性向上を重視した方が高評価を得る傾向があり、暗部領域の占める割合が小さいほど暗部以外の被写体画質を重視した方が高評価が得られ、暗部の視認性向上に対する要求レベルが下がる傾向があった。
【0059】
最暗クラスタの明度上限設定部1590では、Lc_thが15くらいの値(10〜18の間)に設定されるのが適当である。これは予め決めておいた固定値でよい。
【0060】
図17は、第二の補正量生成部16の構成を示す。第二の補正量生成部では、補正テーブルのハイライト領域における傾きα4’を補正量として求め、出力する。
【0061】
ハイライト対象領域判定部1605では、領域判定結果からハイライト領域の画素であるか否かの情報を取得し、サンプリング画像のRGB値が全て255であるか否かを判定して、RGB値が全て255である画素(白画素)を除外したハイライト領域を対象領域とする。
【0062】
傾きα4’下限設定部1600は、ハイライト面積率Phに応じてα4’の下限値Z=1/(−1.4×Ph+2.4)を算出し、補正量生成部1601は、補正量の初期値としてZを出力する。この算出式も主観評価結果から導出したものであり、画像内におけるハイライト対象領域の占める割合が大きいほどハイライトの階調つぶれ(白に飛んでしまうことも含む)が評価を下げる要因となる傾向があり、ハイライト対象領域の占める割合が小さいほどハイライトの階調つぶれよりも被写体画質が優先される傾向があった。補正量生成部1601では、以降要求がある度にα4’に+0.03したものを次の補正量として発生させる。
【0063】
仮補正テーブル生成部1602では、th1を制御点として、図18のような補正テーブルを作成する。ハイライト領域であるth1≦入力Y≦255で、傾きがα4’になるように補正テーブルを作成し、ハイライト領域以外は第二の補正量生成部16で使用されず、どのように設定してもよいので、図18のように0≦入力Y<th1を直線で結んでおけば良い。
【0064】
階調補正部1603は、作成した仮補正テーブルに基づき階調補正を行い、飽和画素判定部1606は、上記した対象領域であり、かつ、階調補正によって飽和したと判断された場合に、飽和画素であると判定する。階調補正によって飽和したかどうかは補正前後のRGB値を参照して判断する。RGBの3信号のうち補正後の値が(255−x1)以上に飽和した信号数が、補正前に255に飽和している信号数よりも多ければ、階調補正によって飽和した画素であると判断する。x1は飽和の判断を人の目視での判断に近づけるため、完全に255に飽和していないが飽和に近い画素も含めて飽和したと判定するためのパラメータであり、x1=20くらいの値に設定しておくのが適当である。
【0065】
飽和画素数計数部1607は、飽和したと判断された画素数Ndを計数し、対象画素数計数部1608は、対象領域の画素数Neを計数する。飽和度算出部1609では、飽和度Pwとして対象領域に対する飽和画素の割合を次式で求める。
Pw=Nd/Ne
【0066】
ハイライト補正量判定部1610では、飽和度が飽和度上限設定部1611に設定された上限値Xh以下になることを終了条件とし、終了条件を満たした時点でのα4’を補正量として出力して終了する。終了条件を満たさないうちは、補正量生成部1601は変更した補正量を発生させ、終了条件を満足するまで処理を繰り返す。
【0067】
飽和度上限設定部1611では、Xhが0.15くらいの値(0.1〜0.2の間)に設定しておくのが適当である。予め決めておいた固定値でよい。
【0068】
図19(a)は、被写体代表色抽出部14の構成を示す。被写体中央値抽出部146は、ヒストグラムから図19(b)に示す被写体領域における中央値Ymを求める。Y=0から画素数を順に加算し、被写体領域の画素数の1/2以上になった時点での輝度値がYmである。次に、Ymに対応するLab値を求める。サンプリング画像データの中から輝度値がYmに等しいものを中央値判定部148が抽出し、RGB毎の加算演算部149では、輝度値がYmの画素の画素値をRGB毎に加算し、画像全体のRGB毎の加算が終了したら、RGB平均値算出部1400はRGB毎の加算値を中央値Ymの画素数で割って輝度値がYmの画素のRGB平均値を算出し、色変換部1401ではLabに変換したものを被写体の代表色Lab_dとして出力する。
【0069】
図20(a)は、第三の補正量生成部17の構成を示す。第三の補正量生成部では、図20(b)に示すように、被写体の代表色Lab_dに対応する輝度Ydにおける補正後の値をYd+βとして増加分βを補正量として求め、出力する。
【0070】
色変換部170は、代表色Lab_dをRGBに変換し、階調補正部173では、補正量生成部172で生成される補正量βに応じてRGB値を階調補正し、色変換部174は補正後の値をLabに変換する。色差計算部175では、代表色の補正前後の色差を計算する。
【0071】
被写体代表色補正量判定部176では、代表色の補正前後の色差が代表色補正量閾値設定部177に設定された閾値Xm以上になることを終了条件とし、終了条件を満たした時点でのβを補正量としてYdとセットで出力して終了する。終了条件を満たさないうちは、補正量生成部172は変更した補正量を発生させ、終了条件を満足するまで処理を繰り返す。
【0072】
補正量生成部172は、β=0を初期値として、補正量生成の要求がある度に、βに+1したものを次の補正量として発生させる。
【0073】
代表色補正量閾値設定部177では、予め決めておいた固定値を用いる場合、Xmが15くらいの値に設定するが、この値は、画像の過補正を防止して、印象を大きく変えない上限値(閾値)設定として適当である。
【0074】
図21は、補正量決定部18の構成を示す。補正量Δ2算出部180では、図6に示した関係を使って、ハイライトの傾きがα4’である場合の補正量Δを求め、それをΔ2として出力する。補正量Δ3算出部181では、図6に示した関係を使って、補正テーブルが入力Yd、出力Yd+βの点を通る場合の補正量Δを求め、それをΔ3として出力する。ここで、Δ2およびΔ3の算出には、図6より制御点Ya,th1,th2のデータが必要であるので、補正量Δ2算出部180および補正量Δ3算出部181にYa,th1,th2を入力している。第一の補正量生成部15で生成された補正量Δ1と、補正量Δ2算出部180で生成された補正量Δ2と、補正量Δ3算出部181で生成された補正量Δ3を参照して、最小値選択部182では、最小のものを選択して出力する(Δ=min(Δ1,Δ2,Δ3))。
【0075】
以上、本実施例によれば、分析範囲を変えて判別分析法を2度適用し、ヒストグラムの谷位置を閾値として決定することにより、明るさに応じた領域判定のための閾値決定を適切に行うことができる。暗画像であるか否かを判定し、2回目の判別分析法(第二の閾値決定)の分析範囲を暗画像でない場合はTH1よりも暗い側、暗画像である場合にはTH1よりも明るい側に設定していることにより、いずれの場合も狙い通りの閾値設定を行うことができる。また、領域判定のための2つの閾値を折点とする折れ線形状の階調補正テーブルを作成し、折れ線形状の階調補正テーブルを使用して階調補正を行うため、画像処理による不自然な階調性劣化を防ぐことができる。
【0076】
本発明によれば、入力画像のヒストグラムを作成し、前記ヒストグラムを分析して、ヒストグラムの谷位置に該当する第一の閾値を決定し、入力画像が全体的に暗い画像でない場合には、前記ヒストグラムのうち第一の閾値よりも暗い部分のヒストグラムを分析して、ヒストグラムの谷位置に該当する第二の閾値を決定し、第一の閾値および第二の閾値に基づき、入力画像を明るさに応じた少なくとも3つの領域に分割する領域判定を行い、領域判定の判定結果に基づき、入力画像に対して画像処理を行うため、入力画像を少なくとも暗部領域とハイライト領域とその他の領域の領域に分割し、各領域の特徴に基づいて適切な画像処理パラメータ(例えば階調補正テーブル)を設定し、好適な画像処理を行うことがきる。
【0077】
また、本発明によれば、入力画像が全体的に暗い画像である場合には、第二の閾値決定手段は、前記ヒストグラムのうち第一の閾値よりも明るい部分のヒストグラムを分析して、ヒストグラムの谷位置に該当する第二の閾値を決定するため、入力画像が暗画像である場合も、領域判定のための閾値決定を狙い通りに行うことができる。
【0078】
また、本発明によれば、入力画像が全体的に暗い画像である場合には、第一の閾値を明るい値に修正するため、本来は暗部領域である領域内に設定されてしまった第一の閾値を適切な値に設定し直すことができ、入力画像が暗画像である場合も、領域判定のための閾値決定を狙い通りに行うことができる。
【0079】
さらに、本発明によれば、前記第一の閾値または明るい値に修正された第一の閾値および前記第二の閾値を折点とする折れ線形状の階調補正テーブルを作成し、前記階調補正テーブルに従って入力画像の階調を補正するため、画像処理による不自然な階調性劣化を防ぐことができる。
【実施例2】
【0080】
実施例1では、領域判定部40が明るさに応じて画像をハイライト領域と暗部領域とその他(暗部領域以外の被写体領域)の3つに分割する領域判定を行い、領域判定結果を第一の補正量生成部15と第二の補正量生成部16が参照する例を示したが、第一の補正量生成部15が参照するのは暗部領域か否かの情報のみであるし、第二の補正量生成部16が参照するのはハイライト領域か否かの情報のみであり、必ずしも1つの処理ブロックで全ての領域判定を完了させて領域判定結果を後段の処理ブロックに渡す必要はない。
【0081】
図22は、本発明の実施例2の構成を示す。本実施例では、予め全ての領域判定を完了させて後段に渡すのではなく、領域判定に必要な閾値を渡して第一の補正量生成部15の内部で暗部領域であるか否かの判定を行い、第二の補正量生成部16の内部でハイライト領域であるか否かの判定を行う。
【0082】
図23は、実施例2における第一の補正量生成部15の構成を示す。サンプリング画像のRGB値を輝度変換部150で輝度値Yに変換し、暗部領域判定部151では、Y<th2、かつ、Max(R,G,B)−Min(R,G,B)<50ならば、暗部領域の画素であると判定する。クラスタリング部153は、暗部領域判定結果と、色変換部152でLabに変換したサンプリング画像データを入力として、クラスタリングを行う。
【0083】
図24は、実施例2における第二の補正量生成部16の構成を示す。サンプリング画像のRGB値を輝度変換部1604で輝度値に変換し、ハイライト対象領域判定部1605では、th1≦Y<255であればハイライト対象領域の画素であると判定する。ここではY=255である画素(白画素)をハイライト領域から除外した領域を対象領域とする。後の処理は実施例1と同様である。
【0084】
本実施例では、実施例1とは異なり、1つの処理ブロックで全ての領域判定が完了しているわけではなく、第一の補正量生成部15の内部における暗部領域判定部151と第二の補正量生成部16の内部におけるハイライト対象領域判定部1605に分散して暗部領域か否か、ハイライト領域か否かの領域判定を行っているが、結果として得られる領域判定結果は、実質的には実施例1と同じであり、階調補正量および補正画像も実施例1と同じものが得られる。つまり、領域判定の処理ブロックが分散していても、全体としてみて、明るさに応じて画像を実質的に3つに分割する領域判定を行い、各領域の画像特徴に基づいて補正量を生成し、明るさに応じて画像を3つに領域分割する領域判定部を実質的に有していると言える。領域判定結果ではなく、閾値th1,th2を各補正量生成部15、16に渡すことにより、画像全体の領域判定結果を保持するための記憶領域が不要になり、低コストで実現することが出来るメリットがある。
【0085】
以上、本実施例によれば、領域判定の処理ブロックを分散させて実装することにより、画像全体の領域判定結果を保持するための記憶領域が不要になり、低コストで実現できる。
【0086】
本発明は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(CPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読出されたプログラムコード自体が前述した各実施例の機能を実現することになる。プログラムコードを供給するための記憶媒体としては、例えば、ハードディスク、光ディスク、光磁気ディスク、不揮発性のメモリカード、ROMなどを用いることができる。また、コンピュータが読出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部または全部を行い、その処理によって前述した各実施例の機能が実現される場合も含まれる。さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した各実施例の機能が実現される場合も含まれる。また、本発明の実施例の機能等を実現するためのプログラムは、ネットワークを介した通信によってサーバから提供されるものでも良い。
【符号の説明】
【0087】
10 輝度変換部
11 ヒストグラム作成部
12 閾値決定部
13 領域面積率計算部
14 被写体代表色抽出部
15 第一の補正量生成部
16 第二の補正量生成部
17 第三の補正量生成部
18 補正量決定部
19 階調補正テーブル作成部
20 階調補正部
30 画像サンプリング部
40 領域判定部
【先行技術文献】
【特許文献】
【0088】
【特許文献1】特開2003−69825号公報
【特許文献2】特開2003−69822号公報
【特許請求の範囲】
【請求項1】
入力画像のヒストグラムを作成するヒストグラム作成手段と、前記ヒストグラムを分析して、ヒストグラムの谷位置に該当する第一の閾値を決定する第一の閾値決定手段と、前記入力画像が全体的に暗い画像であるか否かを判定する暗画像判定手段と、前記暗画像判定手段の判定結果に応じて前記ヒストグラムの所定範囲を分析して、ヒストグラムの谷位置に該当する第二の閾値を決定する第二の閾値決定手段と、前記暗画像判定手段の判定結果に基づいて前記第一の閾値を修正する閾値修正手段と、前記第一の閾値または修正された第一の閾値および前記第二の閾値に基づいて、前記入力画像を明るさに応じた少なくとも3つの領域に分割する領域判定を行う領域判定手段と、前記領域判定手段の判定結果に基づいて、前記入力画像に対して画像処理を行う画像処理手段とを備えることを特徴とする画像処理装置。
【請求項2】
前記入力画像が全体的に暗い画像でないと判定された場合には、前記第二の閾値決定手段は、前記ヒストグラムのうち前記第一の閾値よりも暗い部分のヒストグラムを分析して、ヒストグラムの谷位置に該当する第二の閾値を決定することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記入力画像が全体的に暗い画像であると判定された場合には、前記第二の閾値決定手段は、前記ヒストグラムのうち前記第一の閾値よりも明るい部分のヒストグラムを分析して、ヒストグラムの谷位置に該当する第二の閾値を決定し、前記閾値修正手段は、前記第一の閾値を明るい値に修正することを特徴とする請求項1記載の画像処理装置。
【請求項4】
前記画像処理手段は、前記入力画像の階調を補正する階調補正手段であり、前記第一の閾値または修正された第一の閾値および前記第二の閾値を折点とする折れ線形状の階調補正テーブルを作成する階調補正テーブル作成手段を備え、前記階調補正テーブルに従って前記入力画像の階調を補正することを特徴とする請求項1記載の画像処理装置。
【請求項5】
入力画像のヒストグラムを作成するヒストグラム作成工程と、前記ヒストグラムを分析して、ヒストグラムの谷位置に該当する第一の閾値を決定する第一の閾値決定工程と、前記入力画像が全体的に暗い画像であるか否かを判定する暗画像判定工程と、前記暗画像判定工程の判定結果に応じて前記ヒストグラムの所定範囲を分析して、ヒストグラムの谷位置に該当する第二の閾値を決定する第二の閾値決定工程と、前記暗画像判定工程の判定結果に基づいて前記第一の閾値を修正する閾値修正工程と、前記第一の閾値または修正された第一の閾値および前記第二の閾値に基づいて、前記入力画像を明るさに応じた少なくとも3つの領域に分割する領域判定を行う領域判定工程と、前記領域判定工程の判定結果に基づき、前記入力画像に対して画像処理を行う画像処理工程とを備えることを特徴とする画像処理方法。
【請求項6】
請求項5記載の画像処理方法をコンピュータに実現させるためのプログラム。
【請求項7】
請求項5記載の画像処理方法をコンピュータに実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項1】
入力画像のヒストグラムを作成するヒストグラム作成手段と、前記ヒストグラムを分析して、ヒストグラムの谷位置に該当する第一の閾値を決定する第一の閾値決定手段と、前記入力画像が全体的に暗い画像であるか否かを判定する暗画像判定手段と、前記暗画像判定手段の判定結果に応じて前記ヒストグラムの所定範囲を分析して、ヒストグラムの谷位置に該当する第二の閾値を決定する第二の閾値決定手段と、前記暗画像判定手段の判定結果に基づいて前記第一の閾値を修正する閾値修正手段と、前記第一の閾値または修正された第一の閾値および前記第二の閾値に基づいて、前記入力画像を明るさに応じた少なくとも3つの領域に分割する領域判定を行う領域判定手段と、前記領域判定手段の判定結果に基づいて、前記入力画像に対して画像処理を行う画像処理手段とを備えることを特徴とする画像処理装置。
【請求項2】
前記入力画像が全体的に暗い画像でないと判定された場合には、前記第二の閾値決定手段は、前記ヒストグラムのうち前記第一の閾値よりも暗い部分のヒストグラムを分析して、ヒストグラムの谷位置に該当する第二の閾値を決定することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記入力画像が全体的に暗い画像であると判定された場合には、前記第二の閾値決定手段は、前記ヒストグラムのうち前記第一の閾値よりも明るい部分のヒストグラムを分析して、ヒストグラムの谷位置に該当する第二の閾値を決定し、前記閾値修正手段は、前記第一の閾値を明るい値に修正することを特徴とする請求項1記載の画像処理装置。
【請求項4】
前記画像処理手段は、前記入力画像の階調を補正する階調補正手段であり、前記第一の閾値または修正された第一の閾値および前記第二の閾値を折点とする折れ線形状の階調補正テーブルを作成する階調補正テーブル作成手段を備え、前記階調補正テーブルに従って前記入力画像の階調を補正することを特徴とする請求項1記載の画像処理装置。
【請求項5】
入力画像のヒストグラムを作成するヒストグラム作成工程と、前記ヒストグラムを分析して、ヒストグラムの谷位置に該当する第一の閾値を決定する第一の閾値決定工程と、前記入力画像が全体的に暗い画像であるか否かを判定する暗画像判定工程と、前記暗画像判定工程の判定結果に応じて前記ヒストグラムの所定範囲を分析して、ヒストグラムの谷位置に該当する第二の閾値を決定する第二の閾値決定工程と、前記暗画像判定工程の判定結果に基づいて前記第一の閾値を修正する閾値修正工程と、前記第一の閾値または修正された第一の閾値および前記第二の閾値に基づいて、前記入力画像を明るさに応じた少なくとも3つの領域に分割する領域判定を行う領域判定工程と、前記領域判定工程の判定結果に基づき、前記入力画像に対して画像処理を行う画像処理工程とを備えることを特徴とする画像処理方法。
【請求項6】
請求項5記載の画像処理方法をコンピュータに実現させるためのプログラム。
【請求項7】
請求項5記載の画像処理方法をコンピュータに実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公開番号】特開2010−166143(P2010−166143A)
【公開日】平成22年7月29日(2010.7.29)
【国際特許分類】
【出願番号】特願2009−4797(P2009−4797)
【出願日】平成21年1月13日(2009.1.13)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
【公開日】平成22年7月29日(2010.7.29)
【国際特許分類】
【出願日】平成21年1月13日(2009.1.13)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】
[ Back to top ]