(57)【特許請求の範囲】
【請求項１】
撮影された画像の被写体に対し、仮想的な光源からの仮想光を照射した効果を付与して明るさを補正する画像処理装置であって、
前記仮想光の強さを設定する設定手段と、
前記仮想光の強さと、前記被写体と前記仮想的な光源との位置関係とに基づき、前記明るさの補正量を決定する決定手段と、
前記決定手段により決定された補正量に基づき、前記被写体の明るさを補正する補正手段とを有し、
前記設定手段はさらに、前記被写体と前記仮想的な光源との位置関係に基づき、設定可能な前記仮想光の強さの上限値を設定することを特徴とする画像処理装置。
【請求項２】
前記補正手段は、前記仮想光の強さに基づく信号を前記明るさを補正する部分の信号に対して加算または減算することにより、明るさを補正することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記明るさの補正量とは、前記仮想光の強さに基づく信号のゲイン値であることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記被写体の陰影状態の情報を取得する取得手段をさらに有し、
前記設定手段は、前記取得手段により取得された陰影状態の情報に基づき前記仮想光の強さを設定することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記取得手段が取得する陰影状態の情報とは、環境光源によって被写体に生じている明暗の状態であることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
被写体の法線情報を取得する法線情報取得手段をさらに有し、
前記決定手段は、前記被写体の法線情報を用いて前記明るさの補正量を決定することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記決定手段は、前記被写体に対する前記仮想光の照射方向を用いて前記明るさの補正量を決定することを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記決定手段は、前記仮想的な光源と前記被写体との距離を用いて前記明るさの補正量を決定することを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記設定手段は、前記仮想的な光源との位置関係に基づき、前記補正手段による補正で明るさが飽和する可能性が高い領域を特定し、当該領域の明るさが飽和しない前記仮想光の強さの上限値を設定することを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
画像処理装置であって、
仮想的な光源から照射される仮想光の強さを設定する設定手段と、
撮影された画像の被写体に対し、前記仮想光を照射した効果を付与して明るさを補正する補正手段と、
前記被写体と前記仮想光の照射方向とが第１の位置関係にある場合、前記設定手段は設定可能な前記仮想光の強さの上限値を第１の値とし、前記被写体と前記仮想光の照射方向とが第１の位置関係と異なる第２の位置関係にある場合、前記設定手段は設定可能な前記仮想光の強さの上限値を前記第１の値とは異なる第２の値とすることを特徴とする画像処理装置。
【請求項１１】
前記明るさの補正の度合いを設定するためのユーザ操作を受け付ける受付手段をさらに有する請求項１乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
前記受付手段により受け付けられた前記明るさの補正の度合いの設定と、前記仮想光の強さの上限値とに基づき、前記設定手段は前記仮想光の強さを設定することを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記受付手段により前記明るさの補正の度合いが最大に設定された場合、前記設定手段は前記仮想光の強さの上限値を前記仮想光の強さとして設定することを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
撮影された画像の被写体に対し、仮想的な光源からの仮想光を照射した効果を付与して明るさを補正する画像処理方法であって、
前記仮想光の強さを設定する設定工程と、
前記仮想光の強さと、前記被写体と前記仮想的な光源との位置関係とに基づき、前記明るさの補正量を決定する決定工程と、
前記決定工程において決定された補正量に基づき、前記被写体の明るさを補正する補正工程とを有し、
前記設定工程ではさらに、前記被写体と前記仮想的な光源との位置関係に基づき、設定可能な前記仮想光の強さの上限値を設定することを特徴とする画像処理方法。
【請求項１５】
画像処理方法であって、
仮想的な光源から照射される仮想光の強さを設定する設定工程と、
撮影された画像の被写体に対し、前記仮想光を照射した効果を付与して明るさを補正する補正工程と、
前記被写体と前記仮想光の照射方向とが第１の位置関係にある場合、前記設定工程では設定可能な前記仮想光の強さの上限値を第１の値とし、前記被写体と前記仮想光の照射方向とが第１の位置関係と異なる第２の位置関係にある場合、前記設定工程では設定可能な前記仮想光の強さの上限値を前記第１の値とは異なる第２の値とすることを特徴とする画像処理方法。
【請求項１６】
請求項１４または１５に記載の画像処理方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１７】
請求項１４または１５に記載の画像処理方法の各工程をコンピュータに実行させるためのプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関し、特には画像の明るさを補正する技術に関する。
【背景技術】
【０００２】
従来、画像中の被写体に対して、仮想的な光源からの光を照射することで、明るさを補正する技術（リライティング）が知られている（特許文献１）。これにより、環境光によって生じた影などの暗部領域を明るくすることができ、例えば黒つぶれした部分に存在する被写体が判別できるように画像を補正することが可能となる。
【０００３】
例えば、特許文献１には、撮影画像に対して疑似的なライティング処理を行うライティング処理技術について開示されている。具体的には、顔領域全体の平均輝度よりも低い輝度領域を影領域として抽出する。そして抽出した影領域の明度を上げる処理を行っている。これにより、被写体の影を抑制することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１３５９９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
リライティング処理によって陰影を補正する際には、リライティング補正量を適切に決定することが必要である。リライティング補正量を大きくすると画素値が飽和してしまい、絵柄によってはリライティング後の画像の明るさのバランスが崩れてしまうという弊害が生じる。逆に飽和しないようにリライティング補正量を小さくするとリライティング効果が小さくなってしまうという課題がある。
【０００６】
上記の特許文献１に開示されている方法では、リライティング補正量のゲイン値をリライティング処理前の元画像の輝度値に基づいて決定している。しかしながら、この方法では被写体と仮想光源の位置関係・仮想光源の反射分布まで考慮しておらず、元画像の輝度値が高ければリライティング補正量のゲイン値が小さくなるよう制御されてしまう。例えば、被写体に対して斜めに仮想光源を設定している場合においては、同じ被写体内でも仮想光源が強くあたる領域と弱くあたる領域がある。そのため、仮想光源が弱くあたる領域の元画像の輝度値が高いからといって、リライティング補正量のゲイン値を小さく設定してしまうとリライティングによる効果が小さくなってしまうことになる。
【０００７】
本発明は上述した課題に鑑みてなされたものであり、その目的は、画像中の被写体に対して、仮想的な光源からの光を照射することで明るさを補正する場合に、過補正や補正不足になることを抑制することができる画像処理装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係わる画像処理装置は、撮影された画像の被写体に対し、仮想的な光源からの仮想光を照射した効果を付与して明るさを補正する画像処理装置であって、前記仮想光の強さを設定する設定手段と、前記仮想光の強さと、前記被写体と前記仮想的な光源との位置関係とに基づき、前記明るさの補正量を決定する決定手段と、前記決定手段により決定された補正量に基づき、前記被写体の明るさを補正する補正手段とを有し、前記設定手段はさらに、前記被写体と前記仮想的な光源との位置関係に基づき、設定可能な前記仮想光の強さの上限値を設定することを特徴とする。
また、本発明に係わる画像処理装置は、画像処理装置であって、仮想的な光源から照射される仮想光の強さを設定する設定手段と、撮影された画像の被写体に対し、前記仮想光を照射した効果を付与して明るさを補正する補正手段と、前記被写体と前記仮想光の照射方向とが第１の位置関係にある場合、前記設定手段は設定可能な前記仮想光の強さの上限値を第１の値とし、前記被写体と前記仮想光の照射方向とが第１の位置関係と異なる第２の位置関係にある場合、前記設定手段は設定可能な前記仮想光の強さの上限値を前記第１の値とは異なる第２の値とすることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、画像中の被写体に対して、仮想的な光源からの光を照射することで明るさを補正する場合に、過補正や補正不足になることを抑制することができる画像処理装置を提供することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係るデジタルカメラの構成を示すブロック図。
【図２】画像処理部の構成を示すブロック図。
【図３】リライティング処理部の構成を示すブロック図。
【図４】仮想光源の照射による反射を説明する図。
【図５】最大ゲイン値の算出処理を示すフローチャート。
【図６】リライティング処理前後の画像を説明する図。
【図７】オートリライティング処理を示すフローチャート。
【図８】リライティングの強度設定画面を説明する図。
【発明を実施するための形態】
【００１１】
以下、本発明の例示的な実施形態を、添付の図面に基づいて詳細に説明する。なお、以下に説明する実施形態では、本発明に係る画像処理装置をデジタルカメラに適用した例について説明する。なお、デジタルカメラは光電変換素子を用いた撮影機能を有する電子機器を意味し、携帯電話機、ゲーム機、パーソナルコンピュータ等、カメラを有するまたは使用可能な任意の電子機器が含まれる。また、本発明に撮影機能は必須でなく、本発明に係る画像処理装置は、画像処理が可能な任意の電子機器に対して適用可能である。
【００１２】
図１は、本発明の一実施形態に係るデジタルカメラ１００の構成例を示すブロック図である。
【００１３】
図１において、レンズ群１０１は、フォーカスレンズを含むズームレンズである。絞り機能を備えるシャッター１０２が、レンズ群１０１と撮像部１０３との間に設けられている。撮像部１０３は、レンズ群１０１によって撮像面に形成される光学像を画素単位の電気信号に変換するＣＣＤ／ＣＭＯＳイメージセンサを代表とする撮像素子を有する。Ａ／Ｄ変換器１０４は、撮像部１０３が出力するアナログ信号をデジタル信号（画像データ）に変換する。
【００１４】
画像処理部１０５は、Ａ／Ｄ変換器１０４から出力される画像データに対し、色補間（デモザイク）、ホワイトバランス調整、γ補正、輪郭強調、ノイズリダクション、色補正などの各種画像処理を行う。画像メモリ１０６は画像データを一時的に記憶する。メモリ制御部１０７は、画像メモリ１０６の読み書きを制御する。Ｄ／Ａ変換器１０８は、画像データをアナログ信号に変換する。表示部１０９はＬＣＤや有機ＥＬディスプレイ等の表示装置を有し、各種ＧＵＩやライブビュー画像、記録媒体１１２から読み出して再生した画像などを表示する。コーデック部１１０は、画像メモリ１０６に記憶されている画像データを記録媒体に記録するために予め定められた方法で符号化したり、画像ファイルに含まれる符号化画像データを例えば表示のために復号したりする。
【００１５】
インタフェース（Ｉ／Ｆ）１１１は、例えば半導体メモリカードやカード型ハードディスクなどの着脱可能な記録媒体１１２を、デジタルカメラ１００と機械的および電気的に接続する。システム制御部５０は例えばＣＰＵやＭＰＵなどのプログラマブルなプロセッサであってよい。システム制御部５０は、例えば不揮発性メモリ１２１や内蔵する不揮発性メモリに記録されたプログラムを実行して必要なブロックや回路を制御することにより、デジタルカメラ１００の機能を実現する。リライティング処理部１１４は、撮影画像にリライティング処理を行う。
【００１６】
操作部１２０は、ユーザがデジタルカメラ１００に各種の指示を入力するためのボタンやスイッチなどをまとめて記載したものである。
【００１７】
不揮発性メモリ１２１は電気的に消去・記録可能な、例えばＥＥＰＲＯＭ等であってよい。不揮発性メモリ１２１は、各種の設定値、ＧＵＩデータをはじめ、システム制御部５０がＭＰＵやＣＰＵである場合には、システム制御部５０が実行するためのプログラムが記録される。
【００１８】
システムメモリ１２２は、システム制御部５０の動作用の定数、変数、不揮発性メモリ１２１から読みだしたプログラム等を展開するために用いる。測距センサ１２３は、被写体との距離を測定し、撮影画素の画素単位に対応する距離情報を２次元の距離マップ画像として出力する。
【００１９】
次に、デジタルカメラ１００における撮影時の動作について説明する。
【００２０】
例えば撮像部１０３は、シャッター１０２が開いている際にレンズ群１０１が撮像面に形成する被写体像を撮像素子によって光電変換し、アナログ画像信号としてＡ／Ｄ変換器１０４へ出力する。Ａ／Ｄ変換器１０４は撮像部１０３から出力されるアナログ画像信号をデジタル画像信号（画像データ）に変換し画像処理部１０５に出力する。
【００２１】
画像処理部１０５は、Ａ／Ｄ変換器１０４からの画像データ、又は、メモリ制御部１０７からの画像データに対し、色補間（デモザイク）、γ補正、輪郭強調、ノイズリダクション、色補正などの各種画像処理を行う。
【００２２】
また、画像処理部１０５では、撮影で得られた画像データを用いて輝度やコントラストなどに関する所定の演算処理を行い、得られた演算結果に基づいてシステム制御部５０が測距制御、露光制御を行う。このように、本実施形態のデジタルカメラ１００では、ＴＴＬ（スルー・ザ・レンズ）方式のＡＦ（オートフォーカス）処理、ＡＥ（自動露出）処理を行う。画像処理部１０５ではさらに、撮影で得られた画像データを用いたオートホワイトバランス（ＡＷＢ）調整も行う。
【００２３】
画像処理部１０５から出力された画像データは、メモリ制御部１０７を介して画像メモリ１０６に書き込まれる。画像メモリ１０６は、撮像部１０３から出力された画像データや、表示部１０９に表示するための画像データを格納する。
【００２４】
また、Ｄ／Ａ変換器１０８は、画像メモリ１０６に格納されている画像表示用のデータをアナログ信号に変換して表示部１０９に供給する。表示部１０９は、ＬＣＤ等の表示装置に、Ｄ／Ａ変換器１０８からのアナログ信号に応じた表示を行う。
【００２５】
コーデック部１１０は、画像メモリ１０６に記録された画像データをＪＰＥＧやＭＰＥＧなどの規格に基づき符号化する。システム制御部５０は符号化した画像データに対して予め定められたヘッダなどを付与して画像ファイルを形成し、インタフェース１１１を介して記録媒体１１２に記録する。
【００２６】
なお、現在のデジタルカメラでは、撮影スタンバイ状態においては動画撮影を行い、撮影された動画を表示部１０９に表示し続けることにより表示部１０９を電子ビューファインダ（ＥＶＦ）として機能させるのが一般的である。この場合、シャッター１０２は開いた状態とし、撮像部１０３のいわゆる電子シャッターを用いて例えば３０フレーム／秒の撮影を行う。
【００２７】
そして、操作部１２０に含まれるシャッターボタンが半押しされると上述のＡＦ，ＡＥ制御が行われ、全押しされると本撮影により記録用の静止画撮影が実行され、記録媒体１１２に記録される。また、動画撮影ボタンなどにより動画撮影が指示された場合は、記録媒体１１２への動画記録を開始する。
【００２８】
上記の基本動作以外に、システム制御部５０は、前述した不揮発性メモリ１２１に記録されたプログラムを実行することで、後述する本実施形態の各処理を実行する。ここでいうプログラムとは、本実施形態において後述する各種フローチャートを実行するためのプログラムのことである。この際、システム制御部５０の動作用の定数、変数、不揮発性メモリ１２１から読み出したプログラム等をシステムメモリ１２２に展開する。
【００２９】
次に、画像処理部１０５の詳細について図２を用いて説明する。図２は画像処理部１０５の構成を示すブロック図である。
【００３０】
図２において、画像処理部１０５は、同時化処理部２００、ＷＢ増幅部２０１、輝度・色信号生成部２０２、輪郭強調処理部２０３、輝度ガンマ処理部２０４を備える。さらに画像処理部１０５は、色変換処理部２０５、色γ処理部２０６、色差信号生成部２０７、陰影情報取得部２０８を備える。
【００３１】
次に、画像処理部１０５における処理について説明する。図１のＡ／Ｄ変換部１０４から入力された画像信号が画像処理部１０５に入力される。画像処理部１０５に入力された画像信号は同時化処理部２００に入力される。同時化処理部２００は入力されたベイヤー配列のＲＧＢの画像データに対して、同時化処理を行い、色信号Ｒ，Ｇ，Ｂを生成する。ＷＢ増幅部２０１は、システム制御部５０が算出するホワイトバランスゲイン値に基づき、ＲＧＢの色信号にゲインをかけ、ホワイトバランスを調整する。ＷＢ増幅部２０１が出力したＲＧＢ信号は輝度・色信号生成部２０２に入力される。輝度・色信号生成部２０２はＲＧＢ信号から輝度信号Ｙを生成し、生成した輝度信号Ｙを輪郭強調処理部２０３へ、ＲＧＢの色信号を色変換処理部２０５へ出力する。
【００３２】
輪郭強調処理部２０３では、輝度信号に対して輪郭強調処理を行い、輝度ガンマ処理部２０４へ出力する。輝度ガンマ処理部２０４では輝度信号Ｙに対してガンマ補正を行い、輝度信号Ｙを画像メモリ１０６に出力する。
【００３３】
色変換処理部２０５は、ＲＧＢ信号を、マトリクス演算などにより、所望のカラーバランスへ変換する。色ガンマ処理部２０６では、ＲＧＢの色信号にガンマ補正を行う。色差信号生成部２０７では、ＲＧＢ信号から色差信号Ｂ−Ｙ、Ｒ−Ｙ信号を生成する。画像メモリ１０６に出力された画像信号であるＹ信号、 Ｂ−Ｙ信号 Ｒ−Ｙ信号は、コーデック部１１０によって圧縮符号化され、記録媒体１１２に記録される。
【００３４】
また、色変換処理部２０５から出力されたＲＧＢ信号は陰影情報取得部２０８へも入力される。陰影情報取得部２０８は、環境光源によって被写体に生じた陰影状態（明暗の状態）を解析するための情報を取得する。例えば、被写体の平均輝度情報および顔領域の輝度ヒストグラム情報などを陰影情報として取得する。
【００３５】
次に、画像中の被写体に対して、仮想的な光源からの光を照射することで明るさを補正する処理（リライティング処理）を行うリライティング処理部１１４の構成および動作について図３を用いて説明する。ユーザの操作によりリライティング処理が選択されている場合は、画像処理部１０５から出力されたデータがリライティング処理部１１４に入力され、仮想光源によるリライティング処理が行われる。
【００３６】
図３はリライティング処理部１１４の構成を示すブロック図である。図３において、信号変換部３０１は入力された輝度・色差信号（Ｙ，Ｂ−Ｙ，Ｒ−Ｙ）をＲＧＢ信号に変換する。デガンマ処理部３０２はデガンマ処理を行う。また、距離算出部３０３は測距センサ１２３から出力される撮像装置から被写体までの距離情報を取得する（距離情報取得）。法線算出部３０４は被写体の法線を算出する（法線情報取得）。仮想光源反射成分算出部３０５は、仮想光源が被写体に当たり反射した成分を算出する。仮想光源付加処理部３０６は、仮想光源によるリライティング効果を画像に付加する。また、ガンマ処理部３０７はＲＧＢ信号にガンマ特性をかけ、輝度・色差信号変換部３０８は、ＲＧＢ信号を輝度・色差信号（Ｙ，Ｂ−Ｙ，Ｒ−Ｙ）に変換する。
【００３７】
上記のように構成されるリライティング処理部１１４の動作について説明する。リライティング処理部１１４には、画像メモリ１０６に記録された輝度・色差信号（Ｙ，Ｂ−Ｙ，Ｒ−Ｙ）が入力される。ＲＧＢ信号変換部３０１は、入力された輝度・色差信号（Ｙ，Ｂ−Ｙ，Ｒ−Ｙ）をＲＧＢ信号に変換し、デガンマ処理部３０２へ出力する。デガンマ処理部３０２は、画像処理部１０５のガンマ処理部で掛けられたガンマ特性と逆の特性の演算を行い、ＲＧＢ信号をリニアデータに変換する。デガンマ処理部３０２は、リニア変換後のＲＧＢ信号（Ｒｔ，Ｇｔ，Ｂｔ）を、仮想光源反射成分算出部３０５および仮想光源付加処理部３０６に出力する。
【００３８】
一方、距離算出部３０３は測距センサ１２３から取得した被写体の距離情報から距離マップを算出する。被写体の距離情報とは、撮影画像を複数に分割した領域ごとに得られる２次元の距離情報のことである。この領域は、１画素単位であっても複数画素単位であってもよい。法線算出部３０４は距離算出部３０３から取得した距離情報から法線マップを算出する。
【００３９】
距離マップから法線マップを生成する方法に関しては、公知の技術を用いればよいが、具体的な処理例について図４を用いて説明する。図４はカメラの撮影座標と、被写体の関係を示す図である。例えば、図４に示すようにある被写体４０１に対して、撮影画像の水平方向の差分ΔＨに対する距離（奥行き）Ｄの差分ΔＤから面４０１ａの勾配情報を算出し、その勾配情報から面４０１ａの法線Ｎを算出することが可能である。撮影した各画素に対して上記の処理を行うことで、撮影画像の各画素に対応する法線情報Ｎを算出可能である。法線算出部３０４は、撮影画像の各画素に対応する法線情報Ｎを法線マップとして仮想光源反射成分算出部３０５に出力する。
【００４０】
仮想光源反射成分算出部３０５では、光源と被写体の距離Ｋ、法線情報Ｎ、仮想光源パラメータＬに基づき、設置した仮想光源が被写体に当たり反射される成分を算出する。具体的には、光源と被写体との距離Ｋの二乗に反比例し、被写体の法線ベクトルＮと光源方向ベクトルＬの内積に比例するように、撮影画像に対応する座標位置の反射成分を算出する。
【００４１】
これについて、図４を用いてさらに説明する。図４では、被写体４０１の位置と、設定した仮想光源４０２の位置を示している。カメラ１００で撮影された撮影画像の水平画素位置Ｈ１（垂直画素位置は説明を分かりやすくするために省略）における反射成分は、座標Ｈ１における法線Ｎ１と仮想光源の方向ベクトルＬ１の内積に比例し、仮想光源と被写体の距離Ｋ１の二乗に反比例する値となる。
【００４２】
この関係を数式で表現すると仮想光源による被写体からの反射成分（Ｒａ，Ｇａ，Ｂａ）は下記の通りとなる。
【００４３】
Ｒａ＝α ×（−Ｌ・Ｎ）／Ｋ2 × Ｒｔ
Ｇａ＝α ×（−Ｌ・Ｎ）／Ｋ2 × Ｇｔ        …（１）
Ｂａ＝α ×（−Ｌ・Ｎ）／Ｋ2 × Ｂｔ
ここで、αは仮想光源の強さでありリライティング補正量のゲイン値である。本実施形態では、リライティング補正量の最大ゲイン値αmaxを算出し、αmax以下のゲイン値でリライティング処理を行うよう制御する。Ｌは仮想光源の３次元方向ベクトル、Ｎは被写体の３次元法線ベクトル、Ｋは仮想光源と被写体の距離である。Ｒｔ，Ｇｔ，Ｂｔはデガンマ処理部３０２から出力された撮影された画像の輝度値を表わす撮影ＲＧＢデータである。
【００４４】
上記のように算出された仮想光源による反射成分（Ｒａ，Ｇａ，Ｂａ）は仮想光源付加処理部３０６へ出力される。仮想光源付加処理部３０６では、仮想光源成分（Ｒａ，Ｇａ，Ｂａ）を加算する下記の処理を行う。
【００４５】
Ｒｏｕｔ＝Ｒｔ＋Ｒａ
Ｇｏｕｔ＝Ｇｔ＋Ｇａ
Ｂｏｕｔ＝Ｂｔ＋Ｂａ
仮想光源付加処理部３０６から出力された画像信号（Ｒｏｕｔ，Ｇｏｕｔ，Ｂｏｕｔ）はガンマ処理部３０７に入力される。ガンマ処理部３０７では、ＲＧＢの入力信号にガンマ補正を行う。色差信号生成部３０８では、ＲＧＢ信号から輝度信号Ｙ、色差信号Ｂ−Ｙ，Ｒ−Ｙを生成する。以上が、リライティング処理部１１４の動作である。
【００４６】
システム制御部５０は、リライティング処理部１１４が出力した輝度・色差信号を、メモリ制御部１０７の制御によって、画像メモリ１０６に蓄積させた後、コーデック部１１０により圧縮符号化させる。また、Ｉ／Ｆ１１１を介して記録媒体１１２に記録させる。
【００４７】
次に、システム制御部５０が、上記のように動作するリライティング処理部１１４の最大ゲイン値αmaxを決定する処理の流れについて説明する。具体的には、距離算出部３０３、法線算出部３０４、仮想光源反射成分算出部３０５での算出結果に基づき、最大ゲイン値αmaxを決定する。これらの動作について以下説明する。
【００４８】
図５は、システム制御部５０の動作を示したフローチャートである。以下、図５のフローチャートに従って、システム制御部５０がリライティングのパラメータの最大ゲイン値αmaxを決定する動作について説明する。
【００４９】
ステップＳ５０１では、操作部１２０を介してユーザからの操作によりリライティング処理が選択されているか否かを判定する。即ち、リライティング処理部１１４による処理を行うか否かを判定する。リライティングを行う場合はステップ５０２に進む。
【００５０】
ステップＳ５０２では、被写体を撮影する。ステップＳ５０３では、距離算出部３０３において撮像装置と被写体との距離による重み付けマップ画像（mapＫ）を生成する。具体的には、距離算出部３０３が測距センサ１２３から取得した撮影画像の画素単位で得られる２次元の被写体距離情報に基づいて距離Ｋを画素単位で算出する。そして、画素単位で１／Ｋ2を任意のビット幅で正規化した値を距離による重み付けマップ画像（mapＫ）とする。
【００５１】
ステップＳ５０４では、法線算出部３０４において距離算出部３０３から取得した距離情報に基づいて法線マップ画像（mapＮ）を生成する。具体的には、図４で説明したように被写体法線ベクトルＮを画素単位で算出し、その各座標軸方向に対する方向余弦を求める。求めた方向余弦を任意のビット幅で表現して法線による重み付けマップ（mapＮ）とする。
【００５２】
ステップＳ５０５では、仮想光源反射成分算出部３０５において、仮想光源による重み付けマップ画像（mapＬ）を生成する。具体的には、仮想光源の光源方向ベクトル−Ｌを画素単位で算出し、その各座標軸方向に対する方向余弦を求める。求めた方向余弦を任意のビット幅で表現して仮想光源による重み付けマップ（mapＬ）とする。
【００５３】
ステップＳ５０６では、距離による重み付けマップ画像（mapＫ）、被写体の法線による重み付けマップ画像（mapＮ）、仮想光源による重み付けマップ画像（mapＬ）において、任意の閾値以上の領域Ｅを検出する。具体的には、mapＫ≧TH_Ksatu、且つmapＮ≧TH_Nsatu、且つmapＬ≧TH_Lsatuの領域Ｅを検出する。仮想光源の反射成分（Ｒａ，Ｇａ，Ｂａ）は前述した（１）式の通りとなる。
【００５４】
この（１）式を各重み付けマップ画像で置き換えると、下記式のようになる。
【００５５】
Ｒａ ＝α× mapＬ・mapＮ・mapＫ ×Ｒｔ
Ｇａ ＝α× mapＬ・mapＮ・mapＫ ×Ｇｔ
Ｂａ ＝α× mapＬ・mapＮ・mapＫ ×Ｂｔ
すなわち、mapＫ≧TH_Ksatu、且つmapＮ≧TH_Nsatu、且つmapＬ≧TH_Lsatuを満たす領域Ｅとは、仮想光源の強さであるゲイン値αを大きくすると飽和しやすい領域となる。
【００５６】
ステップＳ５０７では、領域Ｅに該当する領域が小さいか否か判別する。領域Ｅに該当する領域が小さい場合はステップＳ５０９に進み、領域Ｅに該当する領域が大きい場合は、ステップＳ５０８に進む。ステップＳ５０８では、TH_Ksatu、TH_Nsatu、TH_Lsatuの値を大きくしてステップＳ５０６に進み領域Ｅを検出し直す。そして、領域Ｅがある程度小さくなるまでステップＳ５０８を繰り返す。領域Ｅが小さくなるまでステップＳ５０８を繰り返すのは最大ゲイン値αmaxを求める際の計算量を少なくするためである。領域Ｅが大きいか否かの判別は、所定の閾値TH_areaEより大きいか否かで判別する。
【００５７】
ステップＳ５０９では、領域Ｅが飽和しないリライティングの最大ゲイン値αmaxを算出する。具体的には、仮想光源付加処理部３０６において、デガンマ処理部３０２の出力（Ｒｔ，Ｇｔ，Ｂｔ）とステップＳ５０６で求めた仮想光源成分（Ｒａ，Ｇａ，Ｂａ）を加算する際に、（Ｒｏｕｔ，Ｇｏｕｔ，Ｂｏｕｔ）が飽和しないリライティングの最大ゲイン値αmaxを算出する。つまり、
（Ｒｏｕｔ，Ｇｏｕｔ，Ｂｏｕｔ）＝（Ｒｔ，Ｇｔ，Ｂｔ）＋（Ｒａ，Ｇａ，Ｂａ）
であるから、上記式を展開することにより、αrmax，αgmax，αbmaxは、下記式で算出される。Ｒｏｕｔmax，Ｇｏｕｔmax，Ｂｏｕｔmaxは、８bitであれば２8−１＝２５５であり、１０bitであれば、２10−１＝１０２３となる。αmax値は、αrmax、αgmax、αbmaxの中から一番小さい値とする。
【００５８】
αrmax＝（（Ｒｏｕｔmax／Ｒｔ）−１）・（Ｋ2／（−Ｌ・Ｎ））
αgmax＝（（Ｇｏｕｔmax／Ｇｔ）−１）・（Ｋ2／（−Ｌ・Ｎ））
αbmax＝（（Ｂｏｕｔmax／Ｂｔ）−１）・（Ｋ2／（−Ｌ・Ｎ））
以上の処理によって、リライティング処理部１１４の最大ゲイン値αmaxを決定しリライティング処理部でリライティング処理した例を図６に示す。図６（ａ）がリライティング処理前の撮影画像、図６（ｂ）がリライティング処理後の撮影画像の例である。図６（ａ）で暗かった被写体が、仮想光源をあててリライティング処理をすることで図６（ｂ）のように明るく補正されている。
【００５９】
次に、システム制御部５０が、上記のように算出したリライティング処理の最大ゲイン値αmaxを用いてオートリライティングする際の処理について、図７のフローチャートを用いて説明する。
【００６０】
ステップＳ７０１では、操作部１２０を介してユーザからの操作によりリライティング処理が選択されているか否かを判定する。即ち、リライティング処理部１１４による処理を行うか否かを判定する。リライティングを行う場合はステップ７０２に進む。
【００６１】
ステップＳ７０２では被写体を撮影する。ステップＳ７０３ではリライティング後の画像が飽和しないリライティングのゲイン値αmaxを算出する。具体的には図５を用いて前述した通りである。
【００６２】
ステップＳ７０４では、ステップＳ７０３で算出したリライティングのゲインの最大値αmaxを基に、最大値αmax以下（最大値以下）の値で、リライティング強度が大・中・小の場合のαの値を算出する。例えば、図８に示す表示部１０９の表示例のように、リライティング強度を０％〜１００％で表現し、１００％をゲイン値αmaxとして、強度が大・中・小の場合のαの値を算出する。
【００６３】
ステップＳ７０５ではユーザから操作部１２０を介して任意のリライティング強度の設定がされているかどうかを判別する。設定がされている場合はステップＳ７０６に進み、設定がされていない場合はステップＳ７０５を繰り返す。
【００６４】
ステップＳ７０６では、ユーザにより設定されたゲイン値αに基づいて、リライティングによる明るさの自動補正処理を行う。具体的には、
（Ｒａ，Ｇａ，Ｂａ）＝α×（−Ｌ・Ｎ）／Ｋ2 ×（Ｒｔ，Ｇｔ，Ｂｔ）
の式のαにユーザにより設定されたαの値を代入して算出する。以上の処理によってリライティング処理部１１４は補正不足や過補正にならない適切なオートリライティングをすることが可能となる。
【００６５】
なお、本実施形態では、ユーザが操作部１２０を介して任意のリライティング強度を設定する構成としたが、本発明はこれに限定されるものではない。例えば、リライティングの最大ゲイン値αmax以下で、陰影情報取得部２０８で取得した被写体の輝度情報によってα値を決定する構成としても良い。
【００６６】
また、本実施形態では、リライティングにより明るく補正する場合について説明したが、逆に暗くするリライティングを行ってもよい。その場合、仮想光源のゲイン値αをマイナスにする。その結果、仮想光源の明るさに基づく信号に対して減算することになる。その場合は、黒潰れしないゲイン値αminを算出することが必要となる。
【００６７】
また、仮想光源の位置と処理対象画素の距離Ｄの算出方法は、本実施形態の方法に限定されるものではなく、どのような算出方法をとってもよい。例えば、カメラの位置および被写体位置を３次元位置として取得し、３次元での距離で計算してもよい。
【００６８】
また、仮想光源を付加する場合に、距離の二乗に反比例する式で計算したが、仮想光源の付加量をこの方式で算出するものに限定されるものではない。例えば、距離Ｄに反比例するものや、ガウス分布的に照射範囲が変化する式であってもよい。
【００６９】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７０】
５０：システム制御部、１０１：光学系、１０２：シャッター、１０３：撮像部、１０４：Ａ／Ｄ変換器、１０５：画像処理部、１０６：画像メモリ、１０７：メモリ制御部、１０９：表示部、１１０：コーデック部、１１１：記録Ｉ／Ｆ、１１２：記録媒体、１１３：顔検出部、１１４：リライティング処理部、１２０：操作部、１２１：不揮発性メモリ、１２２：システムメモリ、１２３：測距センサ
【図１】
0006541416.tif 000002
【図２】
0006541416.tif 000003
【図３】
0006541416.tif 000004
【図４】
0006541416.tif 000005
【図５】
0006541416.tif 000006
【図６】
0006541416.tif 000007
【図７】
0006541416.tif 000008
【図８】
0006541416.tif 000009