(57)【要約】【課題】パターン状のノイズの発生を抑制して、よりノイズを除去された画像を生成する。【解決手段】  入力画像に対してノイズを低減することで出力画像を生成する画像処理装置であって、入力画像における着目パッチと類似する複数の類似パッチを検出する検出手段と、前記複数の類似パッチに基づいて、画素間における相関を表す共分散行列を算出する行列算出手段と、前記共分散行列の複数の固有値、前記複数の固有ベクトル、前記ノイズ量および前記類似パッチの数に基づいて、前記共分散行列とは異なる補正用行列を導出する導出手段と、前記補正用行列に基づいて、前記複数の類似パッチの少なくとも１つの類似パッチにおける各画素の画素値を補正するパッチ補正手段と、補正された類似パッチを合成することで、前記出力画像を生成する生成手段と、有することを特徴とする。【選択図】  図２
2019101686.tif 000002
【特許請求の範囲】
【請求項１】
入力画像に対してノイズを低減することで出力画像を生成する画像処理装置であって、入力画像において着目パッチを設定する設定手段と、
前記入力画像において、前記着目パッチと類似する複数の類似パッチを検出する検出手段と、
前記複数の類似パッチに基づいて、画素間における相関を表す共分散行列を算出する行列算出手段と、
前記共分散行列の複数の固有値と複数の固有ベクトルを算出する算出手段と、
前記入力画像におけるノイズ量を取得する取得手段と、
前記複数の固有値、前記複数の固有ベクトル、前記ノイズ量および前記類似パッチの数に基づいて、前記共分散行列とは異なる補正用行列を導出する導出手段と、
前記補正用行列に基づいて、前記複数の類似パッチの少なくとも１つの類似パッチにおける各画素の画素値を補正するパッチ補正手段と、
前記パッチ補正手段により補正された類似パッチを合成することで、前記出力画像を生成する生成手段と、
有することを特徴とする画像処理装置。
【請求項２】
前記複数の固有値それぞれは、前記複数の固有ベクトルの何れかに対応し、
前記導出手段は、前記複数の固有値のうち、前記ノイズ量に応じて設定される閾値より大きい固有値に対応する固有ベクトルに基づいて、前記補正用行列を導出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記閾値は、前記類似パッチの数に基づいて設定されることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記設定手段は、前記入力画像における着目画素に対して、前記着目画素と前記着目画素の近傍の画素群における特徴に応じた画素数のパッチを前記着目パッチとして設定し、
前記閾値は、前記類似パッチを構成する画素数に基づいて設定されることを特徴とする請求項２または３に記載の画像処理装置。
【請求項５】
前記導出手段は、前記閾値未満の固有値を補正し、前記補正された固有値と前記補正された固有ベクトルに対応する固有ベクトルに基づいて、前記補正用行列を導出することを特徴とする請求項２乃至４の何れか一項に記載の画像処理装置。
【請求項６】
前記導出手段は、前記閾値以下の固有値を、前記ノイズ量の値に補正することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記導出手段は、前記類似パッチの数が多いほど、前記閾値を小さい値に設定することを特徴とする請求項２乃至６の何れか一項に記載の画像処理装置。
【請求項８】
前記導出手段は、前記複数の固有値に対して、前記ノイズ量と前記類似パッチの画素数に応じた補正し、
前記補正された固有値と前記複数の固有ベクトルに基づいて、前記補正用行列を算出することを特徴とする請求項１乃至６の何れか一項に記載の画像処理装置。
【請求項９】
前記導出手段は、前記ノイズ量と前記類似パッチの画素数に応じて閾値を設定し、
前記閾値と前記固有値のそれぞれを比較することにより、固有ベクトルを選択し、
前記選択された固有ベクトルを用いて前記補正用行列を算出することを特徴とする請求項１乃至５の何れか一項に記載の画像処理装置。
【請求項１０】
コンピュータを請求項１乃至９の何れか一項に記載の画像処理装置として機能させるためのプログラム。
【請求項１１】
入力画像に対してノイズを低減することで出力画像を生成する画像処理方法であって、入力画像において着目パッチを設定し、前記入力画像において、前記着目パッチと類似する複数の類似パッチを検出し、
前記複数の類似パッチに基づいて、画素間における相関を表す共分散行列を算出し、
前記共分散行列の複数の固有値と複数の固有ベクトルを算出し、
前記複数の固有値、前記複数の固有ベクトル、前記入力画像におけるノイズ量および前記類似パッチの数に基づいて、前記共分散行列とは異なる補正用行列を導出し、
前記補正用行列に基づいて、前記複数の類似パッチの少なくとも１つの類似パッチにおける各画素の画素値を補正し、
前記パッチ補正手段により補正された類似パッチを合成することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像におけるノイズを低減する技術に関する。
【背景技術】
【０００２】
撮像装置などを用いて撮影したデジタル画像にはノイズが含まれる。そのため画像に対してノイズを低減するためのノイズ低減処理が知られている。ノイズ低減処理には、画像において複数の画素からなるパッチに注目し、パッチベースでノイズを低減する方法がある。非特許文献１に記載された方法では、画像からパッチ集合を選び、パッチの平均と共分散行列で表現されるパッチの確率モデルを生成し、最大事後確率法に基づいて全てのパッチに対してノイズ低減処理を行う。そして、これらのノイズ低減されたパッチにアグリゲーションと呼ばれる合成処理を行うことでノイズを低減された画像を生成する。また、特許文献１に記載された方法ではまず、画像におけるパッチ集合の平均と共分散行列を算出し、共分散行列の固有値と固有ベクトルを算出する。算出した後、固有値と固有ベクトルに基づいて基底行列を生成し、基底行列を用いてパッチ射影処理を行うことで、パッチ集合に属する全てのパッチにノイズ低減処理を行う。さらに、非特許文献１と同様に、ノイズ低減処理した各パッチの合成処理を行うことで、ノイズを低減された画像を生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−０２６６６９号公報
【非特許文献】
【０００４】
【非特許文献１】Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｆ  ｔｈｅ  “Ｎｏｎ−Ｌｏｃａｌ  Ｂａｙｅｓ”  （ＮＬ−Ｂａｙｅｓ）  Ｉｍａｇｅ  Ｄｅｎｏｉｓｉｎｇ  Ａｌｇｏｒｉｔｈｍ，  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｉｎｇ  Ｏｎ  Ｌｉｎｅ，  ３  （２０１３），  ｐｐ．  １−４２．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このような従来のパッチベースのノイズ低減方法においては、出力画像にパターン状のノイズが発生している場合がある。そこで本発明は、パターン状のノイズが発生することを抑制したパッチベースのノイズ低減処理を実現することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため本発明は、入力画像に対してノイズを低減することで出力画像を生成する画像処理装置であって、入力画像において着目パッチを設定する設定手段と、前記入力画像において、前記着目パッチと類似する複数の類似パッチを検出する検出手段と、前記複数の類似パッチに基づいて、画素間における相関を表す共分散行列を算出する行列算出手段と、前記共分散行列の複数の固有値と複数の固有ベクトルを算出する算出手段と、前記入力画像におけるノイズ量を取得する取得手段と、前記複数の固有値、前記複数の固有ベクトル、前記ノイズ量および前記類似パッチの数に基づいて、前記共分散行列とは異なる補正用行列を導出する導出手段と、前記補正用行列に基づいて、前記複数の類似パッチの少なくとも１つの類似パッチにおける各画素の画素値を補正するパッチ補正手段と、前記パッチ補正手段により補正された類似パッチを合成することで、前記出力画像を生成する生成手段と、有する。
【発明の効果】
【０００７】
本発明により、パターン状のノイズの発生を抑制して、よりノイズを除去された画像を生成することができる。
【図面の簡単な説明】
【０００８】
【図１】画像処理装置のハードウェア構成を示したブロック図
【図２】画像処理装置の詳細な論理構成を示したブロック図
【図３】ノイズ低減処理の流れを示すフローチャート
【図４】固有値補正処理の流れを示すフローチャート
【図５】固有値と補正値の関係を示す図
【図６】画像処理装置の詳細な論理構成を示したブロック図
【図７】ノイズ低減処理の流れを示すフローチャート
【図８】固有値補正処理の流れを示すフローチャート
【図９】画像処理装置の詳細な論理構成を示したブロック図
【図１０】ノイズ低減処理の流れを示すフローチャート
【図１１】閾値算出処理の流れを示すフローチャート
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に必ずしも限定されるものではない。
【００１０】
＜実施形態１＞
本実施形態では、パッチベースのノイズ低減処理を実行する画像処理装置について実現する態様を説明する。図１は、本実施形態に係る画像処理装置のハードウェア構成を示すブロック図である。画像処理装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、記憶部１０３、汎用インタフェース１０４、表示部１０５を有す各構成は、メインバス１０６を介して相互に接続されている。画像処理装置１００は、汎用インタフェース１０４を介して、外部メモリ１１０と、マウスやキーボードなどの入力装置１２０と接続している。記憶部１０３は、ＨＤＤやＳＳＤなどの記憶デバイスである。表示部１０５は液晶ディスプレイや有機ＥＬディスプレイなどである。
【００１１】
以下では、ＣＰＵ１０１が記憶部１０３に格納された各種ソフトウェア（コンピュータプログラム）を動作させることで実現する各種処理について述べる。まず、ＣＰＵ１０１は記憶部１０３に格納されている画像処理プログラムを起動し、ＲＡＭ１０２に展開するとともに、表示部１０５にユーザインタフェース画面（以下、ＵＩ画面）を表示する。続いて、入力装置１２０を通じたユーザからの指示に従い、外部メモリ１１０に格納されている入力画像をＲＡＭ１０２に読み込む。さらに、ユーザからの指示に従って、ＲＡＭ１０２に格納されている入力画像に対して、ノイズ低減処理を行う。ノイズ低減処理後の画像は、再びＲＡＭ１０２に格納される。ＲＡＭ１０２に格納されたノイズ低減処理後の画像は、ユーザからの指示に応じて、表示部１０５や外部メモリ１１０に出力される。なお、ノイズ低減処理の対象となる入力画像は、外部メモリ１１０の他、記憶部１０３に格納されていてもよく、また、不図示のネットワークを介してサーバからＲＡＭ１０２に読み込んでもよい。
【００１２】
ここで、パッチベースのノイズ低減処理の概要について説明する。入力画像における着目画素について、着目画素を基準とする複数の画素で構成されたパッチを、着目パッチと呼ぶこととする。着目画素の近傍の複数の画素それぞれを参照画素とし、各参照画素に対応するパッチを参照パッチと呼ぶこととする。参照パッチは、参照画素を基準とする複数の画素で構成されたパッチである。参照パッチは、着目パッチに対してノイズ低減処理をする際に参照される。１つの着目画素に対して複数の参照画素が設定されるため、１つの着目画素あたり複数の参照パッチが存在することになる。パッチベースのノイズ低減処理では、参照パッチのうち、着目パッチの画素値分布と類似したパッチを類似パッチとして選択し、パッチ集合とする。なお、複数の参照パッチの中には着目パッチ自身が含まれていても構わない。パッチ集合に基づいて、各類似パッチに対してノイズ低減処理を実行する。ノイズを低減した類似パッチを合成することにより、入力画像に対してノイズ低減処理した画像を生成する。
【００１３】
図２（ａ）は、本実施形態に係るノイズ低減処理を実行する画像処理装置の詳細な論理構成を示すブロック図である。本実施形態における画像処理装置１００は、画像入力部２０１、着目パッチ設定部２０２、類似パッチ検出部２０３、共分散行列算出部２０４、固有値・固有ベクトル算出部２０５、行列算出部２０６、類似パッチ補正部２０７、パッチ合成部２０８を有する。
【００１４】
画像入力部２０１は、入力画像を表す画像データを取得する。本実施形態では、入力画像は、０〜２５５（８ビット）の画素値が格納された画素からなるモノクロ画像とする。着目パッチ設定部２０２は、入力画像における着目画素に対して、着目パッチを設定する。ここでは、入力画像を構成する画素のうち左上画素からラスタ順に、着目画素とする。また、着目パッチの形状は、予め設定されている。本実施形態において着目パッチ設定部２０２は、着目画素を中心とする５画素×５画素を着目パッチとして設定する。
【００１５】
類似パッチ検出部２０３は、着目画素の近傍において複数の参照パッチを設定し、それら参照パッチのうち着目パッチに類似したパッチを、類似パッチとして選択することで、類似パッチを検出する。なお本実施形態では類似パッチ検出部２０３は、複数の参照パッチを類似パッチとして選択する。具体的には類似パッチ検出部２０３はまず、所定の範囲に含まれる着目画素近傍のある画素を参照画素として順に設定し、着目パッチと同様に参照画素に対する参照パッチを設定する。次に類似パッチ検出部２０３は、参照パッチと着目パッチの類似度を導出して、各参照パッチが着目パッチに類似しているかどうかを判定する。参照パッチが着目パッチに類似している場合は、参照パッチを類似パッチとして選択する。ここでは、着目画素を中心とする１５画素×１５画素を、参照画素を設定する所定の範囲とする。従って、類似パッチ検出部２０３は、着目画素を含む２２５画素を参照画素として設定し、類似パッチを最大で２２５枚検出する。類似パッチ検出部２０３はさらに、処理対象の着目画素について、選択した類似パッチの数も算出する。
【００１６】
共分散行列算出部２０４は、複数の類似パッチに基づいて共分散行列を算出する。この共分散行列は、類似パッチにおいての各画素の間にどのような相関があるかを示す。パッチにおいて隣接する２つの画素に着目したとき、多くの類似パッチにおいて画素値が近い値だったり、同様の差分があったりする場合は、２画素間には相関があるとみなすことができる。このような画素間の相関を示す共分散行列に対して後述の固有値・固有ベクトルを算出することで、パッチ集合からテクスチャ成分を抽出する。
【００１７】
固有値・固有ベクトル算出部２０５は、共分散行列の複数の固有値と、固有値それぞれに対応する固有ベクトルを算出する。この固有ベクトルは、類似パッチから抽出されたテクスチャ成分を表す。各類似パッチは、平均パッチと抽出されたテクスチャ成分を用いて表すことができる。固有値は、テクスチャ成分が各類似パッチに出現する度合いの変動を示す。固有ベクトルに対応する固有値が大きいほど、その固有ベクトルが表すテクスチャ成分の変動が高いことを示す。逆にテクスチャ成分の変動がほとんどない時は、固有値は入力画像のノイズ分散程度の値となる。
【００１８】
行列算出部２０６は、類似パッチ検出部２０３が算出した類似パッチ数に応じて各固有値を補正し、補正した固有値と固有ベクトルに基づいて、複数の類似パッチに対してノイズを低減するための補正用行列を算出する。図２（ｂ）は、行列算出部２０６の詳細を示した図である。固有値補正部２３１は各固有値について、固有値と類似パッチ数、および入力画像のノイズ量に基づいて固有値を補正する。この補正により、ノイズにより生じたテクスチャ成分を表す固有ベクトルにも関わらず固有値が偶然大きな値となってしまうことで、ノイズにより生じたテクスチャ成分がノイズ低減後の画像に残留することを防ぐ。補正用行列導出部２０６は、補正済みの全ての固有値と全ての固有ベクトルに基づいて、補正用行列を算出する。類似パッチ補正部２０７は行列算出部２０６が算出した補正値算出行列に基づいて、複数の類似パッチを補正することで、各類似パッチのノイズを低減する。パッチ合成部２０８は、補正された複数の類似パッチを合成することで、ノイズ低減された出力画像を生成する。パッチ合成部２０８は、補正された類似パッチを入力画像の元の位置に配置し、他の補正された類似パッチと重なる場合にはそれらを平均化した値を算出し、平均化した値によって元の画素の画素値を更新することで、補正された類似パッチを合成する。このような合成は、アグリケーションとも呼ばれる。
【００１９】
図３は、本実施形態における画像処理装置が実行するノイズ低減処理のフローチャートである。ＣＰＵ１０１は、図３に示すフローチャートを実現するためのプログラムを読み出し、実行させる。以下、図３を用いて、ノイズ低減処理の流れを詳細に説明する。なお、フローチャートにおける各工程（ステップ）は、「Ｓ」を用いて表すこととする。
【００２０】
Ｓ３０１において画像入力部２０１は、入力画像を読み込む。Ｓ３０２においてパッチ合成部２０８は、アグリゲーションを行うための分子用画像と分母用画像とを０に初期化する。この分子用画像と分母用画像は、垂直方向と水平方向のどちらも入力画像と同じ画素数を有する。
【００２１】
Ｓ３０３において着目パッチ設定部２０２は、入力画像における着目画素を選択し、着目画素に対応する着目パッチを設定する。前述の通り、本実施形態にでは、入力画像においてラスタ順に、着目画素を設定する。ここで、着目パッチはＭ個の画素で構成されている。本実施形態では、５画素×５画素を着目パッチとするため、Ｍ＝２５である。以下では、着目パッチを、Ｍ個の画素の画素値を並べた列ベクトルＴで表すこととする。
【００２２】
Ｓ３０４において類似パッチ検出部２０３が、Ｓ３０３で設定した着目パッチＴに対して、複数の参照パッチを設定する。各参照パッチの形状は、着目パッチの形状と一致する。したがって各参照パッチもＭ個の画素により構成されている。以下、ｉ番目の参照パッチを、それらＭ個の画素値を並べた列ベクトルＲｉで表すこととする。本実施形態ではｉ＝２２５である。
【００２３】
Ｓ３０５において類似パッチ検出部２０３は、複数の参照パッチのうち、着目パッチと類似しているパッチを類似パッチとして選択する。具体的にはまず類似パッチ検出部２０３は、Ｓ３０４において設定した複数の参照パッチそれぞれについて着目パッチとの類似度を算出する。類似度は、着目パッチの各画素と参照パッチの各画素との差分二乗和（ＳＳＤ）により算出される。類似パッチ検出部２０３は、ｉ番目の参照パッチの差分二乗和ＳＳＤを、以下の式（１）により算出する。
【００２４】
【数１】
2019101686.tif 000003
【００２５】
ここで、Ｒｉ（ｊ）はｉ番目の参照パッチにおけるｊ番目の画素の画素値である。Ｔ（ｊ）は着目パッチＴにおけるｊ番目の画素の画素値である。パッチにおける画素位置が同じ２つの画素の画素値の差分を２乗した値を累積することで、差分二乗和が算出される。このように差分二乗和ＳＳＤｉを用いて類似度を算出する場合、類似度の値が小さいほど、参照パッチＲｉは着目パッチＴに類似していることを意味する。つまり、類似度の値が小さいほど、類似度が高い。一方類似度の値が大きいほど、参照パッチＲｉは着目パッチＴに類似していない。
【００２６】
類似パッチ検出部２０３は、複数の参照パッチのうち、類似度が高い参照パッチを類似パッチとして選択する。類似パッチ検出部２０３は、あらかじめ定めた閾値と、参照パッチごとに算出した類似度（差分二乗和）とを比較し、類似度の値が閾値よりも小さい場合に、類似パッチとして選択する。類似パッチ検出部２０３は、複数の参照パッチを類似パッチとして選択する。この類似パッチの集合を、パッチ集合とする。以下、類似パッチ検出部２０３は、Ｎ個の類似パッチを検出したものとする。また、選択されたＮ個の類似パッチのうち、ｉ番目の類似パッチをＰｉで表すこととする。なお、類似度の指標としては、本実施形態が用いる差分二乗和の他に、差分絶対値和（ＳＡＤ）などを用いても良い。また、類似パッチ検出部２０３は、選択した類似パッチの数Ｎを算出する。類似パッチの数Ｎは、参照パッチのそれぞれが着目パッチに類似しているかどうかに依存する。そのため、たいていの場合は、着目パッチが異なれば類似パッチの数も異なる。
【００２７】
Ｓ３０６において共分散行列算出部２０４は、Ｓ３０５において選択した複数の類似パッチに基づいて、類似パッチの平均パッチと共分散行列Ｃとを算出する。共分散行列算出部２０４はまず、複数の類似パッチにおいて、同じ位置の画素の画素値の平均を算出し、各画素に平均値を格納して平均パッチを算出する。従って、平均パッチは、着目パッチの形状と同じ形状であり、Ｍ個の画素で構成されている。平均パッチにおけるＭ個の画素の画素値を並べた列ベクトルをＱと表すと、共分散行列算出部２０４は、式（２）により平均パッチを算出する。
【００２８】
【数２】
2019101686.tif 000004
【００２９】
また、パッチ集合から算出される共分散行列Ｃは、正方行列であり、一辺のサイズが、類似パッチを構成する画素数Ｍである。共分散行列算出部２０４は、平均パッチＱを用いて式（３）により共分散行列Ｃを算出する。
【００３０】
【数３】
2019101686.tif 000005
【００３１】
Ｓ３０７において固有値・固有ベクトル算出部２０５は、共分散行列Ｃの固有値と固有ベクトルを算出する。一般に、固有値と固有ベクトルはそれぞれ複数存在し、固有値と固有ベクトルそれぞれの数は共分散行列の一辺のサイズである。すなわち、固有値と固有ベクトルはそれぞれ類似パッチを構成する画素数Ｍ個分、存在する。また、固有ベクトルの要素の数は、類似パッチを構成する画素数Ｍと同じである。ｊ番目の固有値をλｊ、ｊ番目の固有ベクトルをＥｊと表す。共分散行列Ｃの固有値λｊと固有ベクトルＥｊは、共分散行列Ｃに対して式（４）の関係を満たす。つまり固有値λｊと固有ベクトルＥｊは、お互いに対応している。
【００３２】
【数４】
2019101686.tif 000006
【００３３】
固有値・固有ベクトル算出部２０５は、式（４）を満たす固有値λｊと固有ベクトルＥｊを算出する。ここで固有ベクトルＥｊは、互いに類似するパッチ集合において抽出されるテクスチャ成分に相当する。また固有値λｊは、各固有ベクトルの各類似パッチにおける出現度合いのばらつきに相当する。本来、固有ベクトルが表すテクスチャ成分が、ノイズによるテクスチャである場合、固有値は画像におけるノイズの分散程度になる。固有値の値が、ノイズの分散より大きい値であるほど、その固有値に対応する固有ベクトルは、本来画像に残すべき被写体のテクスチャ成分であることを意味する。後述するＳ３１０では、被写体のテクスチャ成分を残し、ノイズによるテクスチャ成分を除去するように、各類似パッチをノイズ低減処理する。
【００３４】
Ｓ３０８において固有値補正部２３１は、Ｓ３０７において算出した複数の固有値それぞれを補正する。固有値補正部２３１は、Ｓ３０７において算出した各固有値、入力画像におけるノイズ量、Ｓ３０５において選択された類似パッチの数に基づいて、各固有値を補正する。後述するＳ３１０におけるパッチに対するノイズ低減処理では、固有値の大きさに応じて、対応する固有ベクトルのテクスチャ成分が保存されるか否かが決まる。ノイズの分散近傍の固有値に対応する固有ベクトルは、ノイズとみなされ、類似パッチから除去される。一方ノイズの分散から離れた値の固有値に対応する固有ベクトルは、保存すべきテクスチャとみなされ、類似パッチに保存される。しかしながら実際にはノイズによって生じるテクスチャ成分の固有値は、ノイズの分散近傍でばらつきがある。固有値のばらつきの結果、本来除去すべきノイズによるテクスチャ成分であるにも関わらず、保存すべきテクスチャとみなされてしまう場合がある。そこで本実施形態においては、ノイズによるテクスチャ成分であるにも関わらず画像に保存される現象を抑制するために、保存すべきテクスチャ成分である場合に算出される値よりも小さい固有値を、ノイズ分散程度の値に補正する。
【００３５】
図４を用いて、固有値の補正処理の詳細を説明する。図４は、Ｓ３０８における固有値の補正処理の詳細なフローチャートである。後述する以降の処理において、各類似パッチに対してノイズ低減処理をする際に、まずＳ３０１において固有値補正部２３１は、入力画像におけるノイズ量σと、Ｓ３０５において選択された類似パッチの数Ｎを取得する。ここで、ノイズ量σは、画像におけるノイズの標準偏差である。撮像装置を用いて撮像することで得られた画像は一般に、ノイズの標準偏差が撮像装置の特性に応じて変動することが知られている。そこであらかじめ入力画像を撮像した撮像装置の機種や撮像時に設定された感度ごとに入力画像のノイズ量σを測定しておくことで、入力画像のノイズの標準偏差を保持しておく。ここでは固有値補正部２３１は、撮像装置の機種とＩＳＯ感度ごとのノイズ量σをテーブルとして保持する。固有値補正部２３１は、テーブルを参照することで、処理対象とする入力画像を撮像した撮像装置の機種と撮像時に設定されたＩＳＯ感度に基づいて、入力画像のノイズ量を設定する。ただし、撮像装置の機種や撮像時の設定に応じたノイズ量をテーブルとして保持する方法に限らない。例えば固有値補正部２３１は、入力画像における平坦部などからノイズ標準偏差を算出する既知の手法を用いるなどしてもよい。
【００３６】
Ｓ４０２において固有値補正部２３１は、Ｓ３０７において算出した複数の固有値のうちの１つを取得する。Ｓ４０３において固有値補正部２３１は、補正用関数を用いて、Ｓ４０２において取得した処理対象の固有値λを補正する。以下、補正後の固有値ηを単に補正値ηと呼ぶ。図５（ａ）は、固有値補正部２３１が参照する補正用関数の特性を示す。固有値λは、入力画像のノイズ量によって決まるノイズ分散に応じて補正される。図５（ａ）に示す補正用関数において、固有値λが、ノイズ分散（ノイズ標準偏差であるノイズ量σの二乗）のα倍よりも小さい場合は、ノイズ分散σ２程度の補正値ηが対応している。そして、固有値λがノイズ分散のα倍よりも大きい場合は、補正値ηもノイズ分散σ２より大きな値とする。さらに、固有値λが十分に大きい場合、補正値ηは、元の固有値と概略一致する。このような補正用関数を用いて、固有値補正部２３１は、固有値λがノイズ分散のα倍よりも小さい場合は、固有値がノイズ分散程度になるよう補正する。
【００３７】
さらに固有値補正部２３１は、着目画素に対して選択された類似パッチの数に応じて、係数αを設定する。係数αは１以上の値であることが望ましい。類似パッチが少ない場合、ノイズにより生じたテクスチャ成分に対応する固有値は、ばらつきが大きい。すなわち、類似パッチが少ない場合に算出される固有値は、固有値の値がノイズの分散よりも大きい値であっても、ノイズにより生じたテクスチャ成分である可能性が高い。類似パッチが多いほど、ノイズによって生じたテクスチャ成分に対して大きな固有値が算出される現象は生じにくくなる。そのため、類似パッチが多いほど、補正すべき固有値の上限は小さくてよい。そこで本実施形態において固有値補正部２３１は、類似パッチの数Ｎが大きいほど係数αを小さくする。例えば本実施形態においては、２２５個の参照パッチのうち、類似パッチ数Ｎ＝４９以下の場合はα＝４．０、Ｎ＝５０〜１００の場合はα＝３．０、Ｎ＝１０１〜２００の場合はα＝２．０、Ｎ＝２０１以上の場合はα＝１．０とする。係数αをこのように設定することにより、類似パッチの数Ｎに応じて、適切に類似パッチのノイズを低減することができる。なお、固有値がノイズ分散のα倍よりも大きく、補正した固有値ηが固有値λと概一致（固有値を補正しない）するまでの区間は、図５（ａ）のように滑らかに繋がれていることが望ましい。ただし、図５（ｂ）のように、固有値λを補正すべき対象の範囲を不連続に切り替えてもよい。
【００３８】
Ｓ４０４において固有値補正部２３１は、未補正の固有値があるか否かを調べ、未補正の固有値がある場合はＳ４０２に戻る。全ての固有値に対して補正処理を行うとこのフローは終了となる。以上がＳ３０８で行われる固有値の補正処理の詳細である。
【００３９】
図３に戻り、Ｓ３０９において補正用行列導出部２３２は、Ｓ３０８において補正された固有値と、Ｓ３０７において算出された固有ベクトルとに基づいて、補正用行列を算出する。具体的には補正用行列導出部２３２は、複数の補正した固有値ηｉ（ｉ＝１．．Ｍ）と対応する固有ベクトルＥｉ（ｉ＝１．．Ｍ）を用いて、補正用行列として以下の式（５）により表される補正値算出行列Ｈを算出する。
【００４０】
【数５】
2019101686.tif 000007
【００４１】
ここで算出される補正値算出行列Ｈは、共分散行列Ｃと同様に、一辺のサイズが類似パッチの画素数Ｍである正方行列である。補正値算出行列Ｈは、共分散行列Ｃにおける各固有値λを固有値ηに置き換えて逆行列にしてノイズの分散を乗じた行列である。
【００４２】
Ｓ３１０において類似パッチ補正部２０７は、補正値算出行列Ｈに基づいて、類似パッチそれぞれを補正する。具体的には、平均パッチをＱ、ｉ番目の類似パッチをＰｉとしたとき、類似パッチ補正部２０７は、以下の式（６）により補正した類似パッチＯｉを算出する。
【００４３】
【数６】
2019101686.tif 000008
【００４４】
すなわち、式（６）における第２項目のＨ（Ｐｉ−Ｑ）が類似パッチＰｉに対する補正値である。この補正値を類似パッチＰｉから減算することで、各類似パッチのノイズが低減される。
【００４５】
Ｓ３１１においてパッチ合成部２０８は、Ｓ３１０において算出された類似パッチＯｉに基づいて、分子用画像と分母用画像のそれぞれを算出する。具体的には、補正した類似パッチに含まれる各画素の画素値を、分子用画像における各画素の位置に加算する。この画素値を加算する位置は、入力画像において類似パッチがあった位置である。また、分母用画像における同様の位置には、１を加算する。
【００４６】
Ｓ３１２において未処理の着目パッチがあるか否かを調べ、未処理の着目パッチがある場合はＳ３０３に戻る。未処理の着目パッチが無い場合は、Ｓ３１３に進む。Ｓ３１３においてパッチ合成部２０８は、分子用画像における各画素の画素値を分母用画像における各画素の画素値により除算する。着目画素に対してＳ３０３〜Ｓ３１１の処理を実行すると、１つの画素が複数の類似パッチに含まれていることがある。また、入力画像における各画素を順に着目画素として設定し、Ｓ３０３〜Ｓ３１１の処理を繰り返し実行することで、１つの画素について、複数回、パッチに対してノイズ低減した結果が得られることもある。従って、着目パッチに類似したパッチ集合に基づいて、パッチ集合の各パッチをノイズ低減処理した結果、複数の画素値が算出されている画素については、その平均値を出力画像における画素値として算出する。パッチ合成部２０８は、分子用画像を分母用画像で除算した画像を、出力画像として生成し、処理を終了する。以上が、本実施形態に係るノイズ低減処理プログラムの処理フローである。
【００４７】
以上の通り、本実施形態では、まずＮ個の類似パッチから算出した共分散行列Ｃに対して、固有値と固有ベクトルを算出する。次に、ノイズ量と類似パッチの数Ｎに基づいて固有値を補正し、この補正された固有値と固有ベクトルから補正値算出行列Ｈを算出する。そして、この補正値算出行列Ｈを用いて各パッチのノイズを低減する。従来のＮＬベイズ法では、本実施形態における補正値算出行列Ｈではなく、共分散行列の逆行列Ｃ−１を用いて各パッチのノイズを低減する。しかし共分散行列の逆行列Ｃ−１を用いて各パッチのノイズを低減する方法では、ノイズにより偶然生じたテクスチャが各パッチに残留する傾向にある。その結果、出力画像においてパターン状のノイズとして視認されてしまう。本実施形態では固有値を算出し、さらに類似パッチの数Ｎに基づいて適切に固有値を補正することで、ノイズにより偶然生じたテクスチャをノイズとみなして処理することができ、パターン状のノイズの発生を抑えることができる。
【００４８】
なお、本実施形態では、８ｂｉｔのモノクロ画像を入力画像として説明したが、多ビット数の画像や、複数の色成分ごとの画像からなるカラー画像にも適用できる。また、１４ｂｉｔのＢａｙｅｒ配列の画像を入力画像とすることもできる。
【００４９】
また、着目パッチの形状は、５画素×５画素の矩形領域に限らない。カラー画像の場合は、色ごとに処理を適用してもよいし、着目パッチの形状を、５画素×５画素×色数としてもそのまま本実施形態を適用することができる。また本実施形態では、着目画素に対して着目画素を中心とした着目パッチを設定したが、これに限らない。着目画素が着目パッチにおいて最端に位置するように着目パッチを設定してもよいし、着目画素以外の画素群を着目パッチとして設定してもよい。
【００５０】
＜変形例１＞
実施形態１では、共分散行列Ｃの固有値を、図５（ａ）に示す特性の関数を用いて、全ての固有値λに対して補正後の固有値ηを出力する方法を例に説明した。しかしながら、固有値λが十分大きい値である範囲においては、同じ値が補正後の固有値ηとして出力される。これはつまり、固有値λが十分大きい値である範囲においては、固有値λに対して補正する必要はないことを意味する。そこで、事前に類似パッチの数とノイズの分散に基づいて、補正するか否かを判定する形態としてもよい。具体的にはまず、固有値補正部２３１は、類似パッチの数とノイズの分散とに応じた閾値ασ２を導出する。そして、固有値λと閾値ασ２を比較し、固有値λが閾値ασ２より小さい場合は、固有値λをノイズ分散σ２に補正する。固有値λが閾値ασ２以上である場合は、固有値λを補正しない。このように、固有値に対して事前に補正するか否かを判定した結果に応じて、固有値を補正する形態としても、実施形態１と同様の効果を得ることができる。
【００５１】
＜実施形態２＞
実施形態１では、共分散行列Ｃの固有値を、ノイズ量、類似パッチ数および固有値自身に基づいて補正し、さらに補正した固有値から補正値算出行列Ｈを導出し、各類似パッチのノイズ低減を行う例を示した。実施形態２では、着目画素近傍における特徴に応じて着目パッチごとに着目パッチの画素数Ｎが変動する場合の処理について述べる。本実施形態におけるハードウェア構成は実施形態１と同様であるため説明を省略する。また、実施形態１と同様の構成については、同じ符号を付し、詳細な説明を省略する。
【００５２】
図６（ａ）、図６（ｂ）は、実施形態２に係るノイズ低減処理を実行する画像処理装置の詳細な論理構成を示すブロック図である。図６（ａ）において、着目パッチ設定部２０２は、着目画素近傍にエッジがあるか否かを判定し、エッジ判定の結果に応じて着目パッチの形状を設定する。つまり実施形態２では、着目画素近傍における特徴として、エッジ度を用いる。類似パッチ検出部６０３は、実施形態１と同様に類似パッチを検出して類似パッチ数を算出する。実施形態２では類似パッチ検出部６０３が、パッチの画素数も算出する。図６（ｂ）は行列算出部６０６の詳細な論理構成を示すブロック図である。固有値補正部６３１は、ノイズ量、類似パッチ数とパッチの画素数に基づいて、固有値を補正する。
【００５３】
図７は、本実施形態に係るノイズ低減処理プログラムのフローチャートである。以下、図７を用いて、画素処理の流れを説明する。Ｓ７０１において画像入力部２０１は、入力画像を読み込む。Ｓ７０２においてパッチ合成部２０８は、アグリゲーションを行うための分子用画像と分母用画像とを０で初期化する。
【００５４】
Ｓ７０３において着目パッチ設定部６０２は、入力画像に対して着目パッチを設定する。まず着目画素とその近傍の画素に基づいて、着目画素近傍にエッジがあるか否かを判定する。具体的には、入力画像に対してＳｏｂｅｌフィルタのようなエッジ検出フィルタを適用する。エッジ検出フィルタを適用することで、各画素のエッジ度を算出する。着目画素および近傍画素に、エッジ度が大きい画素がある場合は、着目画素近傍にエッジがあるとみなし、画素数の少ない着目パッチＴを設定する。逆に、着目画素および近傍画素に、エッジ度が大きい画素がない場合は、画素数の多い着目パッチＴを設定する。ここでは、着目画素近傍にエッジがある場合は、着目画素を中心として５画素×５画素の領域を着目パッチとし、着目画素近傍にエッジがない場合は、着目画素を中心として７画素×７画素の領域を着目パッチとする。以下、着目パッチＴはＭ個の画素により構成されているものとして説明する。実施形態２においては、画素数Ｍは着目画素に応じて設定される。
【００５５】
Ｓ７０４において類似パッチ検出部６０３は、Ｓ７０３において設定した着目パッチＴに対して、複数の参照パッチを設定する。各参照パッチの形状は着目パッチと一致する。したがって各参照パッチも、Ｍ個の画素で構成されている。
【００５６】
Ｓ７０５において類似パッチ検出部６０３は、実施形態１のＳ５０４と同様に、Ｓ７０４で設定した複数の参照パッチ各々について、着目パッチとの類似度を算出し、類似度が高い複数の参照パッチを類似パッチとして選択する。
【００５７】
Ｓ７０６において共分散行列算出部２０４は、Ｓ７０５において選択した複数の類似パッチの平均パッチと共分散行列Ｃとを算出する。平均パッチは、各類似パッチにおける同じ位置の画素の画素値を平均することで算出される。つまり平均パッチは、Ｍ個の画素で構成されている。共分散行列Ｃは、正方行列であり、一辺のサイズはＭである。
【００５８】
Ｓ７０７において固有値・固有ベクトル算出部２０５は、Ｓ７０６において算出した共分散行列Ｃの固有値と固有ベクトルを算出する。Ｓ７０８において固有値補正部６３１は、Ｓ７０７において算出した複数の固有値をそれぞれ補正する。Ｓ７０８における補正処理は、Ｓ７０７において算出した各固有値、入力画像のノイズ量、Ｓ７０５において選択された類似パッチの数および各パッチの画素数Ｍに基づいて行う。パッチの画素数Ｍはエッジがあるか否かの判定結果に応じて設定されるため、着目画素ごとにパッチの画素数が異なっている。図８を用いて、固有値の補正処理の詳細を説明する。
【００５９】
まずＳ８０１において固有値補正部６３１は、入力画像に含まれるノイズの標準偏差σと、Ｓ７０５において選択された類似パッチの数Ｎと、Ｓ７０３において設定した着目パッチの画素数Ｍとを取得する。
【００６０】
Ｓ８０２において固有値補正部６３１は、Ｓ７０７において算出した複数の固有値のうちの１つを取得する。
【００６１】
Ｓ８０３において固有値補正部６３１は、Ｓ８０２において取得した固有値λを、図５（ａ）に示す特性の関数を用いて補正し、補正後の固有値ηを得る。すなわち、固有値λがノイズ分散（ノイズ標準偏差σの二乗）のα倍よりも小さい場合は補正値ηがノイズ分散σ２程度となるように補正する。そして、固有値がノイズ分散のα倍よりも大きい場合は補正値ηもノイズ分散σ２より大きな値とし、固有値が十分に大きい場合の補正値ηは、元の固有値と概略一致する。さらに固有値補正部６３１は、類似パッチの数Ｎとパッチの画素数Ｍに応じて係数αを設定する。この係数αは１以上の値であることが望ましい。実施形態１と同様に、類似パッチが多いほどノイズによるテクスチャ成分に対して大きな固有値が生じにくい。そのため、類似パッチが多いほど補正すべき固有値の上限は小さくてよい。つまり、類似パッチの数Ｎが大きいほどαを小さくする。逆に、パッチの画素数Ｍが多いほどノイズによって生じたテクスチャ成分に対して大きな固有値が生じやすいため、パッチ画素数Ｍが大きいほど補正すべき固有値の上限を大きくする。つまり、パッチ画素数Ｍが大きいほどαを大きくする。例えば、パッチ画素数Ｍ＝２５の場合、類似パッチ数Ｎ＝４９以下の場合はα＝４．０、Ｎ＝５０〜１００の場合はα＝３．０、Ｎ＝１０１〜２００の場合はα＝２．０、Ｎ＝２０１以上の場合は、α＝１．０とする。また、パッチ画素数Ｍ＝４９の場合、類似パッチ数Ｎ＝４９以下の場合はα＝５．０、Ｎ＝５０〜１００の場合はα＝４．０、Ｎ＝１０１〜２００の場合はα＝３．０、Ｎ＝２００以上の場合は、α＝２．０とする。このように係数αをパッチの画素数と類似パッチ数に応じて設定することにより、適切に類似パッチのノイズを低減することができる。固有値がノイズ分散のα倍よりも大きく、補正値ηが固有値と概略一致するまでの間の区間は図５（ａ）のように滑らかに繋がれている事が望ましい。しかしながら、図５（ｂ）のように不連続に切り替えてもパターン状のノイズの発生を防ぐ効果は得られる。
【００６２】
Ｓ８０４において固有値補正部６３１は、未補正の固有値があるか否かを調べ、未補正の固有値がある場合はＳ８０２に戻る。全ての固有値に対して補正を行うとこのフローは終了となる。以上がＳ７０８で行われる固有値の補正処理の詳細である。
【００６３】
図７に戻り、以降の説明を行う。Ｓ７０９において補正用行列導出部２３２では実施形態１のＳ５０９と同様に、Ｓ７０８において補正した固有値と、Ｓ７０７において算出された固有ベクトルに基づいて、補正値算出行列Ｈを算出する。
【００６４】
Ｓ７１０において類似パッチ補正部２０７は、この補正値算出行列Ｈに基づいて、類似パッチの各々を補正する。具体的な方法は実施形態１のＳ５１０と同じである。Ｓ７１１においてパッチ合成部２０８は、Ｓ７１０で補正した各々の類似パッチに基づいて分子用画像と分母用画像のそれぞれを算出する。具体的な方法は実施形態１のＳ５１１と同様である。Ｓ７１２では未処理の着目パッチがあるか調べ、未処理の着目パッチがある場合はＳ７０３に戻る。未処理の着目パッチが無い場合は、分子用画像を分母用画像で割り、これを出力画像として、処理を終了する。以上が、本実施形態に係るノイズ低減処理の流れの説明である。
【００６５】
以上の通り、本実施形態では、Ｎ個の類似パッチから算出した共分散行列Ｃに対して、固有値と固有ベクトルを算出した後、ノイズ量、類似パッチの数Ｎ、パッチの画素数Ｍに基づいて固有値を補正する。この補正された固有値と固有ベクトルから、補正値算出行列Ｈを算出する。この補正値算出行列Ｈを用いて各パッチのノイズを低減する。ノイズにより偶然生じたテクスチャを除去ためには、係数αを適切に設定して、固有値を補正する必要がある。本実施形態では係数αをパッチの画素数Ｍが大きいほど大きく、類似パッチの数Ｎが大きいほど小さくなるように設定する。これにより、各類似パッチに対してノイズにより偶然生じたテクスチャを消すことができ、効果的にパターン状のノイズの発生を抑えることができる。
【００６６】
なお、本実施形態における係数αやパッチの画素数などは好ましい値の一例として説明したが、目的に応じて他の値を適用しても良い。例えばαを全体的に１割程度大きな値とした場合は、よりパターン状のノイズの低減効果が高くなる。その一方、ノイズの低減効果を高めることでノイズ低減後の画像が多少ぼけてしまう場合もある。このようなトレードオフにおいて、最も適切なαを事前に設定しておくとよい。
【００６７】
＜実施形態３＞
実施形態３では、共分散行列を求めた後、主成分分析を行うことでノイズを低減する方法を例について述べる。前述の実施形態と同様の構成については、同一の符号を付し、詳細な説明を省略する。
【００６８】
図９（ａ）は実施形態３に係るノイズ低減処理を実行する画像処理装置の詳細な論理構成を示すブロック図である。図９（ａ）において、着目パッチ設定部９０２は、着目画素近傍の画素群における画素値の分散を算出し、この分散に基づいて適応的に着目パッチの形状を設定する。つまり実施形態３では、着目画素近傍における特徴として分散を用いる。
【００６９】
行列算出部９０６は、類似パッチ数・パッチ画素数、固有値、固有ベクトルおよびノイズ量に基づいて、類似パッチのノイズを低減するために用いられる射影行列を算出する。図９（ｂ）は、行列算出部９０６の詳細な論理構成を示すブロック図である。閾値算出部９３１は、類似パッチ数、パッチ画素数、ノイズ量に基づいて、固有値に対する閾値を算出する。補正用行列導出部９３２は、固有値に対する閾値と固有値および固有ベクトルから、射影行列を算出する。
【００７０】
図１０は、本実施形態に係るノイズ低減処理のフローチャートである。以下、図７を用いて、プログラムの処理フローを説明する。なお、実施形態２と共通の部分が多いため、実施形態２と異なるのみ詳細に説明する。
【００７１】
Ｓ１００１において画像入力部２０１は入力画像を読み込む。Ｓ１００２においてパッチ合成部２０８は、アグリゲーションを行うための分子用画像と分母用画像とを０で初期化する。
【００７２】
Ｓ１００３において着目パッチ設定部９０２は入力画像中の着目パッチを設定する。まず着目画素とその近傍の画素群の画素値の分散を算出し、分散が大きい場合は画素数の少ない着目パッチＴを設定する。逆に、分散が小さい場合は画素数の多い着目パッチＴを設定する。以下、着目パッチＴはＭ個の画素で構成されているものとして説明する。この画素数Ｍは、着目画素に応じて設定される。
【００７３】
Ｓ１００４において類似パッチ検出部６０３はＳ１００３で設定した着目パッチＴに対して、複数の参照パッチを設定する。各参照パッチの形状は、着目パッチと一致している。したがって各参照パッチもＭ個の画素で構成されている。
【００７４】
Ｓ１００５において類似パッチ検出部６０３は、実施形態１のＳ２０４と同様に、Ｓ１００４で設定した複数の参照パッチ各々について着目パッチとの類似度を算出し、類似度が高い複数の参照パッチを類似パッチとして選択する。
【００７５】
Ｓ１００６において共分散行列算出部２０４では、Ｓ１００５で選択した複数の類似パッチの平均パッチと共分散行列Ｃとを算出する。平均パッチはＭ個の画素で構成されている。共分散行列Ｃは、一辺のサイズがＭの正方行列である。
【００７６】
Ｓ１００７において固有値・固有ベクトル算出部２０５は、Ｓ１００６において算出された共分散行列Ｃの固有値と固有ベクトルを算出する。
【００７７】
Ｓ１００８において閾値算出部９３１は、固有値に対する閾値を算出する。この閾値は、Ｓ１００７において算出された各固有値、入力画像のノイズ量、Ｓ１００５において選択された類似パッチの数Ｎおよび各パッチの画素数Ｍに基づいて算出される。
【００７８】
図１１を用いて、閾値算出処理の詳細を説明する。まずＳ１１０１において閾値算出部９３１は、入力画像に含まれるノイズの標準偏差σと、Ｓ１１０５において選択された類似パッチの数Ｎと、Ｓ１１０３において設定された着目パッチの画素数Ｍとを取得する。
【００７９】
Ｓ１１０２において閾値算出部９３１は、固有値に対する閾値θを算出する。補正用行列導出部９３２は、固有値と閾値θを比較し、閾値θ以上の固有値に対応した固有ベクトルを、主成分として扱う。逆に、この閾値θ未満の固有値に対応する固有ベクトルは、ノイズに相当するものとして扱う。一般に、ノイズに相当する固有ベクトルの固有値はノイズ分散を中心にいくらかばらついた値をとる。従って、閾値θはノイズ分散σ２よりも大きな値とすべきである。そこで本実施形態では、係数αを１以上の実数として、閾値算出部９３１は閾値θを以下の式（７）により算出する。
【００８０】
【数７】
2019101686.tif 000009
【００８１】
本実施形態では、この係数αは、ノイズにより偶然大きな値が算出された固有値を、正しくノイズとしてみなされるように設定する。類似パッチの数が多いほどノイズによって大きな固有値が生じにくいため、類似パッチが多いほど固有値に対する閾値θは小さくてよい。つまり、類似パッチの数Ｎが大きいほどαを小さくする。逆に、パッチ画素数Ｍが多いほどノイズによって大きな固有値が生じやすいため、パッチ画素数Ｍが大きいほど固有値に対する閾値を大きくする。つまり、パッチ画素数Ｍが大きいほどαを大きくする。例えば、パッチ画素数Ｍ＝２５の場合、類似パッチ数Ｎ＝４９以下の場合はα＝４．０、Ｎ＝５０〜１００の場合はα＝３．０、Ｎ＝１０１〜２００の場合はα＝２．０、Ｎ＝２０１以上の場合はα＝１．０とする。また、パッチ画素数Ｍ＝４９の場合、類似パッチ数Ｎ＝４９以下の場合はα＝５．０、Ｎ＝５０〜１００の場合はα＝４．０、Ｎ＝１０１〜２００の場合はα＝３．０、Ｎ＝２０１以上の場合はα＝２．０とする。以上がＳ１００８で行われる閾値算出処理の詳細である。
【００８２】
図１０に戻り、以降の説明を行う。Ｓ１００９において補正用行列導出部９３２は、Ｓ１００７において算出された固有値、固有ベクトルと、Ｓ１００８において算出された閾値θに基づいて、補正用行列を導出する。本実施形態において補正用行列導出部は、補正用行列として、以下の式（８）、式（９）によりあらわされる射影行列Ｗを計算する。
【００８３】
【数８】
2019101686.tif 000010
【００８４】
ここでＦ１やＦ２は、それぞれ固有値が閾値θ以上の固有ベクトルである。行列Ｂは、固有値が閾値θ以上という条件を満たした固有ベクトルを全て並べた基底行列である。ここでは、Ｋ個（Ｋ＜＝Ｍ）の固有値が閾値θ以上であったとして説明する。基底行列ＢはＫ行Ｍ列の行列であり、射影行列ＷはＭ行Ｍ列の正方行列である。射影行列Ｗは、類似パッチから主成分だけを残すための役割を果たす。
【００８５】
Ｓ１０１０において類似パッチ補正部２０７は、各類似パッチＰｉから平均パッチＱを引いた差分パッチを、射影行列Ｗを用いて射影し、射影した結果に平均パッチＱを加算することで、類似パッチを補正する。この補正により、主成分だけを残してノイズ低減したパッチＯｉが算出される。類似パッチ補正部２０７による処理は、以下の式（１０）の通りに表される。
【００８６】
【数９】
2019101686.tif 000011
【００８７】
Ｓ１０１１においてパッチ合成部２０８は、Ｓ１０１０において補正された各々の類似パッチに基づいて分子用画像と分母用画像のそれぞれを算出する。具体的な方法は実施形態１におけるＳ２１１と同様である。
【００８８】
Ｓ１０１２において、未処理の着目パッチがあるか否かを調べ、未処理の着目パッチがある場合はＳ１００３に戻る。未処理の着目パッチが無い場合パッチ合成部２０８は、分子用画像を分母用画像で割り、これを出力画像として、処理を終了する。以上が、本実施形態に係るノイズ低減処理のフローの説明である。
【００８９】
以上の通り本実施形態では、類似パッチの数Ｎと、パッチの画素数Ｍ，そしてノイズ量に基づいて、主成分を選ぶための閾値θを算出する。共分散行列Ｃに対する固有値が閾値θ以上となる固有ベクトルを主成分として射影行列Ｂを算出する。そして、射影行列Ｂを用いて、各類似パッチのノイズを低減する。閾値θを算出する際、ノイズに相当する固有ベクトルを正しくノイズとして扱うため、係数αをパッチの画素数Ｍが大きいほど大きく、類似パッチの数Ｎが大きいほど小さくなるように設定する。これにより、ノイズで偶生まれたテクスチャを消すことができ、効果的にパターン状のノイズの発生を抑えることができる。なお、本実施形態で例として挙げた値は好ましい値であるものの、この例に必ずしも限定されない。例えば係数αを全体的に１割程度大きな値とした場合は、よりパターン状のノイズの低減効果が高くなる。ノイズ低減効果を高めることで、ノイズ低減後の画像が多少ぼけてしまうという場合もある。このようなトレードオフにおいて適切な係数αを事前に設定しておくとよい。
【００９０】
＜その他の実施形態＞
上記実施形態では、入力画像における全ての画素を着目画素として設定する場合を例に説明したが、その方法に必ずしも限定されない。例えば、入力画像に対して着目パッチをタイル状に配置するように設定するなどしてもよい。
【００９１】
なお、上述の３つの実施形態では、コンピュータプログラムを動作させることで実現するソフトウェアを例に説明した。しかしながら、図２、図６、図９に示したブロック図の各構成の一部、またはそのすべてを専用の画像処理回路によって実現してもよい。
【００９２】
また本発明は上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。
【図１】
2019101686.tif 000012
【図２】
2019101686.tif 000013
【図３】
2019101686.tif 000014
【図４】
2019101686.tif 000015
【図５】
2019101686.tif 000016
【図６】
2019101686.tif 000017
【図７】
2019101686.tif 000018
【図８】
2019101686.tif 000019
【図９】
2019101686.tif 000020
【図１０】
2019101686.tif 000021
【図１１】
2019101686.tif 000022