(57)【要約】【課題】  画像の補正において適応的に補正を行なう必要があった。【解決手段】  写真撮影時の撮影情報を取得、保持する撮影情報保持手段と前記撮影情報に基づいて補正パラメータを設定する設定手段と、前記補正されたパラメータを用いて入力画像を補正する補正手段とを有することを特徴とする。【選択図】  図２
2006018740.tif 000002
【特許請求の範囲】
【請求項１】
写真撮影時の撮影情報を取得、保持する撮影情報保持手段と、前記撮影情報に基づいて補正パラメータを設定する設定手段と、前記設定された補正パラメータを用いて入力画像データを補正する補正手段とを有することを特徴とする画像補正手段。
【請求項２】
前記設定手段は、前記入力画像データのヒストグラムを作成するヒストグラム作成手段と、前記ヒストグラム画像のハイライトポイント、シャドウポイント、露出状態を算出し、算出結果及び前記撮影情報に基づいて補正用ルックアップテーブルを作成するルックアップテーブル作成手段を有し、
前記補正手段は、前記補正用ルックアップテーブルを使用して前記入力画像データを補正する補正手段であることを特徴とする請求項１に記載の画像補正手段。
【請求項３】
前記撮影情報は、フラッシュ使用の有無、ピント位置であることを特徴とする請求項２に記載の画像補正手段。
【請求項４】
前記撮影情報保持手段に格納されているデータは、前記撮影情報のそれぞれの組み合わせにおける補正後のハイライトポイント及びシャドウポイントであることを特徴とする請求項３に記載の画像補正手段。
【請求項５】
前記補正用ルックアップテーブルは、前記補正後のハイライトポイント及びシャドウポイントを用いて作成することを特徴とする請求項４に記載の画像補正手段。
【請求項６】
写真撮影時の撮影情報を取得、保持する撮影情報保持部と、前記撮影情報に基づいて補正パラメータを設定する設定部と、前記設定された補正パラメータを用いて入力画像データを補正する補正部とを有することを特徴とする画像補正装置。
【請求項７】
写真撮影時の撮影情報を取得、保持する撮影情報保持方法と、前記撮影情報に基づいて補正パラメータを設定する設定方法と、前記設定された補正パラメータを用いて入力画像データを補正する補正方法とを有することを特徴とする画像補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ある対象物を検出する手段、装置及び方法に関する。
【背景技術】
【０００２】
デジタルカメラから入力した画像のコントラスト、ハイライト、シャドウやホワイトバランスを補正するアルゴリズムに関しては、これまでにいろいろな方法が提案されてきている。
【０００３】
本発明の発明者は特開平１１−３１７９５９において、画像のハイライト部の、色の偏りの比率によって画像の特徴を判別し、その結果によってホワイトバランス補正の度合いを調整、同時にコントラスト、ハイライト、シャドウを最適に補正し、物体の色を忠実に再現するという方法を提案した。
【特許文献１】特開平１１−３１７９５９号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特開平１１−３１７９５９においては、画像全体のヒストグラムから特徴を判定していて、撮影時のフラッシュ使用の有無、ピント位置などの区別はせずに同じ補正方法で補正を行なっていた。例えばフラッシュを使用してピント位置が近いときは、主被写体のハイライト部が飛んでしまっている可能性が強いため、ハイライトの強調は行なわないように補正方法を変更することが望ましいが、前記方法では補正方法を変更できないという問題があった。
【課題を解決するための手段】
【０００５】
本発明においては、前記問題点を解決するために、写真撮影時の撮影情報を取得、保持する撮影情報保持手段と、前記撮影情報に基づいて補正パラメータを設定する設定手段と、前記設定された補正パラメータを用いて入力画像データを補正する補正手段とを有し、前記撮影情報に基づいて補正方法を変更できることを特徴とする画像補正手段を提供することを目的とする。
【発明の効果】
【０００６】
本発明によれば、画像撮影時の撮影情報に応じて、補正方法を変更することができる。例えばフラッシュを使用してピント位置が短いときは、主被写体のハイライトポイントが飛んでいる可能性が強いので、補正後のハイライトポイントを調節し、ハイライトポイントが飛ぶのを防ぐなど、補正方法を変更することができる。
【発明を実施するための最良の形態】
【０００７】
図１に本願実施形態にかかる画像処理装置の主要部分の構成を示す。
【０００８】
図１に示される画像処理装置は、画像入力部（２）、画像出力部（３）、ヒストグラム作成部（４）、ヒストグラム保持部（５）、ルックアップテーブル作成部（６）、ルックアップテーブル保持部（７）、画像補正部（８）、画像バッファ（９）、コピー用画像バッファ（１０）、フィルタ処理部（１１）、顔検出処理部（１２）、撮影情報保持部（１３）から構成される。
【０００９】
画像入力部（２）は、入力画像（１）からデータを読み込んで、画像バッファ（９）に書き込む。
【００１０】
画像出力部（３）は、画像バッファ（９）に格納されているデータを出力画像（１４）に書き込む。
【００１１】
ヒストグラム作成部（４）は、画像バッファ（９）に格納されている画像データをもとに、ヒストグラムを作成し、結果をヒストグラム保持部（５）に格納する。
【００１２】
ヒストグラム保持部（５）は、画像データ全体のヒストグラム、及びマスク領域のヒストグラムを保持している。
【００１３】
ルックアップテーブル作成部（６）は、ヒストグラム保持部（５）に格納されているヒストグラムをもとに、補正に必要なパラメータを算出し、ルックアップテーブルを作成する。さらに、あらかじめルックアップテーブル保持部（７）に保持されている階調特性及び色再現性補正用ルックアップテーブルと合成し、合成したルックアップテーブルをルックアップテーブル保持部（７）に格納する。
【００１４】
ルックアップテーブル保持部（７）は、ルックアップテーブル作成部（６）において作成したルックアップテーブルと、階調特性及び色再現性補正用ルックアップテーブルを保持する。
【００１５】
画像補正部（８）は、ルックアップテーブル保持部（７）に格納されているルックアップテーブルをもとに、画像バッファ（９）に格納されている画像を補正、結果をコピー用画像バッファ（１０）に格納する。
【００１６】
画像バッファ（９）及びコピー用画像バッファ（１０）は、画像データを保持している。
【００１７】
フィルタ処理部（１１）は、拡大／縮小処理やハイライト部のエッジ強調を行なう。
【００１８】
顔検出処理部（１２）は、画像バッファ（９）に格納されている画像データを元に、人間の顔が存在するかどうかを検出する。そして、存在する場合は、マスクデータを作成する。
【００１９】
撮影情報保持部（１３）は、撮影時のカメラの向き、フラッシュ使用情報、ピント距離、ピント位置（２次元）などを保持している。
【００２０】
画像処理装置は、例えばパソコンなどに図１の各部の処理または制御を実現するためのプログラムを供給することにより実現することができる。その場合は、パソコンのＣＰＵがプログラムの内容に基づき各処理または制御を実施することになる。
【００２１】
以下、発明の実施の形態を、具体例を用いて詳細に説明する。
【００２２】
＜本実施形態の処理の流れ＞
図２に本実施形態における処理の流れを示す。
【００２３】
ステップＳ１において、画像入力部（２）において入力画像（１）の撮影情報及び画像データを読み込み、画像バッファ（９）に展開する。画像入力部（２）の動作の詳細を図３に示し後述する。
【００２４】
ステップＳ２において、ヒストグラム作成部（４）、ルックアップテーブル作成部（６）、画像補正部（８）において、画像を補正する。動作の詳細を図４に示し後述する。
【００２５】
ステップＳ３において、顔検出処理部（１２）において、顔検出処理を行なう。顔検出処理部（１２）の動作の詳細を図１３に示し後述する。
【００２６】
ステップＳ４において、顔検出処理の結果顔が存在したかどうかを判定する。少なくとも１つの顔が存在した場合、ステップＳ５に進む。顔が１つも存在しなかった場合、ステップＳ６に進む。
【００２７】
ステップＳ５において、ヒストグラム作成部（４）、ルックアップテーブル作成部（６）、画像補正部（８）において、マスクデータを用いて画像を補正する。動作の詳細を図１４に示し後述する。
【００２８】
ステップＳ６において、フィルタ処理部（１１）において、フィルタ処理を行なう。フィルタ処理部の動作の詳細を図１８に示し後述する。
【００２９】
ステップＳ７において、画像出力部（３）において、画像バッファ（９）に格納されている画像データ及び撮影情報を出力画像（１４）に出力する。
【００３０】
〈入力画像（１）に格納されている撮影情報及び画像データ〉
図２０に入力画像（１）に格納されている撮影情報及び画像データを示す。撮影情報は撮影情報保持部（１３）に、画像データは画像バッファ（９）に格納される。画像バッファ（９）はこれ以外にマスクデータを格納している。
【００３１】
撮影情報には、撮影時のカメラの向き（図２３（ａ）を正位置とし、（ａ）〜（ｄ）の４通りある）、フラッシュ使用情報、ピント距離、ピント位置、入力機器ＩＤなどが格納されている。
【００３２】
＜画像の展開方法＞
画像入力部（２）における動作の詳細を図３に示す。これは、図２のステップＳ１を詳細に示すものである。
【００３３】
ステップＳ１１において、入力画像（１）から撮影情報を入力し、撮影情報保持部（１３）に格納する。
【００３４】
ステップＳ１２において、撮影情報保持部（１３）に格納されている撮影時のカメラの向きを判定し、判定結果に従って入力画像（１）から得た画像データを画像バッファ（９）に展開する。
【００３５】
展開は、カメラの位置が図２３（ａ）の時はそのまま展開。図２３（ｂ）の時は、左に９０°、図２３（ｃ）の時は、右に９０°、図２３（ｄ）の時は１８０°それぞれ回転して、画像バッファ内では（ａ）の時と上下方向が一致するように展開する。このように展開することで、後の顔検出処理の時には、撮影時のカメラの向きに関係なく常に人が正位置を向いていることとして処理することができる。
【００３６】
また展開の際には、デジタルカメラ特有のダークノイズを低減する処理も行なう。この処理には、例えば輝度の低い部分で微妙に輝度が振れている部分を滑らかにするなどの処理が考えられる。
【００３７】
＜画像補正処理＞
図４に画像補正処理の流れを示す。
【００３８】
ステップＳ２１において、ヒストグラム作成部（４）で、画像バッファ（９）に格納されている画像データをもとにヒストグラムを作成し、結果をヒストグラム保持部（５）に格納する。ヒストグラム作成部（４）の動作の詳細は図５を用いて後述する。
【００３９】
ステップＳ２２において、ルックアップテーブル作成部（６）で、ルックアップテーブルを作成する。ルックアップテーブル作成部（６）の動作の詳細は図７を用いて後述する。
【００４０】
ステップＳ２３において、画像補正部（８）で、画像を補正する。画像補正部（８）の動作の詳細は図１２を用いて後述する。
【００４１】
＜ヒストグラム作成部（４）での動作＞
ヒストグラム作成部（４）での動作を図５に示す。これは、図４のステップＳ２１を詳細に示したものである。
【００４２】
ステップＳ３１において、画像バッファ（９）から画像データを１画素分ずつ取り出す。画像データはＲＧＢ各色の輝度（Ｒ、Ｇ、Ｂ）が格納されている。
【００４３】
ステップＳ３２において、画像データのＲＧＢ値から以下の式に従って当該画素の輝度Ｌを求める。 
Ｌ＝（３＊Ｒ＋６＊Ｇ＋１＊Ｂ）／１０
ステップＳ３３において、ヒストグラム保持部に格納されているヒストグラムを更新する。ヒストグラム保持部には、上記計算した輝度ＬのヒストグラムＨｉｓｔＬ、およびＲＧＢ各色の累積輝度値を当該画素の輝度Ｌ別に格納する。ＨｉｓｔＲ、ＨｉｓｔＧ、ＨｉｓｔＢを保持している。初期状態はすべて０である。ヒストグラムの更新は下記の式に従う。 
ＨｉｓｔＲ［Ｌ］＝ＨｉｓｔＲ［Ｌ］＋Ｒ
ＨｉｓｔＧ［Ｌ］＝ＨｉｓｔＧ［Ｌ］＋Ｇ
ＨｉｓｔＢ［Ｌ］＝ＨｉｓｔＢ［Ｌ］＋Ｂ
ＨｉｓｔＬ［Ｌ］＝ＨｉｓｔＬ［Ｌ］＋１
ステップＳ３４において、全画素終了したかどうかを調べる。終了していれば、終了。いなければ、ステップＳ３１に進む。
【００４４】
作成したヒストグラムＨｉｓｔＬの例を図６に示す。
【００４５】
＜階調再現及び色再現性補正用ルックアップテーブルの作成方法＞
階調再現及び色再現性補正用ルックアップテーブルとは、好ましい色再現に注目し、デジタルカメラなどの入力機器から入力した画像をプリンタなどの出力機器で出力した時の印刷物の階調再現及び色再現を、銀塩ポジフィルムなどの出力目標物で実現している階調再現及び色再現に近付くような画像に補正するためのルックアップテーブルである。階調再現及び色再現性補正用ルックアップテーブルを作成する方法を、図２１を用いて詳細に説明する。
【００４６】
ステップＳ１２１において、図９に示す出力目標物プロファイル（パッチ番号とＸＹＺ測色値の関係）と図１１に示す出力機器プロファイル（ＸＹＺ測色値とＲＧＢ輝度の関係）を合成する。合成方法は、出力目標物プロファイルのＸＹＺ値（各パッチごとに値がある）のＹ値と同じＹ値をもつパッチを出力機器プロファイルから探し出す。そして、出力機器プロファイルから探し出したパッチのＸＹＺ値に対応するＲＧＢ値と、元の出力目標物プロファイルのパッチ番号との対応をとり、合成する。合成されたテーブルは、パッチ番号と出力機器の輝度（ＲＧＢ値）との関係になる。
【００４７】
ステップＳ１２２において、ステップＳ１２１において合成したテーブルと、図１０に示す入力機器プロファイルを合成する。入力機器プロファイルはパッチ番号と入力機器の輝度（ＲＧＢ値）の関係になっているので、合成方法は、同じパッチ番号に対応する入力機器の輝度（ＲＧＢ値）と出力機器の輝度（ＲＧＢ値）との関係を収集することになる。作成したテーブルは、ルックアップテーブル保持部（７）に格納し、画像を補正する際に使用する。実際の使用例は後述する。
【００４８】
＜階調特性及び色再現性補正用ルックアップテーブルの例＞
図２２に示すルックアップテーブルは、以上の方法により作成した階調特性及び色再現性補正用ルックアップテーブル、ＬＵＴＲＤＤ、ＬＵＴＧＤＤ、ＬＵＴＢＤＤである。なお、テーブル内にデータが格納されていない各点間は、直線で補間し変換データを作成する。両端の点では、それぞれ（２５５，２５５）、（０，０）と直線で補間する。本実施形態では補間処理として直線補間を用いているが、例えばスプライン曲線やベジェ曲線を用いた非線形補間処理を用いても構わない。
【００４９】
＜ルックアップテーブル作成部（６）での動作＞
ルックアップテーブル作成部（６）での動作を図７に示す。これは、図４のステップＳ２２を詳細に示したものである。
【００５０】
ステップＳ４１において、ヒストグラム保持部（５）に格納されているヒストグラムＨｉｓｔＬから、画像の最大輝度を求める。図６に示したヒストグラムにおいては、最大輝度は２５２になる。
【００５１】
ステップＳ４２において、Ｓ４１で求めた最大輝度と、２５５から所定量（図６においては、（所定量）＝１０である）を引き算していって、最大輝度の方が大きくなった時の輝度（ＬＨ′、つまりこの例の場合では、２５５、２４５、２３５、…を値を下げていって、その都度最大輝度と比較する。図６においては、ＬＨ′＝２４５になる）を求め、所定の割合の画素（図６においては、総画素数の１％）を含む領域を求める。その領域の最小輝度をハイライトポイント（ＬＨ、図６においては、ＬＨ＝２３４）とする。そして、以下の式に従って領域内（輝度がＬＨ以上ＬＨ′以下の領域）のＲＧＢの平均輝度（ＲＨ、ＧＨ、ＢＨ）を算出する。
【００５２】
【数１】
2006018740.tif 000003
ステップＳ４３において、ヒストグラム保持部（５）に格納されているヒストグラムＨｉｓｔＬから、画像の最小輝度を求める。図４に示したヒストグラムにおいては、最小輝度は６になる。
【００５３】
ステップＳ４４において、Ｓ４３で求めた最小輝度と、０から所定量（図６においては、（所定量）＝１０である）を足し算していって、最小輝度の方が小さくなったときの輝度（ＬＳ′、図６においては、ＬＳ′＝１０）を求め、所定の割合の画素（図６においては、総画素数の１％）を含む領域を求める。その領域の最大輝度をシャドウポイント（ＬＳ、図６においては、ＬＳ＝２２）とする。そして、以下の式に従って領域内（輝度はＬＳ′以上ＬＳ以下の領域）のＲＧＢの平均輝度（ＲＳ、ＧＳ、ＢＳ）を算出する。
【００５４】
【数２】
2006018740.tif 000004
ステップＳ４５において、求めたＲＨ、ＧＨ、ＢＨ、ＲＳ、ＧＳ、ＢＳからＲＧＢそれぞれのルックアップテーブルＬＵＴＲ、ＬＵＴＧ、ＬＵＴＢを作成する。作成したルックアップテーブルの例を図８（ａ）に示し、詳細を後述する。
【００５５】
ステップＳ４６において、ヒストグラム保持部（５）に格納されているヒストグラムＨｉｓｔＬから、画像の平均輝度を求める。そして、求めた平均輝度の値によって、露出補正用ルックアップテーブルＬＵＴＬを作成する。作成したルックアップテーブルの例を図８（ｂ）に示し、詳細を後述する。
【００５６】
ステップＳ４７において、ステップＳ４５で作成したルックアップテーブルＬＵＴＲ、ＬＵＴＧ、ＬＵＴＢ、ステップＳ４６で作成したルックアップテーブルＬＵＴＬ、及びルックアップテーブル保持部（７）にあらかじめ格納されている階調特性及び色再現性補正用ルックアップテーブルＬＵＴＲＤＤ、ＬＵＴＧＤＤ、ＬＵＴＢＤＤを下記の式に従って合成する。合成したルックアップテーブルＬＵＴＲ２、ＬＵＴＧ２、ＬＵＴＢ２をルックアップテーブル保持部（７）に格納する。 
ＬＵＴＲ２［ｉ］＝ＬＵＴＲＤＤ［ＬＵＴＬ［ＬＵＴＲ［ｉ］］］
ＬＵＴＧ２［ｉ］＝ＬＵＴＧＤＤ［ＬＵＴＬ［ＬＵＴＧ［ｉ］］］
ＬＵＴＢ２［ｉ］＝ＬＵＴＢＤＤ［ＬＵＴＬ［ＬＵＴＢ［ｉ］］］
ただし、上記の式においてｉは、０以上最大輝度以下の値である。
【００５７】
＜作成したルックアップテーブルの例＞
作成したルックアップテーブルＬＵＴＲ、ＬＵＴＧ、ＬＵＴＢ、ＬＵＴＬの例を図８に示す。図８（ａ）に示すルックアップテーブルＬＵＴＲ、ＬＵＴＧ、ＬＵＴＢは、コントラスト、及び色かぶりの補正を行なうためのものである。ここでは、Ｇ、Ｂ、Ｒの順にハイライトのガンマを立たせている。このように、Ｒに対してＢ及びＧを強めることで、例えばシアンかぶりしている画像のかぶりを補正することができる。同時に、コントラストの補正もできる。
【００５８】
一方、図８（ｂ）に示すルックアップテーブルＬＵＴＬは露出補正用のルックアップテーブルで、画像の平均輝度により、平均輝度が低いときは露出アンダーの可能性があるので、全体を明るくするようなテーブルを作成し、平均輝度が低い時は露出オーバーの可能性があるので、全体を暗くするようなルックアップテーブルを作成する。
【００５９】
＜画像補正部（８）での動作＞
図１２に画像補正部（８）での動作を示す。これは、図４のステップＳ２３、及び図１４のステップＳ７３を詳細に示したものである。
【００６０】
ステップＳ５１において、画像バッファ（９）に格納されている画像データを１画素分取り出す。画像データはＲＧＢ各色の輝度（Ｒ、Ｇ、Ｂ）が格納されている。
【００６１】
ステップＳ５２において、ステップＳ４６またはステップＳ９８において合成したルックアップテーブルＬＵＴＲ２、ＬＵＴＧ２、ＬＵＴＢ２に基づいて、画像バッファ（９）から取り出した画像データを補正する。結果はコピー用画像バッファ（１０）に格納する。 
Ｒ＝ＬＵＴＲ２［Ｒ］
Ｇ＝ＬＵＴＧ２［Ｇ］
Ｂ＝ＬＵＴＢ２［Ｂ］
ステップＳ５３において、全画素終了したかどうかを調べる。全画素終了していれば終了。終了していなければ、ステップＳ５１に進む。
【００６２】
本実施形態では、ルックアップテーブルの作成処理及び画像補正処理の高速化をはかるために各成分毎にルックアップテーブルを用意している。
【００６３】
＜顔検出処理部（１２）の動作＞
図１３及び図２４に顔検出処理部（１２）の動作を示す。これは、図２のステップＳ３を詳細に示したものである。
【００６４】
ステップＳ６１において、コピー用画像バッファ（１０）に格納されている画像データ（つまり、ステップＳ２で補正された画像データ）を元に、局所的に輝度が低い領域をマークしていく。
【００６５】
ステップＳ６２において、ステップＳ６１でマークされた領域を２つずつ組にして、領域の大きさの均等性、輝度の差、水平に対する角度などから、組にした２つが目かどうかを判定する（図２４（ａ））。
【００６６】
ステップＳ６３において、目と判定された組について、その２つを中心にした矩形領域を設定する。そして、その領域の境界付近のエッジ、及び領域内の色情報を判定する。エッジは、顔の輪郭があるかどうかを判定する。また、色情報は矩形領域内のＲＧＢ値の平均値が、あらかじめ設定した肌色領域内に入っているかどうかを判定する。そして、顔領域を確定する。顔領域は前記矩形領域で与えられる（図２４（ｂ）（ｃ））。
【００６７】
ステップＳ６４において、確定した顔の領域をマスクするようなマスクデータを作成し、作成したマスクデータを画像バッファ（９）に格納する。
【００６８】
＜マスクデータを用いた場合の画像補正処理＞
図１４に本実施形態におけるマスクデータを用いた場合の画像補正処理の流れを示す。
【００６９】
ステップＳ７１において、ヒストグラム作成部（４）で、画像バッファ（９）（ステップＳ２で補正される前の画像データ）に格納されている画像データをもとにヒストグラムを作成し、結果をヒストグラム保持部（５）に格納する。ヒストグラム作成部（４）の動作の詳細は図１５を用いて後述する。
【００７０】
ステップＳ７２において、ルックアップテーブル作成部（６）で、ルックアップテーブルを作成する。ルックアップテーブル作成部（６）の動作の詳細は図１６を用いて後述する。
【００７１】
ステップＳ７３において、画像補正部（８）で、画像を補正する。画像補正部（８）の動作の詳細は図１２で示したものと同一である。
【００７２】
＜マスクデータを用いた場合のヒストグラム作成処理＞
ヒストグラム作成部（４）での動作を図１５に示す。これは、図１４のステップＳ７１を詳細に示したものである。
【００７３】
ステップＳ８１において、画像バッファ（９）から画像データとマスクデータを１画素分ずつ取り出す。画像データはＲＧＢ各色の輝度（Ｒ、Ｇ、Ｂ）、マスクデータはマスクの有無が格納されている。
【００７４】
ステップＳ８２において、画像データのＲＧＢ値から以下の式に従って当該画素の輝度Ｌを求める。 
Ｌ＝（３＊Ｒ＋６＊Ｇ＋１＊Ｂ）／１０
ステップＳ３３において、ヒストグラム保持部に格納されているヒストグラムを更新する。ヒストグラム保持部には、上記計算した輝度ＬのヒストグラムＨｉｓｔＬ、およびＲＧＢ各色の累積輝度値を当該画素の輝度Ｌ別に格納する。ＨｉｓｔＲ、ＨｉｓｔＧ、ＨｉｓｔＢ、さらにマスクデータによってマスクされている領域の輝度ＬのヒストグラムＨｉｓｔＬＭｓｋを保持している。初期状態はすべて０である。ヒストグラムの更新は下記の式に従う。 
ＨｉｓｔＲ［Ｌ］＝ＨｉｓｔＲ［Ｌ］＋Ｒ
ＨｉｓｔＧ［Ｌ］＝ＨｉｓｔＧ［Ｌ］＋Ｇ
ＨｉｓｔＢ［Ｌ］＝ＨｉｓｔＢ［Ｌ］＋Ｂ
ＨｉｓｔＬ［Ｌ］＝ＨｉｓｔＬ［Ｌ］＋１
ステップＳ８４において、マスクデータから当該画素がマスクされているかどうかを調べる。マスクされていたら、ステップＳ８５に進み、マスクされていなかったら、ステップＳ８６に進む。
【００７５】
ステップＳ８５において、ヒストグラム保持部に格納されているマスク領域のヒストグラムを更新する。
ＨｉｓｔＬＭｓｋ［Ｌ］＝ＨｉｓｔＬＭｓｋ［Ｌ］＋１
ステップＳ８６において、全画素終了したかどうかを調べる。終了していれば、終了。いなければ、ステップＳ８１に進む。
【００７６】
作成したヒストグラムＨｉｓｔＬの例は図６に示したものと同一である。
【００７７】
＜マスクデータを使用した場合のルックアップテーブル作成部（６）での動作＞
マスクデータを使用した場合のルックアップテーブル作成部（６）での動作を図１６に示す。これは、図１４のステップＳ７２を詳細に示したものである。
【００７８】
ステップＳ９１において、ヒストグラム保持部（５）に格納されているヒストグラムＨｉｓｔＬから、画像の最大輝度を求める。図６に示したヒストグラムにおいては、最大輝度は２５２になる。
【００７９】
ステップＳ９２において、Ｓ９１で求めた最大輝度と、２５５から所定量（図６においては、（所定量）＝１０である）を引き算していって、最大輝度の方が大きくなった時の輝度（ＬＨ′、つまりこの例の場合では、２５５、２４５、２３５、…を値を下げていって、その都度最大輝度と比較する。図６においては、ＬＨ′＝２４５になる）を求め、所定の割合の画素（図６においては、総画素数の１％）を含む領域を求める。その領域の最小輝度をハイライトポイント（ＬＨ、図６においては、ＬＨ＝２３４）とする。
【００８０】
ステップＳ９３において、ヒストグラム保持部（５）に格納されているヒストグラムＨｉｓｔＬから、画像の最小輝度を求める。図６に示したヒストグラムにおいては、最小輝度は６になる。
【００８１】
ステップＳ９４において、Ｓ９３で求めた最小輝度と、０から所定量（図６においては、（所定量）＝１０である）を足し算していって、最小輝度の方が小さくなった時の輝度（ＬＳ′、図６においては、ＬＳ′＝１０）を求め、所定の割合の画素（図６においては、総画素数の１％）を含む領域を求める。その領域の最大輝度をシャドウポイント（ＬＳ、図６においては、ＬＳ＝２２）とする。
【００８２】
ステップＳ９５において、輝度がＬＳ以上ＬＨ以下の範囲の画素で、以下の式を満たす画素のＲＧＢそれぞれの輝度の平均値（ＲＧ、ＧＧ、ＢＧ）を求める。 
Ｍａｘ（Ｒ、Ｇ、Ｂ）−Ｍｉｎ（Ｒ、Ｇ、Ｂ）＝＜Ｔｈｒ
ただし、Ｍａｘ（Ｒ、Ｇ、Ｂ）はＲＧＢ値の中の最大値、Ｍｉｎ（Ｒ、Ｇ、Ｂ）はＲＧＢ値の中の最小値、Ｔｈｒはある閾値。
【００８３】
ステップＳ９６において、求めたＬＳ、ＬＨ、ＲＧ、ＧＧ、ＢＢからルックアップテーブルＬＵＴＲ、ＬＵＴＧ、ＬＵＴＢを作成する。作成したルックアップテーブルの例を図１７（ａ）に示し、詳細を後述する。そして、結果をルックアップテーブル保持部（７）に格納する。また、ＬＨ及びＬＳをもとに、ＨｉｓｔＬ補正用のルックアップテーブルＬＵＴＴｍｐを作成する。
【００８４】
ステップＳ９７において、ＬＵＴＴｍｐを用いてＨｉｓｔＬＭｓｋを補正する。これは、あとで露出補正量を算出する際に使用する。
【００８５】
ステップＳ９８において、補正を行った後のＨｉｓｔＬＭｓｋからマスク領域の平均輝度を求め、所定の方法に従って露出補正用ルックアップテーブルＬＵＴＬＭｓｋを作成する。そして、結果をルックアップテーブル保持部（７）に格納する。ＬＵＴＬＭｓｋの例を図１０（ｂ）に示し、詳細を後述する。
【００８６】
ステップＳ９９において、ステップＳ９６で作成したルックアップテーブルＬＵＴＲ、ＬＵＴＧ、ＬＵＴＢ、ＬＵＴＬＭｓｋと、及びルックアップテーブル保持部（７）にあらかじめ格納されている階調特性及び色再現性補正用ルックアップテーブルＬＵＴＲＤＤ、ＬＵＴＧＤＤ、ＬＵＴＢＤＤを下記の式に従って合成する。合成したルックアップテーブルＬＵＴＲ２、ＬＵＴＧ２、ＬＵＴＢ２をルックアップテーブル保持部（７）に格納する。 
ＬＵＴＲ２［ｉ］＝ＬＵＴＲＤＤ［ＬＵＴＬＭｓｋ［ＬＵＴＲ［ｉ］］］
ＬＵＴＧ２［ｉ］＝ＬＵＴＧＤＤ［ＬＵＴＬＭｓｋ［ＬＵＴＧ［ｉ］］］
ＬＵＴＢ２［ｉ］＝ＬＵＴＢＤＤ［ＬＵＴＬＭｓｋ［ＬＵＴＢ［ｉ］］］
ただし、上記の式においてｉは、０以上最大輝度以下の値である。
【００８７】
＜作成したルックアップテーブルの例＞
作成したルックアップテーブルの例を図１７に示す。図１７（ａ）に示すルックアップテーブルＬＵＴＲ、ＬＵＴＧ、ＬＵＴＢは、コントラスト、及び色かぶりの補正を行なうためのものである。ここでは、Ｇ、Ｂ、Ｒの順に中間調のガンマを立たせている。このように、Ｒに対してＧ及びＢを強めることで、例えばシアンっぽく色かぶりしている画像の色かぶりを補正することができる。同時に、コントラストの補正もできる。
【００８８】
一方、図１７（ｂ）に示すルックアップテーブルは、マスク領域の露出を最適に補正するためのルックアップテーブルＬＵＴＬＭｓｋである。ここで、例えば人物の領域をマスク領域に設定し、ＬＵＴＬＭｓｋを人物の露出が最適に補正できるように設定することもできる。
【００８９】
＜フィルタ処理部（１１）の動作＞
図１８にフィルタ処理部（１１）の動作の流れを示す。これは、図２のステップＳ６を詳細に示すものである。
【００９０】
ステップＳ１０１において、画像の拡大／縮小処理を行なう。処理には、バイキュービックやバイリニアなどの方法を用いる。
【００９１】
ステップＳ１０２において、エッジ強調処理を行なう。エッジ強調処理の動作の詳細を図１９に示し後述する。
【００９２】
＜エッジ強調処理＞
図１９にエッジ強調処理の動作の流れを示す。これは、図１８のステップＳ１０２を詳細に示したものである。
【００９３】
まず、ステップＳ１１１において、コピー用画像バッファ（１０）から１画素分のＲＧＢ輝度データを読み出す。
【００９４】
ステップＳ１１２において、読み出したＲＧＢ輝度データと閾値をＲＧＢそれぞれについて比較する。その結果、ＲＧＢ輝度データがすべて閾値よりも小さいか、画像の端の画素だった場合には、ステップＳ１１４に進む。それ以外の時には、ステップＳ１１３に進む。
【００９５】
ステップＳ１１３において、閾値以上の値を有する色成分データについて、３×３のエッジ強調フィルタを用いてフィルタ処理を行なう。なお、閾値以下の色成分データに対してはフィルタ処理を行わない。
【００９６】
ステップＳ１１４において、処理されたＲＧＢ輝度データを画像バッファ（９）に書き込む。エッジ強調処理をしなかった場合はステップＳ１１１で読み込まれたＲＧＢ輝度データがそのまま画像バッファ（９）に書き込まれる。
【００９７】
ステップＳ１１５において、全画素終了したかどうかを判定する。全画素終了していなければ、ステップＳ１１１に進む。
【００９８】
なお、ステップＳ１１２で用いる閾値は各色成分に対して同一の閾値を用いても構わないし、各色成分に対して独立に閾値を設定しても構わない。
【００９９】
（第２の実施形態）
前記発明の実施の形態においては、ルックアップテーブル作成の際に、補正後のハイライトポイント及びシャドウポイント（図８（ａ）のＨＰ及びＳＰ）は常にある定数を使用していたが、撮影情報保持部（１３）に格納されている情報を使用して、補正後のハイライトポイント及びシャドウポイントを可変にすることもできる。以下に実施の形態を詳細に述べる。
【０１００】
図２５に発明の第２の実施形態における画像補正装置の主要部分の構成を示す。
【０１０１】
図２５に示される画像処理装置は、画像入力部（２）、画像出力部（３）、ヒストグラム作成部（４）、ヒストグラム保持部（５）、ルックアップテーブル作成部（６）、ルックアップテーブル保持部（７）、画像補正部（８）、画像バッファ（９）、コピー用画像バッファ（１０）、フィルタ処理部（１１）、顔検出処理部（１２）、撮影情報保持部（１３）、補正情報保持部（１５）から構成される。
【０１０２】
このうち、ルックアップテーブル作成部（６）、補正情報保持部（１５）以外は前記実施形態において説明したものと同じ動作を行なうので、説明は省略する。
【０１０３】
＜第２の実施形態におけるルックアップテーブル作成方法＞
図２６に補正情報保持部（１５）において保持している情報を示す。
【０１０４】
図２６においては、フラッシュ使用の有無、ピント距離の範囲を組み合わせて、それぞれの組み合わせに応じて補正後のハイライトポイント及びシャドウポイントを保持している。例えばフラッシュを使用して、ピント距離が短いときは、ハイライトが飛んでいる可能性が強いので、ＨＰの値を低くしてコントラストをあまり強調しないようにしたり、フラッシュ未使用で、ピント距離が長いときは風景写真の可能性が強いので、ＳＰの値を低く、ＨＰの値を高くしてコントラストを強調したりすることが可能になる。このＨＰ及びＳＰは、ルックアップテーブル作成部（６）において、ルックアップテーブル作成の際（ステップＳ４５及びステップＳ９６）に、補正情報保持部（１５）から読み込むことによって使用する。
【０１０５】
（他の実施の形態）
＜輝度の考え方＞
前記実施例においては、輝度データは０から２５５のデジタル値で実施しているが、これ以外、例えばデータの最大値は２５５に限定されるものではなく、さらに輝度のみならず網点濃度などでもよいことは言うまでもない。
【０１０６】
＜輝度値の計算方法＞
ステップＳ３２及びステップＳ８２において、輝度値をＲ：Ｇ：Ｂ＝３：６：１の重みで加重平均して計算しているが、これに限らないことは言うまでもなく、例えばこれ以外の重みで計算してもいいし、ＲＧＢの最大値と最小値の平均値で求めてもよい。
【０１０７】
＜顔検出結果の示し方＞
前記実施例においては、顔検出の結果を矩形で示したが、矩形に限らないことは言うまでもなく、例えば輪郭部分を抽出したものを結果としてもよい。
【０１０８】
＜撮影時のカメラの向きと、画像バッファに格納する画像データ＞
図２３において、撮影時のカメラの向きと、画像バッファに格納する画像データについて、４つの場合について記述しているが、この４種類とは限らないことはいうまでもなく、例えば４５°傾けて撮影された場合には、逆方向に４５°傾けて画像バッファに格納するようにしてもよい。
【０１０９】
＜撮影情報の利用方法＞
前記実施例においては、撮影情報としてはカメラの位置のみしか使用していないが、図２０に示すように、カメラのＩＤを使用して、図９に示す出力目標物プロファイルを切り替えるようにしてもよい。また、ピントの合った位置を使用することで、露出補正用ルックアップテーブルＬＵＴＬ作成の際に、ピントの合った位置を中心に作成するようにしてもよい。
【０１１０】
＜補正情報保持部（１５）において保持している情報について＞
前記第２の実施例においては、補正情報保持部（１５）において、補正後のハイライトポイント（ＨＰ）及びシャドウポイント（ＳＰ）を保持していたが、ＨＰ、ＳＰだけに限らないことは言うまでもない。例えば、露出補正の方法も保持するようにして、フラッシュ未使用、ピント距離が長い時は、露出アンダーの可能性が強いので、露出補正を通常よりも明るめに設定するようにしてもよい。
【０１１１】
＜その他＞
本発明は複数の機器（例えばホストコンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても一つの機器（例えば複写機、ファクシミリ装置）からなる装置に適用してもよい。
【０１１２】
また前述した実施形態の機能を実現する様に各種のデバイスを動作させる様に該各種デバイスと接続された装置あるいはシステム内のコンピュータに、前記実施形態機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）を格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも本発明の範疇に含まれる。
【０１１３】
またこの場合、前記ソフトウェアのプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記憶媒体は本発明を構成する。
【０１１４】
かかるプログラムコードを格納する記憶媒体としては例えばフロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１１５】
またコンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけではなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）、あるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【０１１６】
さらに、供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される場合も本発明に含まれることは言うまでもない。
【図面の簡単な説明】
【０１１７】
【図１】本願実施形態の画像処理装置の構成を示す図。
【図２】本願実施形態での処理の流れを示す図。
【図３】画像入力部（２）での動作を示す図。
【図４】画像補正の流れを示す図。
【図５】ヒストグラム作成部（４）での動作を示す図。
【図６】ヒストグラムの例を示す図。
【図７】ルックアップテーブル作成部（６）での動作を示す図。
【図８】ルックアップテーブル保持部（７）で保持されているルックアップテーブルの例を示す図。
【図９】出力目標物プロファイルの例。
【図１０】入力機器プロファイルの例。
【図１１】出力機器プロファイルの例。
【図１２】画像補正部（８）での動作を示す図。
【図１３】顔検出処理部（１２）での動作を示す図。
【図１４】マスクデータを使用する場合の、画像補正処理の流れを示す図。
【図１５】マスクデータを使用する場合の、ヒストグラム処理部４での動作を示す図。
【図１６】マスクデータを使用する場合の、ルックアップテーブル作成部（６）での動作を示す図。
【図１７】マスクデータを使用する場合の、ルックアップテーブル保持部（７）で保持されているルックアップテーブルの例を示す図。
【図１８】フィルタ処理部（１１）での動作を示す図。
【図１９】エッジ強調処理の流れを示す図。
【図２０】画像バッファ（９）で格納されている撮影情報及び画像データの例を示す図。
【図２１】階調再現及び色再現性補正用ルックアップテーブルの合成方法を示す図。
【図２２】合成された階調再現及び色再現性補正用ルックアップテーブル例を示す図。
【図２３】デジタルカメラの撮影時の向きと、画像バッファ（９）への展開方法の関係を示す図。
【図２４】顔検出の流れを示す図。
【図２５】本願第２の実施形態の画像処理装置の構成を示す図。
【図２６】補正情報保持部（１５）において保持している情報を示す図。
【符号の説明】
【０１１８】
１  入力画像
２  画像入力部
３  画像出力部
４  ヒストグラム作成部
５  ヒストグラム保持部
６  ルックアップテーブル作成部
７  ルックアップテーブル保持部
８  画像補正部
９  画像バッファ
１０  コピー用画像バッファ
１１  フィルタ処理部
１２  顔検出処理部
１３  撮影情報保持部
１４  出力画像
１５  補正情報保持部
【図１】
2006018740.tif 000005
【図２】
2006018740.tif 000006
【図３】
2006018740.tif 000007
【図４】
2006018740.tif 000008
【図５】
2006018740.tif 000009
【図６】
2006018740.tif 000010
【図７】
2006018740.tif 000011
【図８】
2006018740.tif 000012
【図９】
2006018740.tif 000013
【図１０】
2006018740.tif 000014
【図１１】
2006018740.tif 000015
【図１２】
2006018740.tif 000016
【図１３】
2006018740.tif 000017
【図１４】
2006018740.tif 000018
【図１５】
2006018740.tif 000019
【図１６】
2006018740.tif 000020
【図１７】
2006018740.tif 000021
【図１８】
2006018740.tif 000022
【図１９】
2006018740.tif 000023
【図２０】
2006018740.tif 000024
【図２１】
2006018740.tif 000025
【図２２】
2006018740.tif 000026
【図２３】
2006018740.tif 000027
【図２４】
2006018740.tif 000028
【図２５】
2006018740.tif 000029
【図２６】
2006018740.tif 000030