MATLAB Examples

DnCNNの評価

①各ノイズフィルタとの比較 ②分散値を変えたときの比較

Contents

①各ノイズフィルタとの比較

DnCNNの読み込み

net = denoisingNetwork('DnCNN');

% グレイスケール画像の読み込み
I = imread('cameraman.tif');

% ノイズ画像生成
noisyI = imnoise(I,'gaussian',0,0.01); % DnCNN 効果高

% 可視化
IDnCNN = denoiseImage(noisyI, net);
montage({I,noisyI,IDnCNN},'Size',[1,3])

% 各種ノイズフィルタとの比較
% subplot用の無名関数
figure;
row = 2;
col = 4;
splt = @(num,I,disp) [subplot(row,col,num),imshow(I),title(disp)];

% 元画像とノイズ画像
splt(1,I,'Original Image');
splt(2,noisyI,'Noisy Imgae');

% DnCNNを使ったノイズ除去
IDnCNN = denoiseImage(noisyI, net);
splt(3,IDnCNN,'DnCNN');

% ガウスフィルタを使ったノイズ除去
sigma = 2;
Igauss = imgaussfilt(noisyI,sigma);
disp = sprintf('Gaussianfilter\n(sigma=%d)',sigma)
splt(4,Igauss,disp);

% エッジ保存フィルタを使ったノイズ除去
Ibilat = imbilatfilt(noisyI,1000,50);
splt(5,Ibilat,'Bilateral Filtered');

% メディアンフィルタを使ったノイズ除去
Imed = medfilt2(noisyI);
splt(6,Imed,'Median Filtered');

% 適応フィルタリングを使ったノイズ除去
Iwiener = wiener2(noisyI,[4 4]);
splt(7,Iwiener,'Adaptive Filtered')

% イメージのガイド付きフィルターを使ったノイズ除去
Iguided = imguidedfilter(noisyI,'NeighborhoodSize',[7 7]);
splt(8,Iguided,'Guided Filtered');
disp =
    'Gaussianfilter
     (sigma=2)'
ans = 
  1×3 graphics 配列:

    Axes     Image    Text 

②分散値を変えたときの比較

DnCNNの読み込み

net = denoisingNetwork('DnCNN');
% グレイスケール画像の読み込み
%I = imread('coins.png');
I = imread('cameraman.tif');

% 分散値
variance = [0.005, 0.01, 0.05, 0.1];

% subplot用の無名関数
figure;
row = 3;
col = numel(variance);
splt = @(num,I,disp) [subplot(row,col,num),imshow(I),title(disp)];

% ノイズ画像生成
for i = 1:numel(variance)
    % ノイズ除去処理
    noisyI = imnoise(I,'gaussian',0,variance(i)); % DnCNN 効果高
    denoisedI = denoiseImage(noisyI, net);
    % 可視化
    splt(i,I,'Original Image')
    disp = sprintf('Noisy Image(variance=%.3f)',variance(i));
    splt(i+col,noisyI,disp)
    disp = sprintf('Denoised Image(variance=%.3f)',variance(i));
    splt(i+col*2,denoisedI,disp)
end
ans = 
  1×3 graphics 配列:

    Axes     Image    Text 
ans = 
  1×3 graphics 配列:

    Axes     Image    Text 
ans = 
  1×3 graphics 配列:

    Axes     Image    Text 
ans = 
  1×3 graphics 配列:

    Axes     Image    Text 
ans = 
  1×3 graphics 配列:

    Axes     Image    Text 
ans = 
  1×3 graphics 配列:

    Axes     Image    Text 
ans = 
  1×3 graphics 配列:

    Axes     Image    Text 
ans = 
  1×3 graphics 配列:

    Axes     Image    Text 
ans = 
  1×3 graphics 配列:

    Axes     Image    Text 
ans = 
  1×3 graphics 配列:

    Axes     Image    Text 
ans = 
  1×3 graphics 配列:

    Axes     Image    Text 
ans = 
  1×3 graphics 配列:

    Axes     Image    Text 

Copyright 2018 The MathWorks, Inc.