Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

denoiseImage

深層ニューラル ネットワークを使用したイメージのノイズ除去

説明

B = denoiseImage(A,net) は、net で指定されたノイズ除去深層ニューラル ネットワークを使用して、ノイズを含むイメージ A からノイズ除去後のイメージ B を推定します。

この関数には、Deep Learning Toolbox™ が必要です。

すべて折りたたむ

事前学習済みのノイズ除去畳み込みニューラル ネットワーク 'DnCNN' を読み込みます。

net = denoisingNetwork('DnCNN');

グレースケール イメージをワークスペースに取得した後、ノイズを含むバージョンのイメージを作成します。

I = imread('cameraman.tif');
noisyI = imnoise(I,'gaussian',0,0.01);

2 つのイメージをモンタージュとして表示します。

montage({I,noisyI})
title('Original Image (Left) and Noisy Image (Right)')

Figure contains an axes object. The axes object with title Original Image (Left) and Noisy Image (Right) contains an object of type image.

ノイズを含むイメージからノイズを除去し、結果を表示します。

denoisedI = denoiseImage(noisyI,net);
imshow(denoisedI)
title('Denoised Image')

Figure contains an axes object. The axes object with title Denoised Image contains an object of type image.

入力引数

すべて折りたたむ

ノイズを含むイメージ。単一の 2 次元イメージまたは 2 次元イメージのスタックとして指定します。A は次のいずれかです。

  • m 行 n 列サイズの 2 次元グレースケール イメージ。

  • m x n x c の 2 次元マルチチャネル イメージ。ここで、c はイメージ チャネルの数です。たとえば、c は RGB イメージの場合は 3 であり、赤外線チャネルを持つ RGB イメージなどの 4 チャネル イメージの場合は 4 です。

  • 等サイズの 2 次元イメージのスタック。この場合、A のサイズは m x n x c x p です。ここで p はスタック内のイメージの数です。

データ型: single | double | uint8 | uint16

ノイズ除去深層ニューラル ネットワーク。SeriesNetwork (Deep Learning Toolbox) オブジェクトとして指定します。ネットワークは、A と同じチャネル形式でイメージを処理するように学習させる必要があります。

ノイズを含むイメージ、またはイメージのスタック A がチャネルを 1 つだけもち、ガウス ノイズを含む場合は、関数 denoisingNetwork を使用して事前学習済みネットワークを取得できます。マルチチャネル イメージまたは異なるノイズ モデルに対するノイズ除去ネットワークの作成に関する詳細については、ノイズ除去ニューラル ネットワークの学習と適用を参照してください。

出力引数

すべて折りたたむ

ノイズ除去後のイメージ。単一の 2 次元イメージまたは 2 次元イメージのスタックとして返されます。B のサイズとデータ型は A と同じです。

ヒント

  • 関数 denoiseImage は、入力イメージ A のノイズを推定するときに関数 activations (Deep Learning Toolbox) に依存します。関数 denoiseImage では、activations の名前と値の引数 OutputAs"channels" として指定することにより、ネットワークの入力サイズより A を大きくすることが可能です。一方、関数 predict (Deep Learning Toolbox) では、イメージ サイズがネットワークの入力サイズと一致することが必須です。

バージョン履歴

R2017b で導入