以下、本発明を実施した撮像装置の一例となるデジタルカメラについて説明する。
図1に示すように、デジタルカメラ10は、撮像光学系15、絞り16、撮像素子17、A/D変換器18、レンズ駆動部19、絞り駆動部20、タイミングジェネレータ(TG)21、バッファメモリ25、画像処理回路26、接続用I/F27、表示制御回路28、表示装置29、レリーズボタン35、操作部36、CPU40及び内蔵メモリ41を備えている。なお、A/D変換器18、バッファメモリ25、画像処理回路26、接続用I/F27、表示制御回路28、CPU40及び内蔵メモリ41は、バス45を介して電気的に接続される。
撮像光学系15は、ズームレンズ、フォーカスレンズなどの複数のレンズから構成される。これらレンズのうち、ズームレンズは、撮影倍率の変更時に光軸L方向に移動する。また、フォーカスレンズは、焦点を調節するときに光軸(L)方向に微小移動する。なお、撮像光学系15を構成する各レンズにおける光軸(L)方向の移動はレンズ駆動部19によって実行される。
絞り16は、絞り径を調整することで、撮像光学系15により取り込まれる被写体光の光束を調整する。この絞り16における絞り径は、絞り駆動部20によって調整される。この絞り16の絞り径は、CPU40によって設定される絞り値に基づいている。
撮像素子17は、例えばCCDイメージセンサや、CMOSイメージセンサが用いられる。撮像素子17は、複数の画素を備えている。この撮像素子17は、撮像光学系15により取り込まれた被写体光(入射光)をそれぞれの画素にて受光し、信号電荷に変換する。この信号電荷に基づく電圧信号が、それぞれの画素の画素信号として出力される。ここで、複数の画素の画素信号を1つにまとめた信号が画像信号となる。この画像信号は、クランプ処理、相関二重サンプリング(CDS)処理などの処理が施された後、A/D変換器18に入力される。なお、この撮像素子17の駆動は、タイミングジェネレータ21によって制御される。
A/D変換器18は、撮像素子17から出力された画像信号をアナログ信号からデジタル信号に変換する。このデジタル化された画像信号はバッファメモリ25に書き込まれる。
画像処理回路26は、バッファメモリ25に書き込まれた画像信号に対して、ホワイトバランス処理、色補間処理、輪郭補償処理、ガンマ処理などの画像処理を施す。これにより、画像データが生成される。生成された画像データは、バッファメモリ25に一時記憶される。なお、この画像処理回路26におけるホワイトバランス処理は、例えば画像に含まれる白色の領域(以下、白色領域)を検出し、検出された白色領域が光源からの照明光の影響を受けた白色から、照明光の影響を受けない白色となるように、画像を調整する処理である。
接続用I/F27は、デジタルカメラ10に装着される記憶媒体46と電気的に接続される。この接続用I/F27と記憶媒体46との電気的な接続により、記憶媒体46へのデータの書き込みや、記憶媒体46に記憶されたデータの読み出しを行うことが可能となる。なお、記憶媒体46としては、例えばフラッシュメモリからなるメモリカード、光学ディスクの他、デジタルカメラ10と接続用I/F27を介して外部接続されるハードディスクドライブなどが挙げられる。
表示装置29は、例えばLCDパネルやELディスプレイパネルなどから構成される。この表示装置29は、スルー画像や、撮影により得られた画像の他に、設定を行う際の設定用の画像を表示する。なお、この表示装置29における画像表示は、表示制御回路28により制御される。
レリーズボタン35は、静止画撮影や動画撮影を行う際に操作される部材である。操作部36は、図示を省略したズームボタン、十字キー、実行ボタンなどから構成される。この操作部36は、デジタルカメラ10の初期設定や、撮影条件の設定などを行う際に操作される。また、この操作部36により、デジタルカメラ10におけるモードを設定することが可能となる。
ここで、デジタルカメラ10におけるモードとしては、撮影を行う撮影モード、デジタルカメラ10の基本設定や、撮影感度や照明条件など、撮影における基本設定を行う設定モードの他に、ユーザによってホワイトバランス処理における無彩色の設定を行うプリセットマニュアルモードが挙げられる。なお、プリセットマニュアルモードは、設定モードとは異なるモードとしてもよいし、設定モード内の一処理として設けられていてもよい。
CPU40は、内蔵メモリ41に記憶される制御プログラムを実行することにより、デジタルカメラ10の各部を制御する。このデジタルカメラ10の各部を制御する際に、レリーズボタン35や操作部36の操作に基づく信号や、デジタルカメラ10の各部からの信号を受けて、CPU40は入力される信号に基づいた処理を実行する。
CPU40は、上述したプリセットマニュアルモードに移行したときに、検出部51、情報取得部52、更新部53、設定部54の機能が有効となる。
検出部51は、プリセットマニュアルモードで撮影したときに得られる画像から、無彩色の領域を検出する。なお、本実施形態では、CPU40の機能として検出部51を設けているが、これに限定される必要はなく、例えば画像処理回路26におけるホワイトバランス処理時には、撮影により取得された画像に対して無彩色の領域を検出する処理を実行しているので、この画像処理回路26において実行される無彩色の領域を検出する処理を、プリセットマニュアルモードにおいても実行させてもよい。
情報取得部52は、検出部51により検出された無彩色の領域の色成分値、輝度値、及びプリセットマニュアルモードで撮影したときの輝度値など、ホワイトバランス処理時に使用されるパラメータに対応する情報を取得する。この情報取得部52にて取得される無彩色の領域の色成分値や輝度値は、該無彩色の領域に含まれる画素値(R,G,B値、Y、Cr、Cb値など)から求められる。また、プリセットマニュアルモードで撮影したときの輝度値は、プリセットマニュアルモードにて設定された撮影条件(撮影感度、シャッタ度、絞り値)から求められる。
更新部53は、情報取得部52により取得された情報に基づいて、ホワイトバランス処理用のパラメータを更新する。このホワイトバランス処理用のパラメータとしては、照明光、照明光の色温度、照明光が照射されたときの無彩色の色成分値の範囲などが、光源の種類毎に対応付けられたパラメータである。図2は、光源からの照明光が照射されたときの無彩色のCb、Cr値が取り得る範囲をまとめたグラフを示す。ここで、光源の種類としては、例えば「電球」、「低色温度蛍光灯」、「高色温度蛍光灯」、「水銀灯」の他、「夕焼け」、「晴天」、「曇天」、「日陰」などが挙げられる。各光源における無彩色のCb、Crが取り得る範囲は、予め実験、統計などにより求められ、ホワイトバランス処理に用いるパラメータとして予めデジタルカメラ10の内蔵メモリ41に記憶される。
以下、予め内蔵メモリ41に記憶されるホワイトバランス処理用のパラメータを初期パラメータ55とし、更新部53により更新されるホワイトバランス処理用のパラメータを更新済みパラメータ56と称する。なお、更新済みパラメータ56は、初期パラメータ55に対して、更新部53により新たにパラメータを追加したものであってもよいし、更新部53によって新たに追加されるパラメータのみで構成されるものであってもよい。
設定部54は、ユーザによる操作部36の操作を受けて、プリセットマニュアルモードにおける設定を行う。この設定としては、例えば光源の種類、光源の色温度、及び光源からの照明光が照射されたときの無彩色の色成分値などが挙げられる。なお、照明光が照射される無彩色の色成分値は、無彩色の色成分値であってもよいし、予め撮影した無彩色の色成分値であってもよい。
次に、ホワイトバランス処理に用いるパラメータのうち、白色の色成分値が取り得る範囲を更新する処理の流れについて、図3のフローチャートに基づいて説明する。以下、ホワイトバランス処理に用いるパラメータのうち、色成分値のパラメータを更新する場合について説明する。この図3のフローチャートは、プリセットマニュアルモードにおける設定が終了されたことを契機に実行される。ここで、プリセットマニュアルモードにおける設定内容としては、例えば光源の種類、光源の色温度、及び照明光が照射される無彩色の色成分値等の他、絞り値、シャッタ速度、ISO感度などの撮影条件の設定が挙げられる。以下のフローチャートの説明においては、無彩色として白色を用いる場合について説明する。
ステップS101は、プリセットマニュアルモードであるか否かを判定する処理である。ユーザによる操作部36の操作により、デジタルカメラ10のモードが上述したモードのいずれかに設定される。デジタルカメラ10のモードがプリセットマニュアルモードに設定されている場合、CPU40は、ステップS101の判定処理をYesとする。この場合、ステップS102に進む。一方、デジタルカメラ10のモードがプリセットマニュアルモードに設定されていない、言い換えれば、デジタルカメラ10のモードが設定モードや撮影モードとなる場合、CPU40は、ステップS101の判定処理をNoとする。この場合、図3におけるフローチャートの処理が終了する。
ステップS102は、レリーズボタン35の操作があるか否かを判定する処理である。上述したように、CPU40には、レリーズボタン35や操作部36からの操作信号が入力される。CPU40に入力される操作信号がレリーズボタン35からの操作信号であれば、CPU40は、ステップS102の判定処理をYesとする。この場合、ステップS103に進む。一方、CPU40に入力される操作信号がレリーズボタン35以外からの操作信号(操作部36からの操作信号)であれば、CPU40は、ステップS102の判定処理をNoとする。この場合、ステップS108の処理に進む。
ステップS103は、画像を取得する処理である。CPU40は、予め設定されたプリセットマニュアルモードにおける撮影条件(絞り値、シャッタ速度及びISO感度)に基づいた撮影処理を実行する。これにより、撮像素子17から画像信号が出力され、該画像信号がバッファメモリ25に記憶される。このバッファメモリ25に記憶された画像信号に対して、画像処理回路26は画像処理を実行する。これにより、画像データが生成され、バッファメモリ25に記憶される。
ステップS104は、画像に含まれる白色の色成分値を取得する処理である。CPU40は、ステップS103にて画像処理が施された画像データをバッファメモリ25から読み出す。また、CPU40は、プリセットマニュアルモードの設定における白色の色成分値を読み出す。CPU40は、読み出した白色の色成分値を用いて、ステップS103にて取得された画像から、白色領域の色成分値を取得する。この際、複数の画像のそれぞれにおける白色のばらつき、デジタルカメラ10に装着されている撮像光学系15の各レンズによって生じる白色のばらつき、デジタルカメラ10に内蔵されるローパスフィルタ(図示省略)の色特性や撮像素子15の色特性に基づく白色のばらつきを考慮して、白色領域に含まれる画素の色成分値が取得される。
ステップS105は、パラメータを更新する処理である。CPU40は、内蔵メモリ41から初期パラメータ55を読み出す。上述したステップS104の処理が実行されることで、白色となる色成分値が取得されている。CPU40は、取得された白色となる色成分値と、初期パラメータ55とから、更新済みパラメータ56を生成する。ここで、プリセットマニュアルモードの設定において、白色の色成分値を求める際に、使用される照明光の種類が設定されている。CPU40は、初期パラメータ55のうち、該当する照明光に対応する白色の色成分値の範囲に、取得された白色の色成分値を追加する。これにより、照明光に対応する白色の色成分値の範囲が更新される。
ステップS106は、更新されたパラメータを保存するか否かを判定する処理である。ステップS106の処理が実行されると、CPU40は、表示制御回路28に表示開始信号を送信する。なお、この表示開始信号とは、パラメータの更新の有無を表示装置29に表示させる旨の信号である。この表示開始信号を受けて、表示制御回路28は、表示装置29に例えば「更新されたパラメータを保存しますか?」など、ユーザの操作を促す画面を表示させる。表示装置29に表示された表示に基づいてユーザが操作部36を操作すると、その操作に基づく操作信号がCPU40に入力される。この操作部36からの操作信号が、更新されたパラメータを更新する旨の操作信号であれば、CPU40は、ステップS106の判定処理をYesとする。この場合、ステップS107に進む。一方、操作部36からの操作信号が、更新されたパラメータを更新しない旨の操作信号であれば、CPU40は、ステップS106の判定処理をNoとする。この場合、ステップS108に進む。
ステップS107は、更新されたパラメータを保存する処理である。CPU40は、ステップS105にて生成された更新済みパラメータ56を初期パラメータ55とは別に内蔵メモリ41に記憶する。
ステップS108は、プリセットマニュアルモードを終了させるか否かを判定する処理である。操作部36からCPU40に入力される操作信号が、プリセットマニュアルモードを終了させる旨の信号であれば、CPU40は、ステップS108の判定処理をYesとする。この場合、図3に示すフローチャートの処理が終了する。一方、操作部36からCPU40に入力される操作信号が、プリセットマニュアルモードを終了させる旨の信号であれば、CPU40は、ステップS108の判定処理をNoとする。この場合、ステップS102に戻る。ステップS108の判定処理でNoと判定された場合には、再度ステップ102からステップ107の処理が実行される。つまり、これらステップS102からステップS107の処理を繰り返し実行することで、複数の画像を取得し、且つ、取得された画像の白色領域に含まれる画素の色成分値が数多く取得することができる。
このように、従来では、プリセットマニュアルモードにおいて取得されるホワイトバランス処理用のパラメータは更新されないため、撮影モードにおいて撮影された画像に対して、更新されないパラメータを用いて白色領域を検出している。このため、撮影モードにおいて撮影された画像に対して適切なホワイトバランス処理を施すことができない。しかしながら、本実施形態においては、白色領域を検出する際に用いるパラメータを、プリセットマニュアルモードにて得られた情報を用いて更新するので、撮影モードにおいて撮影された画像に対して、更新されたパラメータを用いて白色領域を検出している。このため、撮影時の環境条件に即したホワイトバランス処理を適切に施すことが可能となる。
なお、白色が取り得る色成分値の範囲は、例えば取得された画像に対して施されるホワイトバランス処理において、特定の照明光の元での画像に含まれる白色領域を求める際に用いるパラメータとなる。このため、プレセットマニュアルモードにおいて、複数の画像を取得すればするほど、画像に含まれる白色領域を求める際に用いるパラメータに対する信頼度が高くなる。つまり、プリセットマニュアルモードにおいて数多くの画像を取得することで、ホワイトバランス処理において使用されるパラメータを適切に更新することになり、結果、撮影モードにおいて撮影された画像に対する白色領域を適切に検出でき、且つホワイトバランス処理を適切に行うことが可能となる。
また、野球、サッカーなど、特定の撮影環境下での撮影を行う場合には、予めプリセットマニュアルモードにて数多くの撮影を行ってホワイトバランス処理に用いるパラメータを更新しておけば、撮影を行う度にプリセットマニュアルモードに移行させてホワイトバランス処理に用いるパラメータを設定し直す手間が省けるので、シャッタチャンスを逃すということが防止され、また、ユーザの意図する環境条件下での撮影によって得られた画像に対して適切なホワイトバランス処理を施すことができる。
上述した図3のフローチャートにおいては、ステップS102においてレリーズボタン35の操作があるか否かの判定処理を含めているが、例えば、レリーズボタン35の操作があるか否かの判定処理は必ずしも必要ではない。つまり、プリセットマニュアルモードにおいて、撮像素子17から所定時間間隔で画像信号を出力できるようにし、所定時間間隔で出力される画像信号に基づく画像から、白色の色成分値を画像毎に取得することも可能である。
上述した図3のフローチャートにおいては、画像に含まれる白色の色成分値を取得し、ホワイトバランス処理に使用するパラメータのうち、白色の色成分値を更新する場合について説明しているが、これに限定される必要はなく、例えば、光源色に近似する白色の輝度値の範囲、撮影時の輝度値に対する光源色の取り得る色温度の範囲を更新することも可能である。以下、光源色に近似する白色の輝度値の範囲、及び撮影時の輝度値に対する光源色の取り得る色温度の範囲の双方を更新する場合について図4のフローチャートを用いて説明する。
以下、ホワイトバランス処理に用いるパラメータのうち、白色の輝度値が取り得る範囲、及び撮影時の輝度値に対する光源色の色温度が取り得る範囲を更新する場合の処理の流れについて説明する。この場合も、無彩色として白色を用いる場合について説明する。図4のフローチャートは、図3のフローチャートと同様に、プリセットマニュアルモードにおける設定が終了されたことを契機に実行される。
ステップS201は、プリセットマニュアルモードであるか否かを判定する処理である。なお、このステップS201の判定処理は、ステップS101と同一の処理である。デジタルカメラ10がプリセットマニュアルモードであれば、CPU40は、ステップS201の判定処理をYesとし、ステップS202に進む。一方、デジタルカメラ10がプリセットマニュアルモード以外のモードであれば、CPU40は、ステップS201の判定処理をNoとし、ホワイトバランス処理に用いるパラメータを更新する処理が終了する。
ステップS202は、レリーズボタンの操作があるか否かを判定する処理である。このステップS202の処理は、ステップS102と同一の処理である。CPU40に入力される操作信号がレリーズボタン35からの操作信号であれば、CPU40は、ステップS102の判定処理をYesとする。この場合、ステップS103に進む。一方、CPU40に入力される操作信号がレリーズボタン35以外からの操作信号(操作部36からの操作信号)であれば、CPU40は、ステップS102の判定処理をNoとする。この場合、ステップS212に進む。
ステップS203は、画像を取得する処理である。このステップS203の処理は、ステップS103と同一の処理である。
ステップS204は、ホワイトバランス演算(白色検出)を行う処理である。CPU40は、ステップS203により取得された画像を用いたホワイトバランス演算を行い、画像に含まれる白色領域を検出する。この際、CPU40は、プリセットマニュアルモードの設定における白色の輝度値を読み出す。そして、CPU40は、読み出した白色の色成分値を用いて、画像データに基づく画像から、白色領域を検出する。この際、例えば複数の画像のそれぞれにおける白色の輝度のばらつき、デジタルカメラ10に装着されている撮像光学系15の各レンズの色情報に基づいた、取り込まれる画像における白色の輝度のばらつき、デジタルカメラ10に内蔵されるローパスフィルタ(図示省略)の色特性や撮像素子15の色特性に基づく白色の輝度のばらつきのいずれかを考慮して、白色領域を検出する。なお、このステップS204においては、設定された白色の輝度値を用いているが、これに限定される必要はなく、例えば白色の色成分値を用いて、画像に含まれる白色領域を求めることも可能である。
ステップS205は、光源色に近似する白色の輝度値の範囲を算出する処理である。まず、CPU40は、ステップS204にて検出した白色領域の輝度値を算出する。次に、CPU40は、プリセットマニュアルモードにて設定される光源の色温度から、光源色の輝度値を算出する。最後に、CPU40は、算出した白色領域の輝度値のうち、算出した光源色の輝度値に近似する白色の輝度値の範囲を求める。
ステップS206は、シャッタ速度、ISO感度、絞り値を用いて、撮影時の輝度値を算出する処理である。上述したように、プリセットマニュアルモードにおける設定においては、画像取得時におけるシャッタ速度、ISO感度、絞り値が設定される。CPU40は、これら値に基づいて、撮影時の輝度値を算出する。算出された撮影時の輝度値は、内蔵メモリに記憶される。
ステップS207は、白色の取り得る輝度値の範囲を算出する処理である。CPU40は、ホワイトバランス演算により算出された白色領域の輝度値から、白色の取り得る輝度値の範囲を算出する。
ステップS208は、撮影時の輝度値と光源色の色温度とを対応付けする処理である。CPU40は、算出した光源色の輝度値に近似する白色の輝度値の範囲から、光源色の色温度の範囲を求める。そして、求めた光源色の色温度と、撮影時の輝度値とを対応付けて内蔵メモリに記憶する。
ステップS209は、パラメータを更新する処理である。CPU40は、内蔵メモリ41から、撮影時の輝度値に対応付けられた光源色の色温度及び白色の取り得る輝度値の範囲を読み出し、これら情報に基づいて、初期パラメータ55を更新する。詳細には、初期パラメータ55のうち、撮影時の輝度値に対する光源色(照明光)の色温度が取り得る範囲を示すパラメータと、照明光に対する白色の取り得る輝度値の範囲を示すパラメータが更新される。これにより、更新済みパラメータ56が生成される。
ステップS210は、更新されたパラメータを保存するか否かを判定する処理である。このステップS210の判定処理は、ステップS106の判定処理と同一の処理である。ステップS210が実行されると、CPU40は、表示制御回路28に表示開始信号を送信する。この表示開始信号を受けて、表示制御回路28は、表示装置29に例えば「更新されたパラメータを保存しますか?」など、ユーザの操作を促す画面を表示させる。表示装置29に表示された表示に基づいてユーザが操作部36を操作すると、その操作に基づく操作信号がCPU40に入力される。この操作部36からの操作信号が、更新されたパラメータを更新する旨の操作信号であれば、CPU40は、ステップS210の判定処理をYesとする。この場合、ステップS211に進む。一方、操作部36からの操作信号が、更新されたパラメータを更新しない旨の操作信号であれば、CPU40は、ステップS210の判定処理をNoとする。この場合、ステップS212に進む。
ステップS211は、更新されたパラメータを保存する処理である。CPU40は、ステップS105にて生成された更新済みパラメータ56を初期パラメータ55とは別に内蔵メモリ41に記憶する。
ステップS212は、プリセットマニュアルモードを終了させるか否かを判定する処理である。操作部36からCPU40に入力される操作信号が、プリセットマニュアルモードを終了させる旨の信号であれば、CPU40は、ステップS212の判定処理をYesとする。この場合、図4に示すフローチャートの処理が終了する。一方、操作部36からCPU40に入力される操作信号が、プリセットマニュアルモードを終了させる旨の信号であれば、CPU40は、ステップS212の判定処理をNoとする。ステップS212の判定処理でNoと判定された場合には、再度ステップ202からステップ211の処理が実行される。つまり、これらステップS202からステップS211の処理を繰り返し実行することで、複数の画像を取得し、且つ、同一条件下での白色が取り得る輝度値の範囲や、撮影時の輝度値に対する光源色の取り得る範囲が更新される。
この場合も、白色領域を検出する際に用いるパラメータをプリセットマニュアルモードにて得られた情報を用いて更新している。これにより、撮影モードにおいて撮影された画像に対して更新されたパラメータを用いて白色領域を検出している。このため、撮影時の環境条件に即したホワイトバランス処理を適切に施すことが可能となる。
また、光源色に近似する白色の輝度値の範囲は、画像に含まれる色が白色であるか否かを制限するためのパラメータであり、また、撮影時の輝度値に対する光源色の取り得る範囲は、ホワイトバランス処理の追従を制限するパラメータとなることから、数多くの画像を取得することで、これらパラメータの信頼度が高くなる。これにより、画像に含まれる白色領域を適切に検出でき、且つホワイトバランス処理を適切に行うことが可能となる。
この実施形態では、光源色に近似する白色の輝度値の範囲、及び撮影時の輝度値に対する光源色の取り得る色温度の範囲の双方を更新しているが、これに限定されるものではなく、これら範囲のいずれか一方を更新する場合であってもよい。また、これら範囲の更新は、無彩色の色成分値の範囲を更新する処理と併せて実行してもよいし、別個に実行してもよい。
本実施形態では、ホワイトバランス処理のパラメータを更新する際に用いる無彩色として白色を取り上げているが、これに限定される必要はなく、例えば無彩色であるグレー(灰色)であってもよい。この場合、初期パラメータ55を求める際に用いる無彩色をグレーとするなど、ホワイトバランス処理に用いる無彩色を同一の無彩色にすればよい。
上述した実施形態においては、ユーザによる操作部の操作により、更新済みパラメータを保存するか否かを決定するようにしているが、これに限定されるものではなく、自動的に更新済みのパラメータを保存することも可能である。
上述した実施形態では、プリセットマニュアルモードによって取得される情報に基づいて、ホワイトバランス処理時に用いるパラメータを更新しているが、撮影時の輝度(シーン輝度)、輝度レベル(露出レベル)によって設定される重みを予め設定しておき、ホワイトバランス処理時に用いるパラメータの更新に併せて、前記重みを更新することも可能である。なお、この重みは、ホワイトバランス処理時に用いる補正値に乗算される係数となる。
図5は、電球を用いた場合の撮影時の輝度値(以下、シーン輝度BV)と露出レベル(Y)とに対応する重みを示す。例えば電球を用いる場合、明るいシーンで電球を付けるシーンがないことから、輝度レベルが300〜900の範囲、及びシーン輝度が−2〜5の範囲で重みを付加し、他の範囲においては重みを付加しないように設定される。例えば、上述したホワイトバランス処理時に用いるパラメータを更新した場合には、パラメータの更新に併せた、シーン輝度と露出レベルの範囲(図中○で囲んだ領域)に対する重みが更新される。
図6は、晴天の場合のシーン輝度と露出レベルとに対応する重みを示す。晴天の場合、露出レベルが300〜800の範囲で、且つシーン輝度が−2〜8の範囲に対して重みが付加される。この場合、シーン輝度は−2〜8の全ての値で存在することから、ホワイトバランス処理時に用いるパラメータを更新した場合であっても、重みの更新を行わない。
このように、光源に応じて重みを更新することで、ホワイトバランス処理をより適切に施すことができる。
本実施形態では、ホワイトバランス処理については、詳細は記載していないが、撮影シーンに合わせたホワイトバランス処理、シーンなどを自動的に判別した結果に基づいて実行されるオートホワイトバランス処理など、適宜のホワイトバランス処理に本発明を用いることができる。
なお、本実施形態では、白色検出を行って、ホワイトバランス処理時を行うようにしているが、ホワイトバランス処理時に白色領域が検出されない場合もある。このような場合には、更新頻度の高い光源色の色温度を用いたホワイトバランス処理を実行することも可能である。
本発明は、撮像装置の一例として、デジタルカメラを用いて説明しているが、これにっ限定される必要はなく、カメラ機能を備えた携帯電話機などの携帯型端末機などであってもよい。
本実施形態では、プリセットマニュアルモードで得られた画像データを用いて、ホワイトバランス処理時に使用されるパラメータを更新するデジタルカメラについて説明しているが、これに限定される必要はない。例えばデジタルカメラにて得られた画像データをPCなどの画像処理装置に取り込み、取り込んだ画像データ及び該画像データに付帯される無彩色に関する情報に基づいて、ホワイトバランス処理時に用いるパラメータに対応する情報を取得し、デジタルカメラに記憶されるホワイトバランス処理時に用いるパラメータを更新することも可能である。
以下、図7を用いて、デジタルカメラ10と画像処理装置70とからなる撮像システム65について説明する。なお、この撮像システム65におけるデジタルカメラ10の構成は、本実施形態と同一の機能を有するデジタルカメラが用いられる。つまり、この撮像システム65においては、本実施形態と同様に、デジタルカメラ10においてホワイトバランス処理用のパラメータを更新することができる。また、この他に、デジタルカメラ10において取得される画像データを画像処理装置70に取り込み、画像処理装置70においてホワイトバランス処理用のパラメータに対応する情報を取得した上で、デジタルカメラ10に記憶されるホワイトバランス処理用のパラメータを更新することも可能である。以下、本実施形態と同一の機能となる箇所に対しては、本実施形態と同一の符号を付して説明する。
図7に示すように、デジタルカメラ10は、撮像光学系15、絞り16、撮像素子17、A/D変換器18、レンズ駆動部19、絞り駆動部20、タイミングジェネレータ(TG)21、バッファメモリ25、画像処理回路26、接続用I/F27、表示制御回路28、表示装置29、レリーズボタン35、操作部36、CPU40及び内蔵メモリ41の他に、通信用I/F61を備えている。なお、通信用I/F61は、例えば画像処理装置70との間でデータの送受信を行うための、例えばUSBケーブルなどの接続ケーブルの端子が差し込まれるプラグなどを備えている。以下、デジタルカメラ10と画像処理装置70とを接続ケーブルを用いて接続する場合について説明するが、これに限定される必要はなく、無線LAN機能や、WiFi機能を用いても実行することが可能である。
このデジタルカメラ10は、A/D変換器18から出力される画像信号に対して、画像処理を行った画像データを記憶する他に、A/D変換器18から出力された画像信号(以下、RAWデータ)を記憶することが可能である。なお、RAWデータを記憶する際には、CPU40は、予め設定された無彩色に関わる情報を付帯情報として記憶する。なお、付帯情報としては、無彩色に関わる情報の他に、例えばデジタルカメラ10に装着されている撮像光学系15の各レンズによって生じる白色のばらつき、デジタルカメラ10に内蔵されるローパスフィルタ(図示省略)の色特性や撮像素子15の色特性に基づく白色のばらつきの情報や、撮影条件などのデジタルカメラ10の情報などが挙げられる。
このデジタルカメラ10は、上述した接続ケーブルを介して、画像処理装置70と接続される。画像処理装置70は、通信用I/F71、バッファメモリ72、画像処理回路73、表示制御回路74、表示装置75、CPU76、内蔵メモリ77及び操作部78を備えている。なお、通信用I/F71、バッファメモリ72、画像処理回路73、表示制御回路74、CPU76、内蔵メモリ77は、バス79などにより電気的に接続される。
通信用I/F71は、例えばデジタルカメラ10との間でデータの送受信を行うための、例えばUSBケーブルなどの接続ケーブルの端子が差し込まれるプラグなどを備えている。
バッファメモリ72は、デジタルカメラ10から送信された画像データ(RAWデータを含む)を記憶する。また、バッファメモリ72は、画像処理回路73における画像処理が行われた画像データを記憶する。
画像処理回路73は、バッファメモリ72に書き込まれた画像データに対する画像処理や、RAWデータに対する画像処理などを実行する。なお、画像処理としては、ホワイトバランス処理、色補間処理、輪郭補償処理、ガンマ処理などの画像処理が挙げられる。
表示制御回路74は、表示装置75に対する表示制御を実行する。表示装置75は、バッファメモリ72に書き込まれた画像データに基づいた画像を表示する他に、画像処理装置における設定画面や、画像処理を実行する処理、又はホワイトバランス処理に用いるパラメータを更新する処理など、画像処理装置70にて実行される処理を選択する選択画面などを表示する。ここで、表示装置75は、例えばLCDや、有機ELパネルなどが挙げられる。
CPU76は、内蔵メモリ77に書き込まれた制御プログラムに基づいて、画像処理装置70の各部を統括的に制御する。このCPU76は、ホワイトバランス処理時に用いるパラメータを更新する処理を実行する際に、検出部81及び情報取得部82の機能を実行する。
検出部81は、バッファメモリ72に書き込まれたRAWデータを用いて、RAWデータに基づく画像(RAW画像)に含まれる無彩色の領域を検出する。詳細には、このRAWデータには、無彩色に関する情報が付帯されているので、検出部81は、RAWデータに付帯された無彩色に関する情報に基づいて、RAWデータに含まれる無彩色の領域を検出する。
情報取得部82は、検出部81により検出された無彩色の領域の色成分値、輝度値、及びRAWデータを取得したときの輝度値など、ホワイトバランス処理時に使用されるパラメータに対応する情報を取得する。この情報取得部82にて取得される無彩色の領域の色成分値や輝度値は、無彩色の領域に含まれる画素値(R,G,B値、Y、Cr、Cb値など)から求められる。また、RAWデータを取得したときの輝度値は、RAWデータを取得したときの撮影条件(撮影感度、シャッタ度、絞り値)から求められる。
以下、ホワイトバランス処理時に用いるパラメータを更新する処理の流れについて、図8のフローチャートを用いて説明する。なお、この図8のフローチャートは、デジタルカメラ10においてプリセットマニュアルモードにおける設定が行われたことを契機に実行される。
ステップS301は、プリセットマニュアルモードであるか否かを判定する処理である。このステップS301の処理は、ステップS101と同一の処理である。デジタルカメラ10がプリセットマニュアルモードであれば、CPU40は、ステップS301の判定処理をYesとする。この場合、ステップS302に進む。一方、デジタルカメラ10がプリセットマニュアルモードでない場合には、CPU40は、ステップS301の判定処理をNoとする。この場合、ステップS305に進む。
ステップS302は、レリーズボタンの操作があるか否かを判定する処理である。このステップS302の処理もステップS102と同一の処理である。レリーズボタン35の操作があれば、CPU40は、ステップS302の判定処理をYesとする。この場合、ステップS303に進む。一方、レリーズボタン35の操作がない場合には、CPU40は、ステップS302の判定処理をNoとする。この場合、ステップS304に進む。
ステップS303は、RAWデータを取得する処理である。CPU40は、予め設定された撮影条件に基づいて、撮像処理を実行する。この撮像処理により、デジタル化された画像信号がバッファメモリ25に書き込まれる。これにより、RAWデータが取得される。
ステップS304は、RAWデータを保存する処理である。CPU40は、バッファメモリ25に記憶されるRAWデータを記憶媒体46に書き込む。この際、CPU40は、無彩色に関わる情報や、例えばデジタルカメラ10に装着されている撮像光学系15の各レンズによって生じる白色のばらつき、デジタルカメラ10に内蔵されるローパスフィルタ(図示省略)の色特性や撮像素子15の色特性に基づく白色のばらつきの情報や、撮影条件などのデジタルカメラ10の情報などを付帯情報として、RAWデータに付帯する。
ステップS305は、画像処理装置と接続されているか否かを判定する処理である。デジタルカメラ10と画像処理装置70とが接続されていれば、デジタルカメラ10と画像処理装置70との間で接続時の通信処理が実行されている。この通信処理が実行されている場合には、CPU40は、ステップS305の判定処理をYesとし、ステップS306に進む。一方、通信処理が実行されていない場合には、CPU40は、ステップS305の判定処理をNoとし、この処理が終了する。
ステップS306は、画像データを送信する処理である。CPU40は、記憶媒体46に記憶される画像データを読み出す。そして、CPU40は、読み出した画像データを画像処理装置70に向けて出力する。なお、ステップS305の判定処理でYesとなる場合に、CPU40は記憶媒体46に記憶された画像データを読み出し、画像処理装置70に画像データを送信する流れとしているが、これに限定される必要はなく、画像処理装置70からの画像の要求信号を受けた場合に、CPU40は、読み出した画像データを画像処理装置70に送信することも可能である。
ステップS307は、更新済みパラメータを受信する処理である。画像処理装置70において、更新済みパラメータ56が生成されると、この更新済みパラメータ56がデジタルカメラ10に送信される。CPU40は、画像処理装置70からの更新済みパラメータ56を受信し、バッファメモリ25に一時記憶する。
ステップS308は、更新済みパラメータを記憶する処理である。CPU40は、バッファメモリ25に記憶された更新済みパラメータを読み出す。CPU40は、バッファメモリ25から読み出した更新済みパラメータを用いて、内蔵メモリ25に記憶されるホワイトバランス処理用のパラメータを更新する。詳細には、内蔵メモリ25に記憶されたホワイトバランス処理用のパラメータが初期パラメータ55のみであれば、CPU40は、更新済みパラメータ56を内蔵メモリ41に書き込む。一方、内蔵メモリ41に記憶されたホワイトバランス処理用のパラメータが初期パラメータ55と更新済みパラメータ56であれば、内蔵メモリ41に記憶される更新済みパラメータ56をバッファメモリ25から読み出した新たな更新済みパラメータ56に書き換える。これにより、更新済みパラメータ56が更新される。
一方、画像処理装置70においては、ホワイトバランス処理用のパラメータを更新する際に、以下の処理が実行される。
ステップS401は、画像データを受信する処理である。上述したように、デジタルカメラ10と画像処理装置70が接続されたときには、デジタルカメラ10から画像データが送信される。CPUは、デジタルカメラ10から画像データを受信すると、該画像データをバッファメモリ72に一時記憶する。
ステップS402は、RAWデータがあるか否かを判定する処理である。CPU76は、バッファメモリ72に書き込まれた画像データを参照し、該画像データにRAWデータがあるか否かを判定する。バッファメモリ72に記憶される画像データにRAWデータが含まれている場合には、CPU76は、ステップS402の判定処理をYesとする。この場合、ステップS403に進む。一方、バッファメモリ72に記憶される画像データにRAWデータが含まれていない場合には、画像処理装置70における処理が終了する。
ステップS403は、RAWデータを読み出す処理である。CPU76は、バッファメモリ72に記憶された画像データから、RAWデータを読み出す。
ステップS404は、白色領域の色成分値を取得する処理である。CPU76は、RAWデータの付帯情報から、白色の色成分値を読み出す。CPU76は、読み出した白色の色成分値を用いて、RAWデータにおける白色領域の色成分値を取得する。この際、複数の画像のそれぞれにおける白色のばらつき、デジタルカメラ10に装着されている撮像光学系15の各レンズによって生じる白色のばらつき、デジタルカメラ10に内蔵されるローパスフィルタ(図示省略)の色特性や撮像素子15の色特性に基づく白色のばらつきを考慮して、白色領域に含まれる画素の色成分値が取得される。
ステップS405は、パラメータを更新する処理である。画像処理装置70は、デジタルカメラ10で使用されるホワイトバランス処理用の初期パラメータ55を読み出す。そして、ステップS404にて取得された白色となる色成分値と、初期パラメータ55とから、更新済みパラメータ56を生成する。ここで、RAWデータを取得する際には、予め使用される照明光の種類が設定されている。CPU76は、初期パラメータ55のうち、該当する照明光に対応する白色の色成分値の範囲に、取得された白色の色成分値を追加する。これにより、照明光に対応する白色の色成分値の範囲が更新された更新済みパラメータ56が生成される。
ステップS406は、更新済みパラメータを送信する処理である。CPU76は、ステップS405にて生成した更新済みパラメータ56をデジタルカメラ10に送信する。
このようにして、画像処理装置70において生成された更新済みパラメータ56がデジタルカメラ10に送信される。また、デジタルカメラ10においては、画像処理装置70から送信された更新済みパラメータ56を新たなWB処理用のパラメータとして保有することになる。この場合、図3のフローチャートで示す処理の流れと同様に、ホワイトバランス処理用のパラメータを更新することで、ユーザの意図する撮影にて得られる画像データに対して、適切なホワイトバランス処理を施すことができる。
また、この場合、デジタルカメラは、撮影を取得し、記録する処理と、ホワイトバランス処理時に用いるパラメータを書き換える処理のみで対応することができるので、デジタルカメラに対して、撮影に関与しない処理を実行させずに済む。
また、上記に説明した撮像システムにおいては、ホワイトバランス処理に用いるパラメータのうち、白色の色成分値が取り得る範囲を更新する場合について説明しているが、これに限定される必要はなく、ホワイトバランス処理に用いるパラメータのうち、白色の輝度値が取り得る範囲、及び撮影時の輝度値に対する光源色の色温度が取り得る範囲を更新することも可能である。この場合、図7に示すステップS404の処理の代わりに、図4のフローチャートに示すステップS204からステップS208の処理を実行することで、可能となる。
また、この他に、図1のCPU40の機能や、図3又は図4のフローチャートに示す処理の流れをコンピュータに実行させることが可能な、コンピュータ読み取り可能なプログラムであってもよい。この場合、該プログラムは、メモリカード、光学ディスク、磁気ディスクなど、コンピュータが読み取り可能な記憶媒体に記憶されていることが好ましい。