[第1実施形態]
以下、本発明の第1実施形態を説明する。
図1は、本実施形態の画像処理装置の構成例を示すブロック図である。本実施形態の画像処理装置は、画像処理プログラムがインストールされたコンピュータ11で構成される。
図1に示すコンピュータ11は、データ読込部12、記憶装置13、CPU14、メモリ15および入出力I/F16、バス17を有している。データ読込部12、記憶装置13、CPU14、メモリ15および入出力I/F16は、バス17を介して相互に接続されている。さらに、コンピュータ11には、入出力I/F16を介して、入力デバイス18(キーボード、ポインティングデバイスなど)とモニタ19とがそれぞれ接続されている。なお、入出力I/F16は、入力デバイス18からの各種入力を受け付けるとともに、モニタ19に対して表示用のデータを出力する。
データ読込部12は、画像処理対象となる画像データを外部から読み込むときに用いられる。例えば、データ読込部12は、データ読込部12に挿入された記憶媒体から画像データを取得する読込デバイス(光ディスクドライブ、磁気ディスクドライブ、光磁気ディスクドライブなど)や、公知の通信規格に準拠して外部の装置と通信を行う通信デバイス(USBインターフェース、LANモジュール、無線LANモジュールなど)で構成される。
記憶装置13は、例えば、ハードディスクや、不揮発性の半導体メモリなどの記憶媒体で構成される。この記憶装置13には、画像処理プログラムが記録されている。なお、記憶装置13には、データ読込部12から読み込まれた画像データを記憶しておくこともできる。
CPU14は、記憶装置13に記憶された画像処理プログラムを実行し、コンピュータ11の各部を統括的に制御するプロセッサである。ここで、本実施形態の画像処理プログラムには、カメラで撮影されたRAW画像に対する現像処理の機能が搭載されており、この現像処理を実行する際、CPU14は、各部を制御する制御部として機能する他に、フレア補正処理部21、画像強調処理部22としても機能する(フレア補正処理部21、画像強調処理部22の動作は後述する)。
また、本実施形態の現時処理には、特殊フレア対応処理(後述)のモードとして、「領域別強調モード」と、「強度低減モード」と、「RAW記録モード」と、「通常処理モード」とが用意されており、これらのモードの中の何れか1つをユーザが予め選択することができる。
「領域別強調モード」は、画像強調処理を画像上の領域毎に行うモードであり、「強度低減モード」は、画像強調処理を低強度で行うモードであり、「RAW記録モード」は、現像処理を断念するモードであり、「通常モード」は、特殊フレア(後述)を無視して画像強調処理を通常強度で行うモードである。
メモリ15は、画像処理プログラムでの各種演算結果を一時的に記憶する。このメモリ15は、例えば揮発性のSDRAMなどで構成される。
図2は、現像処理の動作フローチャートである。以下、図2の各ステップを順に説明する。
ステップS10:CPU14は、ユーザが現像処理の対象として指定したカラー画像(RAW画像)の画像データを、メモリ15上に読み込む(以下、これを「入力画像」と称す。)。この入力画像は、例えば、データ読込部12の記憶媒体に書き込まれていた画像である。
ここで、入力画像には、色フレアの発生している可能性がある。色フレアの発生した画像は、DOEを含む撮影光学系で撮影された画像であって、例えば図7に示すとおりである(但し、図7はモノクロ画像なので、色フレアの色付きは現れていない。)。色フレアは通常、輪帯状又はそれに近いパターンをしているが、そのパターンは完全な輪帯状になるとは限らず、撮影条件(画像の撮影に使用された撮影光学系の結像特性、撮影時に画角内に存在していた光源の波長スペクトルなど)に依存する。また、色フレアの色づき分布(フレア色成分)も、撮影条件に依存する。
但し、本実施形態のフレア補正処理は、色フレアのパターン及び色付き分布が未知であっても実行可能であるので、入力画像には詳細な撮影条件データが付随していなくても構わない。よって、ここでは、撮影に使用された撮影光学系の種類情報のみが入力画像に付随しているものと仮定する。
ステップS11:CPU14は、メモリ15上へ読み込んだ入力画像に付随する、撮影光学系の種類情報に基づき、その撮影光学系にDOEが含まれていたか否かを判別し、含まれていなかった場合には、入力画像に色フレアの発生している可能性は無いとみなしてステップS19へ移行し、撮影光学系にDOEが含まれていた場合には、入力画像に色フレアの発生している可能性があるとみなしてステップS12へ移行する。
ステップS12:CPU14は、メモリ15上へ読み込んだ入力画像に対してサイズ縮小処理を施す。以下、サイズ縮小後の入力画像を「縮小画像」と称す。なお、入力画像に対してサイズ縮小処理を施すのは、後続するステップの演算負荷を軽減するためである。
ステップS13:CPU14は、縮小画像の各画素の輝度を所定値(ここでは飽和レベルとする。)と比較することにより、輝度が所定値を超過するような明るい領域(高輝度領域)を縮小画像から検出する(図8参照)。図8に示すとおり、検出された高輝度領域の中には、フレアに起因した高輝度領域だけでなく、フレアとは無関係な高輝度領域も混在している可能性がある。
なお、本ステップでは演算負荷を軽減するため、各画素の輝度の指標として、各画素の輝度値(R、G、Bの重み付け和)を使用する代わりに、各画素の各色成分の和(R、G、Bの和)を使用してもよい。或いは、各画素の輝度の指標として、各画素を代表する色成分の値(G強度)を使用してもよい。また、このような演算負荷の軽減方法は、画素の輝度を扱う他のステップでも採用することができる。
ステップS14:CPU14は、ステップS13で検出された高輝度領域の各々がフレアに起因したものであるか否かを判別し、フレアに起因したもの以外を排除する(図9参照。)。
なお、個々の高輝度領域がフレアに起因したものであるか否かの判定は、例えば次のとおり行われる。すなわち、CPU14は、高輝度領域と予め用意した円形パターンとを比較し、両者の相関度が一定以上である場合には、その高輝度領域をフレアに起因したものとみなし、相関度が一定未満である場合には、その高輝度領域をフレアに起因したものではないとみなす。なお、比較対象となる円形パターンとしては、フレアに起因した高輝度領域として平均的なものを使用すればよい。
或いは、個々の高輝度領域がフレアに起因したものであるか否かの判定は、次のとおり行われてもよい。すなわち、CPU14は、高輝度領域の中心から所定半径を有した円形領域を設定し、その円形領域の全域に高輝度領域が存在していた場合には、その高輝度領域をフレアに起因したものとみなし、円形領域の少なくとも1部が高輝度領域から外れていた場合には、その高輝度領域をフレアに起因したものではないとみなす。なお、円形領域の半径は、フレアに起因した高輝度領域として最も小さいものの半径と同程度に設定される。
したがって、本ステップで除外されなかった高輝度領域は、フレアの中心部における飽和領域に相当する。以下、本ステップで除外されなかった高輝度領域を、単に「飽和領域」と称す。
ステップS15:CPU14は、ステップS14で検出された1又は複数の飽和領域に対してラベリングを行い、通し番号(フレア番号i=1、2、…)を付与する(図10参照)。これによって、入力画像に発生しているフレアの総数(すなわち、フレア番号iの最終値)が確定する。
ステップS16:CPU14は、フレアの総数がゼロである場合には、フレア補正処理は不要であるとみなしてステップS19へ移行し、フレアの総数がゼロでない場合には、フレア補正処理を実行するべくステップS17へ移行する。
ステップS17:CPU14は、フレア番号の付与された各飽和領域の半径ri(i=1、2、…)を算出し、閾値aより大きな半径riを有した飽和領域を、特殊フレアに起因した飽和領域として検出し、その飽和領域の総数を計数する。特殊フレアとは、著しく明るい光源に起因したフレアであって、フレア補正処理によって完全に色消しできない可能性のあるフレアのことである。そして、CPU14は、特殊フレアに起因した飽和領域の総数が1以上である場合にはステップS21へ移行し、存在しない場合にはステップS18へ移行する。
なお、半径riの算出方法としては、後述するステップS182と同じ算出方法又はそれよりも簡易的な方法を採用することができる。また、ここでは、飽和領域のサイズとして飽和領域の半径riを算出したが、飽和領域のサイズとして飽和領域の画素数を使用してもよい。その場合は、半径の閾値aの代わりに画素数の閾値a’を使用すればよい。
ここで、本ステップにおける特殊フレアの検出原理を説明する。図11(a)、(b)、(c)、(d)、(e)は、フレアの発生源(光源)の明るさと、飽和領域(中央の白い円形領域)の半径riと、フレア領域(円形領域及びその外側の輪帯状領域)の半径との関係を示す模式図である。図11においては、右側に位置するフレアほど、発生源(光源)が明るい。
これらの図11(a)、(b)、(c)、(d)、(e)を比較すると明らかなとおり、飽和領域の半径riは、光源が明るいときほど大きくなる。
また、図11(a)、(b)、(c)、(d)、(e)を比較すると明らかなとおり、飽和領域の半径riが閾値a以下である場合(図11(a)、(b)、(c))は、フレア領域の半径は所定値βとなるが、飽和領域の半径riが閾値aを超過する場合(図11(d)、(e))は、フレア領域の半径は半径riに応じた値α×riとなる。
なぜなら、光源の明るさが一定未満である場合は、低次の回折光しか発生しないのに対して、光源の明るさが一定以上である場合は、低次の回折光に加えて高次の回折光も発生するからである。
前者の場合、後述するフレア補正処理によって完全に色消しできるものの、後者の場合、フレア補正処理によって完全に色消しできない虞がある。
このため、本ステップでは、飽和領域の半径riが閾値aを超過するようなフレアを特殊フレアとみなした。
なお、図11に示すような、光源の明るさと飽和領域の半径riとフレア領域の半径との関係は、撮影光学系の種類によって異なるため、本ステップの閾値は、撮影光学系の種類に応じて設定されることが望ましい。
ステップS18:CPU14は、メモリ15上の入力画像に対してフレア補正処理を施す。フレア補正処理の詳細は、後述する。
ステップS19:画像強調処理部22は、メモリ15上の入力画像に対して画像強調処理を施し、入力画像の絵柄を強調する。ここでは、画像強調処理として、コントラスト強調処理、彩度強調処理、エッジ強調処理が順に施されるものとする。
そのために、画像強調処理部22は、コントラスト強調処理用の階調変換テーブルとして、強調強度の異なる複数の階調変換テーブルを有している。ここでは、この中で最も低強度の階調変換テーブルは、ゼロ強度(コントラスト強調しないもの)である。
また、画像強調処理部22は、彩度強調処理用の色変換マトリクスとして、強調強度の異なる複数の色変換マトリクスを有している。この中で最も低強度の色変換マトリクスは、ゼロ強度(彩度強調しないもの)である。
また、画像強調処理部22は、1つのエッジ強調処理回路を有しており、このエッジ強調処理回路においては、エッジ強調の強度を規定するパラメータが可変である。設定可能なパラメータの中で最も低強度のパラメータは、ゼロ強度(エッジ強調しないもの)である。
本ステップの画像強調処理部22は、先ず、フレア補正処理後の入力画像上の各画素へ階調変換テーブルを適用することにより、その入力画像に対してコントラスト強調処理を施す。但し、本ステップで使用される階調変換テーブルは、予め設定された強度(通常強度)の階調変換テーブルである。
次に、画像強調処理部22は、コントラスト強調処理後の入力画像上の各画素へ色変換マトリクスを適用することにより、その入力画像に対して彩度強調処理を施す。但し、本ステップで使用される色変換マトリクスは、予め設定された強度(通常強度)の色変換マトリクスである。
次に、画像強調処理部22は、彩度強調処理後の入力画像上の各画素の信号をエッジ強調回路へ入力することにより、その入力画像に対してエッジ強調処理を施す。但し、本ステップでエッジ強調回路へ設定されるパラメータは、予め設定された強度(通常強度)のパラメータである。
ステップS20:CPU14は、メモリ15上の入力画像を、JPEGなどの所定の圧縮方式で圧縮してから、ユーザが指定した保存先(例えば、データ読込部12に挿入された記憶媒体)へ保存し、現像処理のフローを終了する。
ステップS21:CPU14は、特殊フレア対応処理を実行する。特殊フレア対応処理の詳細は、図3のとおりである。
図3は、特殊フレア対応処理の動作フローチャートである。以下、図3の各ステップを順に説明する。
ステップS211:CPU14は、特殊フレア対応処理のモードとして、領域別強調モードが設定されているか否かを判別し、設定されていた場合にはステップS212へ移行し、設定されていない場合にはステップS214へ移行する。
ステップS212:CPU14は、メモリ15上の入力画像に対して、前述したステップS18と同様のフレア補正処理を施す。
ステップS213:画像強調処理部22は、メモリ15上の入力画像に対して、領域毎の画像強調処理(コントラスト強調処理、彩度強調処理、エッジ強調処理)を施し、ステップS20へ移行する。ここで、領域毎の画像強調処理とは、入力画像上の領域毎に強調強度を設定した画像強調処理のことであって、この画像強調処理では、特殊フレアのフレア領域に関する強度は、ステップS19における強度(通常強度)よりも低く設定され、それ以外の領域に関する強度は、通常強度と同じに設定される。なお、領域毎の画像強調処理の詳細は、後述する。
ステップS214:CPU14は、特殊フレア対応処理のモードとして、強度低減モードが設定されているか否かを判別し、設定されていた場合にはステップS215へ移行し、設定されていない場合にはステップS217へ移行する。
ステップS215:CPU14は、メモリ15上の入力画像に対して、前述したステップS18と同様のフレア補正処理を施す。
ステップS216:画像強調処理部22は、メモリ15上の入力画像に対して、低強度の画像強調処理(コントラスト強調処理、彩度強調処理、エッジ強調処理)を施し、ステップS20へ移行する。
本ステップの画像強調処理部22は、先ず、フレア補正処理後の入力画像上の各画素へ階調変換テーブルを適用することにより、その入力画像に対してコントラスト強調処理を施す。但し、本ステップで使用される階調変換テーブルは、通常強度よりも強度の低い階調変換テーブルである。
次に、画像強調処理部22は、コントラスト強調処理後の入力画像上の各画素へ色変換マトリクスを適用することにより、その入力画像に対して彩度強調処理を施す。但し、本ステップで使用される色変換マトリクスは、通常強度よりも強度の低い色変換マトリクスである。
次に、画像強調処理部22は、彩度強調処理後の入力画像上の各画素の信号をエッジ強調回路へ入力することにより、その入力画像に対してエッジ強調処理を施す。但し、本ステップで使用されるパラメータは、通常強度よりも強度の低いパラメータである。
ステップS217:CPU14は、特殊フレア対応処理のモードとして、RAW記録モードが設定されているか否かを判別し、設定されていた場合にはステップS218へ移行し、設定されていない場合には、通常処理モードが設定されていたとみなしてステップS18へ移行する。
ステップS218:CPU14は、メモリ15上の入力画像をRAW画像のまま、ユーザが指定した保存先(例えば、データ読込部12に挿入された記憶媒体)へ保存し、フレア対応処理のフローを終了する。
図4は、フレア補正処理の動作フローチャートである。以下、図4の各ステップを順に説明する。
ステップS181:フレア補正処理部21は、フレア番号iを初期値(1)に設定する。
ステップS182:フレア補正処理部21は、図12(a)に示すとおり、縮小画像上でフレア番号iに対応する飽和領域Siに着目すると、飽和領域Siの輝度重心に相当する座標giを算出し、座標giから飽和領域Siの輪郭までの平均距離を、飽和領域Siの半径riとして算出する。
さらに、フレア補正処理部21は、縮小画像上で座標giを中心とし、かつ半径が所定値βである円形領域を、フレア番号iに対応したフレア領域Aiに設定する(但しβ>ri)。但し、半径riが閾値aを超過していた場合、つまり、フレア番号iに対応するフレアが特殊フレアであった場合には、図12(b)に示すとおり、縮小画像上で座標giを中心とし、かつ半径が(α×ri)である円形領域を、フレア番号iに対応したフレア領域Aiに設定する(但しα>1)。
さらに、フレア補正処理部21は、図12(a)、(b)に示すとおり、縮小画像上でフレア領域Aiの全体を包含し、かつ一定のマージンγを持った包含領域を、フレア番号iに対応した処理領域Ai’に設定する(但し、γ>0)。
なお、ここでは、処理領域Ai’のサイズをフレア番号i毎に設定したが、処理領域Ai’がフレア領域Aiを包含できるのであれば、処理領域Ai’のサイズを全てのフレア番号iの間で共通としてもよい。また、処理領域Ai’の形状は、円形でも矩形でも構わない。また、処理領域Ai’の中心は、フレア領域Aiの中心から外れていても構わない。また、ここでは、飽和領域Siの輝度重心を座標giとしたが、演算負荷を軽減するために、飽和領域Siの中心を座標giとしてもよい。
ステップS183:フレア補正処理部21は、フレア番号iに対応する処理領域Ai’に対してフレア色成分抽出処理を施し、処理領域Ai’に発生しているフレア色成分を推定する。なお、本ステップで推定されるフレア色成分は、2色のフレア色成分からなる。フレア色成分抽出処理の詳細は、後述する。
ステップS184:フレア補正処理部21は、ステップS183で抽出されたフレア色成分(2色のフレア色成分)へサイズ拡大処理を施す。なお、前述したステップS12のサイズ縮小処理で入力画像のサイズを1/M倍にした場合、本ステップにおけるサイズ拡大処理ではフレア色成分(2色分のフレア色成分)のサイズをM倍にする。よって、本ステップでは、入力画像に対応するサイズのフレア色成分(2色のフレア色成分)が取得される。
ステップS185:フレア補正処理部21は、サイズ拡大処理後のフレア色成分(2色のフレア色成分)を、入力画像において処理領域Ai’に対応する領域から減算する。但し、減算に当たりCPU14は、縮小画像上の座標giと前述した倍率Mとに基づき、座標giに対応する入力画像上の座標gi’を求め、その座標gi’に対してフレア色成分(2色のフレア色成分)の中心を一致させておく。これによって、入力画像上で処理領域Ai’に対応する領域に発生していた色フレアのフレア色成分が除去される。つまり、その領域に発生していた色フレアは、無色のフレアとなる。
ステップS186:フレア補正処理部21は、フレア番号iが最終値に達したか否かを判別し、達していなかった場合はステップS187へ移行し、達していた場合はフレア補正処理のフローを終了する。
ステップS287:フレア補正処理部21は、フレア番号iをインクリメントしてからステップS182へ移行する。したがって、全てのフレア番号のフレア色成分が、入力画像から順次に除去されることになる。
図5は、フレア色成分抽出処理のフローチャートである。以下、各ステップを順に説明する。
ステップS1831:フレア補正処理部21は、フレア番号iに対応するフレア領域Aiの平均値を色成分毎に(RGB別に)算出し、平均値が最小であった1つの色成分を、基準色成分に定める。以下、G成分が基準色成分に設定されたと仮定する。その場合、フレア色成分の推定は、G成分以外の色成分、すなわちR成分及びB成分の各々に関して行われる。
ステップS1832:フレア補正処理部21は、フレア番号iに対応した二値のマスク画像を作成する。二値のマスク画像は、図13に示すとおり、処理領域Ai’と同形同サイズのマスク画像であって、フレア領域Aiに対応する領域に開口部を設けたものである。さらに、フレア補正処理部21は、その二値のマスク画像を、ガウシアンフィルタなどの平滑化フィルタで空間的に平滑化することにより、図14に示すようなグレースケールマスク画像を作成する。このグレースケールマスク画像は、二値のマスク画像において、開口部と非開口部との境界のコントラストを意図的に低下させたものに相当する。このグレースケールマスク画像の単位面積当たりの平均値は、処理領域Ai’の中央から周辺に向かって低下している。
なお、本ステップで使用される平滑化フィルタのサイズ(フィルタ径)は、フレア領域Aiのサイズが大きいときほど大きく設定されることが望ましい。
ステップS1833:フレア補正処理部21は、基準色成分(ここではG成分)以外の1つの色成分を着目色成分に設定する。以下、R成分が着目色成分に設定されたと仮定する。図15は、或る処理領域Ai’のR成分と、同じ処理領域Ai’のG成分との関係を示す図(画素プロファイル)である(但し、図15に示すデータは、特殊フレアではなく非特殊フレアのデータである。)。図15に示すとおり、R成分においては、フレア領域Aiの内側かつ飽和領域Siの外側の領域に、フレア色成分が重畳されている。つまり、その領域のR成分は、同じ領域のG成分と比較して著しく高い値となっている。
本ステップのフレア補正処理部21は、処理領域Ai’のR成分を処理領域Ai’のG成分で画素毎に除算することにより、G成分を基準としたR成分の相関色分布画像IGRを作成する。図16(A)の左側に示すのは、相関色分布画像IGRの模式図である。
ここで、相関色分布画像IGRの中央領域aの多くの画素は、1に近い画素値を有しており、中央領域aの周辺に位置するリング状領域bの多くの画素は、1よりも高い画素値を有しており、リング状領域bの外側に位置する最周辺領域cの多くの画素は、リング状領域bよりも低い画素値を有している。このうち、中央領域aは、図15に示した飽和領域Siに対応しており、リング状領域bは、図15に示したフレア領域Aiの内側かつ飽和領域Siの外側の領域、すなわち、フレア色成分の重畳された領域に対応している。
ステップS1834:フレア補正処理部21は、相関色分布画像IGRのうち、周辺と比較して値の低い領域(中央領域a及び最周辺領域c)のみを平滑化することにより、図16(B)に示すような相関色分布画像IGR”を取得する。なお、相関色分布画像IGR”の取得は、図16(A)→図16(B)に示す手順によって行うことができる。
すなわち、フレア補正処理部21は、先ず、図16(A)の左側に示した相関色分布画像IGRの全体を、ガウシアンフィルタなどの平滑化フィルタで空間的に平滑化することにより、図16(A)の右側に示すような相関色分布画像IGR’を取得する。この平滑化によると、周辺と比較して値の低い領域の値は、平滑化前よりも高めになり、周辺と比較して値の高い領域の値は、平滑化前よりも低めになる。続いて、フレア補正処理部21は、平滑化前後の2つの相関色分布画像IGR、IGR’を画素毎に比較し、値の高かった方の画素を集めて1枚の合成画像を作成し、その合成画像を相関色分布画像IGR”とする(図16(B))。この相関色分布画像IGR”は、元の相関色分布画像IGRにおいて、フレア色成分の重畳されていなかった領域(点線枠部分)のみを平滑化したものに相当する。
ステップS1835:フレア補正処理部21は、相関色分布画像IGR”に対して最小値フィルタ等による収縮処理を施すことにより、相関色分布画像IGR”において周辺と比較して値の高い領域の面積を収縮し、図16(C)に示すような相関色分布画像IHを取得する。さらに、フレア補正処理部21は、相関色分布画像IHをガウシアンフィルタなどの平滑化フィルタで空間的に平滑化することにより、図16(D)に示すような相関色分布画像IH’を取得する。この相関色分布画像IH’は、元の相関色分布画像IGRにおいてフレア色成分の重畳されていた領域を周辺の領域(点線枠部分)によって補間したものに相当する。
ステップS1836:フレア補正処理部21は、処理領域Ai’の基準色成分(ここではG成分)に対して相関色分布画像IH’を画素毎に乗算することにより、フレア色成分の除去されたR成分IRnewを算出する。これによって、処理領域Ai’からR成分に関するフレア色成分が除去されたことになる。なお、図17は、除去後の処理領域Ai’の画素プロファイルである。
この図17を図15と比較すれば明らかなとおり、除去後には、フレア色成分の重畳されていた領域(フレア領域Aiの内側かつ飽和領域Siの外側の領域)のR強度は、同じ領域のG強度に近づけられているのがわかる。また、除去後には、フレア色成分の重畳されていた領域のR/G強度は、フレア領域Aiの外側の領域のR/G強度と、飽和領域Siの内側のR/G強度とによって補間されているのがわかる。また、除去後には、フレア色成分の重畳されていた領域のR強度分布形状は、同じ領域のG強度分布形状に対応した形状となっているのがわかる。
なお、本ステップのフレア補正処理部21は、フレア色成分の除去されたR成分IRnewを、元のR成分から差し引くことにより、R成分に関するフレア色成分IFRを算出しておく(フレア色成分の除去されたR成分IRnewを、フレア色成分IFRに換算しておく。)。なぜなら、本実施形態では、最終画像を算出する前に、フレア色成分IFRに対して幾つかの処理(マスク処理やサイズ拡大処理など)を施す必要があるからである。
ステップS1837:フレア補正処理部21は、ステップS1836で取得したフレア色成分IFRに対してステップS1832で作成したグレースケールマスクを適用することにより、フレア色成分IFRの周辺部をぼかす。このように周辺部をぼかしておけば、処理領域Ai’のR成分からフレア色成分IFRを除去(減算)した際に、処理領域Ai’に不自然な階調段差が発生することを防げるからである。また、上述したとおり、グレースケールマスクの作成時に使用された平滑化フィルタのサイズは、フレア領域Aiのサイズに応じたサイズに設定されたので、マスク適用後のフレア色成分IFRの周辺部は、より自然なものとなる。これによって、R成分に関するフレア色成分IFRの推定は、完了である。
ステップS1838:フレア補正処理部21は、基準色成分以外の全ての色成分(ここではR成分、B成分)に関する推定が完了したか否かを判別し、完了していなければ未推定である色成分の推定を行うべくステップS1833へ移行し、完了していればフレア色成分抽出処理のフローを終了する。なお、ここでは、R成分に関する推定しか説明しなかったが、B成分に関する推定は、R成分に関する推定と同様なので、説明を省略する。
図6は、領域毎の画像強調処理の動作フローチャートである。以下、図6の各ステップを順に説明する。
ステップS230:画像強調処理部22は、特殊フレアに起因した飽和領域(ステップS17で検出済み)に対してラベリングを行い、通し番号(特殊フレア番号j=1、2、…)を付与する。これによって、入力画像に発生している特殊フレアの総数(すなわち、特殊フレア番号jの最終値)が確定する。
ステップS231:画像強調処理部22は、特殊フレア番号jを初期値(1)に設定する。
ステップS232:画像強調処理部22は、縮小画像上で特殊フレア番号jに対応するフレア領域Ajと処理領域Aj’とを設定する。なお、特殊フレアに関する領域Aj、Aj’の設定方法は、ステップS182における領域Ai、Ai’の設定方法と同様である。
ステップS233:画像強調処理部22は、特殊フレア番号jに対応したグレースケールマスク画像(図14参照)を作成する。なお、グレースケールマスク画像の作成方法は、ステップS1832におけるグレースケールマスクの作成方法と同様である。
ステップS234:画像強調処理部22は、特殊フレア番号jが最終値に達したか否かを判別し、達していなかった場合はステップS235へ移行し、達していた場合はステップS236へ移行する。
ステップS235:画像強調処理部22は、特殊フレア番号jをインクリメントしてからステップS232へ移行する。したがって、全ての特殊フレアの各々に対してグレースケールマスクが作成されることになる。これらのグレースケールマスク画像は、画像強調処理の強度を制御する際に使用される。
ステップS236:画像強調処理部22は、全ての特殊フレアの各々について作成されたグレースケールマスク画像へサイズ拡大処理を施す。なお、前述したステップS12のサイズ縮小処理で入力画像のサイズを1/M倍にした場合、本ステップにおけるサイズ拡大処理ではグレースケールマスク画像のサイズをM倍にする。
また、画像強調処理部22は、サイズ拡大後の各グレースケールマスク画像に基づき、入力画像と同サイズの強調制御用マスク画像を作成する。
この強調制御用マスク画像上では、個々の特殊フレアの処理領域Ajには、その特殊フレアに対応するグレースケールマスク画像が割り当てられており、それ以外の領域には、値「0」が割り当てられている。
なお、画像強調処理部22は、個々のグレースケールマスク画像を強度制御用マスク画像上に割り当てる際に、縮小画像上の座標gjと前述した倍率Mとに基づき、座標gjに対応する強調制御用マスク画像上の座標gj’を求め、その座標gj’に対してグレースケールマスク画像の中心を一致させる。
このようにして作成された強調制御用マスク画像上では、図18に示すとおり、特殊フレアのフレア領域中央には、値1が割り当てられており、そのフレア領域から離れた領域には、値0が割り当てられている。また、図18では明確に現れていないが、そのフレア領域の周縁部では、フレア領域中央に近い箇所ほど1に近い値が割り当てられ、フレア領域中央から遠い箇所ほど0に近い値が割り当てられる。
ステップS237:画像強調処理部22は、作成した強度制御用マスク画像に基づき、フレア補正処理後の入力画像に対して画像強調処理(コントラスト強調処理、彩度強調処理、エッジ強調処理)を施し、入力画像の絵柄を強調する。
本ステップの画像強調処理部22は、先ず、フレア補正処理後の入力画像上の各画素へ階調変換テーブルを適用することにより、その入力画像に対してコントラスト強調処理を施す。その際に使用される階調変換テーブルは、入力画像上の画素毎に選択され、強度制御用マスク画像上の対応する画素の値が大きいときほど、強度の低い階調変換テーブルが選択される。但し、本ステップにおける階調変換テーブルの選択肢は、ゼロ強度から通常強度までの範囲の階調変換テーブルのみに制限される。
次に、画像強調処理部22は、コントラスト強調処理後の入力画像上の各画素へ色変換マトリクスを適用することにより、その入力画像に対して彩度強調処理を施す。その際に使用される色変換マトリクスは、入力画像上の画素毎に選択され、強度制御用マスク画像上の対応する画素の値が大きいときほど、強度の低い色変換マトリクスが選択される。但し、本ステップにおける色変換マトリクスの選択肢は、ゼロ強度から通常強度までの範囲の色変換マトリクスのみに制限される。
次に、画像強調処理部22は、彩度強調処理後の入力画像上の各画素の信号をエッジ強調回路へ入力することにより、その入力画像に対してエッジ強調処理を施す。その際に使用されるパラメータは、入力画像上の画素毎に設定され、強度制御用マスク画像上の対応する画素の値が大きいときほど、強度の低いパラメータが選択される。但し、本ステップにおけるパラメータの選択肢は、ゼロ強度から通常強度までの範囲のパラメータのみに制限される。
その結果、特殊フレアのフレア領域中央に対する画像強調処理は、ゼロ強度に設定され、そのフレア領域から離れた領域に対する画像強調処理は、通常強度に設定される。また、そのフレア領域の周縁部に対する画像強調処理は、そのフレア領域中央に近い箇所ほどゼロ強度に近づけられ、そのフレア領域中央から離れた箇所ほど通常強度に近づけられる(以上、ステップS237)。
以上、本実施形態の画像処理プログラムは、撮影光学系により取得された処理対象画像を入力する入力手順(S10)と、その処理対象画像に対してフレア補正処理を施すフレア補正手順(S18、S22、S25)と、フレア補正処理後の処理対象画像に対して画像強調処理を施す画像強調手順(S19、S23、S26)と、フレア補正処理後の処理対象画像に、フレア補正処理の補正誤差成分が残存する可能性があるか否かを、画像強調処理前に判別する判別手順(S11、S17)とを含み、画像強調手順(S19、S23、S26)では、前記可能性があるときにおける画像強調処理の強度を、前記可能性がないときにおける画像強調処理の強度よりも、低く設定する。
よって、本実施形態の画像処理プログラムによれば、フレア補正処理後に残存したフレア成分が、画像強調処理により強調される可能性、例えばエッジのきつい輪帯状ノイズが新たに発生する可能性を、抑えることができる。したがって、本実施形態の画像処理プログラムは、フレア補正処理を含む一連の画像処理(現像処理)を有効に機能させることができる。
また、本実施形態の画像処理プログラムには、前記可能性があるとき(S17YES)には前記画像強調処理を省略するモード(S218)も設けられている。このモード(S218)によると、前記画像強調処理の要否や内容を再検討する機会がユーザに与えられる。
また、本実施形態の画像処理プログラムでは、前記判別は、前記フレア補正処理前に行われ、前記モード(S218)では、前記画像強調処理と前記フレア補正処理との双方を省略する。このモード(S218)によると、前記画像強調処理及び前記フレア補正処理の要否や内容を再検討する機会がユーザに与えられる。
また、本実施形態の画像処理プログラムは、前記画像強調処理後の前記処理対象画像を記憶媒体へ記録する記録手順(S20、S218)を更に含み、前記記録手順(S20、S218)では、前記可能性があるとき(S17YES)には、前記フレア補正処前かつ前記画像強調処理前の前記処理対象画像を(RAW記録モードで)前記記憶媒体へ記録する。この場合、現像処理の要否や内容を再検討する機会がユーザに与えられる。
また、本実施形態の前記判別手順(S11、S17)では、フレア発生領域における飽和画素領域のサイズと前記撮影光学系の種類との少なくとも一方に基づき前記判別を行う。したがって、本実施形態の画像処理プログラムでは、前記判定を高い確度で行うことができる。
また、本実施形態の前記フレア補正処理(S181〜S187)は、フレアの色付きを除去する処理である。したがって、補正処理の対象が特殊フレアでない限り、そのフレアの色滲みを確実に抑えることができる。
また、本実施形態の前記フレア補正手順(S181〜S187)は、フレア発生領域を包含する処理領域を、前記処理対象画像上に設定する領域設定手順(S182)と、前記発生領域の各色成分の中で基準となる基準色成分を設定する基準色設定手順(S1831)と、前記処理領域における基準色成分と着目色成分との間の相関を示す相関情報を算出する相関算出手順(S1833)と、前記フレアの色付き分布であるフレア色成分を、前記処理領域の前記相関情報と前記発生領域の基準色成分とに基づき推定するフレア色成分推定手順(S1836)とを含む。したがって、補正処理の対象が特殊フレアでない限り、その色を確実に目立たなくすることができる。
また、本実施形態の前記画像強調処理は、彩度強調処理、コントラスト強調処理、エッジ強調処理のうち少なくとも1つである。
これらの画像強調処理は、残存したフレア成分を目立たせる可能性が高いため、本実施形態の現像処理が有効である。
なお、本実施形態のフレア補正処理部21は、フレア色成分の推定を基準色成分以外の2つの色成分の各々について行ったが、2つの色成分のうち一方の色成分に関する推定を省略してもよい。G成分が基準色成分であると仮定したならば、例えば、フレア領域AiにおけるG成分の平均値とB成分の平均値との差が所定範囲内であった場合、つまり、G成分とB成分とに差異が無かった場合には、B成分に関する推定を省略してもよい。
また、本実施形態のフレア補正処理部21は、基準色成分を自動的に設定したが、ユーザに指定させてもよい。
また、本実施形態の現像処理では、演算負荷を軽減するために、入力画像をそのまま使用する代わりに入力画像のサイズ縮小版(縮小画像)を使用したが、演算負荷の軽減よりも精度向上を優先させたい場合には、入力画像をそのまま使用してもよい。
また、本実施形態の現像処理では、入力画像におけるフレアの発生位置をCPU14が自動的に検出したが、ユーザに指定させてもよい。
また、本実施形態の現像処理では、フレア領域AiをCPU14が自動的に検出したが、ユーザに指定させてもよい。
また、本実施形態の現像処理では、処理領域Ai’をCPU14が自動的に設定したが、ユーザに設定させてもよい。
また、本実施形態のフレア補正処理部21は、フレア領域Aiのフレア色成分を、処理領域Aiにおける基準色成分と着目色成分との間の相関と、フレア領域Aiの基準色成分とに基づき推定したが、フレア領域Aiの色分布に基づく他の手法により推定しても構わない。
また、本実施形態の現像処理では、フレア補正処理と画像強調処理との2つの画像処理のみを実行したが、フレア補正処理の前に色補間処理(所謂デベイヤ処理)が実行されることが望ましい。但し、RAW記録モードでは、上記2つの画像処理と共に色補間処理も省略される。
また、本実施形態の現像処理では、フレア補正処理及び画像強調処理の他に、ホワイトバランス調整処理などを実行してもよい。因みに、ホワイトバランス調整処理は、色補間処理よりも前に実行されることが望ましい。
また、本実施形態の現像処理では、コントラスト強調処理に階調変換テーブルを使用したが、他の方法でコントラスト強調処理を行ってもよいことは言うまでもない。
また、本実施形態の現像処理では、彩度強調処理に色変換マトリクスを使用したが、他の方法で彩度強調処理を行ってもよいことは言うまでもない。
また、本実施形態の現像処理では、エッジ強調処理にエッジ強調回路を使用したが、他の方法でエッジ強調処理を行ってもよいことは言うまでもない。
また、本実施形態の現像処理では、画像強調処理として、コントラスト強調処理、彩度強調処理、エッジ強調処理を実行したが、他の画像強調処理を加えてもよいことは言うまでもない。
[第2実施形態]
以下、本実施形態の第2実施形態を説明する。
図19は、電子カメラの概略構成を示すブロック図である。図19に示すとおり、電子カメラ111は、撮像光学系112と、レンズ駆動部113と、絞り114と、絞り駆動部115と、カラー撮像素子116と、AFE117と、画像処理エンジン118と、第1メモリ119と、第2メモリ120と、メディアI/F121と、通信I/F122と、モニタ123と、レリーズ釦124とを有しており、この中でレンズ駆動部113、絞り駆動部115、AFE117、第1メモリ119、第2メモリ120、メディアI/F121、通信I/F122、モニタ123、レリーズ釦124の各々は、画像処理エンジン118に接続されている。また、撮影光学系112は、例えば、DOEレンズを含んだ高機能な撮影光学系である。
第1メモリ119は、揮発性の記憶媒体(SDRAMなど)で構成されており、画像処理エンジン118による画像処理の前工程や後工程で撮像画像を一時的に記憶する。一方、第2メモリ120は、フラッシュメモリ等の不揮発性の記憶媒体で構成されており、画像処理エンジン118によって実行されるプログラムを長期的に記憶する。
この第1メモリ119には、画像処理エンジン118が実行すべき画像処理プログラムが格納されており、この画像処理プログラムには、第1実施形態と同様の現像処理の機能が搭載されている。現像処理を実行する際、画像処理エンジン118は、第1実施形態と同様、フレア補正処理部125、画像強調処理部126として機能する。
したがって、本実施形態の画像処理エンジン118は、電子カメラ111が撮影で取得したRAW画像や、メディアI/F121(又は通信I/F122)を介して読み込まれたRAW画像に対して、第1実施形態と同様の現像処理を施すことができる。
なお、電子カメラ111が取得したRAW画像に対する現像処理のタイミングは、そのRAW画像が撮影された直後としてもよい。
また、図19において点線で示した部分(撮影光学系112を含むレンズユニット)は、電子カメラ111に対して交換可能であっても構わない。
また、交換可能なレンズユニットで撮影されたRAW画像に対して現像処理を施す場合は、撮影光学系112の種類情報を、画像処理エンジン118がレンズユニットから読み込めばよい。
また、本実施形態の現像処理も、第1実施形態の現像処理と同様に変形することが可能である。