以下、添付の図面を参照して、本発明を実施する形態について説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
本実施例における画像処理装置のハードウェア構成の一例について、図1を参照して説明する。
図1において、画像処理装置はCPU101、RAM102、HDD103、汎用インターフェース(I/F)104、モニタ108、及びメインバス109を備える。汎用I/F104は、カメラなどの撮像装置105や、マウス、キーボードなどの入力装置106、及びメモリーカードなどの外部メモリ107をメインバス109に接続する。
以下では、CPU101がHDD103に格納された各種ソフトウェア(コンピュータプログラム)を動作させることで実現する各種処理について述べる。
まず、CPU101はHDD103に格納されている画像処理アプリケーションを起動し、RAM102に展開するとともに、モニタ108にユーザインターフェース(UI)を表示する。続いて、HDD103や外部メモリ107に格納されている各種データ、撮像装置105で撮影された画像データ、入力装置106からの指示などがRAM102に転送される。さらに、画像処理アプリケーション内の処理に従って、RAM102に格納されているデータはCPU101からの指令に基づき各種演算される。演算結果はモニタ108に表示したり、HDD103または外部メモリ107に格納したりする。なお、HDD103や外部メモリ107に格納されている画像データがRAM102に転送されてもよい。また、不図示のネットワークを介してサーバから送信された画像データがRAM102に転送されてもよい。
上記の構成に於いて、CPU101からの指令に基づき、画像処理アプリケーションに画像データを入力してノイズを低減した画像データを生成し、出力する処理の詳細について説明する。
(NonLocalMeans)
まず、本実施例で説明するノイズ低減処理について説明しておく。本実施例では、NonLocalMeans手法を用いる。この手法は、ノイズ低減対象となる着目画素を含む、着目画素の周辺に存在する複数の参照画素の画素値に適応的な重みを掛け、その結果を全て加算した結果で着目画素の画素値を置き換える事でノイズを低減する。参照画素の画素数をNS、参照画素の画素値をIj(j=1〜NS)、参照画素の重みをwj(j=1〜NS)とすると、加重平均したノイズ低減処理後の着目画素の画素値Inewは次式になる。
次に、参照画素の重みの決定方法について、図12及び図13を参照して説明する。
図12(a)において、1201は画像データの例を示しており、左上の画素を原点として各画素の画素値をI(x、y)と表すものとする。ここで、1202は着目画素であり、その画素値はI(4、4)である。1203は着目領域であり、ノイズ低減対象となる着目画素1202を中心とした3×3画素の矩形領域である。この3×3画素の矩形領域は、着目画素を含む着目画素群とも言える。1204は参照画素であり、着目画素1202を含む5×5画素(NS=25)の矩形領域内の画素である。1205は、参照画素I(2,2)の参照領域であり、参照画素I(2,2)を中心とし、着目領域と同サイズの3×3画素の矩形領域である。この参照領域は、参照画素を含む参照画素群とも言える。尚、参照領域は参照画素毎に存在するが、ここでは参照画素I(2,2)の参照領域だけ示している。
参照画素I(2、2)の重みを求めるために、まず、着目領域1203と当該参照画素I(2、2)の参照領域1205とを比較して類似度を決定する。尚、類似度は所望の方法で求めてよい。例えば、図1(b)のように、着目領域1203の画素をbs(p,q)、参照領域の画素をbj(p,q)(j=1〜NS)とする。そして、着目領域1203と参照領域1205との空間的に対応する画素の差を類似度とすると、類似度Cjは次式になる。
類似度Cjは値が小さいほど着目領域と参照領域の類似度が高くなる。そこで、類似度に応じて、重みを決定する。重みは図13に示す関数のように類似度Cjが小さいほど重みが大きく、類似度Cjが大きいほど重みが小さくなるように決定すればよく、例えば次式で定まる。
ここで、hは重みの大きさを制御する変数であり、hを大きくするとノイズ低減効果が高くなるが、エッジがぼける。
以下同様に、着目領域1203と各参照画素の参照領域とを順次比較していくことで、参照画素毎の重みが得られる。
尚、本実施例におけるノイズ低減処理は、参照画素の重みが着目領域と参照領域の類似度とに基づいて決まる処理であればよく、類似度や重みの決定方法などはここで説明した方法に限られるものではない。
(画像処理装置の論理構成)
以下では、本実施例における画像処理について図2と図3を参照して説明する。
図2は本実施例の画像処理装置の論理構成の一例を示す模式図である。図2において、画像処理装置は、画像データ入力部201と、パラメータ入力部202と、補正処理部203と、合成処理部204と、画像データ出力部205とを有する。
画像データ入力部201は画像データを画像処理装置に入力する。画像データはCPU101からの指示に基づき、撮像装置105或いはHDD103や外部メモリ107から入力される。勿論、撮像装置105で撮影した画像をHDD103などの記憶装置に一旦記憶した後で入力してもかまわない。
パラメータ入力部202は、画像処理に用いる複数のノイズ低減処理パラメータと合成処理パラメータとを画像処理パラメータとして画像処理装置に入力する。パラメータはCPU101からの指示に基づき、HDD103や外部メモリ107から入力される。また、ユーザインターフェイス(UI)を介し、キーボードやマウスなどの入力装置106で直接指定して入力してもかまわない。尚、パラメータの詳細については後述する。
補正処理部203は、CPU101からの指示に基づいて、画像データ入力部201で入力された画像データと、パラメータ入力部202で入力された複数のノイズ低減処理パラメータとを取得する。そして、ノイズ低減処理パラメータ毎に複数の補正画像データと補正画像データに対応する複数の補正パラメータとを生成する。生成した複数の補正画像データと複数の補正パラメータとはRAM102に記憶される。尚、補正画像データや補正パラメータに関する詳細は後述する。
合成処理部204は、CPU101からの指示に基づいて、補正処理部203で生成され、RAM102に記憶された複数の補正画像データと複数の補正パラメータとパラメータ入力部202で入力された合成処理パラメータとを取得する。合成処理部204は、取得したデータに基づいて合成画像データを生成する。生成した合成画像データはRAM102に記憶される。
画像データ出力部205は、合成処理部204で生成した合成画像データをモニタ108やHDD103などに出力する。尚、出力先はこれに限られるものではなく、例えば、汎用I/F104に接続した外部メモリ107や、不図示の外部サーバなどに出力してもよし、プリンタなどを接続して出力しても構わない。
(メイン処理フロー)
以下では、図2で説明した画像処理装置の論理構成における各処理の詳細について、図3のフローチャートを参照して説明する。
ステップS301において、画像データ入力部201は画像データを入力する。
ステップS302において、パラメータ入力部202は画像処理パラメータを入力する。入力するパラメータは着目領域の異なる複数のノイズ低減処理パラメータと、合成処理パラメータである。まず、ノイズ低減処理パラメータについて説明する。式(1)から式(3)で説明したように、ノイズ低減後の画素値を求めるためには、複数の参照画素と、各参照画素の重みを算出するための着目領域とが必要になる。着目領域が決まれば、各参照画素に対応する参照領域も決まることになる。本実施例においては、ノイズ低減処理パラメータは、複数の参照画素と、着目領域とを示すパラメータである。なお、着目領域は、ある着目画素が指定された場合に、ある領域内でどの画素が参照領域との比較で用いられるかを示すパラメータである。したがって、着目領域を示すパラメータとは、着目領域として用いる画素配置、または着目領域として用いる画素を示すパラメータということもできる。
参照画素は着目画素近傍の画素としてもよいし、画像全体の画素としても構わない。以下では、参照画素は着目画素を中心とする5×5画素として説明する。尚、一般に参照画素を増やすとノイズ低減効果が向上するが、処理時間も増加するため、所望の実施形態に応じて参照画素をノイズ低減処理パラメータとして入力すればよい。一方、着目領域については、領域内の画素数或いは画素配置が異なるように複数の着目領域が入力される。すなわち、本実施例では、複数のノイズ低減処理パラメータが入力され、各ノイズ低減処理パラメータは、それぞれが異なる複数の着目領域と、複数の参照画素とを示すものである。
ここで、図4を参照して、着目領域の例を説明する。図4は、ノイズ低減処理パラメータとして指定される着目領域と複数の参照画素とのセットが複数ある例を模式的に示している。図4は、着目画素群の各画素の位置関係が異なるパラメータを示している。図4において、黒画素が着目画素を示している。図4の各着目領域の項において、黒画素及び斜線で示す画素が着目領域を示しており、各参照画素の項において黒画素及び斜線で示す画素が参照画素を示している。このように、図4(a)から図4(f)に示すセットがノイズ低減処理パラメータの例である。図4(a)は3×3画素の着目領域a1、図4(b)は5×5画素の着目領域b1を示しており、図4(a)の着目領域a1と図4(b)の着目領域b1とでは画素数が異なる。また、図4(c)は着目画素から1画素間隔の3×3画素の着目領域c1を示している。図4(d)は着目画素から縦横に5画素ずつの着目領域d1を示している。図4(a)の着目領域a1と、図4(c)の着目領域c1と、図4(d)の着目領域d1とでは、画素数は同じであるが、着目領域の画素配置が異なる。このように、領域内の画素数または画素配置が異なる複数の着目領域をノイズ低減処理パラメータとして入力すればよい。このように複数の着目領域を示す複数のノイズ低減処理パラメータを入力することによって、例えばエッジを含む領域と平坦な領域とに対して、異なる着目領域に応じた異なるノイズ低減処理を実施することができる。
尚、着目領域の画素配置はこれに限られるものではなく所望の配置を取って構わない。例えば、図4(e)は着目画素からのマンハッタン距離が2以下の着目領域e1を示している。図4(f)は着目画素からのユークリッド距離が√5以下の着目領域f2を示している。このように着目画素からの距離が異なる複数の着目領域を複数のノイズ低減処理パラメータとして入力しても構わない。尚、図4では着目領域及び参照画素の範囲を便宜的に正方形で示しているが、これに限られるものではなく長方形やその他の形状であっても構わない。
次に、合成処理パラメータについて説明する。合成処理パラメータは、合成方法の指示、補正処理部203で生成される補正パラメータに対応する閾値、または複数の補正画像データをブレンドする場合のブレンド比などである。補正パラメータとは、ノイズ低減効果の度合いを示すパラメータである。詳細は後述する。
以下、本実施例では3つの異なる着目領域を示す3つのノイズ低減処理パラメータと、補正パラメータに対応した2つの閾値Eth1、Eth2を示す合成処理パラメータとを入力するものとして説明する。
ステップS303において、補正処理部203は、ステップS302で入力された複数のノイズ低減処理パラメータを参照して、ステップS301で入力された画像データから複数の補正画像データと複数の補正パラメータとを生成する。補正画像データ及び補正パラメータの生成方法の詳細については後述する。
ステップS304において、合成処理部204は、ステップS302で入力された合成処理パラメータと、ステップS303で生成された複数の補正パラメータとに基づいて、ステップS303で生成された複数の補正画像データを合成する。そして、合成画像データを生成する。合成画像データの生成方法の詳細については後述する。
ステップS305において、画像データ出力部205は、ステップS304で生成された合成画像データを出力する。
(補正処理)
以下では、図3で説明したステップS303の補正処理の詳細について、図5のフローチャートを参照して説明する。
ステップS501において、補正処理部203は、ステップS301で入力された画像データを取得する。
ステップS502において、補正処理部203は、ステップS302で入力された複数のノイズ低減処理パラメータを取得する。
ステップS503において、補正処理部203は、ステップS502で取得した複数のノイズ低減処理パラメータから一つのノイズ低減処理パラメータを選択する。例えば、上述したように、複数の参照画素と、着目領域とを示すパラメータを含むノイズ低減処理パラメータを選択する。
ステップS504において、補正処理部203は、ステップS503で選択したノイズ低減処理パラメータを用いてステップS501で取得した画像データを補正し、補正画像データを生成する。具体的には、式(1)から式(3)を各画素に順次適用すればよい。
ステップS505において、補正処理部203は、画素毎の補正パラメータを生成する。画素毎の補正パラメータEiは式(3)で算出する重みwjの総和と二乗和の比を用いて次式で得られる。
補正パラメータEiは値が小さいほどノイズ低減効果が高く、値が大きいほどノイズ低減効果が小さいことを示している。例えば、ノイズが低減できない、即ち着目画素以外の参照画素の重みが0の場合、Ei=1となり、着目画素以外の参照画素の重みが増えるとEi<1になる。一方、ノイズがない場合、即ち参照画素の重みが全て等しい場合、Ei=1/Nsになる。このパラメータEiは、値が大きいほど、対象画素がエッジである可能性が高いことを示すともいえる。例えば、エッジ部のように、重みが0の参照画素が含まれるような領域では補正パラメータEiは大きい値になり、平坦部のように同程度の重みの画素が多く含まれる領域では補正パラメータEiは小さい値になる。尚、補正パラメータはノイズ低減の効果を表すことができればよく、これに限られるものではない。例えば、補正前後の画素値の差や、重みが0でない参照画素の数なども補正パラメータとして利用可能である。
ステップS506において、補正処理部203は、ステップS502で取得した全てのノイズ低減処理パラメータでの補正処理が終了したかどうか判定する。補正処理部203は、終了したと判定した場合、ステップS507に移行し、終了していないと判定した場合、ステップS503に移行して未処理のパラメータを選択し、処理を継続する。
ステップS507において、補正処理部203は、ステップS504とステップS505で生成した複数の補正画像データと複数の補正パラメータとを出力する。
(合成処理)
以下では、図3で説明したステップS304の合成処理の詳細について、図6及び図7のフローチャートを参照して説明する。
ステップS601において、合成処理部204は、ステップS303で生成された複数の補正画像データと複数の補正パラメータとを取得する。
ステップS602において、合成処理部204は、ステップS302で入力された合成処理パラメータを取得する。
ステップS603において、合成処理部204は、ステップS601で取得した任意の補正画像データの中の未処理の画素を選択する。あるいは、合成処理部204は、ステップS301で入力された画像データの中の未処理の画像を選択してもよい。
ステップS604において、合成処理部204は、ステップS601で取得した複数の補正画像データ及び複数の補正パラメータと、ステップS602で取得した合成処理パラメータと、に基づいて、ステップS603で選択された画素の出力画素値を決定する。
ここで、図7のフローチャート図を参照して3つの補正画像データを合成する方法について説明する。ステップS603で選択された画素の3つの補正画像データの画素値をそれぞれ、I1,I2,I3、各画素に対応する補正パラメータをE1,E2、E3とする。また、ステップS602で合成処理パラメータとして取得した閾値をEth1、Eth2とする。先に説明したように、補正パラメータは値が小さいほどノイズ低減効果が高く、値が大きいほどノイズ低減効果が小さいことを示している。
ステップS701では、合成処理部204は、補正パラメータE1と閾値Eth1とを比較する。補正パラメータE1が閾値Eth1より小さい、即ち閾値で指示した値よりノイズ低減効果が高い場合はステップS702に移行して画素値I1を出力する。補正パラメータE1が閾値Eth1より大きい、即ち閾値で指示した値よりノイズ低減効果が低い場合は、合成処理部204は、ステップS703に移行する。合成処理部204は、ステップS703でも同様に補正パラメータE2と閾値Eth2とを比較して、補正パラメータE2が閾値Eth2より小さい場合はステップS704に移行して画素値I2を出力する。一方、補正パラメータE2が閾値Eth2より大きい場合は、合成処理部204は、ステップS705に移行して画素値I3を出力する。ところで、この合成方法の場合、必ずしも所望のステップS602で取得した閾値よりもノイズ低減効果の高い画素が選ばれるわけではない。例えば、補正パラメータE2の方が補正パラメータE1よりも小さい値の場合、ステップS701で補正パラメータE1が閾値Eth1より小さいと判定されてしまうと、よりノイズ低減効果の高い補正パラメータE2に対応する画素I2が出力されない。そこで、着目領域内の画素数が多い、或いは着目領域の範囲が大きいパラメータで生成した補正画像が優先的に出力されるように合成処理を行うことができる。例えば、図4(a)、図4(b)、図4(c)の3つのパラメータを用いた場合、I1は図4(b)、I2は図4(c)、I3は図4(a)で処理した結果をそれぞれ対応させることができる。
尚、出力画素値の決定は合成処理パラメータに含まれる合成の指示に応じて所望の方法を用いてよい。例えば、合成処理部204は、ステップS602で選択した全ての補正パラメータE1,E2,E3を比較し、補正パラメータが最も小さい、即ちノイズ低減効果の高い補正画像データの画素値を出力画素値としても良い。また、合成処理部204は、出力画素値を選択するのではなく、補正パラメータの大きさに応じたブレンド比(合成比率)で各補正画像データの画素値を重み付けした和を出力画素値とすることも可能である。勿論、これらの出力画素値を得るために必要なパラメータはステップS602において、合成処理パラメータとして取得すればよい。さらに、本実施例では3つの補正画像データを合成する例を説明したが、合成する補正画像データは2つ以上であればよい。
ステップS605において、合成処理部204は、全画素の出力画素値が決定したかどうかを判定する。全画素終了していればステップS606に移行し、終了していなければステップS603に移行して処理を継続する。
ステップS606において、合成処理部204は、生成した合成画像データを出力する。
以上の処理により、建物などのエッジを含むエッジ領域と空などの平坦領域とが混在する画像であっても、いずれの領域についてもノイズを低減することが可能になる。従って、共通の着目領域を適用したノイズ低減処理の結果に比べて画像データに記録されている被写体によらずにノイズを低減した高画質な画像データを生成することが可能になる。
実施例1では、複数のノイズ低減処理パラメータに基づいて複数の補正画像データと補正パラメータとを生成し、複数の補正画像データを合成して出力画像データを生成する方法について説明した。この方法では、多くデータを参照して合成方法を柔軟に選択することが可能である一方、複数の補正画像データや複数の補正パラメータを保持する必要があり、多くのメモリが必要となる。そこで、本実施例では画素毎に処理を行うことでメモリの使用量を減らして画像を生成する方法について説明する。なお、実施例2の画像処理装置のハードウェア構成についは、実施例1で説明したものと同様とすることができるので、説明を省略する。
図8は本実施例の画像処理装置の論理構成の一例を示す模式図である。本実施例の画像処理装置は、画像データ入力部801と、パラメータ入力部802と、補正処理部803と、判定部804と、画像データ出力部805とを有する。
画像データ入力部801は、画像データ入力部201と同様である。
パラメータ入力部802は、画像処理に用いる複数のノイズ低減処理パラメータと判定処理パラメータとを画像処理装置に入力する。パラメータはCPU101からの指示に基づき、HDD103や外部メモリ107から入力される。また、ユーザインターフェイス(UI)を介し、キーボードやマウスなどの入力装置106で直接指定して入力してもかまわない。尚、パラメータの詳細については後述する。
補正処理部803は、CPU101からの指示に基づいて、画像データ入力部801で入力された画像データと、パラメータ入力部802で入力されたパラメータとを取得し、画素毎の補正値と補正パラメータとを生成する。生成した補正値と補正パラメータとはRAM102に記憶される。
判定部804は、CPU101からの指示に基づいて、補正処理部203で生成された画素の補正値と補正パラメータと、パラメータ入力部802で入力された判定処理パラメータとを取得する。そして、補正値を出力するかどうかを補正パラメータと判定処理パラメータとに基づいて判定する。
画像データ出力部805は、補正処理部203で生成した補正値と判定部804での判定結果とに基づいて生成した画像データをモニタ108やHDD103などに出力する。尚、出力先はこれに限られるものではなく、例えば、汎用I/F104に接続した外部メモリ107に出力してもよい。
以下では、図8で説明した画像処理装置の論理構成における各処理の詳細について、図9のフローチャートを参照して説明する。
ステップS901において、画像データ入力部801は、画像データを入力する。
ステップS902において、パラメータ入力部802は、画像処理パラメータを入力する。入力するパラメータは着目領域の異なる複数のノイズ低減処理パラメータと判定処理パラメータとである。以下、本実施例では着目領域の異なる3つのノイズ低減処理パラメータを入力し、補正パラメータに対応した2つの閾値Eth1、Eth2を判定処理パラメータとして入力するものとして説明する。
ステップS903において、補正処理部803は、ステップS901で入力された画像データから未処理の画素を選択する。
ステップS904において、補正処理部803は、ステップS902で入力された複数のノイズ低減処理パラメータから一つのノイズ低減処理パラメータを選択する。尚、実施例1で説明したように、着目領域内の画素数が多い、或いは着目領域の範囲が大きいパラメータを優先的に選択するのが好適である。
ステップS905において、補正処理部803は、ステップS901で選択した画素の補正値を決定する。補正値の決定方法はステップS504と同様であり、ステップS904で選択したノイズ低減処理パラメータに基づいて式(1)から式(3)を適用すればよい。
ステップS906において、補正処理部803は、ステップS905の処理結果に基づき、ステップS901で選択した画素の補正パラメータを生成する。補正パラメータの生成方法はステップS505と同様であり、式(4)を用いて補正パラメータEを生成すればよい。
ステップS907において、判定部804は、ステップS902で入力された全てのノイズ低減処理パラメータの適用が終了したかどうかを判定する。本実施例では、ステップS903で選択した画素に対して、ステップS902で入力された3つのノイズ低減処理パラメータの適用が終了したかどうかを判定する。判定部804は、終了したと判定した場合、ステップS909に移行し、終了していないと判定した場合、ステップS908に移行する。
ステップS908において、判定部804は、ステップS906で生成された補正パラメータが、ステップS902で入力された判定処理パラメータによって決定される条件を満たすかどうか判定する。例えば、ステップS905で生成した補正パラメータをE1,ステップS902で入力された対応する閾値(判定処理パラメータ)をEth1とすると、E1<Eth1を満たすかどうか判定する。判定部804は、条件を満たすと判定した場合、ステップS909に移行し、条件を満たさないと判定した場合、ステップS904に移行して、補正処理部803に異なるパラメータを再選択させる。
ステップS909において、補正処理部803は、ステップS905で決定した補正値をステップS903で選択した画素の補正値として出力する。
ステップS910において、補正処理部803は、ステップS901で入力された画像データの全ての画素値の処理が終了したかどうか判定する。終了していればステップS911に移行し、終了していなければステップS903に移行して処理を継続する。
ステップS911において、画像データ出力部905は、補正された画像データを出力する。
以上の処理により、画素毎に補正値と補正パラメータを生成し、補正パラメータに基づいて補正値を出力値とするかどうかを決定することが可能になる。従って、補正画像データや補正パラメータをメモリに保持しておく必要がなくなるため、メモリの消費量を減らして複数の異なるノイズ低減処理パラメータを適用した補正画像データを生成することが可能になる。
実施例1及び実施例2では、ノイズ低減処理を適用した後で補正パラメータに基づいて、補正画像データを合成したり、補正パラメータを判定したりすることで出力画像データを生成する方法について説明した。ところで、エッジを含む領域と平坦な領域とを入力画像データから判別できれば、補正パラメータを用いなくともそれぞれの領域毎に異なるノイズ低減処理パラメータを適用することで、一様にノイズを低減した高画質な画像データを生成することが可能になる。そこで、本実施例では入力画像を属性ごとに領域分割し、それぞれの領域毎に異なるノイズ低減処理パラメータを適用することで出力画像データを生成する方法について説明する。
図10は本実施例の画像処理装置の論理構成を示す模式図である。本実施例の画像処理装置は、画像データ入力部1001と、パラメータ入力部1002と、補正処理部1003と、領域分割部1004と、画像データ出力部1005とを有する。
画像データ入力部1001は、画像データ入力部201と同様である。
パラメータ入力部1002は、画像処理に用いる複数のノイズ低減処理パラメータと領域分割処理パラメータとを画像処理パラメータとして画像処理装置に入力する。パラメータはCPU101からの指示に基づき、HDD103や外部メモリ107から入力される。また、ユーザインターフェイス(UI)を介し、キーボードやマウスなどの入力装置106で直接指定して入力してもかまわない。尚、パラメータの詳細については後述する。
補正処理部1003は、CPU101からの指示に基づいて、画像データ入力部1001で入力された画像データとパラメータ入力部1002で入力された複数のノイズ低減処理パラメータと、領域分割部1004で生成された領域分割データとを取得する。そして、補正画像データを生成する。生成した補正画像データはRAM102に記憶される。
領域分割部1004は、CPU101からの指示に基づいて画像データ入力部1001で入力された画像データと、パラメータ入力部1002で入力された領域分割処理パラメータとを取得し、画像データを複数の領域に分割する。領域分割方法の詳細については後述する。生成した領域分割データはRAM102に記憶される。
画像データ出力部1005は、補正処理部203で生成した補正画像データをモニタ108やHDD103などに出力する。尚、出力先はこれに限られるものではなく、例えば、汎用I/F104に接続した外部メモリ107に出力してもよい。
以下では、図10で説明した画像処理装置の論理構成における各処理の詳細について、図11のフローチャートを参照して説明する。以下では、実施例1における図3との重複部分の説明は省略して差異のみ説明する。
ステップS1101において、画像データ入力部1001は、画像データを入力する。
ステップS1102において、パラメータ入力部1002は、画像処理パラメータを入力する。入力するパラメータは着目領域の異なる複数のノイズ低減処理パラメータと領域分割処理パラメータである。以下、本実施例では着目領域の異なる2つのノイズ低減処理パラメータを入力し、エッジ領域と平滑領域の閾値を領域分割パラメータとして入力するものとして説明する。
ステップS1103において、領域分割部1004は、ステップS1001で入力された画像データが示す画像を領域分割する。ここでは少なくとも入力画像をエッジ領域と平坦領域との2領域に分割する。領域の分割には一般的なエッジ検出方法を用いればよい。例えば、Sobalフィルタ、ラプラシアンフィルタなどを適用し、ステップS1102で領域分割パラメータとして入力された閾値に基づいて領域を分割する。勿論、分割する領域の数は2つに限られるものではなく、3つ以上の領域に分割しても構わない。このように、属性ごとに分割される領域は、周波数成分に基づいて決定された情報によって決定される。
なお、分割する領域の数に関わらず、2つ以上の異なるノイズ低減処理パラメータを用いて出力画像を生成することができれば本実施例は適用可能である。例えば、オブジェクト検出などの手法を用いて、画像中の被写体毎により細かく分類しても構わない。
ステップS1104において、補正処理部1003は、ステップS1103で分割された複数の領域の内の一つと、その領域に対応するノイズ低減処理パラメータとを選択する。ここで、エッジ領域には着目領域内の画素数が少ない、或いは着目領域の範囲が小さいパラメータを適用する。他方、エッジ領域以外の領域、例えば平坦領域には着目領域内の画素数が多い、或いは着目領域の範囲が大きいパラメータを適用するのが好適である。すなわち、画像のエッジ領域の各画素に対して第1の着目領域を適用し、画像のエッジ領域以外の領域の各画素に対して前記第1の着目領域よりも広い第2の着目領域を適用するのが好適である。
ステップS1105において、補正処理部1003は、ステップS1104で選択した領域内の未処理画素を選択する。
ステップS1106において、補正処理部1003は、ステップS1104で選択した領域に応じたノイズ低減処理パラメータを用いて、ステップS1105で選択した画素の補正値を算出する。補正値の算出方法はステップS504と同様であり、ステップS1104で選択したパラメータに基づいて式(1)から式(3)を適用すればよい。
ステップS1107において、補正処理部1003は、ステップS1104で選択した領域内の全ての画素値の補正が終了したかどうかを判定する。終了していればステップS1106に移行し、終了していなければステップS1105に移行して処理を継続する。
ステップS1108において、補正処理部1003は、ステップS1103で分割された全ての領域の処理が終了したかどうかを判定する。終了していればステップS1109に移行し、終了していなければステップS1104に移行して処理を継続する。
ステップS1109において、画像データ出力部1005は、画像データを出力する。
以上の処理により、入力画像を複数の領域に分割して、それぞれの領域毎に異なるノイズ低減処理パラメータを適用することが可能になる。従って、画像データに記録されている被写体に依らず、一様にノイズを低減した高画質な画像データを生成することが可能になる。尚、本実施例では分割した異なる領域に、パラメータの異なるNonLocalMeans手法を適用する例を説明したが、領域毎に異なるノイズ低減手法を適用しても構わない。例えば、エッジ領域のみNonLocalMeans手法を適用し、平坦領域は平均値フィルタを適用するなども可能である。
実施例1〜実施例3では、入力画像データに対して複数のノイズ低減処理パラメータに基づいてノイズ低減処理を適用することにより、領域毎の最適な補正画像データを生成し、それらを合成して出力画像データを生成する手法について説明した。ところで、入力画像のサイズを変更することにより、ノイズ低減処理パラメータを変更しなくても、同様の効果を得ることが可能である。すなわち、共通のノイズ低減処理パラメータを用いて異なるサイズの入力画像に対してノイズ低減処理を行うことで実施例1から3で説明したものと同等の効果を得ることが可能である。共通のノイズ低減処理パラメータとは、例えば画素数及び各画素の位置関係が一致するパラメータのことである。そこで、入力画像を解像度変換した画像を用意する。つまり、本実施例では入力画像を段階的に縮小した画像を用意し、それぞれの画像に対してノイズ低減処理を適用する。これにより、異なるサイズの入力画像間のそれぞれ対応する領域毎において最適な出力画素値を決定することができる。本実施例では、このように画像データを生成し、それらを合成して出力画像データを生成する手法について説明する。なお、実施例4の画像処理装置のハードウェア構成についは、実施例1で説明したものと同様とし、説明を省略する。
図14は本実施例の画像処理装置の論理構成の一例を示す模式図である。図14において、画像処理装置は、画像データ入力部1401と、パラメータ入力部1402と、縮小処理部1403と、補正処理部1404と、拡大処理部1405と、合成処理部1406と、画像データ出力部1407とを有する。
画像データ入力部1401は、画像データ入力部201と同様である。
パラメータ入力部1402は、画像処理に用いるノイズ低減処理パラメータと縮小条件を表す縮小パラメータとを画像処理装置に入力する。各パラメータはCPU101からの指示に基づき、HDD103や外部メモリ107から入力される。また、ユーザインターフェイス(UI)を介し、キーボードやマウスなどの入力装置106で直接指定して入力してもかまわない。本実施例では、ノイズ低減処理パラメータは、実施例1から3で説明したように複数である必要はない。尚、縮小パラメータの詳細については後述する。
縮小処理部1403は、CPU101からの指示に基づいて、画像データ入力部1401で入力された画像データと、パラメータ入力部1402で入力された縮小パラメータとを取得し、入力された画像の縮小画像を示す縮小画像データを生成する。生成した縮小画像データはRAM102に記憶される。縮小処理の詳細については後述する。
補正処理部1404は、CPU101からの指示に基づいて、画像データ入力部1401で入力された画像データと、縮小処理部1403で生成された縮小画像データと、パラメータ入力部1402で入力されたノイズ低減処理パラメータとを取得する。そして、画像データ毎に補正画像データと補正画像データに対応する補正パラメータとを生成する。すなわち、補正処理部1404においては、サイズが異なる画像毎に補正画像データと補正パラメータとが生成される。生成した複数の補正画像データと複数の補正パラメータとはRAM102に記憶される。
拡大処理部1405は、CPU101からの指示に基づいて、補正処理部1404で生成した各補正画像データを、それぞれ入力された画像データのサイズに戻すように拡大した拡大画像を示す拡大画像データを生成する。
合成処理部1406は、CPU101からの指示に基づいて、拡大処理部1405で生成された複数の補正画像データに対応する拡大画像データと複数の補正パラメータとパラメータ入力部1402で入力された合成処理パラメータとを取得する。そして、合成画像データを生成する。生成した合成画像データはRAM102に記憶される。
画像データ出力部1407は、画像データ出力部205と同様である。
なお、本実施例では、縮小と拡大は、それぞれ1/1倍に変換すること、すなわち等倍を含むものとして説明する。
以下では、図14で説明した画像処理装置の論理構成における各処理の詳細について、図15のフローチャートを参照して説明する。
また、図21は、実施例4の処理の流れを示した模式図である。
ステップS1501において、画像データ入力部1401は、画像データを入力する。
ステップS1502において、パラメータ入力部1402は、画像処理パラメータを入力する。入力するパラメータは1つのノイズ低減処理パラメータと、縮小パラメータと、合成処理パラメータとである。縮小パラメータは入力画像の段階的な縮小画像の生成において、その段階数を決定できるものであれば何でもよい。もちろん具体的な倍率を与えてもよいし、例えば3段階の場合、3というパラメータ値から入力画像そのものを含む1/1、1/2、1/4を規定してもよい。合成処理パラメータは、合成方法の指示、補正処理部1404で生成される補正パラメータに対応する閾値、または複数の補正画像データをブレンドする場合のブレンド比などである。
以下、本実施例では1つのノイズ低減処理パラメータと1/1、1/2、1/4の縮小を表す3段階の縮小パラメータと、補正パラメータに対応した2つの閾値Eth1’、Eth2’を示す合成処理パラメータとを入力するものとして説明する。
ステップ1503において、縮小処理部1403は、ステップS1502で入力された縮小パラメータに基づいて、ステップS1501で入力された画像データの縮小画像データを生成する。生成される縮小画像データの数は、縮小パラメータに応じて決定される。本実施例では、3段階の縮小パラメータが入力されるので、ステップS1503では、等倍を含む3つの縮小画像データが生成される。縮小画像データの生成についての詳細は後述する。
ステップS1504において、補正処理部1404は、ステップS1502で入力されたノイズ低減処理パラメータに基づいて、ステップS1503で生成された全ての縮小画像データの補正画像データと補正パラメータとを生成する。すなわち、本実施例では、3つの補正画像データとその補正画像データに対応する各補正パラメータとが生成される。補正画像データと補正パラメータの生成についての詳細は後述する。
ステップS1505において、拡大処理部1405は、ステップS1504で生成された全ての縮小画像データに対して、それぞれ縮小前の入力画像データのサイズに戻すように、バイリニア法で拡大処理を行い、拡大画像データを生成する。拡大画像データの生成についての詳細は後述する。
ステップS1506において、合成処理部1406は、ステップS1502で入力された合成処理パラメータと、ステップS1504で生成された補正パラメータとに基づいて、ステップS1505で生成された複数の拡大画像データを合成する。この拡大画像データは、ステップS1503で縮小された際にステップS1504で補正がされた補正画像データを拡大したものである。この複数の拡大画像データを合成して合成画像データを生成する。合成画像データの生成についての詳細は後述する。
ステップS1507において、画像データ出力部1407は、補正された画像データを出力する。
(縮小画像データ生成処理)
以下では、図15で説明したステップS1503の縮小処理の詳細について、図16のフローチャートを参照して説明する。
ステップS1601において、縮小処理部1403は、ステップS1501で入力された画像データを取得する。
ステップS1602において、縮小処理部1403は、ステップS1502で入力された縮小処理パラメータを取得する。
ステップS1603において、縮小処理部1403は、ステップS1602で取得した縮小処理パラメータから縮小倍率を決定する。
ステップS1604において、縮小処理部1403は、ステップS1601で取得した画像データに対して、ステップS1603で決定された倍率に縮小する処理を行う。一般に画像データを縮小する際、事前に画像データに対してローパスフィルタ処理を行わなかった上で縮小しないと折り返し雑音が発生してしまう。その結果、その折り返し雑音のパターンが最終的に出力される縮小された画像データに現れてしまう。したがって本実施例では、縮小処理を行う際には、例えば平均画素法やその他のローパスフィルタ処理を含んだアルゴリズムを用いるか、事前にローパスフィルタ処理を行った上でバイリニア法などを適用する。ローパスフィルタ処理に用いるフィルタはステップS1603で決定された縮小倍率に基づいて決定する。例えば、縮小倍率が1/2のときには、図22に示したフィルタを用いる。なお、フィルタの大きさ、係数はこれに限られるものではない。
ステップS1605において、縮小処理部1403は、縮小パラメータに基づいて全ての縮小画像データを生成したかどうかを判定する。すなわち、ステップS1602で取得した縮小パラメータに対応する全ての縮小画像データを生成したかを判定する。全ての縮小処理が終了していればステップS1606に移行し、終了していなければステップS1603に移行して処理を継続する。
ステップS1606において、縮小処理部1403は、生成した全ての縮小画像データを出力する。
(補正処理)
以下では、図15で説明したステップS1504の補正処理の詳細について、図17のフローチャートを参照して説明する。
ステップS1701において、補正処理部1404は、ステップS1503で生成された全ての縮小画像データを取得する。なお、本実施例では縮小画像データには等倍の画像データ、すなわちステップS1501で入力された画像データも含まれるとして説明している。縮小画像データには等倍の画像データを含まないとする場合には、ステップS1501で入力された画像データもステップS1701で取得する。つまり、本実施例では、処理対象の画像データとして、解像度変換された画像データと、入力画像の画像データとが用いられる。
ステップS1702において、補正処理部1404は、ステップS1502で入力されたノイズ低減処理パラメータを取得する。
ステップS1703において、補正処理部1404は、ステップS1702で取得した複数の画像データの中から一つの画像データを選択する。
ステップS1704において、補正処理部1404は、ステップS1702で取得したノイズ低減処理パラメータを用いてステップS1703で選択した画像データを補正し、補正画像データを生成する。具体的には式(1)から式(3)を各画素に順次適用すればよい。なお、実施例1から3と異なり、画像データの補正に用いられるノイズ低減処理パラメータはいずれの画像データに対しても共通のものである。
ステップS1705において、補正処理部1404は、画素毎の補正パラメータを生成する。補正パラメータEiは式(3)で算出する重みwjの総和と二乗和の比を用いて式(4)で得られる。
ステップS1706において、補正処理部1404は、ステップS1701で取得した全ての画像データに対して補正処理を行ったかどうかを判定する。全ての画像データに対して補正処理が終了していればステップS1707に移行し、終了していなければステップS1703に移行して、未選択の画像データを選択して処理を継続する。
ステップS1707において、補正処理部1404は、ステップS1704で生成した複数の補正画像データとステップS1705で生成した、複数の補正画像データに対応する各補正パラメータとを出力する。
(拡大処理)
以下では、図15で説明したステップS1505の拡大処理の詳細について、図18のフローチャートを参照して説明する。
ステップS1801において、拡大処理部1405は、ステップS1504で生成された全ての補正画像データを取得する。すなわち、拡大処理部1405は補正処理が施された全ての縮小画像データを取得する。
ステップS1802において、拡大処理部1405は、ステップS1502で入力された縮小処理パラメータを取得する。
ステップS1803において、拡大処理部1405は、ステップS1801で取得した複数の画像データから一つの画像データを選択する。
ステップS1804において、拡大処理部1405は、ステップS1802で取得した縮小処理パラメータを用いて、ステップS1803で選択した画像データに対する拡大倍率を決定する。拡大倍率は、選択した縮小画像を入力画像のサイズに戻す倍率である。したがって、拡大倍率は、縮小処理パラメータを用いずに、入力画像データに基づいて決定することも可能である。
ステップS1805において、拡大処理部1405は、選択した画像データに対してバイリニア法で拡大処理を行い、拡大画像データを生成する。なお、拡大処理の方法は、バイリニア法に限らず、例えばニアレストネイバー法、バイキュービック法、Lanczos法などを用いてもよい。
ステップS1806において、拡大処理部1405は、ステップS1801で取得した全ての縮小画像データに対して拡大処理を行ったかどうかを判定する。全ての縮小画像データに対する拡大処理が終了していればステップS1807に移行し、終了していなければステップS1803に移行して処理を継続する。
ステップS1807において、拡大処理部1405は、ステップS1805で生成した全ての拡大画像データを出力する。
(合成処理)
以下では、図15で説明したステップS1506の合成処理の詳細について、図19のフローチャートを参照して説明する。
ステップS1901において、合成処理部1406は、ステップS1505で生成された拡大画像データとステップS1504で生成された、各拡大画像データに対応する補正パラメータとを取得する。なお、補正パラメータは、縮小画像の各画素に対して生成されているものである。したがって、拡大画像データの元となる縮小画像の画素に対する補正パラメータを、その拡大画像の対応する画素の補正パラメータとして用いる。例えば、1/4倍の縮小画像の画素(x,y)において補正パラメータがExであるとすると、4倍に拡大した拡大画像においてその画素(x,y)に対応する4つの画素の補正パラメータもExとして扱う。
ステップS1902において、合成処理部1406は、ステップS1502で入力された合成処理パラメータを取得する。
ステップS1903において、合成処理部1406は、ステップS1901で取得した任意の拡大画像データの中の未処理の画素を選択する。あるいは、合成処理部1406は、ステップS1501で入力された画像データの中の未処理の画像を選択してもよい。
ステップS1904において、合成処理部1406は、ステップS1903で選択された画素の出力画素値を決定する。すなわち、合成処理部1406は、ステップS1901で取得した複数の拡大画像データ及び各拡大画像データに対応する補正パラメータと、ステップS1902で取得した合成処理パラメータとに基づいて、選択された画素の出力画素値を決定する。
ここで、図20のフローチャート図を参照して3つの補正画像データを合成する方法について説明する。ステップS1903で選択された画素の3つの拡大画像データの画素値をそれぞれ縮小倍率の小さい順に、I1’,I2’,I3’、各拡大画像データの各画素に対応する補正パラメータをE1’,E2’、E3’とする。なお、I1’、E1’は縮小倍率が1/1、つまり縮小処理を行っていないときの結果とする。また、ステップS1902で合成処理パラメータとして取得した閾値をEth1’、Eth2’ とする。先に説明したように、補正パラメータは値が小さいほどノイズ低減効果が高く、値が大きいほどノイズ低減効果が小さいことを示している。
ステップS2001では、合成処理部1406は、補正パラメータE3’と閾値Eth2’とを比較する。すなわち、縮小倍率の大きい縮小画像で得られた補正パラメータE3’と閾値Eth2’とを比較する。補正パラメータE3’が閾値Eth2’より小さい、即ち閾値で指示した値よりノイズ低減効果が高い場合はステップS2002に移行して画素値I3’を出力する。補正パラメータE3’が閾値Eth2’より大きい、即ち閾値で指示した値よりノイズ低減効果が低い場合は、合成処理部1406は、ステップS2003に移行する。合成処理部1406は、ステップS2003でも同様に補正パラメータE2’と閾値Eth1’とを比較して、補正パラメータE2’が閾値Eth1’より小さい場合はステップS2004に移行して画素値I2’を出力する。一方、補正パラメータE2’が閾値Eth1’より大きい場合は、合成処理部1406は、ステップS2005に移行して画素値I1’を出力する。尚、出力画素値の決定は合成処理パラメータに含まれる合成の指示に応じて所望の方法を用いてよい。例えば、合成処理部1406は、ノイズ低減効果の高い補正画像データの画素値を出力画素値としても良い。ただし、縮小した画像の方がローパスフィルタ処理を行っている分、ノイズが小さいことを考慮する必要がある。なお、本実施例では3つの補正画像データを合成する例を説明したが、合成する補正画像データは2つ以上であればよい。
ステップS1905において、合成処理部1406は、全画素の出力画素値が決定したかどうかを判定する。全画素終了していればステップS1906に移行し、終了していなければステップS1903に移行して処理を継続する。
ステップS1906において、合成処理部1406は、生成した合成画像データを出力する。
以上の処理により、ノイズ低減処理パラメータを変更せずに、実施例1と同様の補正画像データを生成することが可能になる。これは、画像を縮小することによって、着目領域として用いる画素配置、または着目領域として用いる画素を相対的に拡大していることになるからである。例えば、ベタ領域の部分については縮小画像に対して得られる補正画像データを出力画素値として用い、それ以外の部分については入力画像に対して得られる補正画像データを出力画素値として用いることができる。
実施例4では、入力画像のサイズを変更した複数の画像データを用いることにより、一つのノイズ低減処理パラメータから各領域毎の最適な補正画像データを生成し、合成処理において出力画素値を選択する手法を示した。しかし、実施例1と同様に、補正パラメータの大きさに応じたブレンド比(合成比率)で各補正画像データの画素値を重み付けした和を出力画素値とすることも可能である。その際、実施例4とは拡大処理と合成処理の方法が異なる。そこで、本実施例では、入力画像を段階的に縮小した画像データを用意し、それぞれの画像データに対してノイズ低減処理を適用する。そして、各領域毎の最適な画像データを生成し、それらを補正パラメータの大きさに応じたブレンド比(合成比率)合成して出力画像データを生成する手法について説明する。なお、実施例5の画像処理装置のハードウェア構成についは、実施例1で説明したものと同様とし、説明を省略する。
図23は本実施例の画像処理装置の論理構成の一例を示す模式図である。図23において、画像処理装置は、画像データ入力部1401と、パラメータ入力部1402と、縮小処理部1403と、補正処理部1404と、拡大合成処理部2301と、画像データ出力部1407とを有する。実施例4と比較して、拡大処理部1405と合成処理部1406とが拡大合成処理部2301に置き換わっている。
拡大合成処理部2301は、CPU101からの指示に基づいて、補正処理部1404で生成した全ての補正画像データと、補正画像データに対応する補正パラメータとを取得し、合成画像データを生成する。生成した合成画像データはRAM102に記憶される。
以下では、図23で説明した画像処理装置の論理構成における各処理の詳細について、図24のフローチャートを参照して説明する。
ステップS2401〜ステップS2404は、ステップS1501〜ステップS1504に等しい。
ステップS2405において、拡大合成処理部2301は、補正処理部1404で生成した全ての補正画像データと補正画像データに対応する補正パラメータとを取得する。この補正画像データは、ステップS2403で縮小処理がされた縮小画像データである。そして拡大合成処理部2301は、小さいサイズの画像から順に拡大処理と合成処理を繰り返して、最終的な合成画像データを生成する。拡大合成処理の詳細については後述する。
ステップS2406は、ステップS1507に等しい。
(拡大合成処理の詳細)
以下では、図24で説明したステップS2405の拡大合成処理の詳細について、図25のフローチャートを参照して説明する。図26は実施例5の処理の流れを示した模式図である。
ステップS2501において、拡大合成処理部2301は、ステップS2404で生成された全ての補正画像データと、補正画像データに対応する補正パラメータとを取得する。
ステップS2502において、拡大合成処理部2301は、ステップS2402で入力された縮小処理パラメータと合成処理パラメータとを取得する。
ステップS2503において、拡大合成処理部2301は、ステップS2501で取得した複数の画像データから未処理の画像データの中で最も小さいサイズの一つの画像データを選択する。
ステップS2504において、拡大合成処理部2301は、ステップS2502で取得した縮小処理パラメータを用いて、ステップS2503で選択した縮小画像に対する拡大倍率を決定する。ステップS2504で決定される拡大倍率は、ステップS2503で選択した縮小画像をステップS2501で取得した補正画像データの中でステップS2503で選択した縮小画像の次に大きい画像サイズに戻す倍率である。したがって、拡大倍率は、縮小処理パラメータを用いずに、ステップS2501で取得した補正画像データを用いて決定することも可能である。
ステップS2505において、拡大合成処理部2301は、ステップS2503で選択した縮小画像に対してバイリニア法で拡大処理を行い、拡大画像データを生成する。なお、拡大処理の方法は、バイリニア法に限らず、例えばニアレストネイバー法、バイキュービック法、Lanczos法などを用いてもよい。
ステップS2506において、拡大合成処理部2301は、ステップS2505で生成された拡大画像データの未処理の画素を選択する。
ステップS2507において、拡大合成処理部2301は、2つの画像データにおける対象画素を合成する。すなわち、拡大合成処理部2301は、ステップS2505で生成された拡大画像データと、ステップS2501で取得した補正画像データの中でステップS2503で選択した縮小画像より一段階大きい画像データとを取得する。そして取得した2つの画像データにおける対象画素を合成する。ここで、ステップS2501で取得した補正画像データの中でステップS2503で選択した縮小画像より一段階大きい画像データは、つまりはステップS2505で生成された拡大画像データと同サイズの画像データのことである。合成結果は、合成に使用した2つの画像データのうち、ステップS2503で選択した画像データより一段階大きい補正画像データに保存される。つまり、ステップS2501で取得した補正画像データはここで更新されることになる。尚、合成による出力画素値の決定は、合成処理パラメータに含まれる合成の指示に応じて所望の方法を用いてよい。例えば、補正パラメータの大きさに応じたブレンド比(合成比率)で2つの補正画像データの画素値を重み付けした和を出力画素値とすることなどが考えられる。具体的には、補正パラメータが小さいときノイズ低減効果が高いため、例えばノイズ低減効果の高い画素の重みを大きくするように、補正パラメータの逆数で重み付けすることなどが考えられる。勿論、これらの出力画素値を得るために必要なパラメータはステップS2502において、合成処理パラメータとして取得すればよい。
ステップS2508において、拡大合成処理部2301は、ステップS2503で選択された画像データの全画素の出力画素値が決定したかどうかを判定する。全画素終了していればステップS2509に移行し、終了していなければステップS2506に移行して処理を継続する。このように、拡大合成処理部2301はサイズの小さい第1の補正画像を第1の補正画像の次にサイズの小さい第2の補正画像に拡大した拡大画像と、第2の補正画像とを合成して第2の補正画像データを更新する。
ステップS2509において、拡大合成処理部2301は、ステップS2501で取得した補正画像データの中で、入力画像データの補正画像データを除く全ての補正画像データに対して拡大合成処理を行ったかどうかを判定する。サイズの小さい画像順に処理を行っていくため、ステップS2505で生成された拡大画像データのサイズが入力画像と同じであるかどうか判定してもよい。入力画像データの補正画像データを除く全ての補正画像データに対して拡大合成処理が終了していればステップS2510に移行し、終了していなければステップS2503に移行して処理を継続する。
ステップS2510において、拡大合成処理部2301は、合成した画像データを出力する。
以上の処理により、入力画像のサイズを変更した複数の画像を用いて、各領域毎の最適な補正画像データを生成し、それらをブレンドした合成画像を出力することが可能になる。
実施例1では、複数のノイズ低減処理パラメータを入力画像データに対して順次適用する補正処理について説明したが、並列処理することも可能である。そこで、本実施例では実施例1で説明した補正処理の並列処理について説明する。尚、本実施例では2つの異なるノイズ低減処理パラメータを用いるとして説明する以外は実施例1と同様であるため、実施例1との差異のみ説明する。
図27は本実施例の画像処理装置の論理構成の一例を示す模式図である。図27において、画像処理装置は、画像データ入力部2701と、パラメータ入力部2702と、第一の補正処理部2703と、合成処理部2704と、画像データ出力部2705と、第二の補正処理部2706とを有する。補正処理部を2つ有する以外は実施例1と同様である。第一の補正処理部2703および第二の補正処理部2706は、ノイズ低減処理パラメータのうち、着目画素と参照画素との類似度を決定するための着目画素群が異なるパラメータが設定されている。より具体的には、第一の補正処理部2703と第二の補正処理部2706それぞれにおいて設定される着目画素群は、少なくとも画素数または画素配置が異なっている。ここで、図27で説明した画像処理装置の論理構成における各処理の詳細は図3で説明した処理とほぼ同様であり、実施例1と異なるステップS303の補正処理のみ、図28のフローチャートを参照して説明する。尚、図29はデータフローを示した模式図である。
ステップS2801において第一の補正処理部2703及び第二の補正処理部2706は、ステップS301で入力された画像データを取得する。
ステップS2802において第一の補正処理部2703及び第二の補正処理部2706は、ステップS302で入力されたそれぞれ異なるノイズ低減処理パラメータを取得する。
ステップS2803において第一の補正処理部2703は、ステップS2802で取得した複数のノイズ低減処理パラメータのうち1つのパラメータで入力画像データを補正し、第1の補正画像データを生成する。
ステップS2804において第一の補正処理部2703は、第1の補正パラメータを導出する。
ステップS2805において第二の補正処理部2706は、ステップS2802で取得した複数のノイズ低減処理パラメータのうち、ステップS2803とは着目画素群が異なるパラメータで入力画像データを補正し、第2の補正画像データを生成する。
ステップS2806において第二の補正処理部2706は、第2の補正パラメータを導出する。
尚、ステップS2803及びステップS2804と、ステップS2805及びステップS2806とは並列に処理する。
ステップS2807において第一の補正処理部2703及び第二の補正処理部2704は、ステップS2803からステップS2806で導出した第1の補正画像データ、第1の補正パラメータ、第2の補正画像データ、及び第2の補正パラメータを出力する。
以上の処理により、複数のノイズ低減処理パラメータによる入力画像データの補正処理を並列処理することで高速化が可能になる。尚、入力するノイズ低減処理パラメータが3以上の場合は、図27で説明した補正処理部をノイズ低減処理パラメータの数だけ用意し、図28のステップS2803からステップS2806で説明した説明した並列処理数を増やせばよい。また、本実施例では、実施例1の並列処理について説明したが、同様の並列処理は他の実施例にも適用可能である。
<その他の実施例>
実施例1から実施例6では、画像処理アプリケーションに画像データを入力してノイズを低減した画像データを生成する例を説明したが、撮像装置で撮影した画像データに対して撮像装置内の画像処理ハードウェア上で処理する方法であってもかまわない。また、クライアント装置からサーバ装置上の画像処理アプリケーションに画像データを送信し、サーバ装置上で画像データが処理されてもよい。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。