メインコンテンツ

denoiseImage

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

説明

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

この関数には 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 hidden 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 hidden axes object with title Denoised Image contains an object of type image.

入力引数

すべて折りたたむ

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

  • mn 列サイズの 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

ノイズ除去深層ニューラル ネットワーク。dlnetwork (Deep Learning Toolbox) オブジェクトとして指定します。ネットワークは、A と同じ数のカラー チャネルをもつイメージで学習させる必要があります。ネットワークの入力サイズを A のサイズと一致させる必要はありません。

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

出力引数

すべて折りたたむ

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

バージョン履歴

R2017b で導入

すべて展開する